Dropbox

剥きプロ Naked GoPro への道、BetaFPV BEC Boardの安全性

訂正) 最初、電子回路的な説明に大幅な間違いがあったので訂正しておきます。最初のを読んで疑問を持たれた方、忘れてください。m(_ _)m

BetaFPV GoPro Liteを95Xフレームに載せての飛行は快適でかつ安定しているのでかなり気に入っています。BECボードのおかげで簡単に配線できるリモートでの録画開始停止も使ってみるとやめられない便利さなのですが、何時ものようにFacebookのNaked Goproグループを眺めていたら気になる書き込み(リンク先は、このグループに加入しないと見えません)がありました。

もとの話題はBECボードを使うとGoProのメインボード壊すんじゃない?という問いかけでした。これに対してレスの中で2つの事が語られています。おそらく最初に始まった討論は質問に対する本命の答えではありませんでしたが、大変気になることなのでtwitterで呟いてみると日本の剥きプロな人たちからの反響もあり色々と調べたり考えたりしました。まずはそれについて調べたことを書きます。その後、本命の問題は詳細はわかりませんが少しだけ書いておきます。

[ GoProのRECボタンのコントロールにbuzz-以外を使って良いのか? ]
もともと剥きプロTipsのひとつにRECボタンをRCからコントロールする手法があります。そこにはRECボタンをFCのbuzz-に接続すべしと書かれていました。何故、buzz-かというと他のUARTやLED_StripはプロセッサーのI/Oそのものですがブザーは大きな電流をオフ、オンするためにトランジスタのスイッチが組み込まれています。これが電気的にはGoProのRECボタンを押すことと等価であるためです。これはとても理にかなった方法です。

ところがBetaFPV BECボードの説明によるとLED_Stripに繋げば良いよと書かれています。わたしも素直にそれを信用してLED_Stripで録画開始、停止をコントロールするようにして2日ほど飛ばしていました。ところが、先のFaebookの書き込みによるとLED_Stripを使うとGoProを壊すかも知れないのでbuzz-を使うべしとのことでした。ちょっと心配になり調査を開始。

BECボードの商品写真と手元にあるBECボードが違っている!
LED_Stripを使うなんてとんでもないと言っていた人は現物は持っていなくて商品写真から配線を解析していました。それによると単純にGoProのRECボタンがBECボード上のRECボタンを及びFCに接続するための配線に直結されています。確かにそれは良くないです。というのはGoPro側はRECボタンに1.8VほどのVCC電圧でプルアップしていてそれがボタンを押すことによってGNDに落ちて0Vになることを検知しています。ところがLED_Strip側もオンの状態ではプルアップ電圧3.3Vが出ていてオフだとGNDに落ちるようになっています。GNDに落ちた状態ではいくらかの電流がGoProからFCに流れ込みます。想定されているより少し多い電流がI/Oピンから内部のトランジスタに流れますが、おそらくは問題ありません。FC側が3.3Vになっている場合、FC側の電圧が高いので何かしらの電流がGoPro側に流れ込みます。結果としてRECボタンを検知しているトランジスターには想定より大きな電圧が直接かかります。またプルアップ抵抗を通して、おそらくはVCC電圧もいくらか引き上げることになります。あと、FCから流れ出す電流の分だけ3.3Vのレギュレーターの負荷が想定より増えます。このように信号線の両側が電圧を出すような接続は真っ当なエンジニアは絶対にやりません。

BetaFPVもこのことを知らないはずは無いのでLED_Stripを使っても良いための仕掛けをBECボードに施しているはずだと考えて調べてみると手元にあるボードは商品写真と違っていることが分かりました。

この写真の中央付近にある小さな黒い部品が追加されています。これはおそらくチップ抵抗器で計測したところ約1Kオームのものでした。RECボタンの配線はこの抵抗器を通してFCに接続されるように改良されていました。確かに直結よりはGoProに流れ込む電流を制限することは出来そうです。

