几个月前,无聊做了一台全丝杆线轨的2D写字机。当时图省事,抬笔机构用了舵机,反正佛系不追求高速,所以将就了。
早期,在控制方面,因并不怎么去了解GRBL,我用树莓派GPIO来输出脉冲信号去控制几个轴的步进电机。硬件方面,树莓派中应用DMA技术使GPIO生成硬件脉冲精确控制各轴的运动,这些控制信号是实时的。由于DMA控制不经过CPU,所以它非常高效并且实时。缺点就是受硬件资源(内存)的限制,不能无限制的生产大量预先规划长距离的脉冲数据。尽管如此,作为桌面级玩具,足够用了。
写了不少上下层的代码,甚至把直线与圆弧的插补都写完了。机器是能正常运行的,基本写字、绘图功能都可以完成。有点瑕疵,就是运动距离偏短,加速度设置过大时,在切换连续路径的时候电机就会轻微抖动。仔细分析了下,由于我只是对单一路劲做了多轴的加速和减速联合控制,没有对连续路劲之间的过渡做处理,由于已经没精力和时间再完这个东西,就不再继续完善了。后面抽空研究了一下GRBL的路径规划,感叹这运动怎能如此优雅。
于是果断入了块Arduino板,刷了GRBL 1.1h版本固件,由于采用舵机抬笔,固件适配了舵机。固件获取方式见文末,舵机控制如下:
M3 S255 (turn servo full on) 抬笔
M5 (turn servo off)
M3 S125 (turn servo half way) 落笔
M3 S0 (turn servo on full off - similar to M5)
后面因为想使用高细分,要提升控制脉冲频率,于是买了块STM32最小系统板,刷了stm32版本的GRBL。 固件同样适配了舵机,基于 GRBL 1.1f 。 这个固件刷完后,需要设置对应舵机的频率,才能正常驱动舵机,控制舵机的抬笔和落笔跟上面一致。后面有空把这部分设置补充完整。
特别说明,以上所述固件,默认不是coreXY结构,如果机器是coreXY结构需要修改config后再刷入固件。
固件获取方法:
关注本站公众号(右侧二维码),在 个性化-联系客服 中输入: grbl 可获取文件下载链接。