开源改变世界!!

超越 Grbl 的下一步? #202

推推 grbl 2年前 (2022-10-30) 212次浏览 0个评论
关闭
chamnit 打开了这个问题 on 14 Mar 2013 · 82 条评论
关闭

超越 Grbl 的下一步?#202

chamnit 打开了这个问题 on 14 Mar 2013 · 82 条评论

注释

超越 Grbl 的下一步? #202
成员

尚尼特 评论 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),如果存在需求和资源,则开始一个新项目。

超越 Grbl 的下一步? #202
成员作者

尚尼特 评论 on 14 Mar 2013

@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 的下一步? #202

作为 GRBL 的用户和 CNC 世界的相对新手,我个人希望看到这样的东西。从 GRBL 卸载计划和“高阶”功能将释放大量空间并专注于运行步进电机、主轴等,而 RPi 的(相对)功率将使存储有更多的自由,计划、运行甚至监控作业。在我看来,RPi 取代了笔记本电脑而不是中间层……我在桌面上进行 CAD/CAM,并且可以想象将输出 gcode 发送到 RPi 以实际运行,而无需拖动旧笔记本电脑出柜。

话虽如此,它似乎更像是 GRBL 的衍生品,而不是替代品……尤其是在实施 0.9 的功能列表时。

将 CNC 与并行端口分离的想法是我决定为自己的机器选择 GRBL 而不是 LinuxCNC 的原因。

超越 Grbl 的下一步? #202

我也喜欢让 grbl 专注于低级别实时内容的想法,因为我认为 AVR 太慢了,无法做更多事情。在我的机器上,有时在高进给率下运行时效果不佳。我认为原因是规划者没有足够的规划范围。我可以在 grblgui(grbl btw 的最佳 GUI :))中看到缓冲区只有几毫米的前瞻。

超越 Grbl 的下一步? #202
成员作者

尚尼特 评论 on 14 Mar 2013

@cody82: 完全同意。Pro CNCs 可以预测数百行或完整的程序,通过将 Grbl 的规划器分离到 PC/RPi GUI,我们可以做同样的事情。这将绝对保证通过程序的最快路径。我们还可以做更高级的事情,比如将 jerk 方程(又名 S 曲线)包含到加速度曲线中,或者做一些非常酷的事情,比如 Bezier/Hodograph 类型规划。所有这些都将独立于 Arduino 需要做什么。

我认为真正的诀窍是如何管理新界面并使其真正模块化,以便任何东西都可以插入其中。并尽量减少来回的数据流。因为我认为对于这样的事情,双向都需要大量数据。输入可能是通常的运动命令加上控制命令,如主轴启用等。输出可能是状态报告、缓冲区、错误报告等。可能有很多东西,但可能有一种简单的方法可以做到这一点。

超越 Grbl 的下一步? #202
贡献者

Protoneer 评论 on 14 Mar 2013

大家好,

我认为 GRBL 目前非常有用。它就像一个黑匣子,你不需要知道它是如何做到的。你只需喂它,它就可以工作。

我最近把它变成了一个 Arduino 库,我认为这比当前的设置具有巨大的优势。通过使用 Arduino IDE,我们可以利用
Arduino 附带的硬件开发。Arduino 背后的社区也非常庞大,随之而来的是来自社区的更多投入和帮助。

配置是我想介绍给我的 Arduino 库的下一个重要步骤。向应用程序添加启用/禁用部件的功能将使其
与硬件集更兼容,并且通过拥有像 Mega/Due 这样的更好的硬件,您可以利用它而不受硬件的限制。

配置还必须包括使最终用户易于配置引脚分配(不希望软件限制创造力)。这样我们就可以
更好地支持当前和未来的硬件。我目前正在为 Grbl 开发硬件,以上是
对硬件开发人员很重要的一些事情。

您是否考虑过引入单元测试?这将消除开发周期中的一些复杂性,并提供更好的应用程序。

GRBL 的美妙之处在于,您可以根据需要将其复杂化。

你可以保持简单,或者像我一样让我的生活变得艰难…… :)

我正在寻找使用 3 层的更高级设置。

  • GRBL控制器(物理工作)
  • 中央处理(Web 服务器(RPI/计算机)-做中央控制,输入和反馈)
  • 浏览器上的图形用户界面。(通过浏览器从电脑、平板电脑、手机输入)

我认为 GRBL 有一个光明的未来。我们只需要摆脱路障。

你们有什么感想?;)

超越 Grbl 的下一步? #202
贡献者

tmpvar 评论 on 14 Mar 2013

@chamnit看看瓶颈在哪里会很有趣。根据我从阅读这里的问题和规划器重写中了解到的情况,主要瓶颈似乎是规划和实际的运动控制。我想我的主要问题是,我们是否正在接近 ram 绑定或 cpu 绑定(或两者)?

我将 grbl 用于我所有的 cnc 和测试台。主要是因为它是可破解的和开放的。虽然我不是 GPL 的忠实拥护者,但对于这个应用程序来说似乎没问题,因为它是由硬件隔离的。我的主要目标是让使用 javascript 与 grbl 进行通信变得超级容易(我在这里讨论)。

回到我们的问题,定制硬件对这种情况有帮助吗?(例如,在问题上投入更多(x)兆)或者我们真的会遇到在这些 8 位 MCU 上进行更多数学运算的问题吗?

超越 Grbl 的下一步? #202
成员作者

尚尼特 评论 on 14 Mar 2013

@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 的下一步? #202

另一个线程提到通过硬件抽象层使 GRBL 平台独立,因此您可以在不同的微处理器上运行它。我猜这将使它更加通用,因为如果需要,您可以使用更快的微型/板(Arduino Due :-),但如果您只需要一小部分,则可以使用较小的板。
我猜可以在生成文件中轻松定义(子)集(但我不是真正的程序员,所以这有点疯狂。

大声笑,我打字慢了;当我发布时,它已经过时了

超越 Grbl 的下一步? #202

x893 评论 on 14 Mar 2013

我将 GRBL 移植到 STM32 平台,但定时器存在一些问题。定时器图没有详细描述,所以需要通过数据表学习 avr timer。

超越 Grbl 的下一步? #202
贡献者

tmpvar 评论 on 14 Mar 2013

@chamnit说得通。似乎将 grbl 拆分为它的组成部分会使探索这些和其他选项更容易。我喜欢 node.js 如何使用 libuv、cares 和 v8 做到这一点。基本上,会将副本添加到 repodeps文件夹并在适当时进行升级。避免了 git 子模块的痛苦,并允许对基本模块集进行许多分发或重新配置。

我们现在可能可以实现这一点,同时在 atmega328p 上保留有福的完整 grbl,并允许人们开始破解这种纯步进/方向控制器的新愿景。我很确定许多项目都会欢迎这种模块化,包括在 reprap/3d 打印机和lasersuar 上使用修改后的 grbl 的人。我感觉到这些变化将极大地改善升级路径,并且@Protoneer提到,每个单元都可以有一个测试套件来确保发布是好的。

超越 Grbl 的下一步? #202

为了增加共识,我也得出结论,“Grbl 的未来”可能沿着两条可能的路径之一:可以在 ATmega328p 上做最多事情的最小代码(这基本上是当前版本所具有的)实现)和最好的代码,易于阅读和移植到许多架构,并且可以配置为做一件事或全部,如你所愿(很像 Linux 内核)。

