micro:bitを2つで無線通信するのを試してみた。
BluetoothやBLEを使いたいのだが、いろいろ問題があり、代わりに簡単なNordic Semiconductorのプロトコルを使った無線方式の機能を使ってみた。
micro:bitの公式のチュートリアルの無線通信の紹介ページには、ホタルというmicroPythonのサンプルコードが載っている。
→ 無線通信 — BBC microbit MicroPython 0.5.0 ドキュメント
これをベースにして、AボタンやBボタンを押したらた通信先のLEDにAかBが表示されるというmicroPythonプログラムに改造してみた。
(micro:bitのmicroPythonについては、こちらを参照。)
import radio from microbit import display, Image, button_a, button_b, sleep display.show(Image.HAPPY) radio.on() while True: if button_a.was_pressed(): radio.send('A-button') if button_b.was_pressed(): radio.send('B-button') incoming = radio.receive() if incoming == 'A-button': display.show('A') sleep(500) display.show(' ') if incoming == 'B-button': display.show('B') sleep(500) display.show(' ')
micro:bit実機2台にこのプログラムを書き込んで動作させてみる。
最初は、2台のmicro:bitの両方にHAPPYマークが表示されている。
写真左側のmicro:bitのAボタンを押すと、右側のmicro:bitのLEDに「A」と表示される。
写真左側のmicro:bitのBボタンを押すと、右側のmicro:bitのLEDに「B」と表示される。
写真右側のmicro:bitのAボタンを押すと、左側のmicro:bitのLEDに「A」と表示される。
写真右側のmicro:bitのBボタンを押すと、左側のmicro:bitのLEDに「B」と表示される。
micro:bitに何かスイッチとかセンサーをつなげておいて、家のドアだとか洗濯機のフタだとかの開閉の情報を無線で別のmicro:bitに飛ばしてそれをPCやIoTなマイコンにさらにつないで家の中をIoT化とかできそうだな。と考えている。
(ただ、micro:bitはちょっと高いのでESPマイコンを使った方が安く済むのかも)