M5StackとUiFlowを使って DJI Telloドローンを制御する
- 取り組み内容
- Telloとは
- M5Stackとは
- UiFlowとは
- iPhoneによるドローン操縦
- iPhoneアプリによるドローンの様子
- M5Stackによるドローン制御
- UiFlowを用いたドローン制御のアルゴリズム
- UiFlowプログラムの実行結果
- まとめ
取り組み内容
今回はM5StackとM5製品に特化したビジュアルプログラミング環境である「UiFlow」を用いてDJIが販売している「Telloドローン」を制御する.今回ドローンをUiFlowで制御する背景としては,UiFlowにTello専用の動作ブロックがあったため実際に使えるか試したい.
Telloとは
今回フライト制御するドローンはDJIが販売している「Telloドローン」です.15000円前後で購入できる比較的安価で小型であることが特徴です.飛行重量80gのためドローン登録義務化の対象外となります.
M5Stackとは
M5Stackは液晶,スピーカー,ボタンを搭載したマイコンベースの開発ボードです.M5Stack専用のモジュールやセンサを組み合わせて利用することができます.
UiFlowを利用するための環境構築は以前のブログで書かれているので参考にしてみてください.
M5 Gray
UiFlowとは
UiFlowの使い方については後日取り上げるが,M5製品に特化したプログラミング環境である.センサやモジュールごとにブロックが用意されており,ブロックを組み合わえうことでセンサなど動作確認を容易に行うことができるのが利点である.
iPhoneによるドローン操縦
M5Stackを用いてドローンを制御するにあたって,iPhoneのTello操縦アプリによるドローンの動作確認を行います.
※アプリでの動作確認野前にM5Stackで動作確認したところ全く通信できませんでした.
- まずはApp Storeから「Tello」と検索してアプリをダウンロードしてください.
- ドローンの個体番号を確認します.この個体番号はiPhoneやM5Stackとドローンが通信する際に使用します.
- 個体番号を確認したらドローン用のバッテリーをドローンに挿入します.
- バッテリーを挿入した後にドローンの右側にあるボタンを1回押して電源を入れます.※カメラの横にあるランプが黄色に点滅するまで待つ
- 次にiPhoneからドローンへ接続します.設定アプリをタップしiPhoneの設定画面からWi-Fiを開きます.そしてWi-Fiのネットワークからドローンの固体番号が書かれたネットワークを選択します.
- 次にTelloアプリをタップして起動します.Telloアプリを起動したら「ドローンを接続」を選択します.
- 接続が成功すると,ドローンのカメラ映像がリアルタイムに見ることができます.ドローンのコントローラーの各ボタンは以下のように構成されています.
ボタンを押している間はドローンは動き続け,手を離すと停止します.
iPhoneアプリによるドローンの様子
以下の動画でiPhoneのアプリを使ったドローンの様子とアプリの操作感覚を見ることができます.
M5Stackによるドローン制御
iPhoneのアプリによるドローンの動作確認ができたため,今回の目的であるM5Stackによるドローン制御を行っていきます.
大まかな手順として,まずPC上でドローンの制御用プログラムを作成します.そしてそのプログラムをM5Stackに送信し,プログラムを実行することでドローンを制御します.
UiFlowによるドローン制御プログラムの作成
今回はブラウザ版のUiFlowを使ってプログラムを作成します.
- 上記のリンクを開くと下記の画面が表示されます.使用するM5製品に応じたUiflowのバージョンを選択し「Confirm」をクリックします.
- 画面やや左側にある色分けされたブロックのパネルを下にスクロールすると下から三番目に黄色の「Third Party」があります.それをクリックすると下に「Tello」のブロックパネルが見え,ドローンを操縦するためのブロックを選択できるようになります.
- 各ブロックの機能は以下の通りです.これらのブロックを組み合わせてドローンを制御します.
UiFlowを用いたドローン制御のアルゴリズム
下記の図はUiFlowでドローンを制御するためのプログラムです.プログラムの想定動作はM5StackとTelloが接続出来たら離陸し,ドローンの動作をM5Stackのボタンによって決定します.
アルゴリズムの概要
- ドローンの初期化
- M5StackとドローンをWi-Fi経由で接続する.
- もしWi-Fiが接続されたら,ドローンを接続する.
- ドローンを離陸する
- M5StackのボタンAを押すとドローンを時計回りに旋回させる.
- M5StackのボタンCを押すとドローンを着陸させる.
- 着陸した後に自宅のWi-Fiに接続する
※手順7を実行しないと次回使用する際にTelloのWi-Fiに接続されてしまうため
実行前の注意事項
実行ボタンを押すと「You need to download the tello.py file!」と表示されるのでTello.pyをダウンロードします.
再度実行ボタンを押すとプログラムがM5Stackに送信されます.
UiFlowプログラムの実行結果
UiFlowで書いたプログラムをM5Stackで実行することでTelloドローンを制御することができた.
まとめ
今後はM5Stack内蔵してあるIMUによる傾きに応じてドローンの前後・左右方向に移動させるなどして応用していきたいと思います.