Contact me: hankecnc@gmail.com

发展路径和心愿单! #125

推推 grbl 3年前 (2023-01-21) 201次浏览
关闭
chamnit 打开了这个问题 2012 年 10 月 13 日 · 35条评论
关闭

发展路径和心愿单!#125

chamnit 打开了这个问题 2012 年 10 月 13 日 · 35条评论

注释

发展路径和心愿单! #125
成员

该线程将用作提供开发路径更新以及用户可以添加到愿望清单的地方。请随时为这次对话做出贡献,这样我们就能很好地了解我们的优先事项。

目前边缘分支(v0.8)的发展路径:

  • 向 Grbl 设置添加更多功能:
    • 启动脚本:可用于设置 g 代码模式 (G20)、工作坐标偏移 (G10) 和启动时的自动归位。完全可由用户配置。
    • 反转步进器启用引脚的设置?也许在 config.h 中可用。我认为由于电气干扰原因,大多数启用引脚在禁用时都是正常的高电平。
  • 设置模式:这些设置是可选的切换,默认情况下在启动时禁用。
    • 可选停止、单块模式、块删除、自动循环启动
    • “试运行?”:技术上以寻道速率移动轴以在不切割的情况下对程序进行物理测试。不重要,但可能是 g 代码检查模式,没有任何动作。
  • G代码状态反馈。特殊的“$”命令将提供 g 代码解析器模式的当前状态。主要用于 GUI,但对于直接界面仍然有用。
  • 充实实时状态报告:状态报告功能将移至它自己的模块,以阐明其用途并简化黑客攻击。大多数情况下,默认报告将只提供位置数据,但每个报告的数据或多或少会有更多可配置选项。这可能包括进给率、行号处理(可能)、缓冲区状态、运行模式等。
  • 软限制:如果启用归位,则用户可以指定他们的机器工作量限制。当 g 代码被发送到 Grbl 时,解析器将检查机器位置是否会超过此限制。如果是这样,Grbl 将简单地使用 g 代码报告错误。换句话说,它会在机器实际移动该块之前就出错了。

v0.9 的愿望清单:

  • Pin out 运行时命令(循环启动、进给保持、重置):这需要一个可能需要一些重构 Grbl 的去抖例程。需要对此进行一些思考,以考虑创建一个全局系统节拍来监视运行时命令、发布状态报告和去抖动信号。
  • 轴加速度独立性:目前 Grbl 中只有一个加速度参数。要以机器的绝对最大速率移动,每个轴都需要有独立的加速度参数。计划者将需要重构以解决这个问题。定于 v0.9。
  • 进给率覆盖:这可能很难正确实施到步进模块的当前状态。将需要花费大量时间和精力才能正确完成此操作。定于 v0.9。
  • 慢跑模式:这将需要对 Grbl 进行一些重构,并考虑如何最好地实现它。如果有足够的引脚可用,可能会被引脚固定。定于 v0.9。
  • 手动设置机器原位?不确定工作坐标(G54、G92)和归位功能是否需要这样做。此外,如果没有启用归位,Grbl 将在启动时自动假定家是当前位置。启用归位后,这将使软限制无效。
发展路径和心愿单! #125
贡献者

是否可以将#110添加到 V0.8 中?

步进锁定延迟拉取请求#110
#110

发展路径和心愿单! #125
成员作者

已经做了。它在 v0.8b beta 下载中。:)

编辑:重新查看拉取请求中的内容。错过了您想让步进器保持启用状态的事实。因此,我将对 settings.stepper_idle_lock_time 的最大值 (255) 进行值检查。如果是这个值,它不会禁用步进器。否则,如果值为 0,它将进行短锁定或不锁定。应该在下一次推送中(可能在几天内。通过其他设置制定一些细节)。

发展路径和心愿单! #125

可配置品牌。似乎 grbl 正在寻找更多的矿石应用程序,但需要针对每个应用程序进行调整。也许这在机器控制中是意料之中的。我们是否达到了 CMake 层有意义的地步?在我自己的 fork 中,从上游合并已经变得乏味,即使我没有做太多。也许 CMake 不是正确的答案,但是恕我直言,一些没有碎片化的可定制性的想法是值得的。

发展路径和心愿单! #125

如果通过可配置使你的意思是在为我的机器编译时包含特定于机器的代码,那么使用#defines 可以更容易地完成(并且它已经完成了由 config.h 控制的各种事情的方式)。

发展路径和心愿单! #125
成员作者

