舵机是用来干什么的 舵机的组成及工作原理

工业控制

1210人已加入

描述

舵机(英文Servo)最早出现于航模运动,它是遥控模型用于控制动作的动力源,玩过遥控模型的朋友都知道舵机长什么模样,为了适用于各种模型的需求,舵机发展出各种类型和大小的型号。舵机可以看成是一个封装了电机、控制及反馈系统的动力总成,它使用简单、动力强劲,能按照信号的要求精确的控制电机轴的位移角度,也算是伺服电机的一种,通常也被人们用于制作小型机器人、玩具及用于设备动作的动力源等用途。图2就是一款风靡世界的小型遥控机器人玩具I-SOBOT,它使用了多达十几个的微型舵机用于各关节的动作和动力,使其能模仿人类的各种基本动作。

舵机的分类很多,按模型类型分可以分航模、车模以及船模用的,航模用舵机就要求速度快精度高,而车、船模用的一般要求有扭力大和具有防水性。按减速齿轮分可以分金属齿和塑料齿,使用金属齿扭力大、寿命长、价格高。按控制电路分模拟舵机(标准舵机)Standard Servo 和数字舵机Digital Servo,数字舵机有反应速度更快,无反应区范围小,精度更高等新特性。舵机的规格型号则主要是以转矩和速度来分类,一个标称值为0.0004N·M/0.21的舵机,就是指舵机输出轴带动一米长的摇臂时在最末端能发出0.0004N的力,并且能在0.21秒内完成60°的角位移。

舵机是由外壳、电机、减速齿轮组、传感器、控制电路和接口线缆组成的伺服系统。其结构如图3。舵机的电机有用普通小型直流电机的,也有用无刷电机的,使用无刷电机的舵机有稳定性高、寿命更长、精度更高、扭力更大等特点。图4就是一款使用无刷电机的舵机。图3是舵机齿轮组是塑料的,而图4的型号则是金属齿轮组。舵机的位移传感器是一个电位器,无论模拟舵机还是数字舵机都会用到,其阻值一般为5K。控制电路板主要是由电机驱动电路和信号电路,驱动电路由晶体管或FET场效应管组成的放大电路构成,采用场效应管驱动可以获得更大的驱动能力。模拟舵机的信号处理电路由专用的直流伺服电机控制芯片构成,一般只能接收频率为50HzPWM信号输入,而数字舵机的信号处理电路由微处理器构成,可以接收频率为300HzPWM信号输入,也就是模拟舵机受到输入频率限制要20ms才可以反应一个动作,而数字舵机则能在短几倍的时间内执行动作。图5是模拟舵机和数字舵机PCB,左边的是模拟舵机采用了晶体三极管加直流伺服电机控制芯片构成,右边的是数字舵机采用了场效应管加微处理器构成。

当信号接口收到信号后,控制电路对信号做出计算和反应,驱动电机运转,电机带动舵机输出轴输出力矩,同时也会带动电位器。对于舵机来说这个电位器就是位置传感器,它的当前阻值代表着电机轴所处的位置,电机转动时电位器的阻值也发生了变化,控制电路读取电位器的阻值并与由信号计算出来的值做对比,其阻值不是计算值时电机继续转动,当转到信号要求位置时,控制电路控制电机停止运转,完成一个信号所要求的动作,当电机轴受到外力而偏转里,舵机会通过电位器感知到位置偏移,启动电机进行校正。舵机原理的基本流程图,可以看出它是一种闭环的控制系统。闭环控制是根据控制对象输出反馈来进行校正的控制方式,它是在测量出实际与计划发生偏差时,按定额或标准来进行纠正的。闭环控制,从输出量变化取出控制信号作为比较量反馈给输入端控制输入量。舵机正是利用这个原理,用电机及齿轮组输出,并利用随之产生的电位器阻值变化量作为反馈量,控制电机是继续转动还是停止。

遥控机器人

图6 舵机的闭环控制

知道舵机的工作原理,我们还不能控制舵机,那么我们来看看怎么去实现对舵机的控制。数字舵机为了能用在旧的模型和舵机控制器,一般都会兼容模拟舵机的接口和控制方式,所以这里我们只讨论传统的模拟舵机控制方法。在各种模型中使用舵机时,一般都是直接使用多通道接收机,舵机连到接收机上就可以了,通过遥控器就可以对舵机进行控制了。图7就是一款多通道的车模用的遥控器和接收机,现在也有许多可以多路的舵机程序控制器,一般用于机器人等的制作中,可以通过电脑、手机或其它界面进行控制,也可以把舵机的动作编程重放,有的甚至可以控制多达32路以上的舵机。舵机的接口引脚定义如图8,黑色线为地线,红色线为电源线,电源的标称范围为4.8V到6V,也就是4节1.2V或4节1.5V的电池都能适用,而用于非模型用途时一般是使用5V电压对其供电,黄色线则是控制信号线(也可能是白色),信号格式为PWM。
遥控机器人