我目前正在研究这两个想法,我可能应该警告您,由于反馈循环,您将无法从 Grbl 移出尽可能多的东西。您需要在控制步进器的芯片上运行的内容中保持足够的智能以确保其安全,例如进给保持和急停。
是的,您将能够移动 G 代码解析器怪物、用户界面、固定循环和其他类似的东西……但最终,MCU 上剩余的代码量会比从历史的这一点来看。

我目前正在进行的设计基于许多 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 上。让生活更轻松。
CMSIS 有某种商业许可证,您可以将其用于您自己的东西,但不能用于分发。我们拥有 libopencm3(这里,甚至在 GitHub 上!)的原因,它是开源的化身。

如果您选择采用 ARM 方式,请选择电路板,而不是芯片。走进第一家电子商店,查看电路板,查看规格(CPU MHz、闪存、RAM 和浮点支持;它是否具有嵌入式 JTAG/SWD?),然后选择您喜欢的第一块电路板。板支持包将包含库和头文件,允许您以一致的方式使用所有 GPIO 以及所有其他 CPU 外设。大多数 BSP 位于 CMSIS 之上,因此,libopencm3 具有扩展的板配置文件集合,因此您可以直接为板 X 编写代码,而无需关心供应商提供的内容。

由于您正在尝试创建一个硬件控制盒,因此您需要一个可以针对裸机的板(一些板只支持将 Linux 或 Android 作为裸机运行,并且只有一个“托管”工具链,即允许您为在其上运行的 Linux/Android 编译程序)。

最后,ARM 就像在类固醇上的 AVR :-) 我的意思是它不仅更快或具有更多的闪存或具有更多的 GPIO 引脚——它是一次性的,然后是一些。ARM 芯片有 DMA 之类的东西,可以自动在定时器寄存器中加载新值;每个计时器有超过 2 个 OCR;他们有诸如正交解码器之类的东西,可以为内部定时器提供数据;多级中断;内存管理单元;外部存储器接口,我可以继续。如果您决定将 Grbl 移植到 ARM,请确保您不会失去敏锐的精神并从芯片中榨取最后一滴性能。ARM 的 Grbl 编码与 AVR 的一样对细节和性能的关注会产生奇迹,我很乐意看到这种情况发生。

这都是我的。

超越 Grbl 的下一步? #202

我是 grbl 的另一位快乐“用户”(很高兴知道 grbl 的含义)。
正如您将看到的,英语不是我最好的语言。

我用一个 Arduino UNO R3 用这个漂亮的 grbl 代码在我的 cnc 中更改了他的“专业”卡。

我的cnc用他的旧卡工作得很好。

– 为什么我做出这个改变?
-答案是“独立”和“自由”

之前:
只有一个程序可以与此卡通信。
即使我可以“嗅探”对话 PC/卡,所有的辛勤工作都是在 PC 端完成的。而且我不是程序员。
在这里,过去,我仅限于这个程序可以读取什么以及这个程序是如何工作的。
该卡仅使事情发生,将 Clk 和 Dir 发送到步进驱动器,并将
On/off 发送到事物或 PWM 电压电平。
嘿!该卡还可以读取主轴的速度=/然后呢?
归位序列工作正常。
可以实时更改全局进给和 Z 偏移。
第一个是无用和危险的,第二个是受欢迎的。
此外,“旧”卡有一个很好的缓冲区,可以将通信流量降低到几乎为零。
在某些情况下,我需要禁用的缓冲区,因为这不允许 PC / cnc 之间的良好同步。
独立性:我可以选择另一张专业卡,但又受限于他的专业和闭源软件。然后根本没有独立性。

之后:
Liberty:
grbl 现在进入我的 cnc。
我不明白怎么做,但我可以向它发送 gcode 并且 cnc 可以工作。知道你?
好的,并不是所有的 gcode 都在那里。但是功能强大的(?)PC 端的 GUI 可以使用这个不受支持的 gcode 将其更改为受支持的内容。
我可以选择(也许有一天会写)一个或多个已经制作的 GUI。

恕我直言 grbl 即将完成。?
似乎需要在这里和那里进行一些调整,但已经是一个辉煌的发展。

