1. 串口通信配置¶
参数名称(en) | 参数名称(cn) | 参数数值 | 备注 |
---|---|---|---|
baudrate | 波特率 | 115200 | 串口舵机支持的多种波特率,参见<参数>波特率选项 |
parity | 奇偶校验 | 无 | |
stopbits | 停止位 | 1 | |
bytesize | 字节长度 | 8 |
2. 数据类型说明¶
串口通讯协议里用到的数据类型 (字节大小,取值范围)
数据类型 | 数据名称(en) | 数据名称(cn) | 字节长度 | 最小值 | 最大值 |
---|---|---|---|---|---|
uint8_t | byte | 字节() | 1 | 0 | 255 |
uint16_t | unsigned short | 无符号短整型 | 2 | 0 | 65535 |
int16_t | signed short | 有符号短整数 | 2 | -32768 | 32767 |
uint32_t | unsigned long | 无符号长整数 | 4 | 0 | 4294967295 |
int32_t | signed long | 有符号长整数 | 4 | -2147483648 | 2147483647 |
uint8_t[n] | byte array | 变长字节数组 | n |
注意事项:
- 舵机通讯协议里面使用的字节序为小端字节序,例如一个
uint16_t
的数值4660
,它的十六进制表示为0x1234
。在发送/接收时,低位字节在前,高位字节在后,即以0x34 0x12
形式发送。
计算机电路先处理低位字节,效率比较高,所以在大部分的MCU里面(例如STM32),默认字节序也是小端字节序。
拓展阅读: 理解字节序 大端字节序和小端字节序
3. 舵机控制指令¶
串口舵机共支持17种舵机控制指令。其中12种为通用指令,余下5种指令仅限于磁编码系列舵机
通用指令
指令ID | 指令名称(EN) | 指令名称(CN) | 备注 |
---|---|---|---|
1 | PING | 舵机通讯检测 | 检查舵机是否在线 |
2 | RESET_USER_DATA | 用户自定义数据重置 | 重新将用户自定义数据设置为默认值 |
3 | READ_DATA | 舵机数据读取 | 读取单个用户自定义参数,用户自定义参数的字节长度为可变长 |
4 | WRITE_DATA | 用户自定义数据写 | 写入单个用户自定义数据,用户自定义参数的字节长度为可变长 |
5 | READ_BATCH_DATA | 用户自定义数据批量读取 | 读取所有的用户自定义数据,所有的用户自定义数据的字节长度为32字节 |
6 | WRITE_BATCH_DATA | 用户自定义数据批量写入 | 写入所有的用户自定义数据,所有的用户自定义数据的字节长度为32字节 |
7 | MOVE_ON_WHEEL_MODE(SPIN) | 轮式模式控制 | 设置旋转方向,定速,定圈,定时 |
8 | MOVE_ON_ANGLE_MODE(ROTATE) | 角度模式控制-设置舵机角度 | 设置舵机旋转的目标角度,时间间隔,执行功率 |
9 | MOVE_ON_DAMPING_MODE(DAMPING) | 阻尼模式控制 | 阻尼模式,设置舵机保持的功率 |
10 | READ_ANGLE | 读取舵机角度 | |
11 | MOVE_ON_ANGLE_MODE_EX_BY_INTERVAL | 角度模式控制-指定时间 | 带加减速控制的角度模式,设置加减速时间,时间间隔,目标角度,执行功率 |
12 | MOVE_ON_ANGLE_MODE_EX_BY_VELOCITY | 角度模式控制-指定速度 | 带加减速控制的角度模式,设置加减速时间,目标速度,目标角度,执行功率 |
特定指令,仅限于磁编码系列舵机
指令ID | 指令名称(EN) | 指令名称(CN) | 备注 |
---|---|---|---|
13 | MOVE_ON_MULTI_TURN_ANGLE_MODE(ROTATE) | 多圈角度控制 | 设置舵机旋转的目标角度,时间间隔,执行功率 |
14 | MOVE_ON_MULTI_TURN_ANGLE_MODE_EX_BY_INTERVAL | 多圈角度控制-指定时间 | 带加减速控制的多圈角度模式,设置加减速时间,时间间隔,目标角度,执行功率 |
15 | MOVE_ON_MULTI_TURN_ANGLE_MODE_EX_BY_VELOCITY | 多圈角度控制-指定速度 | 带加减速控制的多圈角度模式,设置加减速时间,目标速度,目标角度,执行功率 |
16 | READ_MULTI_TURN_ANGLE | 读取多圈角度 | |
17 | RESET_MULTI_TURN_ANGLE | 重设多圈角度 | 重置圈数,重置后角度范围为[-180,180] |
注意事项:
- 所有的舵机指令都是针对单个舵机的。
- 批量读/写针对的都是单个舵机的所有的用户自定义数据,而不是所有的舵机。
- 发送控制指令之前,请确保串联在一起的舵机每个舵机的ID号都不一样。
- 批量读取跟批量写入针对的都是用户自定义参数区块。
发布者:Fashion Star,转转请注明出处:https://fashionrobo.com/%e6%b7%b1%e5%85%a5%e4%ba%86%e8%a7%a3%e6%80%bb%e7%ba%bf%e4%bc%ba%e6%9c%8d%e8%88%b5%e6%9c%ba%e7%9a%84%e9%80%9a%e8%ae%af%e5%8d%8f%e8%ae%ae/24686/