赞
踩
操作方式 | 功能 | – | LED指示灯 | 串口输出指示 |
---|---|---|---|---|
连续短按2次 | 恢复出厂参数 | LED循环闪烁 | reboot | |
长按3s以上,直到指示灯亮 | 校准电机 | 校准中 | LED灯亮 | Cal… |
长按3s以上,直到指示灯亮 | 校准电机 | 校准完成 | LED灯灭 | Cal Done |
注1:串口出厂参数为:波特率38400,数据位8,无校验位,停止位1
注2:恢复出厂参数后,需断电重启,重新校准电机
状态 | LED指示灯 | 串口输出指示 |
---|---|---|
开机 | 点亮1s | mks Servo28c running…motoType=xx (xx=1.8 或 0.9) |
电机未校准 | 每间隔2秒,快闪2次 | Not Cal |
电机线序错误 | 每间隔2秒,快闪3次 | Phase Line Error |
电机类型错误 | 电机类型错误 | Motor Type Error |
磁铁安装错误 | 常亮 | Magnet Error |
编码器错误 | 常亮 | Encoder Error |
电源电压低 | 常亮 | Waiting Power |
偏置电压错误 | 常亮 | Offset Error |
校准数据错误1 | 常亮 | dx=0 Error |
校准数据错误2 | 常亮 | Reverse Error |
堵转保护 | 循环闪烁(亮1秒,灭1秒) | Protect Error |
读取状态的串口输出指示需要设置为ASCII才能显示对应状态,发送串口指令需要设置为HEX。
序号 | 品名 | 数量 |
---|---|---|
1 | MKS SERVO28C V1.0(包含电机) | 1 |
2 | PCBA连接线 | 1 |
3 | 串口助手模块/单片机 | 1 |
4 | DC 12V-24V电源 | 1 |
硬件清单如下图所示。
MKS SERVO28C 硬件接口介绍:
1.将MKS SERVO28C V1.0的串口接口RX、TX、GND,接到串口助手模块/单片机对应接口,连接关系如下表格所示:
序号 | MKS SERVO28C V1.0 | 串口助手模块/单片机 |
---|---|---|
1 | MKS SERVO42C V1.0(包含电机) | 1 |
2 | TX | RX |
3 | RX | TX |
4 | GND | GND |
5 | 3V3 | 不接 |
2.将MKS SERVO28C V1.0的V+和Gnd接入12V-24V供电。
3.串口通讯接线图如下图所示:
1.使用的串口通讯助手可以通过Q群:732557609下载,如下图所示。
2.串口助手如下图所示。
1.读取状态的串口发送和接收设置需要设置为ASCII才能显示。
2.串口指令的发送和接收设置都为Hex,命令字节不要加0x的前缀。
3.驱动板的串口通讯波特率需要通过串口指令进行设置。
发送e0 8a __ tCHK,设置串口波特率。
01 9600
02 19200
03 25000
04 38400
05 57600
06 115200
比如:
发送e0 8a 04 6e,设置波特率为38400。
…
设置成功,返回 e0 01 e1;
设置失败,返回 e0 00 e0。
4.驱动板的串口通讯地址需要通过串口指令进行设置,如下图所示。
发送e0 8b __ tCHK,设置串口地址。
00 对应e0
01对应e1
…
09对应e9
比如:
发送e0 8b 00 6b,设置串口地址为e0。
发送e0 8b 01 6c,设置串口地址为e1。
发送e0 8b 02 6d,设置串口地址为e2。
…
设置成功,返回 e0 01 e1;
设置失败,返回 e0 00 e0。
5.每一条命令不要少发、漏发某个参数。
6.返回的数据格式是高8位在前。
7.返回e0 01表示命令正确,返回e0 00表示错误命令。
1.发送e0 30 tCHK,读取编码器值。
返回e0, int16_t类型进位值,uint16_t类型当前编码器值和校验值rCHK。记录上电后(使能或不使能),编码器记录的电机转动范围。
低16位记录当前编码器值,范围为00x10000,表示0360°。
高16位记录编码器进位值,范围 -32767 ~ +32767。
进位规则:当编码器值大于0x10000,进位加1
当编码器值小于0,进位减1
例如:
编码器值为0xFFF0,当编码器值继续增加,越过0x10000时,进位值加1.
编码器值为0x00F0,当编码器值继续减小,越过0x0000时,进位值减1.
2.发送e0 31 tCHK,读取固件版本号。
返回e0,uint8_t类型的固件版本号和校验值rCHK。
0x11 对应固件版本 V1.1
0x12 对应固件版本 V1.2
…
3.发送e0 33 tCHK,读取输入累计脉冲数。
返回e0,int32_t类型的输入累计脉冲数和校验值rCHK,也就是你的控制器发送过来的累计脉冲数。
例如,16细分转动10mm,检测到返回E0 00 00 03 20 03,
收到脉冲800。
4.发送e0 36 tCHK,读取闭环电机的实时位置。
返回e0,int32_t类型的闭环电机实时位置和校验值rCHK,也就是电机自上电/使能起所转过的角度,单位:0~65535表示一圈,比如电机转一圈是65536,转了十圈就是655360,以此类推。
5.发送e0 39 tCHK,读取位置角度误差。
返回e0,int16_t类型的位置角度误差和校验值rCHK,也就是你想要控制的位置角度减去电机的实时角度位置得到的差值,单位:065535表示0360°,比如误差为1°时,数值为65536/360°= 182.444,以此类推。
6.发送e0 3a tCHK,读取闭环驱动板的使能状态。
返回e0,uint8_t类型的闭环驱动板的使能状态和校验值rCHK,也就是En引脚的使能状态。用串口控制时,可以通过该命令获取驱动板的使能状态。
使能 :返回e0 01 CHK;
没使能 :返回e0 02 CHK;
错误指令:返回e0 00 CHK。
7.发送e0 3e tCHK,读取堵转标志位。
返回e0,uint8_t的堵转标志和校验值rCHK,当电机发生堵转,会置位堵转标志,通过该命令可以获取到电机是否发生了堵转。如果使能了堵转保护选项,发生堵转后,驱动板会自动关闭驱动器。
堵转 :返回e0 01 rCHK;
没堵转 :返回e0 02 rCHK;
错误指令:返回e0 00 rCHK。
1.校准编码器
发送e0 80 00 tCHK校准编码器。
校准编码器前,请确保电机没带负载!!!建议校准好以后再装进机器。
比如:
发送e0 80 00 60,校准编码器。
校准成功,返回 e0 01 e1;
校准失败,返回 e0 02 e2。
2.设置电机类型
发送e0 81 __ tCHK,修改电机类型。
00对应0.9度电机
01对应1.8度电机
比如:
发送e0 81 01 62,修改电机类型为 1.8°。
设置成功,返回 e0 01 e1;
设置失败,返回 e0 00 e0。
设置电机类型后,需要重新校准编码器,校准前要断开电机负载。
3.设置工作模式
发送e0 82 __ tCHK,设置工作模式。
00 CR_OPEN (开环模式)
01 CR_vFOC (闭环模式(STP/DIR 接口))
02 CR_UART (闭环模式 (UART 接口))
比如:
发送e0 82 01 63,设置CR_vFOC模式。
设置成功,返回 e0 01 e1;
设置失败,返回 e0 00 e0。
注:发送串口指令前需要设置为串口模式e0 82 02
4.设置电流档位
发送e0 83 __ tCHK,设置电流档位。
00 对应 0ma
01 对应 200ma
02 对应 400ma
03 对应 600ma
04 对应 800ma
05 对应 1000ma
06 对应 1200ma
07 对应 1400ma
08 对应 1600ma
09 对应 1800ma
0A 对应 2000ma
比如:
发送e0 83 06 69,设置电流1200ma。
设置成功,返回 e0 01 e1;
设置失败,返回 e0 00 e0。
?设置成功,但28C没有开环模式,如何验证?
5.设置任意细分
发送e0 84 MS tCHK,设置1~256任意细分。
可以在MStep选项看到设置的细分。
比如:
发送e0 84 07 6B,修改为7细分;
发送e0 84 4e B2,修改为78细分;
发送e0 84 00 64,修改为256细分。
以此类推…
设置成功,返回 e0 01 e1;
设置失败,返回 e0 00 e0。
6.设置En 引脚有效电平
发送e0 85 __ tCHK,设置En 引脚有效电平。
00 对应低电平使能(L)
01 对应高电平使能(H)
02 对应一直使能(Hold)
比如:
发送e0 85 00 65,设置为低电平使能。
设置成功,返回 e0 01 e1;
设置失败,返回 e0 00 e0。
7.设置电机旋转正方向
发送e0 86 __ tCHK,设置电机旋转正方向。
00 对应顺时针旋转
01 对应逆时针旋转
比如:
发送e0 86 00 66,设置为顺时针旋转。
设置成功,返回 e0 01 e1;
设置失败,返回 e0 00 e0。
8.设置堵转保护功能
发送e0 88 __ tCHK,设置堵转保护功能。
00关闭堵转保护功能
01使能堵转保护功能
比如:
发送e0 88 00 68,设置关闭堵转保护功能。
设置成功,返回 e0 01 e1;
设置失败,返回 e0 00 e0。
9.设置细分插补功能
发送e0 89 __ tCHK,设置堵转保护功能。
00关闭内部的 256 细分插补功能
01使能内部的 256 细分插补功能
比如:
发送e0 89 00 69,设置关闭细分插补功能。
设置成功,返回 e0 01 e1;
设置失败,返回 e0 00 e0。
10.设置串口波特率
发送e0 8a __ tCHK,设置串口波特率。
01 9600
02 19200
03 25000
04 38400
05 57600
06 115200
比如:
发送e0 8a 04 6e,设置波特率为38400。
设置成功,返回 e0 01 e1;
设置失败,返回 e0 00 e0。
11.设置串口地址
发送e0 8b __ tCHK,设置串口地址。
00 对应e0
01对应e1
…
09对应e9
比如:
发送e0 8b 00 6b,设置串口地址为e0。
发送e0 8b 01 6c,设置串口地址为e1。
发送e0 8b 02 6d,设置串口地址为e2。
…
设置成功,返回 e0 01 e1;
设置失败,返回 e0 00 e0。
1.设置自动回零的模式
发送e0 90 __ tCHK,设置自动回零的模式。
00 关闭自动回零Disable
01方向模式DirMode
02就近模式NearMode
比如:
发送e0 90 01 71,设置为DirMode模式
设置成功,返回 e0 01 e0;
设置失败,返回 e0 00 e1;
2.设置自动回零的零点
发送e0 91 00 tCHK,设置自动回零的零点。
比如:
发送e0 91 00 71,设置零点
设置成功,返回 e0 01 e0;
设置失败,返回 e0 00 e1。
注:需要先设置“0_Mode” 的模式。
3.设置自动回零的速度
发送e0 92 __ tCHK,设置自动回零的速度(范围0~4,数值越小速度越快)。
比如:
发送e0 92 02 74,设置自动回零速度为2。
设置成功,返回 e0 01 e0;
设置失败,返回 e0 00 e1。
4.设置自动回零的方向
发送e0 93 __ tCHK,设置自动回零的模式。
00 对应顺时针方向CW
01 对应逆时针方向CCW
比如:
发送e0 93 00 73,设置自动回零方向为顺时针方向。
设置成功,返回 e0 01 e0;
设置失败,返回 e0 00 e1。
注:对于就近模式回零模式NearMode,0_Dir的设置应该和电机实际运行方向一致,否则会回零失败。
5.返回零点
发送e0 94 00 tCHK,返回零点。
比如:
发送e0 94 00 74,返回零点
返回成功,返回 e0 01 e1;
返回失败,返回 e0 00 e0。
注意:需要先设置 “0_Mode” 和 “Set 0”。
5.4 设置PID/加速度/扭矩参数命令
1.设置位置Kp参数
发送e0 a1 __ __ tCHK,设置位置Kp参数。(Kp默认值为 0x650)
比如:
发送e0 a1 01 20 a2,设置Kp = 0x120;
设置成功,返回 e0 01 e1;
设置失败,返回 e0 00 e0。
2.设置位置Ki参数
发送e0 a2 __ __ tCHK,设置位置Ki参数。(Ki默认值为 1)
比如:
发送e0 a2 00 02 84,设置Ki = 2;
设置成功,返回 e0 01 e1;
设置失败,返回 e0 00 e0。
3.设置位置Kd参数
发送e0 a3 __ __ tCHK,设置位置Kd参数。(Kd默认值为 0x650)
比如:
发送e0 a3 02 50 d5,设置Kd = 0x250;
设置成功,返回 e0 01 e1;
设置失败,返回 e0 00 e0。
注意:PID参数设置不当,电机可能震动,请谨慎设置参数!!!
4.设置加速度ACC参数
可以任意设置数值。
发送e0 a4 __ __ tCHK,设置ACC参数。(ACC默认值为 0x11E)
比如:
发送e0 a4 00 80 04,设置ACC = 0x80;
设置成功,返回 e0 01 e1;
设置失败,返回 e0 00 e0;
注意: ACC设置过大,可能损坏驱动板,请谨慎设置参数!!!
5.设置最大扭矩MaxT参数
发送e0 a5 __ __ tCHK,设置最大扭矩MaxT。(MaxT默认值为 0x4B0)
MaxT取值范围(0 ~ 0x4B0)
比如:
发送e0 a5 02 58 df,设置MaxT = 0x258;
设置成功,返回 e0 01 e1;
设置失败,返回 e0 00 e0。
1.发送e0 3f tCHK,恢复默认参数。
比如:
发送e0 3f 1f,恢复默认参数;
恢复成功,返回 e0 01 e1;
恢复失败,返回 e0 00 e0。
注意:恢复默认参数后,需要重新上电,重新设置串口波特率,才能串口通信。
1.发送e0 f3 0_ tCHK修改串口控制模式下驱动板的使能状态。
在串口控制模式下,驱动板的使能状态不再受En引脚的电平控制,而是利用该命令进行控制。
发送e0 f3 00 tCHK,关闭驱动板;
发送e0 f3 01 tCHK,使能驱动板;
修改成功,返回 0xe0 0x01 rCHK;
修改失败,返回 0xe0 0x00 rCHK;
注:使用该指令前需先设置为串口模式。
2.发送e0 f6 __ tCHK,让电机以一定的速度进行正/反转。
__字节的最高位表示方向,低7位表示128个速度档位,
转速计算公式为:
Vrpm = (speed × 3000)/(Mstep × 200) 1.8度电机
Vrpm = (speed × 3000)/(Mstep × 400) 0.9度电机
例如 1.8度电机,150细分,speed=1
Vrpm = (1 × 3000)/(150 × 200) = 1
部分转速如下表:
比如:
发送e0 f6 01 tCHK,电机以1档速度正转;
发送e0 f6 81 tCHK,电机以1档速度反转;
发送e0 f6 5a tCHK,电机以90(0x5a)档速度正转;
发送e0 f6 da tCHK,电机以90(0xda = 0x5a | 0x80)档速度反转;
运行成功,返回 0xe0 0x01 rCHK;
运行失败,返回 0xe0 0x00 rCHK;
3.发送e0 f7 tCHK,让电机停止正/反转。
成功,返回 0xe0 0x01 rCHK;
失败,返回 0xe0 0x00 rCHK;
4.发送e0 ff c_ tCHK保存/清除保存上面(2)中所设置的正/反转速度。
发送e0 ff c8 tCHK,保存上面(2)中所设置的正/反转速度;
发送e0 ff ca tCHK,清除已保存的正/反转速度;
注1:可以让电机每次上电都直接按照保存的速度和方向一直转动。
也就是说,如果你想要电机一上电就以一定的速度正/反转,你可以先按照(2)中的命令设置好想要的速度和方向,接着利用该命令进行保存,然后重新上电后电机就会按照保存的速度和方向转动了。
注2:保存成功后,会关闭驱动板,需重新使能驱动板。
成功,返回 0xe0 0x01 rCHK;
失败,返回 0xe0 0x00 rCHK;
注3:
1、保存会让电机停止转动,需要重新上电电机才会转动;
2、在重新上电后才能使用清除指令;
3、清除已保存的正反转速度会使电机使能。
5.发送e0 fd __ __ __ __ __ tCHK,串口直接位置控制。
第一个__字节,最高位表示方向,低7位表示速度。
第二个__字节、第三个__字节、第四个__字节、第五个__字节组成uint32_t类型的数据,表示你要发送的脉冲数。
转速计算公式同上面(2)。
比如:
在16细分下,发送e0 fd 01 00 00 0c 80 6a,表示电机以1档速度正转360°。
(01表示1档速度正转,00 00 0c 80表示3200(0x0c80)个脉冲 = 360°)
又比如:
在16细分下,发送e0 fd 88 00 00 00 10 75,表示电机以8档速度反转1.8°
(88表示8档速度反转,00 00 00 10表示16(0x10)个脉冲 = 1.8°)
在16细分下,发送e0 fd 88 01 e8 48 00 96,表示电机以8档速度反转3600000°。
(88表示8档速度反转,01 e8 48 00表示32000000(0x1e84800)个脉冲 = 3600000°)
成功,返回 0xe0 0x01 rCHK;
失败,返回 0xe0 0x00 rCHK;
1.打开串口助手,
选择串口端口;
设置波特率为38400;
接收设置,选择Hex,勾选自动换行;
发送设置,选择Hex,勾选自动发送附加为,选择校准算法为CHECKSUM-8。
如下图所示:
2.在SERVO28C中配置为串口模式,发送串口指令e0 82 02
设置成功,返回 e0 01 e1;
设置失败,返回 e0 00 e0。
3.配置通讯波特率,发送e0 8a 04 6e,设置波特率为38400(28C默认通讯波特率为38400)。
设置成功,返回 e0 01 e1;
设置失败,返回 e0 00 e0。
发送e0 36(附加校准位后e0 36 16),读取闭环电机的实时位置。
返回数据为E0 FF FF FF F8 D5
发送e0 f6 10(附加校准位后e0 f6 10 e6),电机以16档速度正转;
发送e0 f6 90(附加校准位后e0 f6 90 66),电机以16档速度反转;
至此,Makerbase SERVO28C 使用说明 完成。
创客基地 Makerbase SERVO28C 使用说明到此结束。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。