なんにせよ計測が大事ということで格安スコープDSO201で調べてみることにしました。

といいつつ、計測は目的のところまでは達せず。GoPro側が1.8V、FC側はRCの操作で3.3Vと0Vを切り替えられることまでを確認しました。そのあと実構成の電圧を計測するつもりでしたが、次に紹介する問題の関連でGoProを壊す可能性があるので取りやめました。

GoPro側の電圧が1.8V近くに落ち着いていれば影響が少ないと考えることも出来ますが完全に安全性を判断できるかというと何とも言えません。1Kオームの抵抗により電圧の差は小さくなり均衡すればGoProに流れ込む電流が小さくなるのは間違いありません。といっても流れ込む電流が無くなることはありません。またもともと供給出来る電力はかなり小さいものなので、それで直ぐにGoProボードを壊すことは無いのかも知れません。

選択肢は、
1) もしbuzz-が使えるのならそちらを使う。
2) 多少のリスクを承知した上でLED_Stripあるいは他のI/Oピンを使ってみる(わたしはバッテリー6本の実績あり)。
3) RCからのリモートコントロールを諦める。
4) 真面目にトランジスターでスイッチ回路を作って組み込む。
です。私的には、まずは3番にしておいて、4番目に挑戦するという方向で進みたいと思います。

先のスレッドでLED_Stripは使ったらいかんと言っていた人に1Kオームの抵抗が入っているけどどう思うと問いかけてみました。彼の答えは、1Kオームでまずまずの電圧にさげられるのかもしれんが、わたしならやはりbuzz-を使うと言っていました。

[ BECボードの接続が悪いとGoProを壊す!? ]
先のFacebookのスレッドにてフランス人の有名なFPV映像クリエイターのFinckが、結局のところLED_Strip使わなければ良いの?と書き込みました。それに対する答えがちょっと驚きです。BECボードがきちんと刺さっていない状態で通電するとGoProのボードが壊れるとのことでした。現在のBECボードにはV1.0と印刷されていますが、対策を施したV2が出来ているようです。

当面は、というか誤動作しないためにもしっかりとBECボードが固定できるようにしないといけません。GoPro Liteケースは大丈夫な気がします。umma85などでBECボード単体で使用する場合は自分で何かしら工夫しないといけません。ちょっとテストするだけだからといってバラ組で電源を上げるのは厳禁ですね。

剥きプロ Naked GoPro への道、BetaFPV GoPro Lite Case, BEC board

BetaFPVが剥きプロニストの強い味方になりました。BEC Board, GoPro Lite CaseそれにGoPro剥いちゃいましたなGoPro Liteそのものを発売開始しました。ただし、GoPro剥いちゃいましたは、最初からかなりの品薄状態です。

早速、GoPro Lite Caseと単体のBEC Boardを入手しました。BEC Boardはケースの方にも付属しています。

BEC BoardはGoProのメインボードと2つのコネクターで接続します。

BEC Board上にはVBATから5Vを作り出すレギュレーターと2つのスイッチそれとLEDが載っています。これでGoProメインボードには一切ハンダ付けをする必要がなくなります。付属のコネクターからは3本のリード線が出ています。VBATに接続する電源線と録画開始、停止をリモートでコントロールするための配線です。

とても便利なBECボードは剥きプロの難易度を引き下げ信頼性の向上に役立ちます。ただひとつ残念なのはマイクロフォンが無くなるため無音のビデオになってしまうことです。これに対応するハックも出てくるかも知れませんがBetaFPVが対応品を販売してくれるのを望みます。

剥きプロのハックのひとつでバッテリーを繋いだらすぐに電源をオンにするジャンパーがあります。これもBECボード上で行えます。

ケースも良くできています。全面はカーボンであとはTPUでできています。

組み立て方はBetaFPVのウェブサイトと下のYouTubeビデオを参考にしました。

