Dropbox

Inductrix FPVから始まってTiny7とTinywhoopの面白さにハマっています。Tiny7の改造から始まって気がつくと全て自分で選んだパーツの組み合わせで一台出来上がりました。いわゆる自作機ですが、パソコンの自作と同じで部品を組み合わせただけなので、どうも自分では自作と言いにくい。どんな物が出来上がったかパーツリストの覚え書き的に書いておきます。

[ 目標 ]
– ブザーを付ける。FPVで飛ばしていて墜落した時、芝生くらいなら大丈夫だけど、ブッシュに落とすと目視では見つからない。FPVの画像を頼りに探すのもかなり苦労します。Tinywhoopをそんなところで飛ばすなよということですが、林の中で木の間を飛ばすのが楽しいので仕方ない。
– 屋外飛行出来る力強さ。手持ちの820ブラシモーターがかなり強力なので、これを使うことにする。

[ FC ]

F3 Whoop Pro Brushed Flight Controllerという白い基板のFCを見つけたのが新しいTinywhoopを組むきっかけです。OSDとブザーのサポートがあります。OSD(On Screen Display)は飛行中に様々な情報をFPV画面で確認出来るものです。

[ フレーム ]

最初、左のInductrix FPV+のフレームを使いましたが、バッテリーのホールドがいまひとつなのとネジ穴が壊れたので右側のものに入れ替え。

[ モーター ]
Inductrix FPV+のフレームと一緒に購入した820ブラシモーター(直径8mm,長さ20mm)。細かい能力とかは不明。Tiny7のFCを載せてしばらく飛ばしていました。十分に力強くアクロも出来る。そのうち欲が出て8520とかになるかも知れない。あと効果のほどは、まだ良くわかりませんが4枚プロペラを付けています。

[ カメラとVTX ]

Inductrix FPV用の黄色いキャノピー、カメラ、VTXが一体になったもの。実際に入手したものが純正かどうか不明。キャノピーに何の印字もないので、ちょっと怪しい。製品自体は問題なく使用できた。

[ 受信機 ]
(注: このリンク先のブツは値段がおかしい)
手持ちの中で最軽量なDSMX Proというレシーバーを使用した。FCの都合で5V稼働可能であるところがミソ。1gに満たない小型レシーバーながら感度はとても良いです。

[ ブザー ]

FCを買ったついでなので、その販売店に有ったLED付きのものにしました。LEDは使用しない予定。

[ 配線 ]

以上の部品を組み上げました。最初は長さの足りないリード線、OSDを使うために接続済みのカメラとVTXの間の映像信号を途中でカットして間にFCを入れる配線などツギハギしてシュリンクでカバーしたりしましたが、かさばるし信頼性が低くなるので新しいリード線で綺麗に配線し直しました。作業は細かいですが難しいところはありません。

[ 重量 ]

バッテリー無しで41.6gとTiny7より10g近く重くなりました。モーターとプロペラによる重量増加が大きいです。力強いので重量増加をカバー出来ていますが、バッテリーの消耗も激しく3分弱しか飛ばせません。Tiny7と使い分けということで割り切っていますが、性能の良いバッテリーを探してみることにします。

OSD、ブザー付きTinywhoopの作成 – 設定編

DJI/RYZE TELLOは楽しい

トイドローンTelloを入手してまる3ヶ月、公式サポートされたゲームパッドGameSir T1dの出荷が始まりやっと完成した感があります。ここで改めて私のTello使用環境やレビューのまとめをしておきます。

[ ジョイスティックで飛ばしたい ]
基本は携帯電話の画面に表示された仮想的なジョイスティックで操作します。しかし機械的なジョイスティックで飛ばす方が楽であるのは間違いありません。発売当初からMFIに準じたGamePadをiPhoneに接続して操縦することは出来ましたが、BluetoohとWiFiの干渉が問題になりビデオがコマ落ちになったり、操縦中に操作が一瞬途切れたりと今一つでした。唯一使えていたのはiPhoneに有線接続するGameViceという製品でしたが高価なのでTelloには不釣り合いでした。やっと最近になりRYZEから正式にサポートされたGameSir T1dというものが発売になりました。
GameSit T1d + Telloがどんなに快適かは次のビデオをご覧ください。こうやって飛ばすのがTelloの一番面白いところだと思います。木にぶつかったりすることを除けば墜落する気がしないです。

