电子产业一站式赋能平台

PCB联盟网

搜索
查看: 2008|回复: 0
收起左侧

舵机基本原理与使用方法

[复制链接]

657

主题

1025

帖子

5598

积分

四级会员

Rank: 4

积分
5598
发表于 2022-6-16 13:32:28 | 显示全部楼层 |阅读模式
第一:舵机基本简介
1 X1 T( w/ @; b" z, O. q5 D/ x9 Y& i0 T& c
    在电子开发过程中,舵机是比较常用的电子元器件,价格也比较便宜,非常好找。金属齿要比塑料齿要贵些,数字舵机比模拟舵机要贵些。
8 P7 j" g0 `9 O2 Z, H  c0 d+ F- K" ?+ D! g
舵机基本原理与使用方法-1.jpg & o) {( Y1 u. e6 }. _5 G

1 c2 ?6 E  B# r6 O1 |& N, ^9 ?' d- J) \2 N: Y

/ `2 N* F6 l/ \) u# d4 s3 h第二:舵机的作用
) i, ^* }, u0 H7 [, i      在机器人电控系统中,舵机控制效果是性能的重要影响因素。舵机可以在微机电系统中作为基本的输出执行机构,其简单的控制和输出使得单片机系统非常容易与之对接。* J1 r+ k) X% l) l4 A- d( K0 P

! \2 J8 _- b! f& y 舵机基本原理与使用方法-2.jpg
- j. A  [- c& n, h
! }3 g, W1 F& g! ^1 }- ?1 Q0 J    舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。目前,在高档遥控玩具,如飞机、潜艇模型,遥控机器人中已经得到了普遍应用。
( H$ \" O+ m: Y) \5 T( x主要用于需要输出某一控制角度的场合,舵机可以根据控制信号来输出指定的角度,常见的有0-90°、0-180°、0-360°,舵机除了能够输出最大角度不同之外,价格和性能参数没有任何区别(同一型号而言)。  a  f  _; l9 W" P

5 G: ]  c: l# T) G; A" ~3 v0 j6 E8 ~3 z4 J2 p( m
第三:数字舵机和模拟舵机的区别是什么?模拟舵机和数字舵机接口是否通用?
- w2 h$ b. s7 G! c    数字舵机(Digital Servo)和模拟舵机(Analog Servo)在基本的机械结构方面是完全一样的,主要由马达、减速齿轮、控制电路等组成,而数字舵机和模拟舵机的最大区别则体现在控制电路上,数字舵机的控制电路比模拟舵机的多了微处理器和晶振。不要小看这一点改变,它对提高舵机的性能有着决定性的影响。' L% ]( d( G% G
①处理接收机的输入信号的方式。/ I3 j0 z1 ]% e! g  |
②控制舵机马达初始电流的方式,减少无反应区(对小量信号无反应的控制区域),增加分辨率以及产生更大的固定力量。
2 f5 t* S$ i! v, G9 Z7 N- Q& s+ F③实际应用不同,数字舵机在位置准确度方面要高于模拟舵机。在同样标称1.6公斤的舵机面前数字舵机在实际表现中会感觉更加“力气大”而模拟舵机就会“肉”点。模拟舵机由于控制芯片是模拟电路,所以即便是相同型号的舵机会存在小小的性能差异,而数字舵机在一致性方面就非常好。
# @8 V$ n  W; A/ h- ~' \6 r8 P- A1 ~* [  @" D

1 l8 l4 q" q, q( \% b第四:舵机的工作原理
% w% x  c- s% v+ i- V    舵机主要是由外壳、电路板、驱动马达、减速器与位置检测元件所构成。其工作原理是由接收机发出讯号给舵机,经由电路板上的 IC驱动无核心马达开始转动,透过减速齿轮将动力传至摆臂,同时由位置检测器送回讯号,判断是否已经到达定位。位置检测器其实就是可变电阻,当舵机转动时电阻值也会随之改变,此时由检测电阻值便可知转动的角度。一般的伺服马达是将细铜线缠绕在三极转子上,当电流流经线圈时便会产生磁场,与转子外围的磁铁产生排斥作用,进而产生转动的作用力。依据物理学原理,物体的转动惯量与质量成正比,因此要转动质量愈大的物体,所需的作用力也愈大。舵机为求转速快、耗电小,于是将细铜线缠绕成极薄的中空圆柱体,形成一个重量极轻的无极中空转子,并将磁铁置於圆柱体内,这就是空心杯马达。: Q1 @& M. j2 w% t' _4 _" ?
8 s2 n8 }% H8 [3 z4 a9 X
9 y' n4 _* v3 h" n: ~# q4 b
下面咱们针对具体型号,比如SG90模拟舵机和MG90S数字舵机,来看看这两者之间的区别。2 M8 a  f% X! d5 \4 {% s, N* i
首先,引脚都是兼容的三根线排列一致,分别是GND(棕色)、VCC(红色)、PWM(黄色),控制方式也是一样的PWM时序,具体对应角度如下:
( t! M; N+ {4 E4 n
& r3 V# w& j7 \ 舵机基本原理与使用方法-3.jpg 0 k! e- o2 q/ s1 F; F! `$ Q; k( M

' V1 d, ~1 f* }' I' Q. Z' d    这里要注意,PWM波的频率不能太高,大约50HZ,即周期0.02s,20ms左右,(为了方便大家使用,笔者已经将驱动程序整理好,供大家点击下载舵机驱动程序)7 l5 \2 x, ?2 p) N2 P+ A2 ~6 p5 K
2 @) x, z' ?0 J3 k! _* V+ T6 W
* f( K# V# X" G8 e( T
所以如果要用12C5A60S2的PCA产生PWM波的话输出频率最低只能达到10khz左右,还是太高,无法驱动舵机,因此需要使用定时器来实现。实际波形像下面这样:
. I9 k/ W! q" j9 O% {2 y: ~% j0 X- m) b  ^3 k
舵机基本原理与使用方法-4.jpg . P+ V4 c0 u& O

' Z- D' r% r% v( A* Y
$ S6 q8 w$ m, }8 y
. p" j6 K6 S* E# p6 T/ V! M+ G' V# J/ Z1 W
为了更加形象地了解pwm波形和输出角度的对应关系,我们来看一张动图,非常形象:. q( n4 v: W. O7 Q
6 X/ |% T: i% C* x
舵机基本原理与使用方法-5.jpg
2 a1 U; s# k1 ~$ v  A0 O
: M9 P) ?& M9 S' v' L4 N# \. a. ]+ H2 @, h1 Y3 \" m9 w

# ~" U- x- F  v5 t# e3 d& u因为要考虑能耗问题,所以关于SG90模拟舵机和MG90S数字舵机工作电流可以分为几种状态。
2 w# j/ `0 y5 k7 z① 舵机上电,无pwm控制信号( V4 |: U# J9 ~' ?2 F% f- M
此时舵机不工作,静态电流均为4mA左右,舵机不会自动复位,完全不动作。
5 f) C5 W7 E5 G② 舵机上电,有pwm控制信号,舵机工作在输出到指定角度的过程中7 t5 ^& {+ P* I1 B6 Y8 N
此时舵机工作,需要消耗大约300mA的工作电流。: }8 j' S" N/ i% m! K
③舵机上电,有pwm控制信号,舵机已工作至指定角度2 e2 F9 b$ E5 O5 u- Q/ A' b! d
此时,舵机主要工作是维持指定角度,如果无外力抗拒,则消耗电流较小,SG90大约需要5mA,MG90S大约需要8mA左右。当然如果有外力抗拒的话则输出电流增大以抗拒外力。7 t& p4 K, h2 P1 F0 m) J5 E' f7 O  a

) U7 r6 |' d$ B  {, f/ \. \/ Q3 Z1 w0 t8 l
第五:舵机是否需要驱动电路?
( Y0 Z% t1 W* G9 `一般来讲,舵机不需要特别的驱动电路,因为舵机内部已经有驱动电路了,一般单片机IO口输出的PWM波都可以驱动舵机。下图是12C5A60S2驱动舵机的电路图(p1.2没用到)。
) V$ v: D1 b7 x2 ^- [8 @( d( t6 Z
舵机基本原理与使用方法-6.jpg & {4 y' u5 S* C7 v" M2 Z

( W% _3 U* d$ n( A' R( Y; x" Y# Q0 I$ v! y) ]
$ M, C6 S, _+ X$ Z7 w: V
第六:舵机代码实现参考
$ r9 s# C' h- a! c3 `' F& y
- A; m& ?% ~& d- C* p( _/ Y
1 T0 W4 A& H& W$ }
8 p# d; l4 Z# P% X' B2 {& I
+ P- M; k4 k, s5 Q( V# v
3 U7 _* @; k/ i% W% [% m
# D7 u9 r# Q2 E: l& t
- H4 a4 U. u" z7 l, z
. Z( `8 ?4 E% u6 [9 T! @* a3 F# ?4 Z) {. U7 x. W9 X1 Q
8 m2 H3 T; X3 m+ B" w
" f0 ?; b% E* Z0 `+ a# K' w, ~
8 P# _4 p2 T3 ^3 I4 M0 P1 r, B' ~

' G" Y9 q, m. N# C, v- G$ U& z3 a. }8 {( g
6 n& D) j! o( [2 f
pwm_init(PWM1_P11, 50, 0);    while(1)  {   pwm_duty(PWM1_P11, 250);  //0°    delay_ms(1000);    pwm_duty(PWM1_P11, 500); //45°    delay_ms(1000);      pwm_duty(PWM1_P11, 750); //90°    delay_ms(1000);    pwm_duty(PWM1_P11, 1000); //135°    delay_ms(1000);    pwm_duty(PWM1_P11, 1250); //180°    delay_ms(1000);    }  {$ ~8 k' @% @: H4 r
) P; O$ H% N9 D$ R

& U8 v  Q4 L/ v5 n1 f! n0 ^8 v" A- r
总结:舵机是常用的传感器器件,一般需要采用一个20ms的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围内的角度控制,总间隔为2ms。多实践,方能走的更远。
回复

使用道具 举报

发表回复

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

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表