注释
RC ESC(电子速度控制)就像一个爱好伺服器一样运行。它是一个 50Hz 的 PWM,脉冲长度从 1ms 到 2ms。 由于主轴已经在 PWM 通道上,我们只需调整 cpu_map.h 中的一些设置即可使其工作。 这是一个有效的示例 cpu_map。只有一个问题。(见帖子末尾)
唯一的问题是当我认为您需要 1ms 脉冲时,spindle_stop() 的硬编码为 0。我不得不将其更改为 SPINDLE_PWM_OFF_VALUE。(见下文)。
|
它可以工作,但主轴在应该关闭时以低速运行(M3 S0)。我认为这个ESC的范围比普通的更广。我尝试将 ESC_MIN_PULSE_SEC 降低到 0.0007,然后再降低到 0.0002,但都没有奏效。M3 S1000 在主轴上大约是全速。我尝试将spindle_set_enable 设置回零库存,但这也不起作用,因为esc 无法启动。还有其他降低脉冲长度的建议吗? |
在 RC 伺服系统上,PWM 不是 50Hz。它是 25 Hz,因为信号是 40 ms 周期内的 1 到 2 ms 脉冲。40 毫秒是 25 赫兹。不知道这是否与问题有关,但我知道更快的 PWM 速率会导致伺服器嗡嗡作响。不知道ESC是否相同。 |
一般来说,模拟舵机的规格是 20ms 或 50Hz。你是对的,它可以变化很大。一些数字伺服器喜欢它的速度要快得多。 你有你正在使用的 ESC 的链接吗?在慢速下,在那些较低的脉冲长度下速度是否相同? |
我发现了一个错误。我在代码中使用了来自其他伺服功能的定义值,但忘记重命名它们。这意味着如果您更改了默认脉冲长度,代码实际上并没有改变。 将“SERVO”更改为“ESC”,使这些行在 cpu_map 中看起来像这样。
这里有一些逻辑图来显示它现在有效。 离开 500转 (50%) 1000 转 (100%) 此处以 0.0005 秒的最小脉冲关闭 |
它没有像我预期的那样工作。我将不得不把逻辑分析仪放在上面,看看我得到了什么。我注意到当我在 x 轴上工作时信号似乎发生了变化。ESC 进入蜂鸣模式,就像信号丢失一样。我想知道您是否可以在移动轴后通过再次测量来重现。 |
`
` 这就是我所拥有的,现在我无法改变它总是看起来像上面的屏幕截图的速度。(尝试 M3 S100、M3 S500、M3 S1000 等……信号保持如上 如果我移动一个轴,我会丢失 pwm 信号,它看起来像下面(例如:jog x 轴超过 1mm)
|
我发现了两个问题。
围绕主轴速度调整检查激光模式(stepper.cpp 中的第 258 行)
这可能与 0 速度不在 0 值班有关。 感谢您对这个问题的耐心等待。你能告诉我你正在使用的ESC和电机吗?我想找一个帮我测试。(也许建造一台PCB机器) |
通过上面的更改,它现在可以完美运行。ESC 是我手头上的一个,大约 8 年前我从 Hobbyking 买的(见图)。我已经用四轴飞行器的定制固件刷新了它。它需要一个介于 700us 和 ~1800us 之间的脉冲长度。您上面的代码运行良好,现在激光模式检查已经到位,没有问题。电机是我手头上的另一种用于四轴飞行器的电机。它也很旧。当我平衡它们时,我把它们的标签都去掉了。PCBEater 电机的规格为 KV 等级,介于 900 至 1200KV 之间,直径为 28 毫米或更小,高约 28 毫米。电机应该有一个约 3 毫米的轴,从最靠近电线的一侧突出(见图)。我正在寻找电机的来源,一旦找到就会发布。 再次感谢您如此迅速地做出更改。 |
真棒。 |
沙龙 评论 on 17 May 2019
是否可以添加支持以启用对 RC ESC 驱动主轴的控制?