注释
仿效 Huanyang 协议将是一个很好的方法。它建立在 Modbus 协议之上。物理互连是带有 RS-485 适配器的 UART,可将其转换为半双工双绞线。Grbl_ESP32 目前为此目的使用 UART2。它可能在某个时候变得可配置,但目前没有理由改变它。如果你模仿环阳,现有的软件应该就可以了。Bart 销售用于 6 块板的 RS485 模块,因此该部件也是即插即用的。 |
感谢 MitchBradley 的快速回复! 但我发现 GRBL 代码中没有使用第三个硬件 uart 端口,因此使用 Serial2.print 将 RPM 值发送到 Arduino。我计划继续致力于此,使其更加复杂。也许我会添加一个 while 循环,等待 Arduino 主轴发回“ok”信号,表示它已达到其目标 RPM。我已将此代码实施到自定义主轴文件中。 不过,我只是想知道,因为我在完成代码后并没有经常使用 GitHub,所以我是否开始拉取请求,以便其他人可以测试/检查我的代码? 谢谢 |
wiki 上有拉取请求指南。如果你按照我的建议去做,你的 PR 被接受的机会会大得多——但你可能不需要 PR 任何东西,因为如果你模拟现有的 VFD 之一,现有的代码就会正常工作。如果你走自己的路,你很可能会与我们计划的其他工作发生冲突。Serial2 将不起作用。我们不使用 HardwareSerial,因为最新版本的 Arduino 框架中引入了错误。我们还有一些正在进行的工作涉及 UART 2。modbus 协议并不难。您只需接受一些结构化消息并构建格式合适的回复。您可能能够实现您的设备不支持的请求的无操作版本。 |
如果你查看现有的 VFD 主轴驱动程序,如 Spindles/H2ASpindle.cpp 或 Spindles/YL620.cpp,你会看到我们使用的命令是 init,它获取最大 RPM,get_current_rpm(),direction_command 设置方向或禁用, set_speed_command()、get_current_direction() 和 get_current_rpm()。这听起来正是你在说什么。我们已经有了所有代码来等待加速、减速等等。 |
再次感谢 MitchBradley,这很有意义!那我也跟着去吧!我会进一步研究 Modbus,以免出现错误!我相信你们知道你们在说什么,所以我最好跟着一起走! |
大家好,首先我要感谢这个项目的主要贡献者,你们到目前为止做得非常出色,我知道你们会继续这样做!与功能较少的 Arduino 版本相比,GRBL_ESP32 设置使许多功能成为可能。
最近,我一直在思考为我的 CNC 主轴配备一个 PID 闭环控制器的想法,因为只有拥有一个恒定(且准确)的主轴才有可能拥有一个漂亮且一致的表面速度,我已经开发了一些 Arduino 代码,它工作得相当好(尽管它需要微调)但这显然需要以某种方式链接到 esp32。
我的想法是编写一些自定义主轴 .h 和 .cpp 文件,这些文件将通过简单的 uart 协议发送所需的数据。理想情况下,这只需要 1 个引脚,但我知道可能需要 2 个(一个用于 tx 引脚,另一个用于 CLK)有什么方法可以利用已经实现的 VFD 主轴代码进行通信?正如我注意到“HuanyangSpindle.cpp”使用了一些简单的通信技术,但我不知道我是否会在主代码中搞砸任何东西, + 我在哪里定义引出线?(或者它们只是固定的 uart 输出?)下面是我想知道是否可以实现的简单通信技术:
此功能对 Esp32 来说可能是一个巨大的好处,因为它将减少将 PID 闭环内置到 esp32-grbl 代码本身的需要,而是一个类似 VFD 的控制器,可以为任何主轴定制。