请叫我小萌兽 发表于 2015-5-7 20:55:23

改装成连续旋转的伺服舵机

如图0所示,由于手边有太多的“坏”舵机,弃之实在可惜、便按照《Arduino机器人权威指南》一书中的改舵机方法进行了改装;的确可行,这里拿出来与大家共享。

   图0“坏”舵机

书上曰:伺服舵机使用在大约 180° 的范围内动作。这意味着,如果不进行改装,它们将无法完整地旋转一圈。通过改装这些舵机,你就不能像它们原来的样子使用了,因为该过程时不可逆。(小小建议:若您改装滴是新舵机的话,陛下,三思啊!当然,土豪随意。)
书上有说了:可以使用两种方法来改装伺服舵机。这两种方法都涉及手工拆除金属 /塑料“停止位”,使得伺服舵机轴旋转超过 180°。这里是因为将轴连接到了一个电位器上,如果旋转超过 180°,电位器的轴将折断。这两种方法还包括操作时移除电位器,或者完全拆除电位器并在其位置上焊接两个电阻,或将电位器推开,这样的话,伺服舵机输出轴旋转时它就不会移动了。

一        方法1:带有外部速度控制器的直接电流驱动
第一种方法包括拆除伺服舵机内部所用的电子设备,只保留直流电机和传动装置。将三线引线直接焊接到直流电机接线端(红线和白线焊接到一个接线端,黑线焊接到另一个接线端 / 红线和黄线焊接到一个接线端,棕线连接到另一个接线端)。这种方法简便,易于实现但需要使用一个外部电机驱动器向电机供电。这些电机消耗电流小,所以可以使用 L283D / 298N 型双列电机控制器集成电路也可以达到很好的效果。

如果你想要将伺服舵机改装成标准齿轮电机,则完成该改造过程需要遵循以下 6 个步骤。

1、如图 1 所示,拆下伺服舵机外壳背后面的四个螺丝。这时候你需要一个小的十字头螺丝刀,拆下电机外壳时要小心,因为里面的齿轮很容易脱落。


图1使用小的 十字头螺丝刀 拆下伺服舵机后面的螺丝和盖子

2、如图 2 、图3所示,拆下舵机上的 PCB 和 电位器。这可能需要采取一些技巧,以避免损坏外壳上的任何塑料件,动作轻一些的话,应该不会存在什么问题。

图2拆下电路



图3脱焊 PCB 上的电机,然后切断 PCB 上的红线、黄线(白线)和棕色线(黑色线)

3、如图4、图5所示,拆下塑料 / 金属停止位,该部件位于输出轴下方。你必须拆下突出的塑料 / 金属件,使得输出轴可以旋转 360°。可以使用电烙铁融化突出的塑料件,将其从输出轴上取下来(动作要轻) / 使用虎钳和锤子拔其金属件(简单粗暴好操作)。
对待塑料和金属停止位的方法真是~~两极分化额~~(⊙o⊙)…

图4带有金属“停止位”的舵机


图5使用虎钳和锤子,拆其金属“停止位”,因它从其余齿轮中吐出来,阻止连续旋转

4、脱焊 PCB 上的电机。Futaba S2003 型伺服舵机接线端焊接在 PCB 上,一定要做脱焊处理。如果没有脱焊烙铁(我就木有),可能需要电烙铁完成这项工作,如果你以后想要尝试再次焊接,可以保留该电路板。

5、如图6所示,将伺服电机的导线直接焊接到电机接线端。红线和黄线(白线)焊接到电机旁边带红点的接线端,将棕线(黑线)焊接到另一个接线端。


图6将红线和黄线(白线)焊接到旁边带红点的电机接线端,而棕色线(黑线)焊接至另        一接线端。现在可以重新组装了

6、重新组装和测试。请确保将所用的齿轮都放置在其相应的位置上(如图 6 所示),然后用电机线打个结,这样可以保证导线在电机空间内保持一定松弛(如图 6 所示),使你避免不小心扯掉电机接线端的导线。现在,向两个接线端提供+5V 电压和接地,保证电机输出轴旋转。

ARDUINO 代码:带有外部速度控制器(298N)的直接直流控制

//将伺服舵机信号线 / 红色线连接至 298N 的一路输出引脚的一段(当然,你所控制的那路)
//将黑色线连接至 298N 所控输出的另一端——然后上传代码进行测试

intmotorPin1 = 2;    //将 298N 的 IN1 连接至 Arduino 的 引脚 2
intmotorPin2 = 3;    //将 298N 的 IN2 连接至 Arduino 的 引脚 3

voidsetup()
{
   pinMode(motorPin1, OUTPUT);    //将 Arduino 的 引脚 2 设置为 输出模式
   pinMode(motorPin2, OUTPUT);    //将 Arduino 的 引脚 3 设置为 输出模式
}

voidloop()
{
   //电机正传
   digitalWrite(motorPin1, HIGH);
   digitalWrite(motorPin2, LOW);   
   delay(1000);                  //等待 1 秒钟
   
   //电机反转
   digitalWrite(motorPin1, LOW);
   digitalWrite(motorPin2, HIGH);
   delay(1000);                  //等待 1 秒钟
}
视频:
http://www.tudou.com/programs/view/2VwYKhJJKBY/
二、方法2:带有内部电机驱动电路的伺服脉冲驱动

