开源改变世界!!

grbl esp32 推到 6 轴之外?

推推 grbl 2年前 (2022-06-12) 594次浏览 0个评论

你好,

您是否有机会将 grbl esp32 推到 6 轴之外?
我正在寻找 6 个步进轴和 2 个伺服轴,但我很感兴趣你可以将它轴向推多远。
背景:我正在构建一个运动控制装置,并且会用完轴^^

需要明确的是,我并不是要你实现这一点。我只是在寻找一个方向。
如果这在理论上是可能的,我会去做,否则我会寻找其他地方。

感谢您的时间和制作 Grbl_Esp32!

问候,
安迪

grbl esp32 推到 6 轴之外?

为什么不只使用 2 grbl ESP32 设置?

grbl esp32 推到 6 轴之外?

那是我想到的替代方案之一。我非常依赖 G93 反向进给率模式,并且担心如果一个运行伺服系统而另一个运行步进器,两个 esp32 将不会完全同步。

grbl esp32 推到 6 轴之外?

在目前的形式中,Grbl_ESP32 受到 RMT 通道和引脚的限制。每个步进器需要 2 个 RMT 通道,其中 ESP32 有 10 个,所以总共有 5 个步进器。还有一个引脚限制。如果排除 UART 和 SD 卡所需的引脚,则剩下大约 19 个引脚,其中 5 个只能作为输入,因此您将获得 14 个输出引脚。使用其中一些用于主轴控制、冷却剂和诸如此类的东西,考虑到每个步进器需要 2 个引脚,您几乎没有引脚。使用 I/O 扩展器有一些可能性,但它需要大量工作,两者软件和硬件,以实现这一目标。一种方法是使用具有更多引脚的新 ESP32-S2。它应该在今年夏天出来。底线 – 没有超级简单的方法可以在短期内将 Grbl_ESP32 扩展到更多轴。

grbl esp32 推到 6 轴之外?
作者

安德烈亚斯埃普 评论 2020 年 3 月 15 日  

所以 5 步进轴无论如何都是一个限制,嗯……
ESP32-S2 可能值得等待(根据他们的网站,“43 个可编程 GPIO” )
我目前在 arduino Mega 上使用 4 轴,所以我有一个一点时间。

我的计划是使用 arduino mega 的 6 步进轴并尝试将 esp32 同步到它以进行伺服控制。

这开始闻起来像是需要自制解决方案^^

grbl esp32 推到 6 轴之外?
所有者

婚戒 评论 2020 年 3 月 15 日

每个步进器在步进引脚上的每个通道只需要 1 个 RMT。方向引脚为标准 GPIO。

像爱好伺服这样的轴不需要 RMT。

大多数轴计算使用 8 位值,因此这是一个限制因素。像 100 美元这样的设置将是 10 的下一个限制。

话虽如此,要从当前的限制 6 进行更改是很多工作。

grbl esp32 推到 6 轴之外?

像爱好伺服这样的轴不需要 RMT。

好的,但是只有 5 个 RMT 可用的限制仍然会排除 esp32 用于我的步进控制。

大多数轴计算使用 8 位值,因此这是一个限制因素。像 100 美元这样的设置将是 10 的下一个限制。

那是 5 个步进器和 5 个伺服器,对吗?

如果有人感兴趣:是我的运动控制装置的第一个视频。全部由 grbl 和一点电影魔法控制;)

grbl esp32 推到 6 轴之外?
所有者

婚戒 评论 2020 年 3 月 15 日

有 8 个 RMT 频道。

Grbl 目前限制您使用 6 个字母轴。

grbl esp32 推到 6 轴之外?
作者

安德烈亚斯埃普 评论 2020 年 3 月 16 日  

我懂了。由于 MitchBradleys 的回答,我认为在 5 处会有一个限制。
无论如何,在单个 esp32 上超过 6 轴看起来会很困难。

在同步两个 grbl 控制器时:
是否可以通过 GPIO 引脚设置“Feed Hold”模式,填充两个控制器的缓冲区,然后通过“Resume”GPIO 引脚启动它们。在那之后,我只需要让两个缓冲区都不会挨饿,一切都应该很好,对吧?

grbl esp32 推到 6 轴之外?
所有者

婚戒 评论 2020 年 3 月 16 日

您可以通过 GPIO 控制保持和启动,但无法保证同步。

