僕は発展途上技術者

Scratch からミニドローンをコントロールできる Scratch2Airborne をつくりました

Scratch Advent Calendar 2015 の 12/24 の記事として書きます。日付変わってしまってちょっと遅れてしまいました、ごめんなさい。

題名そのままですが、Scratch からミニドローンの Parrot Airborne シリーズのをコントロールできる Scratch2Airborne をつくりました。検証はしていませんが、たぶん共通のインターフェースである Rolling Spider シリーズも動くんじゃないかと思います。

注意(2015/12/27 追記) ミニドローンといえども、プロペラ部分など大変危険です。ワークショップなどでこどもと操作する場合には、長袖シャツ、保護メガネ、手袋を着用するなど、安全管理に十分ご注意ください。家の観葉植物をかすった際、写真のように、葉っぱがスパっと切られてしまいました。



ちなみに僕が買って動かしてみたのは黄色いボディの Parrot Aiborne Cargo Travis です。この記事を読んで欲しくなった方は以下のリンクから買っていただけるとうれしいです :)



いつものように Scratch のリモートセンサープロトコルの仕組みを利用し、Scratch から送られてきた命令を変換してドローンに渡します。(リモートセンサープロトコルについて詳しく知りたい方はこちら → Scratch(スクラッチ)を外部のプログラムなどとつなぐ「遠隔センサー接続」を解説する(その5))

今回、ドローンに命令を送るライブラリとして、node.js のnode-rolling-spiderを使うことにしたので、Scratch2Airborne は node.js のプログラムです。

ソースコードはこちら↓

» Scratch2Airborne | GitHub

node.js が利用できる環境を準備し、上記ソースをダウンロードしたあと、必要なライブラリを以下のようにインストールします。

$ npm i noble
$ npm i rolling-spider


ミニドローンが起動されているのを確認した上で、

$ node find.js

これは、Bluetooth 接続でミニドローンにアクセスできる ID である uuid を確認するためのプログラムです。

この ID をひかえた上で、別の scratch2airborne.js の以下の該当部分にコピペします。



スクラッチの遠隔センサ接続を有効にした上で(やり方はこちら)、scratch2airborne を以下のように実行します。

$ node scratch2airborne.js

SESSION START というメッセージが表示されたら、接続成功です。

スクラッチの「送る」ブロックを使って、命令をドローンに送ります。

スクラッチのプロジェクトはこんな感じです ↓



送ることができる命令は以下の通りです。


  • takeoff: 離陸

  • land: 着陸

  • forward: 前進

  • backward: 後退

  • hover: ホバリング(その場で静止する)

  • right: 右に約90度旋回

  • left: 左に約90度旋回

  • flip: 前方宙返り

  • backflip: 後方宙返り

  • up: 上昇

  • down: 下降



こんな感じで飛びますという動画を撮りました。こちらです ↓





今後は、スクラッチを経由して、Leap Motion や Kinect でドローンを動かしてみることに挑戦していきたいと思います。



プロフィール

株式会社まちクエスト代表、つくる社LLC代表。

Raspberry Piではじめる どきどきプログラミングを書きました。

Amazonから図書館検索 Libron、iPhoneアプリ ひらがなゲーム かなぶん を作っています。

Twitter @jishiha

最近のエントリー

アーカイブ