|
本帖最后由 linccfzu 于 2020-7-15 23:36 编辑
大家晚上好,今天简单介绍一下步进电机的加减速控制。
做加减速控制主要为了是提高运行速度,提高精度防止步进电机失步等。
这个东西平时应用比较少,所以我研究的不多,所以这篇可能比较水,还请见谅。我知道高端的还要用到FPGA做的运动控制卡啥的,但是我也没有找到太好的资料。
常见的加减速控制算法有 梯形算法、spta加减速控制算法、sigmoid函数等,这个我就不多介绍了。
stm32实现代码,网上也有很多介绍,我也是在某宝上找了一份进行学习的。
接下来介绍一下我为控制六轴机械臂搭的硬件
我其实是在一块stm32打印机控制板上改的
这个3d打印机控制板的代码也是开源的,是基于Marlin开源固件的,想学习3d打印机知识的可以参考它的原理图及代码
开源地址:https://github.com/makerbase-mks/MKS-Robin-lite3
这个方案虽然能用,但是效果并不是很好,
首先,驱动模块我用的最便宜的A4988 + TB6560,功率不够。
其次,TB6560 驱动模块的细分不够,导致噪声比较大。
第三,体积太大,接线太多,每个步进电机都要有四根线,对于我这种强迫症来说太难受了。
然后我还做了一个电源盒,用苹果的电源适配器(台达版2.65a 65W)+可调降压电源模块,但感觉功率还是不够。
以上就是我做硬件踩的坑,还请大家以我为戒。
最后分享一下控制板的代码,这个代码也放了很久了,也没有去完善它。这是它的工程目录:
大家可以参考一下 ,步进电机加减速控制那一部分
bsp_sptamotor.c
实时生成步进电动机速度曲线
关于 spta加减速控制算法 可以参考
http://picprog.strongedge.net/step_prof/step-profile.html
上位机的话没有做,直接用串口工具发送控制指令,如下图
AT+WRITE=99,204,5,0,0,8000,00200:指令解释如下
AT+WRITE=99(设备地址),204,5(第六轴),0(正反转),0(匀速或加减速),8000(速度),00200(旋转角度)。
代码里面还包含 Matrix_lib.c
这是关于机械臂的正向运动以及逆运动求解的C语言实现,这个先不介绍,后面会继续总结分享。
今天就分享到这里了。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!
|