プチカスタマイズ
はじめに
iFlight CineBee 75HD の ESCをお釈迦にしたので(記事)代わりが届くまで少しカスタマイズしようと思います。ただし、フライトレビューや、みんなが知りたいジェロフリーなCineWhoop性をまだレビューしていないので、機体の性能をデフォルトから大きく変えるようなことはしないようにします。
ということで、今回は機体から送信機にテレメトリーデータを送信できるようにします。また、そのテレメトリーを利用してOSD内でもRSSIが表示できるように設定します。
テレメトリーを受信できるようにする
どうやって実現するか?
通常は受信機からのRCコントロール信号をFCが受信するポートの他に、FCから受信機へテレメトリーデータを送信するためのポートが必要です。FCへ入る信号と、FCから出る信号ですね。
しかし、CineBee 75HD の FCにはUARTポートが2つしかなく、受信機の SBUS と VTX のコントロール用の SmartAudio で使い切ってしまっていますので、テレメトリー用のポートがありません。
そこで対策として、
他のポート、例えばLED用のポートをテレメトリー用に設定し直す方法。
もう一つは FrSky の F.PORT 接続に変更する方法があります。
そこでまず F.PORT をやってみました。
FrSky F.PORT 設定
まず受信機のファームウェアを F.PORT 用の物に書き換える必要があります。別記事を参考にしてください。
次にFCとの接続方法を変更します。下図が iFlight が出している接続図です。この図の一番下にF.PORT用の設定が載っています。
現在の接続からの変更点は、水色のコードの受信機側を、SBUS_OUT から F.PORT のところに差し替えるだけで済みます。
その後、Betaflight Cofigurator の基本設定で受信機のところの「シリアル受信プロトコル」を SBUS からFrSky F.PORT に変更します。
さらに、CLIタブから、
set serialrx_inverted = ON
set serialrx_halfduplex = OFF
save
と入力・保存します。これで終了です。再度受信機のバインドからやり直せば F.PORT によるコントロールができます。Betaflight Cofigurator の受信機タブで確認しましょう。
F.PORT でテレメトリーが取れない
せっかくファームウェアを書き換えてまでやったのにテレメトリーが見えません。そこであれこれやってみることにしました。現象としては、受信機からFCはOK、FCから受信機へはダメ。そこで FC側の RX2 に接続されているコードを TX2 に接続し直しました。今度は受信機からFCへもダメになりました。 CLIから
パターン1
set serialrx_inverted = OFF
set serialrx_halfduplex = ON
パターン2
set serialrx_inverted = ON
set serialrx_halfduplex = ON
パターン3
set serialrx_inverted = ON
set serialrx_halfduplex = OFF
パターン4
set serialrx_inverted = OFF
set serialrx_halfduplex = OFF
も接続を変える都度試してみましたが成功しません。どうやらTXもRXも完全一方通行のようです。なにか忘れてないか確認してみましたが解決しそうにありませんでしたので、F.PORT はさっさと止めましたw
再びSBUSへ
F.PORT でのテレメトリーがうまくいかなかったので初めの接続方法に戻しました。そして受信機のファームウェアをまた書き換えます。次に試してみるのは、SBUS + Smart Port です。
接続コードを追加する
現在、受信機とFCは電源・グランド・SBUSの3本のコードで接続されています。ここに Smart Port 用のコードを追加します。このコードがFCから受信機へテレメトリーデータの送信に使われます。
追加するコードの接続先は、受信機側が S.Port でFC側が TX2 になります。
FC側のTX2ポートは FCのバージョンによって違います。自分のは V1.2 ですので、ピンク色のところですね。
そして接続が完了した写真がこちら。
FCと受信機が緑色になっているのはすでに防水処置をした後だからです。
ソフトシリアルを設定する
FCのTX2パッドへ接続したのでこのパッドが Smart Port として機能するように設定します。Betaflight Cofigurator のCLIから、
resource
と入力してEnterキーを押します。すると現在の割り当て状況が表示されます。
Entering CLI Mode, type 'exit' to return, or 'help'
# resource
resource BEEPER 1 B02
resource MOTOR 1 B04
resource MOTOR 2 B05
resource MOTOR 3 B06
resource MOTOR 4 B07
resource MOTOR 5 B03
resource MOTOR 6 B10
resource PPM 1 A03
resource LED_STRIP 1 A08
resource SERIAL_TX 1 A09
resource SERIAL_TX 2 A02
resource SERIAL_RX 1 A10
resource SERIAL_RX 2 A03
resource I2C_SCL 1 B08
resource I2C_SDA 1 B09
resource LED 1 C13
resource LED 2 C14
resource SPI_SCK 1 A05
resource SPI_SCK 2 B13
resource SPI_MISO 1 A06
resource SPI_MISO 2 B14
resource SPI_MOSI 1 A07
resource SPI_MOSI 2 B15
resource ADC_BATT 1 B00
resource ADC_CURR 1 B01
resource OSD_CS 1 B12
resource SPI_PREINIT_IPU 1 A04
resource SPI_PREINIT_IPU 2 B12
と表示されます。resource SERIAL_TX 2 A02 のところを、resource SERIAL_TX 11 A02 と変えます。今までA02というところがTX2だったけど、A02をソフトシリアルにしますよ。という設定です。ソフトシリアルは11番と12番の2つが使えますので11番を割り当てます。
resource SERIAL_TX 11 A02
save
再起動後基本設定タブを開き、「そのほかの機能」でSOFTSERIAL と TELEMETRY を有効にします。
再び再起動後にポートタブを開くと、ポートに SOFTSERIAL1 が追加されていますので、テレメトリー出力のところを SmartPort を選択して保存して再起動します。
ソフトシリアルを使用するとCPU負荷が余分にかかると言われます。すべて設定を終えた段階で CPU使用率は 16%でした。ソフトシリアルを使う前は14%でしたので2%の増加。まあ無視できるレベルですねw
テレメトリーの確認
バッテリーを接続して受信機をONにします。送信機のモデル設定から TELEMETRY ページを開き、「Discover new seneors」を選択してEnterキーを押すとセンサー探索モードに入ります。
するとすぐにテレメトリーが表示されます。数秒待ってから「Stop discovery」を押してセンサー探索モードを抜けます。
次に送信機のモデル設定の DISPLAY を開き、Screen 1 を Numsにして表示項目をRSSI、VFAS、A4 に設定しました。VFASはバッテリー電圧、A4はそれをセル数で割った値
送信機の初期画面に戻り、ページボタンを長押しすると、上のDISPLAYで設定した画面が表示されます。
以上で iFlight CineBee 75HD でテレメトリーが表示されるようになりました。
RSSIを取得する
送信機側の設定
送信機でテレメトリーが取れるようになったので、その中のRSSIのデータを受信機に送り返してやります。
送信機のモデル設定でINPUTページを開きます。空いているところを選択して Input : RSI、Name : RSSI
そして Source をテレメトリーのRSSIを選択します。Scale を100にします。(下図参照)
続いてモデル設定のページを送ってMIXER ページを開きます。ここで上で設定したINPUTのRSSIをどのチャンネルで送信するか設定します。自分はCH7が空いていたのでそこに割り当てます。Mix name : AUX3(空いているところ)Source : RSI(INPUTで入力した名前)
これで7CHにRSSIの値が送信されます。
参考:私が使用しているチャンネル
CH1 エルロン
CH2 エレベータ
CH3 ラダー
CH4 スロットル
CH5 AUX1 (アームに使用)
CH6 AUX2 (フライトモードの選択)
CH7 AUX3 (RSSI)
CH8 AUX4 (ビーコン、Flip Over After Crashで使用)
FCでRSSIを受信できるようにする
Betaflight Cofigurator の受信機タブを開きます。「RSSI チャンネル」で先ほど送信機のMIXERで設定したCH7のAUX3を選択します。保存して再起動します。
これでFCにRSSIが取り込めましたので、あとはOSD画面のお好きなところに表示するといいかと思います。
まとめ
以上で iFlight CineBee 75HD でもテレメトリーの受信とRSSIの表示が出来るようになりました。
送信機側でテレメトリーの電圧を監視してアラームをならしたり音楽を再生したりできるようになります。または機体が北を向いたときにビープをならしたり(需要ないかw)Betaflight 4.0 からはGフォースも出力できるので3Gを越えたら悲鳴をあげるとか(もっと需要ない・・)なにかいろいろできそうですね。
次回に続く