りォヌムチュヌブディスプレむを備えたWifiラゞオ。 パヌト1.ディスプレむ



倚くの人ず同じように、私はさたざたなむンタヌネットラゞオ局の音楜を聎くのが奜きです。 そしおずっず前に、私は自分を無線LANラゞオにするこずを決めたした。 最初はスマヌトフォンやタブレットに眮き換わりたしたが、私は静止したオリゞナルの自分のものが欲しかったのです。 さらに、私はチュヌブずLinuxで䜕かが欲しかった。 もちろん、そのようなものは販売されおいたせん。 それから、そのようなラゞオを自分でカットするずいうアむデアが生たれたした。

発蚀。 この䞀連の蚘事が未完成であるこずに驚かされたす。 いく぀かの理由により、2幎間公開できたせんでした。 したがっお、日付に驚かないでください。 幞いなこずに、私はそれをレむアりトするための匷さ、゚ネルギヌ、熱意を芋぀けたした。 そしお、これが最埌の郚分ではないこずを心から願っおいたす。

habrahabr.ru/post/206148のlptポヌトでlcdディスプレむ甚のドラむバヌを曞くこずに぀いお投皿した埌、ディスプレむにうんざりしたした。 ただし、その投皿で䜿甚したKhitachevの衚瀺は完党に時代遅れであり、たったく面癜くありたせん。 したがっお、その䞊に䞀意のデバむスを䜜成するのは愚かなこずです。 もう䞀床、むンスピレヌションを求めお、圌はebayをさたよい、叀いレシヌバヌずディスプレむのデザむンを芋たした。 そしお突然、私はちょうど狂ったお金$ 500のようなもののために、 VFD 真空蛍光ディスプレむ-真空蛍光ディスプレむVLIに出䌚いたした。 私はそのような金額を支払う準備ができおいたせんでしたが、それでもこれらのスクリヌンは恋に萜ちたした。 その埌、goodicから、これらの画面がレゞで䜿甚され、「Customer Display」ず呌ばれるこずを孊びたした。 䜕を探しお探すべきかが明らかになりたした。

顧客ディスプレむ



むンタヌネットで長時間怜玢し、さたざたなドキュメントを読んだ埌、私は本圓に欲しいものを決めたした。 私の遞択は、䌚瀟「Posiflex。」のディスプレむに萜ちたした。 個人的には、 PD-2600ずPD-2800の 2぀のモデルに決めたした。 この機䌚を利甚しお、これらのモデルに぀いおATOL䌁業に感謝したす。 䞡者の䞻な違いは、コンピュヌタヌず電源ぞの接続方法です。 最初のディスプレむには倖郚電源が必芁で、コンピュヌタヌのCOMポヌトを介しお接続されたす。 2番目のディスプレむはUSB経由で接続されおおり、そこから電力を䟛絊したす。 そうでなければ、それらの違いは終わりたす。 USBむンタヌフェヌスにもかかわらず、このディスプレむは原則ずしおPD-2600ず違いはありたせん。 このディスプレむのUSBむンタヌフェむスは、仮想COMポヌトず電源の単なるラッパヌです。
これらのディスプレむのグロヌの色は異なるこずに泚意しおください。 私は䞀぀の緑、もう䞀぀の青を持っおいたした。 結局のずころ、ディスプレむの色はプレキシグラスフィルタヌによっおのみ決定されたす。 通垞の圢ラむトフィルタヌなしでは、ほずんど癜緑がかった色で茝きたす。


巊偎にはオレンゞ色のプレキシガラス、真ん䞭にはスクリヌンの自然な色、右偎にはネむティブの青い光フィルタヌがありたす。

私の新幎2013幎から2014幎にディスプレむが登堎したので、機䌚を぀かみ、おめでずうございたす。

画像
PD-2600ずPD-2800ディスプレむの倖芳の違い。 碑文は、Hacker誌を読んで働くこずから生たれた䌝統ぞのオマヌゞュです。 ごめんなさい:)

もちろん、これはすべお、私が特別なこずを䜕もしなかったサンプルディスプレむの䞍正な䞍正行為でした。 仮想マシンで実行されるLinuxベヌスのキャッシュレゞスタに既補のオペレヌティングシステムを䜿甚したした。

画像
virtualkaのOS

しかし、サヌドパヌティのアプリケヌションを介しおラベルを衚瀺するのは退屈で、私は圌ず友達になる方法を芋぀け始めたした。

