开源改变世界

PWM 主轴 #196

推推 grbl 3年前 (2022-10-31) 260次浏览 0个评论
关闭
ewidance 打开了这个问题 on 8 Mar 2013 · 18 条评论
关闭

PWM 主轴用#196

ewidance 打开了这个问题 on 8 Mar 2013 · 18 条评论

注释

PWM 主轴 #196

我看到以前的请求没有得到很好的论证,因此关闭了。

有许多中国 400Hz 主轴(从 800W 到 2.5KW),可配备 VFD 转换器。这些转换器可以接受设置速度和开/关:

  • RS485,带有特殊命令(应该可以在引脚 12/13 上使用软串行
  • 引脚 12(主轴)上的 10 Hz PWM。困难但并非不可能…
  • 模拟输出 0> 10V。可以用 10Hz PWM 生成(使用滤波硬件)

所有的东西都在转换器内完成,所以不需要“闭环”……只有 PWM。

还应该实现对 M3 Fxxxx (xxx=speed..) 的 Gcode 支持。但是有足够的地方吗…

PWM 主轴 #196

额外的想法:由于速度不必改变太快,I2C DAC 应该足以驱动 VFD 上的 0-10V 输入。

所有形式的 PWM 都需要一个额外的计时器,IIRC,我们没有留下。

另外,我确定您指的是“S”而不是“F”(F 是进给,S 是速度);-)

PWM 主轴 #196
成员

尚尼特 评论 on 8 Mar 2013

我不确定你所说的充分论证是什么意思。如果您在谈论雕刻机和主轴同步线程,他的问题是将每个主轴脉冲与一定的步数同步。这很困难,但是像您所说的那样可以为您的特定机器做一些事情。

需要做的就是设置 Arduino (Timer1) 中的最后一个可用时间作为主轴控制.c 中的 CTC 倒数计时器。每当启用主轴时,计时器就会开始计时,以所需的速率倒计时。每次触发时,它都会翻转所需的主轴速率销(主轴方向可以正常工作)。你基本上有PWM。唯一的问题是这不应该有高 PWM 频率。这可能会导致步进算法出现故障,正如 Simen 曾在尝试增加 PWM 主轴速度时提到的那样,但在您的 10Hz 下应该没问题。

PWM 主轴 #196
贡献者

tmpvar 评论 on 9 Mar 2013

这是我如何为 ppm 做的一个例子:https ://github.com/tmpvar/grbl/blob/ppm-spindle/spindle_control.c

PWM 主轴 #196
成员

尚尼特 评论 on 9 Mar 2013

很酷@tmpvar. 当我有时间时,我必须将它添加到 Grbl 中,可能作为编译时选项。看起来非常有效。

PWM 主轴 #196
贡献者

tmpvar 评论 2013 年 3 月 9 日

@chamnit谢谢你!

我认为将常量移出#defines 会很有用,因为每个 ESC/电机组合的行为似乎都会发生变化。在说代码“好”之前,我在邮件中还有几个 ESC 要测试。这是它在当前形式下在某种程度上起作用的证据:http ://www.youtube.com/watch?v=9G4d3_g5bys

PWM 主轴 #196

如果 timer1 可用并且主轴启用可以移动到输出比较引脚之一,(我相信是 PB1/PB2)
它几乎没有开销,只需设置 pwm,它就会运行

PWM 主轴 #196

我想尝试硬件 PWM 没有问题。我不知道 Simen 在尝试安装 PWM 以进行主轴速度控制时遇到的确切问题。我很好奇这是否有效。我们将不得不按照您所说的交换一些接线,以适应您所说的引脚 9 和 10。我们可能需要保持旧引脚的向后兼容性,并将其作为编译时选项执行,如果它有效.

PWM 主轴 #196

很抱歉这个愚蠢的问题,但是您的工作是否有一个分支或其他一些使用 PWM 作为主轴的开发?

除了适用于 XYZ 轴的步进器之外,我们的工具头是一个便宜的小型 RC 伺服电机(沿轴移动螺栓),我希望重用一些比我自己的更熟练的代码:)

PWM 主轴 #196

@maldex: 不知道你在和谁说话,但我会看看@tmpvar的 Grbl 的叉子。特别是他的主轴控制代码。使用 Timer1 安装用于主轴控制的硬件 PWM 在待办事项列表中。当我有时间时,我会将它安装到主仓库中,但鉴于在可预见的未来我的时间为零,我不会等我。

PWM 主轴 #196

感谢您的提示,tmpvar 似乎使用 0.7fork,我不确定他的意图到底是什么,但看起来也像方向销上的脉冲。我们的伺服电机需要 50hz 左右的 1ms – 2ms 脉冲(0 – 180° 运动)。因此,我猜想根据最后一个 M0/M3 命令设置 Timer1 以进行脉冲处理将适合我们的需求。当我刚刚进入 C++ 时,你能提示我在哪里最好地查看当前分支吗?

PWM 主轴 #196
贡献者

