2019.08.22

Tello を Scratch でプログラミング

DJI Tello は、Scratch に対応しています。Scratch は、教育用のプログラミング言語で、用意されたブロック(命令セット)を組み合わせることで、子供でも簡単にプログラミングすることができます。今回は Scratch を使って Tello を制御する方法をご紹介します、、、

各種ソフトウェアのインストール

以下のソフトウェアをインストールしてください。

Scratch で動作させるためのファイル一式のダウンロード

下記の Tello ダウンロードページから「Scratch README」リンクをクリックし、手順3にある「Click here to download」をクリック。ダウンロードした .7z ファイルを解凍・展開してください(ここでは、C:\tmp\Scratch_普通版\Tello.js となるような場所に展開したものとして話を進めます)

Scratch に Tello 用のブロック(命令セット)を読み込ませる

  1. Scratch 2.0 オフラインエディターを起動する。
    (言語設定が日本語になっていない場合は、メニューバーの地球儀アイコンより変更できます)
  2. キーボードの「Shift」キーを押しながら、メニューバーの「ファイル」を選択する。
  3. 「実験的なHTTP拡張を読み込み」を選択する。


  4. .7z を解凍・展開した際に入っていた「Tello.s2e」ファイル(C:\tmp\Scratch_普通版\Tello.s2e)を指定し、読み込ませる。
  5. 以下のように「スクリプト>その他」に Tello 用のブロック一式が表示されていることを確認する。

Scratch でプログラムを作ってみる

ここでは Scratch の使い方の説明はしませんが、ブロックを右側の領域にドラッグ&ドロップし、ブロック同士をつないで一連の動きを作っていきます。

例として、
スペースキーを押したら、離陸~着陸するプログラムは以下のようになります。

動作確認:プログラムの実行

  1. Tello 機体の電源を入れる。
  2. PC の wifi を Tello に接続する。
  3. PC から Tello に命令を送るための接続処理を行う(node で Tello.js を実行)
    コマンドプロンプトを開き、以下のコマンドを実行する。
    > node C:\tmp\Scratch_普通版\Tello.js
  4. 作った Scratch プログラムを実行する(上図の例の場合、スペースキーを押下すると、離陸~着陸の動作をする)

所感

手順は以上ですが、いかがだったでしょうか。

プログラムが動作しない場合は、Tello と PC の接続を再確認してください。wifi で接続した後、node コマンドを実行する流れです。

また、先程の例は離着陸でしたが、挙動がおかしくなったときなどの万が一に備え、XXキーが押されたとき、land(着陸)というプログラムセットを作っておくようにしましょう。ちなみに PC と接続している状態だと、スマホの Tello アプリから操縦できないようです。