5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 10041|回复: 103
打印 上一主题 下一主题

[原创]边干边写之——打造最小的运动控制及步进驱动电路(持续更新中)。。。

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-19 15:06 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 DreamonII 于 2012-11-19 20:02 编辑

花了小半个月,做了个马达驱动电路,和一个二轴运动控制电路。。。

马达驱动可以驱动两个直流电机正反转和无级调速(相当于一个双电调)或一个两相四线步进电机,

步进电机只支持单4拍,双4拍和8拍方式,电流只有1A。。。


运动控制可以完成直线和圆弧插补,
速度挺快的,
可惜为了适应不给力的驱动,
只好把速度降下来了。。。
实测用16细分驱动器能跑到单轴400RPM。


半夜拍的视频,光线不好,凑和看吧。。。




还差个步进驱动模块没焊,
只能看到X轴的情况。。。
循环跑这样的路线:

先跑一段X,再跑一段Y(X不转),再跑一段45度(X半速),然后跑了个整圆(X变速正反转)

欢迎继续阅读楼主其他信息

104
发表于 2013-2-25 17:12 ——“来自手机” | 只看该作者
虽然不懂,但是觉得楼主是高人要顶。
103
发表于 2013-2-7 19:35 | 只看该作者
stm32可以5轴联动100k脉冲,建议楼主,不要纠结在几元和十几元的成本.
102
 楼主| 发表于 2013-2-7 19:04 | 只看该作者
lgh_sy 发表于 2013-2-7 18:30
楼主该更新了,期待中.

是哦。。。
不说都忘了。。。
过年了,先玩几天
玩够了就干活。。。
101
发表于 2013-2-7 18:30 | 只看该作者
楼主该更新了,期待中.
100
 楼主| 发表于 2012-11-25 22:29 | 只看该作者
加了个语句索引,可以不用记录每个线段的速度了。。。
记录加速和减速的起点。。。

现在想办法把前向扫描过程放在低速区集中处理,
或在脉冲频率不高的位置处理。。。
前向扫描300个数据应该在几mS时间,
应该可以做到了。。。
继续折腾。。。
99
发表于 2012-11-25 15:41 | 只看该作者
3dbuild 发表于 2012-11-25 12:39
Arduino的程序要实现脱机SD卡打印,全部工作都要单片机来做,所以使用了32K Flash容量的Mega328,用查表法即 ...

我得程序里面定时器就是用这个办法实现速度变化的
98
发表于 2012-11-25 15:38 | 只看该作者
DreamonII 发表于 2012-11-24 00:03
其实再用一片STC做TFT,SD卡,UI,也是个不错的主意。。。
先把这个搞定再说了。。。

多轴插补我已经做了,但是感觉没有多大价值,就删掉了。
97
 楼主| 发表于 2012-11-25 15:34 | 只看该作者
3dbuild 发表于 2012-11-25 12:39
Arduino的程序要实现脱机SD卡打印,全部工作都要单片机来做,所以使用了32K Flash容量的Mega328,用查表法即 ...

嗯。。。
我的加速度表就是从您提供的Arduino网站偷的。。。

它的数据是反比例排列,
对应的加速度曲线是线性的。。。

加速度控制已经实现了,

不过我对前瞻算法还没吃透。。。
正在恶补中。。。

STC也有硬件乘法器,
4个时钟一次,挺快的(比AVR慢一倍)
不过主频比较高。。。
96
发表于 2012-11-25 15:15 | 只看该作者
记号一个,算法太难了!
95
发表于 2012-11-25 13:28 | 只看该作者
高人给普及普及原理
94
发表于 2012-11-25 12:39 | 只看该作者
Arduino的程序要实现脱机SD卡打印,全部工作都要单片机来做,所以使用了32K Flash容量的Mega328,用查表法即时处理加速减速,它是对速度进行控制。AVR有硬件乘法器,换成你现在的CPU,看起来这个算法不太合适,可以考虑改为对距离进行控制。D版维宏卡也是用51输出100K脉冲,性能应该足够。改为对距离进行控制后,PC机处理前瞻和G代码解释,解释完把预先处理好的数据传给单片机,单片机只负责输出脉冲。下面的图是在恒定加速度情况下,距离和时间的关系,是一个标准抛物线,等分成5段,每段使用匀速,在段和段之间变速,只要5段,就非常接近理论移动距离。单片机的定时器维持不变的最高脉冲速度,在定时器中断里对一个变量A做累减,减到0就输出一个脉冲,然后恢复A的初值,PC机只要预先计算好各段的A的初值,传给单片机就可以了,这样做可以消除单片机的乘法,减轻单片机负担,提高脉冲输出频率,同时解决了PC机操作系统无法稳定输出脉冲的问题

93
 楼主| 发表于 2012-11-25 00:10 | 只看该作者
我用的是STC12系列的CPU,
资料说这个小U有8位硬件乘除法,
4个时钟周期算完。。。
这个可以利用。。。
现在研究怎么样把长整数处理简化为8位算法。。。
92
 楼主| 发表于 2012-11-25 00:08 | 只看该作者
一天没进展。。。
恶补中。。。
加速度控制不容易。。。
前瞻算法要预判几百步。。。

小CPU压力山大。。。。
算法难产中。。。
91
发表于 2012-11-24 19:39 | 只看该作者
高手在民间,列害
90
 楼主| 发表于 2012-11-24 19:29 | 只看该作者
3dbuild 发表于 2012-11-24 19:19
那就用STC的吧,程序改改都差不多,51系列的我也有在用,只是端口驱动能力稍微差点,相对于AVR,51这种复 ...

嗯嗯。。。
继续折腾。。。
89
发表于 2012-11-24 19:25 | 只看该作者
88
发表于 2012-11-24 19:19 | 只看该作者
DreamonII 发表于 2012-11-23 23:24
太感谢了。。。
我原来一直用AVR做项目的,
直到10年那次AVR大断货。。。

那就用STC的吧,程序改改都差不多,51系列的我也有在用,只是端口驱动能力稍微差点,相对于AVR,51这种复杂指令集的CPU有个好处,就是编译后代码量稍微小一些,对低端的型号很有意义,以前在同一个项目里用51和AVR做过相同的功能对比过
87
发表于 2012-11-24 13:45 | 只看该作者
高手啊,不简单
86
发表于 2012-11-24 09:05 | 只看该作者
来给大牛顶顶
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /1 下一条

快速回复 返回顶部 返回列表