机器特定代码和对不同硬件的更多支持一直是一个常见的功能请求,但不幸的是,由于 Grbl 正在开发中,因此不必在每次代码更新时都支持多个平台要容易得多。将来,很可能当我们达到 v1.0 时,我们将认真开始考虑为常用硬件创建多个版本。我们正在使用 Arduino,因为它无处不在且便宜,尽管它缺乏速度和内存。我不得不说,这是代码效率和内存管理方面的一次很好的练习,但我敢打赌,这项工作最终会证明非常方便,让 Grbl 无需太多努力即可实现高度可扩展。

发展路径和心愿单! #125

无头 SD 卡功能是否很快就会消失?

发展路径和心愿单! #125

刀具长度补偿和自动刀具归零支持。

发展路径和心愿单! #125
贡献者

既然归巢工作得很好,我认为软限制将是一个很好的补充。

我曾经想过使用我的 CNC 来制作电子电路板,我认为 CAM 程序吐出 G81 钻孔循环来钻通孔组件的所有孔 – 这对其他人来说也是一件好事吗?

+1 刀具长度补偿和自动刀具归零支持。

发展路径和心愿单! #125

Z 轴的独立进给率也非常好!特别适合 ShapeOko 所有者。由于 Z 轴,我限制为 500 毫米/分钟,但 X 和 Y 最多可以达到 5000 毫米/分钟。

发展路径和心愿单! #125
成员作者

感谢您的输入。几乎所有事情都在待办事项清单上。首先是每个轴的独立进给率和加速度,然后是进给率覆盖,然后是刀具偏移。该顺序部分是自私的,但主要是重要性顺序。:)

但是,钻井周期没有计划。主要原因是像这样的固定循环可以很容易地通过 CAM 工具转换为直接的 g 代码。稍后,我们将把 Will Winder 的 g 代码发送器拉入 Grbl 组织,并开始正式支持它。如果需要,我们可以将任何固定循环直接放入该界面。

发展路径和心愿单! #125

(友好的通知)如果你这样做[在流脚本中实现固定循环,让后者将前者展开为 Grbl 本身可以处理的 G 代码原语],那么人们会觉得你没有理由不实现所有这些方式(您可能已经知道,G81 并不是唯一的固定循环)。

我个人支持任何使 Grbl 覆盖尽可能广泛的 G 代码方言的技术解决方案:-)

发展路径和心愿单! #125
贡献者

仅供参考
https://sourceforge.net/tracker/?func=detail&aid=3589955&group_id=260483&atid=1127364
我使用 pcb2gcode 我刚刚写完一个小补丁,只输出 G0 和 G1 命令 instread G81

发展路径和心愿单! #125
成员作者

添加钻孔固定循环并不难。这是它可能占用的宝贵闪存空间。就个人而言,我不介意有一个啄钻固定循环,但 Grbl 最初的愿景是不要有任何会使事情变得过于复杂的东西。在这一点上,我们可能超出了这一点。拥有一个更强大的控制器似乎更重要。

如果说完一切后我们有足够的空间,我会投票支持在 Grbl 的 328p 版本上添加一些钻孔固定循环。否则,它将不得不等到我们转向更大更好的芯片。644、128 或 ARM。我认为644就足够了。

发展路径和心愿单! #125
贡献者

+1 拥有更强大的控制器似乎更重要。

我认为功能更完整与过于复杂相反。我在 Shapeoko 论坛上看到一位用户认为他做错了什么,因为 G81 语句不起作用。我想如果它奏效了,对他来说会更容易……所以并发症更少:-)

还是您谈论的是代码库而不是用户体验?

关于更大更好的芯片,我想知道是否继续使用 AVR 和 Arduino Mega 会是下一个更大的“东西”——现在有人在使用 Mega 和 Grbl 吗?

看起来价格也没有太大的不同:
Arduino Mega 30 美元到 65 美元
Seeeduino Mega 是 43 美元
8 x 更多闪存
4 x 更多 ram
2 x 更多 eeprom
http://www.atmel.com/devices/ATMEGA2560.aspx?tab=parameters

我猜测并希望我可以把我的 grblShield 贴在 Mega 上——我确实读到过引脚具有相同的布局……但我不知道这是否可行?我曾经订购过 Seeeduino Mega,但我从未使用过它 – 我可能需要做一些测试……

发展路径和心愿单! #125
成员作者

我的意思是代码库是的。但是,我们一直非常善于组织一切,所以它只会让事情变得更大而不是更复杂。Grbl 最初应该是多个应用程序的 3 轴基础,但似乎一切都开始变得专门化(reprap)或进入步进器库。因此,似乎不再需要该基础了。

