Dropbox

NAKA Drone Racing2024では使用するVTXチャネル毎に合わせたLEDを装着することがレギュレーションに入っています。色を合わせたLEDの搭載が難しい場合にはバッテリーと機体の間に挿入するLEDの貸与もあります(今のところBT2.0コネクターのみ)。それでも自分で搭載したLEDを使用することが望ましいのはいうまでもありません。

チャネル LED色
E1
F1
F4

自分で色違いのLEDを準備して付け替えられるようにすることも考えられますし、FCから制御出来るRGB LEDを装着してVTXチャネルの変更で自動的にLEDの色を変更することも可能です。ここではRGB LEDを装着した場合のBetaflight Configuratorでの設定方法について必要な設定だけを書いておきます。

[ LEDについて ]
LEDの種類について簡単に書いておきます。最近流行りの全周LEDで使用されているのは、おそらく単色LEDと思います。+と-の線だけがLEDにあり電源を接続すれば光ります。これは一般的には色の変更が出来ないLEDになります。
この記事で言うところのRGB LEDというのは電源に加えて信号線があります。これをFC上のLEDポートに接続することによりBetaflightからの制御が可能になります。

写真はKOU_CHAN@LEDで購入したものです。このようにCOBタイプのものですと、一つのLEDセルに対して+5V, -, IN, OUTの4端子が出ています。信号はINから入ってOUTを経て次のLEDのINへと受け継がれて行きます。このためFCからの信号はINに接続してください。

[ BetaFPVのFCにLED Strip関連の不具合 ]
一部のBetaFPVのFCにてLED Stripを有効にするとモーターが回らなくなる不具合があるようです。「LEDつないだらモーターが動かなくなった時(Betaflight)」によると’set dshot_bitbang = OFF’で直ることがあるようです。最後の方に書かれていますが、’set dshot_bitbang_timer = TIM8’が有効であるという情報もあるようです。

[ 前提 ]
Betaflight Configuratorの「基本設定」でLED_STRIPをオンにして「LEDストリップ」タブが現れること。もしこれが出ない場合Firmwareビルドの際にLED Stripオプションが入っていなかった可能性があります。LED Stripを含めてFirmware更新をやり直してみてください。

[ LEDストリップの設定 ]
1. ワイヤーオーダー

最初に必要なのはLEDが何個ついているかを設定することです。”ワイヤーオーダーモード”ボタンを押した後でマトリックス部分をクリックするとLED番号が割り当てられます。スイープして複数のマスを一気に設定することも出来ます。マトリックス上の位置は特に気にする必要はありません。必要な数のLEDが指定されればOKです。もし10灯のLEDであれば番号0から9がどこかに表示されるようにします。完了したら”ワイヤーオーダーモード”ボタンを再度押してワイヤーオーダーモードから抜けてください。

2. 機能の設定

全部あるいは設定したいLEDをマトリックス上で選択し”機能”を”カラー”にします。続いて”オーバーレイ”のところにあるVTXをオンにします。
これでVTX周波数によるLEDの色変更が出来るようになりました。

3. カラーパレットの変更
Betaflightの規定値のままだと目的の色になっていません。「CLIコマンドライン」にて以下のコマンド列を投入してください。
color 2 0,0,255
color 3 120,0,255
color 6 240,0,255
save


具体的には「CLIコマンドライン」を開き、下の方の入力欄に上のコマンドを投入します。スクリーショットでは分かりやすくするためにコマンドを一つ一つ入力した様子を示していますが、上の4行のコマンド(colorが3行とsaveコマンド)を一度にコピーして貼り付ける事が出来ます。saveコマンドを投入後はBetaflightが再起動します。

以上で完成です。VTXチャネルを変更して正しい色が出るかどうか確認してみてください。

実際に設定してみた動画です。ELRS Luaスクリプトからの変更例ですが、OSDスティックコマンドによるVTXチャネル変更でもLED色の変更は行われます。

