トイドローン TelloをScratchプログラミングで制御

Facebooktwittermail

平成最後の投稿になりました。

トイドローンのRyze Telloを購入したので、早々にScratchプログラミングに挑戦してみました。


Ryze Tello
https://www.ryzerobotics.com/jp/tello

Scratch – Imagine, Program, Share
https://scratch.mit.edu/

Ryze Tello, Scratchについての解説は、すでにたくさんのサイトがあるのでそちらにお任せします(手抜き)。

RyzeではTelloのためのSDKも公開されています。
Tello SDK
https://terra-1-g.djicdn.com/2d4dce68897a46b19fc717f3576b7c6a/Tello%20%E7%BC%96%E7%A8%8B%E7%9B%B8%E5%85%B3/For%20Tello/Tello%20SDK%20Documentation%20EN_1.3_1122.pdf

今回の環境
・Ryze Tello Firemware Ver. 01.04.88.01
・Windows 10 Pro x64 Ver. 10.0.17763.137

  1. Scratch 2.0 Offline Editorのダウンロード
  2. 下記サイトからScratch 2.0 Offline Editorをダウンロードします。
    Scratch 2.0 Offline Editor
    https://scratch.mit.edu/download/scratch2

    Windows版
    https://scratch.mit.edu/scratchr2/static/sa/Scratch-461.exe

  3. Scratch 2.0 Offline Editorのインストール
  4. ダウンロードしたScratch-461.exeを実行してインストールします。
    Adobe AIRは必須なので、PCにインストールされていない場合は先にインストールされます。



  5. node.jsのダウンロード
  6. node.jsはTelloとScratchの通信を中継してくれるプログラムと理解していいのかな。

    Node.js
    https://nodejs.org/ja/

    今回は推奨版の10.15.3 TLSをダウンロードしました。
    https://nodejs.org/dist/v10.15.3/node-v10.15.3-x64.msi

  7. node.jsのインストール
  8. ダウンロードしたnode-v10.15.3-x64.msiを実行してインストールします。



  9. Tello.jsとTello.s2eのダウンロード
  10. node.jsで動作させるTelloのサーバ機能とScratchに組み込むTello制御ファイルをダウンロードします。
    https://terra-1-g.djicdn.com/2d4dce68897a46b19fc717f3576b7c6a/Tello%20%E7%BC%96%E7%A8%8B%E7%9B%B8%E5%85%B3/For%20Tello/Scratch_For%20Tello.7z

    ダウンロードしたScratch_For Tello.7zをフリーソフト7-Zipなどで適当なフォルダに解凍します。
    解凍すると下記のファイルが作成されます。ちなみにTello制御ファイルのTello.s2eは英語版、TelloChs.s2eは中国語版になります。

  11. ScratchにTello制御ファイルを組み込む
  12. Scratchを起動してTello制御ファイルを組み込みます。
    Scratchは標準で英語メニューなので地球マーク(?)から「日本語」、あるいは「にほんご」を選択します。


    次にShiftキーを押しながらファイルメニューをクリックして、一番下に表示されている”実験的なHTTP拡張を読み込み“を選択し”Tello.s2e“ファイルを指定して読み込みます。

    Tello制御は「スクリプト」の「その他」に表示されるので、そこから選択してプログラミングします。


    ちなみに新しいScratchプロジェクトを作成したらTello制御は表示されなくなるので、プロジェクトごとにTello.s2eを読み込む作業が必要です。

  13. PCとTelloを無線接続
  14. PCとTelloを無線で接続します。

  15. Tello.jsの起動
  16. TelloとScratchの間で制御コマンドの中継をしてくれるTello.jsを起動します。
    Windowsのコマンドプロンプトを起動してnode (Tello.jsの保存場所)\Tello.jsで起動します。

    下記のメッセージが表示されればTelloと無線通信ができています。

    Data received from server : ok
    Received 2 bytes from 192.168.10.1:8889

    Tello.jsの終了はCtrl+Cかコマンドプロンプトのウィンドウを終了すれば停止します。

  17. Scratchプログラムの実行
  18. プログラムを実行するとTelloが動作しました。
    コマンドプロンプトにはTelloに送信したコマンド、Telloからの返信が表示されます。
    最初に”command”でSDK modeに切り替えてからコマンドを送信しています。

またTello SDK 1.3.0.0(Tello SDK Documentation EN_1.3_1122.pdf)ドキュメントを読むと下記の記述がありました。

6. SAFETY FEATURE
If Tello does not receive any command input for 15 seconds, it will land automatically.

安全機能として「Telloが15秒間コマンド入力を受け取らないと、自動的に着陸します。」とあります。
“land(着陸)”を忘れても15秒まてば自動的に着陸してくれるはずなので安心ですね。
逆に言えば、15秒以上のホバリングはできないってことになります。

下記はTello.s2eを日本語化して読み込んでみました。Tello.s2eはテキストファイルなので簡単に直せます。
日本語が正しいかどうかは別として(笑


Leave a Reply