开源改变世界

Arduino 重置问题 #114

推推 grbl 3年前 (2023-01-21) 111次浏览

关闭
Arvacon 打开了这个问题 2012 年 8 月 10 日 · 8条评论
关闭

Arduino 重置问题#114

Arvacon 打开了这个问题 2012 年 8 月 10 日 · 8条评论

注释

Arduino 重置问题 #114

嗨,祝贺这个不错的项目。
我刚刚完成了一个基于这个主题的小型 cnc 激光雕刻机http://www.instructables.com/id/Pocket-laser-engraver/?ALLSTEPS
我已经购买了一个 arduino uno r3 和 2 个 easydrivers v4.4,一切似乎都正常使用 grbl v.8a。
我通过向终端添加一些值来手动将轴与 x0y0 对齐,然后我给出命令 G92 x0 y0 将它们的位置设置为原点。我运行了一个我在 inkscape 上用 G 代码发送器制作的文件,一切运行良好,但如果我想突然停止步进器移动,我需要按下 arduino 上的重置按钮,因为我不知道任何其他方式。

当我这样做时,步进器突然停止,但是当我发出命令 x0 y0 使轴返回原点时,没有任何反应,因为原点位置是它们停止后的当前位置。
然后你需要手动将轴重新对齐到零并再次运行 inkscape 文件,否则如果你尝试按原样运行它,你最终会在两个轴的末端进行锤击。

当我按下重置按钮时,是否有我可以使用的任何命令或任何方式让 grbl 保留这些设置?

Arduino 重置问题 #114
成员

在 Arduino 上按下重置将始终重置其位置。这就是它应该如何工作的,但是如果您小心的话,有很多方法可以解决这个问题。我们这样做的最大原因是位置会随着时间的推移通过热膨胀而改变,用户不小心将你的桌子撞出(非常轻微)对齐,或者用手慢跑步进器(grbl 不知道发生过这种情况)。几乎所有类似的 CNC 控制器都做类似的事情。

首先,从 v0.8a 开始,我们有运行时命令可以在软件中执行受控的馈电保持(暂停)和受控的重置/中止,而不是 Arduino 上的硬重置。这些保持位置和进给保持可以恢复以完成程序,因为 Grbl 控制减速并保证不会丢失位置。要使用它们,您需要使用可以发送这些命令字符的流式传输程序。或者您可以通过终端连接与他们一起玩。输入一些运动命令并点击“!” 用于进给保持。’~’ 用于恢复。’ctrl-x’ 将重置/中止。和 ‘?’ 会给你回复 Grbl 的立场。

其次,您可以使用归位功能(它需要一点更新,但应该可以)在硬重置时重新定位机器原点。您将需要在所有三个轴上都使用像样的可重复限位开关来准确定位原点。

希望这可以帮助。

Arduino 重置问题 #114
作者

您好,感谢您提供这些信息,帮助很大。
我在互联网上到处寻找这些命令,但我没有找到它们。您的页面上有任何地方可以解释所有终端命令,包括这些新命令吗?

你提到了这句话:
“其次,你可以使用归位功能(它需要一点更新,但应该工作)在你硬重置时重新定位机器原点。你需要在所有三个轴上使用像样的可重复限位开关来准确定位原点”

关于归位功能,我应该向终端发出哪些命令?
你能给我一个例子吗?

Arduino 重置问题 #114
成员

如果运行时命令未在 Wiki 中发布,我将确保它们
已发布。目前大多数其他选项和设置都在“config.h”
文件中,如果您想对它们进行任何更改,则必须重新编译这些选项和设置

归位功能由 g 代码 go-home 命令启动。(我认为
这些是 G28 和 G30,如果我没记错的话。)您可以查看
limits.c 函数以了解其工作原理。

我个人还没有使用这个功能,因为有很多方法
可以手动定位原点。在我的机器上,我只是用手慢跑到一个固定且一致的参考点,然后 通过在工具和表面之间滑动一张薄纸直到它 不能移动来
精确定位工具。我可以获得大约 <0.002″ 的可重复性,这对我来说已经足够了。

桑尼。

在 2012 年 8 月 10 日星期五下午 3:23,Arvacon notifications@github.com写道:

您好,感谢您提供这些信息,帮助很大。
我在互联网上到处寻找这些命令,但我没有
找到它们。您的页面上有任何地方可以
解释所有终端命令,包括这些新命令吗?

你提到了这句话:
“其次,你可以使用归位功能(它需要一点更新,但
应该工作)在你硬重置时重新定位机器原点。你需要
在所有三个轴上使用像样的可重复限位开关来准确定位
原点”

