この前購入したドローンをキーボードで操作できるようにしてみました。
Parrot Airborne Cargo Travis を使用します。
ボディーにLEGOを取り付けられるタイプです。MinecraftのLEGOで作った木を付けてみました。
コントローラは付属されておらず、iOS / Androidアプリが提供されていてアプリから操作できます。
手のひらサイズなので室内でも遊べます。
bluetoothを使えるPCが必要です。今回はMac Book Proを使用しました。
node.js(今回はv5.0.0)をインストールして、以下のリポジトリをcloneします。
makky3939/airborne-cargo-drone-controller
cloneしたらリポジトリに移動し、npm i
で必要なパッケージをインストールします。
npm run find
を実行してしばらくすると、scan出来たデバイスの名前とUUID、rssiが表示されます。ドローンのUUIDを使用するのでコピーしておいて下さい。
先ほど取得したUUIDをリポジトリ内の controller.js#L12の'uuid'
の部分にペーストします。
実行してしばらくすると、
のようなログが表示されるので、それ以降は操作が可能です。
現状では以下のキーが使えるようになっています。
キー | 動作 |
---|---|
E | 離陸 |
Q | 着陸 |
W | 上昇 |
S | 降下 |
A | 時計回り |
D | 反時計回り |
Up | 前進 |
Down | 後退 |
Left | 左に移動 |
Right | 右に移動 |
遂にJavaScriptで空を飛ぶ物体を制御出来るようになりました。
素晴らしい時代になりましたね。
ただし、テスト中に飛行した状態でドローンが制御不能になってしまい、一時的に兵器と化しました。機種にもよりますが衝撃を加えると緊急停止するので、機体の下側をポンと叩くと回収できます。
今回はキーボードで操作できるようにしましたが、ゲームパッドを使ったり、iPhone等の加速度センサーを使うとスムーズな移動が出来るような気がします。
今後は、
を試してみるつもりです。
CIが走りだしたら離陸して、成功したら着陸し、失敗したら緊急着陸or壁に突撃とかすると面白いかなと思ってます。指定したサーバが落ちたら離陸+ひたすら回転とか?
あと、最近は暖房とサーキュレーターが稼働しっぱなしなのですが、 温度センサーと連動させてドローンで空気循環をするのも良いですね。Beaconを設置して、2点間の移動することが出来れば可能な気がします。