我正在尝试与UIM 2502模块的UIRobot通信。我可以问一些像比特率之类的问题。当我试图得到实际的电机位置,答案不是一个正常的十六进制代码。你知道吗
我可以使用程序StepEva来获取当前位置并移动步进器。所以我用StepEva移动了步进器,用python询问了位置。结果作为代码中的注释。你知道吗
from serial import Serial
ser = Serial(port='COM7', baudrate=38400, timeout=1, bytesize=8, parity='N', stopbits=1)
commando = 'POS;'
ser.write(commando.encode())
response=ser.readline()
print(response)
# responses:
# b'\xcc\x05\xb0\x00\x00\x00\x009\xff' StepEva position: 57
# b'\xcc\x05\xb0\x00\x00\x00\x01T\xff' StepEva position: 212
# b'\xcc\x05\xb0\x0f\x7f\x7f<\x13\xff StepEva position: -8685
我不知道如何转换这个十六进制代码。手册上说b0字节后的5个字节描述了位置。 来自手册的POS响应: CC[Controller ID]B0[P0][P1][P2][P3][P4]FF控制器
注释:B0>;>的消息ID 当前位置[P0]~[P4]>;>接收数据0~4
根据User Manual UIM2502的“第18页图5-1:从3个7位消息数据到16位数据的转换”和User Manual UIM242XX Series的“第62页图12-2:从5个7位消息数据到32位数据的转换”,每个字节包含7位值,您可以期望将其以大端形式连接成32位整数。你知道吗
文档中不包含问题的消息,但根据问题,数字将是32位有符号整数。
作为一个Python程序,它将如下所示。你知道吗
例如,它可以如下使用。你知道吗
顺便说一句,我还没有查看内容,但是当我搜索时,有这样一个包,因此可能有可以以各种方式使用的功能。
python-can
相关问题 更多 >
编程相关推荐