开源改变世界

编码器支持 #330

推推 grbl 3年前 (2023-01-30) 99次浏览
打开
arcadeperfect 打开了这个问题 2020 年 2 月 15 日 · 29条评论
打开

编码器支持#330

arcadeperfect 打开了这个问题 2020 年 2 月 15 日 · 29条评论

注释

编码器支持 #330

关于闭环编码器支持的任何想法?

编码器支持 #330 arcadeperfect 添加了 增强 新功能或要求标签 2020 年 2 月 15 日
编码器支持 #330

我支持这个!

编码器支持 #330
所有者
培养 评论了 2020 年 2 月 15 日  

您实际上是在要求闭环电机支持吗?我认为最好留在其他板上。

编码器支持 #330

我计划很快开始在 fork 中进行这项工作。也许这是我们可以在我的 fork 中查看的东西,一旦它开始工作,然后讨论它是否在主分支中占有一席之地。

我想象的是有一个模块用闭环控制生成代替步进脉冲生成……上面的所有内容都将保持不变。

编码器支持 #330
所有者

是用于有刷直流电机还是三相无刷直流电机?恕我直言,我认为无刷是追求功率密度和成本的方式。

您在看 ABN 型编码器还是磁性绝对编码器?

我正在考虑关注的一件事是 Trinamic 5160 驱动程序的内置编码器支持。我无法关闭循环,但它可以在不添加任何额外的 ESP32 I/O 引脚的情况下监控循环。

编码器支持 #330

我同意三相无刷直流电机是可行的方法,但我需要电机后的减速齿轮(大约 300:1),因为有刷直流电机通常会减速用于碎纸机和那些我可以的小芭比娃娃汽车让它们比我买的任何无刷产品都便宜很多……至少我见过。

我打算使用 AMS 磁编码器,因为我需要相当高的分辨率,而且就成本而言,它们似乎是最好的(尽管 2% 的非线性并不理想,需要进行一些校准)。他们通过 SPI 进行交谈,这样他们就不会占用太多的引脚。

编码器支持 #330
所有者

机器狗,如 MIT Cheetah,使用无刷直流电机。它们通常只有 6:1 的减速比,并且可以进行后空翻。

我有一个这样的马达,它是一个野兽。我实际上认为它比 CNC 所需的更强大。我宁愿使用大约 3:1 并利用更高的输出 RPM。

我还有一个 ODrive 无刷设置。

编码器支持 #330

这是一个很棒的观点。我可以轻松地用皮带进行 10:1 的减速。

成本仍然是一个因素。无刷驱动器要贵得多。

我将对此进行更多调查。

编码器支持 #330

我也投票支持一些编码器支持。
我有几个直流有刷电机 (Faulhaber 3863) + ABN 型编码器 (HEDS-5500),我的计划是将它们用于 OpenPnP 机器。我实际上想使用 Tarroco (DRV8701 + CY8C4245) 板来控制此设置。但是与 ESP 的任何级别集成看起来都很有趣。

当然,非常感谢@bdring 对于优秀的开源项目!

编码器支持 #330

由于存在如此多的可能组合(无刷与有刷、ABN 与 SPI),此功能请求似乎很快就会变得太大或太有限。是否可以使步进驱动器代码在某种程度上模块化,以便可以换入替代模块来控制不同的电机类型?

类似
UI -> Gcode -> Motion and Acceleration Planning -> Step generation
vs
UI -> Gcode -> Motion and Acceleration Planning -> Closed loop signal generation

这将允许核心代码被多个应用程序重用,同时在改变已经很棒的东西方面不会太过摇摇欲坠

编码器支持 #330

stepper.cpp 已经针对不同的场景进行了 ifdef。Arduino IDE 并不真正适用于模块化设计。它是为简单的新手爱好者项目而设计的,当事情变得复杂时,代码开始看起来很乱。但也许还有一些希望。

我认为关于闭环编码器支持的底线是“与许多其他可以进行的改进相比,它的价值是什么,以及应该如何分配可用的开发资源”。我个人的看法是,虽然编码器支持确实有价值,但它并不是列表中最重要的东西。

编码器支持 #330
所有者

我同意,#ifdef’iness 很痛苦。

如果您查看custom_machine_template.cpp,它是一种更简洁的添加用户定义功能的方法。

