开源改变世界!!

使用旋转拨盘 (MPG) #243慢跑 GRBL

推推 grbl 2年前 (2022-10-30) 224次浏览 0个评论
关闭
samitray 打开了这个问题 on 15 Jun 2013 · 41 条评论
关闭

使用旋转拨盘 (MPG) 慢跑 GRBL#243

samitray 打开了这个问题 on 15 Jun 2013 · 41 条评论

注释

使用旋转拨盘 (MPG) #243慢跑 GRBL

这不是问题,因此可能发布在错误的列表中。

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

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

使用旋转拨盘 (MPG) #243慢跑 GRBL
成员

络筒机 评论 on 15 Jun 2013

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

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

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

使用旋转拨盘 (MPG) #243慢跑 GRBL
贡献者

Protoneer 评论 on 16 Jun 2013

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

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

采用 UGS 的方式非常简单,因为您所需要的只是一个 Arduino Leonardo,它就像一个键盘,它会聆听吊坠,然后将模拟的击键发送到 UGS。

使用旋转拨盘 (MPG) #243慢跑 GRBL

嗨,
实际上我正在使用自定义硬件进行类似的项目,这是一个完全独立于 PC 的独立控制器,它可以直接从 SD 读取 G-code 文件。它也可以通过 USB 连接在 GRBL 模式下工作。
这里有一些图片:
使用旋转拨盘 (MPG) #243慢跑 GRBL

使用旋转拨盘 (MPG) #243慢跑 GRBL
贡献者

Protoneer 评论 on 16 Jun 2013

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

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

使用旋转拨盘 (MPG) #243慢跑 GRBL

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

使用旋转拨盘 (MPG) #243慢跑 GRBL

使用旋转拨盘 (MPG) #243慢跑 GRBL

@Protoneer 我还没有网站,因为项目还没有完成!如果你愿意,我可以发布更多图片。

使用旋转拨盘 (MPG) #243慢跑 GRBL
贡献者

Protoneer 评论 on 16 Jun 2013

@sacidu93无论如何要发布更多… :) 它看起来非常好。

使用旋转拨盘 (MPG) #243慢跑 GRBL

这里还有一些照片:

使用旋转拨盘 (MPG) #243慢跑 GRBL
使用旋转拨盘 (MPG) #243慢跑 GRBL
使用旋转拨盘 (MPG) #243慢跑 GRBL

使用旋转拨盘 (MPG) #243慢跑 GRBL
贡献者

Protoneer 评论 on 16 Jun 2013

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

你是如何实现慢跑的?(你是在发送小块的 g 代码吗?如果是,机器移动是否顺畅?)

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

使用旋转拨盘 (MPG) #243慢跑 GRBL

我使用运行 GRBL 固件的 Atmega328P。对于点动,我不发送小动作这不是很好,想法是在按下按钮一次时发送具有最大行程和点动进给率的G1命令,例如“G1X320F1400\n”。如果按钮被释放,一个馈电命令“!” 发送后,用“?”重复获取状态报告 命令直到此时状态变为“队列”,重置命令“ctrl+x”被发送到刷新缓冲区。这很简单,效果很好。

使用旋转拨盘 (MPG) #243慢跑 GRBL

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

使用旋转拨盘 (MPG) #243慢跑 GRBL
贡献者

Protoneer 评论 on 16 Jun 2013

@sacidu93杰出的!!!你让机器在按钮向下移动并在按钮向上停止。

使用旋转拨盘 (MPG) #243慢跑 GRBL

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

使用旋转拨盘 (MPG) #243慢跑 GRBL
贡献者

Protoneer 评论 2013 年 6 月 16 日

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

使用旋转拨盘 (MPG) #243慢跑 GRBL

程序同理,发送指令前需要知道实际机床位置,然后计算两轴剩余距离,然后发送G1指令和短轴剩余距离如“G91G1X105Y105F1200”这样保证运动会在45°对角线。

使用旋转拨盘 (MPG) #243慢跑 GRBL
作者

萨米特雷 评论 on 16 Jun 2013

@sacidu93太棒了…..用按下按键上的物理按钮慢跑并通过进给保持/cntrlX停止
不需要脉冲计数……甜美。

使用旋转拨盘 (MPG) #243慢跑 GRBL

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

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

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

使用旋转拨盘 (MPG) #243慢跑 GRBL

$J[0|1|2][+|-] 开始慢跑怎么样,进给速率将从默认寻道速率拾取,并且移动距离可以是最大移动或最大移动 /2 或新的可配置参数
$J 停止跑步

使用旋转拨盘 (MPG) #243慢跑 GRBL

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

使用旋转拨盘 (MPG) #243慢跑 GRBL
贡献者

Protoneer 评论 2013 年 6 月 17 日

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

使用旋转拨盘 (MPG) #243慢跑 GRBL

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

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

使用旋转拨盘 (MPG) #243慢跑 GRBL

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

