デバイスの自作

Last-modified: 2024-04-09 (火) 18:57:04

便利な外部ソフトのページから独立させました。
皆さまの自作デバイスについて情報提供をお願いします!
※デバイスの自作は自己責任です。怪我や事故に気を付けてください。



はじめに

今日ではマイコンボードや3Dプリンタによる電子工作の隆盛により、素人でも安価・簡単にデバイスを自作できるようになりました。
フライトシミュレータでは以下の理由からデバイス自作のメリットがあります。

  • アナログ軸、ボタン・スイッチ類がたくさん必要
  • 計器データやAPの設定など、表示したい情報が本質的に多い
  • SimConnect等でFSと接続することができる
  • 市販品を買い揃えると莫大なコストがかかる


    やや趣旨とは外れますが、本格的なホームコックピットを作成する方もいらっしゃいます。

ジョイスティックの自作

Arduino Microを使用したジョイスティック作成(例:ボリューム 1つ)

  • Arduino Joystick テストプログラム
    #include "Joystick.h"
    Joystick_ Joystick;
    const unsigned long cycleDelta = 25;
    unsigned long nextTime = 0;
    void setup() {
      // put your setup code here, to run once:
      Joystick.setThrottleRange(0, 1023);
      //auto send mode false
      Joystick.begin(false);
    }
    void loop() {
      // put your main code here, to run repeatedly:
      if (millis() >= nextTime) {
        Joystick.setThrottle(analogRead(A0));
        Joystick.sendState();
        nextTime = millis() + cycleDelta;
      }
    }
  • 動作確認
    • 一度、Arduinoに接続したUSBケーブルを抜き差しして
      Windowsのスタート -> Windows システムツール -> コントロールパネル -> ハードウェアとサウンド -> デバイスとプリンター
      でArduino Microが認識できているか確認する。
      デバイス一覧.png
    • 認識できていたらArduino Microを右クリックしてゲームコントローラの設定をクリック
    • Arduino Micro選択した状態でプロパティボタンを押下する
      ゲームコントローラ.png
    • テストのタブを選択。ボリュームのつまみを回しスロットルが動けば確認完了
      プロパティ.png

MIDIコントローラ + FreePIE + vJoy によるゲームパッドエミュレーション

*注意:現在使用中のゲームパッドと干渉しゲームパッドが使えなくなる可能性があるため
    PC環境をバックアップして元に戻せるようにしたほうが良い。
    (筆者は調査中にOSの再インストールをしている)

  • ソフト
    • MIDIコントローラ(例:KORG nanoKONTROL2)
      nanoKONTROL2_1.png
      下記のURLからドライバーを入手しインストールする
      nanoKONTROL2 ドライバー
    • FreePIE(汎用入力デバイスエミュレータ)
    • nanoKONTROL2用Script(nanoKONTROL2用)
    • vJoy(ジョイスティックエミュレータ)
    • Pocket MIDI(MIDIコントローラのボタン等のコードを調べる)
  • 使い方
    • vJoyフォルダにある下記のDLLをFreePIEインストールフォルダに上書きコピーする
      ・DLLファイル:vJoyInterface.dll、vJoyInterfaceWrap.dll
      ・コピー先フォルダ:C:\Program Files (x86)\FreePIE
    • Configure vJoy Devicesを起動し1ページ目と2ページ目を下記のように設定する。
       1ページ目:Number of Buttons 32-> 36
      vjoy1_1.png
       2ページ目:Number of Buttons 32-> 0
      vjoy2_1.png
      初回は2ページ目が無いので2ページ目の"Add Device"ボタンを押してその後、Windows再起動。
    • FreePIEを起動し"File"->"New"でエディタを開き、ダウンロードしたスクリプトを貼り付ける。
      (nanoKontrol2_FreePIE_vJoy.py)
      その後、"Script"->"Run"で実行。うまくいくと下の"Watch"タブにMIDIコントローラの反応がある。
      全てのスライダー、つまみ、ボタンが動いていることを確認する。
      *うまく動かない場合は"Script"->"Stop"、"Script"->"Run"でスクリプトを再起動する。
      freepie1.png
    • FreePIEの"Watch"タブにMIDIコントローラの反応があればゲームパッドは
      エミュレーション出来ているのでMSFS2020でボタン等の割り当てを行う。
  • vJoyとXbox oneコントローラとの干渉
    • vJoyとXbox oneコントローラを同時に使おうとするとXbox oneコントローラが使えなくなることがある。
      この場合はWindowsのコントロールパネルのデバイスとプリンターでHID準拠ゲームコントローラの
      ドライバを更新すると治る場合がある。但し、再現性がない。
      参考 : Fix for vJoy and Xbox One controller not working
  • 他のMIDIコントローラでの使用
    • USB接続タイプのMIDIコントローラはUSB Device Class MIDI Devicesに適合しているため
      使える可能性が高い。使える場合、Pocket MIDIで押したボタンのコードが分かるため後は
      FreePIEのスクリプトを書けば使用可能。
      Pocket MIDIで表示するコードは16進数、FreePIEのスクリプト記入時は10進数なので変換しておくこと。
      pocketmidi1.png
    • 動作実績
      Roland A-49 MIDIキーボードコントローラー
      KORG nanoKONTROL Studio
      ・Arduino を MIDIコントローラ化
        ArduinoをMIDIコントローラにすると可変抵抗、スイッチ、ロータリーエンコーダを
        使用することが可能になる。パネルを自作すれば応用範囲は広い。
      Arduino_Encoder.png