太大的一个问题是,当您使用 atmega 芯片组时,您不会获得 cpu 周期。主要是内存,闪存,和引脚。大多数重制人员在他们的系统中使用 644 芯片,因为芯片成本低,而且他们发现它有足够的空间、内存和引脚来满足他们的需要。我会同意,但没有太多的电路板有这种芯片。因此,128 芯片可能也是合乎逻辑的选择(Teensy、Seeduino Mega)。我认为 2560 Arduino Megas 对于 CNC 应用程序来说有点过头了。

对于您的 grblshield,您可能需要一个适用于 Seeeduino 的适配器屏蔽,以确保引脚处于我们指定的任何分配中。它可能会改变。

发展路径和心愿单! #125
贡献者

通读所有提交日志看起来 0.9 已接近功能完成。将一些开发人员合并到边缘并从冻结边缘开始并且只修复错误直到 0.9 发布的计划是什么?

发展路径和心愿单! #125
成员作者

我们还有一些工作要做。关于开发分支,@jgeisler0303我一直在离线讨论规划器的状态以及如何让它与进给率覆盖一起工作,并有一种方法来保护块在某些极端情况下不被覆盖(覆盖时更常见)。这真的很棘手,进展缓慢,但我们正在取得进展。

还有一些其他事情仍然需要做,例如:

  • 使硬限制在状态方面更具可配置性
  • 更改归位例程,使其在搜索阶段和可能的定位阶段使用主步进算法。
  • 决定如何处理软限制。这可以被删除并依赖于 GUI 来完成它。主要是空间限制。
  • 确定一个更好的慢跑界面,但这不是高优先级。只要我们能确保它适用于 UGS 的方法,而不会出现覆盖计划程序块的问题。
  • 当然,进给率会覆盖并决定其工作方式。

可能还有更多,但我现在不记得了。

随着我们的发展,边缘分支可能会获得越来越多的“测试级”功能。dev 分支基本上是一个审查和公开破解一些新东西的地方,以及让其他人参与推动开发的地方。

发展路径和心愿单! #125

您好,我最近一直很感兴趣地关注 GRBL。在这个讨论中,有时会提到一个单独的 GUI。您可能已经知道这一点,但我建议您查看 Zapmaker 的 GRBL 控制器。

http://zapmaker.org/projects/grbl-controller-3-0/

从外观上看,它的开发非常积极,并且在 IMO 上有很大的希望。
它也是跨平台的。
只是我的两分钱…..
非常感谢您花时间开发 GRBL!

问候,彼得

发展路径和心愿单! #125
成员作者

@peter76: 看起来很不错。感谢分享!当我有机会时,我一定会试一试。

发展路径和心愿单! #125

我在未来的想法部分注意到,某种反冲补偿是一个考虑因素,但由于它在不同情况下如何工作的现实而变得复杂。
我的问题 – 允许一些令人难以置信的基本反冲补偿有多难,当任何人需要改变方向时,它实际上只是停止所有轴,应用补偿量,然后像从静止状态一样恢复?

我问是因为我一直在构建一个 diy cnc 设置,它目前在 xaxis 中有显着但可重复的反冲。如果我可以在基本情况下消除/减少它,则可以更轻松地使用机器以更精细的公差加工更好的零件以减少反冲。
所以我在画弧时不需要复杂的补偿。从字面上看只是在反转方向时进行补偿。
显然,最终目标应该是使用这样的功能是一个权宜之计,可以帮助您创建某些可以减少实际反弹的零件。

另外-感谢 GRBL,我发现它真的很容易使用,我对结果非常满意。以上实际上只是一个愿望清单项目,可以使我自己的构建更容易一些。

发展路径和心愿单! #125
成员作者

@danielwould:安装一个非常基本的反冲补偿器并不难。我已经在应该安装的一般区域中为它准备了一个占位符。虽然可能需要一些工作来确保方向设置正确。

主要问题是反冲补偿几乎总是会使机器在必须这样做时减速直至停止。这是因为每当发生反冲补偿时,机器必须与其行进方向进行近乎垂直的移动。这可能会在这些地方造成一些不需要的驻留,这可能对 CNC 割炬台或 3d 打印机等设备不利。有很多方法可以解决这个问题,比如在一定公差以下对移动进行插值,但这是小 Arduino 无法解决的问题,至少在闪存空间方面是这样。

虽然,即使是反冲补偿设置所需的闪存空间也可能成为交易杀手。我们正在努力推动空间天花板,所以它可能是最后安装的东西之一。如果没有,我们可能会按照编译时选项的方式做一些事情,您可以选择安装它,同时选择退出另一个功能以换取闪存空间。

发展路径和心愿单! #125

