2019.08.22
Tello を Scratch でプログラミング
DJI Tello は、Scratch に対応しています。Scratch は、教育用のプログラミング言語で、用意されたブロック(命令セット)を組み合わせることで、子供でも簡単にプログラミングすることができます。今回は Scratch を使って Tello を制御する方法をご紹介します、、、
各種ソフトウェアのインストール
以下のソフトウェアをインストールしてください。
- Adobe AIR(Scratch 2.0 の動作に必要)
- Scratch 2.0 オフラインエディター
- Node.js(Tello と PC の通信に必要, LTS 版で良いです)
- 7-Zip(.7z 圧縮ファイルの解凍に必要)
Scratch で動作させるためのファイル一式のダウンロード
下記の Tello ダウンロードページから「Scratch README」リンクをクリックし、手順3にある「Click here to download」をクリック。ダウンロードした .7z ファイルを解凍・展開してください(ここでは、C:\tmp\Scratch_普通版\Tello.js となるような場所に展開したものとして話を進めます)
Scratch に Tello 用のブロック(命令セット)を読み込ませる
- Scratch 2.0 オフラインエディターを起動する。
(言語設定が日本語になっていない場合は、メニューバーの地球儀アイコンより変更できます) - キーボードの「Shift」キーを押しながら、メニューバーの「ファイル」を選択する。
- 「実験的なHTTP拡張を読み込み」を選択する。
- .7z を解凍・展開した際に入っていた「Tello.s2e」ファイル(C:\tmp\Scratch_普通版\Tello.s2e)を指定し、読み込ませる。
- 以下のように「スクリプト>その他」に Tello 用のブロック一式が表示されていることを確認する。
Scratch でプログラムを作ってみる
ここでは Scratch の使い方の説明はしませんが、ブロックを右側の領域にドラッグ&ドロップし、ブロック同士をつないで一連の動きを作っていきます。
例として、
スペースキーを押したら、離陸~着陸するプログラムは以下のようになります。
動作確認:プログラムの実行
- Tello 機体の電源を入れる。
- PC の wifi を Tello に接続する。
- PC から Tello に命令を送るための接続処理を行う(node で Tello.js を実行)
コマンドプロンプトを開き、以下のコマンドを実行する。> node C:\tmp\Scratch_普通版\Tello.js
- 作った Scratch プログラムを実行する(上図の例の場合、スペースキーを押下すると、離陸~着陸の動作をする)
所感
手順は以上ですが、いかがだったでしょうか。
プログラムが動作しない場合は、Tello と PC の接続を再確認してください。wifi で接続した後、node コマンドを実行する流れです。
また、先程の例は離着陸でしたが、挙動がおかしくなったときなどの万が一に備え、XXキーが押されたとき、land(着陸)というプログラムセットを作っておくようにしましょう。ちなみに PC と接続している状態だと、スマホの Tello アプリから操縦できないようです。