「Tello」 ドローンはDJIのフライトテクノロジーを搭載したRyze Tech社製の小型ドローンで、 80g と非常に軽量ですが非常に安定したホバリングが可能です。MITメディアラボによって子どもやプログラミング初心者のために開発され「ビジュアルプログラミング」ツールのScratchで Tello ドローンをプログラミング制御したいと思います。
Tello は Wi-Fi UDPポートを介して機体に接続し、テキストコマンドで機体を制御することができます。Scratch のほかにも Python などのプログラミング言語でも Tello をプログラミングで制御することができます。 Scratch でプログラミング制御する手順は Tello 公式のウェブサイトで公開されていますので、この手順に沿って実施していきたいと思います。
Index
Tello ドローンを Scratch でプログラミング制御する手順
- https://scratch.mit.edu/download にアクセスし、指示に従って Scratch 2.0 Offline Editor をインストールします。
- https://nodejs.org/en/ から node.js をダウンロードしてインストールします。
- ここをクリックしてTello.jsとTello.s2eをダウンロードし、ターミナルを開いて、前のファイルを保存したファイルディレクトリに行き、”node Tello.js “と入力します。
- Scratch 2.0を開き、「Shift」キーを押しながら「File」メニューをクリックし、「Import Experimental HTTP Extension」をクリックして、ファイルディレクトリにある「Tello.s2e」ファイルを選択します。
- Scratchの “More Blocks “にTelloのインターフェースが表示されます。
Scratch 2.0 Offline Editor をインストール
Scratch のウェブサイトから Scratch 2.0 Offline Editor をダウンロードしてインストールします。Scratch 2.0 を動作させるためにAdobe AIR が必要なので、持っていない場合は最新のAdobe AIRをダウンロードしてインストールして下さい。
ダウンロードした Scratch オフラインエディターのインストーラーをキックしてインストールを完了させます。
node.js をインストール
NodejsのウェブサイトからNodejsをダウンロードしてインストールします。Nodejsの推奨バージョン「16.13.1」を選択しました。
ダウンロードした Nodejs のインストーラーをキックしてインストールを完了させます。
Nodejs のインストールが完了し、Telloドローンを Scratch からプログラミング制御する準備が整いました。
Scratch から Tello ドローンをプログラミング制御する
ここをクリックしてTello.jsとTello.s2eをダウンロードします。ダウンロードした zip ファイルを解凍し、任意のフォルダへ配置します。
ターミナルを開いて、前のファイルを保存したファイルディレクトリに行き、”node Tello.js “と入力します。
c:\tello>node Tello.js --------------------------------------- Tello Scratch Ext running at http://127.0.0.1:8001/ ---------------------------------------
Scratch 2.0を開き、「Shift」キーを押しながら「File」メニューをクリックし、「Import Experimental HTTP Extension」をクリックして、ファイルディレクトリにある「Tello.s2e」ファイルを選択します。「Scripts」の「More Blocks」にTello ドローンを制御するためのブロックが追加されています。
Scratch 2.0 を起動しているパソコンから、Telloの Wi-Fi ap にアクセスします。動作確認のため Scratch 2.0 で下記の プログラムを作成してスペースキーを押すと Tello ドローンが真上に上昇します。「Land」ブロックをクリックすると Tello ドローンが降下します。
Tello を制御する Scratch のブロックを日本語化する
Tello を制御するための Scratch のブロックを日本語化する s2e ファイルを作成しました。 テキストエディターで下記をファイルとして保存します。「Shift」キーを押しながら「File」メニューをクリックし、「Import Experimental HTTP Extension」をクリックして作成したファイルを選択すると Tello を制御するための Scratch のブロックが日本語化されます。
## Tello-jp1.s2e { "extensionName": "ドローン・コントロール", "extensionPort": 8001, "blockSpecs": [ [" ", "飛ぶ", "takeoff"], [" ", "降りる", "land"], [" ", "上がる(cm) %n", "up", 20], [" ", "下がる(cm) %n", "down", 20], [" ", "左に移動(cm) %n", "left", 20], [" ", "右に移動(cm) %n", "right", 20], [" ", "前に移動(cm) %n", "forward", 20], [" ", "後ろに移動(cm) %n", "back", 20], [" ", "時計回り(度) %n", "cw", 90], [" ", "反時計回り(度) %n", "ccw", 90], ] }