@chamnit有趣的是,我实际上喜欢编译选项的想法,或者甚至只是为了我的 cnc 路由器的目的而专门针对“入门”的一次性独立版本我真的只想剪掉一些防反冲部分。主要问题源于我手工制作的组件精度不够。我很确定,通过非常基本的反冲补偿,我可以磨出足够好的零件来升级机器,然后使软件补偿的需求无效。至少为了我的目的,如果我的反弹低于 1 毫米,我会非常高兴 :-)
事实上,我可以通过重构所有东西来手动补偿 gcode,所以我总是从同一个方向接近每个切割。但这是很多手工制作的 gcode..

从字面上看,如果我可以告诉 grbl 每次在 x 轴上改变方向时补偿 2mm,我相信它会给我足够的精度来铣出几个特定的​​部分(许多不同深度的直线),然后减少问题到可接受的水平。

你提到它有一个占位符,那是什么地方?我正在考虑查看 hte 代码,看看我是否可以破解一些足以解决我眼前需求的东西……

发展路径和心愿单! #125
成员作者

@danielwould:它位于 mc_line() 函数内的 motion_control.c 文件中。关于 backlash comp 以及它应该如何工作,有一个相当大的评论。我可能会选择硬编码您在那里需要的一切,而不是处理添加新设置并确保一切在系统内正常工作。

至于如何做到这一点,我首先要跟踪每个轴的最后一个移动方向,这意味着您可能需要这些轴​​的一些持久变量。如果您检测到方向发生变化,您将插入反冲补偿线移动。(所有移动都以毫米和机器坐标为单位。)您需要确保在执行反冲线时还复制并执行该 do-while 循环和 plan_buffer_line() 。反冲线完成后,它应该通过第二个 do-while 循环和 plan_buff_line() 来执行目标运动,但不要忘记向该目标添加任何反冲距离。

您可能需要注意的主要问题是改变目标位置的反冲距离会使 Grbl 的内部定位系统认为它在不应该在的地方(即规划器、g 代码和系统位置变量不是同步时间更长。)但是,如果您小心并且一次只运行一个程序,并在其间重置,这应该没问题。

发展路径和心愿单! #125

我有几个愿望。

  • 如果在未来的版本中 grbl 保留采用 gcode 并直接执行的黑盒想法,那就太好了。
  • 简单的编码风格,易于理解和破解。
  • 轴的每一端都有单独的端点开关的可能性 – 根据移动方向处理的每一端都是分开的。
  • 每个开关都有可能反转
  • 从这个意义上说,改进初始原点搜索,仅在 motion_control.c 中起作用,移动电机。目前据我所知,在 limits.c 中存在不必要的移动控制重复;使用 mc_line 归位。
  • 通过 i2c 地址 0x20 或 0x38(即通过 LiquidCrystal_I2C lib)显示 20×4 文本的可能性 – 显示 pos (x,y,z)、结束开关、停止开关和当前 gcode。
  • 基于开关的操纵杆的引脚,可以通过 i2c (PCF8574A)
  • 如果速度和尺寸是个问题,arduino due 听起来不错。那些需要更大马力的人无论如何都会有更昂贵的硬件设置,所以与此相比,arduino due board 的定价不是一个大问题。它现在似乎广泛使用,我今天收到了我的。在 ebay 上还有一个稍微便宜一点的克隆,叫做“taijiuino”,售价超过 35 欧元
发展路径和心愿单! #125
成员作者

@cnc4fun: 感谢您的输入!以下是对您的评论的一些回应。

  • 将 Grbl 保持为黑盒,g 代码输入,运动输出,是计划并将继续是计划。
  • 我们试图让事情尽可能简单,但大多数时候,空间和内存限制有时会妨碍写作的可读性。无论如何,我认为当 ARM 版本的 Grbl 在 ernest 开始时,我肯定会开始考虑保持模块化和更简单地根据需要添加/删除东西。
  • 正如 TO-DO 问题标签所说,限制反转正在进行中。
  • 集成到主步进算法中的归位运动控制也在开发中。由于 328p 太慢(勉强够快),我担心 Grbl 的步进算法无法进行任何状态检查和分叉以解释归位循环运动,因为它必须是特殊运动情况。我安装了“重复”作为临时解决方案,直到我可以验证它不会成为问题。从最近的一些测试来看,我认为将归位集成到步进算法中应该没问题。不过,在我这样做之前先计算出进给率覆盖。
  • 文本显示支持将不是一个选项,IMO。没有足够的空间来编写此代码(也没有足够的备用引脚),我认为通过 GUI 或其他控制器的接口可以很好地处理这个问题。
  • 操纵杆……也许吧。还在想这个,但我不认为这会发生。另一方面,我认为 Grbl 仍然需要一种好方法来轻松地为接口提供便利。
  • Arduino Due 的初步工作已经离线开始。我们仍在讨论如何组织事情,我目前正在研究代码库将/可以如何随着 CPU 周期、中断级别和闪存空间的大幅改进而发生变化。感谢 taijiuino 单挑!
