マイクロビットを使ってみる 〜ふたつのマイクロビットで無線通信する

スポンサーリンク
電子工作の作例

ここでは「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程度のようです。実際にどのくらい届くかは、後日調査してみようと思います。

 

なお、私がマイクロビットの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。


初心者向けから、比較的高度なものまで、さまざまな情報が記載されているだけでなく、子供向けの作例も多数掲載されていますので、「プログラミング教育」のための題材さがしなどにもおすすめです。