电子产业一站式赋能平台

PCB联盟网

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

舵机基本原理与使用方法

[复制链接]

657

主题

1025

帖子

5598

积分

四级会员

Rank: 4

积分
5598
发表于 2022-6-16 13:32:28 | 显示全部楼层 |阅读模式
第一:舵机基本简介3 M* e% q2 m9 N2 z

  I8 N9 P5 @4 I1 ]    在电子开发过程中,舵机是比较常用的电子元器件,价格也比较便宜,非常好找。金属齿要比塑料齿要贵些,数字舵机比模拟舵机要贵些。; ~5 n6 T9 I3 l, v: a" E- @( y
' l6 l# O$ r) i, P) ^0 j! F
舵机基本原理与使用方法-1.jpg , Q) I7 ~8 r9 i4 e  t

+ \# z8 P3 P* D0 s& y
' M6 k% j* i; W# W: p5 t4 i( F8 N" r# s: W2 a
第二:舵机的作用% z7 c- {; E# L$ j  ]. z
      在机器人电控系统中,舵机控制效果是性能的重要影响因素。舵机可以在微机电系统中作为基本的输出执行机构,其简单的控制和输出使得单片机系统非常容易与之对接。
/ a; r1 r( O; z) N+ f; Q. k9 @
0 @3 R6 T' l) y 舵机基本原理与使用方法-2.jpg
  M- J4 l0 V7 n& b  \
$ T- t1 V' w6 B3 g' I    舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。目前,在高档遥控玩具,如飞机、潜艇模型,遥控机器人中已经得到了普遍应用。9 n( A& ?4 c, f2 D
主要用于需要输出某一控制角度的场合,舵机可以根据控制信号来输出指定的角度,常见的有0-90°、0-180°、0-360°,舵机除了能够输出最大角度不同之外,价格和性能参数没有任何区别(同一型号而言)。
8 E6 V6 X- V  P* P' C, B; ~1 b0 ]! Q3 S) f0 A+ j0 D) \

% ^( D5 C# ?+ i. F6 m5 R+ d第三:数字舵机和模拟舵机的区别是什么?模拟舵机和数字舵机接口是否通用?
1 y/ q2 q7 P0 V+ u+ X    数字舵机(Digital Servo)和模拟舵机(Analog Servo)在基本的机械结构方面是完全一样的,主要由马达、减速齿轮、控制电路等组成,而数字舵机和模拟舵机的最大区别则体现在控制电路上,数字舵机的控制电路比模拟舵机的多了微处理器和晶振。不要小看这一点改变,它对提高舵机的性能有着决定性的影响。
, w6 H) E5 B: G; }- p9 w$ {5 t①处理接收机的输入信号的方式。. n( K  O  v" [0 J% t, @5 n' H
②控制舵机马达初始电流的方式,减少无反应区(对小量信号无反应的控制区域),增加分辨率以及产生更大的固定力量。
* |3 E* p& m: s% e& ]  z③实际应用不同,数字舵机在位置准确度方面要高于模拟舵机。在同样标称1.6公斤的舵机面前数字舵机在实际表现中会感觉更加“力气大”而模拟舵机就会“肉”点。模拟舵机由于控制芯片是模拟电路,所以即便是相同型号的舵机会存在小小的性能差异,而数字舵机在一致性方面就非常好。
0 F9 j7 e6 F9 U' B% f/ p6 ^3 e
6 D" b4 M7 w) L0 S6 H
1 ^% |- V1 @0 u# u* B第四:舵机的工作原理
! v9 O, f" C* e+ b    舵机主要是由外壳、电路板、驱动马达、减速器与位置检测元件所构成。其工作原理是由接收机发出讯号给舵机,经由电路板上的 IC驱动无核心马达开始转动,透过减速齿轮将动力传至摆臂,同时由位置检测器送回讯号,判断是否已经到达定位。位置检测器其实就是可变电阻,当舵机转动时电阻值也会随之改变,此时由检测电阻值便可知转动的角度。一般的伺服马达是将细铜线缠绕在三极转子上,当电流流经线圈时便会产生磁场,与转子外围的磁铁产生排斥作用,进而产生转动的作用力。依据物理学原理,物体的转动惯量与质量成正比,因此要转动质量愈大的物体,所需的作用力也愈大。舵机为求转速快、耗电小,于是将细铜线缠绕成极薄的中空圆柱体,形成一个重量极轻的无极中空转子,并将磁铁置於圆柱体内,这就是空心杯马达。
$ B! E0 o6 ]3 M6 n+ M% Q
" F- @  _7 V% j$ T5 y
5 c4 v6 {0 [/ y+ U9 q! ?下面咱们针对具体型号,比如SG90模拟舵机和MG90S数字舵机,来看看这两者之间的区别。
* @' f/ c7 w, b% y+ ~1 g" I. b3 a$ T首先,引脚都是兼容的三根线排列一致,分别是GND(棕色)、VCC(红色)、PWM(黄色),控制方式也是一样的PWM时序,具体对应角度如下:
+ I# s1 h9 v2 f8 j: [! Y2 X( }) I  B& k# D9 n" W9 x4 O/ [
舵机基本原理与使用方法-3.jpg ; X4 {& B7 V, W- s) y* @
( y6 |& g6 r3 j0 W- V; w, b
    这里要注意,PWM波的频率不能太高,大约50HZ,即周期0.02s,20ms左右,(为了方便大家使用,笔者已经将驱动程序整理好,供大家点击下载舵机驱动程序)
. ]5 N4 h: G; ~! T/ b) N2 g; R3 i" K
6 @) j: E! V, a% J( ]! ^0 M
# w6 e. V9 e/ c8 t2 f所以如果要用12C5A60S2的PCA产生PWM波的话输出频率最低只能达到10khz左右,还是太高,无法驱动舵机,因此需要使用定时器来实现。实际波形像下面这样:6 p- x2 j4 X2 T7 X, l
/ n& ^# j* ]9 h" A0 O' T
舵机基本原理与使用方法-4.jpg 9 ~* ?% L  X( @

' O$ F0 H- t% B0 \# H( u
* B4 o3 w7 r8 c  [* }) Z% k; r) x/ V+ ?& l) g7 ~7 E. L

