开源改变世界

使用旋转拨盘 (MPG) 点动 GRBL #243

推推 grbl 3年前 (2023-01-21) 197次浏览
关闭
samitray 开了这个issue 2013 年 6 月 15 日 · 41 条评论
关闭

使用旋转拨盘 (MPG) 点动 GRBL#243

samitray 开了这个issue 2013 年 6 月 15 日 · 41 条评论

注释

使用旋转拨盘 (MPG) 点动 GRBL #243

这不是问题,因此可能会张贴在错误的列表中。

有一个带有轴和速度选择器的 MPG 吊坠。
想将它与我在 Uno 上的设置 Rpi+UGS+GRBL 一起使用

我正在考虑添加另一个 uno 以从表盘、轴选择器读取脉冲,
并将命令发送到 grbl,类似于 UGS 中的键盘点动。
在同一通道上发送命令是一项挑战,因为 UGS 已经
连接到 GRBL – Uno 串行端口。
无法弄清楚如何对通信进行排序。
有人想出用表盘慢跑 grbl 吗?

使用旋转拨盘 (MPG) 点动 GRBL #243
成员

有一天我想为 UGS 添加 pendant 支持,可能作为一个单独的开源 pendant 项目,就像你想的那样在 arduino 上运行。

与 UGS 的简单集成可能可以通过一些智能键盘快捷键来完成。

不过,所有这些在我未开始的项目列表中都排得很低。如果有人有兴趣成为它的驱动力,我会很乐意伸出援手。

使用旋转拨盘 (MPG) 点动 GRBL #243
贡献者

你好@samitray感谢您发布问题…。正是出于这个原因,我创建了问题#231 。我正在寻找有关硬件项目的建议,这个在我想查看的项目列表中。

我目前在制造过程中有一个原型板,它能够满足您的需求。我需要一个悬垂控件,它可以直接与 GRBL 对话,而不是通过像 UGS 这样的额外层。

采用 UGS 方式非常简单,因为您只需要一个像键盘一样工作的 Arduino Leonardo,它会听挂件,然后将模拟的击键发送到 UGS。

使用旋转拨盘 (MPG) 点动 GRBL #243

你好,
其实我正在用定制硬件做一个类似的项目,这是一个完全独立于 PC 的独立控制器,它可以直接从 SD 读取 G 代码文件。它还可以通过 USB 连接在 GRBL 模式下工作。
这里有一些图片:
使用旋转拨盘 (MPG) 点动 GRBL #243

使用旋转拨盘 (MPG) 点动 GRBL #243
贡献者

@sacidu93看起来太棒了!!!你有一个网站有更多的细节吗?

(感谢分享您的电子邮件地址,Taallah Saci 先生…^^^^)

使用旋转拨盘 (MPG) 点动 GRBL #243

@samitray 您可以添加另一个 uno 以从 MPG 读取脉冲并向 grbl 发送命令,就像您提到的那样,只需将 TX 引脚从一个连接到 RX 中的一个,并且不要忘记添加 1k 欧姆电阻(下图)(很重要 !! )。您可以通过连接 5vcc 和 GND 引脚直接从第一个 uno 为第二个 uno 供电。
您必须确保一次只进行一次通信!!在我的项目中,我没有这个问题,因为我使用带有两个 UART 模块的微控制器,一个由 USB 芯片(PC 连接)使用,第二个用于与 GRBL 通信。
希望这对你有帮助!

使用旋转拨盘 (MPG) 点动 GRBL #243

使用旋转拨盘 (MPG) 点动 GRBL #243

@Protoneer 我还没有网站,因为项目还没有完成!如果你愿意,我可以再贴一些照片。

使用旋转拨盘 (MPG) 点动 GRBL #243
贡献者

@sacidu93无论如何张贴更多… :) 它看起来真的很不错。

使用旋转拨盘 (MPG) 点动 GRBL #243

这里有更多照片:

使用旋转拨盘 (MPG) 点动 GRBL #243
使用旋转拨盘 (MPG) 点动 GRBL #243
使用旋转拨盘 (MPG) 点动 GRBL #243