关于归位功能,我应该向终端发出哪些命令?
你能给我一个例子吗?


直接回复此电子邮件或在 GitHub 上查看它 https://github.com/ /issues/114 #issuecomment-7656908。

Arduino 重置问题 #114
作者

我输入了“ctrl-x”但没有任何反应,然后我也按下了键盘上的 ctrl 和 x 按钮但没有成功。
我还尝试了 G28 和 G30 命令,但它们也没有响应。
我究竟做错了什么?

Ps:暂停-恢复(!~)命令工作正常。

Arduino 重置问题 #114
成员

当您同时按下 Ctrl 和 X 按钮时,您应该会看到
Grbl 启动文本再次打印到屏幕上。如果这不起作用,
您的终端可能出于某种原因阻止了它。还要检查
Grbl 中止是否有效,请尝试使用 g0x1 之类的东西稍微移动 Grbl,然后
点击“?” 让 Grbl 报告它的位置。它应该告诉您 x 是 1
(以毫米为单位)。如果您按 Ctrl-x 和 ‘?’ 之后,Grbl 应该仍然告诉
你 x 是 1。当你进行硬重置时,这将是 0。

不确定为什么 G28/G20 不起作用。
您的 Arduino 是否连接了限位开关?归巢可能需要这个,但我不确定。就像我说的那样,此
功能仍在进行中。

在 2012 年 8 月 10 日星期五下午 3:48,Arvacon notifications@github.com写道:

我输入了“ctrl-x”但没有任何反应,然后我也
按下了键盘上的 ctrl 和 x 按钮但没有成功。
我还尝试了 G28 和 G30 命令,但它们也没有响应。
我究竟做错了什么?

Ps:暂停-恢复(!~)命令工作正常。


直接回复此电子邮件或在 GitHub 上查看它 https://github.com/ /issues/114 #issuecomment-7657432。

Arduino 重置问题 #114
作者

你好。您对终端机的看法是正确的。我正在使用 G 代码发送程序的终端,它似乎在这些命令中没有响应,所以我使用了 putty 和 arduinoTTY,它们似乎可以工作。
我不明白的是,当我手动将轴移动到 0,然后按 G92 x0 y0,然后 grbl 存储起始位置。当我下达 G28 或 G30 的订单时,什么也没有发生,或者至少我看不出有什么可以改变的。
如果我只键入 g28 或 g30,轴是否应该回到起始位置?我不明白的是,命令 G28 和 G30 是命令 x0y0 的替代品还是我理解错了?您是否需要在 G28 或 G30 命令后输入类似 G28 x0 的内容?如果是,那么他们的目的是什么,你可以只输入 x0 而没有 G28 ..困惑……

让我用一个例子来解释我的另一个问题是什么。

我打开了“g-code sender”程序,并将我用 inkscape 制作的 .nc 文件发送到 grbl。
我推开然后打印,grbl 开始正常处理该文件。
当我想取消它时,“g-code sender”不响应 ctrl-x,所以我有 2 个选择,一个是硬重置 arduino,另一个是用“!”暂停。. 如果我从 arduino 重置,grbl 会失去我们所知道的原位,但如果我尝试从暂停模式下推动 x0y0 或 g28 或 g30,什么也不会发生。
我从 putty 测试了 ctrl-x 命令,看起来像你描述的那样工作,但从那里我无法发送任何 .nc 文件,或者至少我不知道如何发送它。
那我最后做错了什么吗?

ps:我还没有在我的设置中使用任何硬件限位开关。

Arduino 重置问题 #114
成员

如果您没有任何限位开关,则没有理由使用 G28/30 返航功能。这是专门用于(对于我们在 Grbl 中的案例)定位真正的机器零。当您启动 Grbl 时,它会将所有内容归零并假定原点是启动位置。如果没有关于位置的一些直接反馈,Grbl 就无法确切知道它在哪里。我暂时不会使用它。

听起来 G 代码发件人是问题所在。还有一些其他的 grbl 流媒体程序也可以使用。我相信 Jens(另一位合作者)正在开发基于 Java 的软件。我相信 ShapeOko 成员正在使用另一个,但我不确定。最好查看他们的网站和论坛。

大多数情况下,这是理解 g 代码函数的作用的问题。我会下载 NIST rs274-ngc 解释器标准文档来阅读所有这些命令的工作原理。G 代码本身是一个旧标准,在不同的机器和硬件上可能略有不同。NIST 标准是我们努力严格遵循的标准。

Arduino 重置问题 #114
作者

非常感谢您的帮助!我不知道还有其他 gcode 发送程序。
我刚刚下载了它们,我会尽快测试它们。

干杯!
爱唯康

喜欢 (0)