HDZeroゴーグルをアナログVTXで使うべく手持ちのWildfireを付けたものの画像的に今ひとつでした。そこで新しく受信機を入手することにしました。定番はRaidfireですが、もうちょっと安価なSkyzone SteadyView Xにしました。ところが、これが素直にHDZeroゴーグルに搭載することができませんでした。ということで、その顛末を書いておきます。

SteadyView Xは電源を接続してAV端子に映像を出せるグランドステーションとして出荷されてきます。分解して受信機モジュールを取り出してみると違和感。

右側のWildfireと比べるとピンがだいぶ短いです。HDZeroゴーグルのExpansion Moduleに入れてみると、やや斜めに入れれば動かすことは出来るのですが、ちょっと受信機に触ると外れてしまいます。間に何か入れるかピンを立て直すかと思い、手持ちのピンを見たら全く同じ長さのものしかありません。 

ピンの出荷時の長さ配分のまま受信機に付けられているので、基板の上側にピンがだいぶ飛び出しています。これを基板ギリギリまで押し込んで見ることにしました。

修正途中の写真です。ハンダゴテで温めながら押し込んでやると簡単に修正できます。

あと、念の為、下から2本目のピンは抜いておきました。最初のテストでは全ピン挿入して問題はありませんでしたが、過去にHDZeroゴーグル+SteadyView Xでは、このピンを抜かないと不具合があるという情報がありました。もしかすると解決済みなのかもしれません。

SteadyView Xのピンを修正後にExpansio Moduleに入れてみると収まりが良い感じがします。裏からみるとピンが奥まで入っているが確認できました。

問題はもう一つあって、カバーが色々と付属しているのですが全く使えません。こういう用途のためのカバーがあってキッチリとハマるのですが装着するとロータリースイッチが全く効かなくなります。手で回す部分は問題ないのですがスイッチ本体が横に傾いてしまい回転部分から外れてしまいます。何度も試すと壊してしまいそうです。

Pintsbalesに有ったモデルをTPUで出力して被せてみました。カッチリ感はありませんが、実用にはなると思います。

HDZeroのDVRはTSフォーマットが推奨されています。そのあたりの事情は以前書いた記事をご覧ください。

その時に手作業でTSファイルからMP4への変換方法を書きましたが、やはり面倒です。ということで少しでも楽をするためのプログラムを書いてみました。

[ 特徴 ]
– 再エンコードなしで動作が速い
– ワンクリックでSDカードのTSファイルをまとめて変換
– TSファイルのタイムスタンプをMP4にも反映(手作業の時は諦めていた) -> DVRファイルの時刻を何時も正しくするためにはHDZeroゴーグルにバッテリーを取り付けます

https://github.com/nkozawa/ts2mp4

[ 前提 ]
プログラムを書いたと言っても実際に動画を変換するのはffmpegというツールです。もしffmpegが導入されていない場合は、まずこれを導入しコマンド窓でffmpegと打ち込んで動くようにしておく必要があります。Windowsの場合、おそらく自分でPATHを通すという作業を行わないといけません。

[ 実行ファイル ]
Python3の環境がある場合、公開されているts2mp4.pyを実行してください。MacOSとWindows11のPython 3.11でテストしています。試してはいませんがLinuxでも動くと思います。MacOSとWindows用にはPythonの環境がなくても稼働する実行ファイルも用意しています。

[ 使い方 ]

– Input path(TS files)ボタンを押してTSファイルのある場所を指定します。HDZeroゴーグルのSDカードを指定する事が多いと思います。その場合、SDカード下のmoviesフォルダーを指定します。
– Output path(MP4 files)ボタンを押してMP4ファイルを格納する場所を指定します。
– TSファイルのタイムスタンプをMP4ファイルに反映させる場合はUse Original File Timestampにチェックを入れます。チェックを入れない場合はMP4ファイルのタイムスタンプは現在の時刻になります。
– Start, no overwriteもしくはStart, overwrite allを押して変換を開始します。
“Start, no overwite”は出力先にすでに該当のMP4ファイルがあれば何もしません。新しく録画したものだけを変換するので普通はこのボタンが便利です。ただし判定はファイル名のみで行っています。SDカードを初期化した場合などは考慮が必要です。”Start, overwrite all”は出力先の状態に関係なく全てのTSファイルを変換します。