この動物ず䞀緒に働くには



あなたが蚘事を準備しおいるずき、あなたはあなたの仕事のより良い説明を求めお時折台無しにしたす。 そしお、ハブで、著者がどのようにフォントをディスプレむにアップロヌドしたかに぀いお簡単に説明する蚘事に出䌚いたした。 ただし、モデルに぀いおも、これらのチヌムが実際に行っおいるこずに぀いおもたったく蚀及しおいたせん。 したがっお、私たちが䜕を、なぜ行っおいるのかを人間の蚀葉で説明しようずしたすが、この投皿はマニュアルの簡単な蚀い回しではありたせん RTFM 。 たた、トピックは非垞に広範であるため、すべおのステップを噛たないように、マタン圢匏が存圚するこずに泚意しおください。「それは明らかです...」。
私はすぐにドキュメントぞのリンクを提䟛したす ドキュメント私はドキュメントを長い間、そしお氞続的に怜玢したずいう事実に泚意を匕きたす。私はアメリカのポゞフレックスのりェブサむトでそれを芋぀けたした。 珟圚、ATOL WebサむトPosiflexロシア駐圚員事務所で入手できたす。 悲しいかな、他のディスプレむからのドキュメントは機胜しないか機胜したすが、すべおの問題ではありたせんすべおのペヌグルトが同じように圹立぀わけではありたせん。 以䞋にその理由を説明したす。

それでは、グッズを入手したしょう。 ディスプレむのいずれかをオンにした埌、圌は次のように私たちを歓迎したす。



このメッセヌゞは、ディスプレむがEpson暙準ず互換性のあるコマンドモヌドであるこずを瀺しおいたす。 このモヌドは、ディスプレむケヌスのスむッチによっお蚭定され、原則ずしお、すべおの顧客ディスプレむ䞊にあるのがデフォルトです。


衚瀺モヌドを蚭定する

操䜜には倚くのモヌドがあるこずに泚意しおください。 Epsonディスプレむず互換性のあるコマンドシステムを䜿甚したす。 ドキュメントでは、これはEPSON゚ミュレヌションモヌドセクションです。 「子䟛たちのアむスクリヌム、女性の花。 混同しないでください」c
このモヌドでは、ディスプレむはほずんどvt52端末のようにESCシヌケンスによっお制埡されたすただし、互換性は完党ではありたせん。

むンタヌフェヌスに぀いお䞀蚀
私たちが䜕をしおいるのか、そしおその理由の理解を簡単にするために、これは私の蚘事「 カスタムLinuxドラむバヌの䜜成 」で詳现に説明されたこずを思い出したす。 FAQのネタバレ怜玢を介しお怜玢があり、それが䜕でどのように機胜し、どのコマンドで動䜜するかを瀺す写真で芋事です。 その蚘事で明確にするために、「\ 033」はこの蚘事で「\ x1B」ず曞くのず同等です1぀は8進数、2぀目は16進数


コマンドラむンディスプレむをいじっおみたしょう。 倚くのプログラミングを接続したせん。 今日の蚘事では、これは真っ逆さたになりたす。 PD-2600ディスプレむはUSBアダプタヌを介しお接続され、システムからは/ dev / ttyUSB0ずしお認識されるず想定しおいたす。 同じこずがPD-2800ディスプレむでも機胜したすが、それだけが/ dev / ttyACM0ずしお定矩されたす。
たず、速床を蚭定したす。 デフォルトでは、COMポヌトの速床䞡方のディスプレむ䞊は9600です。この速床もスむッチによっお蚭定されたす。

stty 9600 < /dev/ttyUSB0 


そしお、この「非垞に耇雑なチヌム」の埌、テストできたす。

 echo -en "Hello world" > /dev/ttyUSB0 



䞖界に向けたハヌドりェアこんにちは。

すべお、これで物語は終わりたす。 Hello worldは成功したした。 しかし、実際には、すべおがそれほど単玔ではありたせん。 このディスプレむは、Great and Mighty Russian蚀語をサポヌトしおいたす。 しかし、それは非垞に独特です。 ドキュメントによるず、ロシア語を䜿甚するには、コヌド衚を遞択する必芁がありたす。 これが行われない堎合、出力はそのようなパセリになりたす。

 echo -en " \n dlinyj" > /dev/ttyUSB0 




ロシア語キリル文字でコヌドペヌゞを有効にするには、次のコマンドを指定する必芁がありたす。

 echo -en "\x1B\x74\x06" > /dev/ttyUSB0 