对我来说 grbl 的下一步是什么?

  • 如果 Arduino 筋疲力尽,则需要转移到其他足够强大的卡。或两个arduinos或其他任何东西。
  • 更好的归位。
  • 如果可以控制主轴速度,那就好。如果不是,我不在乎。所有低成本 CAM(我使用过的)都不会为实际工具动态改变这个速度。仅更改下一把刀具的主轴转速。然后我可以手动更改速度,因为无论如何我都是手动更改工具。?
  • 是否支持手动换刀?我忘了检查这个!但我没有看到任何地方定义的换刀位置。
  • 激光头控制将是必要的,但这可以在 GUI 中使用与主轴相同的引脚控制进行(在某些激光器中需要暂停,但我们有 G4 ……是吗?)。
    激光头是另一种主轴,如等离子切割机或水射流或塑料挤出机。
  • 也可以在 GUI 中进行慢跑。
  • 知道为什么 Java 中的所有程序在一两个小时后都会变慢或不稳定。
    (目前对我来说更好的 GUI 是用 python 制作的(https://github.com/duembeg/gcs)然后我正在学习它)

对我来说,下一步超出了范围,因为是其他项目。
那么我对 grbl 下一步的思考就到此结束了。


也许它不是其他项目……
我认为可以制作一个>闭环定位系统<负担得起但开源的。

http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Robotics/E6B2Encoders.pdf
39.95 美元https://www.sparkfun.com/products/11102
或这个:2​​9.95 美元https://www.sparkfun.com/products/ 10790带 200 次巡回赛。(4:1 滑轮 800 次/巡回赛)
和简单的直流电机(驱动器必须能够制动)……是的,你不需要更换你的电机和他的驱动器,但是有了这个你在你的控制器卡中需要一个 PID 之类的东西。

或者类似http://www.galilmc.com/catalog/blm_n23.pdf无刷电机,编码器已经在那里。
http://www.soprolec.com/catalog/moteurs-brushless-dc-moteur-brushless-dc-130w041nm3000rpm-p-117.html?cPath=21_40

目前看来更贵。
但是,如果您认为自己赢了就知道自己在哪里,那就不要太多了。
然后我需要像grbl这样的东西。将改变的是输出/输入信号。
大部分工作(gcode 解释器、规划器等)已经在 grbl 中完成。
到迷途幻影。
bpls; 这个新分支的好名字。

很抱歉这个超出范围的评论,并感谢所有这些出色的工作。

超越 Grbl 的下一步? #202
成员作者

尚尼特 评论 on 14 Mar 2013

@csdexter: 和往常一样,你带来了一些有趣的观点。

在考虑了会发生什么变化之后,我同意纯代码量可能不会改变,但我认为主要的解析器规划器 CPU 瓶颈将被消除。这释放了更多的周期来做其他事情,比如闭环伺服控制,并且随着事情的扩大而更加一致。我一直将规划器视为这种“千斤顶”,它可以随时弹出来导致大量问题,因为某些极端条件可能会使 CPU 不堪重负。虽然 Jens 和我最近一直致力于使规划器更加高效和健壮,但它并没有解决规划器无法很好扩展的根本问题。

我完全同意 ARM 拥有强大的能力,从更复杂的规划器算法、更大的规划器缓冲区到复杂的运动曲线和伺服闭环控制。我想我只是犹豫是否承诺某个特定的董事会并坚持下去并进入一个随着事情变化而不得不更新事物的循环。特别是如果主板或芯片组失败并且不再是主流。我想我想要做的是重构代码库,这样我们就可以在 AVR 328p 上吃蛋糕。不确定为 328p 努力工作是否真的有意义……(迟到了)。通过使代码更加模块化,就像解耦步进算法一样,也许在某个地方有一个中间立场,因为就像现在一样,一些 Grbl’

无论如何,我同意每个人的观点,即 Grbl 功能接近完成。我不是为了以任何方式杀死Grbl而提出这个问题的。它肯定会持续一段时间,但肯定是在它的极限。

好的。睡觉时间到了。zzzz。

超越 Grbl 的下一步? #202
贡献者

jgeisler0303 评论 on 14 Mar 2013

昨天偶然发现了这个https://github.com/dewy721/EMC-2-Arduino因此,当使用仅运行外部提供的配置文件的 arduino 设置新项目时,我们需要确保我们不只是复制它。EMC2 功能强大,受到许多人的喜爱,用 arduino 替换 ol 并行端口是许多人一直在等待的事情。但似乎存在速度问题(我读到 1 英寸/转主轴的速度为 130 英寸/分钟,将其缩放到我的 1 毫米/转意味着 130 毫米/分钟,这绝对太慢了)。
而且EMC2只有Linux,VM不行!
另一个有趣的点:EMC2 的工作方式是这样的:步进驱动器是赛狗中的狗,EMC2 引导他们追逐的假兔子。这可能是因为 EMC2 来自伺服领域,您需要设定点偏差才能使电机移动。但这需要一个紧密的反馈回路,因此可能是 arduino 串行接口的速度问题。

总结一下:EMC2 是一个很棒的工具,而 EMC-2-Arduino 可能是一些希望分离 grbl planner 和 stepper 的人会选择的东西。也许可以使用 grbl 步进内核改进 EMC-2-Arduino。
但也许我们可以构建一些 stepper-planner-GUI 组合,其功能与 EMC2 和 EMC-2-Arduino 组合完全不同,它是具有独特卖点的替代方案。

超越 Grbl 的下一步? #202

我认为将 Grbl 移植到更好的微控制器没有太大意义。
无论如何,您都需要一台真正的计算机来使用它,而且它更容易编程并且功能更强大。
您不能只在 PC 上运行 Grbl 的唯一原因是它需要实时运行。

我知道拥有一个可以直接输入 G-Code 的黑匣子是件好事,但是 Grbl 现在有一些限制。没有问题。

那么,将 Grbl 声明为“基本完成”并修复剩余的问题并将其命名为 Grbl 1.0 怎么样?
然后删除计划和解析代码并将其命名为 Grbl 2.0。
此版本将侧重于性能而不是易用性。(您需要在 PC 端有一个流程序)

编辑:我写的时候还不知道 EMC2-Arduino。但是在快速浏览一下 repo 之后,我认为它无法与 Grbl 质量代码相提并论。

超越 Grbl 的下一步? #202

@jgeisler0303EMC-2-Arduino 是在使用 LinuxCNC 时取消并口的非常冒险的尝试。它包括一个新的 HAL 模块和 Arduino 代码,以使开发板通过 USB 串行端口而不是并行端口与这个新的 HAL 模块进行通信。

这是有风险的,因为 USB 不是实时的,USB 串行端口更不实时。仅从科学的角度来看,作为概念证明,它才有趣。此外,我不相信 HAL 模块的质量(如果要在 LinuxCNC 中正常工作,它必须几乎是 linux 内核质量)。

@cody82如果我们想效仿行业趋势,你不需要电脑/反正/。我的项目的第二个版本完全针对无头概念:只需附带一张 SD 卡,将其放入并按下“PLAY” :-) 当然,这只有在更强大的硬件可用时才有可能。更强大的硬件也使诸如全程序评估和优化或子程序之类的事情成为可能。您甚至可以采用类似编译器的方法,其中第一遍检查语法和机器限制,然后分析运动并生成优化的运动配置文件,然后可以以这种“编译”形式保存以供以后使用。每当您想参与其中时,您只需回放经过预处理的场景即可获得所有好处。

超越 Grbl 的下一步? #202

@csdexter我真的不知道“无头”的定义。当机器有按钮和显示器时,它不是无头的,即使那里没有x86-PC。
我个人不希望那样。我需要点动、暂停、检查位置,甚至重新计算刀具路径并进行图形预览。我的机器并不总是按照我的意愿行事。:)
当你在一个奇特且昂贵的微控制器上实现一切时,没有人会将它用于他 300 美元的 cnc 机器。与使用 10 年的 PC 和 Arduino 相比,您一无所获。
这样的项目可以很酷很有趣,只是不适合我。当您将 Grbl(“2.0”) 用于步进器部分并使用另一个板用于高级东西时,它甚至可以与 Grbl 结合使用。

感谢您提供有关 EMC-2-Arduino 的信息。那时它与 Grbl 完全不同。

超越 Grbl 的下一步? #202
贡献者

阿尔法研究 评论 on 14 Mar 2013

这是一个在 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 接口的微控制器都可以使用。
RPi B 有以太网,或者您可以连接 Wifi 加密狗以进行
无线通信 – 或者您可以取出存储卡并在其上放置新文件。
我想如果有人可以创建一个带有步进
驱动器的小扩展板和一些其他有用的项目,比如用于归位开关或 z
探头的端口等,那就太好了。对我来说,这看起来是
非常强大且便宜的 CNC 控制器的一个很好的解决方案。
我仍然认为 Arduino + GRBL 有它的位置,我也认为功能接近
完成。我在等待软限制,这些在
代码中实现了吗?

PS:刚刚在这里找到了这个板:http: //picnc.googlecode.com/git/hardware/PICnc_Jr.pdf
PPS:做了一些链接更正,并从邮件的电子邮件部分删除了报价……

超越 Grbl 的下一步? #202

http://www.wyolum.com,我们构建了一个 Arduino 板 (AlaMode),它位于 Raspberry-Pi(连接到 WiFi 网络)的顶部。在 AlaMode 之上,还有 Synthetos 的 GRBL-Shield。
以下是感兴趣的人的链接:

http://blog.makezine.com/2013/02/12/network-enabled-shapeoko-cnc-uses-raspberry-pi-and-alamode/

http://wyolum.com/cnc-alamode/

超越 Grbl 的下一步? #202
贡献者

jgeisler0303 评论 on 14 Mar 2013

