10
7

More than 3 years have passed since last update.

魔法の杖(micro:bit)でトイドローンTelloを操作してみた[Magic Wand]

Last updated at Posted at 2019-12-10

初めてのQiita投稿です。
誤りやアドバイスがありましたら、コメントにてビシバシご指摘頂けると助かります。喜びます。

作ったもの

micro:bitを搭載した杖でトイドローンTelloを操作してみました。

杖を振った方向にドローンを移動させることができるため、子供でもドローンを直感的に操作できます。まさに気分は魔法使い🌀

この作品はヒーローズ・リーグ2019のMAリーグと学生リーグにて決勝まで残りました🙌


作品の紹介動画はこちら

ソース

ソースはGitHubで公開しております。
https://github.com/daiking1756/drone_app

環境

  • macOS Mojave 10.14.6
  • node.js 10.13.0

きっかけ

昔から某魔法使いファンタジー映画が好きで、劇中の有名なワンシーンを再現してみたかった。

そんな時に次の2つの記事を見つけました。

更に杖もダイソーグッズで作れるらしいです。
https://matome.naver.jp/odai/2142524916452195501

これらを組み合わせたら杖でドローンを操作できるぜ!
ということで作ってみました。

システム構成

図1.png

  • micro:bitとサーバ(フロントエンド)はWebBluetoothで接続 (参考記事)
  • サーバのフロントエンドとバックエンドはSocket.ioで非同期通信
  • サーバ(バックエンド:node.js)とTelloは同じネットワーク上でUDPパケットを伝送することで通信 (参考記事)

Tello

DJI社が販売しているトイドローン。公式SDKが公開されていてプログラムから手軽に制御することができます。

TelloはWi-Fi親機になっています。
プログラムからTelloを操作するには、

  1. サーバ(今回はPC)をTelloと同じネットワークに接続
  2. 公式SDKに沿ってUDPパケットを送信
  3. 以上

とっても簡単ですね!

micro:bit

ちっちゃいマイコン。
各種センサやBluetooth、5×5のLEDマトリックスなどが付いています。
ブロックプログラミングが可能です。

実際に使用したmicro:bit側のプログラムはこんな感じです。
スクリーンショット 2019-12-10 23.18.43.png

やってることは、ジェスチャーを検出したら対応する文字列をBluetoothで接続したサーバに送信しているだけです。

サーバのプログラムは参考記事とほとんど同じため省略します。

杖でドローンを操作

菜箸にグルーガンで形を作って絵の具で色を塗った魔法の杖にmicro:bitとモバイルバッテリーを装着します。
これにて完成!
IMG_20191024_183114.jpg

起動手順

  • TelloのWi-Fiにサーバ(PC)を接続
  • node server.js
  • ブラウザでlocalhost:3000にアクセス
  • CONNECTボタンより、ブラウザとmicro:bitをWebBluetoothで接続
  • micro:bitのLEDマトリクスに「✔」が表示されれば準備完了

冒頭の動画のように、杖の動きに対応してドローンが動きます

Telloに鏡を貼ってステルス化

ここまで読んで
「あれ、これってただmicro:bitでドローンを操作しているだけで、劇中のシーンとは全然違くね?」と思った方は正しいです。
ここから、いくつかの仕掛けを加えて、劇中のシーンっぽくなるように仕上げていきます。

  • Telloに鏡を貼る
  • この状態で森や砂漠にTelloを持っていく
  • 周囲の景色が鏡に反射してTelloが視認し難くなる(ステルス化)
  • 上に軽いものを乗せると、その物体だけが浮いているように見える
  • 「Wingardium leviosa(浮遊せよ)」状態!!!!!!(参考動画) tello3.jpg

まとめ

TelloはpythonやJSで簡単に制御できた。
ドローン入門にはもってこい。

micro:bitもこんなに簡単に使えるんだなぁと感じた。

子供の頃やってみたかったこと駆動で開発するのは楽しい!

参考

10
7
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
10
7