开源改变世界!!

许多新的 Grbl_ESP32 功能! 第449章

推推 grbl 2年前 (2022-10-19) 212次浏览 0个评论
关闭
bdring 打开了这个问题 on 19 Jun 2020 · 15 条评论
关闭

许多新的 Grbl_ESP32 功能!第449章

bdring 打开了这个问题 on 19 Jun 2020 · 15 条评论

注释

许多新的 Grbl_ESP32 功能! 第449章
所有者

婚戒 评论 on 19 Jun 2020  

经过数周的开发@bdring @MitchBradley@odaki,我们已将一些重大更改推送到Devt分支。我们邀请所有人对其进行测试并在此线程或 Slack 上留下反馈。

I2S 移位寄存器芯片支持 (@odaki @MitchBradley @bdring)

ESP32 的针脚刚好够普通的 CNC 机床使用。如果您想使用大量的电机和功能,那您就不走运了。I2S 移位寄存器是附加输出引脚的一种简单且廉价的方法。我们使用的开发板有 4 个芯片,增加了 32 个输出引脚。如果您想查看更多详细信息,可以使用开发板的github 存储库。

许多新的 Grbl_ESP32 功能! 第449章

新设置系统(@MitchBradley)

$$ 设置系统总是有问题。这些数字是有限的,很难记住。在不破坏旧设置的情况下添加新设置也很困难。新系统使用易于阅读的文本格式。

该系统从头开始重写。它仍然与原始 Grbl 设置具有基本的向后兼容性,以使 gcode 发送者满意。像 $StallGuardDebugMask 这样的新设置只能在 $text 类型格式中使用。这是您通过发送 $S 获得的部分列表

$SpindleMaxPWM=100.000
$xStepsPerMm=200.000
$yStepsPerMm=200.000
$zStepsPerMm=100.000
$xMaxRate=5000.000
$yMaxRate=1000.000
$zMaxRate=1000.000
$xAcceleration=20.000
$yAcceleration=200.000
$zAcceleration=200.000
$xMaxTravel=100.000
$yMaxTravel=300.000
$zMaxTravel=100.000
$xRunCurrent=0.800
$yRunCurrent=0.500
$zRunCurrent=0.500
$xHoldCurrent=0.250
$yHoldCurrent=0.250
$zHoldCurrent=0.250
$xMicrosteps=16
$yMicrosteps=32
$zMicrosteps=16
$xStallGuard=8
$yStallGuard=16
$zStallGuard=16

您可以发送 $L 以查看数字与文本的匹配情况。这是部分列表。

$0 => $StepPulse
$1 => $StepperIdleTime
$2 => $StepInvertMask
$3 => $DirInvertMask
$4 => $StepEnableInvert
$5 => $LimitInvert
$6 => $ProbeInvert
$10 => $StatusMask
$11 => $JunctionDeviation
$12 => $ArcTolerance
$13 => $ReportInches
$20 => $SoftLimits
$21 => $HardLimits
$22 => $HomingEnable

发送 $E 以查看错误编号的含义。部分名单。

0: No error
1: Expected GCodecommand letter
2: Bad GCode number format
3: Invalid $ statement
4: Negative value
5: Setting disabled
6: Step pulse too short
7: Failed to read settings
8: Command requires idle state
9: GCode cannot be executed in lock or alarm state
10: Soft limit error
11: Line too long
12: Max step rate exceeded
13: Check door
14: Startup line too long
15: Max travel exceeded during jog
16: Invalid jog command
17: Laser mode requires PWM output

还有更多的可用性功能。

注意:我们计划进行一些名称调整,并为它们添加一个分层树状结构。

电机类 (@bdring)

Grbl_ESP32 支持比标准 Grbl 更多的电机类型,包括简单步进/dir 类型、Trinamic SPI 类型、RC 伺服和单极步进电机。这很臃肿,并且把核心运动控制器代码弄得一团糟。现在电机使用面向对象的 C++ 代码。这简化了事情并大大减少了代码。额外的电机类型将很容易添加。

许多新的 Grbl_ESP32 功能! 第449章 bdring 改了标题 许多新的 Grbl_ESP32 功能! 许多新的 Grbl_ESP32 功能! 2020 年 6 月 19 日
许多新的 Grbl_ESP32 功能! 第449章

