电子产业一站式赋能平台

PCB联盟网

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

舵机基本原理与使用方法

[复制链接]

657

主题

1025

帖子

5598

积分

四级会员

Rank: 4

积分
5598
发表于 2022-6-16 13:32:28 | 显示全部楼层 |阅读模式
第一:舵机基本简介
' i' l/ W$ U7 T3 _! a
% [* Q' H, u: c2 G' W; Q    在电子开发过程中,舵机是比较常用的电子元器件,价格也比较便宜,非常好找。金属齿要比塑料齿要贵些,数字舵机比模拟舵机要贵些。
" T: ^+ h5 B4 F  x4 I1 C/ W( z* V6 B5 y$ l1 @: r
舵机基本原理与使用方法-1.jpg
! \% `8 W7 I! C
! z* O7 O' _  |/ q8 J. ]5 k# @4 a* h. ~, _7 w

- J+ F1 u& h2 u+ E. u8 O- V+ I3 x第二:舵机的作用! j& `. y( H: Y: O
      在机器人电控系统中,舵机控制效果是性能的重要影响因素。舵机可以在微机电系统中作为基本的输出执行机构,其简单的控制和输出使得单片机系统非常容易与之对接。
4 n) Z/ a7 e; f+ r5 Q* [
$ D; z* T8 F& {8 r9 A5 D 舵机基本原理与使用方法-2.jpg 7 `5 v/ r3 Q# Q! J  M6 r0 V
% t6 b& f: ~# t: {# V3 C$ A" D
    舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。目前,在高档遥控玩具,如飞机、潜艇模型,遥控机器人中已经得到了普遍应用。& V  P' \+ [* G& t, ]
主要用于需要输出某一控制角度的场合,舵机可以根据控制信号来输出指定的角度,常见的有0-90°、0-180°、0-360°,舵机除了能够输出最大角度不同之外,价格和性能参数没有任何区别(同一型号而言)。0 V# [1 o4 H) E9 G& V  X+ Z% z

$ x& `& ]; R9 x) t8 |+ `6 A* P  L- }: D7 p1 C" M* Y  @
第三:数字舵机和模拟舵机的区别是什么?模拟舵机和数字舵机接口是否通用?0 F% Q' s+ b- b/ n0 V# c9 ?
    数字舵机(Digital Servo)和模拟舵机(Analog Servo)在基本的机械结构方面是完全一样的,主要由马达、减速齿轮、控制电路等组成,而数字舵机和模拟舵机的最大区别则体现在控制电路上,数字舵机的控制电路比模拟舵机的多了微处理器和晶振。不要小看这一点改变,它对提高舵机的性能有着决定性的影响。
) z3 m: N5 |  v3 k①处理接收机的输入信号的方式。
) K. t! K# V2 n* U4 Y. J  I7 k8 h②控制舵机马达初始电流的方式,减少无反应区(对小量信号无反应的控制区域),增加分辨率以及产生更大的固定力量。
* _) p5 z: h) g2 N  c% Q2 p7 \  c③实际应用不同,数字舵机在位置准确度方面要高于模拟舵机。在同样标称1.6公斤的舵机面前数字舵机在实际表现中会感觉更加“力气大”而模拟舵机就会“肉”点。模拟舵机由于控制芯片是模拟电路,所以即便是相同型号的舵机会存在小小的性能差异,而数字舵机在一致性方面就非常好。8 b+ }6 m& M2 @) X" O  j- c4 @

, n% U4 k6 h# k  V8 O7 l: Y0 M5 C
第四:舵机的工作原理
& x2 }* Y  v) ]* k" d# L    舵机主要是由外壳、电路板、驱动马达、减速器与位置检测元件所构成。其工作原理是由接收机发出讯号给舵机,经由电路板上的 IC驱动无核心马达开始转动,透过减速齿轮将动力传至摆臂,同时由位置检测器送回讯号,判断是否已经到达定位。位置检测器其实就是可变电阻,当舵机转动时电阻值也会随之改变,此时由检测电阻值便可知转动的角度。一般的伺服马达是将细铜线缠绕在三极转子上,当电流流经线圈时便会产生磁场,与转子外围的磁铁产生排斥作用,进而产生转动的作用力。依据物理学原理,物体的转动惯量与质量成正比,因此要转动质量愈大的物体,所需的作用力也愈大。舵机为求转速快、耗电小,于是将细铜线缠绕成极薄的中空圆柱体,形成一个重量极轻的无极中空转子,并将磁铁置於圆柱体内,这就是空心杯马达。
3 R' `/ g  }% o" j9 C/ E, x% V% c- `  I) |7 n6 ^
, l; s0 p8 K- W) o2 b
下面咱们针对具体型号,比如SG90模拟舵机和MG90S数字舵机,来看看这两者之间的区别。
! \) W) ~% r/ m首先,引脚都是兼容的三根线排列一致,分别是GND(棕色)、VCC(红色)、PWM(黄色),控制方式也是一样的PWM时序,具体对应角度如下:7 ~! d) M( c' [4 Y4 j  ?% {

- M- Z# R1 Y* J4 U6 u 舵机基本原理与使用方法-3.jpg / R; |: B4 `) L3 X, t# ]$ }) A' L, ~" C
3 w+ v* t2 ~, W* T- B6 U% ?
    这里要注意,PWM波的频率不能太高,大约50HZ,即周期0.02s,20ms左右,(为了方便大家使用,笔者已经将驱动程序整理好,供大家点击下载舵机驱动程序)
$ z) W6 |7 @; z4 a: i* g; f, ?# \; Y0 F7 q. j
& o. \3 H2 d/ E0 U3 c" K( ]; E. n
所以如果要用12C5A60S2的PCA产生PWM波的话输出频率最低只能达到10khz左右,还是太高,无法驱动舵机,因此需要使用定时器来实现。实际波形像下面这样:
% k% H  B& ]; A! M7 c  ^
1 ]  i  }' |9 { 舵机基本原理与使用方法-4.jpg 8 a6 ~; Z, q, M1 G4 ^1 c
0 M/ }) m/ l) c, C$ x4 R0 g+ F
1 k) C( I8 h8 `7 k
( u% X0 e3 V- @

( ?% D  Z6 H7 B. r- x: E+ v为了更加形象地了解pwm波形和输出角度的对应关系,我们来看一张动图,非常形象:2 }. l% X/ U; G0 w3 N
! ?1 P: ?4 V* N) a
舵机基本原理与使用方法-5.jpg $ H2 }8 ?8 u, c. O% f0 y
) ~0 s% W( d" N1 o- s/ H

3 ^1 q) r$ I( f" t; `0 y0 F6 y; M9 i0 G: G9 j! \8 a5 b( m
因为要考虑能耗问题,所以关于SG90模拟舵机和MG90S数字舵机工作电流可以分为几种状态。
$ [( i/ t! u3 p) f+ H+ B① 舵机上电,无pwm控制信号
5 }- B6 n# {" v) k2 z* H/ ?$ ^2 E此时舵机不工作,静态电流均为4mA左右,舵机不会自动复位,完全不动作。
3 ?: T6 g1 t' u1 ?- P- M) q② 舵机上电,有pwm控制信号,舵机工作在输出到指定角度的过程中
1 s" H' T; R$ x/ \/ C- s此时舵机工作,需要消耗大约300mA的工作电流。: h; _7 \4 T: N' G5 t3 p* ^$ ~
③舵机上电,有pwm控制信号,舵机已工作至指定角度
2 \& V! [; d+ b此时,舵机主要工作是维持指定角度,如果无外力抗拒,则消耗电流较小,SG90大约需要5mA,MG90S大约需要8mA左右。当然如果有外力抗拒的话则输出电流增大以抗拒外力。
% z6 V2 d9 }+ ?4 i0 H% y
+ i8 M7 B8 m) s. e* {6 }1 I# S/ [$ |/ B
第五:舵机是否需要驱动电路?
- w; N8 s  K: ^/ r( Y3 C一般来讲,舵机不需要特别的驱动电路,因为舵机内部已经有驱动电路了,一般单片机IO口输出的PWM波都可以驱动舵机。下图是12C5A60S2驱动舵机的电路图(p1.2没用到)。
7 i6 S  |/ a' j, B! a  _% i& {6 Y3 {6 d
舵机基本原理与使用方法-6.jpg
" [5 H% P+ T0 P  w3 d' z: q+ u7 m5 R- w+ J* d. [4 d

, @9 M9 b6 \* U8 t1 N
( V" V" k5 @: W$ S4 a& m# S* C8 g5 K第六:舵机代码实现参考! p3 w& K+ @' {: w% P- D: T
# Y$ P& n! ~  g* d  u! W6 S
% U- E/ u; |/ F2 o( y2 N6 \
, O" O! R7 X- F7 q

2 _  c; K+ w# y  a8 K9 z! y+ z/ M* A3 J

) e, F. z0 V' s, H! D; u/ d
4 x% ~$ f# W8 }  d- C3 ^0 S6 r% r( u" U% F7 m7 o+ {; F) W: k7 k

! k+ {  R# b* e1 ?: U& f
7 x+ T2 t, z  l
, P0 T) I8 \3 j& ^6 ~7 r+ Y: C- J/ w

; a- u" \! v8 G- S5 |- n9 M3 }: z0 U9 b( y) Q) t

; b4 v1 t" d) u7 ~/ ~( c. r) Tpwm_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);    }$ M/ j+ N7 }/ d3 {5 g

. a. T' m) Z5 d9 Y  _7 W
, P5 n3 y. [8 n9 r- r2 ~
$ ?# j* i3 H' V* C总结:舵机是常用的传感器器件,一般需要采用一个20ms的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围内的角度控制,总间隔为2ms。多实践,方能走的更远。
回复

使用道具 举报

发表回复

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

本版积分规则


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