注释
我已经制作了一个控制 Scara 手臂的 Grbl 分支,但它并不是真正可以有意义地集成到 Grbl 中的东西——它必须是一个单独的项目。Grbl 将始终专注于笛卡尔设置。就目前而言,将第四个轴添加到 Grbl 非常简单,因为这是一个笛卡尔轴,无论这意味着什么——我怀疑这个轴会是 Marlin 中的塑料饲料?在混合中添加旋转将需要对 grbl 中的前瞻规划器进行复杂的返工,我认为目前在任何人的路线图中都没有。 如果我要更新 Grbl 以使用更现代的处理器,我个人会选择基于 ARM 的设置。我仍在等待一些板像 Arduino 一样无处不在,以做出这样的努力是值得的。 |
嗨,西门,感谢您的快速回复。目前,我在使用 Marlin 时通过校准它以在每个轴上移动度数而不是 mm 来捏造 gcode;即我按度定位每个手臂部分。这实际上使得计算实际位置的数学并不算太糟糕,但专业人士可能不会这样做!我拥有的手臂的优点是手臂的任何部分都不依赖于另一个手臂,所以如果我改变下臂的角度,上臂与地面保持相同的角度。我认为这与 SCARA 布局有很大不同,不确定你的另一个叉子是否会帮助我。 鉴于更多令人兴奋的硬件即将出现,我理解您在 grbl 上投入更多工作的沉默。然而,我确实认为 Arduino 仍有很多生命力——它易于编程、可用性和可扩展性将使其在未来相当长的一段时间内继续运行。我没有想过正确的旋转轴会如何影响规划器,但我现在可以看到它会很棘手。但是您始终可以将其定义为仅移动 360 度且不再移动的轴,或者 360 之后的下一个增量为 1。但我不是程序员,我敢肯定它比这更复杂! 我可能会坚持使用马林,看看我是否可以让第 4 和第 5 轴独立工作。也许我最终不得不切换到 LinuxCNC,这感觉像是倒退了一步,但至少内置了手臂控制。 |
我并不是说我对保持 Grbl 的原样不感兴趣,我只是说我没有看到将它升级到具有相同处理能力的不同 atmega 的意义,因为你会很快用完处理能力试图保持所有这些额外的引脚动作。然而,我确实理解为什么 RepRap 套装会这样做,因为他们在加热器和喂食器以及你有什么方面有更多的事情要做。对于铣削,香草 Arduino 上的 Grbl 仍然只是我个人的门票。 |
我完全同意西门。旋转 ABC 轴会使数学开始变得复杂,并且需要更多的计算能力。比简单的 328p atmegas 更强大一点。内存也有问题。Grbl 被拉伸到最大,为 3 轴提供最小但一致的功能。所以这主要是一个复合问题,你添加的越多,你需要的内存和计算能力就越多。 就个人而言,我认为第四轴是可行的,如果对 Arduino 非常小心的话。我认为数学与我们在规划器中已有的并没有太大的不同,但我认为可能需要做出一些妥协才能使其稳健地工作,因为需要更多的周期来计算额外的轴。(我们还必须将加速度更改为与轴无关,这在我的路线图中。)我希望在不久的将来的某个时候看到这种情况发生,也许作为一个不同的发展分支。 另一个注意事项:TinyG/grblshield 的 Alden Hart 一直在研究基于 atmega mega 芯片的 6 轴控制器。不知道他现在的项目在哪里,但从我上次看到的情况来看,它运作良好。不过,他只支持他自己的 TinyG 特定硬件。 |
@chamnit考虑如何使用旋转轴管理有效的进给率让我很头疼。有效进给率不会是笛卡尔运动和旋转运动的结果,必须考虑到工具与在给定时间点移动的每个旋转轴的距离。我同意单个旋转轴在 atmega 架构的约束下是可以管理的,但是三个?我得看看是什么@aldenhart取决于。如果他能够做到这一点,听起来真的很不可思议,但话说回来,他还是相当聪明的! |
是的,有点头疼。您必须在每个时间点独立考虑每个轴的加速度和速度,但我认为可能有一个简单的解决方案来处理它们。我认为诀窍是您必须将每个运动限制为最大化的轴的加速度。我还没有在纸上解决它,但它应该是可行的,而不会杀死 Arduino。 对于有效的进给率,这些应该由 CAM 软件或后处理器来处理。这是使 6 轴机器如此困难的众多问题之一。大多数时候,机械师必须自己编写专门针对机器的后处理器。我们有一个 5 轴在工作,它是如此的暴躁,以至于机械师不得不对他们的代码进行三次检查,以确保在开始切割时没有任何损坏。尤其是当工具点动和工件移动并旋转到新位置时。 |
@simen:我一直在考虑更多关于有效进给率的问题,我一直在与机械师 Mike 讨论这个问题。这是我们机械师的一些澄清。 所以,主要问题是当你同时进行旋转和平移时,它们会使用两个不同的单位,英寸和度数。要解决这个问题,您必须使用反时限 (G93)。这通过使用一个进给参数而不是两个进给参数来强制旋转和平移同步移动。如果您使用两个单独的馈送参数进行旋转和平移,每个小错误都会影响同步,其中一个会先于另一个到达其目的地。 在这一点上,我不确定这对 Grbl 究竟意味着什么,但我想我们必须更新反时限代码才能正确转换轴进给率。这可能是可行的……无论如何,需要考虑的事情。 |
(常识免责声明:如果以 CNC 加工为生的人不同意我的文字,他们可能是对的。如果我的文字不同意书(Peter Smid 的 CNC 编程手册),那本书肯定是对的) 关于这个问题,我有以下几点要说:
关于旋转轴问题的简短结论:
希望能帮助到你。 |
@csdexter: 同意你所说的大部分,如果不是全部的话。
因此,如果这完全可能,我认为研究仅使用第 4 轴的同步旋转和平移是值得的。相关的更改应该是平台无关的,我们可以稍后使用更强大的硬件添加此功能,即如果我们发现小 Arduino 无法处理它。从那里开始,使用 ARM CPU,我们应该相当简单地添加额外的两个 BC 轴以实现完整的 6 轴运动。 我同意 Radu 的观点,对于 CNC 加工,6 轴受到可以对其进行编程的免费/廉价软件的可用性的限制,但 Grbl 不仅仅是加工。我们已经看到了许多其他巧妙而有趣的应用,用于艺术装置和其他事物的简单移动,所以我认为,如果我们能做到,那就去做吧。 |
你好 我在这里的第一篇文章,希望不是最后一篇,因为我正在尝试让我的 cnc 关于更多轴所需的硬件: 否则,我已经基于 UC3 设备创建了自己的板,该 问候 |
我会权衡一下 TinyG 是如何做到的。代码都可以在 github (Synthetos/tinyg) 上查看、使用和重用。 所有 6 个轴都是协调的,并且它们是速率限制的。这是通过将所有运动转换为固件内部的时间单位来完成的——不管它们在 Gcode 中是如何指定的。Kramer RS274v3 NIST 规范中有一个密集的部分,说明在进行涉及两个域中的运动的非反时限模式协调运动时,线性轴和旋转轴应该如何关联。我读了很多很多次,希望我做对了。 在内部,所有运动计划都是作为一个标量值完成的,该值通过一个 6 轴单位向量转换为运动。第一个操作是在给定轴的物理限制的情况下将移动速率限制为移动所需的最短时间。请注意,轴都具有最大速度、加加速度和转弯加速度的独立参数(TinyG 使用加加速度来控制加速度 – 因此加速度不是常数) 是的,它现在只为 Atmel Xmega 芯片编译。有人愿意和我一起开发 ARM 端口吗? |
哇,引发了讨论!感谢所有的头脑风暴。aldenhart,TinyG 看起来真的很有趣,而且绝对看起来是接管复杂机器控制的有力竞争者。假设您可以获得足够的 I/O,您绝对应该将其移植到 ARM。我希望我能帮忙,但我真的是一名平面设计师——我可以给它上色,也许吧! 对于我目前的具体问题(机械臂)来说,这可能有点矫枉过正,而且我只有一个 Arduino Mega 2560,而不是更强大的 Xmega,所以我什至无法尝试。我想我可以扩展 Marlin 以适应额外的轴。从 XYZ 到旋转坐标的转换必须由主机完成(可能最终在控制器上),但这应该不会太糟糕;如果我想翻译一系列 XYZ gcode 命令(例如,如果我用我想使用 arm 复制的 XYZ reprap 切割一些用于 3D 挤压的东西),我应该能够编写一个 python 脚本来给我相同的 gcode在我的 4 个旋转轴上——我想!类似于极谱绘图机器人的工作方式,这对我来说实际上是一个很好的起点。进给率可能是个问题,但与旋转+平移系统不同。对不起,我也只是从我想解决的问题来考虑这些,而不是针对所有的 CNC 系统——请原谅我的短视! |
2012 年 9 月 12 日上午 6 点 31 分,奥尔登·哈特写道:
我想帮忙! 我确实参加了 Teensy 3.0 的 Kickstarter( 您认为使用过的飞思卡尔的“Kinetis”K 系列 PK20DX128VLH5 / 还是等待 Arduino Due 会更好? 我不隶属于这家公司,如果他 http://www.kickstarter.com/projects/paulstoffregen/teensy-30-32-bit-arm-cortex-m4-usable-in-arduino-a 技术规格: 32 位 ARM Cortex-M4 48 MHz CPU(M4 = DSP 扩展) 所有引脚都具有中断能力。
|
几周前,我从 kickstarter 上订购了一些 Teensy 3,只是为了试一试。嵌入式系统面临的挑战之一是找到一种价格合理的 ARM(约 5 美元,+/-),可用(不会永久缺货),具有足够好的免费或便宜的开发链(支持模拟或-电路跟踪/调试),并且具有不繁琐的库许可并支持开源项目(因此 TI 已经退出 – 或者当我们与他们交谈时)。哦,我想要很多 IO 引脚来处理很多事情。 我也同意 Simen 关于等待“Arm Arduino”的观点。具有讽刺意味的是,Pi 和 Beaglebone 对于这些用途来说太强大了(复杂的,恕我直言),因为您尝试从非实时操作系统运行实时系统的所有复杂性,并且引脚排列是谋杀。 我们一直在研究所有这些因素,并且最喜欢 NXP1758 系列是迄今为止最好的。第 1 步是准备好工具链,并可能在上面安装 FreeRTOS。 |
我还支持 Teensy 3 项目,主要是因为我对使用它作为新 RepRap 控制器的基础很感兴趣。将 grbl 移植到它似乎是这样做的一个很好的第一步,所以我也有兴趣帮助 ARM 移植。 如果一切都按我的计划进行,我将在几周内拥有几块用于容纳青少年和 pololu 步进驱动器的板的备用副本。如果有帮助,我很乐意将其中的一些发送出去… |
我也在将 grbl 移植到 ARM,更准确地说是移植到 Cortex-M3 和 Cortex-M4F(基本上相同的代码使用不同的 -march 选项编译了两次)。 事情还在不断变化中,最终的产品设计可能最终会在“One Man Orchestra”解决方案中使用 ARM 以及类似于 Olimex 的 STM32-H152 的电路板,或者它可能会沿着我目前正在开发的路线走其中包括使用 ATtinys 处理所有硬件低级任务,使用一个 ATmega328P(在 Pro Mini 上)进行管理、G 代码解析和数学运算。 |
移植到 ARM 并不是特别困难,但更多的是 如果我们开始为多个平台进行开发,那么 Simen 所说的我支持,直到有一个 我个人认为Grbl还有很多工作要做。我们可以使用一些 2012 年 9 月 16 日下午 3:37,Radu – Eosif Mihailescu <notices@github.com 我也在将 grbl 移植到 ARM,更准确地说是移植到Cortex-M3 和 Cortex-M4F(基本上相同的代码使用 不同的 -march 选项 CPU-specifics – libc 可以处理其余的。 事情还在不断变化,最终的产品设计可能最终会在“One Man Orchestra”解决方案中使用 — |
我一直在关注这个,我想插话。为什么不只是一个第四轴,在现有硬件上简单和基本的东西?它不必是完美的,人们会找到新的方法来解决问题。你可以建立一个只有 4 轴的 trasmision …… |
也许: #define MM_PER_INCH 25.4 #define FAST_XY_FEEDRATE_INCH 50.0 #define CURVE_SECTION_MM 0.5 // 限制 #define SENSORS_INVERTING 0 // 喷嘴加热器的电阻电流 #define HEATER_CURRENT 100 // 引脚 Mega2560 #define SERIAL_RX_PIN 0 #define X_ENABLE_PIN 2 添加/包括来自“Sprinter”的 THERMISTORTABLES,也许还有一些我可能错过/忘记的热端的其他东西。它应该工作。 抢 |
非常有趣的主题! 我即将构建一个带有两个 X/Y 门户的 CNC 门户切割机,一个左侧,一个右侧,例如:http ://www.cnc-multitool.com/cnc/foam-cutting-machine/4-axis /cut1000s.html 我有一个带有 4 个 polulu 驱动程序的 grbl Shield,还有一个 rerap 板。 但问题是使用哪个固件。前段时间我看到一个带有第四轴的 grbl 叉子,但我现在找不到它。另一方面,大多数 3D 打印机固件允许 4 轴,但我不知道是否可以将它们配置为通过 X/Y/Z/A 独立驱动它们 这里有什么想法吗?
|
关于本次演讲的主题(具有巨大潜力),有两个想法:
实现 2 将是一个有价值的目标。有人会免费做这项工作吗?我想知道…… Marlin 或 Grbl 是 Arduino 的出色固件,我都喜欢。我认为2可能会实现。 |
所以我已经准备好开始投入大量时间来添加第 4 轴,并且我想在比 Uno 更强大的板上进行,以避免影响内存、IO 或速度。我玩过Matthew Sorensen 的 Teensy3.1 端口,它看起来很有希望。在https://github.com/EliteEng/grbl似乎也有一个 Mega 端口。我的问题是选择哪个板?社区对哪个港口更感兴趣?是否有可能会在这里合并 – grbl 是否会正式支持多个板,我能做些什么来帮助实现这一目标? |
这只是我对这种情况的两分钱: 我喜欢并且一直喜欢这个项目的简单性。那个 grbl 专注于一个平台,一个任务是为 328p 制作一个完全有能力(可以解释)的解析器/控制器。我认为这种关注确实让我们考虑了什么是“必须拥有”,什么可以留到以后,或者完全不考虑。 所以对我来说,当有人问 grbl 是否会支持另一个董事会时,我总是认为:“它不能”。 根据定义,grbl 是一个不折不扣的解析器/控制器,它将在直接的 arduino上运行。如果要删除语句中的“直接 arduino”部分,那么它将不再是 grbl。这将是其他东西,基于 grbl。 我并不是说代码库不应该用于在另一个平台上创建另一个解析器/控制器,但如果这样做了,它需要一个不同的名称和不同的使命陈述。 -爱德华 |
青少年端口 +1。它非常兼容 Arduino,可以 2014 年 4 月 9 日下午 3:52,阿谢利写道:
这封电子邮件没有病毒和恶意软件,因为 avast!防病毒保护处于活动状态。 |
@ashelly: 同意@shapeoko. Grbl 一直是更大事物的种子。通过保持小而受限制,我们可以更轻松地专注于内部工作。然而,我们已经接近 Uno 无法带我们走得更远的地步了。阻力最小的路径就是使用 Arduino Mega2560,开发部门已经非正式地开始支持它。它与所有当前的盾牌兼容,应该与在 Unos 上使用 Grbl 的人即插即用。 同样,我们可以使用 Arduino Due 来保持向后兼容性,但工具链仍在慢慢跟上。这将需要更多的努力来转换所有内容。我认为最好花时间,至少对我而言,完成 Mega 上的功能列表,然后将所有内容移植到基于 ARM 的控制器作为不同的项目(称为 Gnea)。 |
我最近在最新开发分支的 ARM 端口上取得了相当大的进展。 我用过 CMSIS,所以移植到其他 ARM 控制器应该不是什么大问题(尽管不同的供应商对外围设备有不同的想法) |
您可以将另一个轴写入 GRBL,交替考虑 MODBUS 和 EMC。 我还读到 Mega 不是您想要的 GRBL,我可能是错的,但 328 或 UNO 芯片是可以使用的,有人提到他们关心速度,请注意 Uno 的波特率为每秒 9600 个周期,您不需要比应用程序处理得更快(通过 USB“通用串行总线”驱动步进电机)。 MODBUS 也可以与 Mach3 和其他机器软件一起使用,或者您可以使用 Visual-Studio 编写自己的机器软件。 更多关于“总线”的信息可以在这里找到:http: //tronixstuff.com/2011/05/13/tutorial-arduino-and-the-spi-bus/ 干杯,希望它有所帮助, Rob 所以我已经准备好开始投入大量时间来添加第 4 轴,并且我想在比 Uno 更强大的板上进行,以避免影响内存、IO 或速度。我玩过 Matthew Sorensen 的 Teensy3.1 端口,它看起来很有希望。在https://github.com/EliteEng/grbl似乎也有一个 Mega 端口。我的问题是选择哪个板?社区对哪个港口更感兴趣?是否有可能会在这里合并 – grbl 是否会正式支持多个板,我能做些什么来帮助实现这一目标? — |
@EliteEng: 这是关于你在 ARM 上的进展的好消息。我个人没有时间研究它,但我很高兴你是。当 Grbl 上的事情完成并且新的 Gnea 项目启动时,我们将不得不合作。 @crob09: 只是为了清除一些错误信息。Grbl 和 Arduinos 不仅限于 9600 波特。它们可以以高达 250000 的任何波特率运行(如果我没记错的话)。Grbl v0.9d 以 115200 波特运行,没有任何问题。此外,AVR 328p 是 Arduino Uno 使用的,Grbl 应该能够在 Arduino Mega2560 上支持 AVR Mega2560 而没有太大问题,因为它们基本上是完全相同的芯片,只有更多的内存、中断和闪存空间. 对 Mega2560 的扩展应该很容易,并且具有进一步扩展 Grbl 的内存和空间。(CPU 速度有点令人担忧,但目前对 Uno 和 v0.9d 的测试表明,在最近的所有代码改进中,我们仍然有很多开销。) |
感谢您的反馈。我理解股票 Arduino 的吸引力。我将开始看看我可以在 2560 上使用 0.9d 做什么。 |
漂流 评论 on 11 Sep 2012
我知道 grbl 是为 3 轴非旋转轴 CNC 机床设计的,但是添加第 4 和/或第 5 轴有多难?我也很欣赏它是为在低端 Arduino 上运行而设计的,但实际上人们是否仍在使用 AVR328 来运行 CNC 铣床?644 有足够的引脚和更多的计算能力,可以支持更多的轴。我有一个 rerap RAMPS 板,它有 5 轴和 6 个挡块。该板的一个更简单的变体,具有主轴控制而不是加热床/热端控制,非常适合运行由 NEMA17 或 23 个电机驱动的 4 或 5 轴泡沫塑料/轻木木材切割机。此类机器的刀具路径可以在 Gmax http://www.turbosquid.com/gmax等开源软件中使用 CNC Toolkit http://www.cnc-toolkit.com/生成
想象一下能够用这样的设置切割一个光滑的船体!
基于 grbl 的 Marlin 固件增加了第 4 个轴,并且能够将工具更换到第 5 个。还需要轴独立的每毫米步数和加速度,这在 Marlin 中已经存在。此外,还可以支持其他形式的机器人技术,例如机器人手臂——这是我别有用心的动机。见http://forums.reprap.org/read.php?146,153660
不幸的是,我不是程序员,所以我真的不知道该怎么做。除非其他人已经这样做了?