Cerevo BlueNinjaが届いたのでCylon.jsでBLE疎通を試してみました。 #blueninja

top

こんばんは!エンジニアの吉田です。
本日、Cerevo さんの BlueNinja が届いたので、ちょっとだけ試してみました。

 

BlueNinja とは?

BlueNinja とは、9軸センサ(加速度、角速度、地磁気)と気圧センサが入った小型のハードウェア製品です。
BLE にも対応しているので、Bluetooth 経由でこれらの値を取得することが可能です。

OSC 2015 Tokyo/Spring のブースで展示したサイコロで使ってた WICED Sense みたいな感じのデバイスですね。

IoTなサイコロ@OSC2015 Tokyo/Spring from Shinichiro Yoshida

 

BlueNinja については、メディアにもいろいろ掲載されているので詳細は割愛します。

 

開封の儀式

7/29にオンラインストアで購入したのですが、その時点では8月上旬から発送予定となっていました。
なかなか届かないなぁと思っていたら、Bluetooth認証試験が遅延していたとのことで、8月下旬の発送となったようです。

 

 

ちなみに、私の場合は8/19に発送の連絡があって、8/21に無事に届きました。

届いた郵送物はこんな感じです。

おもて。

IMG_3078

うら。

IMG_3079

開封するとビニールに包まれた状態です。

IMG_3082

ビニールから取り出すと、各パーツがさらにビニールに包まれています。

IMG_3083

各パーツをビニールから取り出しました。

IMG_3085

ブレイクアウトボードと、

IMG_3096

リチウムポリマーバッテリーと、

IMG_3097

BlueNinja 本体です。

IMG_3098

Intel Edison と並べるとこのくらいの大きさです。小さい!

IMG_3091

 

開発環境を構築してみる

BlueNinja でプログラムを開発するにあたり、BlueNinja のサイトに「開発スターターガイド」というページがあったので、まずはこれを参考にしてみました。

開発環境の構築手順としては、

1. ブレイクアウトボードのデバイスドライバの入手とインストール

2.MinGW(Msys)のインストール

3.Git for Windowsのインストール

4.BlueNinja BSP(Board Support Package)の入手

5.CMSISの入手

6.TZ1000 BSP(Board Support Package)の入手

7.開発環境セットアップスクリプトの実行

と書かれていたのですが、TZ1000 BSPの入手というところで、東芝さんに個別のサポートメールを送る必要があって、環境構築がすぐにできませんでした。
東芝さんのサポートにメールを送って、現在それの返信待ちの状態です。

環境構築ができれば、Lチカのようなものを試してみたかったのですが、それはまた今度にしてみます。

 

(8/25追記)

翌営業日に東芝さんから返信があって、ライセンス承諾用のPDFがメール添付で送られてきました。

そのPDFを印刷して、手書きで住所、氏名、サイン等を記入したものをスキャンしてPDF化し、それをメールに添付して返信しました。

さらに、その翌営業日にアクセス権を付与したという連絡をメールで頂いて、無事にBSPをダウンロードできるようになりました。

なので、私の場合ですが、申請から2営業日でダウンロードできるようになったという感じですね。

すべてメールだけのやりとりで完結したので、郵送などの手間は必要ありません。

BSP

(追記おわり)

 

サンプルのプログラムを動かしてみる

BlueNinja のサイトに、実例紹介として、ミニ四駆に載せたBlueNinjaで9軸+気圧センサを取得するサンプルコードが載っています。

こちらのサイトに BlueNinja のソースコードと実行ファイル、Android のソースコードと実行ファイルが公開されているので、
今回はBlueNinjaの実行ファイルをダウンロードして、手元のBlueNinjaで動かしてみることにしてみました。

 

さっそく始めてみましょう。

IMG_3099

BlueNinja本体とブレイクアウトボードを繋ぎます。

IMG_3101

リチウムポリマーバッテリーを繋ぎます。

IMG_3103

USBでPCと接続すると、ブレイクアウトボードの “赤LED” が点灯します。

IMG_3104

 

PCからは普通のUSBメモリのように外部ストレージとして認識されるので、「ミニ四駆テレメトリーシステム」のサイトからダウンロードした実行ファイル(blueninja_ble_example.bin)をコピーします。

コピー中は、ブレイクアウトボードの “赤LED” の隣にある “緑LED” がチカチカ高速に点滅します。LANにポートがデータ通信してる時の感じの点滅に似てるかも。

IMG_3107

コピーが完了すると、一旦外部ストレージの認識がなくなり、少し時間が経って再びストレージとして認識されます。
これで、プログラムがマイコンに書き込まれました。

 

続いて、ブレイクアウトボードの電源スイッチを長押しします(2秒くらい)。
すると、BlueNinja本体の “赤LED” が点滅を始めます(だいたい0.5秒おきに点滅してる感じ)。

IMG_3108

ちなみにブレイクアウトボードには「ペアリング用スイッチ」「TZリセットスイッチ」「電源スイッチ」と3つのスイッチがついているようです。

IMG_3100

BlueNinja本体の “赤LED” が点滅している状態で、「ペアリング用スイッチ」を押します。
すると、BlueNinja本体の緑LEDが点灯します。

IMG_3109

これで、BLEのペアリングが始まりました。

 

ちなみに余談ですが、最初はリチウムポリマーバッテリーを繋いでいない状態で実行ファイルをコピーしようとしていたところ、全然うまくいかずBlueNinja難民になっていました。。

コピーしてもブレイクアウトボードの緑LEDが一瞬だけ点いてすぐ消えてコピーが上手くできず。。

Twitterで @gleentea さんにアドバイスもらってマジで助けられました。本当にありがとうございます!

キャプチャ

個人的な感覚ですが、バッテリー繋いだ状態でPCとUSBで繋いで、少し充電されてからの方が上手くコピーされやすい感じがしました。

 

(8/25追記)

いつの間にか、 BlueNinja 開発スターターガイド に、「バッテリーを接続せず、ブレイクアウトボードからのUSBバスパワーで動かす場合はブレイクアウトボードのJ1をショートする必要があります。」という情報が追記されていました。

なので、バッテリー繋がない場合はJ1をショートさせないとダメだったみたいですね。

(追記終わり)

 

BLEの疎通をしてみる

BLEの疎通確認は、 Yahoo! Open Hack Day Japan 3 の時にも使った Cylon.js で試してみます。

blescanでBLEのUUIDを検索してみます。

スクリーンショット 2015-08-22 6.04.42

続いて、bleinfoでデバイス情報を取得してみます。

スクリーンショット 2015-08-22 6.05.08

情報がとれたので、BLEの疎通ができているみたいですね!

 

BlueNinjaでもWICED Senseのように加速度と角速度と地磁気が取得できそうなので、そのうちMadgwick filterで姿勢推定を試してみたいと思います。

 

でわでわ!