ここでは「muエディタ」を使って、MicroPythonでプログラムをつくります。
ふたつのマイクロビットと、MicroPythonの無線通信コマンドを使って、一方のマイクロビットのセンサで取得したデータを、もう一方のマイクロビットに送信します。
機能
一方のマイクロビットは、電池で駆動させます。
1秒間隔で、温度と加速度センサの値を取得し、その値を「(温度,X値,Y値,Z値)」の書式で送信します。
もう一方のマイクロビットは、パソコンとつないだ状態で使用します。
送られてきたデータを受信し、そのままprintします。
パソコンでは「muエディタ」を起動しておきます。「プロッター」という機能で、折れ線グラフ表示ができるので、これを使って、受信情報を表示します。
つまり、電池で駆動しているマイクロビットで観測したデータを、(もうひとつのマイクロビットを介して)無線接続されたパソコンで、グラフ表示させます。
材料
- マイクロビット(x2)
- 電池ボックス(単三x2本用)
- 電池(単三×2)
- USBケーブル
- 皿ネジ(M3x15mm)(x2)
- ナット(M3)(x4)
- プラスチック座金(内径3mm)(x2)
プログラム
送信用マイクロビットのプログラムは、以下のとおりです。今回は、温度と加速度センサの値を観測していますが、外付けのセンサなどを使うことで、さまざまなデータが観測できます。無線通信は消費電力が大きいので、データ送信後はすぐに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)
受信用マイクロビットのプログラムは、以下のとおりです。受け取ったデータを、そのままprintしているだけです。こちらはパソコンにつながっており、消費電力を気にする必要はないので、無線は常時ONにしています。
import radio
from microbit import *
radio.on()
while True:
mess = radio.receive()
if mess:
print(mess)
つなぎかた
送信用マイクロビットは電池ボックスと、受信用マイクロビットは、USBケーブルでバソコンと、それぞれつなぐだけです。
結果
「muエディタ」の「プロッター」ボタンをクリックすると、ウインドウの下半分に4本の折れ線グラフが表示されます。送信用マイクロビットを色々な向きに傾けると、3本のグラフが変動します。1本は温度なので(ほとんど)変化しません。
この仕組みを使えば、電源のない、はなれた場所にマイクロビットを設置し、そこからセンサの観測データを無線で送信し、パソコンで確認することができるので、色々と応用がききそうです。
なお、通信距離は、せいぜい数m程度のようです。実際にどのくらい届くかは、後日調査してみようと思います。
なお、私がマイクロビットの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。
初心者向けから、比較的高度なものまで、さまざまな情報が記載されているだけでなく、子供向けの作例も多数掲載されていますので、「プログラミング教育」のための題材さがしなどにもおすすめです。