前回の記事でインストールした「muエディタ」を使って、MicroPythonで何か作ってみようと思います。
ふたつのマイクロビットと、MicroPythonの無線通信機能を使って、一方のマイクロビット のセンサで取得したデータを、もう一方のマイクロビット に送信してみます。
機能
一方のmicro:bitは、電池で駆動させます。
1秒間隔で、温度と加速度センサの値を取得し、その値を「(温度,X値,Y値,Z値)」の書式で送信します。
もう一方のmicro:bitは、パソコンとつないだ状態で使用します。
送られてきたデータを受信し、そのままprintします。
パソコンでは「muエディタ」を起動しておきます。「プロッター」という機能で、折れ線グラフ表示ができるようなので、これを使って、受信情報を表示します。
つまり、電池で駆動しているmicro:bitで観測したデータを、(もうひとつのmicro:bitを介して)無線接続されたパソコンで、グラフ表示させます。
材料
- micro:bit(2)
- 電池ボックス(単三x2本用)
- 電池(単三×2)
- USBケーブル
- 皿ネジ(M3x15mm)(2)
- ナット(M3)(4)
- プラスチック座金(内径3mm)(2)
プログラム
送信用micro:bitのプログラムは、以下のとおりです。今回は、温度と加速度センサの値を観測していますが、外付けのセンサなどを使うことで、さまざまなデータが観測できます。無線通信は消費電力が大きいので、データ送信後はすぐにOFFにしています。sleepの時間を増やして、データ観測の間隔を粗くすることで、消費電力を削減できます。
import radio from microbit import * while True: t = str(temperature()) x = str(accelerometer.get_x()) y = str(accelerometer.get_y()) z = str(accelerometer.get_z()) mess = '(' + t + ',' + x + ',' + y + ',' + z + ')' radio.on() radio.send(mess) radio.off() sleep(1000)
受信用micro:bitのプログラムは、以下のとおりです。受け取ったデータを、そのままprintしているだけです。こちらはパソコンにつながっており、消費電力を気にする必要はないので、無線は常時ONにしています。
import radio from microbit import * radio.on() while True: mess = radio.receive() if mess: print(mess)
つなぎかた
送信用micro:bitは電池ボックスと、受信用micro:bitは、USBケーブルでバソコンと、それぞれつなぐだけです。
結果
「muエディタ」の「プロッター」ボタンをクリックすると、ウインドウの下半分に4本の折れ線グラフが表示されます。送信用micro:bitを色々な向きに傾けると、3本のグラフが変動します。1本は温度なので(ほとんど)変化しません。
この仕組みを使えば、電源のない、はなれた場所にmicro:bitを設置し、そこからセンサの観測データを無線で送信し、パソコンで確認することができるので、色々と応用がききそうです。
ただ、通信距離は、せいぜい数m程度のようです。