[ GameSir T1d Setup ]
最初、どうやって接続するのか悩みます。ポイントは携帯電話の設定画面でBluetoothのペアリングは必要が無いということです。
手順自体は簡単です。
– 携帯電話のBluetoothをオン
– GameSir T1dの電源オン、ブルーのLEDが点滅していなければPAIRボタンを押し点滅させる
– 携帯電話のTelloアプリケーションの設定/Bluetooth controller画面を開き、そこにあるGameSirをクリックし接続する
以上です。接続されると画面上の仮想ジョイスティックが消えます。

[ 電波の飛び ]
わたしのマンションの庭ではWiFi電波が沢山飛んでいるために悪い時には10mから20mくらいで操縦不能に陥ったりします。そこで広い公園まで出かけてテストを行ったところHuawei Mate9を使用した場合100mほどの距離まで飛ばすことが出来ました。WiFiリピーターを使用することも考えましたが機体を目視して飛ばす場合は必要ないと思います。以下、距離テストのビデオです。

[ 追加バッテリーと充電器 ]
ひとつのバッテリーでの飛行時間は10分強と、このサイズのトイドローンとしてはかなり優秀です。わたしのDJI Sparkとあまり変わらないのは驚きです。それでも、その後に1時間半の充電時間があると思うと、やはり物足りません。そのため追加のバッテリーをひとつ購入しました。バッテリーが増えてくるとTello本体を使用しての充電は面倒になります。やはり複数のバッテリーを同時に充電できる充電ハブが欲しくなります。純正品の発売の予定があるようですが、なかなか出てこないので私は自分でコネクターを作って市販の充電器と組み合わせて充電ハブを作りました。キモは充電電圧を4.35Vに設定できる充電器を探すことです。最近になって社外品の充電バブが発売され、それを入手されている人たちもちらほら見受けられます。

純正の充電ハブも出ました!

[ 写真と動画 ]
いずれもWiFi経由で送られてきたデータを携帯電話に保存する方式ゆえ、WiFi接続が悪い環境(沢山のWiFi電波が飛び交う都市部など)では厳しいものがあります。動画はソフトウエアによるスタビライズが入っていますが、時折それがアダになっていわゆるJelloエフェクトも見られます。またカメラの向きが固定なので構図も限定されます。そんなこともあり動画は諦めています。セルフィー的に写真を撮るのは悪くはありません。サンプル写真は過去記事をご覧ください。

[ FPVフライト ]
やってやれないことは無いくらいの印象です。わたしの自宅のWiFi環境が厳しくて別の部屋に飛ばすとコントロール出来なくなるので、いまひとつ楽しくないです。環境が良ければそれなりに遊べるかもしれません。以下、わたしの動画レビューです。

[ プログラミング ]
Telloはプログラムを組んで飛ばすことが手軽に出来ます。
– Scratchで手軽にプログラミング出来ます(実際はセットアップはやや面倒)。詳しくは以前の記事をご覧ください。
Drone Blocks iPhone, iPadアプリケーションでScratchのような方法でTelloのプログラムが出来ます。特別なセットアップとか無いのでScratchより手軽です。TelloだけではなくDJIのドローンもプログラム出来るそうです。
Tello Scripts Manager Androidのアプリケーションです。特徴は、このプログラムから実際に飛行させたログがそのままスクリプトとして使えることと、複数の携帯電話をBluetoothで接続してスクリプトのコピーや同期動作が行えることです。
– Python、ScratchのプログラムバッケージにPython3によるサンプルプログラムが含まれています。それを読めば簡単に自分のPyhtonスクリプトを書くことが出来ます。Androidで走るQPython3やPydroid 3などからでもTelloを制御出来ますので、かなりスマートにプログラミング出来ます。最初、チュートリアルとか書こうと思っていましたが、あまりに簡単なのでやめました。サンプルを読むとわかりますがUDPでテキストをやりとりするだけなのでネットワークが扱える言語であれば何でも簡単にTelloのコントロールが出来ますね。

