2019年12月12日木曜日

Raspberry PiからBluetooth経由でmicrobitに接続したGrove光センサーの値を取得する

Groveシールドで様々なデバイスを利用するすることができます。
以下の手順でmicrobitのP0に接続した光センサーの値をBluetooth経由でRaspberry Pi上のPythonプログラムから取得する事ができます。

1. Raspberry Piにbluepyをインストール
bluepyをRaspberry Piにインストールするの手順で、bluepyをインストールします

2. micro:bitでbluetoothサービスを使用するプログラム作成
以下のような感じで入出力端子bluetoothサービスを最初に追加します
また、ペアリングをしなくても利用できるようにします
※6桁キーでペアリングしたい場合は「6桁のキーでmicrobitとRaspberry PiをBluetoothペアリングする」を参照してください。

3. 光センサーの値を取得するプログラム

iopin-light-sensor.py
from bluepy import btle

per = btle.Peripheral("XX:XX:XX:XX:XX:XX", btle.ADDR_TYPE_RANDOM)

# IO Pin Service
svcIOPIN = per.getServiceByUUID("E95D127B-251D-470A-A062-FA1922DFA9A8")

# pin0 as Analog
chADC = svcIOPIN.getCharacteristics("E95D5899-251D-470A-A062-FA1922DFA9A8")[0]
chADC.write(b"\x01\x00\x00\x00")

# pin0 as Input
chPIOC = svcIOPIN.getCharacteristics("E95DB9FE-251D-470A-A062-FA1922DFA9A8")[0]
chPIOC.write(b"\x01\x00\x00\x00")

# Pin Data
chDATA = svcIOPIN.getCharacteristics("E95D8D00-251D-470A-A062-FA1922DFA9A8")[0]
ba = chDATA.read()
print("Pin{}={}".format(str(ba[0]), str(ba[1])))
4. 光センサーの値を取得するプログラムの実行
$ python3 iopin-light-sensor.py
Pin0=60

〇Groveシールドと光センサーを接続したmicrobit

〇参考情報
Bluetooth Developer Studio Level 3 Profile Report

・基板を見えないようにするためにGrove Light Sensorのケースを作成する場合は以下の記事を参照してください。
OpenSCADとUltimaker Curaを使用してGrove Light Sensorのケースを作成する

・Raspberry Pi ZeroとGrove Base HATを利用してGrove Light Sensorを接続する場合は、以下の記事を参照してください。
Raspberry Pi ZeroとGrove Base HAT for Raspberry Piと光センサーで、明るさを取得する

Groveデバイスまとめ

0 件のコメント:

コメントを投稿