Sphero miniをRaspberry pi ZERO Wで操作する ~導入編~

はじめに

Sphero miniをRaspberry pi ZERO W(3でも同じだと思います)で動作させる方法について簡単にまとめておきます。

Spheroを制御するライブラリは公式、公式以外でも探せばいろいろとでてきますが、製品ごとに制御が若干異なるようで、すべてが新し目の製品であるminiに対応しているようではなさそうです。
※ちゃんと調べてないので憶測レベル

今回は、以下のGitリポジトリのもので動作することが確認できました。

https://github.com/igbopie/spherov2.js

準備

OSは、RASPBIAN STRETCHです。念のため、apt-get upgradeで最新化しておきました。

Node.jsのバージョンは8.10を使用しています。
デフォルトは割と古め(v4.8.xあたり)だと思うので、以下の記事等を参考に更新しておくのがいいかと思います。

あと、gitもインストールしておきます。

準備 その2

次に、パッケージマネージャとしてyarnを使うので、インストールしておく必要があります。

その際ですが、そのままsudo apt-get install yarnとかすると、cmdtestがインストールされちゃってお目当てのyarnがインストールされないので、yarnの公式サイトにあるinstall方法に従ってリポジトリを設定してからインストールします。

また、この後yarn installで依存パッケージを取得・設定(コンパイル)することになるのですが、このままだとエラーになります。
そのエラーを回避する為に必要な以下のパッケージを先にインストールしておきます。

  • libudev-dev
  • libusb-1.0-0-dev

インストールは普通にapt-getでできます。

$ sudo apt-get install libudev-dev libusb-1.0-0-dev

リポジトリの取得とインストール

ここまでくれば、Gitリポジトリを取得してyarn installすれば完了です。

git clone https://github.com/igbopie/spherov2.js
cd sphero2.js
yarn install

Gitリポジトリにはいくつかのサンプルがあるので、

cd sphero2.js
yarn patrol-sm

という感じで実行すると、Sphero miniが充電されていれば、そのままつながって動き始めます。

以上となります。

補足

今回実際にあったのですが、Raspberry pi ZERO WのBluetoothがハード的に故障していたようで、Bluetoothデバイス(hci0)としてはアクティブ(up)になるのですが、BLEのビーコンを拾わないという現象に出会いました。Raspberry pi ZERO Wを複数もっていて、SDを入れ替えることで動作したため、そのことがわかったのですが、その解析で時間を奪われてしまいました。

正しく動作している場合は、hcitoolでBLEのビーコンをスキャンすれば、SM-C741のアドバタイズを拾うので、それで確認できますので、ご参考まで。

$ sudo hcitool lescan
LE Scan ...

・・・
XX:XX:XX:XX:XX:XX SM-C741
・・・
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.