话虽如此……内部闭环电机不是由步进和方向驱动的。他们正在追逐一个目标。该目标是当前 Grbl 位置。该值在全球范围内可用。您将不得不创建一个新任务或中断。它可以只查找目标本身。

我在构建闭环机器方面有相当多的经验,最大的收获是它们很棒,但布线混乱。猎豹马达是一种截然不同的体验。您提供电源和 CAN。这两个都可以菊花链。我个人认为 DIY 闭环的未来在于完全集成的无刷直流电机/驱动器。您只需发送电源和 CAN 或 Step /Dir。

编码器支持 #330

如果你想要集成为 Nema17/23/34 的东西,看看 JMC CL-Steppers 和 Servos,它们很棒而且价格合理。

编码器支持 #330
合作者
米奇布拉德利 评论了 2020 年 2 月 18 日  

我同意。闭环步进器现在很实惠,而且工作得很好。我在我的 Taig 轧机的 X 和 Y 上使用它们,效果非常好。我用的是一体机,所以出厂就调好了,没有大电流脉冲跑来跑去造成EMI,系统布局紧凑,不用箱子装驱动。

对于接线,我使用 CAT5 信号——因为电流很低——在控制器盒上有一个 RJ45 插孔,还有一根单独的 2 芯电缆连接到电源。它使布局非常干净。布线很简单,因为您可以在隔板上使用母对母直通插孔,然后将以太网电缆切成两半以获得内外两端。

编码器支持 #330

价格稍低的有 MKS SERVO42B (NEMA 17) 和 MKS SERVO57B (NEMA 23)。

编码器支持 #330
作者

原谅我的无知……闭环步进器背后的想法是什么?你还用方向/步进脉冲控制它吗?还是像伺服一样给它发送一个目标值?

编码器支持 #330

该目标是当前 Grbl 位置。该值在全球范围内可用。您将不得不创建一个新任务或中断。它可以只查找目标本身。

极好的!听起来很多架构已经到位。如果您要试一试,是否有人愿意给我一份两句话的路线图,说明您将从哪里开始?

如何在全球范围内抢占 GRBL 的位置?如果我要添加一个新计时器,我应该使用哪一个而不踩踏(双关语)现有代码?

编码器支持 #330

闭环步进器是将步进器和编码器以及驱动器和编码器传感电子设备合二为一。你向它发送步骤和方向,它就会知道该怎么做。不会失步;如果它开始落后,它会根据需要增加电机电流,如果它不能做到,它就会进入故障模式并停止。我认为他们是未来的潮流。也有可以通过 CAN 总线等接收目标位置的版本,但 step/dir 版本更便宜,开箱即用,与 GRBL 和朋友兼容。

编码器支持 #330
所有者

我有一些闭环步进电机,它们按广告宣传的那样工作,但与类似尺寸的无刷直流电机相比,它们的扭矩更小,最大速度也低很多。我试着用它们改造中国 3020 磨机,虽然它们是闭环的,但性能不如原来的步进机。

编码器支持 #330
卡洛里亚 评论了 2020 年 2 月 18 日  

我在我的所有 3 轴上使用额定扭矩为 85kgcm 的 leadshine easy servo(闭环步进电机);x、y 和 z。我取得了优异的成绩。我正在将 grbl_esp32 与带有 usb 串口的 cncjs 一起使用。我的最小移动(分辨率)是 0.002 毫米,在这个分辨率下,我可以达到 8000 毫米/分钟的最高速度,而不会出现任何尺寸故障。这是我的机器在黄铜上的精加工操作的链接:
https ://youtu.be/DjrogGLLk-0

编码器支持 #330
所有者

一些闭环系统具有的一个很好的功能是能够关闭扭矩,手动移动电机并且必须控制器更新其位置,

我这里有这个 Grbl_ESP32 delta。当运动停止时,您可以手动移动末端执行器。Grbl_ESP32 知道你把它移到了哪里,所以下一步的移动非常顺利和可控。

https://www.youtube.com/watch?v=wPDP6ckP0sQ

这是磨坊的一大特色。通常您想在手动模式下使用它。手动移动时让 DRO 更新真是太好了。

对于某些具有奇特运动学的机器,它也可能非常重要。在某些位置,正确归位可能很重要,否则您可能会不小心使关节受压。