舵机是干什么用的?也许他们不需要是字母轴。

grbl esp32 推到 6 轴之外?

伺服系统控制相机的变焦和对焦。它们需要与电机一起制作动画。

我使用 G93 命令生成 g 代码,以便在特定时间(例如 1 秒)内移动到某个位置。因为步进器的加速度与将它们分离到不同控制器的伺服系统的加速度不同,这可能是个坏主意……

我已经看到在笔式绘图仪中使用 M 命令来提升和降低带有伺服的笔。
这个问题是运动是瞬时的并且与轴的运动不同步。但是,如果我选择足够小的 G93 间隔,这可能不会有什么不同。是否可以在 6 个字母的步进轴上添加两个这样的伺服系统?

grbl esp32 推到 6 轴之外?
所有者

婚戒 评论 2020 年 3 月 17 日

如果运动同步不是什么大问题,我认为可以添加M67之类的命令。

这可以向伺服系统发送一个 PWM 值。虽然 gcode 被定义为同步的,但这只是意味着规划器确保在发送该 PWM 值之前所有先前的移动都已完成。然后伺服器将开始以最快的速度向其目标移动,并且下一个 gcode 也将开始执行。

我可以预见将来某个时候将计数增加到 8,但目前这不是优先事项。我现在什至没有看到很多 Grbl 6 轴机器。

grbl esp32 推到 6 轴之外?

嗨,既然 ESP32-S2 现已推出,那会更容易添加更多同步轴吗?
或者有没有办法同步多个 Grbl_ESP32?
我也在寻找构建运动控制装置的解决方案,Grbl_ESP23 看起来几乎完美。
感谢您的出色工作!

grbl esp32 推到 6 轴之外?
所有者

婚戒 评论 2021 年 2 月 25 日

我相信 S2 是一个单核处理器。这将需要比其价值更多的固件工作。

S3 听起来很有前途,但我还没有看到它以模块形式提供。

grbl esp32 推到 6 轴之外?

好的,谢谢你的回复。
有没有办法让两个 ESP32 设备上的动作与现有的固件功能同步?
我认为对于相机运动控制,它不必精确到亚毫米,所以也许有一种解决方法。
例如,是否可以在一个控制器上添加一个额外的虚拟轴,通过 wifi 或其他数据连接发送到另一个控制器?(可能不是现有功能)
或者使用 G93 命令编码所有移动并发送 G-代码命令到另一个控制器?
对不起,如果我的问题对你来说似乎微不足道。

grbl esp32 推到 6 轴之外?

也许是一个愚蠢的想法,但您可以编写一个在您的计算机上运行的小应用程序,并通过 telnet 连接到两个或多个板,并向设备发送协调和同步的命令。一个简单的覆盆子就足以完成这项工作。
使用沿板分布的轴的较长运动肯定不会完全同步,因此不适合沿途达到 1/1000mm 精度。将较长的行程分解成较小的部分会导致不稳定的运动——这肯定不是您在移动相机时打算做的事情。
此外,我想知道为什么 6 轴不足以移动相机。

grbl esp32 推到 6 轴之外?

您只需要 6 个轴来移动相机(3 个线性轴和 3 个旋转轴:平移、倾斜、滚动),但如果您还想控制焦点(您可以这样做),则需要一个附加轴。
附加轴也可用于缩放和用于产品拍摄的同步转盘之类的东西。

我认为使用 G 代码命令从外部计算机控制两块板意味着两个固件都将独立计算移动,因此要获得一些同步扩展需要在 G93 反时限模式下对所有内容进行编码。这可能适用于相对简单的移动或一次移动。
(如果我错了,请纠正我。)
如果你想让机器在自定义路径上移动得更像 3d 打印机,移动通常会分解成许多小的 G 代码命令(这要归功于计划者通常不会导致抖动)。但我认为在反时限模式下编码很多小动作要复杂得多。(如果我错了,请再次纠正我)
所以让一个固件协调所有轴是理想的。

但也许还有其他方法可以同步两个板?

但是,您仍然可以构建一个非常通用的运动控制装置,包括焦点控制在内的 6 轴。
很多动作都不需要滚动轴,所以你只能使用平移和倾斜,并使用第 6 轴进行对焦。

grbl esp32 推到 6 轴之外?

