1. Raspberry Piにbluepyをインストール
bluepyをRaspberry Piにインストールするの手順で、bluepyをインストールします
2. micro:bitでbluetoothサービスを使用するプログラム作成
以下のような感じで一通りのbluetoothサービスを最初に追加します
また、ペアリングをしなくても利用できるようにします
※6桁キーでペアリングしたい場合は「6桁のキーでmicrobitとRaspberry PiをBluetoothペアリングする」を参照してください。
3. 加速度センサーの値を取得するプログラム
accelerometer.py
from bluepy import btle
class MyDelegate(btle.DefaultDelegate):
def __init__(self):
btle.DefaultDelegate.__init__(self)
def handleNotification(self, hd, data):
print("notification: {}".format(data))
x = int.from_bytes(data[0:2], byteorder='little', signed=True)
print("X: {}".format(x))
y = int.from_bytes(data[2:4], byteorder='little', signed=True)
print("Y: {}".format(y))
z = int.from_bytes(data[4:6], byteorder='little', signed=True)
print("Z: {}".format(z))
per = btle.Peripheral("XX:XX:XX:XX:XX:XX", btle.ADDR_TYPE_RANDOM)
# Accelerometer Service
svcAcc = per.getServiceByUUID("E95D07532-51D470AA0-62FA-1922DFA9A8")
# Accelerometer Period
chAccPeriod = svcAcc.getCharacteristics("E95DFB24-251D-470A-A062-FA1922DFA9A8")[0]
period = 80
chAccPeriod.write(period.to_bytes(2, 'little'))
# Accelerometer data
chAccData = svcAcc.getCharacteristics("E95DCA4B-251D-470A-A062-FA1922DFA9A8")[0]
ch_cccd=chAccData.getDescriptors(forUUID=0x2902)[0]
ch_cccd.write(b"\x01\x00", False)
dg = MyDelegate()
per.setDelegate( dg )
print("press Ctrl+C to exit...")
while True:
if per.waitForNotifications(0.1):
continue
4. 加速度センサーの値を取得するプログラムの実行
$ python3 accelerometer.py
notification: b'\x90\xff\xf0\xff\x10\x04'
X: -112
Y: -16
Z: 1040
〇参考情報
・Bluetooth Developer Studio Level 3 Profile Report
0 件のコメント:
コメントを投稿