使用旋转拨盘 (MPG) 点动 GRBL #243
贡献者

@sacidu93做得好!!!菜单看起来很专业。你用的是什么微控制器?

你是如何实现慢跑的?(你发送的是小块的 g 代码吗?如果是这样,机器移动是否平稳?)

抱歉所有问题…继续努力。

使用旋转拨盘 (MPG) 点动 GRBL #243

我使用运行 GRBL 固件的 Atmega328P。对于慢跑,我不发送小动作,这不是很好,我的想法是在按下按钮时仅发送一次具有最大行程距离和慢跑进给率的 G1 命令,例如“G1X320F1400\n”。如果按钮被释放一个馈电命令“!” 发送后,重复获取带有“?”的状态报告 command until status 变为 “Queu” 此时发送重置命令 “ctrl+x” 到 flush buffer。这非常简单并且工作得很好。

使用旋转拨盘 (MPG) 点动 GRBL #243

我对主机软件使用相同的程序,效果很好!

使用旋转拨盘 (MPG) 点动 GRBL #243
贡献者

@sacidu93杰出的!!!您让机器在按下按钮时移动并在按下按钮时停止。

使用旋转拨盘 (MPG) 点动 GRBL #243

通过这种方式,我们不需要处理运动学(例如加速),它自然会遵循 grbl 内核设置的主要运动学。

使用旋转拨盘 (MPG) 点动 GRBL #243
贡献者

使用这种方式你真的不需要慢跑,因为你可以用软件模拟它。同时控制2轴怎么样?

使用旋转拨盘 (MPG) 点动 GRBL #243

程序是一样的,在发送命令之前我们需要知道实际的机器位置,并计算两个轴上的剩余距离,然后我们发送 G1 命令和短轴的剩余距离,如“G91G1X105Y105F1200”这样可以保证移动将在45°对角线。

使用旋转拨盘 (MPG) 点动 GRBL #243
作者

@sacidu93太棒了….. 按下按键时使用物理按钮慢跑并使用进给保持/cntrlX 停止,
无需脉冲计数…. 甜蜜。

使用旋转拨盘 (MPG) 点动 GRBL #243
成员

我一直在考虑为 grbl 采用一种简单的慢跑模式,它会做类似的事情,其中​​ grbl 会在内部进给保持和系统重置,而不需要 UI 手动控制。让我绊倒的一件事是移动需要多远才能让慢跑不停的问题。例如,如果用户命令从轴的一个极端点动到另一个极端点。这个移动距离需要多远才能使其不会中途停止或违反软限制(这可能是一个问题@sacidu93的方法)。

也许我们可以使用 v0.9 中新的最大行程设置来衡量适当的距离,因为一个轴的移动永远不会大于最大行程。grbl 会跟踪慢跑状态并自动截断任何超过软限制的移动。

另一个问题是如何控制移动哪个轴和进给率。我喜欢使用 gcode 解析器中可用的东西,而不是编写大量新代码来解析慢跑命令。有什么建议么?它需要尽可能少。

使用旋转拨盘 (MPG) 点动 GRBL #243
作者

$J[0|1|2][+|-] 如何开始慢跑,进给率将从默认寻道率中获取,行进距离可以是最大行程或最大行程/2 或新的可配置参数
$J 停止跑步

使用旋转拨盘 (MPG) 点动 GRBL #243
作者

或 $J[0|1|2] 选择点动轴和 A4 上的脉冲输入以及 A5 上的方向

使用旋转拨盘 (MPG) 点动 GRBL #243
贡献者

A4 和 A5 保留用于 I2C 通信。(如 D0 和 D1 用于 UART/串行通信)

使用旋转拨盘 (MPG) 点动 GRBL #243
成员

@samitray: 嗯,这可以工作。虽然它不完全是一种按钮类型的界面,但如果您依赖 UI 来处理它,它就会起作用。我还应该提到默认进给率将在 v0.9 中消失。这不应该存在。如果您没有为需要一个命令的命令明确发送“F”代码,系统应该会为您提供一个错误。

