【ドローン】TelloをScratchプログラミングで自動飛行させる全手順を解説【図解入り】


Ryze Tech社のトイドローン「Tello」をScratch(スクラッチ)プログラミングで自動飛行させるやり方を知りたいです。
この記事では、こういった要望にお答えします。
- TelloをScratchで自動飛行させよう
- TelloをScratchで動かす全体的な流れ
- TelloとScratchを接続する手順(Windows版)
- ScratchでTelloの自動飛行プログラミングを作成する
人気トイドローンTelloは、ビジュアルプログラミングツール「Scratch(スクラッチ)」を使って自動飛行させることができます。
この記事では、TelloをScratchプログラミングで自動飛行させるやり方をまとめました。
本記事の手順どおりに進めることで、初めての方でもTelloの自動飛行を設定できるようになりますので、ぜひチャレンジしてみてください。
本記事で紹介する方法は「Scratch2.0」を使用して解説しています。Scratch3.0を使用したやり方をお探しの方は、ドローンおやじさんが公開されている下記動画を参考に設定してみてください。
参考動画 Scratch3.0でTelloをプログラミング制御!Vol.1 簡単にセットアップ可能で楽しいプログラミング教育が実現します♪(小学生&その親御さんにオススメ!)
TelloをScratchで自動飛行させよう
TelloをScratchで自動飛行させるやり方を解説する前に、簡単にScratchを紹介します。


Scratchとは
Scratchは子どもやプログラミング初心者のために作られた「ビジュアルプログラミング」ツールの一つで、MITメディアラボによって開発されました。
公式サイト Scratch
直感的に操作できる
Scratchは日本語で書かれた命令文を組み合わせるだけで、ゲームやアニメーション、インタラクティブな物語作品を作ることができます。
命令文が書かれたブロックを組み合わせるだけで動かせるので、低学年の子供でも手軽にプログラミングの仕組みを学べます。


Scratchでプログラミングすれば子供から大人までドローンの自動飛行を楽しめる
Scratchは可愛い絵柄や直感的な操作、日本語対応されたスクリプト、ドラッグ&ドロップなどの簡単なマウス操作でプログラミングできますので、大人はもちろん、子供でもプログラミングによる自動飛行を楽しめます。
大人の趣味として楽しめることはもちろん、子供のプログラミング教材としても使えます。
TelloをScratchで動かす全体的な流れ
それでは、TelloをScratchでプログラミング飛行させる流れを解説していきます。
開発元に英語版のマニュアルが配布されています
Telloを開発したRyze Tech社のウェブサイトにScratchでプログラミング飛行をさせる手順を確認できます。


公式サイト TELLOダウンロード
「Scratch READEME」をクリックすると、手順が記載されたPDFファイルをダウンロードできます。
出典:Ryze Tech社ウェブサイト
- Visit https://scratch.mit.edu/download and follow the instructions to install the Scratch 2.0 Offline Editor.
- Download and install node.js from https://nodejs.org/en/.
- Download Tello.js and Tello.s2e from https://dl-cdn.ryzerobotics.com/downloads/tello/20180222/Scratch.zip, open the terminal, go to the file directory where you saved the previous files,and type “node Tello.js”
- Open Scratch 2.0, hold the “Shift” key, click the “File” menu, click “Import Experimental HTTP Extension,” and select “Tello.s2e” file in the file directory.
- The Tello interface will be shown in Scratch under “More Blocks.”
マニュアルの内容を翻訳すると、下記のとおりです。
- Scratchのウェブサイトで「Scratchオフラインエディタ」をダウンロードしてインストールして下さい。
- https://nodejs.org/ja/へアクセスし、「node.js」をダウンロードしてインストール。
- 「Tello.js」と「Tello.s2e」をダウンロードします。
- Scratchのソフトを立ち上げたら、Shift”キーを押しながら 「ファイルメニューをクリック」し、一番下に表示される「実験的なHTTP拡張を読み込み(import experimental HTTP extension)」を選択し、 “Tello.s2e”ファイルを開きます。
- Telloインターフェースはスクラッチの「その他(More Blocks)」に表示されます。
パソコンに詳しい方であれば、この手順書を見れば設定できると思いますが、そうでない方がこの手順書を見て設定するのはかなり難しいと感じます。
そこで、パソコンに詳しくない方でもScratchで動かすことができるよう、本記事では下記2つの設定方法を解説します。
- TelloとScratchを接続する手順(Telloとパソコンを通信できるよう設定)
- ScratchでTelloの自動飛行プログラミングを作成する
TelloとScratchを接続する手順(Windows版)


