↑基本4計器の同時表示が実現(画像を差し替えました 思えば長時間露光すれば同期を気にせず写真が撮れます)
できた!T字配列
●せめて基本4計器の同時表示を実現したくて
航空機の重要な計器の配置の姿からBASIC T(T亊配列)という言葉があります。真ん中に姿勢指示器、その左右に速度計と高度計、下に方位計の4つの計器からなります。
この間、フライトシミュレーターのFlightGearの飛行中のデータを、Raspberry Pi Picoを使って加工し、OLED画面に表示させようと取り組んできました。前回は、2つのOLEDにミニPFDと方位コンパスだけのHSI、あるいは速度計と高度計を表示させるところまで到達しました。ここまでくると、やはりT字配列の4つの計器くらいは、4つのOLEDを使って表示できるようにしたいものです。
●模索の末にPicoの2個使い
4つの計器の実現のためにOLEDを4枚使用するとなると、Picoの2つのI2CにOLED2つをぶら下げる形になるのが一般的かと思われます。
1つのI2CにOLEDを2枚つなげるには、0.96インチOLEDの2つのアドレスを切り替えて使う方法がありますが、前回もふれたようにハードの改造が必要になります。抵抗を付け替えるだけのこととはいえ、小さな部品をハンダ付けするのは、素人にはハードを壊すリスクがあります。
かわって、1つのI2Cを分岐させるI2C分配チップのTCA9548Aを使う方法もあるようですが、手元になくて購入の必要があるということで見送り。残すはI2Cをソフトで増やす方法を試すのみとなったものの、実現には至りませんでした。
ここまでくれば破れかぶれ、1個のPicoで2枚のOLEDが使えたのだから、同時に2個なら都合4枚のOLEDが使え、手っ取り早いと思うじゃないですか。もちろん、Pico2つで1つは受信専用、1つは表示専用として使うほどに、負荷を分散させて安定をはかるくらい繊細なPicoのことですから、Pico2つをパソコンにつなぐ際にUSBハブが必要になるとなれば、不安定さが気にもなります。どうもパソコンのUSBポートが経年劣化してき、不安定であることを思えばなおさらです。おそらく非推奨を覚悟していたのですが、ChatGPTに聞けばできるというので挑戦することにしました。
↑安物のブレッドボードのせいでジャンパー線だらけ。見てくれは悪いですが、私のFlightGearに新たな楽しみ方が一つ増えました
●方法
Pico用コードは、従前のものがそのまま使用可能です。ただし、扱うFlightGearデータの数の違い、すなわち速度や高度だけからピッチやロール機首方位までなどの数の違いから起きるエラーは、Pico側のコードで対処でき、その1行であるif len(s) >= 〇:の〇部分の数字を、一番多いデータ数に変えるだけで回避ができます。したがって、扱うデータを指定するxmlファイルも複数設ける必要はなく、一つで済ませられるのも助かります。
実質変更が必要なのは、パソコン側PCブリッジのコードでUDPを2か所に送るように設定(PicoのCOMポートに注意)、FlightGear側も起動オプションでUDPを2つ出すようにするだけ。ピン配置もいじらなくてよく、これなら楽です。
・パソコン側PCブリッジの改良
|
・FlightGear起動オプション
|
ここでfgdataは/Protocolフォルダに置いた扱うデータ指定用のxmlファイル名
●私のFlightGearの楽しみ方が1つ増えました
無事、速度計、水平儀、高度計、方位コンパスの4つを、それぞれ4つのOLEDに表示させることができました。各計器ともFlightGaerの画面表示に遅れることなく順調に動いています。さすがに0.96インチでは画面があまりに小さくて、目盛の文字に比べても計器が小さく、見づらいものになっていて、もう少しサイズの大きいディスプレイが欲しいところです。
安物のブレッドボードを使ったせいで、直接ジャンパー線でつながないと動かない憂目にあい、写真のように配線がうざいことになっています。せめてパネルで覆うことぐらいはしたらよいのですが。なお、目的がコクピットの実体化ではなかったので、今回の連載もこれくらいでおしまいとします。
もし、自分のコクピットを作ろうというのであれば、やはり計器は最低6つ、そしてスロットルレバーくらいは欲しいですね。

