iroiro

電子工作など色々試したことの備忘録

ScratchでTelloを操縦してみる

はじめに

 ホビー用のドローンを数年前に購入しましたが、操縦が難しくてすぐに断念しました。Telloは安定飛行できそうなので購入して、まずはScratchの操縦を試してみました。

使用するもの

アプリのインストール

AndroidスマホのPlayストアで"tello"を検索してアプリインストールしました。

アプリで操縦

Telloのアプリで離陸まではできましたが、その後は無反応でした。。

仕方なく、スマホ機種を変更しても、状況は変わらず。

Telloのサポートに問合せした所、推奨機種ではないということでした。

(下記サイト参照)

https://www.ryzerobotics.com/jp/tello/downloads

推奨機種を見ると、非常に少ない。。Telloについて書いている本やサイトを色々見ましたが、推奨機種でなくてダメでしたというのがないので不思議。。

ただ、その後、いつの間にかそれなりに操縦できるようになりました。不思議なのでアプリを再インストールすると、まだダメ。。

それでも、またいつの間にかそれなりに操縦できます。色々検証しても理由は不明。。

 Scratchとの連携情報

下記サイトの「Scratch README」を開き、これを元に作業開始。

https://www.ryzerobotics.com/jp/tello/downloads

 Scratchのインストール

Scratchのオフライン用をダウンロードインストールする。

既にインストール済みだったので省略。

Node.jsのインストール

下記サイトからNode.jsをインストールする。(今回は ver 10.13.0 LTS)

https://nodejs.org/ja/

 

連携ファイルのインストール

下記サイトから連携ファイルをダウンロード・解凍。

フォルダ名を「ScratchTello」に変更してドキュメントフォルダへ移動。
https://dl-cdn.ryzerobotics.com/downloads/tello/20180910/scratch0907.7z

しかし、上記最新だと「not ok」エラー出てだめで下記の古いやつでOKだった。。
https://dl-cdn.ryzerobotics.com/downloads/tello/20180222/Scratch.zip

 起動用のショートカットを新規作成する。
 項目の場所は「C:\Program Files\nodejs\node.exe」

ショートカットのプロパティを次のように編集する。
 リンク先: "C:\Program Files\nodejs\node.exe" Tello.js
 作業フォルダ: C:\Users\tsakai\Documents\ScratchTello

連携設定

ショートカットをダブルクリックしてnodeを起動。

パソコンからTelloにwifi接続する。

クラッチを起動する。shift押しながらメニューのファイルを開く。

サブメニューの「Import experimental HTTP extension」を選択する。

ダウンロードしていたTello.s2eを選択する。

スクリプトタブ内の「その他」にTelloのブロックが表示されている。

残念ながらカメラ映像のAPIがありません。次のステップで画像などもしたかったのですが無理でした。ただ、ネットで調べると、解析してライブラリを公開されているサイトもあるようです。

f:id:tsakaidesu:20181209163606j:plain

tello scratch API

実行

クラッチを実行してみたが、コマンドで「not ok」と表示されてTelloは無反応。

前述の通り、少し古いバージョンの連携ファイルだと動作できた。

各指示の間に5秒程度の待機が必ず必要だった。

 最後に

なぜか徐々に上に行ってしまい、最後には部屋の天井に張り付いてしまう。。

仕方がないので、指令毎に30cm降下する処理を追加して対応した。