开源改变世界!!

编码器支持 #330

推推 grbl 2年前 (2022-10-20) 279次浏览 0个评论
打开
arcadeperfect 打开了这个问题 on 15 Feb 2020 · 29 条评论
打开

编码器支持#330

arcadeperfect 打开了这个问题 on 15 Feb 2020 · 29 条评论

注释

编码器支持 #330

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

编码器支持 #330 arcadeperfect 添加了 增强 新功能或请求标签 on 15 Feb 2020
编码器支持 #330

我支持这个!

编码器支持 #330
所有者

婚戒 评论 on 15 Feb 2020  

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

编码器支持 #330

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

我想象的是有一个模块用闭环控制生成代替阶跃脉冲生成……上面的一切都将保持不变。

编码器支持 #330
所有者

婚戒 评论 on 17 Feb 2020

是有刷直流电机还是三相无刷直流电机?恕我直言,我认为无刷是提高功率密度和成本的方法。

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

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

编码器支持 #330

我同意三相无刷直流电机是要走的路,但是我需要在电机之后使用减速齿轮(大约 300:1),因为有刷直流电机通常会减速齿轮,比如碎纸机和那些我可以的小芭比车让它们比我买任何无刷的东西便宜得多……至少我见过。

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

编码器支持 #330
所有者

婚戒 评论 2020 年 2 月 17 日

像麻省理工学院猎豹一样的机器狗使用无刷直流电机。它们通常仅以 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 -> 闭环信号生成

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

编码器支持 #330

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

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

编码器支持 #330
所有者

婚戒 评论 on 18 Feb 2020

我同意,#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
所有者

婚戒 评论 2020 年 2 月 18 日

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

编码器支持 #330

卡洛里亚 评论 2020 年 2 月 18 日  

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

编码器支持 #330
所有者

婚戒 评论 2020 年 2 月 19 日

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

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

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

对于工厂来说,这是一个很棒的功能。通常你想在手动模式下使用它。手动移动 DRO 时更新 DRO 真是太好了。

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

编码器支持 #330

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

对不起,我还在学习这个项目,该板目前是否与此类伺服电机兼容?谢谢 :)

编码器支持 #330
所有者

婚戒 评论 2020 年 2 月 25 日

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

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

编码器支持 #330

编码器支持 #330

感谢您的快速回复!
哇,这个板子很适合这些伺服系统
,然后只是为了确保它仍然与二氧化碳激光控制兼容吗?我认为它只需要一个数字 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 芯片来驱动光电。

这个板有什么更新吗?哪里买(这个?

编码器支持 #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 芯片来驱动光电。

编码器支持 #330

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

编码器支持 #330
喜欢 (0)

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