编码器支持 #330

看看其中一些高达 400W 的集成编码器伺服电机
https://www.aliexpress.com/af/servo-motor-integrated.html

抱歉,我还在了解这个项目,该板目前是否与此类伺服电机兼容?谢谢 :)

编码器支持 #330
所有者

这些司机倾向于采取步骤和方向信号。Grbl_ESP32 可以很好地驱动,但它们往往是 5V 和光电隔离。这意味着您需要一个可以驱动几毫安的 5V 信号。ESP32 为 3.3V,许多基本电压电平转换器无法驱动任何电流。

我将在几周内出售这个控制器。它旨在运行这些驱动程序。基本上它使用 74ACT245 芯片来驱动 opto。

编码器支持 #330

编码器支持 #330

感谢您的快速回复!
哇,这块板很适合这些伺服系统,
只是为了确定,它是否仍与 CO2 激光控制兼容?我认为它只需要一个数字 PWN/TTL 引脚,对吗?

感谢您为这个项目所做的工作!
我肯定会在 tindie 上购买你们的一块电路板,并将其用于我的大型 CNC 激光切割机
似乎 ESP32 对 GRBL 世界的实施是巨大的。

编码器支持 #330

左下方的连接器上有 PWM 和 EN 引脚,可以满足激光控制。

编码器支持 #330

这里有几个很好的例子,将步进电机转换为伺服电机或将有刷直流 775 电机转换为伺服电机,主要使用代码和原理图

步进伺服转换器
https://github.com/jcchurch13/Mechaduino-Hardware
https://github.com/makerbase-mks/MKS-SERVO42B
https://www.crowdsupply.com/citrus-cnc/tarocco#details-最佳

775 电机
https://github.com/misan/dcservo & https://www.youtube.com/watch?reload=9&v=kTUaKS-4Spc

编码器支持 #330

我将在几周内出售这个控制器。它旨在运行这些驱动程序。基本上它使用 74ACT245 芯片来驱动 opto。

这个板有更新吗?在哪里买?

编码器支持 #330
巴伯史密斯 评论了 2020 年 7 月 17 日  

我终于抽出时间来对此进行适当的破解,我想知道#449中描述的电机类是否相关以及执行此操作的最佳方法。我真正需要的是当前机器坐标(它应该在的位置),以及一个我可以定期调用我的 PID 函数的地方。

鉴于自此问题打开以来的所有更改和改进,您对最佳入门方式有何看法?

编辑:似乎 protocol_execute_realtime() 是重新计算 PID 值的理想场所。现在我只需要获取我认为可以从 report.cpp 中找出的目标坐标

编辑2:

    Serial.print("XYZ: ");
    int32_t current_position[N_AXIS]; // Copy current state of the system position variable
    memcpy(current_position, sys_position, sizeof(sys_position));
    float print_position[N_AXIS];
    system_convert_array_steps_to_mpos(print_position, current_position);
    Serial.print(print_position[0]);
    Serial.print(" ");
    Serial.print(print_position[1]);
    Serial.print(" ");
    Serial.println(print_position[2]);

添加到 protocol_execute_realtime 函数中可以获得可用于驱动伺服轴的实时 XYZ 坐标。

我认为主项目添加对每种类型的编码器和电机的支持是不合理的,但希望此信息将使任何人都能轻松获得组合工作而不会遇到太多麻烦。

多么棒的项目!

编码器支持 #330

这些司机倾向于采取步骤和方向信号。Grbl_ESP32 可以很好地驱动,但它们往往是 5V 和光电隔离。这意味着您需要一个可以驱动几毫安的 5V 信号。ESP32 为 3.3V,许多基本电压电平转换器无法驱动任何电流。

我将在几周内出售这个控制器。它旨在运行这些驱动程序。基本上它使用 74ACT245 芯片来驱动 opto。

编码器支持 #330

你好@bdring,我在 tindie 上看不到这个 borad。你开始卖这个了吗?我有兴趣购买。

免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
增强新功能或要求
项目

还没有

发展

没有分支机构或拉取请求

11人参加
编码器支持 #330编码器支持 #330编码器支持 #330编码器支持 #330编码器支持 #330编码器支持 #330编码器支持 #330编码器支持 #330编码器支持 #330编码器支持 #330编码器支持 #330

喜欢 (0)