当前位置 博文首页 > Dir测试_gjy_skyblue的博客:Makerbase oDrive第七课 Step
淘宝套装链接
B站视频链接
序号 | 品名 | 数量 |
---|---|---|
1 | ODRIVE主板 | 1 |
2 | CH340 USB TO TTL | 1 |
3 | MKS X2212电机 | 1 |
4 | 12V 2.0A电源适配器 | 1 |
5 | 杜邦线 | 3 |
6 | 编码器连接线 | 1 |
7 | 50W 2欧 耗散电阻 | 1 |
8 | micro USB 线 | 1 |
硬件清单如下图所示。
电机与ODrive主板接线参考之前课程,这次需要介绍的是Arduino UNO主板与ODrive主板的Step/Dir连接。
ODrive主板的GPIO1为Axis0 Step功能,GPIO2为Axis0 Dir功能;Arduino UNO主板在本次教程中作用为输出脉冲及Dir控制。3端口作为输出脉冲的端口;4端口为Dir控制端口,控制电机方向。如下表格所示。
功能 | ODrive主板 | Arduino UNO主板 |
---|---|---|
Step | GPIO1 | 3 |
Dir | GPIO2 | 4 |
两主板连线,一共连接3根线:
GPIO1----3,
GPIO2----4,
GND----GND。如下图所示。
用USB数据线将Arduino UNO主板与PC连接。
micro USB 线一端连接oDrive主板,另一端连接PC。
硬件连接如下图所示:
本次测试源代码可通过Q群(732557609)下载,如下图所示。
解压后源代码文件如下图所示。
需要启用Step/Dir功能,禁止UART功能。
通过脉冲频率与每圈步数控制电机转速,通过Dir高低电平控制电机转动方向。(默认步数为1024(turns_per_step=1/1024),即电机每接收到1024个脉冲转动一圈。)
本次测试分别通过改变脉冲频率与每圈步数来验证ODrive的Step/Dir功能。
打开命令终端,输入odrivetool
,如下图1所示。
启用Step/Dir功能,如下图2所示。
odrv0.axis0.config.enable_step_dir = True
禁用UART,如下图3所示。
odrv0.config.enable_uart = False
配置每圈步数。
odrv0.axis0.config.turns_per_step = 1/1024
保存配置,如下图4所示。
odrv0.save_configuration()
重启主板,如下图5所示。
odrv0.reboot()
固定每圈步数“turns_per_step”为1/1024,
通过改变脉冲频率来控制电机转速。
源代码在MKS_StepDir压缩包,解压即可,如下图所示。
完整程序如下图所示。
将引脚3定义为Step脉冲输出端口,
将引脚4定义为Dir控制端口,如下图1所示;
将引脚3、4配置为输出模式,如下图2所示。
将Dir引脚置高电平,Step引脚输出低频率脉冲(delay(5)),如图3所示。
控制电机慢速正转2圈。
将Dir引脚置低电平,Step引脚输出高频率脉冲(delay(0)),如图4所示。
控制电机快速反转10圈。
程序上传成功后,电机会慢速正转2圈,然后快速反转10圈,不断循环该动作。
固定脉冲频率,通过改变每圈步数来控制电机转速。
源代码在MKS_StepDir2压缩包,解压即可,如下图所示。
脉冲频率输出设为一致,如下图1,2所示。
上传程序。
程序上传成功后,电机会正转2圈,反转2圈,不断循环该动作。
上传程序。程序上传后下一步需要对ODrive GPIO配置进行修改。
将每圈步数改为512步,保存配置并重启,如下图1所示。
odrv0.axis0.config.turns_per_step = 1.0/512.0
odrv0.save_configuration()
odrv0.reboot()
观察电机转速,此时电机转速是步数为1024时的2倍。
将每圈步数改为32步,保存配置并重启,如下图2所示。
odrv0.axis0.config.turns_per_step = 1.0/32.0
odrv0.save_configuration()
odrv0.reboot()
观察电机转速,此时电机转速是步数为1024时的32倍。
至此,ODrive Step_Dir测试完成。
创客基地oDrive第七课 ODrive Step_Dir测试 到此结束。
对应的视频课程,可在Q群(732557609)下载,欢迎加入。
请继续关注后续课程。