使用旋转拨盘 (MPG) #243慢跑 GRBL

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

我会继续关注这个提交的边缘分支:-)

使用旋转拨盘 (MPG) #243慢跑 GRBL

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

使用旋转拨盘 (MPG) #243慢跑 GRBL

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

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

使用旋转拨盘 (MPG) #243慢跑 GRBL

@sacidu93: 这可以作为一种解决方法。我想你确实有所有可用的信息来做这件事。

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

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

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

使用旋转拨盘 (MPG) #243慢跑 GRBL

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

使用旋转拨盘 (MPG) #243慢跑 GRBL

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

使用旋转拨盘 (MPG) #243慢跑 GRBL

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

@sacidu93:最大速度/搜索率的百分比可能不适用于具有不同最大速度的机器。我们可能需要创建一个点动最大进给率或沿着这些线创建一个统一的速率。尽管如果设置超过特定轴的最大速度,则需要在某处编写代码来截断进给率。不确定哪个会更好。

另一个想法是使用 ‘+’ | ‘-‘ 和 ‘/’ | ‘*’ 字符来控制(百分比)进给率和点动模式,即连续、0.1mm/click、0.01mm/click 等。任何时候你会点击这些字符,Grbl 可以反馈你已经更改的内容。

使用旋转拨盘 (MPG) #243慢跑 GRBL

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

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

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

使用旋转拨盘 (MPG) #243慢跑 GRBL

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

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

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

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

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

使用旋转拨盘 (MPG) #243慢跑 GRBL

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

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

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

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

使用旋转拨盘 (MPG) #243慢跑 GRBL

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

使用旋转拨盘 (MPG) #243慢跑 GRBL

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

每个 ‘/’ 将使增量大小循环减半或十倍(也可在 config.h 中定义)到最小 0.05mm 或 0.0001″。进给率将与增量大小精确缩放,这意味着如果最大增量尺寸和进给速度分别为 1mm 和 1000mm/min,下一个减量是 0.1mm(1/10 增量)和 100mm/min 的进给速度。反之,用“*”表示,将增量增加到最大值。

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

我可以使用’0’键来执行类似’jog-cancel’的操作,这样它会立即保持并清除计划器缓冲区中放入计划器队列的太多增量。另外,我也可以使用类似“Q”键的东西来干净地退出慢跑模式,并保留“^X”复位键用于紧急中止可以调出警报模式。

使用旋转拨盘 (MPG) #243慢跑 GRBL

这看起来很稳固。

使用旋转拨盘 (MPG) #243慢跑 GRBL

大家好你们好,

我对论坛完全陌生,对 GRBL 也比较陌生。我的名字是 Jörg(这是乔治的德语),我位于德国(柏林和波恩)。

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

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

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

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

问候,

约尔格

使用旋转拨盘 (MPG) #243慢跑 GRBL

使用adc输入怎么样..一半电压停止在一半开始向负移动。

超过一半的人开始积极移动……这样你就可以完全控制你移动的速度……所以模拟迷你操纵杆就可以了。

使用旋转拨盘 (MPG) #243慢跑 GRBL

@sacidu93您是否有网站或具体的图表/详细信息如何制作 CNC 吊坠?我给自己做了一台家用数控机床,但想在 grbl 控制器之外进行某种控制,当我看到你的挂件时,我立刻爱上了它!

使用旋转拨盘 (MPG) #243慢跑 GRBL

@sacidu93在这方面做得很好。看起来很神奇。

使用旋转拨盘 (MPG) #243慢跑 GRBL

大家好,

这一切都很棒,确实如此,但我刚刚开始,不知道每个人实际上指的是什么……我目前正在尝试将 nano 连接到我的 grbl,只是为了构建一个带有 lcd 读数的简单控制器位置。有人可以指出我正确的方向。我知道在你们中间,你可以闭着眼睛做这个,买我不知道。我会非常感谢你能给我的所有帮助。

使用旋转拨盘 (MPG) #243慢跑 GRBL

我目前正在构建和测试我自己的界面。我也需要一个 MPG 挂件,而且我知道如何在 arduino 环境中编程。Sacidu93 发布了他的照片,我真的很喜欢。但是在串行总线上并行连接多个设备时存在一个很大的问题。我真的很喜欢使用 grblControl 程序发送 g 代码,但即使在空闲时,串行总线也忙于不断更新位置的流量。所以我使用了不同的方法。我用 Mega2560 做吊坠。PC 连接到它。因此数据通过挂件并从兆的第二个串行端口(它有多个硬件串行端口)。我对结果感到惊讶。我运行了几个 g 代码没有错误!所以现在我做了一个程序,它读取 MPG 和串行打印到第二个端口(它停止与计算机的通信)。它发送
G0G91(轴)(值)
G90
?

这东西效果很好。我害怕数据会延迟或损坏。但它很奇怪:)
我真的希望新版本的 Grbl 能够支持 MPG;)

喜欢 (0)

您必须 登录 才能发表评论!