阅读 RPi-SPI 接口:只是一个想法:RPi 具有 GPIO 并且可以运行 RT Linux 内核。那么,难道不能直接从那里对步进脉冲进行位敲击吗?我的意思是,LinuxCNC 可以通过并口实现,为什么 RPi 不能呢?它已经足够快了,不是吗?

超越 Grbl 的下一步? #202

延斯,

我认为你仍然需要一个实时脉冲发生器——如果你正在做带有反馈的伺服系统,这会增加一倍。脉冲延迟和抖动需要控制在 1 微秒以下 – 最好更紧密 – 特别是在高速下。这是 LinuxCNC (EMC2) 和 Mach3 的最大绊脚石。操作系统做它想做的事,当它想要并且脉冲受到影响时。

具有讽刺意味的是 – 是 Simen 最初开始使用 grbl 的原因。如果我错了,他可以纠正我,但“grbl”最初是“gerbil”的缩写,它应该是运行在 LinxCNC 上的串行加密狗。但当他意识到那行不通时,grbl 诞生了。

  • 奥尔登
超越 Grbl 的下一步? #202
贡献者

阿尔法研究 评论 on 14 Mar 2013

据我了解,RPi 上的 ARM 不是很快,但 GPU 是 – 但是 GPU 不能成为实时的一部分,这会导致所有问题……
我认为 GRBL 应该就是它的样子今天,一个黑匣子,它接受 gcode 并驱动步进器并提供一些其他 CNC 相关功能。

超越 Grbl 的下一步? #202
贡献者

jgeisler0303 评论 on 14 Mar 2013

好的,我从未运行过 EMC2。但我从没想过它会受到抖动的影响,因为它受到了如此多的欢迎。
也很难想象 700MHz 的处理器在做 16MHz 处理器可以做的事情时会遇到问题,即使它必须运行额外的操作系统。
无论如何,我刚刚阅读了有关使用 DMA 控制器以 100kHz 对 RPi 进行位敲击的信息,因此只要缓冲区存在,就可以绕过 CPU。

我说这一切并不是因为我想甩掉我的grbl,相反,我喜欢它。我只是想稍微克服一下,可以说,为潜在的 grblPro (TM) 准备最好的起点:-)

超越 Grbl 的下一步? #202
成员

络筒机 评论 on 14 Mar 2013

这将有点超出左侧领域,但我认为 Nintendo DS 将是一个非常酷的 CNC 控制器平台。在花了几年时间参与 NDS 自制社区之后,NDS 一直是我最喜欢的硬件。它有两个 arm 微处理器(33MHz arm7 + 67MHz arm9)、一个单独的 GPU、蓝牙、wifi 等,所有这些都可以通过 devkitPro 自制工具链访问,所有这些都与其他附加硬件文档一起记录。

有了这样的GPIO 卡,我可以想象 NDS 是一个很酷的、完全独立的 GRBL 平台,它有自己的内置 GUI。

超越 Grbl 的下一步? #202

@cody82今天的 ARM Cortex-M 不属于“异国情调和昂贵的微控制器”的描述,所以我不知道你指的是什么芯片。
@jgeisler0303如果您为 RPi 编译支持 RTAI 的内核并使用该内核,那应该可以正常工作。问题是,它可能不够快(我正在使用带有官方 LinuxCNC 发行版的 Intel Pentium4 @ 3GHz 机器,由于延迟抖动问题,它不会高​​于大约 17500Hz,即使是真实的-时间延长)。很多人都认为 X11 会扼杀性能,并提出了各种风格的无头 LinuxCNC,但最终发现性能非常相似,特别是因为它不是 X11,而是整个操作系统介于应用程序和实时内容之间。我认为使用通用操作系统不可能更快 – 这就是为什么我们首先有像 Grbl 这样的项目:-D
如果您不相信我,只需获取 LinuxCNC LiveCD 映像并自己运行延迟基准测试即可。

至于 GPIO 速度,或多或少等同于 RPi 的东西(如 Olinuxino 系列)可以通过 /proc/kmem 接口达到至少 2MHz(是的,这是在 Linux 中作为进程运行时)。当然,为裸机编写代码会使事情变得更好——就像在 AVR 上使用 OCR 切换引脚而不是手动操作时一样。

超越 Grbl 的下一步? #202

@csdexter:(打败我——我在打字的时候你在打字。)

@jgeisler0303– Jens,我在你的帖子中忽略了实时 linux 的“实时”部分,因为 EMC 所基于的 Ubuntu 变体不是实时的。我什至不会提到 Mach3 所基于的 Windows 操作系统(哎呀,我刚刚提到了)。但是操作系统引入的抖动和确定性是问题所在。这催生了整个 SmoothStepper(和类似的)开发,作为这个问题的实时缓冲区。

我担心的是,将 rPi 从股票 linux 移到 RT 变体会引入复杂性,如果我们让低 328p 做它做得好的事情,可以避免这种复杂性,在这种情况下提供段/脉冲生成和可能的时基校正。更强大的 MCU 可以做类似的事情,尽管速度更快。

超越 Grbl 的下一步? #202
成员作者

尚尼特 评论 on 15 Mar 2013

神圣的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 能够从步进器转移到下一个东西是有意义的。

超越 Grbl 的下一步? #202

@chamnitOlinuxino-iMX233通过 /proc/kmem 接口拉出高达 5MHz 的 GPIO 切换。当然,这是循环运行的。这也没有说明这些脉冲中的抖动。

LinuxCNC 也有同样的问题,但它实际上承认了这一点,并且不允许你将它驱动到它认为它可以在它运行的当前硬件上安全地做的事情之外。

在非实时操作系统中执行实时任务的问题(也称为 MS-DOS 与 Windows XP 问题)是在执行实时任务时几乎不可能“冻结世界”。还记得当 Java 内存不足并且您的应用程序在 JVM 进行垃圾收集之前冻结吗?这就是“停止世界”的样子。

我们有一些机制可以让操作系统“请”让世界停止很短的时间(比如 Linux 上的 RTAI 或 Windows 上的实时优先级)——但操作系统不能保证它可以“屏住呼吸”,最重要的是,它将能够在n毫秒后准许另一个相同的请求。

这就是为什么飞机或军用火箭之类的东西不运行通用操作系统而是运行实时操作系统的原因。实时操作系统对上述两个问题有保证:系统注意到您想要与之交谈的长时间以及它可以为时间关键事件提供服务的最小和最大粒度。

如果您想笑一笑,请记住 Windows 3.11:它是完美的实时操作系统,因为它使用协作多任务处理 :-) 所以实时应用程序实际上可以“占用” CPU,只要它想要(顺便说一句,这就是为什么终端应用程序——比如 Terminate——工作得很好,即使在 57600bps 下也是如此)。这或多或少也是在当前版本的 Windows 下获得实时优先级为您提供的原因,这就是 WinPC-NC 之类的东西实际工作的原因(如果您不做愚蠢的事情,例如同时编码视频:P)对于大多数 DIY 类的工作,而不是惨败。

超越 Grbl 的下一步? #202
成员作者

尚尼特 评论 on 15 Mar 2013

@csdexter: 谢谢你的澄清。因此,如果我对您的理解正确,那么确定操作系统的“实时性”程度是非常临时的。取决于很多事情。这可能是我们应该避免的事情。