KingKong Tiny7の構成その4 – PROJECT MOCKINGBIRD

Inductrix FPVに比べてTiny7が飛ばしにくいのでBetaflightでRateなどを弄ってきました。色々と関連情報を探すうちに行き着いたのがProject Mockingbirdです。BetaflightをTinyWhoop用に最適化するためのプロジェクトで、まさにInductrixのFCでの飛びを実現するためのものです。 #TinyWhoop について多くの情報を発信している人たちは、みなこのMockingbirdについて語っているくらい重要な設定と言えます。

手順はドキュメントに従うだけですが、自分の設定に合わせた部分もいくらかはあります。ドキュメントと違う設定を行ったところだけ書いておきます。

– PROFILE 2 (Angle)
室内用に使用する機体は初心者でも飛ばせるようにAngleモードの設定を小さくしました。ROLL/PITCH/YAWすべて同じ設定でRC Rateを2.00、Super Rateは0.00、RC Expoも0.00にしました。屋外用で強力なモーターに換装した機体はMockingbird設定そのままです。

– FILTER
文書の通り設定したところ、室内用機体だけ小刻みに震えるようになりました。この機体については文書の指示に反してEnable Gyro Notch Filter 1だけはオンにしました。これで震えは収まりました。<- これはFC不調が原因みたいです。飛ばせますが、ジャイロの水平が微妙に狂ってしまう状態なので引退させました。

ModesとかAdjustmentについては以前からの設定を使用しています。

ステップ2として送信機でスロットルのミキシングを行うようになっています。これはエルロンとエレベーターをきった時に自動的にスロットルを連動して上げるように送信機のミキシングを設定するものです。文書ではSpektrumの設定が書かれていますが、わたしはDEVO 10にDedviationファームウェアを入れて使用しています。これについては、下のYoutube Videoに詳しく書かれています。

おおまかなステップを覚書として書いておきます。
– Mixerを開く
– THR(スロットル)をSimpleからComplexに変更しSave
– THR/Complexに戻りMixersを1から3に変更しSave
– Thr/Complexに戻りPage 1は、そのままです(MuxがReplaceになっていること)
– Page 2でMuxをReplaceからAddに変更SrcはAIL(エルロン)、CurveをEXPO 0からABSVALに変更、Scaleを100から30に変更しSave
– Page 3でMuxをReplaceからAddに変更SrcはELE(エレベーター)、CurveをEXPO 0からABSVALに変更、Scaleを100から30に変更しSave
以上で完了です。Transmitter/Channel Monitorで動作を確認できます。

実際に飛ばしてみると、別の機体かと思うほど良くなりました。目視だと室内でヌルヌルと自由自在に飛ばせます。FPV飛行はまだ慣れなくてInduxtrix FPVほど自由な飛行が出来ていません。腕の問題だとは思いますがカメラの性にしたくなりつつあります(カメラ換装の予告?)。あと、フリップもTiny7の既定値では、高度の取れる屋外でしかうまく行きませんでしたが、室内でも出来るようになりました(腕の問題も有って成功率はまだ高くはないです)。

引き続きTiny7の構成に挑んでいます。Rateの値をAir/Horizon/Angle、それぞれのモードで変更したいと思います。これにはBetaflight Configuratorの右上にある”Enable Expert Mode”をオンにすると現れるAdjustmentページで設定可能です。ところが、わたしのTiny7では今ひとつ効いているのかどうか良く分かりません。

ということでFirmwareの更新から初めます。まず最初にCLI DumpとDiffを取得しておきます。

2018年4月現在の最新バージョンは3.3.1です。ファームウェアのページを見ると沢山の種類があります。何を使えば良いかは、Tiny7の現在のファームウェアバージョンを調べると分かります。CLIページに行きversionコマンドを入れると、
# version
# BetaFlight/SPRACINGF3 3.0.1 Oct 18 2016 / 10:35:52 (48b7b4f)

と表示されます。これでSPRACINGF3を入れれば良いと分かりました。オプションはNo reboot sequenceをオフ、Full chip eraseをオンにしないと更新出来ませんでした。

