开源改变世界

2 菜鸟问题:轴减速不同于加速度 – 运行自定义 G 代码? #392

推推 grbl 2年前 (2023-01-30) 142次浏览
关闭
iacopo 打开了这个问题 2020 年 5 月 4 日 · 7条评论
关闭

2 菜鸟问题:轴减速不同于加速度 – 运行自定义 G 代码?#392

iacopo 打开了这个问题 2020 年 5 月 4 日 · 7条评论

注释

2 菜鸟问题:轴减速不同于加速度 - 运行自定义 G 代码? #392

你好,
我在很多方面都是一个完全的菜鸟,这是我在 esp32 上的第一个项目,我第一次使用步进电机并且清单还在继续,所以如果我问的是愚蠢的事情,请原谅我。到目前为止,谷歌搜索没有帮助。

把事情放在上下文中:我有一家视频制作公司,我的目标是制作一套多功能的类似机器人的工具用于视频制作,这个视频的前几秒应该让你有一个大概的想法https://www .youtube.com/watch?v=kzEU3wBVPXs

我的问题如下:
我已经设置了一个自定义 machine.h 文件,我可以毫无问题地运行一些步进电机。我正在手动构建 gcode 文件,即使在 gcode 程序期间,我也可以通过在两行之间输入 120 美元的值来改变加速率,这太棒了,但是有没有办法实现不同的减速率?
基本上我希望能够将轴设置为 120 美元的值并以 $xyz 值减速,目前是否可行,或者是否需要大量自定义编码?如果是这样,你能指出我正确的方向吗?我从这个项目中学到了很多东西,而且我不惧怕它的挑战

第二个问题:是否可以创建自定义 G 代码命令,然后告诉 grbl 将该命令传递给某个自定义函数,我将在 custo_code_template.cpp 之后的自定义代码部分中定义
我的目标是能够控制 RGB 灯(数组5050 个 LED)开或关,改变颜色,改变强度值等……我之前为这种灯制作了 arduino 控制器,但我迷路了,因为我不知道如何进入 G 代码端东西的。

我希望这是提出此类问题的正确地点 :)

谢谢!

2 菜鸟问题:轴减速不同于加速度 - 运行自定义 G 代码? #392
所有者

您无法通过 gcode 即时控制加速度。只要机器闲置,您就可以更改 $120 的设置。

Grbl_ESP32 仅支持标准 gcode。你可以自己破解,但我们不想要非标准的 gcode。LinuxCNC项目是标准 gcode 的良好来源。我们对支持 RepRap gcode 不感兴趣。

2 菜鸟问题:轴减速不同于加速度 - 运行自定义 G 代码? #392
作者

感谢您的回复,我明白了避免非标准 gcode 的意义,我已经查看了 linuxCNC 项目,我看到了一组用户定义的 M 代码:M100-M199,一个程序如何执行一个函数什么时候输入这样的命令?
例如,如果有人添加自定义工具,我想这在 CNC 机器上会很常见。

2 菜鸟问题:轴减速不同于加速度 - 运行自定义 G 代码? #392
所有者

您必须将它们添加到固件中。在 CNC 机器上添加灯阵列并不常见。

Grbl_ESP32 有一些分支到用户控制的命令。例如换刀。Grbl_ESP32 不知道如何控制您的工具更换器,但如果用户提供了执行此操作的功能,Grbl_ESP32 将选择性地将工具更换信息传递给您的功能并等待该功能完成。

我想这可以用 M100-M199 来完成。话虽如此,对于非常熟悉 Grbl 的人来说,这可能是一个 5-6 小时的项目。需要添加新的模态组等。

我可以将其添加到路线图中,但我认为任何主要开发人员都不会将其视为优先事项。

2 菜鸟问题:轴减速不同于加速度 - 运行自定义 G 代码? #392
作者
亚科波 评论了 2020 年 5 月 5 日 通过电子邮件
2 菜鸟问题:轴减速不同于加速度 - 运行自定义 G 代码? #392

@iacopo你可能想看看马林固件。它有一些你要问的事情:

  1. 您可以即时更改加速度值(仅影响未来的移动),但根据设计,相同的值用于加速度和减速度https://marlinfw.org/docs/gcode/M201.html
    但是,如果您拆分一个单一的动作变成一系列小动作,每个动作都以不同的速度进行,您可以创建给定加速度(或减速度)的错觉,因为运动规划不需要在动作之间停止。
  2. 您可以使用 g 代码将值设置为输出引脚https://marlinfw.org/docs/gcode/M042.html
  3. 您也可以通过 g 代码控制 RGB 灯(WS8212 灯带)https://marlinfw.org/docs/gcode/M150.html

但是,从它的声音来看,自定义代码可能是您所需要的,因此您拥有您想要的所有灵活性,一些与外部世界同步的输入,然后是仅以正确的时间为一个或多个步进器提供脉冲的代码。

2 菜鸟问题:轴减速不同于加速度 - 运行自定义 G 代码? #392
作者
亚科波 评论了 2020 年 5 月 5 日  

@misan非常感谢您的回复,看来您用 Marlin 固件为我指明了正确的方向。
我会尝试根据我的需要定制 Marlin。
我放弃了从头开始自定义编码,因为我发现 grbl 驱动步进电机的方式比为 arduino 找到的传统步进电机库更顺畅。

顺便说一句,在 gcode 中添加一个 $120= 行与 grbl 一起工作,所以我设法动态更改加速参数,模拟与 M201 命令类似的效果:)

2 菜鸟问题:轴减速不同于加速度 - 运行自定义 G 代码? #392

@iacopo 如果你想使用 32 位处理器,比如 ESP-32,那么我的 grbl 移植/重写可以选择使用插件代码来扩展支持的 M 代码范围——这里有一个模板,可以作为起点观点。解析、模态组处理和同步(如果需要)在核心中处理,因此所需的代码可以非常简单。

另请注意,使用 $-commands 更改设置将触发设置区域的闪存擦除/重写。我的端口缓冲设置区域,默认情况下延迟写入,直到 grbl 处于空闲状态,这可能有助于减少闪存磨损。添加 M 代码以切换写入闪存的开/关也很容易实现,因为写入调用是通过函数指针传递的。