「マイクロビット」は、
アマゾンで2150円くらいで買えるお手軽マイコンボードです。
ボタンや色々なセンサーが付いていて、5x5のLEDパネルがあります。
ブラウザからブロックベースのプログラムを作って、
簡単にマイクロビットに転送することができます。
そして、2つあると無線で情報をやり取りすることもできます。
今回、マイクロビットは、
PCとつながった状態でパソコンのプログラムとやり取りができることも知り、
「離れた場所に置いたマイクロビットのセンサー情報をパソコンに取り込んでいく」
ということを試しました。
環境は
Windows 10, Python 3.7.3, micro:bit 2台
です。
マイクロビット送信側のプログラムです。
電源を入れると1秒間に1回、明るさのデータを送信します。

マイクロビット受信側のプログラムです。
信号を受け取ると中心のLEDが点灯します。
受け取った文字情報はシリアルポートで送信します。

Windows PC とマイクロビットの接続には、
micro:bit シリアル・データ通信設定
を参考にしました。
この記事に従って、シリアルポートドライバーをインストールします。
そして、マイクロビットをPCにUSBでつなげた状態で、デバイスマネージャーを立ち上げ、
COMポート番号を確認します。
最後に、Windows PC のPython プログラムです。
# coding:utf-8
import serial
import matplotlib.pyplot as plt
COM_PORT='COM6'
ser = serial.Serial(COM_PORT, 115200, timeout=None)
print(ser.name)
fig = plt.figure(figsize=(10, 6))
vals=[]
for i in range(40):
str = ser.readline()
val = [int(s) for s in str.split() if s.isdigit()]
if len(val) > 0:
print(val[0])
vals.append(val[0])
plt.plot(vals, 'o-g', linewidth=5)
plt.ylim(0, 255)
plt.xlim(0, max(40, len(vals)))
plt.grid(True)
plt.pause(0.1)
ser.close()
順番はあまり関係ないようですが、動画では、受信機をPCにつなげておいて、Python プログラムを起動し、送信機のスイッチをONにしています。