tmpvar 评论 2013 年 5 月 10 日

@maldex我的意图是为遥控直升机使用 bldc 作为主轴。我的代码基于 master(0.9 版本)并与一个爱好 esc 一起使用。

PWM 主轴 #196

@tmpvar:听起来很有希望,因为我不仅是 CNC 菜鸟,而且对 github 也是新鲜的,我想我看错地方了……你能快点告诉我在哪里可以找到你的叉子吗?嘿酷,非常感谢

PWM 主轴 #196
贡献者

tmpvar 评论 2013 年 5 月 13 日

@maldex可以在此处找到分支的根:https ://github.com/tmpvar/grbl/tree/ppm-spindle ,但大部分更改是在https://github.com/tmpvar/grbl/blob中完成的/ppm-spindle/spindle_control.c

PWM 主轴 #196
贡献者

Protoneer 评论 2013 年 5 月 18 日

在考虑了一段时间之后……是否值得实施 I2C 来扩展 GRBL 的功能?

我做了一个快速测试,在那里我拿了我的 Arduino IDE 库并将 Wire 库包含在其中。它编译了它,使用的总空间刚刚超过 29K。这只是一个编译和大小测试,但它似乎是可行的。

我最初的想法是有一个 ATTiny84 屏蔽,通过 I2C 引脚(A5-6)连接到主 GRBL 板,然后从 GRBL 接收命令来控制主轴或您想要添加的任何设备。

ATTiny 有几个 PWM 引脚,可以很好地与 HobbyKing.com 这样的 ESC 配合使用(它们在 7-14V 上运行)http://www.hobbyking.com/hobbyking/store/uh_viewitem.asp?idproduct=3731&aff=784150

和这样的主轴电机:http:
//www.hobbyking.com/hobbyking/store/uh_viewitem.asp? idproduct=15190&aff=784150

你们有什么感想?如果有人感兴趣,我可以在这样的盾牌上工作……(我迟早会在我开始下一个项目时这样做)

PWM 主轴 #196
贡献者

Protoneer 评论 2013 年 5 月 18 日

加上 I2C,我认为您最多可以连接 32 个设备.. ;)

大声笑一个 30+ 核心 (MCU) GRBL 系统…?

PWM 主轴 #196

如果您忽略供应商特定的地址预订,我认为最多 127 个。但是 I2c 真的很漂亮,因为有大量的半导体已经实现了 DA 和 AD 以及其他电子转换器。请记住,不带信号放大器的 I2c 仅限于半米电缆,而不是更长。

PWM 主轴 #196

我认为这值得付出努力,尤其是当我们转向 ARM 时。从我的角度来看,唯一关心的是我们是否在 328p 上有足够的空间使其有用。不仅要编译的 i2c 代码,而且与 Grbl 接口的支持代码会占用最多的空间。

我们可能需要开始考虑创建编译时选项的方法,以便为用户想要的特定事物腾出空间。这意味着如果有人不打算使用硬限制或物理引脚分配来启动循环,他们可以注释掉该选项并为 i2c 内容腾出空间。像这样分解事情将是一项艰巨的任务,但当事情继续发展时可能是必要的。我们希望尽可能地模块化代码。

PWM 主轴 #196
贡献者

Protoneer 评论 2013 年 5 月 19 日

是的……模块是要走的路。

使用“接口”也很好。这样我们设置基本方法
签名,如:void SpindleSpeed(int speed)

然后接口的用户编写代码以适应他的主轴硬件
,我们只需使用 grbl 中的方法来运行用户定义的代码。

这还将把一些负载转移到硬件设计人员身上,以
实现他们的硬件代码。
2013 年 5 月 19 日凌晨 3:48,“Sonny Jeon” notifications@github.com写道:

我认为这值得付出努力,尤其是当我们转向
ARM 时。从我的角度来看,唯一关心的是我们是否
在 328p 上有足够的空间使其有用。不仅要
编译的 i2c 代码,而且与 Grbl 接口的支持代码会占用
最多的空间。

我们可能需要开始考虑创建编译时选项的方法,以便
为用户想要的特定事物腾出空间。这意味着如果
有人不打算使用硬限制或物理
引脚分配来启动循环,他们可以注释掉该选项并
为 i2c 内容腾出空间。像这样分解事情将是一项艰巨的
任务,但当事情继续发展时可能是必要的。我们希望尽可能地
模块化代码。


直接回复此邮件或在 GitHub 上查看 https://github.com/ /issues/196 #issuecomment-18103265

PWM 主轴 #196
 
添加标题文本添加粗体文本,<Ctrl+b>添加斜体文本,<Ctrl+i>
添加引号,<Ctrl+Shift+.>添加代码,<Ctrl+e>添加链接,<Ctrl+k>
添加项目符号列表,<Ctrl+Shift+8>添加编号列表,<Ctrl+Shift+7>添加任务列表,<Ctrl+Shift+l>
直接提及用户或团队引用问题、拉取请求或讨论

添加已保存的回复

喜欢 (0)

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