ヘッドトラッカーの自作

TrackIRもどきのヘッドトラッカーを安価に作ることができます。

Webカメラによる顔認識や赤外線LED認識

  • 顔認識タイプではWebカメラやスマートフォンでリアルタイムに撮影した画像から顔の向きを判定します。
    顔に何もつけなくてよいというメリットがあります。
    自作品とも言えないため、便利な外部ソフトのページを参照してください。
     
  • 赤外線認識のタイプではTrackClip PROのパチモン(赤外線LED3個をヘッドセットに取り付ける)を制作し、IRフィルタを除去したWebカメラで光点を取得することになります。
    ソフトウェアはOpenTrackやFaceTrackNoIRが有名です。
    作例はYoutubeにいくらでも挙がっています。「DIY TrackIR」などで検索してみてください。
    loading...
     
    loading...
     

EDTracker

Pro Micro(Arduinoの互換品)と加速度センサーであるMPU9250を組み合わせ、3DOF(ピッチ・ロール・ヨーのみ)のUSB接続ヘッドトラッカーを制作できます。
EDというのはElite Dangerousの略だと思われますが、FS2020でも使用できます。

以下のページで日本語での作例が紹介されています。

もともとedtracker.org.ukというサイトでハードウェアが製品化・販売されており、副産物として自作者へのソフトウェアの提供もされていたようです。
現在ではedtracker.org.ukは閉鎖されていますが、ソフトウェアは以下のサイトで配布されています。

私の作例ではMPU9250で安定して動作しました。3DOFに目を瞑れば十分実用に耐えると思いますが、何故かロールについては反応しませんでした。
なお安価なMPU6050を用いた作例では数秒でトラッキングが止まってしまい、実用できませんでした。

MobiFlightでホームコクピットデバイスの自作

MobiFlightを利用してノンプログラミングでデバイス自作

MobiFlight(無料ソフト ※寄付は受付ている) を使うと、ノンプログラミングでホームコクピットデバイスが自作できます。
Arduino (or Raspberry pico) と スイッチやボリューム、ロータリーエンコーダー等の入力デバイス、LCDや7セグ、LEDといった表示デバイスデバイスを接続すれば本格的なフライトデバイスが作成可能です。

MobiFlight公式。

MobiFlight でのデバイス作成については以下のページに日本語の解説があります。

MobiFlightを使用したオートパイロット操作パネル作成(例:エアバスA320 FCU)

MobiFlightを使用したアナログ計器の制作

  • MobiFlightと様々なデバイスを組み合わせて実物に近いリアルなアナログ計器を作成することも可能です。
     
    以下のページでは主にアナログ計器の作例が紹介されています。
  • https://atr.jpn.org/CockpitFactory/index.html
    ※個人ページへのリンクです。

MobiFlightを使用したLCD液晶表示のコントロールパネルの制作

  • MobiFlightではLCD液晶表示パネルを使って様々な情報を表示することもできます。
     
    以下のページでは主にLCD液晶表示のコントロールパネル作例が紹介されています。また、これらははんだ付け無しで制作されています。
  • https://momoji-san.hateblo.jp/entry/2024/02/06/143802
    ※個人ページへのリンクです。