注释
@jgeisler0303: 我想你是对的,过时的太苛刻了。我确实看到了 Elija 的那个视频,它也让我回来了。很难超过入门价格,自 v0.8 发布以来,我们的下载量约为 5000 次,每天稳定 40-50 次。我想人们发现 Grbl 仍然有用。 我认为这个想法对于 Grbl 的伺服版本来说是完美的。Arduino 没有马力或空间来做 Grbl 所做的所有事情,但我认为如果我们将其简化为 GUI 预先计划并提供给它的“do-motion”类型的控制器,它将是似是而非。我只是希望数学对于 8 位 CPU 来说不会太密集。 我也同意将规划/解析和运动控制分开可能需要两个小组密切合作。考虑到人们在空闲时间从事这方面的工作,这可能很难做到。但是,我认为如果有工具,就会有人使用它。看看会发生什么可能值得一试,此外,我们已经拥有您出色的 grbl-sim,我们可以将其用于 GUI 来预先计划和预先解析事物。 至于 Grbl 是一个黑客工具,我会反对这一点。当它开始时,它更像是一个黑客工具,但现在,它变得相当复杂,并且需要一些编码技能才能在添加新功能时不破坏某些东西。这是我认为将 Grbl 分离为“do-motion”类型控制器的另一个原因。它将使它更加简单和易于破解。将有更多的闪存和 RAM 可用于执行其他运动控制任务等。 无论如何,目前这是一个白日梦。尽管如此,我认为将所有内容都剥离下来不会太费时。我想它的协议将是除了绝对/机器坐标、步数、速率、减速点之外的东西……几乎所有计划者已经存储的东西。可能采用压缩的 HEX 类型格式。 |
作为 GRBL 的用户和 CNC 世界的相对新手,我个人希望看到这样的东西。从 GRBL 卸载计划和“高阶”功能将释放大量空间并专注于运行步进电机、主轴等,而 RPi 的(相对)功率将使存储有更多的自由,计划、运行甚至监控作业。在我看来,RPi 取代了笔记本电脑而不是中间层……我在桌面上进行 CAD/CAM,并且可以想象将输出 gcode 发送到 RPi 以实际运行,而无需拖动旧笔记本电脑出柜。 话虽如此,它似乎更像是 GRBL 的衍生品,而不是替代品……尤其是在实施 0.9 的功能列表时。 将 CNC 与并行端口分离的想法是我决定为自己的机器选择 GRBL 而不是 LinuxCNC 的原因。 |
我也喜欢让 grbl 专注于低级别实时内容的想法,因为我认为 AVR 太慢了,无法做更多事情。在我的机器上,有时在高进给率下运行时效果不佳。我认为原因是规划者没有足够的规划范围。我可以在 grblgui(grbl btw 的最佳 GUI :))中看到缓冲区只有几毫米的前瞻。 |
@cody82: 完全同意。Pro CNCs 可以预测数百行或完整的程序,通过将 Grbl 的规划器分离到 PC/RPi GUI,我们可以做同样的事情。这将绝对保证通过程序的最快路径。我们还可以做更高级的事情,比如将 jerk 方程(又名 S 曲线)包含到加速度曲线中,或者做一些非常酷的事情,比如 Bezier/Hodograph 类型规划。所有这些都将独立于 Arduino 需要做什么。 我认为真正的诀窍是如何管理新界面并使其真正模块化,以便任何东西都可以插入其中。并尽量减少来回的数据流。因为我认为对于这样的事情,双向都需要大量数据。输入可能是通常的运动命令加上控制命令,如主轴启用等。输出可能是状态报告、缓冲区、错误报告等。可能有很多东西,但可能有一种简单的方法可以做到这一点。 |
大家好, 我认为 GRBL 目前非常有用。它就像一个黑匣子,你不需要知道它是如何做到的。你只需喂它,它就可以工作。 我最近把它变成了一个 Arduino 库,我认为这比当前的设置具有巨大的优势。通过使用 Arduino IDE,我们可以利用 配置是我想介绍给我的 Arduino 库的下一个重要步骤。向应用程序添加启用/禁用部件的功能将使其 配置还必须包括使最终用户易于配置引脚分配(不希望软件限制创造力)。这样我们就可以 您是否考虑过引入单元测试?这将消除开发周期中的一些复杂性,并提供更好的应用程序。 GRBL 的美妙之处在于,您可以根据需要将其复杂化。 你可以保持简单,或者像我一样让我的生活变得艰难…… 我正在寻找使用 3 层的更高级设置。
我认为 GRBL 有一个光明的未来。我们只需要摆脱路障。 你们有什么感想?;) |
@chamnit看看瓶颈在哪里会很有趣。根据我从阅读这里的问题和规划器重写中了解到的情况,主要瓶颈似乎是规划和实际的运动控制。我想我的主要问题是,我们是否正在接近 ram 绑定或 cpu 绑定(或两者)? 我将 grbl 用于我所有的 cnc 和测试台。主要是因为它是可破解的和开放的。虽然我不是 GPL 的忠实拥护者,但对于这个应用程序来说似乎没问题,因为它是由硬件隔离的。我的主要目标是让使用 javascript 与 grbl 进行通信变得超级容易(我在这里讨论)。 回到我们的问题,定制硬件对这种情况有帮助吗?(例如,在问题上投入更多(x)兆)或者我们真的会遇到在这些 8 位 MCU 上进行更多数学运算的问题吗? |
@Protoneer: 我似乎在问这个问题,“下一步是什么?” 每隔几个月,似乎总是会回到坚持当前的发展道路,至少在一段时间内。但是,我认为有某种发展可以重新提出这个问题。这次是RPi。 所以,现在的问题是,当你在 Arduino 层次结构中上升时,AVR 芯片并没有真正变得更快,而且支持多个板和芯片可能会很痛苦。这就是为什么我们目前不支持除 Uno 之外的其他任何东西。(顺便说一句,我们使用 Arduino IDE 库来编译 Grbl。)我一直在想最好的办法是让 Grbl 尽可能独立于微控制器的变化。这意味着 Grbl 需要变得更简单,而不是更复杂。 一个例子是 ARM 芯片,如 Arduino Due。它没有 EEPROM,因此无法像在 AVR 芯片上那样在板上存储和更改设置和工作坐标系。那么我们该怎么办?破解代码以使其在 ARM 上以某种方式工作。只是看起来工作量不大。 如果我们从 Grbl 中删除所有计划、解析、设置等,并使其成为一个愚蠢的“move-it”控制器,这真的简化了我的想法,因为无论如何你总是通过 USB 连接到计算机什么。所以让计算机来处理设置、工作坐标、计划和解析。这更便于移植,特别是如果计算机界面是用 Java 或其他一些多平台环境编写的。另外,由于它是一个“愚蠢的 move-it”控制器,因此它更容易移植到其他微控制器上,而且可能比 328p 的功能更差。 但是,我同意你的观点,因为 Grbl 是一个黑盒子,所以有一种非常简单的美感。发送它 g 代码,它就可以工作。然而,尽管我喜欢让我的生活努力工作在 Grbl 的代码上,但它已经到了收益递减的地步,因为在不影响某些东西(即步进器性能)的情况下安装功能变得越来越困难。这是一项高效编码的练习,但是当我们努力挑战能力的上限时,可能有时间说什么时候就足够了。 就个人而言,Grbl 只需要在这里和那里做一些事情就可以让它成为初学者使用的一个很好的可用选择,但我认为它不会是专业级的,除非与更好的(更昂贵的)有很大的分歧) 微控制器或分离任务,这样我们就可以保留无处不在的 Arduino,并通过良好的界面设计获得那些专业级的功能。 @tmpvar: 刚写完才看到你的帖子。要回答你的问题,两者兼而有之。RAM 限制了规划器的大小以及您可以要求 Grbl 执行多少操作,例如功能。CPU 也限制了规划器的大小,因为随着它变大,它无法足够快地规划它。因此,获得“更好”的 AVR 芯片没有任何意义,因为 CPU 速度几乎相同。如果您想走得更远,ARM 是唯一的选择,但这也存在问题。主要是一个不断波动的芯片市场(据我所知,还有许可)。如果我们选择一个,随着更新和/或更便宜的芯片问世,我们能把代码移植到什么程度? 我不认为制造定制硬件是答案,因为总会有人让它变得更好、更便宜。我仍然相信 Simen 最初的愿景是使用免费可用且无处不在的硬件,例如 Arduino,并通过良好的设计围绕问题进行设计。使用提议的简化 Grbl 模型,它确实破坏了这一切的黑匣子之美,但我认为它可以打开很多门,并使其潜在地更强大和更有能力。(至少在理论上)。 |
另一个线程提到通过硬件抽象层使 GRBL 平台独立,因此您可以在不同的微处理器上运行它。我猜这将使它更加通用,因为如果需要,您可以使用更快的微型/板(Arduino Due :-),但如果您只需要一小部分,则可以使用较小的板。 大声笑,我打字慢了;当我发布时,它已经过时了 |
我将 GRBL 移植到 STM32 平台,但定时器存在一些问题。定时器图没有详细描述,所以需要通过数据表学习 avr timer。 |
@chamnit说得通。似乎将 grbl 拆分为它的组成部分会使探索这些和其他选项更容易。我喜欢 node.js 如何使用 libuv、cares 和 v8 做到这一点。基本上,会将副本添加到 repo 我们现在可能可以实现这一点,同时在 atmega328p 上保留有福的完整 grbl,并允许人们开始破解这种纯步进/方向控制器的新愿景。我很确定许多项目都会欢迎这种模块化,包括在 reprap/3d 打印机和lasersuar 上使用修改后的 grbl 的人。我感觉到这些变化将极大地改善升级路径,并且@Protoneer提到,每个单元都可以有一个测试套件来确保发布是好的。 |
为了增加共识,我也得出结论,“Grbl 的未来”可能沿着两条可能的路径之一:可以在 ATmega328p 上做最多事情的最小代码(这基本上是当前版本所具有的)实现)和最好的代码,易于阅读和移植到许多架构,并且可以配置为做一件事或全部,如你所愿(很像 Linux 内核)。 我目前正在研究这两个想法,我可能应该警告您,由于反馈循环,您将无法从 Grbl 移出尽可能多的东西。您需要在控制步进器的芯片上运行的内容中保持足够的智能以确保其安全,例如进给保持和急停。 我目前正在进行的设计基于许多 AVR,其中之一是与外界通信和 G 代码解析,每个轴一个用于电机控制。能够只专注于执行运动命令有很大帮助,但最终代码并不完全简单。它可以工作并且适合 ATtiny84,但它很复杂。另一方面,能够只专注于 UI 和 G 代码解析也有很大帮助,因为我可以更接近标准(实现更多命令并支持更多功能),甚至获得真正的带有流控制的串行端口. 这总是一个权衡。 现在对于 ARM:如果您只打算编写在 ARM 或任何 ARM 上运行的代码,则不涉及许可。仅在 (1) 如果您想设计自己的基于 ARM内核的 CPU 或 SoC或 (2) 如果您想直接访问嵌入在某些基于 ARM 的 SoC 中的某些 GPU 时,才涉及许可。 您有许多用于 ARM 的 GCC 端口,包括一个免费提供的官方端口,并且(编译器的)代码是开源的,因此这里没有限制。ARM Cortex CPU(即当前的 CPU)具有称为 CMSIS 的东西,它是一个用于以统一方式访问其功能的库(将其视为 HAL)。不要将它与 libc 混淆,因为它不是 libc。avr-libc 混合了 libc 和 AVR HAL 部分,而 ARM 系列具有完全不同的 libc 和 HAL 库。使用 CMSIS 让您不必记住,芯片 A 上的 TIMER1 在端口 X 上,而芯片 B 上的端口 Y 上。让生活更轻松。 如果您选择采用 ARM 方式,请选择电路板,而不是芯片。走进第一家电子商店,查看电路板,查看规格(CPU MHz、闪存、RAM 和浮点支持;它是否具有嵌入式 JTAG/SWD?),然后选择您喜欢的第一块电路板。板支持包将包含库和头文件,允许您以一致的方式使用所有 GPIO 以及所有其他 CPU 外设。大多数 BSP 位于 CMSIS 之上,因此,libopencm3 具有扩展的板配置文件集合,因此您可以直接为板 X 编写代码,而无需关心供应商提供的内容。 由于您正在尝试创建一个硬件控制盒,因此您需要一个可以针对裸机的板(一些板只支持将 Linux 或 Android 作为裸机运行,并且只有一个“托管”工具链,即允许您为在其上运行的 Linux/Android 编译程序)。 最后,ARM 就像在类固醇上的 AVR 这都是我的。 |
我是 grbl 的另一位快乐“用户”(很高兴知道 grbl 的含义)。 我用一个 Arduino UNO R3 用这个漂亮的 grbl 代码在我的 cnc 中更改了他的“专业”卡。 我的cnc用他的旧卡工作得很好。 – 为什么我做出这个改变? 之前: 之后: 恕我直言 grbl 即将完成。? 对我来说 grbl 的下一步是什么?
对我来说,下一步超出了范围,因为是其他项目。 也许它不是其他项目…… 或者类似http://www.galilmc.com/catalog/blm_n23.pdf无刷电机,编码器已经在那里。 目前看来更贵。 很抱歉这个超出范围的评论,并感谢所有这些出色的工作。 |
@csdexter: 和往常一样,你带来了一些有趣的观点。 在考虑了会发生什么变化之后,我同意纯代码量可能不会改变,但我认为主要的解析器规划器 CPU 瓶颈将被消除。这释放了更多的周期来做其他事情,比如闭环伺服控制,并且随着事情的扩大而更加一致。我一直将规划器视为这种“千斤顶”,它可以随时弹出来导致大量问题,因为某些极端条件可能会使 CPU 不堪重负。虽然 Jens 和我最近一直致力于使规划器更加高效和健壮,但它并没有解决规划器无法很好扩展的根本问题。 我完全同意 ARM 拥有强大的能力,从更复杂的规划器算法、更大的规划器缓冲区到复杂的运动曲线和伺服闭环控制。我想我只是犹豫是否承诺某个特定的董事会并坚持下去并进入一个随着事情变化而不得不更新事物的循环。特别是如果主板或芯片组失败并且不再是主流。我想我想要做的是重构代码库,这样我们就可以在 AVR 328p 上吃蛋糕。不确定为 328p 努力工作是否真的有意义……(迟到了)。通过使代码更加模块化,就像解耦步进算法一样,也许在某个地方有一个中间立场,因为就像现在一样,一些 Grbl’ 无论如何,我同意每个人的观点,即 Grbl 功能接近完成。我不是为了以任何方式杀死Grbl而提出这个问题的。它肯定会持续一段时间,但肯定是在它的极限。 好的。睡觉时间到了。zzzz。 |
昨天偶然发现了这个https://github.com/dewy721/EMC-2-Arduino 。因此,当使用仅运行外部提供的配置文件的 arduino 设置新项目时,我们需要确保我们不只是复制它。EMC2 功能强大,受到许多人的喜爱,用 arduino 替换 ol 并行端口是许多人一直在等待的事情。但似乎存在速度问题(我读到 1 英寸/转主轴的速度为 130 英寸/分钟,将其缩放到我的 1 毫米/转意味着 130 毫米/分钟,这绝对太慢了)。 总结一下:EMC2 是一个很棒的工具,而 EMC-2-Arduino 可能是一些希望分离 grbl planner 和 stepper 的人会选择的东西。也许可以使用 grbl 步进内核改进 EMC-2-Arduino。 |
我认为将 Grbl 移植到更好的微控制器没有太大意义。 我知道拥有一个可以直接输入 G-Code 的黑匣子是件好事,但是 Grbl 现在有一些限制。没有问题。 那么,将 Grbl 声明为“基本完成”并修复剩余的问题并将其命名为 Grbl 1.0 怎么样? 编辑:我写的时候还不知道 EMC2-Arduino。但是在快速浏览一下 repo 之后,我认为它无法与 Grbl 质量代码相提并论。 |
@jgeisler0303EMC-2-Arduino 是在使用 LinuxCNC 时取消并口的非常冒险的尝试。它包括一个新的 HAL 模块和 Arduino 代码,以使开发板通过 USB 串行端口而不是并行端口与这个新的 HAL 模块进行通信。 这是有风险的,因为 USB 不是实时的,USB 串行端口更不实时。仅从科学的角度来看,作为概念证明,它才有趣。此外,我不相信 HAL 模块的质量(如果要在 LinuxCNC 中正常工作,它必须几乎是 linux 内核质量)。 @cody82如果我们想效仿行业趋势,你不需要电脑/反正/。我的项目的第二个版本完全针对无头概念:只需附带一张 SD 卡,将其放入并按下“PLAY” |
@csdexter我真的不知道“无头”的定义。当机器有按钮和显示器时,它不是无头的,即使那里没有x86-PC。 感谢您提供有关 EMC-2-Arduino 的信息。那时它与 Grbl 完全不同。 |
这是一个在 PIC微控制器和 RPi PC之间使用 SPI 的 Raspberry Pi Linux CNC 项目。 http://www.raspberrypi.org/phpBB3/viewtopic.php?f=37&t=33809 http://wiki.linuxcnc.org/cgi-bin/wiki.pl?RaspbianXenomaiBuild 我正在阅读任何具有快速 SPI 接口的微控制器都可以使用。 PS:刚刚在这里找到了这个板:http: //picnc.googlecode.com/git/hardware/PICnc_Jr.pdf |
阅读 RPi-SPI 接口:只是一个想法:RPi 具有 GPIO 并且可以运行 RT Linux 内核。那么,难道不能直接从那里对步进脉冲进行位敲击吗?我的意思是,LinuxCNC 可以通过并口实现,为什么 RPi 不能呢?它已经足够快了,不是吗? |
延斯, 我认为你仍然需要一个实时脉冲发生器——如果你正在做带有反馈的伺服系统,这会增加一倍。脉冲延迟和抖动需要控制在 1 微秒以下 – 最好更紧密 – 特别是在高速下。这是 LinuxCNC (EMC2) 和 Mach3 的最大绊脚石。操作系统做它想做的事,当它想要并且脉冲受到影响时。 具有讽刺意味的是 – 是 Simen 最初开始使用 grbl 的原因。如果我错了,他可以纠正我,但“grbl”最初是“gerbil”的缩写,它应该是运行在 LinxCNC 上的串行加密狗。但当他意识到那行不通时,grbl 诞生了。
|
据我了解,RPi 上的 ARM 不是很快,但 GPU 是 – 但是 GPU 不能成为实时的一部分,这会导致所有问题…… |
好的,我从未运行过 EMC2。但我从没想过它会受到抖动的影响,因为它受到了如此多的欢迎。 我说这一切并不是因为我想甩掉我的grbl,相反,我喜欢它。我只是想稍微克服一下,可以说,为潜在的 grblPro (TM) 准备最好的起点:-) |
@cody82今天的 ARM Cortex-M 不属于“异国情调和昂贵的微控制器”的描述,所以我不知道你指的是什么芯片。 至于 GPIO 速度,或多或少等同于 RPi 的东西(如 Olinuxino 系列)可以通过 /proc/kmem 接口达到至少 2MHz(是的,这是在 Linux 中作为进程运行时)。当然,为裸机编写代码会使事情变得更好——就像在 AVR 上使用 OCR 切换引脚而不是手动操作时一样。 |
@csdexter:(打败我——我在打字的时候你在打字。) @jgeisler0303– Jens,我在你的帖子中忽略了实时 linux 的“实时”部分,因为 EMC 所基于的 Ubuntu 变体不是实时的。我什至不会提到 Mach3 所基于的 Windows 操作系统(哎呀,我刚刚提到了)。但是操作系统引入的抖动和确定性是问题所在。这催生了整个 SmoothStepper(和类似的)开发,作为这个问题的实时缓冲区。 我担心的是,将 rPi 从股票 linux 移到 RT 变体会引入复杂性,如果我们让低 328p 做它做得好的事情,可以避免这种复杂性,在这种情况下提供段/脉冲生成和可能的时基校正。更强大的 MCU 可以做类似的事情,尽管速度更快。 |
神圣的frijoles这个线程爆炸了。很多很多想法要考虑。让他们继续来。:) @alpharesearch: 只是看着在 RPi 上运行 LinuxCNC 必须做的一长串事情就让我感到畏缩。尽管它可以打包,但它只是让我想起了 LinuxCNC 在新用户眼中的复杂程度。我想我忽略了 grbl 的基本原则之一:KISS(保持简单愚蠢)规则。如果进入门槛太高,没有一个头脑正常的人会使用它或尝试它。grbl 的进入门槛非常低,几乎没有风险,这可能就是 grbl 和 reprap 固件如此受欢迎的原因。 软限制仍在进行中。我合并了@bungao的代码到 dev 分支,但它有问题需要在发布前修复。我已经将它们在 mc_line() 函数中的内容作为注释进行了注释。在不久的将来,我有零时间进行编码。任何有能力并且有时间的人,请随时解决这个问题。 @csdexter:关于 EMC2 到 Arduino,我同意你的看法。USB 接口不是实时的,从他们的消息来源可以看出,他们没有做任何事情来解决这个问题。作为最好的情况,我认为低阶跃频率只适用于这种方法。 当您提到 2MHz GPIO 功能时,这是否意味着可以使用 RPi 实现实时步进脉冲发生器?您对实时内核的并行端口速度限制的陈述有点困惑。如果可能的话,需要做些什么才能在 RPi 上进行这样的事情?LinuxCNC 似乎已经在努力做到这一点,真的去那里有意义吗?这是有道理的,因为 RPi 看起来是下一个 Arduino,无处不在而且便宜得离谱。 我倾向于同意@aldenhart关于引入复杂性。我真的很难确定 grblPro 之间有什么不同(正如 TM’d@jgeisler0303… gnea 作为名称怎么样?)和 LinuxCNC 的 RPi 版本。似乎正在收敛。在看到一些工作和调试之后@winder一直在做只是为了让 UGS 串行接口正常工作(他一直在做出色的工作)和@aldenhart对 Mach3 和 Windows 的评论,我开始认为远离操作系统是谨慎的。软件涉及很多新变量,因此简单地处理硬件更改可能会更容易。 我还必须提到,我见过的大多数 Pro CNC(10 万美元以上 Haas)确实有多个处理器来分散财富。一个管理所有 UI,另一个用于实时规划和运动执行,另一个用于闭环伺服控制。也许 grblPro/gnea 应该着眼于真正推动闭环控制和高级算法的极限。LinuxCNC 和 Mach3 代码库如此庞大且难以更改,轻量级的 grbl 能够从步进器转移到下一个东西是有意义的。 |
@chamnitOlinuxino-iMX233通过 /proc/kmem 接口拉出高达 5MHz 的 GPIO 切换。当然,这是循环运行的。这也没有说明这些脉冲中的抖动。 LinuxCNC 也有同样的问题,但它实际上承认了这一点,并且不允许你将它驱动到它认为它可以在它运行的当前硬件上安全地做的事情之外。 在非实时操作系统中执行实时任务的问题(也称为 MS-DOS 与 Windows XP 问题)是在执行实时任务时几乎不可能“冻结世界”。还记得当 Java 内存不足并且您的应用程序在 JVM 进行垃圾收集之前冻结吗?这就是“停止世界”的样子。 我们有一些机制可以让操作系统“请”让世界停止很短的时间(比如 Linux 上的 RTAI 或 Windows 上的实时优先级)——但操作系统不能保证它可以“屏住呼吸”,最重要的是,它将能够在n毫秒后准许另一个相同的请求。 这就是为什么飞机或军用火箭之类的东西不运行通用操作系统而是运行实时操作系统的原因。实时操作系统对上述两个问题有保证:系统注意到您想要与之交谈的最长时间以及它可以为时间关键事件提供服务的最小和最大粒度。 如果您想笑一笑,请记住 Windows 3.11:它是完美的实时操作系统,因为它使用协作多任务处理 |
@csdexter: 谢谢你的澄清。因此,如果我对您的理解正确,那么确定操作系统的“实时性”程度是非常临时的。取决于很多事情。这可能是我们应该避免的事情。 也许这真的让我们找到了答案。这就是我们区别于 LinuxCNC 和其他人的方式。没有操作系统。操作系统仅作为接口是可选的。我想这就是为什么 grbl 一直在这里。将其保留为一个黑匣子,一站式解决方案,而且价格便宜。 因此,我认为剩下的主要问题之一是硬件选择。我们之前已经讨论过这个问题,从那以后有什么变化吗?除了 Arduino Due 之外,还有其他主要竞争者出现吗?选择 Due 的主要原因是 Arduino 社区的支持,以及如果 CNC 不是某人的一杯茶,则将 Due 用于其他任务。 基于 328p 的 Arduinos 最好的事情之一是制造或购买克隆非常便宜。因此,世界各地的人们都可以使用它。自从 v0.8 发布并且我们开始通过 bitly 跟踪下载统计数据以来,grbl 的下载量来自 60 个不同的国家,22% 的美国,12% 的德国,8% 的中国,以及从肯尼亚、智利到斯里兰卡的地方。所以,我认为保持便宜是当务之急。有人知道 Due ARM 克隆吗?它存在吗? |
@chamnit那里有 RTOS,但它们是为此目的而构建的。如果我没记错的话,甚至还有几个人性化的(即具有类似于 X11 或 Windows 的 GUI)。当然,在这些情况下,与实时线程相比,GUI 的优先级最低。为 IBM PC 等设备配备 RTOS 的问题在于,硬件本身需要操作系统定期完成的工作。RAM 刷新(例如)自动发生,但填充 VGA 帧缓冲区并执行各种 PCI 转向工作需要持续的操作系统干预——这就是为什么你不能在脉冲 GPIO 引脚时“停止世界”一秒钟。“世界”只会崩溃 一个极端的例子:BeagleBoard/BeagleBone 上的 CPU 实际上有两个额外的、更小、更笨的 CPU 内核(沿标准 ARM 内核),专门用于在主 CPU 没有任何机会踩到它们的脚趾的情况下进行实时处理。如果他们在消费设备方面走得那么远,想象一下它如何在行业中寻找“真正”时间关键的应用程序。 没有人关心 ARM 生态系统中的克隆,因为可供选择的电路板实在太多了。Arduino Due 售价 39 欧元,配备 Cortex-M3@84MHz。STM32F4DISCOVERY 售价为 15.70 欧元,具有 Cortex-M4F@168MHz(“F”表示硬件浮点支持,Due 缺乏)+ 板上额外的外围芯片。在这两个价位之间,您几乎可以找到任何东西,在 CPU 和外围功能的任何可能组合中,那么为什么会有人考虑克隆呢? |
@Protoneer: 太棒了。感谢您为此所做的所有工作。我完全支持您正在做的事情,并希望将其全部集成到 Grbl 中。目前,我的时间很紧迫,而且我所拥有的,我一直在努力解决进给率倍率问题。我很高兴地说,我已经取得了突破,在我克服了自己并决定破解几乎所有代码都值得付出努力之后。它应该可以工作,但我只希望 AVR 足够快来完成它。 也许我们可以离线谈谈如何将你的东西集成到 Grbl 中。主要是确保我们了解切换到 Arduino IDE 如何影响性能和/或大小。也就是说,如果 IDE 强制执行我们无法控制的任何事情。 我同意 RPi。它非常适合 CNC 应用。不久前,用户讨论过使用它作为网络服务器通过智能手机或平板电脑远程控制 Grbl,因此您不需要在 CNC 上设置专用的显示器/键盘/鼠标。只需一部智能手机即可设置、运行和监控 CNC 作业。我认为这会很棒。 |
我宁愿保持 Grbl sw 平台不变,也许会推出一个新的基于 ARM 的硬件平台,它允许更多的功能/改进,而不是在 2 个 CPU 平台上分担负载。ARM-7 很便宜,而且性能比 8 位 AVR 有了很大的飞跃,但如果这还不够,可以使用 Cortex M3 或 M4 以及 512K 闪存、128K RAM(这些天也相当便宜)。 我已经将早期版本的 Grbl 移植到了我 3 年前设计的基于 ARM7 的 3 轴 CNC 控制器,并在几个周末前将其更新为 Grbl V0.8c(让我知道有人对此感兴趣)。它运行得非常好(我喜欢 V0.8 中所做的所有改进)。运行 Grbl,它不受内存限制(128K 闪存,64K RAM)或 CPU 速度限制(58MHz)。它在我设计的带有可拆卸步进驱动板的定制板上使用 NXP LPC2106(以防我炸了一个,这还没有发生),主轴的 SSR 等。我使用 WinARM 进行开发。 |
@garyren: 已决定将 Grbl 保留为软件平台,当我们使用 ARM 时,我们将尝试使其尽可能抽象,以允许不同的 ARM 架构兼容。我们将专注于 Arduino Due,以便轻松访问和兼容当前的步进屏蔽等。我们有很多工作要做,但我很想看看您如何编写和更新您的 ARM 版本的固件,以便为我们需要考虑的事情奠定基础。你的代码有链接或回购吗? |
听起来不错……抽象硬件特定任务(串行、步进定时器中断、限位开关和其他 i/o)将有助于向前发展,从而更容易将主线构建移植到各种硬件平台。我看到有几个与 Arduino Uno 兼容的 M3 板,以及上面提到的 Due。我在飞思卡尔 Kinetis 系列 Cortex M4 部件方面也有很多经验,我也可以在 Grbl 上启动和运行。 我很乐意分享我的 Grbl V-0.8c 的 LPC-2106 端口。我会在这个周末发布并分享链接。 |
佛得 评论 on 28 Apr 2013
我之前也出于同样的原因考虑过螺旋桨芯片(8核)
|
这是我的恩智浦 Grbl 端口的仓库: https ://github.com/garyren/Grbl-ARM7 。我对 github 发布有点陌生,希望它做得对。 硬限制和家庭限制仍然需要移植,但它至少处于工作状态(今天磨了几个测试件)。希望这个周末能完成剩下的项目。 |
@garyren: 太感谢了!这将非常方便。我对 ARM 以及它们在不同制造商之间的差异知之甚少。 我很高兴看到它在你的机器上运行。祝移植顺利!(归位周期不是很好,但可以工作。它在待办事项队列中以将其集成到主步进算法中。我希望还有更多。今天我很幸运地使用了以下片段的进给率覆盖我已经有时间了。) |
@garyren:嘿…我正在用 grbl 做同样的事情..但我将它移植到 LPC2138 上…我已经浏览了您的存储库,但您仍然没有包含 LPC210x.h 文件。所以我不能在程序员的记事本上构建。你可以上传 LPC210x.h 文件吗?谢谢你。 |
当然,我会在今天晚些时候上传。这些 LPC 文件是 WinArm 包的一部分,这就是我没有包含它们的原因。 |
@garyren:是的,我已经在使用 WinARM …但我认为您已经在 LPC210x.h 中进行了一些更改,因为仍然需要定义一些寄存器位。您的项目还包括 lpcADC.h lpcUART.h lpcVIC.h 和许多其他文件。这些文件也尚未上传。我正在将您的项目移植到 LPC2138 上。所以请您尽快提供这些文件。谢谢你。 |
@garyren: 非常感谢你的文件我都拿到了。如果我成功将它移植到 LPC2138 上,我会将它发送给你。 |
我希望我基本上不会用这个来解决一个旧线程,但我正计划做些什么@chamnit理论化。也就是说,将 GRBL 剥离为线性运动控制器,删除所有高级功能,如 G 代码解析和规划(这让我很痛苦;我认为程序员能够在这个平台上适应所有这些功能真是太棒了)。 我将主要专注于运行机器人的软件,该机器人的设计与 CNC 路由器或 3D 打印机相同,但带有夹具或其他类型的附件作为活动钻头。话虽这么说,有人可以提供有关拉出一些积木的建议吗? |
@wkevina, 好时机。我刚刚做了一个具有相似目标的叉子。 |
@wkevina:在大多数情况下,使用 Grbl 代码运行机器人是可行的,但不是最优的。对 Grbl 所做的主要假设之一是轴的正交性,或者换句话说,它们在笛卡尔类型的坐标系中独立移动。这种假设使得管理步进电机加速度变得更加简单,因为它们并不相互依赖。因此,如果一个电机在移动某物时被最大化,那么其他电机正在做的事情实际上对其没有任何影响。 如果它们相互依赖,例如具有多个关节的机器人手臂,您必须能够解释这种依赖关系。例如,想想棒球投手在投掷快球时的手臂。所涉及的力量令人难以置信,但投手已经知道如何在正确的时间和同步地弯曲肘部、伸展和旋转手臂,以及轻弹手腕。否则,他们的手臂和韧带就会碎裂。对于机械臂,您需要做同样的事情。当然,您可以增强电机或在远低于最大电机扭矩的某些安全限制内运行以解决此问题,但最终您创建的机器比执行相同操作所需的更大(且更昂贵) . 这就是使机器人技术特别困难的原因。基于应用程序和计算密集型的数学模型。AVR 没有计算能力(也没有存储空间),但 ARM 有。我一直在与其他一些 Grbl 成员离线谈论为 grbl ARM 做机器人技术,但这有点过分了。虽然我应该说,人们正在做或将在不久的将来做的任何工作肯定会有所帮助。无论如何,我不想阻止你尝试让某些东西发挥作用。它应该可以工作,但就像我说的那样,如果没有这些数学模型,它并没有你想象的那么好/最好。 关于这个解耦的事情,我们正在考虑将 Grbl 运动控制子系统变成一个库/套件,任何人都可以将这个库插入到他们的系统中,即 reprap、grbl cnc、机器人。我们将尝试使其更加通用。首先,我们这样做的主要限制因素是 328p AVR。没有空间或足够的速度进行抽象。所以这可能只是ARM。我们已经在这方面开始了一些工作,但还有很多工作要做。 |
@chamnit @ashelly:为了澄清,机器人是一个笛卡尔机器人,有导轨、龙门架和独立的 XYZ 轴。非常类似于拾放机或 CNC 路由器,但设计为实时控制,而不是使用预定义的运动计划。控制器将运行电机并以 GRBL 的方式跟踪机器状态,并通过一些串行协议与主控制器通信。您可以看到这与 GRBL 的当前功能非常相似,只是具有不同的优先级。 因此,我认为修改后的 GRBL 非常适合运行它,此外,我的机器将非常适合作为开发基于 GRBL 的运动库或套件的测试平台。这台机器很快就会完成,我很想参与一个新的图书馆。显然我的机器的需求与其他机器的需求会有所不同,但我认为可以找出一组核心功能,以及针对更具体需求的扩展机制。例如,运行带有爱好伺服的机械手或相机。 如果有足够多志同道合的开发人员,请让我知道一个新问题来讨论这个问题。 |
正在被利用的利基市场很重要。是的,可以修剪 grbl,让我们说 emc-2 是控制器。但他们正在为此开发一款软件。ardunio 成为打印机端口模拟器。 |
@r01walker:下一个合乎逻辑的步骤是进入 Mega 或 Due,在那里我们可以继续支持所有当前使用 Grbl 的用户,并在不更改引脚分配的情况下扩展功能。Mega 将是发展最快的,因为它几乎与 Unos 上的 328p 相同。由于缺乏工具链和历史,ARM Due 带来了更多困难,但提供了一个数量级的强大功能。然而,正如许多项目已经完成的那样,也没有任何事情可以阻止人们分叉和做自己的事情。 链接和同步多个 Unos 将过于复杂而没有什么好处。它们的同步同时确保没有故障是问题所在。我知道没有任何先前的工作可以解决这个问题,因此它需要重写 Grbl 的许多核心功能和大量的测试/调试。 |
换档重写是必要的。与 rewrite 测试的措施是必要的。这是最重要的。并且没有不尊重这个主要问题。而是讨论我的想法。为什么需要链接 unos?g 代码行的编码是否不够,例如,让我们把它放在最坏的可能迭代 x 轴上 1 个 uno y 轴上另一个 z 轴上。风扇和挤出机热端,以及进料器正反转(步进电机)。z 轴板携带的两个步进器。 ag 代码下来它通常是一个 g00 或一个 g01 它具有与联邦一起包含的 axy 和 z 轴命令。联邦被触发一个计时器所有板必须使用相同的计时器。单独的板解析出 g 代码和命令的运动以及单独的 xy 或 z 命令,并在规定的时间内移动轴。每个单独的板不需要看到整个过程,只需要看到其编码轴的单个过程。定时脉冲。结束命令脉冲。为了真正的多任务定时操作,需要在所有 unos 之间放置两条线。可以将代码分段为源代码,以便进行分离。在编译。 此外,我把它放在桌面上不是为了不尊重或挑战,而是为了提出他们的想法,有时学习就是给予。诚然,我想要更多的容量。这种方法是可用的。并且具有成本效益。我见过以 1200 ipm 快速运行的马扎克卧式磨机。停止 .1 远离托盘的零件。我不相信这么大的机器可以在任何类型的桌子上快速运行。我看到一声巨响、浓烟、一个火球和弹片。我第一次这样做时,你不可能用大锤在我的屁股上扎一根针。我吓坏了。现在我想建立一个挤出机房间,连接到他们自己的电脑,使用kvn开关来操作电脑。这些机器将是末日机器。他们将制造零件 24-7。这些机器越快。他们赚得越多。速度是计算能力刚度,电机功率,挤出机的容量。塑料的质量。市场是一种特殊的订单或精密模型, 2014 年 1 月 31 日星期五上午 9:44,Sonny Jeon notifications@github.com写道: @r01walker:下一个合乎逻辑的步骤是进入 Mega 或 Due,在那里我们可以继续支持所有当前使用 Grbl 的用户,并在不更改引脚分配的情况下扩展功能。Mega 将是发展最快的,因为它几乎与 Unos 上的 328p 相同。由于缺乏工具链和历史,ARM Due 带来了更多困难,但提供了一个数量级的强大功能。然而,正如许多项目已经完成的那样,也没有任何事情可以阻止人们分叉和做自己的事情。 |
@r01walker: 明白了。这让我想起了一年前的一个问题线程,它谈到了拆分 Grbl 的板载进程,因此它不必同时进行通信、g 代码解析和单步执行。基本上,这个想法是将步进控制分离到它自己的 Uno 上,并将所有其他东西卸载到更强大的计算机或另一个微控制器上。Uno 所要做的就是接收实时步进或非运动命令并执行它们。我们采用这种方式是因为在同一块板上处理所有时间关键型任务要容易得多。 我想仍然可以做这样的事情,特别是使用 v0.9c 中的新步进段缓冲区,它创建了需要发送的明确截止线。但我认为一旦 ARM 版本发布,我认为我们会发现所有这些工作都毫无理由,因为 ARM 芯片将能够做我们想要的一切,多合一,有额外的周期来备用,并且能够更快地推动机器。 |
@r01walker: 现在想想。这并不意味着我们不能朝着这样的方向努力。事实上,我一直在思考如何将所有这些流程解耦,以便人们可以在他们的各种项目中零散地使用这些概念。值得关注的一件事是如何将规划器和速度曲线算法更改为包含 jerk(加速度的导数)的算法,以改善大型、功能更强大的机器(如 Haas 式生产 CNC)的运动控制。 v0.9c 的部分内在设计就是解决这个问题,但它仍然过于集成,无法做到这一点。虽然改变事情不会太难,以便以后可以选择。 |
我仍在进行构建,测试,哎呀为什么我没有看到,重新设计挤出机上的构建和测试周期。 2014 年 1 月 31 日星期五上午 11:59,Sonny Jeon notifications@github.com写道: @r01walker: 明白了。这让我想起了一年前的一个问题线程,它谈到了拆分 Grbl 的板载进程,因此它不必同时进行通信、g 代码解析和单步执行。基本上,这个想法是将步进控制分离到它自己的 Uno 上,并将所有其他东西卸载到更强大的计算机或另一个微控制器上。Uno 所要做的就是接收实时步进或非运动命令并执行它们。我们采用这种方式是因为在同一块板上处理所有时间关键型任务要容易得多。 |
我们(TinyG 工作人员)一直在处理运动控制器可扩展性的许多相同问题。Kinen 规格是我们提出的。这是一种扩展核心 CNC 功能的方法。https://github.com/kinen/kinen/wiki 虽然 Kinen 看起来像一个硬件规范(确实如此),但它更像是一个使用 JSON 作为通信“总线”的软件规范。不要太拘泥于硬件插头的定义。下游 Kinen 设备可以是 (1) 插入(“鳍”)的小板,可能通过 SPI 连接,(2) 在某些网络上运行的下游设备,或 (3) 实际运行在主处理器空间中的嵌入式软件模块但在其他方面是松耦合的。 Kinen 提供硬件同步,并使用 JSON / RESTful 通信在组件之间进行通信。我将在旧金山湾区 Maker Faire 之后的一周在旧金山举行的 O’Reilly Solid 会议上就此发表演讲。 |
显然我已经引起了兴趣。我只是一名机械师,数控程序员,我拥有电气维修学位。我可以编码,但我是一个斧头程序员。我可以对 PLC 进行编码,并且可以做其他人做不到的事情。我可以理解 C++,但我没有灵感去做很多编码。感谢我的第一任妻子是个了不起的女人,我花在电脑上的时间比她多。我家有六个联网的电气柜。 这种方法类似。不一样。我不想连接ardunios上的总线。我不需要。 我使用 USB 集线器。 我将此集线器插入计算机,然后将 ardunios 插入此集线器。 计算机将所有 ardunios 识别为单独的设备。 像 ide 和 scsi 链一样,发送到该集线器的所有数据都会发送到所有 ardunios。 没有任何ardunio的二次寻址。 各个ardunios不会因无效代码向计算机返回错误。它只是彻底解析软件并结束。它没有给出任何动作或响应,因为软件无法识别该命令。 我把四行菊花链在所有的ardunios上。命令行。当运动被激活时全部设置为低,当每个单独的命令完成时全部单独设置为高。当所有行都设置为高时,执行下一个命令。所有 g 代码语句都设置到所有机器上的缓冲区中。 该软件将g代码语句解析为单个单词和它需要运行的操作模式。 ardunio 1是x轴。包括全、1/2 、1/4、1/8 步。启用、睡眠和限位开关。保存该驱动器的偏移表的表。这包括该轴的所有 g 代码和 m 代码。 ardunio 2是y轴。包括全、1/2 、1/4、1/8 步。启用、睡眠和限位开关。保存该驱动器的偏移表的表。这包括该轴的所有 g 代码和 m 代码。 ardunio 3是z轴。包括全、1/2 、1/4、1/8 步。启用、睡眠和限位开关。保存该驱动器的偏移表的表。这包括该轴的所有 g 代码和 m 代码。 ardunio 4 是馈线电机(直流/交流或步进),热敏电阻。加热头,冷却风扇。加热器表。这包括硬件的所有 g 代码和 m 代码。 g 神发送器设置为与一个 ardunio 通信。 z 轴移动,然后 x 和 y 移动。因为这被编码到单独的轴软件中。由命令行控制。 g 代码被发送到 USB 集线器并传递给所有 ardunios。 例如。 g00x-0.75y-0.75z-0.75 步骤 1 ardunio 2 将 ardunio 2 线设置为低。选择 g00 模式并设置 g00 模式,然后传递 x 字并读取 y 字并执行它。在 g00 模式下 ardunio 3 将 ardunio 3 行设置为低。选择 g00 模式传递 x 字和 y 字并执行 z 字。 arduni 4 看不到它可以使用的 g 代码,因此传递到控制线的高度。 步骤 2 ardunio 2 完成动作并将控制线设置为高。 ardunio 3 完成动作并将控制线设置为高。 ardunio 已经设置为高。 第 3 步 第 4 步 ardunio 2读取第二句将命令行设置为低设置g代码模式为g01读取y字和f字。开始执行动作。 ardunio 3读取第二句将命令行设置为低设置g代码模式为g01读取z字和f字。开始执行动作。 ardunio 4 读取该行并且没有任何功能,因此它将其控制线设置为高。 step5 ardunio 2 完成其命令并将其控制线设置为高。 ardunio 3 完成其命令并将其控制线设置为高。 ardunio 4没有命令,它的控制线已经设置为高 步骤 6 第 7 步 ardunio 2读取g代码语句。设置控制线低。读取 g04 命令并将轴暂停所需的秒数。 ardunio 3读取g代码语句。设置控制线低。读取 g04 命令并将轴暂停所需的秒数。 ardunio 4读取g代码语句将控制线设置为低。解析出命令 m8 并打开冷却风扇。打开加热器。读取 g04 代码并暂停所需时间,然后以 5 ipm 的速度执行 m04 命令。(步进控制)ardunio控制的脉冲,操作主轴的m代码是模态的,无论控制线状态如何都可以操作。 步骤 8 ardunio 2在其功能中完成控制线设置为高读取下一行。 ardunio 3在其功能中完成控制线设置为高读取下一行。 ardunio 4在其功能中完成控制线设置为高读取下一行。 这是我看到的功能。如果多处理器控制功能放在单独的配置文件中。并且 x 轴和 y 轴和 z 轴放在单独的文件中。主轴控制是独立的功能,并编译成 ardunio 1、2、3、4 二进制文件并发送到每个 ardunio。 2014 年 1 月 31 日星期五下午 5:14,Alden Hart notifications@github.com写道: 我们(TinyG 工作人员)一直在处理运动控制器可扩展性的许多相同问题。Kinen 规格是我们提出的。这是一种扩展核心 CNC 功能的方法。https://github.com/kinen/kinen/wiki |
奥尔登哈特:Kinen +1;也很高兴在 GRBL V1+ 中同时支持这一点。为各种事物提供一种标准的开源接口端口会非常好,Kinen 看起来可以做到这一点。我希望3d打印机的人也加入。 r01walker:您知道您可以在 SainSmart 以 17.99 美元的价格购买 ATmega2560 Arduino 克隆。UNO 克隆是 10 美元——你的 USB 想法看起来太贵了,而且性能看起来一点也不好。在你的情况下,只需在更强大的电路板上多花一点钱…… |
@aldenhart:Kinen 是一个很酷的概念。我认为这真的取决于社区的吸收,否则你会被束缚在一个没有得到普遍支持的架构中。很难与 Arduino 扩展板的即插即用功能和无处不在竞争,例如您的 grblShield(又名 gShield)和 Arduino IDE 支持的库。社区肯定知道一体式防护罩设计存在局限性,这是一个潜在的解决方案。希望人们能加入进来,就需要什么达成某种共识。 |
感谢您对 Kinen 的注释。grbl 现在没有理由不能运行它——这只是将正确的 Arduino 引脚路由到一个或多个 Kinen 插座的问题。 一些背景故事可能很有用。Rob Giseburt(他在 Makerbot 的开放版本中编写了很多代码……但那是另一个故事……)我正在独立地为电机控制和传感器/执行器进行某种形式的扩展。我们决定汇集想法并提出 Kinen。请注意,它不是 Synthetos 项目。这是故意的。我们希望它是独立的。 至于广泛采用——谁知道呢?我们认为把它拿出来会很好,因为无论如何我们都会使用它,所以为什么不发布它。我们已经有一个哑步进板在运行,并且我们有用于 3D 打印的原型 Kinen 挤出机板。另外,我认识的一家 CNC 制造商正在开发大电流驱动器(4 安培左右),以及可以从 LinuxCNC 或 Mach3 驱动的哑主板。 所以它比我们坐在上面更受欢迎。我怀疑它是否会像 Arduino pinout 一样受欢迎,但意图不同。我们想要一种方法来添加多个外围设备并继续添加它们。SPI 支持 15 个从机,因此计划将从机选择线多路复用到多达 15 个 Kinen 插座。从那里它可以由 Arduino、BeagleBone 或 rPi 驱动。- 可能通过某种适配器屏蔽。所以意图与单板不同。 |
有人改变 Grbl 的工作方式吗? |
尚尼特 评论 on 14 Mar 2013
以下是关于 Grbl 的去向和下一步的离线讨论的摘录:
chamnit : 这是我最近经常思考的问题。Grbl 完成了吗?还是我们把它推到了最远的地方,却发现继续塞东西真的不值得?
所以,很长一段时间以来,我一直在想我们应该真正将 Grbl 剥离为只是一个步进翻译器。它所做的只是移动步进器并提供位置反馈和其他小事。我的意思是,我们取出 g 代码解析、规划和所有更高级别的控制,并将其放在控制器上,即 RPi,它更快、更有能力,并且不需要是真实的——时间本身。我设想控制器会计划好所有事情,并简单地将剥离的 Grbl 发送给它移动的小线段,并在其缓冲区中执行大约一两秒。因此,控制器可以即时发布具有新进给率覆盖的全新计划,并且只有很小的延迟。发送到 Arduino 的任何内容都将被视为已完成。
对此有何看法?我认为这相对容易做到。
jgeisler:沉重的想法,但有道理的。我会说答案是肯定的和否定的。但是“过时”有点太苛刻了。
grbl 是一个迷人的小工具,它适用于数千人(我猜),而且它会在未来的一段时间内使用。进入门槛尽可能低,前几天 Elija Insua 的视频提醒我,也有一些铁杆黑客喜欢使用命令行、脚本、管道和其他东西。而且我认为 grbl 还没有完成。我不确定我们究竟还剩下多少资源,但我认为我们目前在管道中拥有的大部分东西都适合(包括主轴 pwm – 甚至可能用于激光)。然后还有运行在 20MHz 的基于 mega644 的板……我们甚至可以安装第 4 轴——甚至可以用于挤出机……而且尝试尽可能多地塞进这个小板是值得的:
不需要 Arduino 加 RPi 加 PC,只需 Arduino 加 PC
GCode 接口是最自然、最常见和
可破解的接口 GCode 接口更容易为普通用户调试
轻量级无头设置更容易组合(对我来说,RPi 不算无头,因为它是一个完全开发的 PC)
黑客不必在两个平台上处理代码
一旦完成,grbl 非常棒(甚至比现在更棒)并且在我眼中也相当完整
任何超越的东西,比如固定循环,都可以真正做到由 feeder 完成
所以,grlb 是黑客工具。
从产品的角度来看,移动界面是更自然的选择,而且我已经看到在某处商业上确实做到了这一点。这将是一个完全不同的项目,并且没有 grbl 的竞争对手——即使它从相同的代码库开始。开始工作主要是职责问题。但是您需要一个团队在两个平台上紧密合作。
一些问题可能是由于控制器并不总是有足够的移动缓冲来安全地完全停止。这可能是饲料保持的问题。通常,任何需要监控当前位置的实时交互和内容,例如慢跑或归位,都会稍微困难一些。
但是一旦解决了这些问题,就会有很多可能性……我立即想到的一个是在位置反馈回路中控制 BLDC 电机——即使是 EMC2 也无法做到!
我知道步进器是爱好者的首选工具。但这可能仅仅是因为开箱即用的位置控制并不便宜。如果练习的目的是变得更“专业”,则应考虑使用更便宜、更强大的 BLDC 进行位置控制。
所以,我的判断是:坚持当前的 grbl 开发路径(功能,然后进行多样化的 make-config),如果存在需求和资源,则开始一个新项目。