memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

OfficialなSphero用Javascript SDKがあるから気をつけてね

Spheroをプログラムしようと開発者ページにアクセスすると以下のページが表示されます。みると公式にはiosandroidとunityとwin8しかありません。他は非公式になります。

f:id:ke_takahashi:20150824160652p:plain

で、お気楽にJSでできないかと非公式のnodeのページに飛んでサンプルをいじろうとインストールを試みるとエラー。nodeのバージョンが合わないらしい。開発されたのはこの時点で2年前。それはそうだ。。。古い。

で、諦めてiosで作ったのですが、本日、あれこれやっていると以下のページを見つけました。

SPHERO SDK - JAVASCRIPT API

JSの公式SDKがないのに公式ドキュメントのページにJSの記述?なんでやろ?COMMUNITY APIと書かれていますので何となく非公式っぽくも読み取れるのですが。

ダメ元でgithubを探してみるとありました。。。

The official Orbotix JavaScript SDK

しかも、プロジェクトタイトルには「The official Orbotix JavaScript SDK module to programatically control Sphero robots」と書かれています。開発者ページには公式にはJSに対応していないように見えるのですが。。。意味不明です。

インストールは簡単です。(※くれぐれもspheroであってspheronではない)node v0.12.7にすんなりインストールできました。

npm install sphero

サンプルは上記のgithubのreadme.mdに書かれています。Spheroを起こしてBluetooth接続してすぐ動かせました。チョー簡単です。

以下、掲載されたサンプルをちょっといじって2台のSpheroを接続できるか確かめたものです。PCがBluetooth接続で認識できる限り台数を増やすことができるでしょうね。。。試していませんが。

var setOrb = function(o, col) {
  o.connect(function() {

    console.log("::START CALIBRATION::");
    o.startCalibration();
    setTimeout(function() {
      console.log("::FINISH CALIBRATION::");
      o.finishCalibration();
    }, 10000);

    o.color(col);
    o.detectCollisions();

    o.on("collision", function(data) {
      o.color("red");
      setTimeout(function() {
        o.color("green");
      }, 1000);
    });
  });
};

var sphero = require("sphero")
var orb1 = sphero("/dev/tty.Sphero-GRO-AMP-SPP");
var orb2 = sphero("/dev/tty.Sphero-POP-AMP-SPP");
setOrb(orb1, "green");
setOrb(orb2, "blue");