新しいものづくりがわかるメディア

RSS


Raspberry Pi Picoを使ってフライトシミュレーター用ジョイスティックをレストア

フライトシミュレーター用の古いジョイスティックをパソコンに接続して再利用できるようにするプロジェクトをRaspberry Pi公式ブログが紹介した。

公式ブログ記事では、中古の英Ultra Electronics製ジョイスティック本体内部の配線などを調べて、PCにUSB接続できるコントローラーとして利用できるようにするまでの過程を紹介している。また、この過程でさまざまな入力デバイスをUSBジョイスティックとして利用できるようにするRaspberry Pi Pico上で動作するプログラムも作成している。

まず、メインのジョイスティックから出ているケーブルを調べたところ、ケーブルの端には9ピンコネクターと15ピンのゲームポートコネクターがつながっていた。本体内部の基板は、アナログ値をデジタル値に変換するA/Dコンバーターをいくつか搭載しており、「MAX232」と記載されたチップも搭載していた。このチップファミリーは、5VのロジックレベルをRS232通信で使用する15Vレベルに変換するために使用されるので、9ピンコネクターは恐らく通常のRS232コネクターだろうと判断された。

Raspberry Pi Pico Brings Junked Joysticks Back to Life

そこで、通常のUSBシリアルコンバーターと電源アダプターをつないで、ジョイスティックをコンピューターと接続し、シリアル接続でいくつかの構成を試したところ、ジョイスティックを操作したりボタンを押したりすると規則的なデータストリームを返す構成を発見した。

Raspberry Pi Pico Brings Junked Joysticks Back to Life

ジョイスティックはボーレート9600で動作し、8ビットのデータを送信していることが判明した。各ボタンの入力内容はデータ内の1ビットに、ジョイスティックのX/Y軸の動きは出力内の1バイトにそれぞれ対応しており、2の補数でエンコードされていることも分かった。そこで、自作のPythonプログラムでジョイスティックからのデータを取得し、CircuitPythonを使用してRaspberry Pi Pico上で動作させている。

CircuitPythonプロジェクトでは、通常、code.pyファイルにPythonのコードを記述するが、code.pyのコードはUSBを初期化した後に実行されるため、デバイス設定を変更するには遅すぎる。そのため、CircuitPython起動時に実行されるboot.pyファイルを編集することで対応している。

関連情報

おすすめ記事

 

コメント

ニュース

編集部のおすすめ

連載・シリーズ

注目のキーワード

もっと見る