基础使用
串口控制方法
USB-485模块接线:
连接灵巧手端的 24V,GND, 485_A(T/R+,485+) , 485_B(T/R-,485-)共 4 根线,电源为24V直流稳压电源,将模块的 USB 插口插入到电脑的 USB 接口
485A 接入 485 转 USB 模块 A+;
485B 接入 485 转 USB 模块 B-;
24V 接入 24V 直流稳压电源正极;
GND 接入 24V 直流稳压电源负极
串口调试助手调试:
用户可用UartAssist串口调试助手,参考下图发送相应的灵巧手指令,CRC校验码无需填写,UartAssist串口调试助手会自动生成。
灵巧手串口默认配置
- 灵巧手 ID:14
- 波特率:115200
- 数据位:8
- 停止位:1
- 校验位:无校验位
灵巧手采用自定义协议,一条指令由帧头(2byte),长度(1byte),地址码 ID(1byte),功能码(1byte),寄存器地址(2byte),寄存器数据(2*n个byte),校验码(2byte),我们以读取灵巧手角度为例
帧头 | 长度 | ID | 功能码 | 寄存器地址 | 寄存器数据/参数 | CRC-16MODBUS校验码 |
---|---|---|---|---|---|---|
Fe Fe | 08 | 0e | 03 | 00 0C | 00 01 | 71 01 |
帧头:254 254
长度:指令长度 08
ID: 0E,可以在设备中修改,默认 ID 为 14 ,0E 代表灵巧手当前 ID 为 14
功能码:识别指令是设置还是获取功能,06(对寄存器进行写操作)/03(对寄存器进行读操作)。
寄存器地址:00 0c 灵巧手功能对应寄存器地址
寄存器参数:00 01 若是读取,只需填写舵机的ID,若是设置,需要填写舵机的ID和写入的参数
CRC 校验:71 01 保证终端设备不去响应那些在传输过程中发生改变的数据,保证系统的安全性和效率,CRC 校验采用 16 位的循环余方法 。将帧头,长度,功能码,寄存器地址,寄存器参数所有16进制直接进行校验得到 71 01 校验码。
命令总览
读取固件主版本号
指令:fe fe 08 0e 03 00 01 00 00 72 51
功能码:03 读操作
参数:无
返回:fe fe 08 0e 03 00 01 00 01 B2 90
标注:数据返回 00 01,返回版本号为 1
读取固件次版本号
指令:FE FE 08 0E 03 00 02 00 00 72 A1
功能码:03 读操作
参数:无
返回:FE FE 08 0E 03 00 02 00 01 B2 60
标注:数据返回 00 01,表示返回版本号为 1
设置/读取设备 ID 号
设置
指令:FE FE 08 0E 06 00 03 00 0E 76 BD
功能码:06 写操作
参数:00 0E,ID 设置范围(1-254)
返回:FE FE 08 0E 06 00 03 00 01 72 FD
标注:成功返回 00 01,失败返回 00 00,设备 ID 修改后,指令中的 ID 也需要修改 成一样才可以通信
读取
指令:FE FE 08 0E 03 00 04 00 00 73 41
功能码:03 读操作
参数:无
返回:FE FE 08 0E 03 00 04 00 0E B7 C0
标注:数据返回 00 0E,表示当前灵巧手 ID 号
设置/读取 485 波特率
设置
指令:FE FE 08 0E 06 00 05 00 00 73 1D
功能码:06 写操作
参数:参数 00 00,0-115200,1-1000000,2-57600,3-19200,4-9600,5-4800, 如设置为 1000000,参数改为 00 01
返回:FE FE 08 0E 06 00 05 00 01 72 FD
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 06 00 00 B3 E0
功能码:03 读操作
参数:无
返回:FE FE 08 0E 03 00 06 00 00 B3 E0
标注:返回数据 00 00,与设值参数对应波特率的值
设置灵巧手使能状态
指令:FE FE 08 0E 06 00 0A 00 00 B0 EC
功能码:06 写操作
参数:00 00, 00 表示断使能, 00 01 表示使能
返回:FE FE 08 0E 06 00 0A 00 01 70 2D
标注:成功返回 00 01,失败返回 00 00
设置/读取灵巧手角度
设置
指令:FE FE 0A 0E 06 00 0B 00 01 00 64 FF 39
功能码:06 写操作
参数:00 01 00 64,设置舵机1角度为100
返回:FE FE 08 0E 06 00 0B 00 01 B0 7C
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 0C 00 01 71 01
功能码:03 读操作
参数:无
返回:FE FE 08 0E 03 00 0C 00 64 5A C1
标注:返回数据 00 64,表示当前角度为 100,全开状态
设置舵机零位
指令:FE FE 08 0E 06 00 0D 00 01 B1 9C
功能码: 06 写操作
参数:00 01 设置舵机1零位
返回:FE FE 08 0E 06 00 0D 00 01 B1 9C
标注:成功返回 00 01,失败返回 00 00
读取灵巧手夹持状态
指令:FE FE 08 0E 03 00 0E 00 00 71 61
功能码:03 读操作
参数:无
返回:FE FE 08 0E 03 00 0E 00 01 B1 A0
标注:00 01,返回数据 0为正在运动 ,1为停止运动,未检测到夹到物,2为停止运动,检测到夹住物体,3为检测到夹住物体,物体掉落
设置/读取舵机 P 值
设置
指令:FE FE 0A 0E 06 00 0F 00 01 00 64 3F C8
功能码:06 写操作
参数:00 01 00 64,设置舵机1 P 值为 100,设置范围(1-254)
返回:FE FE 08 0E 06 00 0F 00 01 71 3D
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 10 00 01 B7 C0 功能码:03 读操作 参数:00 01 舵机1 返回:FE FE 08 0E 03 00 10 00 64 9C 00 标注:返回数据 00 64,表示当前 P 值为 100
设置/读取舵机 D 值
设置
指令:FE FE 0A 0E 06 00 11 00 01 00 64 3D 60
功能码:06 写操作
参数:00 01 00 64,设置舵机1 D 值为 100,设置范围(1-254)
返回:FE FE 08 0E 06 00 11 00 01 77 5D
标注:成功返回 00 01,失败返回 00 00
若灵巧手出现抖动,可适当增大 D 值
读取
指令:FE FE 08 0E 03 00 12 00 01 77 61
功能码:03 读操作
参数:00 01 舵机1
返回:FE FE 08 0E 03 00 12 00 64 5C A1
标注:返回数据 00 64,表示当前 D 值为 100
设置/读取舵机 I 值
设置
指令:FE FE 0A 0E 06 00 13 00 01 00 00 16 18
功能码:06 写操作
参数:00 01 00 00,设置舵机1 I 值为 0,设置范围(1-254)
返回:FE FE 08 0E 06 00 13 00 01 B7 FC
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 14 00 01 76 81
功能码:03 读操作
参数:00 01 舵机1
返回:FE FE 08 0E 03 00 14 00 00 B6 40
标注:返回数据 00 00,表示当前 I 值为 0
设置/读取舵机顺时针可运行误差
设置
指令:FE FE 0A 0E 06 00 15 00 01 00 03 17 D0
功能码:06 写操作
参数:00 01 00 03,设置舵机1的误差值为 3,设置范围(0-16)
返回:FE FE 08 0E 06 00 15 00 01 B6 1C
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 16 00 01 B6 20
功能码:03 读操作
参数:00 01 舵机1
返回:FE FE 08 0E 03 00 16 00 01 B6 20
标注:返回数据 00 01,表示当前值为 1
设置/读取舵机逆时针可运行误差
设置
指令:FE FE 0A 0E 06 00 17 00 01 00 03 D7 A9
功能码:06 写操作
参数:00 01 00 03,设置舵机的误差值为 3,设置范围(0-16)
返回:FE FE 08 0E 06 00 17 00 01 76 BD
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 18 00 01 75 41
功能码:03 读操作
参数:00 01 舵机1
返回:FE FE 08 0E 03 00 18 00 01 75 41
标注:返回数据 00 01,表示当前值为 1
设置/读取舵机最小启动力
设置
指令:FE FE 0A 0E 06 00 19 00 01 00 18 1D 80
功能码: 06 写操作
参数:00 01 00 18 设置舵机1的值为24
返回:FE FE 08 0E 06 00 19 00 01 B5 DC
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 1A 00 01 B5 E0
功能码:03 读操作
参数:00 01 舵机1
返回:FE FE 08 0E 03 00 1A 00 18 7F 21
标注:返回数据 00 18,表示当前值为 24
设置/读取舵机扭矩
设置
指令:FE FE 0A 0E 06 00 1B 00 01 00 64 3C F8
功能码: 06 写操作
参数:00 01 00 64 设置舵机1扭力为 100,参数范围(0-100)
返回:FE FE 08 0E 06 00 1B 00 01 75 7D
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 1C 00 01 B4 00
功能码:03 读操作
参数:00 01 舵机1
返回:FE FE 08 0E 03 00 1C 01 2C 39 C1
设置/读取舵机速度
设置
指令:FE FE 0A 0E 06 00 20 00 01 00 14 1D 1C
功能码: 06 写操作
参数:00 01 00 14 设置舵机1速度为 20,参数范围(1-100)
返回:FE FE 08 0E 06 00 20 00 01 B8 0C
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 21 00 01 78 91
功能码:03 读操作
参数:00 01 舵机1
返回:FE FE 08 0E 03 00 21 00 32 6D D1
标注:00 32 数据返回为 50
设置灵巧手手势
设置
指令:FE FE 08 0E 06 00 34 01 01 00 35 EC
功能码: 06 写操作
参数:01 01 设置手势(0-4),手势闭合程度(0-5)
返回:FE FE 08 0E 06 00 34 00 01 B8 0C
标注:成功返回 00 01,失败返回 00 00
设置/读取灵巧手角度
设置
指令:FE FE 12 0E 06 00 2D 00 00 00 00 00 00 00 00 00 00 00 00 00 14 23 FC
功能码: 06 写操作
参数:00 00 00 00 00 00 00 00 00 00 00 00 00 14 前面12个字节代表角度(0-100),最后两个字节代表速度 (0-100)
返回:FE FE 08 0E 06 00 2D 00 01 7B 9D
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 32 00 00 7D A1
功能码:03 读操作
参数:无
返回:FE FE 0C 0E 03 00 32 00 00 00 01 00 00 00 00 00 01 00 00 84 74
标注:00 00 00 01 00 00 00 00 00 01 00 00 数据返回为 [0, 1, 0, 0, 1, 0]