也许这真的让我们找到了答案。这就是我们区别于 LinuxCNC 和其他人的方式。没有操作系统。操作系统仅作为接口是可选的。我想这就是为什么 grbl 一直在这里。将其保留为一个黑匣子,一站式解决方案,而且价格便宜。

因此,我认为剩下的主要问题之一是硬件选择。我们之前已经讨论过这个问题,从那以后有什么变化吗?除了 Arduino Due 之外,还有其他主要竞争者出现吗?选择 Due 的主要原因是 Arduino 社区的支持,以及如果 CNC 不是某人的一杯茶,则将 Due 用于其他任务。

基于 328p 的 Arduinos 最好的事情之一是制造或购买克隆非常便宜。因此,世界各地的人们都可以使用它。自从 v0.8 发布并且我们开始通过 bitly 跟踪下载统计数据以来,grbl 的下载量来自 60 个不同的国家,22% 的美国,12% 的德国,8% 的中国,以及从肯尼亚、智利到斯里兰卡的地方。所以,我认为保持便宜是当务之急。有人知道 Due ARM 克隆吗?它存在吗?

超越 Grbl 的下一步? #202

@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 和外围功能的任何可能组合中,那么为什么会有人考虑克隆呢?

超越 Grbl 的下一步? #202
成员作者

尚尼特 评论 on 27 Apr 2013

@Protoneer: 太棒了。感谢您为此所做的所有工作。我完全支持您正在做的事情,并希望将其全部集成到 Grbl 中。目前,我的时间很紧迫,而且我所拥有的,我一直在努力解决进给率倍率问题。我很高兴地说,我已经取得了突破,在我克服了自己并决定破解几乎所有代码都值得付出努力之后。它应该可以工作,但我只希望 AVR 足够快来完成它。

也许我们可以离线谈谈如何将你的东西集成到 Grbl 中。主要是确保我们了解切换到 Arduino IDE 如何影响性能和/或大小。也就是说,如果 IDE 强制执行我们无法控制的任何事情。

我同意 RPi。它非常适合 CNC 应用。不久前,用户讨论过使用它作为网络服务器通过智能手机或平板电脑远程控制 Grbl,因此您不需要在 CNC 上设置专用的显示器/键盘/鼠标。只需一部智能手机即可设置、运行和监控 CNC 作业。我认为这会很棒。

超越 Grbl 的下一步? #202

我宁愿保持 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 进行开发。

超越 Grbl 的下一步? #202
成员作者

尚尼特 评论 on 28 Apr 2013

@garyren: 已决定将 Grbl 保留为软件平台,当我们使用 ARM 时,我们将尝试使其尽可能抽象,以允许不同的 ARM 架构兼容。我们将专注于 Arduino Due,以便轻松访问和兼容当前的步进屏蔽等。我们有很多工作要做,但我很想看看您如何编写和更新您的 ARM 版本的固件,以便为我们需要考虑的事情奠定基础。你的代码有链接或回购吗?

超越 Grbl 的下一步? #202

听起来不错……抽象硬件特定任务(串行、步进定时器中断、限位开关和其他 i/o)将有助于向前发展,从而更容易将主线构建移植到各种硬件平台。我看到有几个与 Arduino Uno 兼容的 M3 板,以及上面提到的 Due。我在飞思卡尔 Kinetis 系列 Cortex M4 部件方面也有很多经验,我也可以在 Grbl 上启动和运行。

我很乐意分享我的 Grbl V-0.8c 的 LPC-2106 端口。我会在这个周末发布并分享链接。

超越 Grbl 的下一步? #202

我之前也出于同样的原因考虑过螺旋桨芯片(8核)
,但我根本没有使用它,所以我不确定它是否能胜任这项任务。
2013 年 4 月 18 日上午 1:29,“Paul–W” notifications@github.com写道:

我很高兴看到这种发展,我认为 Due 是一个很好
的起点,所以你的脚在 Cortex 门上。随着许多其他 Cortex
板和处理器的出现,它应该很容易创建
易于在系列之间移植的基本模块/层。更多的
自由。

我将使用 NXP LPC4337JBD144 – 这是一个
带有 Cortex M4/M0 的双核芯片,两者都以 204 mhz 运行,M4 具有浮点,
并且有 1 MB 的共享闪存和 136 mb 的 SRAM。
本周应该在LQFP144 中出场(根据他们的代表)。而且不是昂贵的芯片。我
更喜欢这个想法,而不是同时对 PI 和另一个
处理器进行编程。

考虑一下可能性——M4 将执行所有外部 I/O 和
规划(使用 FP 单元),无论它想要什么中断,
在公共内存中提供一个环形缓冲区。M0 只会读取环形缓冲区并
在没有中断的情况下对引脚进行脉冲处理。我计划将此芯片用于
几个机器人控制器。

我也很好奇 TinyG 做了什么——我认为它
比 Smoothie 更先进(虽然没有使用 Cortex)。我特别喜欢
三层方法:Gcode 解析器、规范机器和运动控制
层,带有 jerk 加速规划。这种架构非常适合
我想要使用的双核芯片,但 TinyG 目前
在 ATxmega192 上运行。


直接回复此邮件或在 GitHub 上查看 https://github.com/ /issues/202 #issuecomment-16558590

超越 Grbl 的下一步? #202

这是我的恩智浦 Grbl 端口的仓库: https ://github.com/garyren/Grbl-A​​RM7 。我对 github 发布有点陌生,希望它做得对。

硬限制和家庭限制仍然需要移植,但它至少处于工作状态(今天磨了几个测试件)。希望这个周末能完成剩下的项目。

超越 Grbl 的下一步? #202
成员作者

尚尼特 评论 on 28 Apr 2013

@garyren: 太感谢了!这将非常方便。我对 ARM 以及它们在不同制造商之间的差异知之甚少。

我很高兴看到它在你的机器上运行。祝移植顺利!(归位周期不是很好,但可以工作。它在待办事项队列中以将其集成到主步进算法中。我希望还有更多。今天我很幸运地使用了以下片段的进给率覆盖我已经有时间了。)

超越 Grbl 的下一步? #202

@garyren:嘿…我正在用 grbl 做同样的事情..但我将它移植到 LPC2138 上…我已经浏览了您的存储库,但您仍然没有包含 LPC210x.h 文件。所以我不能在程序员的记事本上构建。你可以上传 LPC210x.h 文件吗?谢谢你。

超越 Grbl 的下一步? #202

当然,我会在今天晚些时候上传。这些 LPC 文件是 WinArm 包的一部分,这就是我没有包含它们的原因。

超越 Grbl 的下一步? #202

@garyren:是的,我已经在使用 WinARM …但我认为您已经在 LPC210x.h 中进行了一些更改,因为仍然需要定义一些寄存器位。您的项目还包括 lpcADC.h lpcUART.h lpcVIC.h 和许多其他文件。这些文件也尚未上传。我正在将您的项目移植到 LPC2138 上。所以请您尽快提供这些文件。谢谢你。

超越 Grbl 的下一步? #202

