以下の手順でmicrobitのP0に接続したGrove超音波距離センサーの値をBluetooth経由でRaspberry Pi上のPythonプログラムで取得する事ができます。
1. Raspberry Piにbluepyをインストール
bluepyをRaspberry Piにインストールするの手順で、bluepyをインストールします
2. micro:bitでbluetoothサービスを使用するプログラム作成
以下のような感じでUART bluetoothサービスを最初に追加します
また、ペアリングをしなくても利用できるようにします
※6桁キーでペアリングしたい場合は「6桁のキーでmicrobitとRaspberry PiをBluetoothペアリングする」を参照してください。
3. Grove超音波距離センサーの値を取得するプログラム
uart_ultrasonic.py
from bluepy import btle
class MyDelegate(btle.DefaultDelegate):
def __init__(self, TX, RX):
btle.DefaultDelegate.__init__(self)
self.TX = TX
self.RX = RX
def handleNotification(self, hd, data):
print("distance: {},{}".format(hd,data.decode('utf-8')))
per = btle.Peripheral("XX:XX:XX:XX:XX:XX", btle.ADDR_TYPE_RANDOM)
# UART Service
svcUART = per.getServiceByUUID("6E400001-B5A3-F393-E0A9-E50E24DCCA9E")
# TX Characteristics
chTX = svcUART.getCharacteristics("6E400002-B5A3-F393-E0A9-E50E24DCCA9E")[0]
ch_cccd=chTX.getDescriptors(forUUID=0x2902)[0]
ch_cccd.write(b"\x03\x00", False)
# RX Characteristics
chRX = svcUART.getCharacteristics("6E400003-B5A3-F393-E0A9-E50E24DCCA9E")[0]
dg = MyDelegate(chTX, chRX)
per.setDelegate( dg )
while True:
if per.waitForNotifications(0.1):
continue
4. Grove超音波距離センサーの値を取得するプログラムの実行
python3 uart_ultrasonic.py
distance: 39,102
distance: 39,340
distance: 39,103
〇GroveシールドとGrove超音波距離センサーを接続したmicrobit
関連情報
・Groveデバイスまとめ・Bluetooth Developer Studio Level 3 Profile Report
0 件のコメント:
コメントを投稿