像 $J=300 这样的东西如何为 300 的进给率启用点动模式并发送键盘字符,如 4 和 6 用于 x- 和 x+,2 和 8 用于 y- 和 y+,以及 7/9 用于 z-/z+。“0”将简单地暂停慢跑,而 $J 命令将关闭慢跑模式。我们不一定需要使用数字字符,但我想可以使用更受保护的字符集,如 Ctrl 字符。

使用旋转拨盘 (MPG) 点动 GRBL #243

@chamnit:您可能想使用 9/3 表示 z-/z+,在我的小键盘上,这些数字也标有 PgUp/PgDn(通常处理“Z”)。除此之外,听起来不错…

使用旋转拨盘 (MPG) 点动 GRBL #243
作者

@chamnit $J 切换慢跑模式听起来很完美,任何容易“编码”的字符/数字都可以用于移动轴,因为它将由 UI 发送(主要是),我更喜欢键盘 4,6 上的数字 x+ – , 8,2 代表 y+- , 9,3 z+- 0 代表暂停,因为这对“手指”更友好。

我将继续关注此提交的边缘分支:-)

使用旋转拨盘 (MPG) 点动 GRBL #243
作者

我正在阅读#178和选项 2 关于每次点击都做小动作可能会复杂得多,
因为有这么多时间关键的事情正在进行,所以没有太多空间来计算点击次数,另一方面推动大动作慢跑暂停进给保持更简单、更紧凑,代码也更少,因为其中大部分已经存在。

使用旋转拨盘 (MPG) 点动 GRBL #243

@chamnit 从轴的一个极端到另一个极端,我没有任何问题,移动永远不会在中途停止,因为我发送 G1 命令和剩余距离以达到最大行程距离,这是使用 G91 在增量模式下执行的,独立于工作坐标。

@samitray 您可以发送 $j=p (其中 p=1..100 表示 G0 使用的搜索率的百分比值)这将解决点动进给率问题而无需发送 F 代码。当 p=0 GRBL 将退出点动模式!
发送键盘字符以简单地选择和开始点动听起来不错,但只有在点动一个轴和连续模式时,在固定距离模式下点动(例如 10、1、0.1..)怎么样?可能这需要定义另一个“$j”($jm=m 当 m 是慢跑模式时,0 表示连续,1 表示 10mm 步长,2 表示 1mm,3 表示 0.1mm …)。这一切可能会占用大量宝贵的闪存空间!!

使用旋转拨盘 (MPG) 点动 GRBL #243
成员

@sacidu93: 这是一种变通方法。我想你确实拥有所有可用的信息来做到这一点。

闪存空间绝对是一个问题,最需要用户反馈的是它是什么、它是如何工作的以及它在做什么。只要将反馈设计为最小值,就可以执行连续模式和增量模式。例如,我们在键盘上剩下三个可用于设置模式的数字。或者键盘的其余部分…

所以我一直在想,单一按键功能可以工作的唯一方法是创建一种特殊的慢跑模式,该模式需要与标准 gcode 块/命令和 carraige 返回完全不同的输入。在这种模式下,正常状态运行时命令字符有效,任何以’$’开头的命令,否则将处理并执行一键,不回车。与尝试解析大型命令和设置字符串相比,这样的操作开销非常低。

现在唯一的技巧是设置这些单个角色来做我们想要的一切,简单易懂和使用,并提供最少的反馈以了解您所处的模式或速率。我们始终必须牢记新用户和让他们轻松。

使用旋转拨盘 (MPG) 点动 GRBL #243
作者

@sacidu93 你对固定距离移动是正确的,我没有考虑到它。也许我们可以有一个方案
,其中 $J=300 切换点动模式,然后我们发送 +x40,这意味着在 X 轴正方向上固定移动 40mm,如果 +x 之后没有数字,则连续移动。当然,我们可以将 +x-x+yy 组合替换为每个组合的单个字符或其他巧妙的机制以节省一些闪存。
任何方式,即使固定距离点动不可用,用户也可以使用连续点动接近所需位置,然后使用非常小的进给率爬行到最终位置,不是最优雅的方法,而是标准点动界面在 grbl 级别肯定比让 UI 做一些聪明的技巧要好。

