micro:bitでBLEを使ってみよう

micro:bitはわずか2200円程度で購入できる安価なマイコンボードであるにも関わらずBLEを内蔵しており、micor:bit間やスマホやPCとの間で簡単に通信をすることができる。

BLEの基本

BLE(Bluetooth Low Energy)は「ローエナジー」というその名の示す通り、通信速度よりも電力消費を抑えることを重視した規格で、いわゆるBluetooth(最近は区別するためBluetoothクラシックと呼ばれる)とは別物と考えたほうがよい。

BLEはGATT(Generic ATTribute)と呼ばれるプロファイルで通信を行う。Bluetoothクラシックは「データを別のデバイスに直接送る」イメージだったのに対して、BLEは「キャラクタリスティック」と呼ばれるメモリ領域を書き換えると、それがペアリング相手に送信されるというイメージになる。

スマホやPCといった「親機」側を「セントラル」。micro:bitやビーコンのような「子機」側を「ペリフェラル」と呼ぶ。通信する手順としては、まずペリフェラル側が「私はここですよ。見つけてください」と周辺に電波を発し(アドバタイズ)、それを「セントラル」が見つけ(スキャン)、接続する(コネクト)ことでペアリングが成立する。

micro:bitどうしの通信

micro:bitの開発環境である「Microsoft MakeCode」には最初から「無線」ブロックが含まれており、これを使うだけで簡単に他のmicro:bitとBLE通信をすることができる。例えばセンサーの値がしきい値を超えたときに他のmicro:bitにアラートを送ったり、micro:bitを他のmicro:bitのリモコンにしたりすることができる。

画像1

「最初だけ」ブロックでいちばん最初のグループ指定ブロックを実行することで、同じ番号のmicro:bitすべてに対して送信をすることができる。この1台のデバイスから多数のデバイスにデータを発信する「ブロードキャスト」も、BLEが得意としている機能だ。

続く3つのブロックが送信ブロックで、数値、変数、文字列を送ることができる。次の3つのブロックが受信側で、数値、変数、文字列を受信したときの処理を記述することができる。最後のブロックを使えば信号強度、時刻、シリアル番号を取得できる。

スマホとのBLE通信

スマホ(iOS/Android)とBLE通信するには、スマホにmicro:bitのアプリをインストールしておく必要がある。

画像2

まずはメニューのいちばん上にある「Choose micro:bit」をタップして、スマホとmicro:bitをペアリングする。micro:bitのAボタンとBボタンを押したまま、リセットボタンを押して離すと、micro:bitのLEDマトリクスに棒グラフのようなパタンが表示されるので、これをスマホ画面で入力することでペアリングが完了する。教室などで多数のmicro:bitがある中でも、簡単に自分のmicro:bitをペアリングできる素晴らしいUIだ。

メニューの2番目の「Create Code」でプログラミングができるが、まずは歯車のアイコンをタップし、「拡張機能の追加」を選ぶ。するといろいろな拡張機能のアイコンが表示されるので「device」を選んで追加する。「bluetoothと同時に使えないので無線機能は削除しますがよいですか?」と聞かれるが、これは元に戻せるので心配せずに「YES」と答えよう。

BLE通信のためのブロック

するとコマンドリストに「bluetooth」「bluetooth接続機器」が追加されていることに気づくだろう。

画像3

micro:bitのセンサーの値をスマホに送りたい場合は、「最初だけ」ブロックに「○○サービス」を入れて起動しておく必要がある。「LEDサービス」は受信側の機能で、文字や数字を受け取った時LEDに表示する機能だ。

BLE接続がいつのまにか切れてしまうことは良くあるので、「bluetooth接続されたとき」「bluetooth接続が切断されたとき」にLEDにマークを表示するようにしておくと、開発中は便利だ。

画像4

「bluetooth接続」ブロックの上の3つはスマホに送信してスマホを遠隔することができるブロックだ。micro:bitをカメラや音楽プレイヤーのリモコンにしたり、micro:bit側に何かあったとき、スマホ側でアラート音を鳴らしたりすることができる。

続く2つのブロックは逆に、スマホ側から何かを受け取ったときにmicro:bitに何かをさせるときに使う。

送受信のテスト

micro:bitとスマホの通信を試すには、アプリのトップメニューにある「Monitor and Control」を選び、右下の「start」をタップしてmicro:bit側のプログラムをスタートさせる。

画像5

上の写真では画面の上にカメラの映像、下にゲームパッドを表示しているが、画面下端の「+」をタップすることで表示するものを追加することができる。逆に消したい時はウィンドウの左上にある「・・・」をタップして、「Delete」を選べばよい。

「ゲームパッド」を使えば、micro:bitで作った車やロボットをラジコンのように遠隔操作することができる。スマホのカメラも遠隔操作できてしまうのは、さすがに「隠し撮りができてしまうのでは?」と心配する人もいるかもしれないが、シャッターを切ると「Selfie Time!」と大きな音が自動的に出るようになっている。細かいところまで良くできたアプリだ。

この記事が気に入ったらサポートをしてみませんか?