最も手軽にScratch3でTelloを動かす方法

# はじめに

ここでは，TelloをScratch3.0で動かす方法を紹介します．
「Pythonはまだちょっと．．．」という入門にはScratchが最適です．
Scratchの命令を理解すれば，Telloのコマンドの理解も早まります．

# 概要

STEAM教育であるあるネタの「ScratchでTelloのプログラミング」．
ところが，[Ryze Tech.公式の方法](https://terra-1-g.djicdn.com/2d4dce68897a46b19fc717f3576b7c6a/Tello%20%E7%BC%96%E7%A8%8B%E7%9B%B8%E5%85%B3/For%20Tello/Scratch%200320%20%E4%BF%AE%E6%94%B9/Tello%20Scratch%20README%200320.pdf)はScratch2.0用です．

今なら，3.0でやりたくなります．
しかし，拡張機能の追加は2.0のときよりもちょっと大変です．
既に様々な方が3.0用のTelloの拡張機能を作ってくれています．
が，それでも環境の構築など少々手間がかかります．

で，色々探しているうちに，
<font color=blue>**「Telloの拡張機能を埋め込んだ状態のScratch3.0本体」をまるごと配布している人**</font>
を見つけました．

それをダウンロードして解凍し，実行すればいきなりTelloが動かせます．

「**<font color=red>オリジナルを第三者が改変した実行ファイル（いわゆる『野良バイナリ』）は，ウィルスの危険が怖い</font>**」
という点もありますが，危険性を承知し，ウィルススキャンなどもしっかりやれば大丈夫です．


# 配布元

まず，Scratch3.0用のTello拡張機能，および，その拡張機能入りのバイナリを配布してくれているのは，この方です．

　https://github.com/kebhr/scratch3-tello

# ダウンロード手順

下図の様に，Releaseの項目の`You can download the binary here.`の**here**をクリックします．
![tello_scratch3_binary.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256470/5fa59bcc-6690-ca77-d2d0-1ec8f99a67a0.png)

すると，2020年8月の現時点では，V1.0.0がダウンロードできるようになっています．
自分のＯＳの種類にあったzipファイルをダウンロードしてください．
![tello_scratch3_download.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256470/bf9a7780-e9e3-aee2-ca42-28beb8b0526f.png)

# バイナリを解凍する

筆者はWindows10 64bitで試しましたので，ダウンロードしたのは`win.zip`です．

win.zipを適当なアーカイバで解凍すると，この様なフォルダができます．
![tello_scratch3_kaitou1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256470/284ed02a-d187-604f-880d-bd50035a274f.png)
この`__MACOSX`と言うフォルダは，Macで圧縮する際に勝手に付いてくる物なので，
Windowsユーザは削除してしまってかまいません．

`win`フォルダの中に入ってみると，以下の様になっています．
![tello_scratch3_kaitou2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256470/7e78f8ab-dc02-f1e4-1a56-a8a5570fe3b4.png)

あとは，**Scratch Desktop.exe**をダブルクリックして実行するだけです．

# Scratch3を実行してみる

では，`Scratch Desktop.exe`をダブルクリックして実行しましょう．
いつものウィンドウが立ち上がりますが，
**デフォルトではTelloの拡張機能は有効になっていません．**
![tello_scratch3_window1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256470/d91c0550-a062-3fba-9153-f14c4973baee.png)
そこで，`拡張機能を追加`のボタンをクリックします．

![tello_scratch3_window2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256470/ef614bd2-0660-911a-d98a-2cef69d2fdcc.png)
すると，大きくTelloと書かれた機能があるので，クリックします．

![tello_scratch3_window3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256470/f72a1114-d0c1-c3db-fa43-2dbd930e4759.png)
Telloの拡張機能が追加されました．

# 簡単なプログラムを動かす

では，すごく簡単なプログラムを作ってみましょう．
Scratchでよく使う，右上の **<font color=green>緑色の旗</font>** をクリックしたらスタート，のプログラムです．
![tello_scratch3_sample.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256470/53973fb2-ce3b-3f7d-cac3-b28189d77716.png)

Telloを離陸させ，5秒間待って着陸させます．
これだけです．

ですが，この時点でTelloの電源を入れて，ＰＣのWiFi接続をTelloに切り替えて，
 **<font color=green>緑色の旗</font>** をクリックしても，**<font color=red>まず間違いなくTelloは動きません</font>**．

これは筆者の予想でしかありませんが，
**Scratchまたは拡張機能が，プログラム起動中のWiFiネットワーク切り替えに対応していないのではないか**と思われます．
したがって，「Telloに接続してからScratchを起動する」必要があります．

具体的には，以下の手順になります．

1. Telloの電源を入れる
2. ＰＣのWiFiで，Telloのアクセスポイントへ接続する
3. Scratchアプリを起動する
4. プログラムを書いて実行する

この順番でやらないと，Telloは動いてくれませんでした．


~~また，2020年8月の現時点では，**<font color=red>プログラムを保存し次回起動時に読み込んでも何も表示されません</font>**
なので，プログラムを書いた後に「あ，しまったTelloにWiFi繋いでなかったわ」と気づいても，
プログラムは保存・読込できませんので，完全に無駄骨です(>_<
気をつけてください．~~

新しいＰＣで試したところ，保存・読込できました．
できなくなる法則性がまだ分かっていません．．．

# おわりに

Telloの拡張機能が組み込まれた実行バイナリをダウンロードして使えば，簡単にTelloを動かすことができます．
~~しかし，現時点ではプログラムの保存ができませんから，簡単なプログラミング体験ぐらいにしか使いみちがありませんね．．．~~

次は，正規インストールしたScratch3.0に，拡張機能を組み込む方法を試したいと思います．