使用旋转拨盘 (MPG) 点动 GRBL #243
作者

@chamnit 如果 ?在 $J 模式下工作,从提要反馈的角度来看应该足够了,因为上面使用的其他方法依赖于?来显示位置。

使用旋转拨盘 (MPG) 点动 GRBL #243
成员

@samitray:我不想在“?”中添加任何内容 如果我不需要的话。如果您更改某些内容,我们也许可以做一些事情,Grbl 只报告您更改的内容。

@sacidu93:最大速度百分比/寻道率可能不适用于具有不同最大速度的机器。我们可能需要创建一个点动最大进给率或类似的东西,以在整个过程中创建一个统一的速率。如果设置超过特定轴的最大速度,则需要在某处编写代码来截断进给率。不确定哪个会更好。

另一个想法是使用 ‘+’ | ‘-‘ 和 ‘/’ | ‘*’ 字符来控制(百分比)进给率和点动模式,即连续、0.1 毫米/单击、0.01 毫米/单击等。任何时候您点击这些字符,Grbl 都可以反馈您所做的更改。

使用旋转拨盘 (MPG) 点动 GRBL #243
成员

行。在工作中观察 Haas CNC,我们可能可以模仿它们的功能。键为 4 = x-、6 = x+、1 = y-、9 = y+、2 = z- 和 8 = z+。数字键 3 和 7 为 A/B 旋转轴保留。数字键 5 是“jog lock”,这是我们一直在谈论的连续模式,禁用时停止。如果没有“点动锁定”,则点动以增量方式移动。增量模式以每次点击 0.0001″、0.001″、0.01″ 和 0.1″ 的预设增量移动。它们的进给率分别预设为每分钟 0.1、1.0、10 和 100 英寸。这些进给率可以通过进给率覆盖命令进行调整(Grbl 尚不支持)。

预设的增量和进给率有点问题,尤其是后者。它们取决于机器和设置。我们可以以某种方式将其设为 Grbl 设置,或作为编译时配置。

我现在想像“$J”只会启用慢跑模式。键盘数字将控制慢跑和慢跑模式。’/’ 和 ‘*’ 键可以在预设的增量和进给率之间循环,或者我们可以选择一组特定的键来单独设置它们。逃脱角色或回车会让你回到正常的 Grbl 模式。这个声音怎么样?

使用旋转拨盘 (MPG) 点动 GRBL #243
作者

@chamnit我不是说要对 ? 进行任何更改,目的是检查是否 ? 在执行慢跑时会以更新的位置响应(我相信?在归位期间不会更新 – 还没有使用归位)。

以上方案很好,可以完美运行。

但是,如果我们删除 / 和 * 选项,我们可以节省一些闪存空间,这将消除存储预设进给和增量值的需要,并减少解析 / 、* 和切换进给和增量代码。控制器/用户界面可以在开始时以 $J=100 发送进给率,并随着每个 +X 、-X 递增/连续,例如 4=25(x 正 25 毫米)或者如果没有增量值(仅 X=0)则以先前发送的进给速率连续移动并暂停连续 5

这也将使 UI 在设置自己的预设进给率和增量方面具有很大的灵活性,用户可以
根据自己的设置设置预设,而 grbl 不必担心。

预设动作让我想起了“石器时代”的电子产品和那些场景,当时我想知道为什么
1、10、100 拥有 55 和 96 会很棒,这又是我对预设的扭曲看法。

使用旋转拨盘 (MPG) 点动 GRBL #243
成员

@samitray: 正确的。“?” 在归位过程完成之前不会通过归位更新,并且它应该可以很好地与慢跑一起工作(“^X”应该如此,但是“!”和“〜”不会有任何影响)。

我不同意预设的闪存空间。如果您不必解析整个值(例如增量步长和进给率)而不是创建“switch”语句来查找单个字符,它实际上要小得多。问题是“$J=XXX”命令被设计为只接受“=”后的一个数字字符串,而我们有两个是并存的。如果减小步长,您也想减小相关的进给率。

