Dropbox

最近のレース用ドローンは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もまだ全くの謎です。早く試したいのですが情報待ちです。

Inductrix FPVのフレーム修理

室内FPVドローン、Inductrix FPV、のフレーム(おそらく本物では無いです)が割れてしまいました。アクロモードなどの練習で何度も激突していたので仕方ありません。

中国の通販サイトはなんでも揃っているので交換用のフレームを探しました。ところが、これがなかなか難しくInductrix FPVで検索すると一回り大きなサイズのInductrix FPV Plus用のものばかり見つかります。最終的にはJJRC H36用のフレームを入手しました。サイズ的にはぴったりです。細かい部分の形状が違いますが、調節可能で組み上げることは出来ました。

ひとつだけ気になることがあります。それはダクト内部の支柱に傾斜が付けられているのですが、それがオリジナルと反対になっています。言い換えるとH36とInductrix FPVとではプロペラの回転方向が逆になっています。実際に飛ばしてみて問題が有るわけでは無いのですが、空力的には問題が有るような気がします。

といこうとで、オリジナルのフレームを修理してみました。使用したのはUVクリアーという紫外線で固まる接着剤です。

そこそこの接着力です。なんといっても紫外線LEDライトを数秒間照射するだけで硬化させることが出来るので、とても作業が簡単です。

激しくぶつけると接着箇所が剥がれてしまいそうですが、普通に飛ばしている分には問題なしです。

Deviation化したWalkera Devo 10をTinyWhoop Inductrix FPVにBindして飛行することは簡単に出来ました。しかしながら3D飛行(アクロバット飛行)を可能にするAcro Modeを使用するためには設定ファイルを用意する必要があります(ちゃんと分かっていればRC上の操作だけで設定出来るのかも知れません)。その手順について記述しておきます。

[ iniファイルの準備 ]
「Tiny Whoop をはじめてみた ~ BLADE inductrix 入手」という記事に貼り付けられているinductrix.iniの内容をテキストファイルに保管して使用させて頂きました。

[ iniファイルの書き込み ]
– Devo10をUSBストレージとして起動する (Entキーを押したままで電源を入れます)
– PCにUSBケーブル(最近のMicro USBでは無くmini USBケーブルが必要です)で接続します
- TEMPLATEフォルダーにinduxtrix.iniを書き込みます。
– PCからUSBストレージとして認識されているDevo10を正しくEjectしDevo10の電源をオフにすれば完了です。

[ 書き込んだtemplateで設定する ]
– Model menu/Model setup
– Fileの所でL/RキーでTemplateを選択
– UP/DNキーで”inductrix FPV”を選択すればOKです。
あとは通常通りBindすれば飛ばせます。

[ 実機での設定 ]
設定には2つのスイッチが定義されています。右上にあるFMODスイッチで舵の効き具合を変更します。FMOD1で舵の効き具合が緩やかになります。
もうひとつはスロットル用のトリムで、これを上に上げることによりスタビライズモードとアクロモードの切り替えが出来ます。ただし、一回押したら必ず切り替わるわけでも無いようです。本体右側の赤いLEDで確認するのが確実です。LEDが消えていればスタビライズモード、点灯していればアクロモードです。

スタビライズモード

アクロモード

スタビライズモード, Auto Level Modeではスティックを中央に戻せば(スロットルを除く)機体は停止してなるべく水平になるように制御されます。アクロモード, Acro Modeでは、この水平にしようという制御が全く働きません。前進しているあるいは横方向に傾いて横滑りしている機体を停止させるには反対方向の当て舵を打つ必要があります。このため、全く操縦方法が異なりますし難易度はずっと高くなります。だいぶ練習して室内でスピードを出さなければ何とか飛び回れるようになりましたが、ちょっと油断するとどこかに激突しています。果たしてアクロモードでレースなど出来るようになるのかどうか自分でも分かりません。本当の目的のアクロバティックな飛行(フリップなど3Dと呼ばれる技)については、機体のパワーが不足しているので室内では無理かもしれません。そのうちモーターを強化して屋外で試してみたいと考えています。

Walkera Rodeo 110と一緒に購入したDEVO 10をTinyWhoop Inductrix FPVでも使用するためにDeviationというファームウェアを導入しました。

本来DEVO 10はWalkeraの製品ですしWalkeraの専用プロトコルしかサポートしていません。そこにDeviationというファームウェアを導入することにより各種プロトコルに対応させることが出来ます。ただし柔軟性が出るということは、ややこしくなることでもありますので、それなりの覚悟でのぞまねばなりません。面倒な場合は、それぞれに専用のRC送信機を準備した方が無難です。

