LoginSignup
4
5

More than 5 years have passed since last update.

【Tello】トイ・ドローンで遊んでみた♪

Last updated at Posted at 2018-12-09

なんとなく最近いろいろな場面で取り上げられるドローン。。Telloならプログラミング出来そうということで、やってみた。

一応の目標

①とにかく飛行させる
②GamePadで飛ばす
③PCで飛ばす
④Pythonで飛ばす
⑤画像入力する
⑥物体検出搭載
⑦トラッキングする
⑧物体を探して見つける
⑨...

今回やったこと

①とにかく飛行させる
②GamePadで飛ばす
③PCで飛ばす

①とにかく飛行させる

これ説明書があるけど、ウワンには見えないレベル。。。
つまり、ネットで見てねということらしい。
スマホ(アンドロイド)もGooglePlayからTelloで検索して、無事アプリをインストールして、飛びました。
とても安定して、狭い部屋でもコントロール出来ました。

②GamePadで飛ばす

これアンドロイドゆえかすごく苦労しました。
うんともすんとも。。。
ググってもどうも未対応な話が多い。。飛ぶというのは一件しか見当たらず。
しかし、アマゾンの評価サイトに有力な情報「位置情報をオンにするとできるようになる」
これが正解でした。
手順は以下の通り
⓪スマホの位置情報オン、WiFiオン、Bluetoothオン
①Telloのアプリを立ち上げる
②本体電源オンして、Wifiで接続(Telloアプリが接続を表示)
③GamePadオン
④Telloアプリの「設定→Bluetoothの。。。⇒上記GamePadが接続先に表示⇒これをクリック⇒メイン画面に戻るとjoystick画像が消えている」
※ここで肝心なのは事前に位置情報オンとGamePadはTelloから接続するということ

ただし、カメラ画像の送信が遅くて、VRモードが使えませんでした。。残念

③PCで飛ばす

まず、簡単そうなのでScratchで飛ばしました。
ほぼ参考のとおりで動きました。
一か所、Tello.jsは以下のとおり、
※警告出ていますが、。。

scratch0907\scratch>node Tello.js
---------------------------------------
Tello Scratch Ext running at http://127.0.0.1:8001/
---------------------------------------
(node:9300) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
server listening 0.0.0.0:8890

【参考】
【ドローンTelloプログラミング】未経験者が初めてのプログラミングに挑戦【Scratchの使い方】
TELLOダウンロード

ということで、離陸⇒50cm下降⇒着陸できました。
ここで何度も失敗した原因
①WiFiが切れていた
②Tello.jsがエラーした後再実行が必要

TelloFlight.jpg

まとめ

・位置情報オンで、Android+GamePad(GameSir T1d)で飛ばせた
・ScratchでPCから飛ばせた

・カメラ画像がほぼ使えないが、機体固有のバグかもしれない??
・Pythonもちょっと試みたがGetchで先に進まなくなった
・Scratchにはカメラ画像の処理がなさそう

おまけ

ScratchのTello部分も日本語化しました。
※訳が不明なものは適当
TelloJaps.jpg

TelloJaps.js
{   "extensionName": "Tello",
    "extensionPort": 8001,
    "blockSpecs": [
// SDK 版本 >= 1.0.0.0
        [" ", "離陸", "takeoff"],
        [" ", "着陸", "land"],
        [" ", "上昇 %n cm", "up", 50],
        [" ", "下降 %n cm", "down", 50],
        [" ", "左旋回 %n cm", "left", 50],
        [" ", "右旋回 %n cm", "right", 50],
        [" ", "前方 %n cm", "forward", 50],
        [" ", "後方 %n cm", "back", 50],
        [" ", "時計回り %n 度", "cw", 90],
        [" ", "反時計回り %n 度", "ccw", 90],
        [" ", "フリップ %m.flip", "flip", "f"],
        [" ", "速度 %n cm/s", "speed", 50],
        [" ", "ゴー x %n y %n z %n 速度 %n", "go", 50, 50, 0, 100],
// SDK 版本 >= 1.3.0.0
        [" ", "曲線飛行 x1 %n y1 %n z1 %n 和 x2 %n y2 %n z2 %n 速度 %n %", "curve", 20, 20, 0, 40, 60, 0, 60],
        [" ", "緊急", "emergency"],
        ["r", "相対高度(cm)", "h"],
        ["r", "気圧計高度(cm)", "baro"],
        ["r", "TOF高度(cm)", "tof"],
        ["r", "最低温度(°C)", "templ"],
        ["r", "最高温度(°C)", "temph"],
        ["r", "アッチチュード角(°)", "pitch"],
        ["r", "横アッチチュード角(°)", "roll"],
        ["r", "偏揺れ角(°)", "yaw"],
        ["r", "X加速度(0.001g)", "agx"],
        ["r", "Y加速度(0.001g)", "agy"],
        ["r", "Z加速度(0.001g)", "agz"],
        ["r", "X速度(cm/s)", "vgx"],
        ["r", "Y速度(cm/s)", "vgy"],
        ["r", "Z速度(cm/s)", "vgz"],
        ["r", "電池容量(%)", "bat"],
    ],
    "menus": {
        "flip": ["f", "b", "l", "r"]
    },
}
4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5