更新後、設定が失われていますので、以前のCLI Dumpをリストアします(Diffでも良かったかも)。その後もModesの内容などは再設定が必要でしたので、注意深く設定を確認します。わたしの場合Modes画面でAir modeの代わりにFailsafeが設定されていました。

本題のAdjustmentは以下のように設定しました。

これでRCを接続した状態でPID画面を開くとAir/Horizontal/Angleを切り替えるのに合わせてProfileも切り替わりますので、各モードに合わせたRate値を設定します。わたしの目標としてはAngleは舵の効きを甘くして、他のモードはディフォルトに近い状態で飛ばすことにしました。

2020/03/30更新) 上のAdjustmentの構成は、当時のBetaflightではなんとなく動いていたというだけでBetaflightバージョン4では動作しません。「Betaflight 4.1でRate Profile Selectionが効かなくなった」をご覧ください。

KingKong Tiny7の構成その2 Rateの調整

前回の構成で屋外でがんがん飛ばしています。3Dも出来ます。

ただ室内では舵が敏感過ぎて飛ばしづらいです。そこでBetaflightのRateを調整することにしました。良く分かってはいませんが、RC Rateで全体的な効き具合(数字を大きくすると舵の効きが良くなる)、Super Rateでスティックを大きく倒したところの効き具合、RC Expoでスティックのセンター近くの効き具合(数字を大きくすると効きが弱くなる)感じだと思います。右側にスティックの効き具合がグラフで表示されるので、それと実際の飛行テストで調整します。

屋外で3Dをするための機体は、若干RC Expoを足しただけです。室内専用の機体では、上のようにしてみました。もうちょっと緩くしても良いかもです。あとThrottle MID(Throttleの中間値、40%でホバリングあるいは一番よく使う位置、ならば0.40と指定)、Throttle EXPO(数字を大きくすると、中間値の付近の効き具合が緩くなる)も弄っていますが、今一つ設定を絞り込めていません。

追記) さらに効き具合を緩くして、室内専用機は下の設定にしました。これでも室内なら十分に機敏に動きます。屋外でも試してみたいです。


KingKong Tiny7は人気のあるTinyWhoopで7mmモーターを搭載し屋外での非行も可能な小型のFPVドローンです。

RTF(Ready to Fly)で送信機セットを購入すれば手間なしですがBNF(Bind and Fly)ですといろいろと設定を行わないとプロペラを回すことさえままなりません。そこでいつも通り自分への覚え書き的に手順を書き残しておきます。

一番大事なのは最初にTiny7の初期設定を保管しておくことです。どこをいじったか把握しているにもかかわらず不調になることもありますので、設定画面を開くより先にバックアップします。画面のボタンでバックアップというのがあるので、それも取得しましたが、結局のところCLI DUMPというものが必要で、それに全て含まれるようです。CLIというコマンドラインの画面でdumpコマンドを実行し表示されたものをテキストファイルに保管しておきます。初期設定に戻すためにはこのテキストファイルの内容を一気にCLIのコマンドラインにコピペし、saveコマンドを実行すればOKです。実際、これに何度救われたことやら。

まずはRC(送信機)とバインド出来ないと話になりません。Tiny7は色々な種類の受信機に対応しています。わたしは送信機に組み込み済みのプロトコルに合わせてDSM2/DSMX受信機を購入しました。わたしのTiny7側の設定は初期設定のままでDSMXプロトコルで接続出来ていました。バインドはスイッチ付きの受信機なので、スイッチを押しながら電源をいれればバインドモードに入るので簡単です。

接続出来ていることは受信機のLEDで分かりますがBetaflightのReciever画面で確認するのが確実です。ここで各スティックの動きやスイッチの動作が確認できます。

このままでは受信機は機能しているのにスロットルを上げてもプロペラが回りません。色々調べていくと、どうもARMというスイッチの設定が必要なようです。これには送信機側でスイッチを使うための設定が必要です。わたしはDEVO10という送信機にDeviationというファームウェアを入れて使用しています。この設定がなかなか難解です。幸いなことにDeviation Forumにiniファイルがアップロードされていましたので、それを使わさせて頂くことにしました。

KingKong Tiny7 DSM2 Devo F12E

