2017年2月23日木曜日

Mac で Nodejs を使って Bebop2 を制御してみる

概要

node-bebop を使って Nodejs から Bebop2 を制御してみました

環境

  • Mac OS X 10.11.4
  • Nodejs 5.9.1
  • npm 3.7.3
  • node-bebop 0.6.0

node-bebop のインストール

  • cd /path/to/work
  • npm install node-bebop

Bebop2 の組み立てと接続

ここでは詳細は説明しません
プロペラを付けて、バッテリーを充電したら Bebop2 を起動してください

Bebop2 を起動すると Bebop2 用の Wifi のアクセスポイントが出現します
first_bebop2_connect_bebop.png

Mac とこのアクセスポイントを接続しましょう
デフォルトだとパスワード等も特になく名前もこんな感じで Bebop2-xxxxxxx で表示されます
接続したらスクリプトを実行してみましょう

サンプルのスクリプト

とりあえずテイクオフして 3 秒後にランディングするスクリプトを作成してみます

  • cd /path/to/work
  • vim first_bebop.js
var bebop = require('node-bebop');

var drone = bebop.createClient();

drone.connect(function() {
  drone.takeOff();

  setTimeout(function() {
    drone.land();
  }, 5000);
});
  • node first_bebop.js

これで実行するとテイクオフして 5 秒後にランディングすると思います
もちろん実行するときは Bebop2 と接続した状態で行ってください
Bebop2 と接続していない状態で実行すると以下のようなエラーになると思います

events.js:154
      throw er; // Unhandled 'error' event
      ^

Error: connect ETIMEDOUT 192.168.42.1:44444
    at Object.exports._errnoException (util.js:890:11)
    at exports._exceptionWithHostPort (util.js:913:20)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1061:14)

最後に

Bebop2 を Nodejs で動かす Getting Started 的なことをやってみました
公式 だと iOS や Android 用の SDK がメインなので Nodejs で動かせるとサーバ処理と連携したりできるので応用性が増しそうです

Bebop2 と接続しているときは当たり前ですが、インターネットには接続できません
なので、インターネットに接続しながら Bebop2 も制御したいとなると Mac に Wifi 用の USB ドングルをもう一つ接続する必要があります

0 件のコメント:

コメントを投稿