只是一个意见:
坦率地说,我不认为在实现将两个板同步到固件的功能方面有很大的潜力,因为优先考虑肯定有更常见的请求。在 g 代码层上实现这一点不会比建议的在 grbl 之外执行此操作的方法有任何优势。实现通过 SPI 或类似于第二块板发送同步数据的东西不会比在板布局中添加硬件有任何优势,并且只会使事情复杂化。

构建支持超过 6 轴的新硬件或通过额外的硬件分支扩展 6pack 板会更容易。因此,用于附加驱动程序/轴的模块可能是一个好主意。
(例如,我正在使用 5 轴,可能有一天会使用第六轴来换刀。所以额外的用于装载材料、移动安全盖等也是有意义的。)

作为一种解决方法,您可以根据拍摄场景同步使用 7 个所需轴中的 5+1 个。因此,您的机器将实现 7 个电机,如果您使用外部驱动器,您可以切换步进/方向线,例如通过继电器或晶体管,并使用例如 g 代码中的雾控制在这两个电机之间切换。您应该对需要最少同步的两个电机执行此操作。在这种情况下,板上将没有硬件模块,也不需要固件模块,您可以从今天开始 – 但它有局限性。

grbl esp32 推到 6 轴之外?

我正在使用 G93 命令对所有运动进行计时(到目前为止是 4 轴同步)。否则生成动画将非常困难。
为了同步多个板,我正在将我的机器转换为无线 telnet 连接。我依靠快速主机将动画流式传输到多个板上(无论如何这是计划)。到目前为止,流到单个 Grbl_Esp32 telnet clinet 的速度为 30fps(30 个 G93 命令,每个命令 33ms)。我尝试使用 Raspberry Pi 3 作为 wifi 接入点,但我的 wifi 路由器的可靠性要好得多。为了测试和摆弄,我可以推荐 LaserGRBL,因为它支持通过 telnet 进行流式传输。

grbl esp32 推到 6 轴之外?

我知道相机运动控制装置是一个特殊的用例,它不是 grbl 的设计目的,对于大多数机器来说 6 轴就足够了。当然,我知道还有其他优先事项。
所以我不要求实现任何东西,只是试图找出现有功能的可能性。
根据拍摄场景在电机之间切换听起来是个不错的选择,但我想我现在可能只是放弃倾斜轴以使其相对简单。
只是为了确定:没有办法通过 Grbl 中的 Gcode 触发与另一台设备的任何通信,对吧?
我问是因为 Marlin 中有M260 I2C 发送和M118串行打印命令,但我找不到类似的东西linuxcnc.org.

能够向另一台设备发送命令可能很有用,只是为了触发该设备在特定点执行某些操作。它不必完全协调。在相机控制箱中,这可能是一个转盘,它告诉它旋转产品或将灯光设置为不同的颜色和强度。如果你看这样的东西它们也会触发一些事情。(我知道这是非常不同的硬件,他们使用专门为此制作的软件,我只是想制作一个像这样的穷人版本)

我想它也可能对其他机器有用。例如,如果您的工具更换器需要更复杂的运动,它可能有一个自己的控制器,它可以在需要时从第一个控制器接收命令。

@AndreasEpp你是手动编码你的动作还是使用任何软件来生成 Gcode?

grbl esp32 推到 6 轴之外?

我在 nodeJs 上用 Javascript 编写了一个主机应用程序来生成 gcode。我已经构建了一个遥控器来设置关键帧和它们之间的时间。如果您对此感兴趣,请访问我的 youtube 频道,在那里我上传了有关遥控器和运动控制装置的视频。这是第一个具有 3 轴和关键帧控制的版本。目前我正在开发第二个版本,它将由我电脑上的搅拌机控制并通过 telnet 发送 gcode。是我的 gitlab 存储库,您可以在其中找到我的远程和 moco 装备的代码和设计文件。
干杯

grbl esp32 推到 6 轴之外?

我看了你的 youtube 频道,干得好!关键帧对滑块完全有意义。
我也有使用搅拌机创建 Gcode 的想法。
我正在考虑在搅拌机中制作相机动画,烘焙动画并通过脚本将动画路径和相机方向导出为 Gcode。
然后可以将文件上传到 ESP 的 sd 卡,以便在没有连接计算机的情况下存储和播放 aven。
理想情况下,搅拌机相机将连接到运动控制装置的装配模型上,以便清楚地预览机器将如何移动。
您直接从 Blender 发送 gcode 的方法听起来也很棒,并且可以实时控制机器。
我很好奇结果会如何。