[ INIファイル ]
Input path(TS files)、Output path(MP4 files)、Use Original File Timestampの設定値はINIファイルに記録されます。次にプログラムを起動するとINIファイルを自動的に読み込みます。

INIファイルはユーザーのホームディレクトリーにts2mp4.iniという名前で書き込みます。

INIファイルの書き込みは、今のところStart, no overwriteもしくはStart, overwrite allを押した時に行なっています。

今までに入手したBetaflight ConfiguratorのLEDタブで構成出来るRGB LED、三種類の簡単な比較です。

購入場所 10cmあたりの重量 10cm当たりの灯数
KOU_CHAN@LED 4mm 約1.35g 16
秋葉原LEDピカリ館 4mm 約0.62g 6
Aliexpress 3.5mm 計測不能 *1 20

*1 入手したものは5cmの長さのもので、うちの電子測りでは軽すぎて計測できませんでした。

< KOU_CHAN@LED >
https://kouchanfpv.base.shop/
入手しやすくお勧めです。LEDの搭載密度が濃いです。光を拡散する被覆があるので美しさを惹き立たせていますが、重量的には不利です。65mm機に全周で搭載した場合4gを超える重量の増加になってしまいます。被覆を削って軽量化を図るという方法もあるようです。

< 秋葉原LEDピカリ館で見つけたもの >
https://www.akiba-led.jp/
実際に店頭で見つけて買ったものです。まあまあ粒の大きいLEDチップが剥き出しになっているものです。LED密度はまばらなのでタイニーより大きな機体に搭載したいと思います。

< Aliexpressで見つけたもの >
密度もあるし幅も狭く軽いので良い感じですが、5cm(10灯)と10cm(20灯)しか見つけられないです。全周装備するのは手間がかかりそう。使い所を検討中。送料がかかるので割高に感じる。また入手までの時間もかかリます。

十字型で軽量かつELRS,25mW VTX搭載のAIOとして期待を胸にいっぱい詰めてHummingBird V3 AIOを試してみました。購入後に本家サイトを見たら日本語でかなり悪いコメントが付いていて愕然。元々英語で二つほど悪いコメントが付いているのは知ってはいましたが、日本語で書いてあるとインパクト強いです。ということをXで書いたらレスいただきました。

[ とりあえずハードウェア的に気になるところ ]
– カメラを接続するコネクターがめちゃ小さいものでした。もしかすると適合するコネクター持っているかも知れないけど、とりあえずはハンダ付けすることに。ハンダ付け用のランドもないのでコネクターを剥がしてそこにハンダ付け。コネクターの跡地が細すぎるので、そこはビデオだけを使用して+5VとGNDは別のところを使用。
– モータ取り付けのコネクターが普通より小さい。実戦機のモーターはハンダ付けだけどお手軽にテストする時はコネクターが使いたかった。モータ用のハンダ付けパッドはあるので、まあまあ問題なし。
– PIDは何かしら設定されてはいるけど、軽量(ドライ18.7g)な65として組み上げた機体には合わないみたい。まだあまり飛ばしていないけど、初期設定のPID値が怪しすぎるので別の機体に合わせて再テスト予定。
- ブザーは無い。ま、外で飛ばさないので良いか。
– 外付けRGB LEDの取り付けが出来ない。ボード上に4灯のRGB LEDが載っているので信号線は探せば見つかりそう。最悪の場合LEDを剥がせば簡単に信号を取り出せるはず。オンポードなLEDもなかなか綺麗。

[ 実際に飛ばしてみた ]
練習会に持って行って飛ばしてみたが、設定に問題があったりして十分にはテスト出来なかった。一応は飛びました。評判からVTXが心配でしたが、何とか写ってはいました。ただ高頻度でOSDの文字がおかしくなった。何文字か表示さけないところがある。で、ARM/DISARMで直ったりする。

