Macからmicro:bitへBluetoothで通信する

プログラミング

ふと、「Bluetoothを活用した電子工作をしてみたい」と思い立ち、知識ゼロから色々調べ始めています。

Maker Faire Tokyo 2017で購入したmicro:bitが手元にあったので、Macからmicro:bitにBluetoothで文字列を送信してみました。

■使ったもの

  • micro:bit
  • MacBook Pro(要Bluetooth)
  • LightBlue(Macアプリ AppStoreからダウンロードできます。無料)

■micro:bit上のプログラム

micro:bitに下記プログラムを書き込みます。

let msg = ""
bluetooth.onBluetoothConnected(() => {
    basic.showString("C")
    while (true) {
        msg = bluetooth.uartReadUntil(":")
        basic.showString(msg)
    }
})
bluetooth.onBluetoothDisconnected(() => {
    basic.showString("D")
})
basic.showIcon(IconNames.Heart)

ブロックだと下記のような感じになります。

■Macとmicro:bitをペアリング

micro:bitをペアリングモードで起動し、MacでLightBlueを起動します。
LightBlueにmicro:bitが表示されるので選択します。続けて、Servicesは「〜AF-」というものを、Characteristicは一番下に出てくるものを選択すると、micro:bit側にペアリング完了のチェックマークが出ます。(どれを選択すればよいのかはイマイチ分かっていません…)
その後、micro:bitが自動的に再起動します。
再起動後、micro:bitのLEDには上記でプログラムした通りのハートマークが表示された状態になります。

■Macからmicro:bitへ文字列を送信

micro:bitの再起動が完了してLEDにハートマークが表示されている状態で、LightBlueからmicro:bitを選択して接続します。micro:bitのLEDには"C"と表示されます。
LightBlueから、Servicesは一つだけ数字の異なる長い文字列のもの、Characteristicは一番下に出てくるものを選択します。Detailsの表示エリアに「Wrote ASCII」という欄が表示されます。

この「Wrote ASCII」欄に、micro:bitに表示したい文字列+「:」を入力してEnterキーを押下します。すると、micro:bitのLEDに入力した文字列が表示されます。



■参考にしたページ

  • UARTを使ってmicro:bitと文字列をやり取りする方法は下記の動画を参考にしました。
    動画ではスマホアプリを使っていますが、スマホアプリ使うのが面倒なので今回はLightBlueを使いました。
  • LightBlueを使ってmicro:bitとペアリングする方法は下記の動画を参考にしました。

コードブロックで簡単に制御できるmicro:bitは非常にとっつきやすいです。
まずはmicro:bitを使って勉強しながらプロトタイプを作ってみようと思います。

スイッチサイエンス micro:bit