外出自粛が続く中、楽しく家で過ごそうということでトイドローンの紹介をしてきました。前回まででトイドローンTelloの基本的な話は終わりました。Telloというやつは安価なトイドローンですが、なかなか優れたやつで動きをプログラミングできるので簡単に紹介します。
Scratch
Telloのプログラミング動作にはScratchという簡単なプログラミング環境を使います。
正確にいうなら、2006年にMIT(マサチューセッツ工科大学)のメディアラボで開発されたプログラミング言語学習環境です。
Scratchについて簡単に紹介し実際にプログラミング(というほどのことはない)を紹介した動画がありました。
およそ17分と長いですが、筆者が延々解説するのを読むよりは手っ取り早いので興味があれば見てください。
Scratchは子供がプログラミング(というか考え方)を学ぶのに適したビジュアル・プログラミング言語であり、誰でも無料で使うことができます。
以下のリンクはMIT(マサチューセッツ工科大学)のScratchのオフィシャルサイトですが、アクセスしていただくと日本語で開きますのでご心配なく。
Scratchの説明が本来の目的ではないので、このあたりにしてTelloに行きましょう。
TelloをScratchで動かしてみる (DroneBlocks)
1.アプリをダウンロードする
AndroidはGoogle Playで、iOS(iPhone)はApp Storeで「DroneBlocks]というアプリを検索しダウンロード・インストールします(無料アプリ)。
2.Telloを接続する
Telloにバッテリーを装着してスイッチを入れ、スマートフォンと接続します。
3.DroneBlocksを起動する
準備が出来ましたのでDroneBlocksを起動しましょう。画面はiPhoneでもAndroidでも似たようなものですが、4インチとか4.7インチの画面だとちょっと小さくて苦しいかもしれません。リモコン代わりに使いますので、ある程度大きさがある方が使いやすいです。
起動直後はこういう画面になります。
4.Scratchでプログラムしてみる
右上の「Connect to Tello」をタップします。
下図のようなダイアログが現れますので「CONNECT TO TELLO」をタップします。この段階ではまだ何も起きません。
接続が完了するとTelloからのテレメータ情報が、下図のように画面上部に表示されます。
それを確認したら右上の「≡」をタップします。
メニューがポップアップしますので一番下の「DJI Blocks」をタップします。
これで左側のグラフィックプログラム画面(ブロック画面)が使えるようになります。
下図は「Takeoff」ドラッグし、そこに「Land」のブロックを組み合わせたものです。
すまり「離陸」→「着陸」という動作を自動的に行なえということです。
5.プログラムから動かす
Telloを周囲を片付けて上方に障害のない場所に置きます。
再び右上の「≡」をタップしてポップアップメニューを出して、「Launch Mission」をタップしましょう。
自動的にプロペラが回転し1mほどの高さまで上昇して少しの間ホバリングしたあと着陸します。
6.プログラムに追加する
今度は「Navigation」をタップし現れたブロックから「fly backward 20cm」を選んでドロップします。
同様に「Flip」をタップし現れたブロックから「flip forward」をドロップし、下図のようにブロックを組み合わせます。
周囲に注意して「Launch Mission」をタップします。
Telloは自動的に上昇ホバリングの後、約20cm後退してからくるりと素早く前転した後に着陸します。
いかがでしょうか?
いろいろな動きを組み合わせることができます。
くれぐれも最後にはLandを入れて着陸させるのをわすれないようにしてください。
Landを忘れるとバッテリー切れまで動いてその後落下します。
Tello EDUについて
Telloには教育用モデルとしてTello EDUというのがあります。
- ミッションパッドという4枚のシートが付属しており、それぞれマークが両面で8種類印刷されており、Tello下部の小型のカメラ(ビジョンポジショニングしすkテム)でそのマークを認識して、自分の位置を知らせることができます。
- 複数台のTelloを同時に使用して編隊飛行ができる。
編隊飛行はどうでもいいとして、ミッションパッドは羨ましいかもしれません。
しかし、アプリの「TELLO EDU」はTello EDUではない普通のTelloでも使えます。
「TELLO EDU」はGoogle Play (Android)、App Store (iOS)からダウンロードできます。
DroneBlocksはTelloリモコン機能はありませんが、TELLO EDU(アプリ)にはTelloのリモコン機能もありますので(流石に純正アプリです)、こちらのほうがいいかもしれません。
プログラミング画面はこんな感じです。
Telloniha温度や気圧などのセンサーが内蔵されていますので、そのセンサーの値を使って動きを制御することも可能です。
TELLO EDUアプリだと、Tello本体を飛ばさなくても擬似的にScratchの使い方を学習できますのでおすすめです。
まとめ
Telloは小さいけれど高機能で、TELLO EDUアプリやDroneBlocksアプリを使って、Scratchというグラフィク・プログラミング言語(環境)を使って、ブロックを組み合わせるようにして動きをプログラミングすることができる。