@garyren: 非常感谢你的文件我都拿到了。如果我成功将它移植到 LPC2138 上,我会将它发送给你。

超越 Grbl 的下一步? #202

我希望我基本上不会用这个来解决一个旧线程,但我正计划做些什么@chamnit理论化。也就是说,将 GRBL 剥离为线性运动控制器,删除所有高级功能,如 G 代码解析和规划(这让我很痛苦;我认为程序员能够在这个平台上适应所有这些功能真是太棒了)。

我将主要专注于运行机器人的软件,该机器人的设计与 CNC 路由器或 3D 打印机相同,但带有夹具或其他类型的附件作为活动钻头。话虽这么说,有人可以提供有关拉出一些积木的建议吗?

超越 Grbl 的下一步? #202

@wkevina, 好时机。我刚刚做了一个具有相似目标的叉子。
用一个简单的单轴运动发生器代替规划器会相对简单,该发生器采用相对距离并产生单个梯形运动块。查看运动 ISR 中使用了“current_block”的哪些成员,以及它们是如何在规划器中生成的。另一方面,要同时移动多个轴,最简单的方法可能是使用现有的 G0 指令处理。放弃对 G1、2 和 3 运动的支持可以简化规划器和 gcode 解析器。但考虑到脉冲发生器的工作方式,多轴移动似乎需要某种版本的规划器。
(也许我们应该开始一个新问题进一步讨论)。

超越 Grbl 的下一步? #202
成员作者

尚尼特 评论 on 30 May 2013

@wkevina:在大多数情况下,使用 Grbl 代码运行机器人是可行的,但不是最优的。对 Grbl 所做的主要假设之一是轴的正交性,或者换句话说,它们在笛卡尔类型的坐标系中独立移动。这种假设使得管理步进电机加速度变得更加简单,因为它们并不相互依赖。因此,如果一个电机在移动某物时被最大化,那么其他电机正在做的事情实际上对其没有任何影响。

如果它们相互依赖,例如具有多个关节的机器人手臂,您必须能够解释这种依赖关系。例如,想想棒球投手在投掷快球时的手臂。所涉及的力量令人难以置信,但投手已经知道如何在正确的时间和同步地弯曲肘部、伸展和旋转手臂,以及轻弹手腕。否则,他们的手臂和韧带就会碎裂。对于机械臂,您需要做同样的事情。当然,您可以增强电机或在远低于最大电机扭矩的某些安全限制内运行以解决此问题,但最终您创建的机器比执行相同操作所需的更大(且更昂贵) .

这就是使机器人技术特别困难的原因。基于应用程序和计算密集型的数学模型。AVR 没有计算能力(也没有存储空间),但 ARM 有。我一直在与其他一些 Grbl 成员离线谈论为 grbl ARM 做机器人技术,但这有点过分了。虽然我应该说,人们正在做或将在不久的将来做的任何工作肯定会有所帮助。无论如何,我不想阻止你尝试让某些东西发挥作用。它应该可以工作,但就像我说的那样,如果没有这些数学模型,它并没有你想象的那么好/最好。

关于这个解耦的事情,我们正在考虑将 Grbl 运动控制子系统变成一个库/套件,任何人都可以将这个库插入到他们的系统中,即 reprap、grbl cnc、机器人。我们将尝试使其更加通用。首先,我们这样做的主要限制因素是 328p AVR。没有空间或足够的速度进行抽象。所以这可能只是ARM。我们已经在这方面开始了一些工作,但还有很多工作要做。

超越 Grbl 的下一步? #202

@chamnit @ashelly:为了澄清,机器人是一个笛卡尔机器人,有导轨、龙门架和独立的 XYZ 轴。非常类似于拾放机或 CNC 路由器,但设计为实时控制,而不是使用预定义的运动计划。控制器将运行电机并以 GRBL 的方式跟踪机器状态,并通过一些串行协议与主控制器通信。您可以看到这与 GRBL 的当前功能非常相似,只是具有不同的优先级。

因此,我认为修改后的 GRBL 非常适合运行它,此外,我的机器将非常适合作为开发基于 GRBL 的运动库或套件的测试平台。这台机器很快就会完成,我很想参与一个新的图书馆。显然我的机器的需求与其他机器的需求会有所不同,但我认为可以找出一组核心功能,以及针对更具体需求的扩展机制。例如,运行带有爱好伺服的机械手或相机。

如果有足够多志同道合的开发人员,请让我知道一个新问题来讨论这个问题。

超越 Grbl 的下一步? #202

正在被利用的利基市场很重要。是的,可以修剪 grbl,让我们说 emc-2 是控制器。但他们正在为此开发一款软件。ardunio 成为打印机端口模拟器。
uno 的限制是 pin out 线。缓冲区和处理器速度。它有效,价格便宜,对于入门级的家用机器来说,它是完美的。
针对上述问题。是引脚,缓冲区,速度。要么去mega并利用它。这不是可以理解的利基市场。但它们并不是不能将多个 unos 放在一个集线器上的原因。并且从 USB 端口发送到集线器的 g 代码所有代码都将发送到该集线器上的所有 unos。每个 uno 都在移动为其编码的设备。因此,在 g 或 m 代码下运行的进料器控制可以是与轴分开的板。步进控制板可用于实现全步 1/8 步容量。如果他们是利益解决者,则可以添加,并且每个轴都可以是另一个板。源代码相同或相似。变量是放在各个 unos 上的编译代码。一个人可以从一块板子开始。并且有一个可以工作的有限系统。当需要时,用户可以添加到这个操作机器人并重新编译代码以在两块或三块或四块板上操作。最初的利基市场被填补,并且可以占领额外的市场。

超越 Grbl 的下一步? #202
成员作者

尚尼特 评论 on 31 Jan 2014

@r01walker:下一个合乎逻辑的步骤是进入 Mega 或 Due,在那里我们可以继续支持所有当前使用 Grbl 的用户,并在不更改引脚分配的情况下扩展功能。Mega 将是发展最快的,因为它几乎与 Unos 上的 328p 相同。由于缺乏工具链和历史,ARM Due 带来了更多困难,但提供了一个数量级的强大功能。然而,正如许多项目已经完成的那样,也没有任何事情可以阻止人们分叉和做自己的事情。

链接和同步多个 Unos 将过于复杂而没有什么好处。它们的同步同时确保没有故障是问题所在。我知道没有任何先前的工作可以解决这个问题,因此它需要重写 Grbl 的许多核心功能和大量的测试/调试。

超越 Grbl 的下一步? #202

换档重写是必要的。与 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 带来了更多困难,但提供了一个数量级的强大功能。然而,正如许多项目已经完成的那样,也没有任何事情可以阻止人们分叉和做自己的事情。
链接和同步多个 Unos 将过于复杂而没有什么好处。它们的同步同时确保没有故障是问题所在。我知道没有任何先前的工作可以解决这个问题,因此它需要重写 Grbl 的许多核心功能和大量的测试/调试。

直接回复此邮件或在 GitHub 上查看。

超越 Grbl 的下一步? #202
成员作者

尚尼特 评论 on 1 Feb 2014