最初の投稿に添付されているファイルを使いました。これはDSM2用なのでプロトコルをDSMXに変更、あと各舵の可動範囲も若干調整しましたが、そのままでも大丈夫です。あと設定templateの読み込みはresetした状態から行わないと、それまでの設定が残ってしまい期待通りにならないこともあります。

再びBetaflightのReciever画面に戻りスイッチの動きを確認します。使用するスイッチは送信機の左上のスイッチと右上にある3ポジションのスイッチです。動きが確認できたらMode画面で四つのステータスに割り付けます。この方法については以下のYoutubeビデオの最後のところがよく分かりますので参照ください。

Kingkong Tiny 7 RTF Quick Review Plus Betaflight Setup For Horizon and Air modes

これで飛行準備完了です。電源を上げ、スロットルを一番下にしてARMスイッチをオン。後はスロットルを上げれば飛行開始です。

AIR MODEやHORIZONにて本格的に宙返りなどのアクロバットを行う場合には舵の効きを最大にする必要があります。これには送信機の設定とBetaflightの両方を調整します。

Deviation側の設定は以下のYoutubeビデオの2:40から3:20(1-4までで5-GEARからは触らない)までをご覧ください。
How to set up a DSMX receiver in Betaflight and binding to a Devo 10 with Deviation

Betaflightの設定は以下のYoutubeビデオ(ビデオではCleanflightですが)の8:15から13:30を参照してください。
How to Bind Eachine Micro Quad to Spectrum Radio – Binding Micro Quad to DX9, Dx8, Dx6
簡単に書いておくと、BetaflightのReceiverで四つの舵の可動範囲を調べて、それをCLIコマンドのrxrangeに設定すると最大の可動範囲である1000-2000に設定出来ます。わたしの場合、以下のように設定しました。

rxrange 0 1073 1925
rxrange 1 1073 1925
rxrange 2 1073 1925
rxrange 3 1000 1855

最近のレース用ドローンはFC(Flight Controller)にマイクロUSB端子が付いていてそれをパソコン、場合によっては携帯電話に接続して細かな設定を行います。現在、一番メジャーなFC用Firmwareであると思われるBetaflightを設定るするためのBetaflight Configuratorを使えるようにするまでに少々時間がかかったので、覚え書きです。

RTF(Ready to Fly)セットならば直ぐに飛ばせますが、それ以外の場合はBetaflightによる設定が必須だったりもします。

BetaflightはスタンドアローンなプログラムだけではなくChromeのもとで動くものもあります。使い勝手はどちらも同じです。USB接続したFCをシリアルポート(いわゆるCOMポート)として認識させるのが唯一の設定ですがWindowsでは少々分かりにくいところがあります。

Betaflight Configuratorの画面上に必要なドライバーのリンクが貼ってあります。macOSでFCの種類によってはドライバーを入れなくても大丈夫です。Tiny7の場合はCP210x Driversをドライバーリンクから導入しないとシリアルポートを認識しませんでした。この時High Sierraの場合はシステム環境設定/セキュリティーとプライバシー画面からSILICON LABSのドライバーに実行許可を与えなければなりません。

問題はWindows 10で構成しようとした時です。指定のドライバーをただ入れただけでは目的のCOMポートにはなりません。デバイスマネージャー(Windows 10だとWindowsアイコンを右クリックで見つかります)で見るとCP210xのUSBデバイスとしては認識されていますがCOMポートにはなっていません。ここからの手順ははっきりとは覚えていませんが最後はデバイスマネージャーでドライバーの手動更新を行って目的の構成になりました。その前にZadigによるドライバーの更新も行っているので、そちらも必須な気がします。またCOMポートに現れても違うドライバーだと動かないということもあります。最終的にはSilicon Labs CP201x USB UART Bridgeというドライバーで動いています。

正しいポートが設定されるとBetaflight Configuratorは自動的にポートを見つけてくれるのでConnectボタンを押せば使えるようになります。

手順を再現するのが難しい(面倒?)なので、詳しくは書きませんが以下のYoutubeが正解を示していると思います。英語で長々と話していますが画面を見ていれば何をやりたいかは分かると思います。