それでは、TelloとScratchを接続する手順(Windows版)を解説します。
- 手順①:Scratchをパソコンにインストールする
- 手順②:node.jsをダウンロードしてインストール
- 手順③:Tello.jsとTello.s2eをダウンロードする
- 手順④:ScratchにTelloのデータを取り込む
- 手順⑤:Telloインターフェースが「その他」に表示される
上記のとおり。
手順①:Scratch2.0をパソコンにインストールする
Scratchのソフトを使用するには、Scratch2.0をパソコンにインストールする必要があります。
まずはScratch2.0を配布している公式サイトにアクセスします。


以下のリンクをクリックすると、Scratch2.0のダウンロードページに移動します。
公式サイト Scratch 2.0 オフラインエディター
Scratchの配布ページに移動したら、Scratchオフラインエディタをダウンロードします。


ダウンロード終了後、ファイルを実行してパソコンにScratchをインストールします。


このポップアップが表示された場合、Scratchオフラインエディタの左にある「Adobe AIR」をダウンロードしてインストールして下さい。
インストールが完了するとScratchが立ち上がります。
スクラッチチームに情報を自動送信するかどうか画面中央に表示されますが、これはどちらをクリックしてもOKです。
いずれかをクリックするとソフトが使えるようになります。


なお、インストール後は英語表記の状態ですが、言語セレクタで日本語に変換できます。


「日本語」に変換されましたね。
以上でScratchのインストール作業は完了です。


手順②:node.jsをダウンロードしてインストール
次に、node.jsをパソコンにインストールする必要があるため、node.jsのサイトにアクセスしてソフトをダウンロードします。


公式サイト node.js
左側にある「推奨版」をクリックしてダウンロードします。
node.jsのインストール手順については割愛します(ひたすら「Next」をクリックするだけで、特に操作する必要がないため)。
手順③:Tello.jsとTello.s2eをダウンロードする
「Tello.js」と「Tello.s2e」というファイルをRyze Tech社のサイトからダウンロードします。
下記リンクをクリックすると「Scratch.zip」というファイルのダウンロードが始まります。
公式サイト Ryze Tech
ファイルはzip形式で圧縮してあるので、ファイルを解凍します。


フォルダの中には、「Tello.js」「Tello.s2e」「TelloChs.s2e」というファイルが入っています。
次に、コマンドプロンプトを立ち上げます。
デスクトップの左下にあるWindowsマークの横に、「ここに入力して検索」という検索ボックスがありますので、ここに「cmd」と入力します。


「コマンド プロンプト デスクトップアプリ」と表示されますので、クリックすると、コマンドプロンプトが立ち上がります。


コマンドプロンプトを立ち上げたらコマンドを入力
コマンドプロンプトを立ち上げたら、コマンドを入力して「Tello.js」を動かします。
1.スクラッチのフォルダのパスを入力します。
コマンドを入力して、スクラッチのフォルダにアクセスします。
「cd C:¥Users¥ユーザー名¥Desktop¥Scratch¥Scratch」と入力し、「Enterキー」を押します。
コピペする場合は下記をコピペして下さい。
- デスクトップ上でファイルを解凍してあることを想定しています。
- ユーザー名の部分はご自身のパソコンのユーザー名に変更して下さい(画像でいうところのモザイク部分)
- もし「指定されたパスが見つかりません」と表示されたら、上記の「¥Scratch」をひとつ削除して試してみて下さい(「¥Scratch¥Scratch」という部分を「¥Scratch」だけにする)。筆者もこれで何回かつまづきました。


次に、「node Tello.js」と入力し、「Enterキー」を押します。


この画面が表示されれば成功です。これでTelloと通信できます。
セキュリティの警告が出てきた場合


「node Tello.js」を実行した後、使用しているパソコンによってはセキュリティの警告が表示される場合があります。
もし、警告が表示された場合、「アクセスを許可する」を選択してください。
エラーが出て接続できない場合


上図のようにシンプルな表示にならず、下記のように「Error(エラー)」と表示された方は、Tello.jsファイルを修正する必要があります。
Error [ERR_STREAM_WRITE_AFTER_END]: write after end
具体的な修正方法は@shoito66さんというシステムエンジニアの方がQiitaで修正方法を公開してますので、エラーが出てしまった方は下記記事を参考に修正してください。
参考リンク プログラミング初心者向け!トイドローン「Tello」をScratchで飛ばす
手順④:ScratchにTelloのデータを取り込む
Scratchオフラインエディタに戻り、ダウンロードしたTelloのデータを取り込みます。
「Shiftキー」を押しながら「ファイル」をクリックすると「実験的なHTTP拡張を読み込み」という項目がメニューに表示されますので、ここをクリックします。