GoProLiteにはHero6用のNDフィルターが取り付けられます。

簡単に取り付けられますが、簡単に外れてしまうので要注意です。あと、後ろかの光が写り込んでしまいます。NDフィルターの質にもよるかもですが、黒いビニールテープで穴をふさいでみました。

機体への搭載も完了しテスト飛行も行いました。リモートでの録画開始停止も含めての実装の様子は後で紹介いたします。

2つの事柄について語ってみます。ひとつ目はGoProによる電波障害による墜落、ふたつ目はその墜落によるGoProメインボード破壊です。

わたしのumma85で不可解な墜落を2回経験しました。BlackBoxが無いので確実なことは言えませんが受信機が電波を失ってfailsafeに入ったように思えます。ひとつ確実なのは100mくらいの距離でもRSSIがかなり落ち込む状態であったことです。

– GoPro Hero6のWiFiは2.4GHzでオンのまま使用。(5.8GHzはVTXとぶつかるかもしれないので避けていた)
– 受信機はXM+でFCの上、GoProメインボードとの間に設置。

最初の墜落の後で簡単な実験を行いました。室内にてGoProの電源オフとオンで飛ばしてみてRSSIを見ていると明らかに違いました。GoProをオフにすると室内ではRSSIが90を切ることはまったくありませんでしたが、GoProの電源をオンにすると80を切ることもありました。

ここまで分かっていながら近距離ならばと飛ばしていて2回目の墜落になりました。その時にGoProのメインボードが壊れてしまい電源が上がらなくなったので、この問題の実践的追求は出来ていませんが考えうる対策を列挙してみたいと思います。

– 2.4GHzをやめて900MHzシステムに移行する。日本では難しいですが、海外ならばかなり有効な手段かも。わたしも墜落後にTBS Tango2が到着したので屋外機はすべてCrossfireに移行するところなので、この回避策を試すことになります。

– GoProのWiFiをオフにする。もしWiFiが干渉しているのであれば、これで根本原因を取り除くことができます。わたしは、ほぼGoProの設定を変更しないのでこの方法も悪くはないかもしれません。

– FaceBookに書かれていたことですが、剥き出しのGoProボードはWiFiに関わらず電波干渉を起こすので受信機やアンテナの位置を調整すべしとの事です。これは一理あります。WiFi電波の干渉にしても受信機やアンテナの設置方法で影響を小さくすることが出来るかも知れません。かなり多くの人が問題なく飛ばしているようですし、これも有力な回避策かも知れません。おそらくRSSIの数値を見ながら調整すれば良いので割と簡単に出来そうです。

2回目の墜落でGoProの電源が上がらなくなりました。

シールドの一部がメインボードにありますが、これが機体のどこかに当たって凹んでいます。これを取り除いてみると下のチップが欠けていました。これはレアケースかも知れませんが、次に組み立てる時は何かしら対策を取りたいと考えています。おそらくは以下の対策のどれか、もしくは組み合わせになると思います。
– シールドのレールを取り除いてしまう。
– シールドが落ち込んでチップを傷つけないように、ところどころに詰め物をする。
– 墜落でumma85の上部構造が落ち込んだ時にGoProメインボードが機体フレームに直接当たらないようにどこかにバンパーを設置する。

ただいまBetaFPV GoProLite+Caddx Nebula+95Xに取り組んでいるのでumma85の復活が何時になるかは不明で、これらの対策が実践的にどうなるのかは現時点ではわかりません。

Caddx Nebula Nano / DJI digital FPV用のnanoサイズカメラ

以前から噂されていたDJI digital FPVシステム向けの新しいカメラです。nanoサイズなのでVistaとの組み合わせでより小型の機体に載せることが出来るので期待していました。