Making Flight Controller Connect Through USB by Project Blue Falcon

Telloはトイドローンながらプログラムを書いてドローンを制御する方法が用意されています。他のトイドローンには無い意欲的な試みで、わたしがTelloを入手して試したかった最大の理由です。最初、詳細が明らかになっていなくて、やきもきしましたが、いつの間にかRYZE社のDownloadページからドキュメントが落とせるようになっていました。必要なことがら、プログラムパッケージのダウンロードリンクなどが、このPDFドキュメントに記述されています。

得られるものはScratchによるプログラミング環境、Pythonによるサンプル、SDKドキュメントです。

まずはRYZE社の一押しであるScratchによるプログラミングを試してみましたので、紹介します。Scratchは子供向けにプログラミングの概念を教えるためのものです。グラフィカルなエディターでスクリプトを組んでいくものです。その中にTelloを操作するための部品が用意されています。文法やエディターの使い方を気にすることもなくスクリプトが組めますので、本当に子供でも容易にTelloを操作することが出来ると思います。

用意されている動作は単純で、離陸、着陸、上下の移動、前後左右の移動、回転だけです。Scatchと言えどもプログラミング言語ですので、ループ中で変数を変化させたりして動きを組み合わせて行くと、それなりに面白い動作をさせることが出来ます。

Telloの動画のサンプルはYouTubeで早くから公開していましたが、Full resolutionの写真が見たいという要請がありましたのでFlickrにアップロードしました。

セルフィー用途としては問題ない気がします。使用した携帯電話の種類での差異はあまり無いようです。

まずは屋外での写真です。広角カメラにあるような歪みが少しきつめに出ている気がします。
IMG_0002

逆光ながらちゃんと写っていますが、左奥の建物の上の方が歪んでいます。結構風に耐えて飛んでいたためかも知れません。
1517717444498

1517880450064

1517717858523

夜の室内で蛍光灯の灯りで撮影。暗いとホバリングも安定しないので、ピンぼけが多くなります。その中で写りの良いものをアップロードしました。
1519212404671

昼間、外からの光りが十分な部屋では綺麗な写真が撮影できます。
1519266233513

IMG_0022

IMG_0023

DJI/RYZE TELLOでゲームパッドを使う

Telloは携帯電話を使用して操縦します。ディスプレイの上にあるソフトウェアなスティックを使用しますが、これがなかなか難しく、ゆっくりとした操作ならなんとかなりますが、細かい動きは苦手です。そこでGamepadのjoystickを試してみることにしました。

Telloに関する情報は未だ不足気味で、どういったゲームパッド、ジョイスティックが使用できるのか今ひとつはっきりしていません。

[ iOS ]
おそらくはMFI対応であれば大丈夫です。DJIのビデオではGameSirの物が使われるようです。

わたしはsteelseries Stratus XLという古い物を使用しています。MFIかどうか今ひとつ不明ですが最新のファームウェアにすることによりiPhone/iPadに接続してTelloの操縦に使用することが出来ました。

ゲームパッドはBluetoothでペアリングだけすればTelloアプリケーションからは自動的に認識されすぐに使用できます。離陸、写真の撮影、動画の撮影、フリップなど必要な動作は全てゲームパッドで行うことが出来ます。

ジョイスティックを倒してから機体が反応するまでに少し遅れがあるような気がしますが、操作性は悪くないです。また時々接続が切れるのか、飛行中のTelloが一瞬止まるような動作があります。まあまあ全般的には良好に動作します。

注意) iPhone用として販売されているゲームパッドでMFI以外にもメジャーなものとしてiCade対応の物がありますが、これは今のところTelloでは動作しません。

[ Android ]
Android版のTelloアプリケーションにもゲームパッドを設定する画面はありますが、どういうゲームパッドが使用できるのか今のところまったく分かりません。いくつかのゲームパッドを試してみましたがまったく反応しませんでした。

[ FPVフライト ]
ゲームパッドを使用する目的のひとつとしてVRゴーグルを使用したFPV(First Person View, ドローンの視点)フライトがあります。結論としてはビデオがとぎれとぎれになるため満足に飛行することは出来ませんでした。詳細はビデオにまとめていますのでご覧ください。