2019年12月1日日曜日

Raspberry PiからBluetooth経由でmicro:bitのボタン状態を取得する

Raspberry PiからBluetooth経由でmicro:bitのボタン状態を取得するには、以下の手順を実行します。

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

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

3. microbitのボタン状態を取得するプログラム
from bluepy import btle

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

# Button Service
svcButton = per.getServiceByUUID("e95d9882-251d-470a-a062-fa1922dfa9a8")

# Button A State
chA = svcButton.getCharacteristics("e95dda90-251d-470a-a062-fa1922dfa9a8")[0]
print("Button A State:{}".format(chA.read()))

# Button B State
chB = svcButton.getCharacteristics("e95dda91-251d-470a-a062-fa1922dfa9a8")[0]
print("Button B State:{}".format(chB.read()))

4. microbitのボタン状態を取得するプログラムの実行
$ python3 buttonstate.py
Button A State:b'\x02'
Button B State:b'\x00'
\x00はボタンを押していない状態、\x01で押した状態、\x02で長押し状態を示します

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


0 件のコメント:

コメントを投稿