販売はNebula単体とVistaとの組み合わせがあります。カメラ単体を購入してDJI Airunitに接続することも出来るようです。DJIカメラと比べて少し安くなるのも嬉しいことです。解像度はDJIのものより少し劣って720Pになりますが、飛ばすことだけを考えるとゴーグルはもともと720Pですしほぼ問題なしです。

Goggleでの設定項目の多くは変更できないようになっています。変更可能なのはFocusモードだけです。画面サイズが16:9固定なのは良いとして、画質に関する設定は将来的に変更可能にしてほしいです。

実際に飛ばしてみると、薄くフラットな色合いに驚きましたが画面は十分に見易く飛行は快適でした。DJIカメラ搭載機と交互に飛ばすと画面の明るさの調整を頻繁に行う必要がありますが、もしかするとDJIカメラより飛ばしやすいかも知れません。

ひとつumma85で忘れ物です。暗いところでしかわからないようですが、カメラモジュールの後ろ側に強い光があるとセンサーに捉えられてしまうそうです。対策は簡単で何か黒いものでカメラモジュールの後ろをカバーすれば良いです。

BetaFPV F4 2-4S AIO FC 12A V2のUART6の修正

BetaFPV F4 2-4S AIO Brushless Flight Controller 12A V2 (BLHeli_S)はWhoop FCながらUARTが3個、それにBlackBox Logが取れるのが特徴です。肝心のUARTについて問題があったので覚え書きとして書いておきます。

購入して構成を見たところPortsは以下のようになっていました。

UART6は、実番号ではないようです。どうもSoftserialでアサインされている模様。ということでCLIでresourceを見ると以下のようになっています(アサインされているポートのみ抜粋)、

resource SERIAL_TX 1 A09
resource SERIAL_TX 2 A02
resource SERIAL_TX 11 B03
resource SERIAL_RX 1 A10
resource SERIAL_RX 2 A03
resource SERIAL_RX 11 B03

11番がSOFTSERIAL1なのですが、ちょっと変なのはTXもRXもB03になっています。これでは思い通り動かない気がします。ちなみにFirmwareをオリジナルの4.1.1から4.1.6に更新し既定値で構成された後も同じでした。

試しに、このままCaddx VistaをFC上のT6, R6パッドに接続して試してみましたが動きませんでした。想像するにSERIAL_TX 11とSERIAL_RX 11には別のピンをアサインしなければならないはずです。たまたまBetaFPVのFAQにてUART6のEnableの方法を見つけました。それはもしかすると別のFCの話かもしれませんし、その内容もかなり疑問のあるものです。ただB03がTXで、それに対応するRXはB10であるということは分かりました。そこで、

RESOURCE SERIAL_RX 11 B10

というコマンドを投入して、テストしたところ正しく動くようになりました。

BetaFPVにお知らせするためにチケットをオープンしておいた。

Umma85構成とRSGO Lock Horizon


ReelSteadyGoの設定画面に”Lock Horizon”という項目があります。これは画面を水平線に固定するように安定化を行ってくれるものです。フリースタイル飛行をメインとするわたしは今まで使用したことがありませんでしたが、試してみると見事に水平を保った動画が作り出されます。撮影の目的によっては、かなり重宝しそうです。

これだけだと単純な機能紹介で済むわけですが、実はumma85の構成には問題があります。簡単なテストで確認できます。GoProの設定に「自動回転」という項目があります。これを自動にするとGoProの上下方向を自動で判別して調整してくれます。umma85で試してみると上下を判別している加速度計がメインボードに載っていることが簡単にわかります。ジャイロがどこにあるかは簡単に分からなかったのでFacebookで問いかけてみたら、ジャイロはカメラセンサーに載っているとの答えが得られました。

これではっきりしました。ReelSteadyGoを普通に使用する時にはまったく問題なし。画像の安定化はジャイロのデータでカメラの動きを検知して補正しています。ところがLock Horizonでは地球の重力を加速度センサーで検知して水平を出さねばなりません。umma85構成ではカメラとメインボードの関係が崩れてしまっているので、そのままでは正しく動作することが出来ません。