我在想,在慢跑模式下,Grbl 在其中只会接受单字符命令。为了进一步简化,我也不允许“$”命令,只允许“?” 和’^X’。要退出慢跑模式,我可能只需要一个标准的“^X”重置。因此,与“1”-“9”按键相关的所有代码都在那里,添加“/”和“*”按键操作简单且开销低。

尽管正如您所说,预设是古老的和“石器时代”,但他们这样做是有原因的,而不是更可配置的,我认为这与存储和内存空间问题有关。但是,我仍然认为我们可以想出一个像样的解决方案来满足我们的需要。

使用旋转拨盘 (MPG) 点动 GRBL #243
作者

@chamnit 现在我明白了,我认为单字符模式简单紧凑。如果可以为 feed 和 increment 设置可配置的预设(运行时间如 $0,如果不是则编译时间),那么这将是两全其美的。但是有一个问题,用户将如何启动慢跑模式?5号

使用旋转拨盘 (MPG) 点动 GRBL #243
成员

@samitray: 进入慢跑模式只是从正常提示中输入“$J”。(我们可以使用 ‘$J=xxx’ 来实现临时用户调整的最大点动进给率)默认操作是增量模式。因此,每次键盘点击都会以最大增量(1.0 毫米、0.1 英寸或在 config.h 文件中定义)和最大点动进给率发送一个增量移动,这可以放在“$”Grbl 设置中。

每个 ‘/’ 都会将增量大小循环减半或十倍(也可在 config.h 中定义)至最小值 0.05mm 或 0.0001”。进给率将与增量大小精确缩放,这意味着如果max increment size and feedrates are 1mm and 1000mm/min, next decrement is 0.1mm (1/10th increment) and a feedrate of 100mm/min. and vice versa with ‘*’,这会将增量增加到最大值。

当您按下“5”步进锁定键时,这将启用连续模式,其中进给率由当前增量设置定义。它将继续沿该轴和方向移动,直到您按下另一个轴/方向键或释放点动锁定,这将使其恢复为增量模式。

我可能会使用“0”键来执行类似“jog-cancel”的操作,因此它会立即保持并清除计划程序缓冲区中放入计划程序队列的太多增量。此外,我还可以使用类似“Q”键的按键来彻底退出点动模式,并保留“^X”复位键用于可以调出警报模式的紧急中止。

使用旋转拨盘 (MPG) 点动 GRBL #243
作者

这看起来很坚固。

使用旋转拨盘 (MPG) 点动 GRBL #243

大家好你们好,

我对论坛完全陌生,对 GRBL 也比较陌生。我叫 Jörg(德语是乔治的意思),我住在德国(柏林和波恩)。

对于我的工厂,一台 Stepcraft 420(如果感兴趣,请参见https://www.stepcraft-systems.com/en/)我采用了 GRBL,否则我将被迫以大约 199 美元的价格购买软件升级,而不仅仅是切割 Teddy胶合板上的熊。让我说 GRBL 是一款很棒的软件——感谢您的所有工作!

除了添加机器参数(默认值)和修改引出线以适应我的电路板之外,我还实现了,当然,以与 samitray 类似的方式为机器归位和慢跑。

在我的控制器软件(它应该成为一个无头系统)中设置了机器的尺寸。作为点动命令软件,按下一个键后,发送 G53 G1 Fxxx Xmax-dimension 或 G53 G1 Fxxx Y0 去另一个方向。因此,在机器坐标(GRBL 非常支持)中工作时,无需知道铣床的当前位置。然后我实现了一个类似于进给保持的命令“jog-stop”,释放按钮时软件发送的内容,我现在使用“*”。机器减速并停止。除了 feed hold 队列被刷新,之后状态为空闲。

请让我知道,如果您对该解决方案感兴趣,我会发送代码或在此处发布。
上传 GRBL_SCCtrl.jpg 。 .  .

问候,

约尔格

使用旋转拨盘 (MPG) 点动 GRBL #243

What about using the adc input .. half voltage stop under half start moving negative.

喜欢 (0)