次に、テキストを再床衚瀺しようずしたす

 echo -en " \n dlinyj" > /dev/ttyUSB0 


そしお、そしお、再び、残念が私たちを埅っおいたす...



どうしたの 問題は単玔であるこずが刀明したしたが、それに觊れるのに2日かかりたした。 すべおが基本です-゚ンコヌディングの問題。 正しい゚ンコヌディングを䜿っお私を促しおくれた、すおきな同志を称賛しおください。 その結果、私たちは長い間苊しんでいるチヌムを手に入れたした。チヌムはただテキストをロシア語にトランスコヌドし、画面に衚瀺したす。

 echo -en " \n dlinyj" | iconv -f UTF-8 -t CP866 > /dev/ttyUSB0 




実際、ディスプレむの電源を切るたびにCOMポヌトを再初期化し、これらのコマンドを䞎えるずいう詳现は省略したした。 しかし、もっず矎味しいチヌムがたくさんありたす。 䟋カヌ゜ルの移動、画面のクリア、カヌ゜ルのホヌムぞの配眮など。 䞀郚のコマンドはvt52ず互換性がありたす。 ドキュメントのコマンドのリスト党䜓をリストするず、次のようになりたす。



さお、科孊では、「Hello Habr」を導き出すために、次のこずをする必芁がありたす。 英語では、䟿宜䞊、眲名は䞊の衚のチヌムの名前に察応しおいたす。

 stty 9600 < /dev/ttyUSB0 #  - echo -en "\x1B\x74\x06" > /dev/ttyUSB0 # Select character code page table.        (№6). echo -en "\x1B\x40" > /dev/ttyUSB0 #Initialize display.  .       (  ). echo -en " \n dlinyj" | iconv -f UTF-8 -t CP866 > /dev/ttyUSB0 #iconv       UTF-8  CP866. 


ご芧のずおり、チヌムを䜿甚するず、さたざたな非垞においしいこずを実行できたす。 たずえば、コマンドを䜿甚しお、画面のコンマピリオドのオンずオフを切り替えるこずができたす。 たずえば。

 echo -en "\x1F," > /dev/ttyUSB0 #  echo -en "\x1F." > /dev/ttyUSB0 #  


圌女には別の堎所がありたす。 しかし、私は誰もこの機䌚を取るこずを芋たこずがありたせん。 原則ずしお、誰もが単にポむントに぀いお別の芪しみやすさを䜿甚したす。 䞋線もありたす。 䞀般的に、ディスプレむはキャベツのスヌプを調理したせん。 特にこのタスクには感謝しないため、写真のディスプレむのすべおの機胜を玹介する぀もりはありたせん。 ドラむバヌに関する投皿で、この巚倧なネタバレは数人しか読たなかった。
私にずっお、これらのディスプレむで最も重芁なこずは、カスタムフォントの読み蟌みです。 以䞋でそれらに぀いお説明したす。

重砲を接続したす。 カスタムフォント。



これらのディスプレむで最もクヌルなのは、カスタムフォントのサポヌトです。 ただし、以䞋の説明がPD-2600およびPD-2800ディスプレむモデルにのみ適甚されるこずは残念です。 ある䌚瀟のフレヌムワヌク内でも、フォント読み蟌みコマンドの構文は異なりたす。 そしお、私は個人的に、この䌚瀟の以前のバヌゞョンのディスプレむ甚のドキュメントを䜿甚しお、倚くのレヌキを持っおいたした。 残念ながら、なぜ誰もがこんなにシンプルな堎所で自転車を発明するのか理解できず、1぀の䌁業の枠組み内であっおも単䞀の暙準を受け入れたせん。
これらのディスプレむの開発者向けドキュメントを芋぀ける問題は非垞に深刻でした。 䞀般的な情報はたくさんありたすが、開発者向けドキュメントを芋぀けるのは非垞に困難でした2013-2014。 私のずげのある道に぀いお簡単に説明しおください。
圓初、プログラマが芋぀けたドキュメントはPD2100 / 2200ディスプレむのドキュメントでした。 シンボルの読み蟌みの特性は、シンボルに倚くのポむントがあるこずであり、シンボルマップは次のようになりたす。

画像
キャラクタヌマップ

ドキュメントによるず、シンボルは次のコマンドによっお読み蟌たれたす<1B> <26>〜゚プ゜ンモヌド、および以降はそれに぀いおのみ説明したす。 ここで、adはロヌドされる文字の番号であり、x1-x5は衚に埓っお、5バむトの文字マップです。

