注释
有一天,我想为 UGS 添加挂件支持,可能是作为一个单独的开源挂件项目,就像你想的那样在 arduino 上运行。 与 UGS 的简单集成可能可以通过一些智能键盘快捷键来完成。 不过,所有这些在我的未启动项目列表中都很低。如果有人有兴趣成为它的驱动力,我很乐意伸出援手。 |
哇@sacidu93看起来太棒了!你有一个更详细的网站吗? (感谢 Taallah Saci 先生分享您的电子邮件地址…^^^^) |
@samitray 您可以添加另一个 uno 来从 MPG 读取脉冲并向 grbl 发送命令,就像您提到的那样,您只需将 TX 引脚从一个连接到 RX 一个,并且不要忘记添加 1k 欧姆电阻(下图)(很重要 !! )。您可以通过连接 5vcc 和 GND 引脚直接从第一个 uno 上电。 |
@Protoneer 我还没有网站,因为项目还没有完成!如果你愿意,我可以发布更多图片。 |
@sacidu93无论如何要发布更多… 它看起来非常好。 |
@sacidu93做得好!!!菜单看起来很专业。你用的是什么类型的微控制器? 你是如何实现慢跑的?(你是在发送小块的 g 代码吗?如果是,机器移动是否顺畅?) 抱歉所有问题……继续努力。 |
我使用运行 GRBL 固件的 Atmega328P。对于点动,我不发送小动作这不是很好,想法是在按下按钮一次时发送具有最大行程和点动进给率的G1命令,例如“G1X320F1400\n”。如果按钮被释放,一个馈电命令“!” 发送后,用“?”重复获取状态报告 命令直到此时状态变为“队列”,重置命令“ctrl+x”被发送到刷新缓冲区。这很简单,效果很好。 |
我对主机软件使用相同的程序,效果很好! |
@sacidu93杰出的!!!你让机器在按钮向下移动并在按钮向上停止。 |
通过这种方式,我们不需要处理运动学(例如加速度),它自然会遵循 grbl 内核设置的主要运动学。 |
使用这种方式,你真的不需要慢跑,因为你可以用软件模拟它。同时控制2个轴怎么样? |
程序同理,发送指令前需要知道实际机床位置,然后计算两轴剩余距离,然后发送G1指令和短轴剩余距离如“G91G1X105Y105F1200”这样保证运动会在45°对角线。 |
@sacidu93太棒了…..用按下按键上的物理按钮慢跑并通过进给保持/cntrlX停止 |
我一直在考虑为 grbl 采用一种简单的慢跑模式,它会做类似的事情,其中 grbl 将在内部提供保持和系统重置,而无需 UI 手动控制。让我绊倒的一件事是移动需要多远才能让慢跑不会停止的问题。例如,如果用户命令从轴的一个极端点到另一个极端点。这个移动距离需要多远,这样它才不会中途停止或违反软限制(这可能是一个问题@sacidu93的方法)。 也许我们可以使用 v0.9 中新的最大行程设置来测量适当的距离,因为一个轴的移动永远不会大于最大行程。grbl 将跟踪慢跑状态并自动截断任何超过软限制的移动。 另一个问题是如何控制要移动的轴和进给率。我喜欢使用 gcode 解析器中可用的东西,而不是编写大量新代码来解析 jog 命令。有什么建议么?它需要尽可能小。 |
$J[0|1|2][+|-] 开始慢跑怎么样,进给速率将从默认寻道速率拾取,并且移动距离可以是最大移动或最大移动 /2 或新的可配置参数 |
或 $J[0|1|2] 在 A4 上选择点动轴和脉冲输入,在 A5 上选择方向 |
A4 和 A5 保留用于 I2C 通信。(如 D0 和 D1 用于 UART/串行通信) |
@samitray: 嗯,可以的。虽然它不是界面的一种按钮类型,但如果您依赖 UI 来处理它,它会起作用。另外我应该提到默认进给率将在 v0.9 中消失。这不应该存在。如果您没有为需要的命令明确发送“F”代码,系统应该会向您提供错误。 使用 $J=300 之类的东西来启用点动模式以实现 300 的进给率并发送键盘字符,如 x- 和 x+ 的 4 和 6、y- 和 y+ 的 2 和 8 以及 z-/z+ 的 7/9。’0′ 将简单地暂停慢跑,而 $J 命令将关闭慢跑模式。我们不一定需要使用数字字符,但我想可以使用更受保护的字符集,例如 Ctrl 字符。 |
@chamnit:你可能想用 9/3 表示 z-/z+,在我的小键盘上,这些数字也标记为 PgUp/PgDn(通常处理“Z”)。除此之外,听起来不错… |
@chamnit $J 切换慢跑模式听起来很完美,任何易于“编码”的字符/数字都可以用于移动轴,因为它将由 UI 发送(大部分),我更喜欢键盘上的数字 4,6 for x+ – , 8,2 表示 y+- , 9,3 z+- 0 表示暂停,因为这对“手指”更友好。 我会继续关注这个提交的边缘分支:-) |
我正在阅读#178,关于每次点击做小动作的选项2可能会复杂得多, |
@chamnit 从一个轴的一个极端到另一个极端的慢跑我没有任何问题,移动永远不会在中途停止,因为我发送 G1 命令以及剩余距离以达到最大行程距离,这是使用 G91 在增量模式下执行的,独立于工作坐标。 @samitray 您可以发送 $j=p (其中 p=1..100 代表 G0 使用的搜索率的百分比值)这将解决点动进给率问题,而无需发送 F 代码。当 p=0 时,GRBL 将退出慢跑模式! |
@sacidu93: 这可以作为一种解决方法。我想你确实有所有可用的信息来做这件事。 闪存空间绝对是一个问题,最需要用户反馈的是它是什么、它是如何工作的以及它在做什么。只要将反馈设计为最小,就可以进行连续模式和增量模式。例如,我们在键盘上有三个剩余的数字可用于设置模式。或者键盘的其余部分… 所以我一直在想,单一按键功能可以工作的唯一方法是创建一个特殊的慢跑模式,该模式期望输入与标准 gcode 块/命令和回车完全不同的输入。在这种模式下,正常状态的运行时命令字符和任何以’$’开头的命令都有效,否则它将处理并执行一个键并且不返回carraige。与尝试解析大型命令和设置字符串相比,这样的开销可能非常低。 现在唯一的技巧是设置这些单个角色来做我们想要的一切,简单易懂和易于使用,并提供最少的反馈来了解您所处的模式或速率。我们始终必须牢记新用户和让他们轻松。 |
@sacidu93 你对固定距离移动是正确的,我没有考虑到它。可能我们可以有一个方案 |
@chamnit 如果 ?在 $J 模式下工作,从提要反馈的角度来看应该足够了,因为上面使用的其他方法依赖于?显示位置。 |
@samitray:我不想在“?”中添加任何内容。如果我不需要。我们也许可以做一些事情,如果您更改某些内容,Grbl 只会报告您更改的内容。 @sacidu93:最大速度/搜索率的百分比可能不适用于具有不同最大速度的机器。我们可能需要创建一个点动最大进给率或沿着这些线创建一个统一的速率。尽管如果设置超过特定轴的最大速度,则需要在某处编写代码来截断进给率。不确定哪个会更好。 另一个想法是使用 ‘+’ | ‘-‘ 和 ‘/’ | ‘*’ 字符来控制(百分比)进给率和点动模式,即连续、0.1mm/click、0.01mm/click 等。任何时候你会点击这些字符,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 模式。这个声音怎么样? |
@chamnit我的意思不是对 ? 进行任何更改,目的是检查是否 ? 在执行慢跑时会以更新的位置响应(我相信?在归位期间不更新 – 尚未使用归位)。 上面的方案很好,可以完美运行。 但是,如果我们删除 / 和 * 选项,我们可以节省一些闪存空间,这将消除存储预设提要和增量值的需要,并减少解析 / , * 和切换提要和增量代码。控制器/用户界面可以在开始时发送进给率 $J=100 和增量/连续每个 +X , -X 类似 4=25 (x 正 25 mm) 或者如果没有增量值 (只是 X=0) 然后以先前发送的进给速度连续移动,5 以暂停连续 这也将允许 UI 在设置自己的预设进给率和增量方面具有很大的灵活性,用户可以 预设动作让我想起了“石器时代”电子设备和那些场景,当我曾经想知道为什么 |
@samitray: 正确的。“?” 在归位过程完成之前不会通过归位更新,并且它应该可以很好地与慢跑一起工作(’^X’ 也应该如此,但 ‘!’ 和 ‘~’ 不会有任何效果)。 我不同意带有预设的闪存空间。如果您不必解析整个值,例如增量步长和进给率,它实际上要小得多,而不是创建一个“switch”语句来查找单个字符。问题是 ‘$J=XXX’ 命令被设计为只接受 ‘=’ 之后的一个数字字符串,而我们有两个同时使用。如果您减小步长,您也想减小相关的进给率。 我在想,在慢跑模式下,Grbl 只会接受单个字符的命令。为了进一步简化,我也不允许使用“$”命令,只允许使用“?” 和’^X’。要退出慢跑模式,我可能只需要一个标准的“^X”重置。所以所有与“1”-“9”按键相关的代码都在那里,添加“/”和“*”按键操作简单且开销低。 尽管正如您所说,预设是古老的和“石器时代”,但他们这样做是有原因的,而不是更具可配置性,我认为这与存储和内存空间问题有关。但是,我仍然认为我们可以想出一个体面的解决方案来满足我们的需求。 |
@chamnit 现在我明白了,我认为单字符模式简单而紧凑。如果有可能为 feed 和 increment 提供可配置的预设(运行时间如 $0,如果没有,则为编译时间),那么这将是两全其美的。一个问题,但是用户将如何启动慢跑模式?5 号 |
@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”复位键用于紧急中止可以调出警报模式。 |
这看起来很稳固。 |
大家好你们好, 我对论坛完全陌生,对 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”,释放按钮时软件发送的内容,我现在使用“*”。机器减速运动并停止。除了提要保持之外,队列被刷新,之后状态为空闲。 请让我知道,如果您对该解决方案感兴趣,我发送代码或将其发布在这里。 问候, 约尔格 |
使用adc输入怎么样..一半电压停止在一半开始向负移动。 超过一半的人开始积极移动……这样你就可以完全控制你移动的速度……所以模拟迷你操纵杆就可以了。 |
@sacidu93您是否有网站或具体的图表/详细信息如何制作 CNC 吊坠?我给自己做了一台家用数控机床,但想在 grbl 控制器之外进行某种控制,当我看到你的挂件时,我立刻爱上了它! |
@sacidu93在这方面做得很好。看起来很神奇。 |
大家好, 这一切都很棒,确实如此,但我刚刚开始,不知道每个人实际上指的是什么……我目前正在尝试将 nano 连接到我的 grbl,只是为了构建一个带有 lcd 读数的简单控制器位置。有人可以指出我正确的方向。我知道在你们中间,你可以闭着眼睛做这个,买我不知道。我会非常感谢你能给我的所有帮助。 |
我目前正在构建和测试我自己的界面。我也需要一个 MPG 挂件,而且我知道如何在 arduino 环境中编程。Sacidu93 发布了他的照片,我真的很喜欢。但是在串行总线上并行连接多个设备时存在一个很大的问题。我真的很喜欢使用 grblControl 程序发送 g 代码,但即使在空闲时,串行总线也忙于不断更新位置的流量。所以我使用了不同的方法。我用 Mega2560 做吊坠。PC 连接到它。因此数据通过挂件并从兆的第二个串行端口(它有多个硬件串行端口)。我对结果感到惊讶。我运行了几个 g 代码没有错误!所以现在我做了一个程序,它读取 MPG 和串行打印到第二个端口(它停止与计算机的通信)。它发送 这东西效果很好。我害怕数据会延迟或损坏。但它很奇怪:) |
萨米特雷 评论 on 15 Jun 2013
这不是问题,因此可能发布在错误的列表中。
有一个带有轴和速度选择器的 MPG 吊坠。
想将它与我在 Uno 上的设置 Rpi+UGS+GRBL 一起使用
我正在考虑添加另一个 uno 来读取来自刻度盘、轴选择器的脉冲
并将命令发送到 grbl,类似于 UGS 中的键盘慢跑。
在同一通道上发送命令是一个挑战,因为 UGS 已经
连接到 GRBL – Uno 串行端口。
无法弄清楚如何对通信进行排序。
有人想出用表盘慢跑 grbl 吗?