开源改变世界!!

使用 cprezzi 和 DWiskow 方法添加伺服电机支持 #811

推推 grbl 2年前 (2023-01-23) 108次浏览

对话

使用 cprezzi 和 DWiskow 方法添加伺服电机支持 #811

我合并所做的更改@DWiskow此存储库中使用 grbl 1.1h 版本。

DWiskow 在这篇文章中解释了他的工作,我在 1.1h 版本中复制了它。

现在您可以直接在 config.h 中启用 z 轴上的伺服,如@cprezzi方法。

谢谢你的工作。

使用 cprezzi 和 DWiskow 方法添加伺服电机支持 #811

您好,
我不知道这里是否适合进行本次讨论,如果不是这样,请随时告诉我。
这个 PR 对我来说效果很好,我认为伺服系统是一种足够常见的用法,可以集成。尽管当前方法(依靠预分频器使 PWM“足够接近”50hz 并使用 PWM 速率来设置信号长度)确实存在明显不足:精度受限于可用步长。对我来说,这是超过 270° 的 31 步,几乎是 10° 的一步。这使得无法使用 G4 命令对平滑的工具移动进行编程。

你知道如何解决这样的问题吗?我对 C 的了解非常有限,但可以肯定的是,它不能依赖标准的 PWM!我认为解决这个问题将使 grbl 控制器的这种包含更加通用。

谢谢,也感谢 grbl 的维护者!

使用 cprezzi 和 DWiskow 方法添加伺服电机支持 #811

硬件 PWM 方法是适合 atmega328 芯片极其有限空间的唯一选择。Grbl 已经使用了几乎所有可用空间。

使用 cprezzi 和 DWiskow 方法添加伺服电机支持 #811

感谢你的回答!这就是我害怕的。对于那些面临与我相同问题的人,替代方法是使用单独的板将 PWM 转换为伺服信号。然后您可以使用标准主轴代码来精确控制伺服。

你可以用简单的 555 制作这样的板,或者找一些制造它们的卖家(例如,参见这里

使用 cprezzi 和 DWiskow 方法添加伺服电机支持 #811

顺便一提。伺服选项不是为了给你一个伺服位置的精细控制,它是为笔式绘图仪制作的,你只需要向上或向下笔。精确定位是在硬件中完成的。

使用 cprezzi 和 DWiskow 方法添加伺服电机支持 #811
马泽那利曼 评论了 2022 年 2 月 9 日  

您好,我将此版本 1.1h 用于绘图仪,但我注意到在归位时伺服/主轴被禁用,给我带来了不必要的 pehavier。
我希望伺服/主轴在归位时保持不动,你能帮我改变代码吗?谢谢

编辑:
我通过使用此处的 3 个文件解决了这个问题,并在第 163 行之后更改了 limits.c 中的代码
#ifdef SPINDLE_IS_SERVO
pl_data->spindle_speed = gc_state.spindle_speed;
pl_data->condition = (PL_COND_FLAG_SYSTEM_MOTION|PL_COND_FLAG_NO_FEED_OVERRIDE|PL_COND_SPINDLE_MASK);
#else
memset(pl_data,0,sizeof(plan_line_data_t));
pl_data->condition = (PL_COND_FLAG_SYSTEM_MOTION|PL_COND_FLAG_NO_FEED_OVERRIDE);
#万一

免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
还没有
项目

还没有

发展

成功合并此拉取请求可能会关闭这些问题。

还没有

4人参加
使用 cprezzi 和 DWiskow 方法添加伺服电机支持 #811使用 cprezzi 和 DWiskow 方法添加伺服电机支持 #811使用 cprezzi 和 DWiskow 方法添加伺服电机支持 #811使用 cprezzi 和 DWiskow 方法添加伺服电机支持 #811

喜欢 (0)