プログラミング(Scratch)でドローンを自動飛行させるワークショップを何度か開催しました。
毎回大盛況で参加していただくとみんなすごく楽しいと言ってくれます。
「家でもやってみたい」という声をいただくことが多かったので、今回はプログラミング(Scratch)でドローンを自動飛行させる方法について説明します。
使用するドローン
まずドローンがないと始まりません。
ここで説明する方法ではTelloのドローンを使用します。
他にもドローンでScratchと連携できるものもありますが、ここで説明する方法は使用できませんのでご注意ください。
おすすめは体験セット版です。
予備バッテリー、専用ケースも付属されています。
部屋の中で飛ばすこともあるかと思うので安全ガードがあるのもありがたいです。
私は安全ガードなしでクリスマスツリーに突撃させてしまいました。
ツリーの葉っぱがみじん切りになって、周辺を青のりだらけ状態にしてしまいました。笑
あった方が安全です。
一点マイナスなのは付属のケースに安全ガードが入らないのでかなり嵩張ります。
だれか安全ガード付きでぴったり収納できるケースを作ってください。
※本体だけでも使用できます。
Scratchのインストール
Scratchでプログラミングしてドローンを自動飛行させますので、まずはScratch2.0をインストールします。
詳細なインストール手順については以下の記事を参照してください。
Node.jsのインストール
Scratchとドローンをつなぐためのソフトが必要となります。
Node.jsをダウンロードしてインストールします。
以下のURLに接続してください。
https://nodejs.org/ja/
推奨版のダウンロードボタンをクリックしてインストールフォルダをダウンロードします。

ダウンロードされたインストールファイルをダブルクリックして実行します。

Nextボタンをクリックします。

チェックボックスにチェックを入れて、Nextボタンをクリックします。

Nextボタンをクリックします。

Nextボタンをクリックします。

Installボタンをクリックします。

「このアプリがデバイスに変更を加えることを許可しますか?」と表示されたらはいボタンをクリックします。
インストールが完了するまで待ちます。

Finishボタンをクリックします。

これでNode.jsのインストールは完了です。
TelloとScratchの接続用プログラムを実行
以下のURLに接続するとプログラムをダウンロードできます。
https://dl-cdn.ryzerobotics.com/downloads/tello/20180222/Scratch.zip
ダウンロードしたZipファイルを解凍し、中にあるScratchフォルダを任意の場所にコピーしてください。

コマンドプロンプトを起動します。
パソコンに詳しくない方は難しいと思いますがあきらめないでください!
キーボードのWindowsキー(四角が四分割さているようなキーです)を押しながらRキーを押します。
名前欄に「cmd」と入力してOKボタンをクリックします。

Windows10であれば画面左下の「ここに入力して検索」欄に「cmd」と入力してEnterキーを押してもOKです。
以下の黒い画面が立ち上がれば大丈夫です。

「node」と入力し、その後にスペースを一つ入れます。
さきほどコピーしたScratchフォルダ内のTell.jsファイルを黒い画面にドラッグしてEnterキーを押します。

以下の画面になればOKです。
画面を閉じずそのままにしておいてください。

ScratchにTelloドローン用のブロックを追加
やっと最後です。
Telloドローン用のブロックを追加します。
Scratchを起動します。
Shiftキーを押しながら左上のファイル▼をクリックし、「実験的なHTTP拡張を読み込み」をクリックします。

先ほど保存したScratchフォルダ内の「Tello.s2e」を選択して開くボタンをクリックします。

その他カテゴリーに黒い専用ブロックが表示されていれば大丈夫です。

各ブロックの説明は以下の通りです。
いろいろと組み合わせて自動飛行プログラムを作ってみましょう!
ブロック | 操作内容 | 数字 |
take off | 離陸 | |
land | 着陸 | |
fly up with distance | 上昇 | 上昇距離(cm) |
fly down with distance | 下降 | 下降距離(cm) |
fly left with distance | 左へ進む | 進行距離(cm) |
fly right with distance | 右へ進む | 進行距離(cm) |
fly forward with distance | 前へ進む | 進行距離(cm) |
fly back with distance | 後へ進む | 進行距離(cm) |
rotate CW with angle | 時計回りに回転 | 角度 |
rotate CCW with angle | 反時計回りに回転 | 角度 |
flip with duration | フリップ | |
set speed | 速度 |
ドローンへの命令の間には必ず「XX秒待つ」ブロックを入れてください。

ドローンが動いている間に次の命令が行くと、そちらを実行してしまいます。
離陸した途端に着陸するんだけどといった現象が起きてしまいます。
何秒待てばいいかは色々試して最適な時間を設定してください。
あれ?ワークショップではブロックが日本語じゃなかった?と思われるのではないでしょうか。
以下の本で日本語化のやり方やより詳しい内容が書かれています。
非常に参考になりますので参考にしてください。
ドローンとPCを無線LANでつないで飛ばそう
ここまでくればドローンを飛ばすだけです。
ドローンのスイッチを入れます。
少ししてPC右下の無線LANマークをクリックします。
無線LANアクセスポイントのリストの中に「TellXXXX」のようなSIDが出てくるので接続してください。

初回は少し時間がかかりますがパスワードの要求もなく接続できると思います。
接続出来たらScratchの画面に戻ってプログラムを実行してください。
室内でも簡単に飛ばせますよ!

あなたのドローンは飛びましたか!?
部屋の中でも楽しめるサイズなので、ぜひ子どもたちと簡単なコースを作って飛ばしてみたり工夫して遊んでください。
それでは楽しいドローンライフを!笑