图8 舵机接口定义

图9就是标准舵机所要求的PWM信号波形,是一个周期为20ms,高电平脉宽最小1ms,最大2ms,一些特殊的舵机可能有点不一样如parallax公司卖的一款机器人用舵机是0.75ms到2.25ms。因为舵机的设计用途决定它的输出轴是不能连续转动,输出轴所能转动的范围是舵机设计时其结构所限定的,一般最大是180°,一般模型用的最大在120°之内,也有一些专用于机器人的舵机可以到200°或是连续360°转动,下面我们以转动范围180°的舵机为列来说明。把1到2ms的脉宽划分到这180°角度,那么1.5ms脉宽时正好是中点,1ms脉宽时左转到极限位置,2ms脉宽时右转到极限位置°,在这个范围内脉宽的时长对应特定的角度。图10是脉宽和位置的对应示意图。控制信号进入模拟舵机的控制电路,获得直流偏置电压,控制电路内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器产生电压比较,获得电压差输出,电压差的正负输出到电机驱动决定电机的正反转,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。

遥控机器人

图9 舵机PWM信号要求

遥控机器人

图10 脉宽和位移示意图

看完上面的介绍,如果读者朋友是熟悉单片机编程的,是可以很快的编写出舵机的控制程序的。以转动范围为0-180°舵机为例,而信号脉宽是1ms-2ms,计算得知每角度的脉宽约为0.00556ms,只要把1ms加上角度值乘于0.00556ms,就可以得到角度值所需要的脉宽值。下面我们以STC89C51(也可以使用别的型号的51芯片)制作一个简单的控制舵机的小实验,使用12M晶振,使用12T的模式,每时钟周期为12个晶振周期,也就是说每个时钟周期为0.001ms。使用芯片内的定时器最小可以生成0.001ms脉宽,对比上面的数据,我们可以得知这个数值不足以精确输出每角度的脉宽值,我们主要是实验舵机控制方法,需要更高精度的话则需要更高频率的芯片或用STC89C51的6T模式去实现。程序中定时器0先计时高电平,到达后再计时生成20ms减去高电平时间的低电平脉宽,程序主程序不断的使舵机变换5个角度。电路只使用最小系统,电路图看图11,C4是电解电容容量在470uF或以上,因为某些舵机工作时电流会比较大,这个电容可以使电源电压不会在舵机工作时被拉低。笔者用这个程序驱动TowerPro MG995舵机,用标准1-2ms信号可以让其正常工作,但这个舵机动作转角范围只有90°,要想它工作中0-180°度,脉宽要在0.5-2.5ms,因此笔者在压缩包里提供了2份代码,供大家参考。图12是实验的实物。

遥控机器人

图11 实验电路图

看完上面的介绍,你是不是会说舵机既然有强劲有力的减速装置,又可以精确控制,那如果能360°旋转的话,用于机器小车的制作不是很方便吗?确实是可以这样的,只是市场上售卖的舵机一般不能连续旋转,不过我们只要对它进行小小的改动就可以实现,但不是所有型号的舵机都适于改动。修改后的舵机同样是使用原有的驱动方式,只是改变信号脉宽时不是改变角度,而是改变其转向,输入中点1.5ms信号时舵机停转,使用信号周期和脉宽可以实现转向、停止以及调速。改动使用的原理其实就是把位置传感反馈信号从闭环系统中断开,形成开环系统。通常改造需要改造舵机内部的结构,如果不是必要的,最好不要进行,以免造成浪费。MG995是一款小型大扭力的金属齿的模拟舵机,它的结构可以很简单的改装成可连续转动的舵机。只需要以下几个步骤:

1.打开外壳找到齿轮组上的限位销

2.用钳子拔去限位销

3.拆除电位器,用小型精密可调的5K电位器取代原电位器,先把换上的电位器调到中点,也就是2边阻值为2.5K,再往舵机输入1.5ms的信号,让舵机旋转,再细调电位器直到舵机停转。装好外壳,完成改装。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分