设备:树莓派4B 幻儿总线舵机控制器
目标:通过树莓派控制总线舵机控制器让其完成第X组动作
我们先看一下总线舵机控制器的通信协议
一共六位数据,头两位是头数据包,第三位是数据长度,数据帧除帧头部分数据字节数,此命令固定为5
填充运行动作组命令,第四位填充要运行的动作组号,第五位取得要运行次数的低八位,第六位取得要运行次数的高八位。
然后通过extend函数将要发送的数据传送出去。
import serial
import time
serialHandle = serial.Serial("/dev/ttyAMA0", 9600)
def runActionGroup(CMD_ACTION_GROUP_RUN,numOfAction,Times):
buf = bytearray(b'\x55\x55')
try:
len = 3 #若命令是没有参数的话数据长度就是3
buf1 = bytearray(b'')
if Times is not None:
len += 2
buf1.extend([(0xff & Times), (0xff & (Times >> 8))]) # 分低8位 高8位 放入缓存
buf.extend([(0xff & len),(0xff & CMD_ACTION_GROUP_RUN), (0xff & numOfAction)])
buf.extend(buf1) # 追加参数
serialHandle.write(buf) # 发送
except Exception as e:
print(e)
runActionGroup(0x06,0,1)