舵机使用基础(SG90模拟舵机和MG90S数字舵机为例)(附驱动程序)
工作环境(蓝色粗体字为特别注意内容)
1、系统环境:SG90模拟舵机、MG90S数字舵机、12C5A60S2单片机
2、参考文献:
很多不是航模或者机器人爱好者的同学可能舵机了解比较少,笔者也一样,只是单纯的单片机爱好者,只是有时候需要用舵机来控制一些机械机构,因此对舵机不是很了解。对新手来说可能会有以下疑问
1、舵机是什么?有什么作用?
2、数字舵机和模拟舵机的区别是什么?模拟舵机和数字舵机接口是否通用?
3、舵机的工作原理是怎么样的?
4、舵机控制方式是怎么样的?
5、舵机工作的时候电流是多大?
6、舵机是否需要驱动电路?
那么今天咱就来彻底的了解一下舵机的来龙去脉。有图有真相,咱们先来看看舵机长什么样。
笔者为了弄清楚以上两个问题,特地从某宝买了以上两种舵机,都比较便宜,也非常好找,分别是SG90模拟舵机(蓝色塑料齿轮)<10元,MG90S(灰色金属齿轮)<20元。可以发现,金属齿轮比塑料齿轮要贵,数字舵机比模拟舵机要贵。那么下面咱们来一一解答上面的问题。
1、舵机是什么?有什么用?
舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。目前,在高档遥控玩具,如飞机、潜艇模型,遥控机器人中已经得到了普遍应用。
主要用于需要输出某一控制角度的场合,舵机可以根据控制信号来输出指定的角度,常见的有0-90°、0-180°、0-360°,这几种舵机除了能够输出最大角度不同之外,价格和性能参数没有任何区别(同一型号而言)。
2、数字舵机和模拟舵机的区别是什么?模拟舵机和数字舵机接口是否通用?
数字舵机(Digital Servo)和模拟舵机(Analog Servo)在基本的机械结构方面是完全一样的,主要由马达、减速齿轮、控制电路等组成,而数字舵机和模拟舵机的最大区别则体现在控制电路上,数字舵机的控制电路比模拟舵机的多了微处理器和晶振。不要小看这一点改变,它对提高舵机的性能有着决定性的影响。
①处理接收机的输入信号的方式;
②控制舵机马达初始电流的方式,减少无反应区(对小量信号无反应的控制区域),增加分辨率以及产生更大的固定力量。
③实际应用不同,数字舵机在位置准确度方面要高于模拟舵机。在同样标称1.6公斤的舵机面前数字舵机在实际表现中会感觉更加“力气大”而模拟舵机就会“肉”点。模拟舵机由于控制芯片是模拟电路,所以即便是相同型号的舵机会存在小小的性能差异,而数字舵机在一致性方面就非常好。
3、舵机的工作原理是怎么样的?
舵机主要是由外壳、电路板、驱动马达、减速器与位置检测元件所构成。其工作原理是由接收机发出讯号给舵机,经由电路板上的 IC驱动无核心马达开始转动,透过减速齿轮将动力传至摆臂,同时由位置检测器送回讯号,判断是否已经到达定位。位置检测器其实就是可变电阻,当舵机转动时电阻值也会随之改变,藉由检测电阻值便可知转动的角度。一般的伺服马达是将细铜线缠绕在三极转子上,当电流流经线圈时便会产生磁场,与转子外围的磁铁产生排斥作用,进而产生转动的作用力。依据物理学原理,物体的转动惯量与质量成正比,因此要转动质量愈大的物体,所需的作用力也愈大。舵机为求转速快、耗电小,于是将细铜线缠绕成极薄的中空圆柱体,形成一个重量极轻的无极中空转子,并将磁铁置於圆柱体内,这就是空心杯马达。
下面咱们针对具体型号,比如SG90模拟舵机和MG90S数字舵机,来看看这两者之间的区别。
首先,引脚都是兼容的三根线排列一致,分别是GND(棕色)、VCC(红色)、PWM(黄色),控制方式也是一样的PWM时序,具体对应角度如下:
这里要注意,PWM波的频率不能太高,大约50HZ,即周期0.02s,20ms左右,(为了方便大家使用,笔者已经将驱动程序整理好,供大家点击下载舵机驱动程序)所以如果要用12C5A60S2的PCA产生PWM波的话输出频率最低只能达到10khz左右,还是太高,无法驱动舵机,因此需要使用定时器来实现。实际波形像下面这样:
为了更加形象地了解pwm波形和输出角度的对应关系,我们来看一张动图,非常形象:
因为要考虑能耗问题,所以关于SG90模拟舵机和MG90S数字舵机工作电流可以分为几种状态。
① 舵机上电,无pwm控制信号
此时舵机不工作,静态电流均为4mA左右,舵机不会自动复位,完全不动作。
② 舵机上电,有pwm控制信号,舵机工作在输出到指定角度的过程中
此时舵机工作,需要消耗大约300mA的工作电流。
③舵机上电,有pwm控制信号,舵机已工作至指定角度
此时,舵机主要工作是维持指定角度,如果无外力抗拒,则消耗电流较小,SG90大约需要5mA,MG90S大约需要8mA左右。当然如果有外力抗拒的话则输出电流增大以抗拒外力。
4、舵机是否需要驱动电路?
一般来讲,舵机不需要特别的驱动电路,因为舵机内部已经有驱动电路了,一般单片机IO口输出的PWM波都可以驱动舵机。下图是12C5A60S2驱动舵机的电路图(p1.2没用到)