[ 今回実現出来たこと ]
– Rodeo 110の通常の飛行。ただし時間が無く、まだ十分なテストは出来ていません。とりあえずホバリングは出来ました。
– Blade Inductrix FPV(コピー品かも)の通常の飛行。これはかなり快適に飛ばせています。

[ これから調査して実現したいこと ]
– Rodeo 110のアクロバット飛行モードの実装
– Blade Inductrix FPVのアクロバット飛行モードの実装

[ Deviationファームウェアの導入 ]
Deviationサイトにマニュアルがあるので、それに従います。2つの導入方法が書かれていますが、私はWindowsにDFU USB DriverとDfuSe USB Upgrade Toolというプログラムを導入して行いました。手順については、うろ覚えなこともありますが、ちゃんとマニュアルを見ていただくのが確実で良いと思います。

mini USBケーブルが必要です。

[ 設定 ]
通常の飛行モードを設定するのは難しいことではありません。正しいプロトコルを選びバインドIDをブランクにするだけです。

Rodeo 110の設定

設定を試す時には必ずプロペラを外して行います。わたしは一度失敗して、バインドしてすぐに急上昇してびっくりしたことがあります。スロットル操作でただしくモーターが回ることを確認するまではプロペラは外して置くべきです。急に飛び出さない自信がついてからテスト飛行に挑みましょう。

Defaultはこんな感じ

Defaultの設定からFixed IDをNoneにするだけで飛ばせます。
設定メニューは、ENTでmain menuを出し、Model menu/Model setupで出せます。

Inductrix FPVの設定
Defaultの設定からProtocolをDSMX, Fixed IDをNoneにするだけで飛ばせます。
設定メニューは、ENTでmain menuを出し、Model menu/Model setupで出せます。

[ バインドの方法 ]
設定メニューのBindもしくはRe-Initを実行すれば機体とのバインドが出来ます。

TinyWhoop 小型室内FPVドローンのすすめ

[ 注意 ] 日本で飛ばすにはRC送信機は技適があるものを使用する必要があます、またFPVについてはおそらく送信出力が10mWを超えていますのでアマチュア無線局の開設が必要となります [ 注意 ]

FPV飛行がしたくてRodeo110を購入したもののパワフルで飛ばす場所を選ぶため、なかなか練習が出来ません。そこで室内でFPV飛行を楽しむために、以前より注目していたTinyWhoopのFPVに挑戦することにしました。TinyWhoop系はFPVの無いJJRC H36を持っていますので、手軽さと丈夫さは良く分かっていました。手のひらに乗るサイズながら操縦しやすく室内を自在に飛び回ります。

H36にカメラを載せることも可能ですが、電池も小さいし性能的に今ひとつなので定評のあるInductrix FPVを入手することにしました。中国の通販で手に入れたものは、ちょっと正規品とは違うみたいです。それでも飛行そのものは全く問題ありませんし、少々安価でしたのでよしとします。

この機体はBNF (Bind and Fly)と呼ばれ機体だけで販売されているものです。これにRC送信機とFPVゴーグルを組み合わせて完成です。

RC送信機はRodeo110用に持っていたWalkera DEVO 10を改造して使用することにしました。WalkeraとBlade Inductrixではプロトコルが違うので、そのままではバインドすることは出来ませんがDEVO 10のファームウェアを社外品のDeviationというものに書き換えることにより各種プロトコルに対応させることが出来ます。これについては、また改めて書きたいと思います。簡易型のRC送信機と違って、ちゃんとした送信機のスティックで操作するのは微妙な操作も出来るので、ほんとうにお薦めです。

機体の安定性と操縦性の高さには驚きました。高度の維持だけ出来るようになれば、さほど神経質にスティックを動かさなくてもホバリングで位置をキープ出来ます。あっという間に部屋の中でぐるぐる旋回して飛び回せるようになりました。

FPVゴーグルは定評のあるFat Sharkを使います。FPV性能は申し分なく屋外で飛ばしてかなり遠く(軽く50m以上は離れていたと思う)に行っても安定した鮮明な映像を見ることが出来ました。

ゴーグル無しでしばらく飛ばしたあと、いよいよFPVゴーグルを装着して飛ばしてみました。Rodeo110では、まともに飛ばせた事が無いのにInductrix FPVではすぐにゴーグルでの飛行が出来ました。下のビデオはFPV飛行初日の映像です。FBのドローン友達にFPVで飛ばす方が楽だと言われたことが、やっと実感出来ました。

まだまだレースをやっている人のようには飛ばせませんが、練習を重ねています。そんな練習の様子をビデオにしたものです。

ほぼ無風の日に屋外飛行にも挑戦しました。木々の間を飛ばすのはかなり面白かったです。モーターを強化した屋外用のTinyWhoopも作りたくなりました。あ、その前にRodeo110の練習しなきゃ。