@r01walker: 明白了。这让我想起了一年前的一个问题线程,它谈到了拆分 Grbl 的板载进程,因此它不必同时进行通信、g 代码解析和单步执行。基本上,这个想法是将步进控制分离到它自己的 Uno 上,并将所有其他东西卸载到更强大的计算机或另一个微控制器上。Uno 所要做的就是接收实时步进或非运动命令并执行它们。我们采用这种方式是因为在同一块板上处理所有时间关键型任务要容易得多。

我想仍然可以做这样的事情,特别是使用 v0.9c 中的新步进段缓冲区,它创建了需要发送的明确截止线。但我认为一旦 ARM 版本发布,我认为我们会发现所有这些工作都毫无理由,因为 ARM 芯片将能够做我们想要的一切,多合一,有额外的周期来备用,并且能够更快地推动机器。

超越 Grbl 的下一步? #202
成员作者

尚尼特 评论 on 1 Feb 2014

@r01walker: 现在想想。这并不意味着我们不能朝着这样的方向努力。事实上,我一直在思考如何将所有这些流程解耦,以便人们可以在他们的各种项目中零散地使用这些概念。值得关注的一件事是如何将规划器和速度曲线算法更改为包含 jerk(加速度的导数)的算法,以改善大型、功能更强大的机器(如 Haas 式生产 CNC)的运动控制。

v0.9c 的部分内在设计就是解决这个问题,但它仍然过于集成,无法做到这一点。虽然改变事情不会太难,以便以后可以选择。

超越 Grbl 的下一步? #202

我仍在进行构建,测试,哎呀为什么我没有看到,重新设计挤出机上的构建和测试周期。 
我完全打算在测试台运行后查看代码。在 Fadal 上,它们是 ag 代码序列,可以设置斜坡打开和关闭。坡道的目的是使滚珠螺母免受不必要的启动停止压力。在这个应用程序中,步进器开始停止任意次数。斜坡是一个抽搐的问题。强烈反对是对整个问题的一个贡献。你不能关闭电机的运行。所能做的就是减慢步进器的速度,并用一个充满命令的缓冲区来淹没控制器。并希望处理器足够快,或者不使用方波开关,而是使用脉冲正弦波,由于启动停止时的电压/安培较少,压力较小,因此启动缓慢。或多或少在方波开关脉冲的拐角处。我不知道我拥有的步进控制板会这样做。
我不反对单个更大的处理器。我不知道引用的处理器/板上的规格。但这里使用的利基仍然有效。他们是那些明年将寻求 uno 并尝试为业余爱好者制造更小的机器的人。我不会放弃那些。如果可以将代码转移到更大的处理器上,并且该处理器具有提供未来改进所需的引脚数量。我为此。他们是覆盆子和其他新的更大的板。一些直接在它们上面运行 Ubuntu Linux。我已经避开了他们,因为 mega 仍然有更多的 i/o 引脚。我意识到我们说的是苹果和橙子是圆的。我不反对多块板。当我有时间大量打印和探索代码时,我将有空间进行修改。
更大的板子?如您所知,它们是即将出现的工具更换器、刀具补偿、偏移和更快的机器。我更喜欢更大的 PLC,而不是更小的 Linux 板,它具有与 uno 相同数量的引脚并且几乎兼容。 
令我惊讶的是,有人没有做到这一点是使用直流电机旋转和步进电机编码和保持位置。
我正在建设塑料挤出农场。并在我所在的地区开展 3D 打印机运动,以鼓励他们和我的成长。即使作为单处理器控制板的 uno 的问题已经完成,他们也将使用它。或它的下一个化身。忽略根是一个致命的缺陷,有人会想出一种更好地控制轴的方法,现在才刚刚开始使用原始系统。扩张。是我看到的关键。对程序员和贡献者给予应有的尊重和衷心的感谢,他们为我和更多人提供了帮助。 

2014 年 1 月 31 日星期五上午 11:59,Sonny Jeon notifications@github.com写道:

@r01walker: 明白了。这让我想起了一年前的一个问题线程,它谈到了拆分 Grbl 的板载进程,因此它不必同时进行通信、g 代码解析和单步执行。基本上,这个想法是将步进控制分离到它自己的 Uno 上,并将所有其他东西卸载到更强大的计算机或另一个微控制器上。Uno 所要做的就是接收实时步进或非运动命令并执行它们。我们采用这种方式是因为在同一块板上处理所有时间关键型任务要容易得多。
我想仍然可以做这样的事情,特别是使用 v0.9c 中的新步进段缓冲区,它创建了需要发送的明确截止线。但我认为一旦 ARM 版本发布,我认为我们会发现所有这些工作都毫无理由,因为 ARM 芯片将能够做我们想要的一切,多合一,有额外的周期来备用,并且能够更快地推动机器。

直接回复此邮件或在 GitHub 上查看。

超越 Grbl 的下一步? #202

只是另一个1 评论 on 1 Feb 2014  

@chamnit关于您拆分固件的想法。我用 buildrob 做了类似的事情。您可以在这里查看主机端https://github.com/JustAnother1/Pacemaker和客户端端https://github.com/minnow-pmc/Minnow

我们有打印机的拳头动作,但仍有许多错误和缺失的功能。这里描述了主机和客户端之间的接口:https ://github.com/JustAnother1/Pacemaker/blob/master/doc/Pacemaker_Protocol.asciidoc

非常欢迎输入。

超越 Grbl 的下一步? #202

我们(TinyG 工作人员)一直在处理运动控制器可扩展性的许多相同问题。Kinen 规格是我们提出的。这是一种扩展核心 CNC 功能的方法。https://github.com/kinen/kinen/wiki

虽然 Kinen 看起来像一个硬件规范(确实如此),但它更像是一个使用 JSON 作为通信“总线”的软件规范。不要太拘泥于硬件插头的定义。下游 Kinen 设备可以是 (1) 插入(“鳍”)的小板,可能通过 SPI 连接,(2) 在某些网络上运行的下游设备,或 (3) 实际运行在主处理器空间中的嵌入式软件模块但在其他方面是松耦合的。

Kinen 提供硬件同步,并使用 JSON / RESTful 通信在组件之间进行通信。我将在旧金山湾区 Maker Faire 之后的一周在旧金山举行的 O’Reilly Solid 会议上就此发表演讲。

超越 Grbl 的下一步? #202

显然我已经引起了兴趣。我只是一名机械师,数控程序员,我拥有电气维修学位。我可以编码,但我是一个斧头程序员。我可以对 PLC 进行编码,并且可以做其他人做不到的事情。我可以理解 C++,但我没有灵感去做很多编码。感谢我的第一任妻子是个了不起的女人,我花在电脑上的时间比她多。我家有六个联网的电气柜。  
我真的把这些和其他机器推到了尽可能远的地方。其中一台机器有四个 ide 驱动器,一个 ide raid 卡和另外四个连接到它的驱动器。以及 2 个 USB 驱动器和两个 SATA 驱动器。它是一个 nas。在最后一台机器上,我设置了这些驱动器,我烧掉了它的 BIOS。我在这种计算机滥用方面拥有多年的真实世界即插即用经验。 
我想把这些机器组合成一个集群。将软件放在集群上进行集群对我来说没有意义。我的思路是将固定网卡设置为空白机器之一。网卡将计算机设备共享到虚拟机上。添加多台机器会得到一个虚拟机,它是所有机器的组合。所有驱动器所有声卡所有处理器。希望被视为处理器组合的单个处理器。所有的内存等 

