便利な外部ソフトのページから独立させました。
皆さまの自作デバイスについて情報提供をお願いします!
※デバイスの自作は自己責任です。怪我や事故に気を付けてください。
はじめに
今日ではマイコンボードや3Dプリンタによる電子工作の隆盛により、素人でも安価・簡単にデバイスを自作できるようになりました。
フライトシミュレータでは以下の理由からデバイス自作のメリットがあります。
- アナログ軸、ボタン・スイッチ類がたくさん必要
- 計器データやAPの設定など、表示したい情報が本質的に多い
- SimConnect等でFSと接続することができる
- 市販品を買い揃えると莫大なコストがかかる
やや趣旨とは外れますが、本格的なホームコックピットを作成する方もいらっしゃいます。
ジョイスティックの自作
Arduino Microを使用したジョイスティック作成(例:ボリューム 1つ)
- Arduino Microを使ってジョイスティックを作成する。
例ではボリューム 1つをスロットルになるようにする。
下記のライブラリAPIを使用しプログラムを作成すれば様々な入力(ボリューム、スイッチ、ロータリーエンコーダ)が可能になる
*注意:本内容は電子工作機器をPCに接続するため誤ってPCを故障させる可能性がありますので自己責任でお願いいたします - 開発用ソフトのインストール
以下のURLにある手順に従い、開発用ソフトをインストールする。
- 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; } }
- 購入資材(2020/10/11現在 合計3,440円)
*手持ちのもの、または半田付けが出来る方はブレットボード関係、ケーブル等は不要
購入先:株式会社 秋月電子通商*ノブは個人の好みのものを選んでください。(千石電商の方が取り扱い種類が多い)部品名 単価 Arduino Micro 2,780円 基板取付用ボリューム 10kΩB 60円 ブレッドボード BB-102 300円 ブレッドボード・ジャンパーワイヤ(オス-オス)10cmセット 180円 USBケーブル USB2.0 Aオス-マイクロBオス 0.5m A-microB 120円
また、ボリュームのシャフト部分とノブの取り付け部にはいくつか種類があるため
実物で取り付けられるか確認したほうが良い。
上記の基板取付用ボリュームはDシャフト(半月形)、パネル取り付けタイプはローレット加工等
購入先:株式会社 千石電商 - 部品組み立て
下図の様に部品をブレットボード上に組み立てる。Arduino MicroはUSBケーブルでPCに接続する - プログラム書き込み
下記のURLにある内容を参照しArduinoにプログラムを書き込む
Arduino IDEでArduinoボードにプログラムを書き込み方法
- 動作確認
- 一度、Arduinoに接続したUSBケーブルを抜き差しして
Windowsのスタート -> Windows システムツール -> コントロールパネル -> ハードウェアとサウンド -> デバイスとプリンター
でArduino Microが認識できているか確認する。 - 認識できていたらArduino Microを右クリックしてゲームコントローラの設定をクリック
- Arduino Micro選択した状態でプロパティボタンを押下する
- テストのタブを選択。ボリュームのつまみを回しスロットルが動けば確認完了
- 一度、Arduinoに接続したUSBケーブルを抜き差しして
MIDIコントローラ + FreePIE + vJoy によるゲームパッドエミュレーション
*注意:現在使用中のゲームパッドと干渉しゲームパッドが使えなくなる可能性があるため
PC環境をバックアップして元に戻せるようにしたほうが良い。
(筆者は調査中にOSの再インストールをしている)
- ソフト
- MIDIコントローラ(例:KORG nanoKONTROL2)
下記のURLからドライバーを入手しインストールする
nanoKONTROL2 ドライバー - FreePIE(汎用入力デバイスエミュレータ)
- nanoKONTROL2用Script(nanoKONTROL2用)
- vJoy(ジョイスティックエミュレータ)
- Pocket MIDI(MIDIコントローラのボタン等のコードを調べる)
- MIDIコントローラ(例:KORG nanoKONTROL2)
下記のURLからドライバーを入手しインストールする
- 使い方
- vJoyフォルダにある下記のDLLをFreePIEインストールフォルダに上書きコピーする
・DLLファイル:vJoyInterface.dll、vJoyInterfaceWrap.dll
・コピー先フォルダ:C:\Program Files (x86)\FreePIE - Configure vJoy Devicesを起動し1ページ目と2ページ目を下記のように設定する。
1ページ目:Number of Buttons 32-> 36 2ページ目:Number of Buttons 32-> 0 初回は2ページ目が無いので2ページ目の"Add Device"ボタンを押してその後、Windows再起動。 - FreePIEを起動し"File"->"New"でエディタを開き、ダウンロードしたスクリプトを貼り付ける。
(nanoKontrol2_FreePIE_vJoy.py)
その後、"Script"->"Run"で実行。うまくいくと下の"Watch"タブにMIDIコントローラの反応がある。
全てのスライダー、つまみ、ボタンが動いていることを確認する。
*うまく動かない場合は"Script"->"Stop"、"Script"->"Run"でスクリプトを再起動する。 - FreePIEの"Watch"タブにMIDIコントローラの反応があればゲームパッドは
エミュレーション出来ているのでMSFS2020でボタン等の割り当てを行う。
- vJoyフォルダにある下記のDLLをFreePIEインストールフォルダに上書きコピーする
- vJoyとXbox oneコントローラとの干渉
- vJoyとXbox oneコントローラを同時に使おうとするとXbox oneコントローラが使えなくなることがある。
この場合はWindowsのコントロールパネルのデバイスとプリンターでHID準拠ゲームコントローラの
ドライバを更新すると治る場合がある。但し、再現性がない。
参考 : Fix for vJoy and Xbox One controller not working
- vJoyとXbox oneコントローラを同時に使おうとするとXbox oneコントローラが使えなくなることがある。
- 他のMIDIコントローラでの使用
- USB接続タイプのMIDIコントローラはUSB Device Class MIDI Devicesに適合しているため
使える可能性が高い。使える場合、Pocket MIDIで押したボタンのコードが分かるため後は
FreePIEのスクリプトを書けば使用可能。
Pocket MIDIで表示するコードは16進数、FreePIEのスクリプト記入時は10進数なので変換しておくこと。 - 動作実績
・Roland A-49 MIDIキーボードコントローラー
・KORG nanoKONTROL Studio
・Arduino を MIDIコントローラ化
ArduinoをMIDIコントローラにすると可変抵抗、スイッチ、ロータリーエンコーダを
使用することが可能になる。パネルを自作すれば応用範囲は広い。
- USB接続タイプのMIDIコントローラはUSB Device Class MIDI Devicesに適合しているため
ヘッドトラッカーの自作
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でも使用できます。
以下のページで日本語での作例が紹介されています。
- https://ht-deko.com/arduino/edtracker.html
※個人ページへのリンクです。リンク先のページの作者への質問などはご迷惑となるので絶対にしないでください。
もともとedtracker.org.ukというサイトでハードウェアが製品化・販売されており、副産物として自作者へのソフトウェアの提供もされていたようです。
現在ではedtracker.org.ukは閉鎖されていますが、ソフトウェアは以下のサイトで配布されています。
- https://github.com/brumster/EDTracker2
- https://github.com/brumster/EDTracker2_ArduinoHardware
Arduino用ファームウェア、接続用ソフトウェアなどが一式揃っており、1行もコードを書かずに作成できます。
私の作例ではMPU9250で安定して動作しました。3DOFに目を瞑れば十分実用に耐えると思いますが、何故かロールについては反応しませんでした。
なお安価なMPU6050を用いた作例では数秒でトラッキングが止まってしまい、実用できませんでした。
MobiFlightでホームコクピットデバイスの自作
MobiFlightを利用してノンプログラミングでデバイス自作
MobiFlight(無料ソフト ※寄付は受付ている) を使うと、ノンプログラミングでホームコクピットデバイスが自作できます。
Arduino (or Raspberry pico) と スイッチやボリューム、ロータリーエンコーダー等の入力デバイス、LCDや7セグ、LEDといった表示デバイスデバイスを接続すれば本格的なフライトデバイスが作成可能です。
MobiFlight公式。
MobiFlight でのデバイス作成については以下のページに日本語の解説があります。
- https://zenn.dev/07jp27/books/mobiflight-msfs2020-build-controller/
※個人ページへのリンクです。 - https://skymeetsdigital.blog/?p=527/
※個人ページへのリンクです。
MobiFlightを使用したオートパイロット操作パネル作成(例:エアバスA320 FCU)
- MobiFlightとArduinoを使ってオートパイロット操作パネルが作成できます。
制作例1 - https://www.inabablog.com/mobiflight-a320/
※個人ページへのリンクです。 - https://polo-web.com/WP/mobiflight-flybywire-a32nx-set-all-of-the-autopilot-switches/
※個人ページへのリンクです。
MobiFlightを使用したアナログ計器の制作
- MobiFlightと様々なデバイスを組み合わせて実物に近いリアルなアナログ計器を作成することも可能です。
以下のページでは主にアナログ計器の作例が紹介されています。 - https://atr.jpn.org/CockpitFactory/index.html
※個人ページへのリンクです。
MobiFlightを使用したLCD液晶表示のコントロールパネルの制作
- MobiFlightではLCD液晶表示パネルを使って様々な情報を表示することもできます。
- https://momoji-san.hateblo.jp/entry/2024/02/06/143802
※個人ページへのリンクです。
タッチパネルを使ったコントロールパネルの自作
Touchscreen Mini Panel
液晶タッチパネル(7または10インチ)と4個のロータリーエンコーダーにより操縦席のスイッチ類を操作するする便利なツールが、設計者のDiscman777氏によりYoutubeに紹介されている。製作方法や詳細なマニュアル類、ソースファイル等一式は無償で公開されており、簡単な電子工作の経験があればプログラミングの知識がなくても自作が可能。2021年4月の初版からバージョンアップを繰り返し、最新のv.4.10.25では約20の機体に対応している。
- 試作した感想
液晶パネルの表示を切り替えることで多様なスイッチ類に対応するというコンセプトで、市販されている他のツールとは一線を画したデバイスだと思います。視認性も良く、ダイヤルによる針路、高度、速度などの操作性は抜群です。製作にはESP32のマイコンをブレッドボードを使って結線し、半田付けなしで組み上げることができました。パネルは製造元Nextionの直販サイトから、その他の部品はAmazonで調達できます。PCとのインターフェースにはSPAD.neXt(ライセンス要)を使用。
- Discman777氏のYouTubeチャンネル
https://youtube.com/@discman777