Dropbox

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, ドローンの視点)フライトがあります。結論としてはビデオがとぎれとぎれになるため満足に飛行することは出来ませんでした。詳細はビデオにまとめていますのでご覧ください。

DJI/RYZE TELLOでWiFi Extenderを使う

家庭へのWiFi設備の普及度は凄いことになっています。そのためマンションの庭でTELLOを飛行させると、どうかすると10mほど離れただけでWiFiの干渉があるというメッセージがTELLOの画面に現れます。WiFiアナライザーでTELLOの電波を見ると普通のWiFiルーターと遜色ない電波が出ています。どうも携帯電話側の能力に問題がありそうです。それを改善するためにWiFiエクステンダーを試してみることにしました。

使用したのはParrot Bebopユーザーにも実績のある小米WiFiルーター青春版(R1CL)です。これは小型軽量でモバイルバッテリーでも稼働できる便利なものですが、公式ページが見当たらないので現行製品では無いのかも知れません。ただし中国のネット販売サイトではまだ取り扱いがあるようです。

ひとつ問題があるのは、このルーターをWiFiエクステンダーとして構成した場合、iPhone/iPadではうまく接続出来ません <-その後うまく行きました。Android端末では全く問題ないです。

[ 設定 ]

– ルーターの電源を入れしばらく待ち、resetボタン(下面の空気穴のひとつの中にあります)を押します(10秒ほど押したままにします)。
– しばらくすると初期状態で起動しXiaomi_で始まるSSIDで接続出来るようになります。
– 携帯電話もしくはPCでそのSSIDに接続し、ブラウザーで http://miwifi.com を開きます。
– 最初の方でルーターとして使用するかエクステンダーとして使用するかを聞かれます。ここで中継工作模式という方を選択します。

– あとは画面に従って、拡張するWiFiのSSID(この場合はTELLOを起動しておいてTELLOのSSIDを指定)を選択しパスワードを入力します。
– 次に小米ルーターに接続するためのSSIDとパスワードを指定します(携帯電話から小米ルーターに接続するためのもの)。
– 次に管理用のパスワードを指定して終了です。終了画面が出ませんが、しぱらく待ってから再起動すると、ただしく立ち上がります。

[ テスト ]
実際にテストしてみると間違いなく効果がありました。マンションの庭でNexus6で20mも離れると接続が怪しくなります。iPad miniだと10m怪しい状態です。そこでNexus6+小米ルーターで試すと50mくらいでやっと接続が切れました。小さな機体ですし、これで十分だと思います。

追記) その後WiFiの影響のほとんど無い公園でテストしたところ小米WiFiルーター青春版使わなくともHuawei Mate9単体で100mまで電波が届くことが判明しました。リピーター無くても良いかなって気がしています。詳細は以下のYoutubeをご覧ください。

DJI/RYZE TECHのトイドローンTELLOがやってきた

DJIが販売する初めてのトイドローンTELLOが中国で先行して発売開始されました。DJIが販売しているという安心感と手軽さは多くの人の興味をひくには十分なものがあります。製造はRYZE TECHという新興企業でwebページを見る限り製品はTELLOしかまだありません。

ということで、さっそく入手して色々と試しているところです。取り急ぎ気が付いたことを書いておきます。簡単に飛ばせて楽しいドローンであることは間違いないです。


– プロペラガードが装着された状態で箱に入っていました。付属品はバッテリー一つ、予備のプロペラ4枚一組、プロペラを外すためのツールと説明書です。


– モーターの対角線上の長さは115mmと室内用ドローンとしては大きめです。屋外での飛行も考えた上での大きさであるとも言えます。

– VPSがうまく機能する。高度の維持は内蔵された気圧センサー、横方向の位置は下面に付けられたカメラで床や地面を監視して制御しています。これが良く働いて室内でも屋外でも全く操作することなく定位置でのホバリングが可能です。ただし、やや暗い室内だと下のカメラがうまく機能しなくなるので位置がズレて行きます。それでも高度は維持されるので操縦は難しくはありません。

屋外で安定したフリップを行うDJI/RYZE TELLO #tello #ryzetello

Nobumichi Kozawaさん(@nkozawa)がシェアした投稿 –

– 小型のトイドローンとして飛行時間13分は立派。実際に飛行させてもカタログ通り13分ほど飛びました。1000mAhという、このサイズのドローンとしては大きめなバッテリーが搭載されています。飛行時間は長いのですが、充電時間は、おおよそ一時間半とちよっと長め。また、今のところ外部充電器などは無く機体にあるUSBポートで充電しますので、予備バッテリーを入手しても運用は面倒です。TELLOは沢山売れそうなので、サードパーティから外部充電器なども出てくる可能性は高いと思います。自分自身でも外部充電の実験中です。

– 電源のオフが分かりづらい。電源ボタンを一度押すとオンに出来ますが、オフにする時は二回連続して押さないといけません。また、充電するためには電源オフにしないといけません。

– モーターはブラシモーターが使用されています。超小型のドローンとしては正しい選択肢でしょう。ブラシモーターですが、そこそこ力強く、パンチ力(急上昇する勢い)も結構ありますし、強風でなければ屋外で風に対抗することも出来ます。飛行モードをFastにすると室内ではとてもフルにスティクを倒すことが出来ないくらいスピードが出ます。


– 屋外で思いの外飛ばせる事が分かったのでどこまで飛行高度があげられるかテストしてみました。スペックに書いてある通りで10mが限界でした。それ以上の高度を上げられないように制御されています。小さなドローンなので妥当な設定だとは思いますが、もうちょっと上げてみたい気はしました。

– 接続距離は今ひとつ? WiFiアナライザーで調べてみるとTELLOから発信している電波は一般的なWiFiルーターとさほど変わりません。おそらくは家の近くにはびっくりするほどのWiFi電波が飛び交っていることと携帯電話自体の発信する電波が強くないことに問題があると思われます。うちのマンションの庭では10m以上離れると電波干渉があるというメッセージが出てカメラからの映像に影響が出始めます。時々通信が途切れたりもします。WiFi extender経由での操作が可能であることは確認出来ているので、公園などで距離テストを行ってみたいと考えています。

– 機体にはストレージが無く写真やビデオはWiFi経由で得られたものを携帯電話で記録します。写真はそれなりですが、動画のクオリティーは今ひとつです。カタログでは720P30と書かれていますが、そこから想像される画質を思うとがっかりするかも知れません。トイドローンと割り切った方が良いです。動画の画質も携帯電話にも左右されている感じもしますが、まだ良くわからないです。写真と動画を比べると動画の画面サイズはだいぶ小さくなります。おそらくソフトウエア的なスタビライズ処理が入っているものと思います。屋外で風に翻弄されている画像にいくらかのjello effectが見られるのは、この処理がうまく行っていないからと思います。

– 期待するPrograming環境についてはScratchもSDKもまだ全くの謎です。早く試したいのですが情報待ちです。