如何修改低成本的业余伺服系统以使其“自由运行”?


15

我有一些业余伺服器(Power HD 1501MGs),我希望能够(通过Arduino)对其进行控制,因此它们可以转到我设定的角度,或者将它们置于“自由运行”模式,无论负载在哪里,负载都会带到哪里。

这甚至有可能吗,还是我最终会剥离齿轮?

我的第一个想法是简单地切断伺服器的电源,但是在那种状态下移动它们所需的力比我想要的还要大。

如果有可能,我是在寻找硬件更改,还是可以在软件中更改?


3
业余爱好伺服器并不是真正适合健壮的机器人,改良的业余爱好伺服器甚至更糟。如果执行此操作,您将不喜欢得到的结果。购买价格适中的减速机直流电动机和小型H桥来驱动它,它将更加坚固耐用,并且您将更加快乐。您可以以非常低的成本从L298电路构建H桥。
乔恩·瓦特

1
我想我的下一个问题是“什么是H桥?” (但我会先尝试Google!)
Khrob

Answers:


13

您要问的是,使用标准RC伺服器将变得不那么容易。

您需要的是可反向驱动的伺服器。IE,您可以通过施加外部扭矩自由旋转。当然可以创建它们,并且它们已在许多机器人上使用,但是大多数RC伺服器都需要相当大的扭矩才能反向驱动它们。我将它们称为半反向驱动。

是什么阻止您后退驾驶?两件事情:

摩擦:首先是齿轮链和电机之间的摩擦。RC伺服总是减速。输出旋转比电动机慢。当然,这意味着当您尝试反向驱动它时,必须非常快速地旋转电动机。电机上的任何摩擦或齿槽效应都会在输出端产生数十倍的时间。

反向驱动

电流:关于电动机的令人惊讶的事情是,如果您将端子短路,它们将变得更难旋转。电动机的旋转会产生与旋转相反的电流。伺服器内部的电子设备即使在断电的情况下也可能允许足够的电流流过,从而明显防止了反向驱动。过去,我注意到一些大型步进电机,即使是无齿轮的,在插入无电设备时也几乎不可能反向驱动。但是当您拔下电源插头时,它们可以自由旋转。

因此,可以改善反向驱动性的一种方法是防止电流流动。这样做的明显方法是将电动机与电子设备完全断开。但这即使使用FET也很难做到,因为FET内部的二极管很可能会允许电流流过。但是,您可以使用继电器,这实际上会断开电动机的连接。您只需要在电动机的一个端子上使用它。

Maxon的ESCON

“适当的”伺服控制器(例如Maxon 的ESCON)实际上包含一个电流控制器,该电流控制器可以通过在电机端子上施加正确的电压来主动防止电流流动。更换具有电流控制功能的伺服器中的电子元件可能确实有帮助。

您应该执行的操作:打开伺服器,拆下电机的锡,然后重新组装。现在反向驱动有多容易?如果很容易,那么可能就可以做您想做的事。如果对于您的应用来说仍然太难了,那么您将不得不选择其他伺服器,或者自己制造。用一个齿轮级制作一个齿轮,以尽可能减小齿轮摩擦,并使用带有电流控制回路的驱动电子设备以确保零电流流动。


SimpleCoder的答案也很好。
赫罗布2012年

7

有趣的问题。

我要研究的第一个选项是按照您的建议切断电源(也许可以通过软件控制MOSFET来切换电源)。

另一种更复杂的方法可能是监视伺服器的电流消耗,以检测伺服器何时处于重负载下。当您想进入“自由运行”模式时,请让您的软件尝试将伺服器连续移动到电流消耗最小的位置。这将不会完全导致“自由运行”的伺服器,因为在软件尝试找到“正确”位置时,伺服器会产生一些抖动,但是它可能会根据您的应用而起作用。

您无需修改​​伺服器即可监控电流消耗。一块来自SparkFun的电路板将位于伺服器及其电源之间(每个伺服器需要其中之一),并将输出与电流相对应的模拟电压(您可以在微控制器ADC引脚上读取)。

在此处输入图片说明

图片来自SparkFun


@Khrob:请看我的编辑
克里斯·

很好-我现在已经订购了一堆!
Khrob 2012年

@Khrob:好的,让我们知道它们的工作原理!(如果不起作用,请不要怪我;))
克里斯·拉普兰特

@Khrob:另外,请注意,根据要测量的电流大小,您可能需要一块更敏感的电路板:sparkfun.com/products/8883
Chris Laplante

1
我会开始便宜,然后努力!
赫罗布2012年

5

通常,这些类型的业余伺服系统不是为了连续旋转而制造的,通常会包括机械止动装置。当心,我在下面概述的是一种绝对无法实现真正​​的闭环运行的可靠方法,而只会使伺服系统仅连续运行。

在大多数情况下,您可以在线快速搜索“ x伺服的连续修改”,但在此我将概述一般过程。

  • 确定伺服器是否有物理停止。如果是这样,则必须打开伺服器并将其卸下(我建议使用Dremel工具)。
  • 然后,您想找到反馈机制的“中心”。
    • 将伺服器连接到Arduino并发送“中心”命令(通常为PWM 127)。
    • 找到反馈机制(通常是电位计),并对其进行修剪,直到伺服机构完全不移动。
    • 要么将电位计粘在适当的位置,要么测量电阻,然后用设定值电阻器替换电位计。
  • 重新组装伺服。

现在,向伺服器发送“中心”命令应使其停止运动,而向其发送正或负命令应使其沿一个方向或另一个方向连续旋转。旋转速度应与发送的命令中心的“距离”成正比。

如果要将伺服器操作恢复到新修改的伺服器,则可以添加某种编码器以重新闭合环路。

另外,您可能想看看Dynamixel系列伺服器,它既可以连续运行又可以进行伺服操作,并包含一些Arduino支持。


我对运动有机械限制,这很好,但是这将是扩展它的更好的方法,以便在倒立摆设置中进一步产生裂纹!我看过Dynamixel的东西,它很酷,但是比我希望花费的更多。
赫罗布2012年

我的印象是,OP希望通过驱动伺服器来开始运动,然后让它在没有动力的情况下“自由旋转”,直到它自然地从惯性停止为止。我不知道任何伺服设计(连续或不连续)都会使这种效果发生。
2012年

@Crake,我同意,我相信我回答了错误的问题,但是由于我已经完成了工作:p,因此我将其保留。IIRC,Dynamixel伺服器应具有“惯性运动”设置。
mjcarroll 2012年

@mjcarroll是的,我认为提及如何修改伺服器以实现连续旋转很有用,因为这是廉价机器人项目的常见任务。我很好奇,如果Dynamixel伺服器使用SimpleCoder答案中描述的电流测量算法,通过调整PWM来不断寻求最小化电流,或者它们是否具有物理离合器以将伺服电机与驱动轴分离。
2012年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.