Tello ドローン を Scratch でプログラミングしてみよう

Tello ドローン を Scratch でプログラミングしてみよう

「Tello」 ドローンはDJIのフライトテクノロジーを搭載したRyze Tech社製の小型ドローンで、 80g と非常に軽量ですが非常に安定したホバリングが可能です。MITメディアラボによって子どもやプログラミング初心者のために開発され「ビジュアルプログラミング」ツールのScratchで Tello ドローンをプログラミング制御したいと思います。

Tello は Wi-Fi UDPポートを介して機体に接続し、テキストコマンドで機体を制御することができます。Scratch のほかにも Python などのプログラミング言語でも Tello をプログラミングで制御することができます。 Scratch でプログラミング制御する手順は Tello 公式のウェブサイトで公開されていますので、この手順に沿って実施していきたいと思います。

Tello ドローン
Tello ドローン
Scratch ビジュアルプログラミング

Tello ドローンを Scratch でプログラミング制御する手順

  1. https://scratch.mit.edu/download にアクセスし、指示に従って Scratch 2.0 Offline Editor をインストールします。
  2. https://nodejs.org/en/ から node.js をダウンロードしてインストールします。
  3. ここをクリックしてTello.jsとTello.s2eをダウンロードし、ターミナルを開いて、前のファイルを保存したファイルディレクトリに行き、”node Tello.js “と入力します。
  4. Scratch 2.0を開き、「Shift」キーを押しながら「File」メニューをクリックし、「Import Experimental HTTP Extension」をクリックして、ファイルディレクトリにある「Tello.s2e」ファイルを選択します。
  5. Scratchの “More Blocks “にTelloのインターフェースが表示されます。

Scratch 2.0 Offline Editor をインストール

Scratch のウェブサイトから Scratch 2.0 Offline Editor をダウンロードしてインストールします。Scratch 2.0 を動作させるためにAdobe AIR が必要なので、持っていない場合は最新のAdobe AIRをダウンロードしてインストールして下さい。


Scratch の Web サイトから Scratch 2.0 オフラインエディターを選択
Scratch の Web サイトから Scratch 2.0 オフラインエディターを選択
Adobe AIR のインストールと Scratch オフラインエディターのダウンロード
Adobe AIR のインストールと Scratch オフラインエディターのダウンロード

ダウンロードした Scratch オフラインエディターのインストーラーをキックしてインストールを完了させます。


「続行」をクリックして Scratch 2 オフラインエディターをインストール
「続行」をクリックして Scratch 2 オフラインエディターをインストール
Scratch 2 オフラインエディターが起動
Scratch 2 オフラインエディターが起動

node.js をインストール

NodejsのウェブサイトからNodejsをダウンロードしてインストールします。Nodejsの推奨バージョン「16.13.1」を選択しました。

ダウンロードした Nodejs のインストーラーをキックしてインストールを完了させます。


Nodejs のインストーラーをダウンロード
Nodejs のインストーラーをキックして「Next」をクリック
Nodejs のインストーラーをキックして「Next」をクリック

End-User License Agreement を読んで「Next」をクリック
End-User License Agreement を読んで「Next」をクリック
Nodejs のインストール先を指定(デフォルト)して「Next」をクリック
Nodejs のインストール先を指定(デフォルト)して「Next」をクリック

インストールする機能を選択(デフォルト)して「Next」をクリック
インストールする機能を選択(デフォルト)して「Next」をクリック
NodeJs のツールで必要なモジュールを自動インストールする場合はチェックを入れて(ここでは入れない)「Next」をクリック
NodeJs のツールで必要なモジュールを自動インストールする場合はチェックを入れて(ここでは入れない)「Next」をクリック

Nodejs インストールの準備が整いました「Install」をクリックしてインストールを完了させる
Nodejs インストールの準備が整いました「Install」をクリックしてインストールを完了させる
インストールが成功することを確認して「Finish」をクリック
インストールが成功することを確認して「Finish」をクリック

Nodejs のインストールが完了し、Telloドローンを Scratch からプログラミング制御する準備が整いました。

Scratch から Tello ドローンをプログラミング制御する

ここをクリックしてTello.jsとTello.s2eをダウンロードします。ダウンロードした zip ファイルを解凍し、任意のフォルダへ配置します。

任意のフォルダーに Tello.js と Tello.s2e を配置
任意のフォルダーに Tello.js と Tello.s2e を配置

ターミナルを開いて、前のファイルを保存したファイルディレクトリに行き、”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 ドローンを制御するためのブロックが追加されています。

「Shift」キーを押しながら「File」メニューをクリックし、「Import Experimental HTTP Extension」をクリックして、ファイルディレクトリにある「Tello.s2e」ファイルを選択
「Shift」キーを押しながら「File」メニューをクリックし、「Import Experimental HTTP Extension」をクリックして、ファイルディレクトリにある「Tello.s2e」ファイルを選択
「Scripts」の「More Blocks」にTello ドローンを制御するためのブロックが追加される
「Scripts」の「More Blocks」にTello ドローンを制御するためのブロックが追加される

Scratch 2.0 を起動しているパソコンから、Telloの Wi-Fi ap にアクセスします。動作確認のため Scratch 2.0 で下記の プログラムを作成してスペースキーを押すと Tello ドローンが真上に上昇します。「Land」ブロックをクリックすると Tello ドローンが降下します。

「when space key pressed」と 「take off」ブロックを追加して連結します。Tello ドローンを降下させるための「land」ブロックを追加します。
「when space key pressed」と 「take off」ブロックを追加して連結します。Tello ドローンを降下させるための「land」ブロックを追加します。

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],		
 	]
}
 Tello を制御するための Scratch のブロックが日本語化されました
Tello を制御するための Scratch のブロックが日本語化されました

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です