ブロックチェーン・AI・システム開発の株式会社INDETAIL

chibi:bit と Raspberry Pi を BLE で繋げて、LEDに文字を流してみた【動画あり】

2017.06.19
tacck

関東地方は梅雨入りしたのだそうですが、梅雨前線はまだだいぶ南の海上にあるそうで、さほど梅雨らしくないですね。
これからの蒸し暑さが心配な、tacckです。

ここ最近、個人的に遊んでいる chibi:bit というデバイスがあります。
詳しくは、開発元であるスイッチサイエンスさんのプレスリリースにありますが、イギリスのBBCが開発・提供している教育向けマイコンボード "Micro:bit" の国内向け互換機として開発・販売されているものです。

Web IDEでプログラムを書き、本体にイメージファイルを転送し、すぐに動作させることができます。
また、販売ページにも記載されていますが、加速度センサーや磁力センサーなども一緒に搭載されており、センシングデバイスとしても使うことができそうです。

今回は、 chibi:bitRaspberry Pi を BLE (Bluetooth Low Energy) で接続し、双方向でデータのやりとりができることを試してみたいと思います。

用意するもの

  • chibi:bit
  • Raspberry Pi (BLEが使える状態のもの)

Raspberry Pi については、 Raspberry Pi 3 Model B など、BLEがすぐに使える状態のものを前提とします。
また、 Node.js も使える状態である前提とします。(今回は7.2.0を利用しています。)

実際に接続してみる

では、実際に接続していきましょう。
今回は、 Raspberry Pi から chibi:bit のLEDマトリクスに文字を送信して表示させること、 chibi:bit のボタン操作イベントを Raspberry Pi に送信すること、をやってみます。

chibi:bit のプログラム

chibi:bit 側は、あまり難しいことは必要ありません。
Web IDEではブロックベースでプログラムを作成することができますが、下記のようにJavaScriptでも表示することができます。

Web IDEで開く

ブロックで作る場合は、下記のような形です。
bluetooth button servicebluetooth led service を使っています。
また、接続時と接続解除時に一文字ずつ表示させていますが、これは確認用なので無くても動作には影響ありません。

画面右上の「歯車」ボタンをクリックして、「プロジェクトの設定」を選択します。

ここでは、BLEとのペアリング方法を選べます。
今回は難しいこと抜きに作業をするために、「Unsecure: Anyone can connect via Bluetooth.」を選択します。

「保存」ボタンを押した後は、通常の chibi:bit の操作通りに「ダウンロード」でイメージファイルをダウンロードして、 chibi:bit に転送します。

Raspberry Pi のプログラム

こちらは、 Node.js のモジュール node-bbc-microbit を使います。

下記手順で、 Raspberry Pi にモジュールをインストールします。

モジュール内の examples に今回利用するプログラムがあるので、すぐに試すことができます。

chibi:bit に文字を表示させる

Raspberry Pi から chibi:bit のLEDマトリクスに文字を送信して表示させてみましょう。

プログムは、下記となります。

実行すると、下記のようになります。

"Hello there" という文字を送ったログが出ています。
これだけだとイメージが掴みづらいので、実行結果の動画をご覧ください。

Raspberry Pi から送った文字が chibi:bit で表示されたことを確認できますね!

chibi:bit からボタンイベントを送信する

次に、 chibi:bit のボタン操作イベントを Raspberry Pi に送信してみましょう。

プログムは、下記となります。

実行すると、下記のようになります。

こちらも、文字だけでは伝わらないですね。
ボタンのオン・オフが、"Pressed" "Not Pressed"として表示されています。
こちらも、動画で観てみましょう。

きちんと chibi:bit のボタン操作イベントが Raspberry Pi に送信されました!

まとめ

いかがでしたでしょうか。
少し前は、BLEを使った連携はなかなかうまくできなかった記憶がありましたが、現在はすごく簡単に連携できるようになっています。

Raspberry Pi のデータを chibi:bit で表示、 chibi:bit のイベントを Raspberry Pi 経由でサーバに蓄積、といったことも手軽にできます。
みなさんも、ぜひ chibi:bit で遊んでみてください!

tacck Takuya KIHARA

エンジニア (モバイルアプリ、フロントエンド、バックエンド、インフラ) 得意なことは、領域をまたいで考え、開発すること。 ブログでは、主にAnsible、Docker、Raspberry Piのことを書いています。 好きなフィギュアスケートの技は、スプレッド・イーグルです。

「いいね」ボタンを押すと、最新情報をすぐに確認できます。