非通用/区别点
- 针对不同型号的机械臂,同样的指令,串口返回的数据会不同;
- 针对不同型号的机械臂,部分指令可能不同。
mycobot
- mycobot为六轴机械臂,舵机数为6
4、读取角度(读取走位信息)
数据域 | 说明 | 数据 |
---|---|---|
Data[0] | 识别帧 | 0XFE |
Data[1] | 识别帧 | 0XFE |
Data[2] | 数据长度帧 | 0X02 |
Data[3] | 指令帧 | 0X20 |
Data[4] | 结束帧 | 0XFA |
串口发送示例:FE FE 02 20 FA
返回数据结构
数据域 | 说明 | 数据 |
---|---|---|
Data[0] | 返回帧头 | 0XFE |
Data[1] | 返回帧头 | 0XFE |
Data[2] | 返回长度帧 | 0X0E |
Data[3] | 返回指令帧 | 0X20 |
Data[4] | 1号舵机角度高位 | Angle1_high |
Data[5] | 1号舵机角度低位 | Angle1_low |
Data[6] | 2号舵机角度高位 | Angle2_high |
Data[7] | 2号舵机角度低位 | Angle2_low |
Data[8] | 3号舵机角度高位 | Angle3_high |
Data[9] | 3号舵机角度低位 | Angle3_low |
Data[10] | 4号舵机角度高位 | Angle4_high |
Data[11] | 4号舵机角度低位 | Angle4_low |
Data[12] | 5号舵机角度高位 | Angle5_high |
Data[13] | 5号舵机角度低位 | Angle5_low |
Data[14] | 6号舵机角度高位 | Angle6_high |
Data[15] | 6号舵机角度低位 | Angle6_low |
Data[16] | 结束帧 | 0XFA |
串口返回示例:FE FE 0E 20 00 8C 00 3D FF E6 FF 3F 00 AF FF 51 FA
如何得出1号关节角度
temp = angle1_low+angle1_high*256
Angle1=(temp \ 33000 ?(temp – 65536) : temp)/100
计算方式:角度值低位 + 角度高位值乘以256 先判断是否大于33000 如果大于33000就再减去65536 最后除以100 如果小于33000就直接除以100
(其余同理)
5、发送单独角度
数据域 | 说明 | 数据 |
---|---|---|
Data[0] | 识别帧 | 0XFE |
Data[1] | 识别帧 | 0XFE |
Data[2] | 数据长度帧 | 0X06 |
Data[3] | 指令帧 | 0X21 |
Data[4] | 舵机序号 | joint_no |
Data[5] | 角度值高位 | angle_high |
Data[6] | 角度值低位 | angle_low |
Data[7] | 指定速度 | sp |
Data[8] | 结束帧 | 0XFA |
使1号舵机以20%速度移动到零位
串口发送示例:FE FE 06 21 01 00 00 14 FA
joint_no取值范围: 0~5
angle_high:数据类型byte
计算方式:角度值乘以100 先转换成int形式 再取十六进制的高字节
angle_low:数据类型byte
计算方式:角度值乘以100 先转换成int形式 再取十六进制的低字节
无返回值
6、发送全部角度
数据域 | 说明 | 数据 |
---|---|---|
Data[0] | 识别帧 | 0XFE |
Data[1] | 识别帧 | 0XFE |
Data[2] | 数据长度帧 | 0X0F |
Data[3] | 指令帧 | 0X22 |
Data[4] | 1号舵机角度值高字节 | Angle1_high |
Data[5] | 1号舵机角度值低字节 | Angle1_low |
Data[6] | 2号舵机角度值高字节 | Angle2_ high |
Data[7] | 2号舵机角度值低字节 | Angle2_ low |
Data[8] | 3号舵机角度值高字节 | Angle3_ high |
Data[9] | 3号舵机角度值低字节 | Angle3_ low |
Data[10] | 4号舵机角度值高字节 | Angle4_ high |
Data[11] | 4号舵机角度值低字节 | Angle4_ low |
Data[12] | 5号舵机角度值高字节 | Angle5_ high |
Data[13] | 5号舵机角度值低字节 | Angle5_ low |
Data[14] | 6号舵机角度值高字节 | Angle6_ high |
Data[15] | 6号舵机角度值低字节 | Angle6_ low |
Data[16] | 指定速度 | Sp |
Data[17] | 结束帧 | 0XFA |
发送全部角度均为零/让机械恢复到零位,以30%速度移动
串口发送示例:FE FE 0F 22 00 00 00 00 00 00 00 00 00 00 00 00 1E FA
angle1_high:数据类型byte
计算方式:1号舵机角度值乘以100 先转换成int形式 再取十六进制的高字节
angle1_low:数据类型byte
计算方式:1号舵机角度值乘以100 先转换成int形式 再取十六进制的低字节
(其余同理)
无返回值
15、发送电位值
数据域 | 说明 | 数据 |
---|---|---|
Data[0] | 识别帧 | 0XFE |
Data[1] | 识别帧 | 0XFE |
Data[2] | 数据长度帧 | 0X05 |
Data[3] | 指令帧 | 0X3A |
Data[4] | 关节舵机序号 | Joint |
Data[5] | 电位值高位 | Encoder_high |
Data[6] | 电位值低位 | Encoder_low |
Data[7] | 结束帧 | 0XFA |
示例,设定5号关节到2048电位。
串口发送示例: FE FE 05 3A 05 08 00 FA
关节序号取值范围:0~5
Joint:数据类型byte
Encoder_high:数据类型byte
计算方式:取电位值(十六进制)的高位
Encoder_low:数据类型byte
计算方式:取电位值值(十六进制)的低位
无返回值
16、获取电位值
数据域 | 说明 | 数据 |
---|---|---|
Data[0] | 识别帧 | 0XFE |
Data[1] | 识别帧 | 0XFE |
Data[2] | 数据长度帧 | 0X03 |
Data[3] | 指令帧 | 0X3B |
Data[4] | 关节序号 | joint |
Data[5] | 结束帧 | 0XFA |
获取2号舵机电位值
串口发送示例: FE FE 01 3B 01 FA
关节序号取值范围:0~5
返回数据结构
数据域 | 说明 | 数据 |
---|---|---|
Data[0] | 返回识别帧 | 0XFE |
Data[1] | 返回识别帧 | 0XFE |
Data[2] | 返回数据长度帧 | 0X04 |
Data[3] | 返回指令帧 | 0X3B |
Data[4] | 舵机电位值高位 | Encoder_high |
Data[5] | 舵机电位值低位 | Encoders_low |
Data[6] | 结束帧 | 0XFA |
串口返回示例: FE FE 04 3B 08 07 FA
如何计算电位值
电位值 = 电位值低位 + 电位值高位 * 256
17、发送六个舵机的电位值
数据域 | 说明 | 数据 |
---|---|---|
Data[0] | 识别帧 | 0XFE |
Data[1] | 识别帧 | 0XFE |
Data[2] | 数据长度帧 | 0X0F |
Data[3] | 指令帧 | 0X3C |
Data[4] | 1号舵机电位值高字节 | encoder_1_high |
Data[5] | 1号舵机电位值低字节 | encoder_1_low |
Data[6] | 2号舵机电位值高字节 | encoder_2_high |
Data[7] | 2号舵机电位值低字节 | encoder_2_low |
Data[8] | 3号舵机电位值高字节 | encoder_3_high |
Data[9] | 3号舵机电位值低字节 | encoder_3_low |
Data[10] | 4号舵机电位值高字节 | encoder_4_high |
Data[11] | 4号舵机电位值低字节 | encoder_4_low |
Data[12] | 5号舵机电位值高字节 | encoder_5_high |
Data[13] | 5号舵机电位值低字节 | encoder_5_low |
Data[14] | 6号舵机电位值高字节 | encoder_6_high |
Data[15] | 6号舵机电位值低字节 | encoder_6_low |
Data[16] | 指定速度 | Sp |
Data[17] | 结束帧 | 0XFA |
发送所有电机的电位值均为2048,速度为20%
串口发送示例:FE FE 0F 3C 08 00 08 00 08 00 08 00 08 00 08 00 14 FA
(参考上方发送单独电位值)
encoder_1_high:数据类型byte
计算方式: 1号舵机电位值先转换为int类型 再取十六进制高字节
encoder_1_low:数据类型byte
计算方式: 1号舵机电位值先转换为int类型 再取十六进制低字节
(其余同理)
Sp:数据类型byte 取值范围:0~100%
无返回值
22、读取关节最小角度
数据域 | 说明 | 数据 |
---|---|---|
Data[0] | 识别帧 | 0XFE |
Data[1] | 识别帧 | 0XFE |
Data[2] | 数据长度帧 | 0X03 |
Data[3] | 指令帧 | 0X4A |
Data[4] | 关节舵机序号 | Joint_number |
Data[5] | 结束帧 | 0XFA |
读取2号关节最小角度
串口发送示例: FE FE 03 4A 01 FA
joint_no取值范围:0~5
返回数据结构
数据域 | 说明 | 数据 |
---|---|---|
Data[0] | 返回识别帧 | 0XFE |
Data[1] | 返回识别帧 | 0XFE |
Data[2] | 返回数据长度帧 | 0X04 |
Data[3] | 返回指令帧 | 0X4A |
Data[4] | 舵机角度值高位 | Angle_high |
Data[5] | 舵机角度值低位 | Angle_low |
Data[6] | 结束帧 | 0XFA |
串口返回示例: FE FE 04 4A F9 F2 FA
如何得出关节最小角度
temp = angle1_low+angle1_high*256
Angle1=(temp \ 33000 ?(temp – 65536) : temp)/10
计算方式:角度值低位 + 角度高位值乘以256 先判断是否大于33000 如果大于33000就再减去65536 最后除以10 如果小于33000就直接除以10
23、读取关节最大角度
数据域 | 说明 | 数据 |
---|---|---|
Data[0] | 识别帧 | 0XFE |
Data[1] | 识别帧 | 0XFE |
Data[2] | 数据长度帧 | 0X03 |
Data[3] | 指令帧 | 0X4B |
Data[4] | 关节舵机序号 | joint_number |
Data[5] | 结束帧 | 0XFA |
读取2号关节的最大角度
串口发送示例: FE FE 03 4B 01 FA
返回数据结构
数据域 | 说明 | 数据 |
---|---|---|
Data[0] | 返回识别帧 | 0XFE |
Data[1] | 返回识别帧 | 0XFE |
Data[2] | 返回数据长度帧 | 0X04 |
Data[3] | 返回指令帧 | 0X4B |
Data[4] | 舵机角度值高位 | Angle_high |
Data[5] | 舵机角度值低位 | Angle_low |
Data[6] | 结束帧 | 0XFA |
串口返回示例: FE FE 04 4B 06 0E FA
joint_no取值范围:0~5
如何得出关节最大角度
temp = angle1_low+angle1_high*256
Angle1=(temp \ 33000 ?(temp – 65536) : temp)/10
计算方式:角度值低位 + 角度高位值乘以256 先判断是否大于33000 如果大于33000就再减去65536 最后除以10 如果小于33000就直接除以10
mycobot Pro
- 同 mycobot
myPalletizer
- myPalletizer码垛机械臂为四轴机械臂,舵机数为4
1、读取角度(读取走位信息)
数据域 | 说明 | 数据 |
---|---|---|
Data[0] | 识别帧 | 0XFE |
Data[1] | 识别帧 | 0XFE |
Data[2] | 数据长度帧 | 0X02 |
Data[3] | 指令帧 | 0X20 |
Data[4] | 结束帧 | 0XFA |
串口发送示例:FE FE 02 20 FA
返回数据结构
数据域 | 说明 | 数据 |
---|---|---|
Data[0] | 返回帧头 | 0XFE |
Data[1] | 返回帧头 | 0XFE |
Data[2] | 返回长度帧 | 0X0A |
Data[3] | 返回指令帧 | 0X20 |
Data[4] | 1号舵机角度高位 | Angle1_high |
Data[5] | 1号舵机角度低位 | Angle1_low |
Data[6] | 2号舵机角度高位 | Angle2_high |
Data[7] | 2号舵机角度低位 | Angle2_low |
Data[8] | 3号舵机角度高位 | Angle3_high |
Data[9] | 3号舵机角度低位 | Angle3_low |
Data[10] | 4号舵机角度高位 | Angle4_high |
Data[11] | 4号舵机角度低位 | Angle4_low |
Data[16] | 结束帧 | 0XFA |
串口返回示例:FE FE 0A 20 00 8C 00 3D FF E6 FF 3F FA
如何得出1号关节角度
temp = angle1_low+angle1_high*256
Angle1=(temp \ 33000 ?(temp – 65536) : temp)/100
计算方式:角度值低位 + 角度高位值乘以256 先判断是否大于33000 如果大于33000就再减去65536 最后除以100 如果小于33000就直接除以100
(其余同理)
2、发送全部角度
数据域 | 说明 | 数据 |
---|---|---|
Data[0] | 识别帧 | 0XFE |
Data[1] | 识别帧 | 0XFE |
Data[2] | 数据长度帧 | 0X0B |
Data[3] | 指令帧 | 0X22 |
Data[4] | 1号舵机角度值高字节 | Angle1_high |
Data[5] | 1号舵机角度值低字节 | Angle1_low |
Data[6] | 2号舵机角度值高字节 | Angle2_ high |
Data[7] | 2号舵机角度值低字节 | Angle2_ low |
Data[8] | 3号舵机角度值高字节 | Angle3_ high |
Data[9] | 3号舵机角度值低字节 | Angle3_ low |
Data[10] | 4号舵机角度值高字节 | Angle4_ high |
Data[11] | 4号舵机角度值低字节 | Angle4_ low |
Data[16] | 指定速度 | Sp |
Data[17] | 结束帧 | 0XFA |
发送全部角度均为零/让机械恢复到零位,以30%速度移动
串口发送示例:FE FE 0B 22 00 00 00 00 00 00 00 00 1E FA
angle1_high:数据类型byte
计算方式:1号舵机角度值乘以100 先转换成int形式 再取十六进制的高字节
angle1_low:数据类型byte
计算方式:1号舵机角度值乘以100 先转换成int形式 再取十六进制的低字节
(其余同理)
无返回值
3、发送四个舵机的电位值
数据域 | 说明 | 数据 |
---|---|---|
Data[0] | 识别帧 | 0XFE |
Data[1] | 识别帧 | 0XFE |
Data[2] | 数据长度帧 | 0X0B |
Data[3] | 指令帧 | 0X3C |
Data[4] | 1号舵机电位值高字节 | encoder_1_high |
Data[5] | 1号舵机电位值低字节 | encoder_1_low |
Data[6] | 2号舵机电位值高字节 | encoder_2_high |
Data[7] | 2号舵机电位值低字节 | encoder_2_low |
Data[8] | 3号舵机电位值高字节 | encoder_3_high |
Data[9] | 3号舵机电位值低字节 | encoder_3_low |
Data[10] | 4号舵机电位值高字节 | encoder_4_high |
Data[11] | 4号舵机电位值低字节 | encoder_4_low |
Data[16] | 指定速度 | Sp |
Data[17] | 结束帧 | 0XFA |
发送所有电机的电位值均为2048,速度为20%
串口发送示例:FE FE 0B 3C 08 00 08 00 08 00 08 00 14 FA
(参考上方发送单独电位值)
encoder_1_high:数据类型byte
计算方式: 1号舵机电位值先转换为int类型 再取十六进制高字节
encoder_1_low:数据类型byte
计算方式: 1号舵机电位值先转换为int类型 再取十六进制低字节
(其余同理)
Sp:数据类型byte 取值范围:0~100%
无返回值
5、发送单独角度
数据域 | 说明 | 数据 |
---|---|---|
Data[0] | 识别帧 | 0XFE |
Data[1] | 识别帧 | 0XFE |
Data[2] | 数据长度帧 | 0X06 |
Data[3] | 指令帧 | 0X21 |
Data[4] | 舵机序号 | joint_no |
Data[5] | 角度值高位 | angle_high |
Data[6] | 角度值低位 | angle_low |
Data[7] | 指定速度 | sp |
Data[8] | 结束帧 | 0XFA |
使1号舵机以20%速度移动到零位
串口发送示例:FE FE 06 21 01 00 00 14 FA
joint_no取值范围: 0~3
angle_high:数据类型byte
计算方式:角度值乘以100 先转换成int形式 再取十六进制的高字节
angle_low:数据类型byte
计算方式:角度值乘以100 先转换成int形式 再取十六进制的低字节
无返回值
15、发送电位值
数据域 | 说明 | 数据 |
---|---|---|
Data[0] | 识别帧 | 0XFE |
Data[1] | 识别帧 | 0XFE |
Data[2] | 数据长度帧 | 0X05 |
Data[3] | 指令帧 | 0X3A |
Data[4] | 关节舵机序号 | Joint |
Data[5] | 电位值高位 | Encoder_high |
Data[6] | 电位值低位 | Encoder_low |
Data[7] | 结束帧 | 0XFA |
示例,设定3号关节到2048电位。
串口发送示例: FE FE 05 3A 03 08 00 FA
关节序号取值范围:0~3
Joint:数据类型byte
Encoder_high:数据类型byte
计算方式:取电位值(十六进制)的高位
Encoder_low:数据类型byte
计算方式:取电位值值(十六进制)的低位
无返回值
16、获取电位值
数据域 | 说明 | 数据 |
---|---|---|
Data[0] | 识别帧 | 0XFE |
Data[1] | 识别帧 | 0XFE |
Data[2] | 数据长度帧 | 0X03 |
Data[3] | 指令帧 | 0X3B |
Data[4] | 关节序号 | joint |
Data[5] | 结束帧 | 0XFA |
获取2号舵机电位值
串口发送示例: FE FE 01 3B 01 FA
关节序号取值范围:0~3
返回数据结构
数据域 | 说明 | 数据 |
---|---|---|
Data[0] | 返回识别帧 | 0XFE |
Data[1] | 返回识别帧 | 0XFE |
Data[2] | 返回数据长度帧 | 0X04 |
Data[3] | 返回指令帧 | 0X3B |
Data[4] | 舵机电位值高位 | Encoder_high |
Data[5] | 舵机电位值低位 | Encoders_low |
Data[6] | 结束帧 | 0XFA |
串口返回示例: FE FE 04 3B 08 07 FA
如何计算电位值
电位值 = 电位值低位 + 电位值高位 * 256
22、读取关节最小角度
数据域 | 说明 | 数据 |
---|---|---|
Data[0] | 识别帧 | 0XFE |
Data[1] | 识别帧 | 0XFE |
Data[2] | 数据长度帧 | 0X03 |
Data[3] | 指令帧 | 0X4A |
Data[4] | 关节舵机序号 | Joint_number |
Data[5] | 结束帧 | 0XFA |
读取2号关节最小角度
串口发送示例: FE FE 03 4A 01 FA
joint_no取值范围:0~3
返回数据结构
数据域 | 说明 | 数据 |
---|---|---|
Data[0] | 返回识别帧 | 0XFE |
Data[1] | 返回识别帧 | 0XFE |
Data[2] | 返回数据长度帧 | 0X04 |
Data[3] | 返回指令帧 | 0X4A |
Data[4] | 舵机角度值高位 | Angle_high |
Data[5] | 舵机角度值低位 | Angle_low |
Data[6] | 结束帧 | 0XFA |
串口返回示例: FE FE 04 4A F9 F2 FA
如何得出关节最小角度
temp = angle1_low+angle1_high*256
Angle1=(temp \ 33000 ?(temp – 65536) : temp)/10
计算方式:角度值低位 + 角度高位值乘以256 先判断是否大于33000 如果大于33000就再减去65536 最后除以10 如果小于33000就直接除以10
23、读取关节最大角度
数据域 | 说明 | 数据 |
---|---|---|
Data[0] | 识别帧 | 0XFE |
Data[1] | 识别帧 | 0XFE |
Data[2] | 数据长度帧 | 0X03 |
Data[3] | 指令帧 | 0X4B |
Data[4] | 关节舵机序号 | joint_number |
Data[5] | 结束帧 | 0XFA |
读取2号关节的最大角度
串口发送示例: FE FE 03 4B 01 FA
返回数据结构
数据域 | 说明 | 数据 |
---|---|---|
Data[0] | 返回识别帧 | 0XFE |
Data[1] | 返回识别帧 | 0XFE |
Data[2] | 返回数据长度帧 | 0X04 |
Data[3] | 返回指令帧 | 0X4B |
Data[4] | 舵机角度值高位 | Angle_high |
Data[5] | 舵机角度值低位 | Angle_low |
Data[6] | 结束帧 | 0XFA |
串口返回示例: FE FE 04 4B 06 0E FA
joint_no取值范围:0~3
如何得出关节最大角度
temp = angle1_low+angle1_high*256
Angle1=(temp \ 33000 ?(temp – 65536) : temp)/10
计算方式:角度值低位 + 角度高位值乘以256 先判断是否大于33000 如果大于33000就再减去65536 最后除以10 如果小于33000就直接除以10