极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 30141|回复: 9

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

[复制链接]
发表于 2015-5-7 20:55:23 | 显示全部楼层 |阅读模式
[size=10.5000pt]如图0所示,由于手边有太多的“坏”舵机,弃之实在可惜、便按照《Arduino机器人权威指南》一书中的改舵机方法进行了改装;的确可行,这里拿出来与大家共享。
[size=10.5000pt] [size=14.44444465637207px]
[size=10.5000pt]     图0  “坏”舵机
[size=10.5000pt]
[size=10.5000pt]书上曰:伺服舵机使用在大约 180° 的范围内动作。这意味着,如果不进行改装,它们将无法完整地旋转一圈。通过改装这些舵机,你就不能像它们原来的样子使用了,因为该过程时不可逆。(小小建议:若您改装滴是新舵机的话,陛下,三思啊!当然,[size=10.5000pt]土豪随意。)
书上有说了:可以使用两种方法来改装伺服舵机。这两种方法都涉及手工拆除金属 [size=10.5000pt]/塑料“停止位”,使得伺服舵机轴旋转超过 180°。这里是因为将轴连接到了一个电位器上,如果旋转超过 180°,电位器的轴将折断。这两种方法还包括操作时移除电位器,或者完全拆除电位器并在其位置上焊接两个电阻,或将电位器推开,这样的话,伺服舵机输出轴旋转时它就不会移动了。

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

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

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

[size=10.5000pt] [size=14.44444465637207px]
[size=10.5000pt]图1  使用小的 十字头螺丝刀 拆下伺服舵机后面的螺丝和盖子

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

[size=10.5000pt] [size=14.44444465637207px]
[size=10.5000pt]图3  脱焊 PCB 上的电机,然后切断 PCB 上的红线、黄线(白线)和棕色线(黑色线)

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

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

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

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

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

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

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

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

int  motorPin1 = 2;    //298N IN1 连接至 Arduino 的 引脚 2
int  motorPin2 = 3;    //298N IN2 连接至 Arduino 的 引脚 3

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

void  loop()
{
   //电机正传
   digitalWrite(motorPin1, HIGH);
   digitalWrite(motorPin2, LOW);   
   delay(1000);                    //等待 1 秒钟
   
   //电机反转
   digitalWrite(motorPin1, LOW);
   digitalWrite(motorPin2, HIGH);
   delay(1000);                    //等待 1 秒钟
}
视频:
[size=14.44444465637207px]
二、方法2:带有内部电机驱动电路的伺服脉冲驱动

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2015-5-8 05:07:24 | 显示全部楼层
哇!楼主好有钱,连只是坏了的舵机都这么多,很土豪呀!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-8 12:41:29 | 显示全部楼层
zhangchengwust 发表于 2015-5-8 05:07
哇!楼主好有钱,连只是坏了的舵机都这么多,很土豪呀!

在“土豪”眼里东西坏了是要换的。。。还用的着“修”和“改”。
什么土豪,我就一 土鳖。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-8 12:51:42 | 显示全部楼层
帖子莫名的乱。。。补发”word"板。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2015-6-7 03:31:14 | 显示全部楼层
好腻害!学习了!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-9 10:21:36 | 显示全部楼层
血阳 发表于 2015-6-7 03:31
好腻害!学习了!

谢谢支持
回复 支持 反对

使用道具 举报

发表于 2016-2-24 14:58:31 | 显示全部楼层
改成这样做什么用呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-2-29 20:42:20 | 显示全部楼层
18004316110 发表于 2016-2-24 14:58
改成这样做什么用呢?

可以当做自带驱动板的直流电机使用。。。
回复 支持 反对

使用道具 举报

发表于 2016-3-1 10:24:19 | 显示全部楼层
技术活啊         
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-1 21:15:14 | 显示全部楼层
物是人非0125 发表于 2016-3-1 10:24
技术活啊

敲代码才是技术活,这最多...也就是个体力活。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 15:40 , Processed in 0.058515 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表