何とかしてMP4ファイルに入っている加速度センサーのデータを実際のカメラの向きに合わせて調整することが出来ればLock Horizonが使えます。そのためのツールはすでに用意されています。

https://jaromeyer.github.io/rsgopatcher/

上のサイトにMP4をアップロードするだけで簡単に調整が行われてLock Horizonが使えるようになります。ありがたいことです。あとでドネーションしておかなきゃ。

前回のumma85の制作で書き忘れたこともあり、その補足編です。

Beta85Xフレームを反対向きで使用します。ここで問題になるのがFCの取り付け方です。umma85ではフレームとFCの関係は変えません。言い換えると飛行姿勢ではFCが反転していることになります。さらに別の言い方をするとFCのUSBコネクターが上になる状態で飛行させます。

もし、USBコネクターが下にくるFCを通常の向きで構成した場合は問題はありませんが、反転させて使用する場合はBetaflight Configuratorにて調整が必要となります。

まずはGyro/Accの方向を設定しなければなりません。

わたしの使用しているGEPRC GEP-12A-F4 FCでは通常はCW 180°になっています。これを上のようにSetup画面でCW 0° flipに変更すると正しい方向に設定されます。ただしく設定出来たかどうかは最初に出るSetup画面で機体を傾けて画面上の機体の動きと一致することで確認します。

モーター番号の確認と変更も必要です。素直にモーターを接続するとモーター番号1と4, 2と3がそれぞれ入れ替わります。リソースの変更が必要となります。わたしの場合はモーターのリード線の長さに余裕があったので、リソースをいじらなくても正しくなるように接続しました。リソースを変更する場合はumma85のドキュメントを参考にしてください。

モーターの回転方向の確認および変更は通常のように行います。あと、当然のことながらペラの取付方向にもお気をつけください。

剥きプロ Naked GoPro への道、umma85の製作

実はDison Miniの製作途中でumma85を知り、その魅力的なデザインに惹かれ、Dison Miniの飛行を確認した直後にumma85に変更しました。

プッシャー設定について補足を次の記事に書いています。そちらも参照ください。

カメラモジュールの光漏れについては次の記事をご覧ください。

umma85はummagawdことFPVパイロットTommyのデザインで剥きプロのボードを水平に搭載してロープロファイル化を図った機体です。ベースとなるのはBeta85Xで、フレームを反転させたいわゆるプッシャー機(一部ではクラゲとも呼ばれています)です。プッシャー構成は重心位置が高いとかペラをが地面の障害物に当てるなど、今ひとつ不安があるのですが、それを超えて試してみたいと思わせる美しさがumma85にはありました。

アメリカではummagwdのサイトでキット販売が行われています。日本だとCINEWHOOP TOKYOさんが発売しています。また香港のKim Tangも何やら準備中です。こうやって複数のサイトから販売されるのもオリジナルデータが自由に使用できるよう公開されているからです。ということで全てを自作してみようと思いました。

改めて機体のスペックを紹介します。Dison Miniより小さいモーターに変更しています。
BetaFPV Beta85X frame
GEPRC GEP-12A-F4 FC
GEPRC GR1103 8000KV
Runcam Racer Nano
BetaFPV A01 VTX
EMAX Avan Micro
Naked GoPro Hero 6 Black

必要なデータはThingiverseサイトに揃っています。トッププレートはカーボンの板をカットすることを想定されていますのでDXFファイルで提供されています。中国ではカットしてくれる業者も通販サイトで見つかりますが、ひとまずは全てを3Dプリントすることにします。いつも使用している3Dモデリング・ソフトのFusion 360にDXFファイルを読み込んで厚さを3mmにしてみました。カーボンでないことに若干の不安はありましたが、実際に飛ばして何度もクラッシュさせても大丈夫でした。