/ ?6 e! ?$ u+ p- q3 |) _为了更加形象地了解pwm波形和输出角度的对应关系,我们来看一张动图,非常形象:
: H; c! W4 ^' X3 ^# B6 |4 _! F9 O2 a7 P7 T; l0 F  {
舵机基本原理与使用方法-5.jpg
' V  B# [. q3 }  U* A, e& ^7 L  n0 S9 m7 M
: E6 w6 w- a5 R0 i5 ~5 @

8 o7 c1 s" E+ o因为要考虑能耗问题,所以关于SG90模拟舵机和MG90S数字舵机工作电流可以分为几种状态。: T# L; g% y* ?) a% T$ Q$ w. B4 Y, P
① 舵机上电,无pwm控制信号
$ h/ q6 a) Y7 x' N此时舵机不工作,静态电流均为4mA左右,舵机不会自动复位,完全不动作。
, F. F, _2 m! g' S2 H2 c② 舵机上电,有pwm控制信号,舵机工作在输出到指定角度的过程中: f: z: e* r2 R5 q! \
此时舵机工作,需要消耗大约300mA的工作电流。
/ P( r7 E4 `9 }4 t2 Q8 b( W  z③舵机上电,有pwm控制信号,舵机已工作至指定角度
" M! S- q& n/ J- h此时,舵机主要工作是维持指定角度,如果无外力抗拒,则消耗电流较小,SG90大约需要5mA,MG90S大约需要8mA左右。当然如果有外力抗拒的话则输出电流增大以抗拒外力。6 y7 c5 d( s( ~" O8 ^) _8 a

" }. f, P" X4 W
0 L* [' d0 f8 s+ T第五:舵机是否需要驱动电路?
4 d# ^  W2 h, j" ~一般来讲,舵机不需要特别的驱动电路,因为舵机内部已经有驱动电路了,一般单片机IO口输出的PWM波都可以驱动舵机。下图是12C5A60S2驱动舵机的电路图(p1.2没用到)。) o  m( j& h" L6 C

& P* f, V7 N" |  Y8 v 舵机基本原理与使用方法-6.jpg   [- j. W* t, b! W* x" T' V# p* M
) C" f* q3 `, n/ ^2 v8 O7 f. h

3 `3 X* E# Q7 }1 e% n
+ v. Z9 Q3 t8 L  X" T0 C" J/ P4 K第六:舵机代码实现参考% v1 \& P0 _$ L1 X: Z5 C" Z' w9 O- Y
) i4 Q" n5 \$ v% J- C

6 ^3 p5 t  N! v2 v( o7 [" i6 ]
) ?2 ]$ _$ y7 {8 |7 S) f% A) o4 p7 q& M5 d
/ `+ _( ]6 F1 t6 @0 B

5 X- n# o, _9 r5 Q4 U4 }0 W" T, m  l1 o: `

- E: \# K6 x4 ~6 Z% S( \' T9 L' K: M* ]$ X8 n- l7 ~
5 l4 r  Q% u% s- ~0 B9 z

- h: T8 T# C) F/ L7 ]6 \* R0 |
, u  o: G5 ^  P8 \* h+ i. v9 G& N1 N6 P' I

1 ~8 a* Y' O: N+ D! m/ R5 O5 x: U1 E+ Z" }- U! p2 P) T
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);    }
2 \, M: ?; P' L2 {* n
; ], _' W; V, H+ k" c7 R5 g, q/ T5 [

: k% z, J6 g5 M" i总结:舵机是常用的传感器器件,一般需要采用一个20ms的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围内的角度控制,总间隔为2ms。多实践,方能走的更远。
回复

使用道具 举报

发表回复

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

本版积分规则


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