这种方法类似。不一样。我不想连接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 通信。 
在启动时我得到一个 $h $ 命令提示符。

z 轴移动,然后 x 和 y 移动。因为这被编码到单独的轴软件中。由命令行控制。

g 代码被发送到 USB 集线器并传递给所有 ardunios。

例如。

g00x-0.75y-0.75z-0.75
g01z-1.5f30。 
m8 m4 s5。打开加热器 g04 p120。

步骤 1
ardunio 1 将 ardunio 1 线设置为低电平。选择 g00 模式并设置它,然后选择 x 字并在 g00 模式下执行该字。

ardunio 2 将 ardunio 2 线设置为低。选择 g00 模式并设置 g00 模式,然后传递 x 字并读取 y 字并执行它。在 g00 模式下

ardunio 3 将 ardunio 3 行设置为低。选择 g00 模式传递 x 字和 y 字并执行 z 字。 

arduni 4 看不到它可以使用的 g 代码,因此传递到控制线的高度。

步骤 2
ardunio 1 完成快速运动并将控制线设置为 hgh。

ardunio 2 完成动作并将控制线设置为高。 

ardunio 3 完成动作并将控制线设置为高。 

ardunio 已经设置为高。

第 3 步
所有 ardunios 读取高控制线条件。

第 4 步
ardunio 1 读取第二句 将命令行设置为低 将 g 代码模式设置为 g01 读取 x 字和 f 字。开始执行动作。

ardunio 2读取第二句将命令行设置为低设置g代码模式为g01读取y字和f字。开始执行动作。

ardunio 3读取第二句将命令行设置为低设置g代码模式为g01读取z字和f字。开始执行动作。

ardunio 4 读取该行并且没有任何功能,因此它将其控制线设置为高。

step5
ardunio 1 完成命令并将其控制线设置为高。

ardunio 2 完成其命令并将其控制线设置为高。

ardunio 3 完成其命令并将其控制线设置为高。

ardunio 4没有命令,它的控制线已经设置为高

步骤 6
所有控制线都为高电平,读取下一个字。

第 7 步
ardunio 1 读取 g 代码语句。设置控制线低。读取 g04 命令并将轴暂停所需的秒数。

ardunio 2读取g代码语句。设置控制线低。读取 g04 命令并将轴暂停所需的秒数。

ardunio 3读取g代码语句。设置控制线低。读取 g04 命令并将轴暂停所需的秒数。

ardunio 4读取g代码语句将控制线设置为低。解析出命令 m8 并打开冷却风扇。打开加热器。读取 g04 代码并暂停所需时间,然后以 5 ipm 的速度执行 m04 命令。(步进控制)ardunio控制的脉冲,操作主轴的m代码是模态的,无论控制线状态如何都可以操作。

步骤 8
ardunio 1 在其功能中完成控制线设置为高,读取下一行。

ardunio 2在其功能中完成控制线设置为高读取下一行。

ardunio 3在其功能中完成控制线设置为高读取下一行。

ardunio 4在其功能中完成控制线设置为高读取下一行。

这是我看到的功能。如果多处理器控制功能放在单独的配置文件中。并且 x 轴和 y 轴和 z 轴放在单独的文件中。主轴控制是独立的功能,并编译成 ardunio 1、2、3、4 二进制文件并发送到每个 ardunio。 
或以不同的二进制形式发送到单个处理器。 
步骤语句二进制文件也被设置到一个单独的文件中,该文件不会被放入单个文件中。
我没有看过已经完成的编码。我将会。我有妻子时间和焊接和施工时间。 
我曾考虑将计时器绑定到另一条线上,重新思考我认为不需要单独的董事会计时器足够准确。只要控制线是控制g代码语句的运动。我认为 g 代码语句的计时没有任何问题。我看到的唯一问题是将g代码从计算机输入到所有ardunios。我不认为这是一个严重的问题。如有必要,可以构建一个 USB 集线器以允许进行上述配置。随着时间的推移,我觉得我可以从源代码中剪切并粘贴代码并创建这些单独的二进制文件并创建编码以将 g 代码从句子解析为单词。以应有的尊重和信誉。 

2014 年 1 月 31 日星期五下午 5:14,Alden Hart notifications@github.com写道:

我们(TinyG 工作人员)一直在处理运动控制器可扩展性的许多相同问题。Kinen 规格是我们提出的。这是一种扩展核心 CNC 功能的方法。https://github.com/kinen/kinen/wiki
虽然 Kinen 看起来像一个硬件规范(确实如此),但它更像是一个使用 JSON 作为通信“总线”的软件规范。不要太拘泥于硬件插头的定义。下游 Kinen 设备可以是 (1) 插入(“鳍”)的小板,可能通过 SPI 连接,(2) 在某些网络上运行的下游设备,或 (3) 实际运行在主处理器空间中的嵌入式软件模块但在其他方面是松耦合的。
Kinen 提供硬件同步,并使用 JSON / RESTful 通信在组件之间进行通信。我将在旧金山湾区 Maker Faire 之后的一周在旧金山举行的 O’Reilly Solid 会议上就此发表演讲。

直接回复此邮件或在 GitHub 上查看。

超越 Grbl 的下一步? #202
贡献者

阿尔法研究 评论 on 2 Feb 2014

奥尔登哈特:Kinen +1;也很高兴在 GRBL V1+ 中同时支持这一点。为各种事物提供一种标准的开源接口端口会非常好,Kinen 看起来可以做到这一点。我希望3d打印机的人也加入。

r01walker:您知道您可以在 SainSmart 以 17.99 美元的价格购买 ATmega2560 Arduino 克隆。UNO 克隆是 10 美元——你的 USB 想法看起来太贵了,而且性能看起来一点也不好。在你的情况下,只需在更强大的电路板上多花一点钱……

超越 Grbl 的下一步? #202
成员作者

尚尼特 评论 on 2 Feb 2014

@aldenhart:Kinen 是一个很酷的概念。我认为这真的取决于社区的吸收,否则你会被束缚在一个没有得到普遍支持的架构中。很难与 Arduino 扩展板的即插即用功能和无处不在竞争,例如您的 grblShield(又名 gShield)和 Arduino IDE 支持的库。社区肯定知道一体式防护罩设计存在局限性,这是一个潜在的解决方案。希望人们能加入进来,就需要什么达成某种共识。

超越 Grbl 的下一步? #202

感谢您对 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 的下一步? #202

有人改变 Grbl 的工作方式吗?
我想在 PC 上进行算法,我的意思是我将设计 GUI(通过 C#)和与 planner.c 工作相同的算法。之后,我刚刚将数据发送到接收和控制直接轴的 MCU。

超越 Grbl 的下一步? #202 Winder 提到了这个问题 on 17 Jan 2017

超越 Grbl 的下一步? #202
 
喜欢 (0)

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