注释
我支持这个! |
您实际上是在要求闭环电机支持吗?我认为最好留在其他板上。 |
我计划很快开始在一个分叉中工作。也许这是我们可以在我的 fork 工作后查看的那种东西,然后讨论它是否在主分支中占有一席之地。 我想象的是有一个模块用闭环控制生成代替阶跃脉冲生成……上面的一切都将保持不变。 |
是有刷直流电机还是三相无刷直流电机?恕我直言,我认为无刷是提高功率密度和成本的方法。 您在看 ABN 型编码器还是磁性绝对值编码器? 我正在考虑查看的一件事是 Trinamic 5160 驱动程序上的内置编码器支持。我无法关闭循环,但它可以在不添加任何额外 ESP32 I/O 引脚的情况下监控循环。 |
我同意三相无刷直流电机是要走的路,但是我需要在电机之后使用减速齿轮(大约 300:1),因为有刷直流电机通常会减速齿轮,比如碎纸机和那些我可以的小芭比车让它们比我买任何无刷的东西便宜得多……至少我见过。 我计划使用 AMS 磁性编码器,因为我需要相当高的分辨率,而且它们的成本似乎是最好的(尽管 2% 的非线性并不理想,需要进行一些校准)。他们通过 SPI 交谈,因此他们最终不会占用太多引脚。 |
像麻省理工学院猎豹一样的机器狗使用无刷直流电机。它们通常仅以 6:1 的比例减速,并且可以进行后空翻。 我有一个这样的马达,它是一只野兽。我实际上认为它比 CNC 所需的功能更强大。我宁愿选择大约 3:1 并利用更高的输出 RPM。 我也有一个 ODrive 无刷设置。 |
这是一个奇妙的观点。我可以用腰带轻松地进行 10:1 的减少。 不过,成本仍然是一个因素。无刷驱动器要贵得多。 我将对此进行更多研究。 |
我也投票支持一些编码器。 当然,非常感谢@bdring 对于优秀的开源项目! |
由于有很多可能的组合(无刷与有刷、ABN 与 SPI),似乎此功能请求可能很快就会变得太大或太有限。是否可以使步进驱动器代码在某种程度上模块化,以便可以更换替代模块来控制不同的电机类型? 类似于 这将允许核心代码被重用于多个应用程序,同时在改变已经很棒的东西方面不会太摇摆不定 |
stepper.cpp 已经为不同的场景定义了 wazoo。Arduino IDE 并不适合模块化设计。它适用于简单的新手爱好者项目,当事情变得复杂时,代码开始看起来很乱。但也许还有一些希望。 我认为关于闭环编码器支持的底线是“与可以进行的许多其他改进相比,它的价值是什么,以及应该如何分配可用的开发资源”。我个人的看法是,虽然编码器支持确实有价值,但它并不是最重要的。 |
我同意,#ifdef’iness 是一种痛苦。 如果您查看custom_machine_template.cpp,它是一种添加用户定义功能的更简洁的方式。 话虽如此……内部闭环电机不是由步进和方向驱动的。他们正在追逐一个目标。该目标是当前的 Grbl 位置。该值在全球范围内可用。您将不得不创建一个新任务或中断。它可以只查找目标本身。 我在构建闭环机器方面有相当多的经验,最大的收获是它们很棒,但是接线很乱。猎豹汽车是一种截然不同的体验。您提供电源和 CAN。两者都可以菊花链式连接。我个人认为 DIY 闭环的未来在于完全集成的无刷直流电机/驱动器。您只需发送电源和 CAN 或 Step /Dir。 |
如果您想要集成为 Nema17/23/34 的东西,请查看 JMC CL-Steppers 和 Servos,它们非常便宜且价格合理。 |
我同意。闭环步进器现在非常实惠,而且工作得很好。我在我的 Taig 磨机的 X 和 Y 上使用它们,效果非常好。我用的是一体机,所以出厂就调好了,没有大电流脉冲跑来跑去造成EMI,而且系统布局紧凑,不用盒子装驱动。 对于接线,我使用 CAT5 作为信号 – 因为电流很低 – 控制器盒上有一个 RJ45 插孔,还有一条单独的 2 芯电缆连接到电源。它使布局非常干净。接线很简单,因为您可以在隔板上使用母对母直通插孔,然后将以太网电缆切成两半以获得内部和外部末端。 |
价格稍低的有 MKS SERVO42B (NEMA 17) 和 MKS SERVO57B (NEMA 23)。 |
原谅我的无知……闭环步进器背后的想法是什么?你还在用方向/步进脉冲控制它吗?或者你给它发送一个像伺服一样的目标值? |
极好的!听起来很多架构已经到位。如果你要试一试,有人愿意给我一个两句话的路线图吗? 如何在全球范围内抢占 GRBL 位置?如果我要添加一个新计时器,我应该使用哪个计时器而不在现有代码上单步执行(双关语)? |
闭环步进器是将步进器和编码器以及驱动器和编码器传感电子设备整合为一体。你向它发送步骤和方向,它就会知道要做什么。不会丢步;如果它开始落后,它会根据需要增加电机电流,如果它不能这样做,它就会进入故障模式并停止。我认为他们是未来的潮流。还有一些版本可以通过 CAN 总线等接收目标位置,但 step/dir 更便宜,并且与 GRBL 和朋友兼容。 |
我有一些闭环步进电机,它们像宣传的那样工作,但它们的扭矩更小,最大速度也比类似尺寸的无刷直流电机低很多。我尝试用它们改装和中国 3020 磨机,虽然它们是闭环的,但性能不如原来的步进电机。 |
我在所有 3 轴上都使用了额定扭矩为 85kgcm 的 Leadshine Easy 伺服(闭环步进器);x、y 和 z。我取得了优异的成绩。我正在使用带有 cncjs 的 grbl_esp32 和 USB 串行。我的最小移动(分辨率)是 0.002 毫米,在这个分辨率下,我可以达到 8000 毫米/分钟的最高速度,而不会出现任何尺寸故障。这是我的机器对黄铜的精加工操作的链接: |
一些闭环系统具有的一个不错的功能是能够关闭扭矩,手动移动电机并且必须控制器更新其位置, 我在这里有这个 Grbl_ESP32 delta。当运动停止时,您可以手动移动末端执行器。Grbl_ESP32 知道你把它移到了哪里,所以下一步的移动非常顺利和可控。 https://www.youtube.com/watch?v=wPDP6ckP0sQ 对于工厂来说,这是一个很棒的功能。通常你想在手动模式下使用它。手动移动 DRO 时更新 DRO 真是太好了。 它对于在具有奇异运动学的某些机器上归位也非常重要。在某些位置,正确归位很重要,否则您可能会不小心对关节造成压力。 |
感谢您的快速回复! 感谢您为这个项目所做的工作! |
左下方的连接器上有 PWM 和 EN 引脚,足以进行激光控制。 |
这个板有什么更新吗?哪里买(这个? |
我终于开始给这个适当的破解,我想知道#449中描述的电机类是否相关,并且是最好的方法。我真正需要的是当前机器坐标(它应该在哪里),以及一个我可以定期调用我的 PID 函数的地方。 鉴于自本期发布以来的所有更改和改进,您对最佳入门方式有何看法? 编辑:似乎 protocol_execute_realtime() 是重新计算 PID 值的理想场所。现在我只需要获取我认为可以从 report.cpp 中找出的目标坐标 编辑2:
添加到 protocol_execute_realtime 函数中可以获得可用于驱动伺服轴的实时 XYZ 坐标。 我认为主要项目添加对每种类型的编码器和电机的支持是不合理的,但希望这些信息能让任何人轻松获得组合工作而没有太多麻烦。 多么棒的项目! |
你好@bdring,我在 tindie 上看不到这个博拉德。你开始卖这个了吗?我有兴趣购买。 |
完美街机 评论 on 15 Feb 2020
关于闭环编码器支持的任何想法?