3Dプリントの素材ですが、トッププレートにはTough PLAが良さそうです。他のフィラメントも試しましたが、最終的には色合いを統一するために全ての部品をTough PLAにしました。我が家の3Dプリンターは柔らかい素材は扱えないので本来はTPUが良い部分もあることは分かってはいますが、最初から選択肢にありません。

組み立ての前にGoPro Hero 6の主基盤からMini HDMIコネクターの取り外して置く必要があります。わたしは小さなカッター(ニッパー)でプチプチと足を切って外しました。ハンダゴテを使用するより安全だと思います。

組み立ては写真などを参考に行います。バッテリーストラップは基盤を組み込む時に一緒に取り付けます。唯一難しいポイントはカメラからのコネクターをメインボードに接続するところです。横からコネクターの正しい位置を目視で把握する練習を十分に行っておけば大丈夫でしょう。

わたしはUSBコネクターを残しています。このコネクターが外れやすいのですが、こちらは厚手のテープなどで位置を固定しておけば、上から押すだけであとから簡単にもとに戻せます。USB-Cのコネクターは斜めにトッププレートから飛び出すように配置します。

トッププレートはソフトマウントされています。設計ではこのパーツも3Dプリントすることになっていますが、TPUが使えないので4.6mm幅のケーブルタイ(ナイロン製)で代用しました。ネジ穴間が25mmと30mmの二種類を用意してテストしてみました。30mmの方が良い結果が得られています。

機体の下にはVTXを取り付けるカバーがあります。A01 VTX取り付けのためのネジ穴もあって良い感じです。ただ、着陸の度に衝撃が加わるのでTough PLAといえどすぐに破壊されてしまいます。消耗品と割り切って予備を沢山持参するのも良いのですが、わたしは着陸スキッドを付けてみました。4.6mm幅のケーブルタイを2本前後に取り付けて、適当な長さにカット、2本を熱収縮チューブでまとめる、というだけの簡単な構造ですが十分に機能すると思います。

umma85部分に使用しているのは全てM2スクリューです。手持ちの適当なのを使用しているので長さが揃ってはいません。少し長い9mmくらいのが一本、あとは6mmか7mmくらいのが8本、ナットが4個です。ここにはFPVカメラの分は含まれていません。

最後にテスト飛行の様子です。

2.7K 4:3で録画したものをReelsteady GOで安定化したものです。

次はSuperviewとGoProによるスタビライザーを使用した例です。

剥きプロ Naked GoPro への道、実装編

剥きプロをやってみようと思ったのはRimzlerさんのDison Miniを見たからです。まずはDison Miniを目指します。

剥きプロをマウントする部品はThingiverseからダウンロードしたデータを3Dプリンターで出力して作ります。TPUで出力するのが前提ですが、うちの3DプリンターではうまくTPUが扱えませんのでPETGで代用しました。ただし、寸法的にうまく合わなくてやや無理やり組み付けることになりました。あとから考えてみると少し拡大して出力すれば良かったのかもしれません。カメラマウントは17g用と33g用があります。私の剥きプロは17g版ですが、サイズ感あるいはTPU/PETG問題からかタイトなので33g用のマウントに載せています。

5V電源については独立してBEC(電圧レギュレーター)も準備していましたがFC(GEP-12A-FC)の5V端子から取りました、受信機と共用です。数回しかフライトしていませんが、問題無いようです。

機体は自制85Xで以下の構成です。
BetaFPV Beta85X frame
GEPRC GEP-12A-F4 FC
GEPRC GR1105 5000KV
Runcam Racer Nano
BetaFPV A01 VTX
EMAX Avan Micro
Naked GoPro Hero 6 Black

組み立て自体は特に問題はなく見た通りの状態です。

私の飛行の様子を紹介しておきます。

色々と脆弱なところもあるので、組み直すと同時にマウント方法も別のやり方を検討中です。