「Tello.s2e」を選択し、「開く」をクリックします。


手順⑤:Telloインターフェースが「その他」に表示される
スクリプトの「その他」を選択すると、Telloのコマンドが表示されます。
これでScratchの中にTelloのデータを取り込む事ができます。


「ファイル」をクリックする際、「Shiftキー」を押さないと「実験的なHTTP拡張を読み込み」という項目が表示されません。
必ず「Shiftキー」を押しながら「ファイル」をクリックして下さい。


これで、Scratchを使ったTelloのプログラミング飛行の準備は完了です。
ScratchでTelloの自動飛行プログラミングを作成する


Telloとパソコンを接続し、Scratchでプログラミングする準備が整ったら、実際にTelloのプログラミングをしてみましょう。
Scratchで使用するスクリプトを解説しながら、簡単な動作をプログラミングし、最後にプログラムの実行までを解説します。
- Scratchで使用するスクリプト
- Telloの動作をScratchでプログラミングする
- プログラムの実行(パソコンとTelloを接続する)
上記のとおり。
Scratchで使用するスクリプト


Scratchのスクリプトは、「動き」、「見た目」、「音」、「ペン」、「データ」、「イベント」、「制御」、「調べる」、「演算」、「その他(Tello control)」とありますが、Telloを動かすスクリプトは下記3つです。
- イベント
- 制御
- その他(Tello control)
イベント
イベントは、プログラミングを動かすきっかけの様なものを設定できます。
Telloのプログラミングでは「スペース(変更可)キーが押されたとき」ぐらいしか使わないかもしれません。


制御
制御は、イベントの後のTelloの動きの間の制御を設定できます。
例えば、
- 離陸した後に「10秒待つ」
- 1m直進して、180度旋回を「2回繰り返す」
などといった制御をする際に使用します。


Tello control(その他)
Telloの飛行に関するアクションを設定できます。


具体的なアクション内容は下記のとおりです。
- take off → 離陸
- land → 着陸
- fly up with distance → 上昇(数字は移動距離)
- fly down with distance → 下降(数字は移動距離)
- fly left with distance → 左移動(数字は移動距離)
- fly right with distance → 右移動(数字は移動距離)
- fly forward with distance → 前進(数字は移動距離)
- fly back with distance → 後進(数字は移動距離)
- rotate CW with angle → 右回転(数字は角度)
- rotate CCW with angle → 左回転(数字は角度)
- flip with duration → 8方向フリップ(F,B,R,Lでフリップする方向を指定できます)
- set speed → スピード変更?(数字は速度?)
※移動距離はcm単位です。
Telloの動作をScratchでプログラミングする
それでは、Scratchでドローンの動作をプログラミングしていきます。
非常に簡素ではありますが、試しに、下記動作をプログラミングしてみました。
- スペースキーを押したらプログラム実行
- 10秒後に離陸
- 5秒間待ったら、20cm直進
- 直進後、3秒待って180度旋回
- 20cm直進
- 5秒待って着陸
スクリプトを選択し、画面右のスペースにスクリプトをドラッグして積み重ねるだけです。


プログラムの実行(パソコンとTelloを接続する)
Scratchでプログラミングできましたら、いよいよプログラムの実行です。


Telloの電源を入れ、パソコンとTelloをWi-Fi接続します。
パソコンとTelloを接続できたら準備完了です。
プログラミングを実行すると、コマンドプロンプトでは下記のようにScratchで設定した内容が表示されます。


上記が表示されればプログラミングは実行され、Telloは自動飛行を行います。
以上でTelloをScratchで自動飛行させる手順は完了です。
まとめ
以上、ビジュアルプログラミング「Scratch」を使い、Telloのプログラミング飛行を設定する方法を解説しました。
Scratchを使えば難しいプログラミング言語を覚えなくてもドローンの動作をプログラミングで動かせます。
Telloは大人が空撮やプログラミングを趣味として楽しむのはもちろん、お子さんのプログラミング教育にも使えます。
自分で考えたプログラムでドローンを自動飛行で動かすのは、お子さんも興味を持つと思いますので、ぜひScratchを使ったプログラミングにチャレンジしてみて下さい。


ちなみに、スマホアプリでもっと気軽にプログラミングにチャレンジしたいという方は、下記記事をどうぞ。