まだ全然飛ばし込んではいないので何とも言えないが、お勧めするにはちょっと微妙な気がしている。

これについては多くの人が日本語でも情報発信されている事柄ですが、私自身のメモとして買いておきます。
基本設定は「FCからコントロールするLEDテープを試す」に従います。その上で使用するLEDを選択し機能をカラー、オーバーレイでVTXをオンにすれば設定完了です。これでVTXチャネルをsmartaudioで変更するとLEDの色が変わるようになります。

チャネルに対する色の割り当てについてはBetaflight Wikiに書かれています。周波数レンジ毎にどのカラーインデックスが選ばれるかが記述されています。日本でよく使われている3チャネルだけをまとめてみると以下のようになります。

チャネル 周波数 カラーインデックス 規定値
E1 5705 2 Red(0,0,255)
F1 5740 3 Orange(30,0,255)
F4 5800 6 Green(120,0,255)

カラーインデックスの2,3,6という数字はBetaflight ConfiguratorのVTXタブにあるカラーパレットの数字に相当します。もし色を変更する場合は、このパレットをダブルクリックして編集するかCLIのcolorコマンドで変更します。Orangeはどうも見た目が今ひとつなので香川の師匠の提供によるCLIコマンドを利用して変更しました。
color 2 0,0,255
color 3 120,0,255
color 6 240,0,255

これでそれぞれ赤、緑、青に設定されます。

実際に設定してみた動画です。

HDZeroゴーグルにはHDMI出力があり常にゴーグル内で見ている画像を外部のディスプレイに映し出すことが出来るようになっています。MacBookの外付けディスプレイを時々切り替えてゴーグルの画像を見ていましたが、その時にはMacBookで使用できる無くなるわけで色々と不自由をしていました。そこで入手したのがHDMIからUVCに変換してくれるデバイスです。そういうわけで、これはHDZeroゴーグルに限らずHDMI出力をPCや端末で表示させるための方法です。出張先でFire TV Stickを見るなんてことも出来そうです。

GUERMOK USB 3.0 HDMI to USB C オーディオ キャプチャ カード、4K 1080P60 キャプチャ デバイスというものです。

試したのは小米MiPad5というアンドロイドタブレットです。USB Cameraというアプリを導入したところ何も悩むことなく画面が表示できました。

ただしHDZeroゴーグル側はHDMIコネクターちょっと小さいやつです。それとキャプチャーデバイスを単純な接続すれば大丈夫です。

MacBookでもQuickTome Playerで入力デバイスをUSB3 Videoを選択したら表示できました。

以前の実験でプロポのスイッチでCOB LEDをオフ・オンが出来ることは確認済みでした。今度は実機に設定してARM連動で点灯できることを確認してみました。

ハードウェア接続は前の記事の通りで、LEDのプラスを+5Vに、マイナスをBUZ-に接続しました。

Happymodel DiamondF4 FCでの設定例は以下のようになります。
resource BEEPER 1 NONE
resource PINIO 1 C15
SET PINIO_BOX = 0,255,255,255
save

予めRESOURCEのリストを保管しておくことをおすすめします。RESOURCEコマンドでBEEPERにC15が割り当てられていることを確認したので上のようなコマンド列になりました。PINIO_BOXの最初の0がARMを指します。詳しくはBetaflight wikiをご覧ください。これでARM機能と連動してLEDを点灯させることが出来ます。


もしこの機能連動でのオフ・オンを反転したい場合は、
set pinio_config = 129,1,1,1
などとします。

ここまで実験してきて少し欲が出てきました。3ポジションスイッチを使用して、スイッチが手前の場合はLEDオフ、中間ならARM連動、奥に倒したら常時点灯みたいな設定をしてみます。
まずはPINIO_BOXの設定を変更します。
SET PINIO_BOX = 40,255,255,255
次にモードでUSER1の設定です。

AUX5が3ポジションスイッチでAUX1はARMに割り当てられたものです。ANDとORの設定に注意してください。

これでわたし的には完成です。他の機体にも適用していきます。