I2S 开发板正在进行一些重要的修订,因此如果您正在考虑构建一个,最好等待。

许多新的 Grbl_ESP32 功能! 第449章

快乐 评论 2020 年 6 月 19 日  

@MitchBradley 我希望有几个有刷直流电机的选项(使用 A4950 https://lcsc.com/search?q=a4950之类的东西)也有编码器输入选项,如下链接:

https://github.com/misan/dcservo

谢谢。

许多新的 Grbl_ESP32 功能! 第449章

新板支持主轴和输入的插件模块,并且可以通过pololu-socket桥接适配器将步进和方向引脚发送到输出连接器。这应该足以满足您想要的硬件方面的需求。它不会解决软件的主要问题,因此该线程不适合重申对有刷伺服支持的请求。

许多新的 Grbl_ESP32 功能! 第449章
贡献者

根数控 评论 2020 年 6 月 19 日

嗨,先生们,

喜欢这个项目,我可以看到你正在做一些很棒的工作,带来了新的硬件。我想知道我是否可以帮助硬件设计?作为我的 Root CNC 项目的一部分,我一直在为我的一台机器(Root 4)设计一个新的控制器。我看过 MESA 卡、GRBL、并行卡、MACH、基于 Arduino 的项目,它们要么太贵,要么功能有限,我认为这个项目可以很好地适应这个领域,并提供功能丰富的选项,而且购买成本低-在成本。
我目前正在考虑设计一个控制器,其重点是为功能丰富的 Root CNC 提供动力,但在设计此板时,合并您正在考虑的更多功能可能是一个好主意。我很乐意帮助设计电路板,因为我是一名专业的电子工程师。只是一个想法——很高兴为这个伟大的项目提供帮助。

许多新的 Grbl_ESP32 功能! 第449章
所有者作者

婚戒 评论 2020 年 6 月 20 日

@RootCNC我正在做的设计在本期的第一篇文章中有详细介绍。它工作得很好,没有问题,但我正在考虑将输入部分更改为模块化。主轴模块运行良好,所以我正在考虑将这个概念扩展到输入。我把我目前的想法放在这个 wiki 页面上

许多新的 Grbl_ESP32 功能! 第449章
贡献者

根数控 评论 2020 年 6 月 20 日

@bdring啊,我明白了(对 GitHub 来说还是新手)。如果您需要帮助,请告诉我。我已经为一个完全隔离的板(假设使用了外部电机驱动器)计划了一个可能有用的方案。

保持良好的工作。

许多新的 Grbl_ESP32 功能! 第449章

惊人的!

我可以将主轴 RS485 模块放在“主轴模块 1”或“主轴模块 2”中吗?还是必须在其中一个插槽中使用?

$StallGuardDebugMask 真是太棒了!很好的主意!

许多新的 Grbl_ESP32 功能! 第449章
所有者作者

婚戒 评论 2020 年 6 月 20 日

@vitalibr 您使用什么插槽取决于控制器主板的设计。RS485 需要一些双向 GPIO。继电器只需要 1 个输出。

在我目前的设计中,我将 GPIO 连接到一个,而将输出连接到另一个。因此,第二个限制在可以使用的模块上。我可能会更改最终设计的一些内容。主要目的只是为了测试新功能。

注意:Grbl 只支持一个主轴。其他的将用于冷却剂、真空、工具更换器等。术语主轴模块可能会更改为“输出模块”之类的东西。

@happytm没有理由不能将电机控制器放在输出模块上。您可以制作一个小型、智能、无刷 DC 控制器,该控制器接受 step/dir/enable 和可能的故障返回。喜欢@MitchBradley说,请不要在这个线程上这样做。

许多新的 Grbl_ESP32 功能! 第449章

@bdring谢谢你。

许多新的 Grbl_ESP32 功能! 第449章

@RootCNC您能否提供您的 Root 4 机器所需的信号列表?我们可以将其与我们将在新模块化板上提供的内容进行比较。如果有差距,也许我们可以想出插件模块的想法来填补这些差距,也许你可以设计一些模块。

许多新的 Grbl_ESP32 功能! 第449章
贡献者

根数控 评论 2020 年 6 月 25 日

@MitchBradley确定的事情;所以我整理了这个回购(我认为这是分享一些想法的最佳方式)

ESP32-GRBL-根控制器

它在很大程度上是一个概念,但顶级 SVG 可能是帮助识别我的想法的好主意。链接 –这里。该框图还定义了一些初步部分,以支持该概念。

引脚分配可在此处的 excel 电子表格中找到。

让我知道你的想法 :)