grbl esp32 推到 6 轴之外?

非常感谢!你真好

如果您知道正确的 url,我认为可以使用 webUI API 上传文件(也许有更直接的方法……)。
虽然如果 UI 依赖于 cookie 魔法可能会出现问题。

“理想情况下,搅拌机相机将连接到运动控制装置的装配模型上,以便清楚地预览机器将如何移动。”
=> 正是我的想法
很高兴认识志同道合的人 XD

youtube上的 howiemnet也有同样的想法,但在实施方面遥遥领先。

在进一步的步骤中,我想使用 gphoto2 来控制相机并将取景器流式传输到我的计算机,这样我就不必起床了!但在这成为可能之前,我必须能够归位所有轴,学习 python 并编写一个可以流式传输 gcode 的搅拌器插件。剩下的就是小菜一碟了!(反正我就是这么告诉自己的……)

如果您有兴趣(或任何阅读此内容的人),我已将视频上传到youtube,在那里我通过 telnet 将 gcode 流式传输到 grbl_esp32。

干杯

grbl esp32 推到 6 轴之外?

Howiemnet 的视频准确地展示了附加轴为何有用:
旋转/操作与相机移动和焦点控制同步的物体。
他的投篮正是我(也许你正在)寻找的类型。

如上所述,您是否已经尝试将 gcode 同时发送到两个单独的 grbl 控制器?

关于实时预览,我可能只会在我的电脑屏幕旁边安装一个 HDMI 显示器。

到目前为止,我有一个搅拌机脚本,可以将动画相机的位置和旋转输出到 gcode 文件。
我还没有在真机上测试过它,但我认为它应该可以工作。如果你愿意,我可以与你分享。

我倾向于告诉自己,这也应该是小菜一碟,直到我遇到下一个障碍;)。这通常在细节中。

grbl esp32 推到 6 轴之外?

如上所述,您是否已经尝试将 gcode 同时发送到两个单独的 grbl 控制器?

https://github.com/svenhb/GRBL-Plotter

grbl esp32 推到 6 轴之外?

如上所述,您是否已经尝试将 gcode 同时发送到两个单独的 grbl 控制器?

是的,但是一个通过串行连接,另一个通过 telnet 连接。我必须设置两台支持 telnet 的机器才能在那里进行更深入的挖掘,但现在我对结果非常满意。用我的遥控器慢跑感觉反应灵敏,到目前为止没有打嗝,流式 gcode 就像一个魅力。
现在我必须概括我的关键帧实现以适应不同的传输方式(串行、telnet、蓝牙)和不同的设备(grbl、Lamps 等)。

我想我会稍微改变一下我的计划,并在板载树莓派上保留 gcode 的生成,因为无论如何我以后都需要它用于相机流。我知道这有点花哨,但“花哨”是把我带到这里的原因……
在搅拌机方面,我将与我的软件中的相同界面进行交互,例如我的遥控器或 web gui。
这意味着更少的接口并保持一致。

关于实时预览,我可能只会在我的电脑屏幕旁边安装一个 HDMI 显示器。

为了让我的机器回家并因此将其同步到搅拌机中的相机,我需要连续旋转我机器上的轴(它必须在一个方向上找到一个止挡,最坏的情况是,至少旋转一整圈才能找到它。我我使用滑环连接器通过旋转轴传输所有信号,因此不会扭曲电线。HDM 有多达 19 个连接器和 USB 只有 4 个,所以我认为这对我来说可能是更简单的选择。我目前使用的另一种选择是我相机的内置 wifi。我附带了一个应用程序,可让您控制相机并流式传输预览位,它非常慢且延迟很高。无线 hdmi 发射器也可能是一种选择,但它们非常昂贵。我我期待看到你会想出什么:)

到目前为止,我有一个搅拌机脚本,可以将动画相机的位置和旋转输出到 gcode 文件。
我还没有在真机上测试过它,但我认为它应该可以工作。如果你愿意,我可以与你分享。

是的,请!我是搅拌机和 python 的菜鸟,很想看看你是如何让它工作的。

我倾向于告诉自己,这也应该是小菜一碟,直到我遇到下一个障碍;)。这通常在细节中。

庆幸我不是一个人XD

@ithinkido
谢谢你的提示!这看起来不错,我会在那里窥探,看看能不能找到我可以使用的东西