画像
PD2100 / 2200ディスプレむ甚のバむト単䜍のドットテヌブル

経隓的に、キャラクタヌのダりンロヌドが進行䞭であるこずがわかりたした少なくずもそのおかげですが、この衚はPD-2600ディスプレむに察応しおいたせん 開発者は、コマンドの芳点からディスプレむは亀換できないこずに泚意しおください 非垞に困難でしたが、PD-2600ディスプレむの開発者向けドキュメントを芋぀けるこずができたした。 ここで、ポむントの衚は次のようになりたす。

画像
ディスプレむPD2600 / 2800甚のドット単䜍のバむト

キャラクタヌを再コヌディングするこずは、ただリバスになりたすが、完党に解決可胜です。

たた、 2぀のカスタムキャラクタヌしかロヌドできないこずが刀明したした。さらにダりンロヌドするず、以前のキャラクタヌはデフォルト倀にリセットされたす。 唯䞀のこずは、画面に衚瀺されるキャラクタヌの圢状が倉わらないこずです。そのため、キャラクタヌを衚瀺しお、新しい倀でリロヌドできたす非垞に䞍䟿です。

泣き蚀をやめ、垂盎バヌを出力する䟋を芋おみたしょう。 それを描き、衚に埓っお翻蚳したす。


文字倉換

次の図が衚瀺されたす。

X1 = 0001 0000b = 0x10
X2 = 0100 0010b = 0x42
X3 = 0000 1000b = 0x08
X4 = 0010 0001b = 0x21
X5 = 0000 0100b = 0x04


COMポヌトぞの送信は次のようになりたす16進数のデヌタ
1B 25 01ナヌザヌキャラクタヌの䜿甚を有効にしたすナヌザヌ定矩のキャラクタヌを蚭定/キャンセルしたす。 01-文字1。
1B 26 A0 10 42 08 21 04アドレスA0 ナヌザヌ定矩文字の定矩にナヌザヌキャラクタヌをロヌドしたす。最埌の5バむトはキャラクタヌのビットマスクです。
A0-文字を印刷したす

したがっお、コン゜ヌルではすべおが次のようになりたす。
たず、ディスプレむを初期化したす

 echo -en "\x1B\x40" > /dev/ttyUSB0 #Initialize display. 


たず、カスタムフォントを蚱可するコマンドを指定する必芁がありたす。

 echo -en "\x1B\x25\x01" > /dev/ttyUSB0 # Set/cancel user-defined characters. 


次に、次のコマンドでパむプ文字をロヌドしたす

 echo -en "\x1B\x26\ xA0\x10\x42\x08\x21\x04" > /dev/ttyUSB0 # Define user defined characters 


シンボルは䜍眮A0にロヌドされ、出力されたす。

 echo -en "\xA0" > /dev/ttyUSB0 


その結果、以䞋が埗られたす。

画像
描かれたシンボル

明確にするために、画面を「フェンス」で埋めるこずもできたす


フェンス

䞀般的に、キャラクタヌのリロヌドでは、非垞にクヌルなこずができたす。 たずえば、5本の異なるキャラクタヌのリロヌドであるランニングスティック。



これは䜕のためですか他の蚘事で説明したす。

前半の結論



このセクションでは、Posiflex PD-2600およびPD-2800ディスプレむの操䜜を確認したした。 この投皿は、独立しおいるず䞻匵しおいたす。 顧客ディスプレむでの䜜業の䟋を瀺したす。 今でも、そのような衚瀺などを取埗し、それに぀いおの有甚な情報を結論付けるこずができたす。 メッセヌゞをツむヌトしたすが。
将来、なぜディスプレむを重芖するのかが明確になるでしょう。なぜなら、 これは、今埌のクラフトの重芁なリンクになりたす。


プロトタむプの段階の1぀。

次の蚘事では、このディスプレむをりォヌムチュヌブでプログラミングし、ルヌタヌ、mpd、その他倚くの機胜を䜿甚するこずを怜蚎したす。

Z.Y. 芋぀かったすべおの゚ラヌ、䞍正確な点などに぀いお、私に手玙を曞くこずをお勧めしたす。 個人的なメッセヌゞ。 私はすべおの゚ラヌをできるだけ早く修正しようずしたす!!!

Source: https://habr.com/ru/post/J276879/


All Articles