许多新的 Grbl_ESP32 功能! 第449章
合作者

米奇布拉德利 评论 2020 年 6 月 25 日  

好的,看起来 Bart 和我正在设计的新“6 件装”板将处理您用例中的所有内容:

  • 6 通道步进输出通过 I2S(不是 I2C)移位寄存器 – 74AHCT595 – 完成,可驱动 5V 光耦合器。Pololu 插座有桥接模块,因此您可以轻松连接外部驱动程序。I2S 步进方案在 250 kHz 边沿速率、125 kHz 脉冲速率下完全无抖动。每个步进器都有一个单独的启用。
  • I/O 模块有 5 个插入式插槽。它们都有 4 个通用引脚,可用于模块上的 I2C 扩展器,每个引脚都有 4 个非通用 GPIO 引脚,可用于哑 I/O 或您希望配置 ESP 驱动的任何东西。
  • 如果 Bart 现有的主轴模块之一不适合(例如隔离不够好),您的主轴卡可以设计为一个模块。
  • Bart 的另一个模块是 4 通道“防弹”输入模块,带有光耦合、RC 滤波、施密特触发器缓冲器。如果您需要更多输入,您可以使用多个这些模块。
  • 如果您需要更多自定义 I/O,您可以使用 I/O 扩展器甚至是 STM32F030 等小型微处理器制作模块。我正在设计一些这样的“智能模块”,因此它们可能会在不久的将来现成可用。
  • 可以制作跨越任意数量的模块插槽的大型模块。包括 Pololu 插座在内的所有引脚都位于一致的 0.1″ 网格上,因此使用穿孔板制作跨模块板的原型很容易。
    将 ESP32 用于 CNC 有几个常见挑战:
  • 大型机器没有足够的引脚。我们通过采用 I2S/移位寄存器方案解决了这个问题,该方案仅使用 3 个 GPIO 就为我们提供了 32 个额外的步进器类输出。这释放了许多 GPIO 用于其他用途。
  • 3V3 输出几乎不能驱动光耦合器。我们使用的移位寄存器可以从 3V3 电平转换为 5V,并且单独的使能输出避免了将使能连接到一个引脚时可能发生的过流问题。
  • ESP32 输入引脚的抗噪能力较差,因为是 3V3,内部上拉太弱且控制不佳,并且没有迟滞。我们正在通过插件模块上的光隔离、额外过滤和滞后来解决这个问题。
  • 即使在使用 I2S 步进器方案释放 GPIO 引脚之后,仍有一些可能的用例需要更多 I/O 引脚 – 例如多个风扇、照明、LCD 显示器……解决方案是“智能模块”,通过提供一组通用的 I2C 引脚来启用,这些引脚总线连接到所有模块。
    所有这些都需要软件支持。为此,我们已经完成了这个线程的开篇信息中列出的事情,并且正在开发更多功能,包括面向对象的 Spindle 类(已经工作),一个面向对象的 Pin 类,用于无缝处理实现的引脚通过 GPIO、I2S、I2C 等,以及运行时配置系统,您无需重新编译即可使用所有这些东西。
许多新的 Grbl_ESP32 功能! 第449章
贡献者

根数控 评论 2020 年 6 月 27 日

美滋滋的说。我会更多地研究你使用的移位寄存器。通过快速计算,Root CNC 高速移动所需的步进脉冲大约为 50KHz 步进速度,这对机器来说似乎是一个舒适的速度,虽然可以使用 75KHz 左右的更高步进,但机器确实听起来有点 UN-快乐的。

你们是否评估了移位寄存器的数量,而不是可以菊花改变,同时仍然为运动控制产生良好的输出速率?

我仍在考虑使用您和团队组合的软件生产一个以 Root CNC 为中心的控制器(因为它看起来完全符合要求)。我会接受你在船上所说的话,并随时向你通报进展情况。

许多新的 Grbl_ESP32 功能! 第449章

我认为可以以 250 kHz 边沿速率/125 kHz 步进速率菊花链 8 个移位寄存器。

许多新的 Grbl_ESP32 功能! 第449章
喜欢 (0)

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