发展路径和心愿单! #125
贡献者

很抱歉碰到一个旧线程,但如果你想参与 Arduino Due 的开发,请告诉我。

发展路径和心愿单! #125
成员作者

@EliteEng: 感谢提供帮助。在过去的几个月里,我一直忙得不可开交,但现在我带着一大堆待办事项清单回来了。我目前正在研究我在另一个线程中提到的进给率覆盖和规划器优化。这些需要主要的结构代码更改,因此开始尝试转换当前代码库不会太有用。然而,还有很多其他的东西需要添加,比如 PWM 主轴、适当的点动、稍微修改归位程序等等。

发展路径和心愿单! #125

插话一下,我会注意到,如果 GRBL 打算成为类似于 Mach3 或 LinuxCNC 的 Gcode 处理器替代品/解决方案,那么它需要对反弹做出规定。例如,我正在研究一个 RongFu RF-40 转换,它有大约 0.160″ 的间隙,这是不可调整的。我还没有找到任何软件可以输出带有间隙补偿的 gcode,因为所有 CAM 程序都假设gcode处理器处理它。最后,似乎没有程序可用于发布过程gcode并添加反冲。我不知道在这里做什么。看起来我要么是a)在控制器中投入更多$$它可以与 linuxCNC/Mach3 一起工作,编写一个插件来处理像 pycam 这样的东西的反冲,编写一个独立的 gcode 处理器,或者最坏的情况是手动编辑文件。无论如何,如果我能得到一两个关于在 GRBL 中引入处理它的代码的指针,我愿意编写代码。它不应该太难(著名的遗言……)。

发展路径和心愿单! #125
成员作者

@austinblanco: 哇。0.160″ 的反冲令人惊讶而且很多。如果你想花更多的钱买一个更好的控制器,我会考虑花这笔钱来修复反冲。你必须对你的机器做些什​​么来降低它到千分之几英寸。

另外,请记住 Grbl 不是 v1.0,这意味着可能会缺少一些东西,比如 backlash comp。但是,就此而言,询问一些 GUI 开发人员(如 UGS)看看他们是否可以将 backlash comp 添加到他们的流媒体并实时更新它们并没有什么坏处。

发展路径和心愿单! #125

只是想跟进此事。我已经在 X 轴和 Y 轴上工作,并且反弹低于 0.020″。仍在尝试在凸轮生成 prog 和 grbl 之间找到解决方案 – 有一个名为“nolash”的解决方案,这似乎是我正在寻找的因为 – 还没有得到那个工作。无论如何 – 除了这个打嗝 – grbl 太棒了!

发展路径和心愿单! #125

我希望看到对 z 轴触摸板的支持。是否考虑将其用于将来的版本?

发展路径和心愿单! #125

我注意到您没有使用 GitHub 的发布功能。这非常易于使用,我认为这会有所帮助。GitHub 上现在有什么版本?我想要 v0.8c 并将其加载到我的 Arduino IDE 中。

发展路径和心愿单! #125
成员作者

@Scott216:通过 G38.2 进行探测已安装在开发分支上,并且已用于在 Nomad883 GUI (kickstarter)中通过触摸板设置工具长度偏移。我敢肯定,当源代码固化后,其他 GUI 也会这样做。开发分支一般工作正常,保存几个小错误。在我完成测试后,它将对 g 代码解析器进行大修。我们不会很快直接支持工具长度偏移,因为它需要大量支持代码和更多 EEPROM 存储来保留所有这些信息。无论如何,这更适合 GUI。

不知道 Github 的发布功能是什么,但 Github 似乎总是在介绍我不知道的新东西。主/稳定版本是 v0.8c。单击主页底部附近的链接。如果您选择使用开发分支 v0.9d,则必须自己从源代码构建它。

发展路径和心愿单! #125

感谢您提供有关探测的信息。关于版本,如果您查看页面顶部附近 GRBL 描述下的主页,您会看到“0 版本”链接。单击它,您可以拍摄当前提交的快照并创建一个发布。您可以将其命名为 v0.8c。

发展路径和心愿单! #125

如果我在我的 uno 上安装开发分支,我将如何使用触摸板的探测功能?

喜欢 (0)