1. Raspberry Piにbluepyをインストール
bluepyをRaspberry Piにインストールするの手順で、bluepyをインストールします
2. micro:bitでbluetoothサービスを使用するプログラム作成
以下のような感じで入出力端子bluetoothサービスを最初に追加します
また、ペアリングをしなくても利用できるようにします
※6桁キーでペアリングしたい場合は「6桁のキーでmicrobitとRaspberry PiをBluetoothペアリングする」を参照してください。
3. Kitronik :MOVE miniを操作するプログラム
pwm.py
import struct
from bluepy import btle
import time
#struct PwmControlData
#{
# uint8_t pin;
# uint16_t value;
# uint32_t period;
#}
def move(chPWM, angle1, angle2):
us1 = round(600 + (2400-600) * angle1/180)
duty1 = (us1 * 1024 * 50 // 1000000)
us2 = round(600 + (2400-600) * angle2/180)
duty2 = (us2 * 1024 * 50 // 1000000)
print("angle1={},us1={},duty1={}".format(angle1,us1,duty1))
print("angle2={},us2={},duty2={}".format(angle2,us2,duty2))
data = struct.pack('<BHIBHI', 1, duty1, 20000, 2, duty2, 20000)
chPWM.write(data)
per = btle.Peripheral("XX:XX:XX:XX:XX:XX", btle.ADDR_TYPE_RANDOM)
svcIOPIN = per.getServiceByUUID("E95D127B-251D-470A-A062-FA1922DFA9A8")
chPWM = svcIOPIN.getCharacteristics("E95DD822-251D-470A-A062-FA1922DFA9A8")[0]
move(chPWM, 80, 100)
time.sleep(1.0)
move(chPWM, 100, 80)
time.sleep(1.0)
move(chPWM, 100, 100)
time.sleep(2)
move(chPWM, 70, 70)
time.sleep(2)
move(chPWM, 90, 90)
4. Kitronik :MOVE miniを操作するプログラムの実行
$ python3 pwm.py
angle1=80,us1=1400,duty1=71
angle2=100,us2=1600,duty2=81
angle1=100,us1=1600,duty1=81
angle2=80,us2=1400,duty2=71
angle1=100,us1=1600,duty1=81
angle2=100,us2=1600,duty2=81
angle1=70,us1=1300,duty1=66
angle2=70,us2=1300,duty2=66
angle1=90,us1=1500,duty1=76
angle2=90,us2=1500,duty2=76
〇参考情報
・Bluetooth Developer Studio Level 3 Profile Report
0 件のコメント:
コメントを投稿