确保接线正确,这个带导轨的电机需要24V的电压
$ ls /dev //查看端口是什么
$ sudo slcand -o -s6 /dev/ttyACM0 can0 //将端口封装为can0
$ sudo ip link set can0 up //打开端口
按照电机说明书,按照需要的指令计算检验和:
$ python3 test.py //计算检验和
速度控制模式常用命令:
cansend can0 001#F6814002BA //加速度为2,速度为320反转,远离电机
cansend can0 001#F60140023A //加速度为2,速度为320正转,靠近电机
cansend can0 001#F7F8 //紧急停止,但是速度超过1000时,不建议使用该命令
cansend can0 001#F6000002F9 //让电机以加速度为2停止转动
cansend can0 001#F6000000F7 //让电机立即停止
位置控制模式常用指令:
按脉冲数相对运动
该位置控制模式下,可以控制电机以设定的加速度和速度,运行到指定的位置。
cansend can0 001#FD01400200FA003B //电机以acc=2,speed=0x140,正向转动20圈(16细分)
cansend can0 001#FD81400200FA00BB //电机以acc=2,speed=0x140,反向转动20圈(16细分)
cansend can0 001#FD00000400000002 //电机以减速度acc=4停止转动
cansend can0 001#FD000000000000FE //电机立即停止转动
按脉冲数绝对运动
该位置控制模式下,可以控制电机以设定的加速度和速度,根据脉冲数绝对运行到指定的位置。
cansend can0 001#FE0258020040009B //当前脉冲数为任意值时,电机以速度600(RPM),加速度2,绝对运行到0x4000。即电机运行完成后,当前脉冲数变为0x4000。
cansend can0 001#FE025802FFC00019 //当前坐标为任意值时,电机以速度600(RPM),加速度2,绝对运行到-0x4000。即电机运行完成后,当前脉冲数变为-0x4000。
cansend can0 001#FE00000400000003 //电机以减速度acc=4停止转动
cansend can0 001#FE000000000000FF //电机立即停止转动
按坐标值相对运动
注:坐标值即为累加制多圈编码器值。注意:该控制模式下,坐标值会有+15左右误差!建议以“64细分”运行,以减小误差。位置控制模式2,可以控制电机以设定的加速度和速度,根据坐标值相对运行到指定的位置。
比如,当前坐标为0x8000
cansend can0 001#F402580200400091 //电机以速度600(RPM),加速度2,相对运行0x4000。
cansend can0 001#F4025802FFC00091 //电机以速度600(RPM),加速度2,相对运行-0x4000。
cansend can0 001#F4000004000000F9 //电机以减速度acc=4停止转动
cansend can0 001#F4000000000000F5 //电机立即停止转动
按坐标值绝对运动
注:坐标值即为累加制多圈编码器值。注意:该控制模式下,坐标值会有+15左右误差!建议以“64细分”运行,以减小误差。
位置控制模式3,可以控制电机以设定的加速度和速度,根据坐标值绝对运行到指定的位置。
cansend can0 001#F502580200400092 //电机以速度600(RPM),加速度2,绝对运行到0x4000。
cansend can0 001#F5025802FFC00011 //电机以速度600(RPM),加速度2,绝对运行到-0x4000。
cansend can0 001#F5000004000000FA //电机以减速度acc=4停止转动
cansend can0 001#F5000000000000F6 //电机立即停止转动