昨日の実験していた5Vに接続して常時点灯させていたCOB LEDをスイッチでコントロールする方法を実機投入すべく配線をやり直しました。

もともとHappy Model DiamondF4の下面にある小さなパッドから+5Vを供給していました。配線変更は簡単です。+5VはそのままでGND側の線をBUZ-に移動するだけです。BUZ-が大きなパッドのこのFC、最初からこの配線にしておけばだいぶ楽だったと今更ながら思いました。

あとは昨日の実験通りPINIOを設定しようと思いましたが、この状態で電源を投入してみると起動時にCOB LEDが良い感じに点滅しました。このままブザーとして構成するとなんの制御回路も付加しなくとも単純なLEDでも点滅させることに気がつきました。


普通にワーニングをLEDで表示させたり”RX_SET”でプロポのスイッチでコントロールするも良しです。


RX_SETを指定するとモードにBEEPERが現れるので適当にAUXを割り当てます。

ブザーの場合は飛行中に鳴らしっぱなしにはしませんがLEDを点滅させながら飛行することも可能でした。ただしOSDの警告欄から「ビープ音」をオフにしておかないとOSDの警告表示に* * * *が点滅して鬱陶しいです。

電圧を供給すれば点灯する単純なCOB LEDを追加のハードウェア無しでFCからコントロールしてみたいと思います。

[ 配線 ]
COB LEDのプラスをFCの+5VにCOB LEDのマイナスをFCの-BUZZに接続します。

[ Betafligh設定 ]
Betaflight ConfiguratorのCLIにて以下の操作を実行します。
– Resourceコマンドを投入し全ての設定を万が一のために保存しておく。
– Resourceコマンドの結果からBEEPERを見つけ出す。私の実験したFCでは、
resource BEEPER 1 A14
でした。
– 以下のコマンドを投入。
resource BEEPER 1 NONE
resource PINIO 1 A14
SET PINIO_BOX = 40,255,255,255

二番目のPINIO 1に設定するA14は先のBEEPERに設定されていたものに合わせます。

これでBetaflightのモードタブにUSER1が現れるので適当なスイッチを割りて当てます。

これで必要な時にだけLEDを点灯させることが出来るようになりました。ブザーポートをこういった用途で使用して良いのかどうかは、あまり真面目に検証していませんので、あくまで自己責任でお試しください。LEDに流れる電流がブザーより小さければ問題ないように思います。

ブザーを使わない室内機では、この設定で行ってみようと思います。

[ ブザーポート以外の使用 ]
ブザーポート以外のパッド、例えばTX1などでも同じように設定すればLEDのオフ・オンが可能であることは確認していますが、電気回路的にはおすすめ出来ません。もし試される場合は自己責任^2でお願いします。

[ 外部スイッチの利用 ]
どうしてもブザーポート以外を使いたい。あるいは電気負荷的な安全を見込みたい、またはLEDに限らず大きな電流を制御する場合は外部スイッチを利用するのも良いと思います。

写真はTBSのVTXスイッチです。詳しい説明は省きますが、これを使用してLEDのオフ・オンが出来ることは実験で確認しています。

[ AUXスイッチ以外のモードでLEDを制御したい ]
まずは簡単なPINIO設定の説明から行います。
“RESOURCE PINIO 1 A14″というのは四つ設定できるPINIOの1番をFCのA14(私の実験では-buzzのパッド)に割り当てるという意味です。
“SET PINIO_BOX = 40,255,255,255″は四つのパラメーターで四つのPINIOに機能を割りてています。数字の意味はBetaflight Wikiに記述されています。ここではPINIO 1を40にしています。この40はUSER1であるとWikiに書かれています。これでモードタブのUSER1とPINIO1が関連付けられています。また255は何も設定しないという意味です。

この40のところを別の値に設定すれば他の機能に連動してLEDを点灯させることが出来るはずです。テスト環境で”SET PINIO_BOX = 1,255,255,255″を試してみたところ目論見通りにANGLEにした時のみLEDを点灯させることが出来ました。試していませんが0にすればARMしている時だけ点灯できるものと思います。