伺服电机让你的机器人更有力量(一)
发表日期:2010-11-01 16:50:52 来源:《无线电》杂志作者:托德库尔特译/夏明新【大中小】浏
览:12918次评论:0条
当你听见电机运动时的那种标志性的“吱、吱、吱”声时,是否会想起机器人或者玩具里的伺服电机?遥控伺服电机是为无线控制的车模、航模而设计的,已经成为制作自动控制系统、电影效果、木偶效果的一种常见材料。
伺服电机不像常见的电机那样转,而是根据收到的命令来旋转,或者停止在0°~180°角的某个角度。
伺服电机是让一个东西动起来的最简单的方法之一,而且可以选的伺服电机种类也很多。
伺服电机还可以经过稍稍的改动就变成高质量的、数字控制的变速电机。
这篇文章里我会解释如何使用伺服电机,也会讲解如何让伺服电机连续转动。
理解伺服电机
无线伺服电机运用了多种技术,包括了直流电机、传动机构、传感器以及控制电路。
这是一种伺服系统,利用了反馈控制环来调节系统功能。
伺服系统典型的例子是温控加热系统,里面的温度传感器提供反馈,而加热元件提供输出,根据温度传感器得到的信息选择启动或关闭加热元件。
对于无线伺服电机来说,传感器的输入是一个电位器,用于度量电机的旋转位置。
控制电路读到电位器的阻值,然后根据目标位置调节电机的转向与转速。
图A是一个标准的伺服电机的展开图以及闭环反馈控制环路。
选择伺服电机
伺服电机的形状及大小各异(见图B),常见的是标准伺服电机(1)。
最小的伺服电机是微电机(2,3),最大的是高扭矩的(4)。
所有的这些伺服电机都有同样的三线控制,因此根据需要更换小型或大型的伺服电机还是很方便的。
除了大小和重量之外,伺服电机还有两项重要的指标——扭矩和转速,这些由伺服电机中的电机和传动机构来决定。
扭矩就是伺服电机的力,标准的伺服电机工作在5V的时候扭矩为
5.5kgf.cm。
标准的速度是工作在5V的时候,需要0.2s/60。
总体来说,大个的伺服电机速度比较慢,但是扭矩大。
你在明确自己需要什么之后,就可以选择伺服电机的个头、等级了(标准型/微型/高扭矩型),然后在可选的里面挑个最便宜的。
这些项目里我用的是微型的HexTronik HXT500伺服电机,扭矩为0.8 kgf.cm,转速为0.1s/60。
伺服电机的安装与连接
如果要想让伺服电机带着东西转动,你需要两样装备。
一个是伺服电机座的安装架,另一个是连接到移动的部件旋转轴的连接装置。
伺服电机本身座上自带安装孔,可以用螺丝连接。
如果仅仅是用来做实验的话,用热熔胶或者双面胶固定伺服电机也没有问题。
伺服电机上还有些被称为摆臂的装置来连接转动轴。
这些摆臂能连到轴上,臂上还有安装孔,在安装孔上连接一个直杆或者连线,就能将伺服电机的旋转运动转化为直线运动了。
不同的摆臂和安装孔导致的运动幅度也不一样。
自己做摆臂很简单,你可以用矢量图软件做一个星星的形状,直径和安装孔的数目和电机驱动轴对应上就可以了。
这个星形就是轴连接器,其他自定义的连接装置也能在轴附近加上去(见图C)。
伺服电机让你的机器人更有力量(二)
发表日期:2010-11-01 16:50:52 来源:《无线电》杂志作者:托德库尔特译/夏明新【大中小】浏
览:12919次评论:0条
如何控制伺服电机
伺服电机是三线接口的,如图D所示。
黑线(或者是棕线)连接“地”,红线连接+5V,黄线(或者是白线或桔黄线)连接到控制信号。
控制信号(如图E所示)是一种脉宽调制(PWM)
信号,任何微控制器都能产生。
本文中我用的是Arduino微控制器。
脉冲的高电平部分持续时间在1~2ms,也就是1000~2000µs。
1000µs的时候,伺服电机会逆时针转到底,2000µs的时候会顺时针转到底。
还有一些伺服电机能接受的脉冲宽度更短或更长,因此能转动更大的范围。
控制脉冲的低电平持续时间为20ms。
伺服电机每20ms(每秒50次)必须接收到高电平信号,否则电机将断电,并且不能维持原来的位置。
这个功能在你的项目做休眠功能的时候很有用。
我们将电机的红线和黑线连到Arduino的+5V电源和接地的引脚上。
控制信号线连到数字输入输出脚第9号引脚。
这个Arduino程序的主要问题是大部分的时间都在延迟命令上。
幸运的是Arduino自带的伺服电机库中,可以用自带的定时器控制两个伺服电机(9号引脚和10号引脚)。
使用伺服电机,摄像头的全景控制
这里有一个小项目,里面用两个伺服电机和一块Arduino控制板:控制摄像头的全方向运动。
用热熔胶将一个摆臂粘到摄像头底部,同样将另一摆臂粘到伺服电机的侧边。
另一个伺服电机粘到一个底座上。
接下来将所有的摆臂都装到伺服电机上,全景控制摄像头就完成了。
图G是一个样例,这是一个拿华硕无线路由器做的网络全景摄像头,里面运行着OpenWrt Linux。
摄像头和控制伺服电机的Arduino控制板,都通过USB连到USB集线器再连到路由器的USB口上。
注意在写程序时需要等待串口接收两个字节的数据,即第一个字节是平移伺服电机控制用的0~180的数值,而第二个字节是倾斜伺服电机控制用的0~180数值。
伺服电机让你的机器人更有力量(三)
发表日期:2010-11-01 16:50:52 来源:《无线电》杂志作者:托德库尔特译/夏明新【大中小】浏
览:12921次评论:0条
将伺服电机改成连续转动
任何伺服电机都可以改成双向变速电机。
通常来说控制电机的速度和方向是需要一个电机驱动芯片以及其他一些元件的,而伺服电机上这些元件已经都具备了。
改装伺服电机是最常见且最廉价的,获取机器人里用的数字控制变速器的方法,这样就得到一个连续转动的伺服电机。
这个改动,部分是机械的,部分是电气的。
电气的改动部分是将电位器改成两个同阻值的固定电阻,机械的改动部分是将阻止电机全方位转动的限位装置去掉。
注意:如果不想拆开伺服电机的话,Parallax(就是出BASIC Stamp的那家)有可用的标准型连续转动伺服电机。
首先拆开伺服电机。
HTX500伺服电机壳由三块塑料卡接而成,我们可以用小的一字螺丝刀或者类似的薄片将其撬开。
从顶上将齿轮拉开,然后从底下小心地将伺服电机的控制电路板拉出来(见图I)。
里面的机械限位有两个,用尖嘴钳弯折可以将转动轴旁边的金属限位去除,用斜向切割器可以将顶壳上的塑料限位去除(见图J)。
用两个加起来5kΩ左右的固定电阻来替代5kΩ的电位器,两个2.2kΩ的电阻就行。
将电位器上的三根线解焊下来,再将两个电阻如图K 所示焊上去。
用绝缘胶带或是热缩管将这个新组件包好(见图L),然后将这些电路都塞回到伺服电机壳子里,再把壳子装好。
改装完成了,现在可以校准一下这个连续转动伺服电机,看看起点在哪里。
如果两个电阻阻值精确相等的话,送到伺服电机是90°角的时候电机能停下来。
你的电机可能会有一点偏差,可以试试用先前的程序做实验看看哪个角度能将电机停住。
记住这个值,因为每个伺服电机都不一样。
5分钟完成的画图机器人项目
用两个连续转动伺服电机我们就能完成一个画图机器人。
采用两个伺服电机、一个9V电池、一个小面包板、一块Adafruit Boarduino控制板(Arduino 板的克隆版)、一个Sharpie记号笔还有几个塑料转盘。
这个电路和全景摄像头的一样,而且所有的部件也是用热熔胶粘在一起的。
任何直径在2~7cm的转盘都可以做轮子,比如说塑料的螺丝顶盖。
想加强引力还可以用胶带将轮子边缘包起来。
伺服电机的设定和前面一样,代码里要用上刚才实验得到的电机起点位置的变量(你的电机起点位置可能不一样)。
代码的逻辑让一个电机朝某个方向移动一段时间,然后换到另一个电机。
现在大功告成,你可以去试试你的机器人了。
注:本文所涉及的程序可在杂志网站()下载。
注意:Sharpie记号笔回头是擦不掉的,因此记得在硬纸片或者是打印纸上运行这个画图机器人,你可以用水溶记号笔来替代Shapie记号笔。
套件销售
从本期杂志开始,我们将陆续向读者介绍Arduino的相关制作套件及使用方法。
本刊首批推出的套件有Arduino入门基础套件、3PA机器车套件、机械臂套件,非常适合个人DIY及学校实验教学使用,感兴趣的读者可以到本刊网站的新版网页中了解上述套件的功能、配置详情及销售信息。
读者在我刊网站上了解价格后,也可以直接通过以下方式购买套件:
1.邮局汇款:北京市崇文区夕照寺街14号A座《无线电》杂志社收,邮编:100061, 请注明购买的套件名称及汇款人电话
2.淘宝店购买:/。