第二种方法需要拆除塑料 / 金属“停止位”和电位器,并且在其位置上以电阻分压器形式焊接2.5KΩ电阻。这指点伺服电路电机始终处于中心位置。伺服电路根据电位器的数值决定电机的旋转方向,如果伺服电路接收到任何超过 1.5ms 的脉冲,它将会向前移动;如果脉冲低于 1.5ms,则会反向移动。因为它永远不会到达电位器上的目标位置(请记住,我们使用固定电阻取代它),所以它将会不断旋转,直到接收到不同的脉冲为止。

为了改变伺服舵机,将其当做仍旧使用伺服驱动电路的直流齿轮电机来工作,可按照以下 6 个步骤完成该改造过程。

1、拆下伺服舵机外壳背后的四个螺丝。这时候你需要一个十字小螺丝刀。拆开电机外壳时要小心,因为里面的齿轮很容易脱落。

2、拆下电机上的 PCB 和电位器。这可能需要采取一些技巧,以避免损坏外壳上的任何塑料件。

3、拆下塑料 / 金属停止位,该部件位于输出轴下方。你必须拆下突出的塑料 / 金属件,使得输出轴可以旋转 360°。可以使用电烙铁融化突出的塑料件,将其从输出轴上取下来(动作要轻) / 使用虎钳和锤子拔其金属件(简单粗暴好操作),这样做是保证电机轴能够自由旋转。

4、从 PCB 上拆下电位器(如图 7 所示)。你可以切断或者完全脱焊上面的引线。无论哪种方式,你都要在其位置上放置两个 2.5KΩ的电阻,需要将第一个电阻焊接在电位器中间引脚和左侧引脚之间,第二个电阻焊接在中间引脚和右侧引脚之间。这始终会输出一个 2.5V 空挡信号,使伺服舵机在控制方向上不断地运行。


图7可以切断电位器的引脚,或者将他们脱焊处理。然后,从每个外侧引脚到中间引脚焊接两个 2.5KΩ 的电阻,并焊接在一起(明察秋毫的童鞋也许会发现我焊接上的电阻是 “2.2KΩ”滴~~木法啊!!!手边没有 2.5KΩ 的,只好用个“接近滴”代替了)

5、重新将 PCB 放回伺服舵机外壳内。确保齿轮不会强制转动,或者先拆下齿轮,放置好电机 / PCB 之后再放回它们。

6、重新组装和测试。确保你将所有的齿轮都放置在它们相应的位置上。

ARDUINO代码:测试连接到 Arduino 引脚 2 上的伺服舵机

//将伺服舵机信号线连接到 Arduino 引脚 2,红色线连接到 +5V
//棕色线连接到 GND ——然后上传代码测试

#include <Servo.h>    //包含 Arduino 伺服库文件

ServoServo_Motor1;    //创建伺服变量,命名为 "Servo_Motor1"

voidsetup()
{
Servo_Motor1.attach(2);    //将伺服舵机连接至引脚 2
}

voidloop()
{
Servo_Motor1.write(0);       //告诉 Servo_Motor1 反向行驶
delay(1000);                //等待 1 秒钟
Servo_Motor1.write(179);   //告诉 Servo_Motor1 正向行驶
delay(1000);                //等待 1 秒钟
}
视频:
http://www.tudou.com/programs/view/PMsphPYog7s/
使用方法 2 的优点是,因为不用拆除伺服伺服驱动器电路,所以也就不需要电机控制器向电机供电,你可以使用任何 Arduino 数字引脚的简单脉冲进行控制。
不足之处在于,要使伺服舵机保持以正确的方向旋转,你必须每 20ms 从 Arduino 发送一个脉冲。这样就会使编码过程稍微复杂。

zhangchengwust 发表于 2015-5-8 05:07:24

哇!楼主好有钱,连只是坏了的舵机都这么多,很土豪呀!

请叫我小萌兽 发表于 2015-5-8 12:41:29

zhangchengwust 发表于 2015-5-8 05:07 static/image/common/back.gif
哇!楼主好有钱,连只是坏了的舵机都这么多,很土豪呀!

在“土豪”眼里东西坏了是要换的。。。还用的着“修”和“改”。
什么土豪,我就一 土鳖。:'(

请叫我小萌兽 发表于 2015-5-8 12:51:42

帖子莫名的乱。。。补发”word"板。

血阳 发表于 2015-6-7 03:31:14

好腻害!学习了!

请叫我小萌兽 发表于 2015-6-9 10:21:36

血阳 发表于 2015-6-7 03:31 static/image/common/back.gif
好腻害!学习了!

谢谢支持:handshake

18004316110 发表于 2016-2-24 14:58:31

改成这样做什么用呢?

请叫我小萌兽 发表于 2016-2-29 20:42:20

18004316110 发表于 2016-2-24 14:58 static/image/common/back.gif
改成这样做什么用呢?

可以当做自带驱动板的直流电机使用。。。

物是人非0125 发表于 2016-3-1 10:24:19

技术活啊         

请叫我小萌兽 发表于 2016-3-1 21:15:14

物是人非0125 发表于 2016-3-1 10:24 static/image/common/back.gif
技术活啊

敲代码才是技术活,这最多...也就是个体力活。。。
页: [1]
查看完整版本: 改装成连续旋转的伺服舵机