wskhsm 发表于 2024-3-18 14:18:48

将GRBL移植到STC32G上,做了个写字机

https://www.bilibili.com/video/BV1mD421j7SE/   
       偶然看到了有人分享用旧光驱做激光雕刻机,突然想起我刚好有两个旧光驱,于是便想着做一个写字机玩玩。研究了下代码,发现原理很简单,上位机将位图数据处理好之后把点的信息通过串口发送到下位机去输出,简单搭建一下电路,驱动起来发现,步进电机声音真是巨大啊,速度嘛,因为是一个点一个点地处理,那酸爽......于是找一下步进电机驱动芯片的资料,发现杭州中科微ATD5984廷不错的,最大支持32细分,支持调节驱动电流,价格才2RMB,就它了,画板薅嘉立创羊毛。

      等板刷视频看别人做雕刻机的时侯,发现了GRBL这个玩意,搜了一下发现这是个国外开源的用C语言编写的针对Arduino/AVR328芯片的嵌入式G代码编译和运动控制器,还是多轴联动的,那动作真是丝滑,有人把GRBL移植到STM32上,既然是用C写的于是我想有没有人移植到51上,本着拿来主义的精神,有现成的绝对不自己动手,一搜还真有,全网唯一一个,用STC15做的,但是嘛,120元我实在交不起。既然拿不来了,那就只好自已动手了。
   想像的时侯是挺美好的,真正去实施的时侯都是一阵头大,AVR328这个鬼玩意跟51完全不一样,寄存器和操作方式都不同,跟STM32倒是有点像,没办法,只能硬着头皮从头开啃,网上找了一些资料,介绍GRBL的框架原理和各大模块信息的,当然都不会很仔细,都是藏着掖着的,不过这样已经很好了,不至于一头雾水,换了是我,我估计还懶得说。其实要改的地方也不多,一个是串口,GRBL的串口采用环形队列,我发现我又坐井观天了,竟然还能这么用。Arduino跟STM32的串口都有一个串口空闲中断,大概意思就是超过一段时间没东西发就进中断,GRBL的发送就是在这处理的,这个东西好啊,可惜咱51的没有/STC32G8K64有串口超时中断,强列建议STC安排上,不过没关系,谁让STC32的定时器多呢(AVR328只有三个定时器),直接用一个定时器4中断来发送就行了,115200波特率下串口发一桢数据大概80几us,保险起见我定时器4中断设为100us,有东西发就开定时器4,发完了就关,简单高效,我测试发送接收半个小时,数据稳得很。搞定了数据的发送接收,接下来就是运动控制了,GRBL的运动控制是通过AVR328的两个定时器来实现,定时器1控制脉冲周期,加减速和加减速度就是在这里实现的,GRBL的运动丝滑就是因为能控制加速度,定时器0是用来产生一个窄脉宽,大概是20us,给步进电机驱动提供一个驱动信号,知道是一回事,真正要改又是通苦修AVR328的寄存器,具体过程懒得说了,直接上代码吧,有兴趣的研究一下。目前我只移植到通过软件能控制写字的程度,用来激光雕刻也是可以,我没有激光头,用了个舵机控制抬笔,EEROM没移植,因为AVR328的EEROM是个真EEROM/STC用比较器掉电保存平常放RAM中操作也行,可以操作读写一个字节,要找GRBL保存的参数又是一阵头大,人到中年还要找工作,没那么多时间可以挥霍了,限位功能没处理,这部分不难,都是通过IO口中断来处理。板是用立创画的,可以直接发嘉立创薅羊毛。上位机可以用微雕管家,奎享雕刻,GrblController之类的,视频里的是微雕管家,软件功能丰富,但是容易死,不知道是不是我电脑的问题。

神农鼎 发表于 2024-3-19 08:48:03








神农鼎 发表于 2024-3-19 08:50:14








神农鼎 发表于 2024-3-19 08:52:44






神农鼎 发表于 2024-3-19 08:54:16








神农鼎 发表于 2024-3-19 08:56:46







深圳国芯人工智能有限公司-产品_STC32系列 (stcai.com)   最新STC32位8051数据手册


社区闲人 发表于 2024-3-19 09:29:57

给楼主点赞!

社区闲人 发表于 2024-3-19 15:09:32

我在论坛分享的代码就是为GRBL准备的。

重磅开源:具有均衡磨损算法的FLASH模拟EEPROM函数,彻底抛弃24c02/04/08
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=6019
(出处: 国芯论坛-STC全球32位8051爱好者互助交流社区)

wskhsm 发表于 2024-3-19 15:28:23

神农鼎 发表于 2024-3-19 08:48


我的错,没仔细研究手册

神农鼎 发表于 2024-3-19 15:38:02

楼主 威武{:5_300:}
页: [1] 2 3
查看完整版本: 将GRBL移植到STC32G上,做了个写字机