grbl esp32 推到 6 轴之外?

您好,抱歉回复晚了。
我已附上脚本。
我也是python和blender的菜鸟,所以我实际上向fiverr上的一个人寻求帮助。他编写了读取每帧位置和旋转值的基本功能。我添加了 gcode 和反时限模式 F 命令所需的格式。

要使用该脚本,只需将其加载到 Blender 的脚本区域即可。
您将在脚本中看到输出路径和文件名。在第一次运行脚本之前创建该文件。
否则,如果搅拌机无法创建文件,它可能会失败。
如果您使用 parenting 和/或约束来为您的相机设置动画,您需要在运行脚本之前烘焙动画并将烘焙的相机重命名为“Camera”,以便脚本使用正确的。
否则将不考虑由父母和约束引起的运动,结果值将是错误的。
要烘焙,请单击对象>动画>烘焙动作
grbl esp32 推到 6 轴之外?

并选择视觉键控、明确的约束和明确的父母:
grbl esp32 推到 6 轴之外?

关于实时预览:SDI 仅使用两条线。如果您的相机没有 SDI 输出,您可以使用 HDMI 到 SDI 转换器。我不确定它是否可以通过滑环工作,因为它通常使用同轴电缆。转换器也需要花钱。
这样做的好处是,如果您将来想使用不同的相机,您不会被特定的 USB 协议所束缚。
我猜你可能有一个索尼阿尔法相机。我知道无线预览虽然该应用程序非常没用而且很烂。:(

您使用的是哪种滑环?我也需要连续旋转。
我正在努力寻找能够很好地组合在一起的部分。
我可以在 Fusion 中设计东西并进行 3D 打印,但我会尝试使用尽可能多的现成组件。

导出 Gcode 0.2.py.zip

grbl esp32 推到 6 轴之外?

好吧,我也很抱歉这么晚才回复^^

您的脚本看起来很有前途,但我还没有机会尝试它。我想我可以使用生成部分并将其重新路由到 mqtt 而不是文件。谢谢!

SDI是一个非常好的解决方案,我没有想到这一点^^。我有佳能 EOS 80D,从上周开始,我有 EOS R6。两者都有 HDMI 和 USB,但没有 SDI。无线应用程序在 R6 上运行得更好(也许是更多的 CPU 马力?),但远非最佳。太好了,我不是唯一一个遭受糟糕应用程序困扰的人,哈哈 :)

我使用的滑环是 12 通道的 Senring 环,比如这个
Adafruit 也出售这些(以肾脏的价格),但如果您可以等待,请从您选择的中国卖家那里购买^^
他们也通过更多渠道制作这些,尽管它们更难找到。

我可以在 Fusion 中设计东西并进行 3D 打印,但我会尝试使用尽可能多的现成组件。

同样在这里^^ 我的武器库中的最新成员是用于加强 3D 打印的家具角支架 XD

我对你的 moco rig 构建非常感兴趣。你可能有图片或视频吗?

grbl esp32 推到 6 轴之外?

我想我可以使用生成部分并将其重新路由到 mqtt 而不是文件。

这听起来也很有希望!

我刚刚看到这些无线 HDMI 发射器宣布,它们更实惠,所以也许这是一个不错的选择:
https ://www.cined.com/z-cam-ipman-s-affordable-hdmi-streaming-device-announced/

我订购了您发布的一个滑环,并开始围绕它设计一个旋转接头。
有了滑环,我发现很难找到适合它的标准部件,所以现在一切都是 3D 打印的 ;)。

我对你的 moco rig 构建非常感兴趣。你可能有图片或视频吗?

我还没有组装,所以我没有任何照片。
但想法是用 openbuilds 铝挤压型材建造它,可能是 C 型梁,带有笛卡尔零件和连接到 y 轴末端的旋转头。优点是您可以轻松构建线性导轨并轻松在其上安装东西。
计划是建造它,以便每个轴仅由一个支撑自身的挤压件组成。
这是一个粗略的模型(不带旋转头): x 轴必须安装在地板上,并且可能通过双导轨使其更宽以支撑悬垂的重量。 我计划在 Z 轴上添加一个配重,这样电机就不必承受 y 轴的重量。
grbl esp32 推到 6 轴之外?

你有你建造的照片吗?

grbl esp32 推到 6 轴之外?
喜欢 (0)

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