MobiFlight|ロータリーエンコーダを使ってみる

2022年4月29日
今回の開発環境 Window 11
MobiFlightバージョン9.3.2
Mega 2560 Arduino互換ボード

ロータリーエンコーダを使うことでMSFS2020の操作性は格段に良くなる。無線周波数・高度・方位等、ノブを使うところにはこれが必要になる。mobiflightでもロータリーエンコーダは当然サポートされていて割と簡単に設定できる。

今回は、オートパイロット時に使用するHDG_BUGの操作を、ロータリーエンコーダを使ってやってみる。

A320 Neo のHDG の数値をエンコーダによって変化させることができる。他の機体、セスナ等も多分同じようにできると思う。

回路図

エンコーダのDTおよびCLKをDigital Inputに、GNDをarduinoのGNDに接続します。

注意点が一つある、エンコーダーにプルアップまたはプルダウンの抵抗を入れてやる方法もあるが、これでやっていたら廻りはするが不安定な状態になっていた、上の図のように何もしないで直接素直に繋いだ方がうまく動作したので報告しておきます。

Arduino Megaのピンとタイプの設定をする

下の方にある項目は既に作成されたモジュールが表示されている。これに新しいモジュールを作成するために。まず赤枠のところをクリックするところから始める。

ディバイスを右クリック、Add device Encoderと選択。

mobiflightのデバイス設定は下記の通り。今回は8ピンと9ピンに設定。
最後に左下のアップロードボタンを必ず押すこと。

モジュールを現在の構成で本当に更新しますか?
と出るのでOKですすめる。

最後にSettingウインドウ戻ったら右下のOKをクリック。

作成した構成に機能をMappingする

下の画面では既に1つ作成されたものがあるが、それは無視してその下を新しくダブルクリックで追加する。

名前をここではHDG Bagとしている。右端をクリック。

「Input」タブを選択して、Choose inputを以下のように設定する。
ModuleはAlduino Megaを指定、Deviceは先に作成したエンコーダの名前を選択する。

更にInput setteingsが出るので、On Leftから設定する。

まず、タイプを以下のように選択。

すると設定が更に下に追加されるので以下のように選択する。

最初に「On Left」だから左回り?左に回したときに普通は数値が下がる。HEADING BUG DECはデクリメントで減らすだから、ここでは「HEADING BUG DEC」を選択することになる。

次に「On Right」だから右回り?右に回したときに普通は数値が上がる。HEADING BUG INCはインクルードなので増やすということだから、ここでは「HEADING BUG INC」を選択することになる。

もし、逆になった場合はピン番号を入れ替えるだけで解決するのでここでは神経質になる必要は無い。

最後にOKボタンをクリック。

最後にメイン画面でHDG_BugのActiveにチェックマークを入れる。

これで完了になる。

MSFS2020を起動、AutoRunをオンにすれば自動でMobiFligtが起動するので便利。
ロータリーエンコーダを廻すと、HDGの数値が変化しているのを確認できるはずである。