电子产业一站式赋能平台

PCB联盟网

帖子
查看: 3110|回复: 0
收起左侧

舵机基本原理与使用方法

[复制链接]

657

主题

1025

帖子

5598

积分

四级会员

Rank: 4

积分
5598
发表于 2022-6-16 13:32:28 | 显示全部楼层 |阅读模式
第一:舵机基本简介# r! F2 p, j1 v! R
7 i/ N% [% ~  _) _
    在电子开发过程中,舵机是比较常用的电子元器件,价格也比较便宜,非常好找。金属齿要比塑料齿要贵些,数字舵机比模拟舵机要贵些。
7 Q% I# n# u' t7 B; o6 y; v/ W) Y+ G0 Z4 [2 G7 J' [
舵机基本原理与使用方法-1.jpg 2 \7 O+ Y) e# v" f+ H3 r- n+ @
! N1 }% v& i' x, p! ], Q
4 A% y6 \: |1 Z- r+ {' v4 _1 I

8 U; N* m# m+ \  M# S! `0 t第二:舵机的作用. N7 `% s0 M/ q; J; Q3 }
      在机器人电控系统中,舵机控制效果是性能的重要影响因素。舵机可以在微机电系统中作为基本的输出执行机构,其简单的控制和输出使得单片机系统非常容易与之对接。
/ m$ h7 c" T& `  X
; T& N# t/ I) r$ r: E 舵机基本原理与使用方法-2.jpg
, G4 H" D1 _' z# Q1 l7 [! X9 U
0 r4 d& B2 {% D9 A3 a" U    舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。目前,在高档遥控玩具,如飞机、潜艇模型,遥控机器人中已经得到了普遍应用。, C0 F# f' f$ R8 m
主要用于需要输出某一控制角度的场合,舵机可以根据控制信号来输出指定的角度,常见的有0-90°、0-180°、0-360°,舵机除了能够输出最大角度不同之外,价格和性能参数没有任何区别(同一型号而言)。
  u: l% Z4 B% G& u. x
9 s$ u1 t) C& Y4 a( V, o7 k$ {" P0 X( ^6 _9 Q) m% k/ r
第三:数字舵机和模拟舵机的区别是什么?模拟舵机和数字舵机接口是否通用?, ~4 j4 g7 U7 _
    数字舵机(Digital Servo)和模拟舵机(Analog Servo)在基本的机械结构方面是完全一样的,主要由马达、减速齿轮、控制电路等组成,而数字舵机和模拟舵机的最大区别则体现在控制电路上,数字舵机的控制电路比模拟舵机的多了微处理器和晶振。不要小看这一点改变,它对提高舵机的性能有着决定性的影响。, a" G0 W; u' N. a) c. f# g
①处理接收机的输入信号的方式。$ y# D. w" [0 s, e( v0 J
②控制舵机马达初始电流的方式,减少无反应区(对小量信号无反应的控制区域),增加分辨率以及产生更大的固定力量。  w" l$ Z  F( @9 N/ d" n' b
③实际应用不同,数字舵机在位置准确度方面要高于模拟舵机。在同样标称1.6公斤的舵机面前数字舵机在实际表现中会感觉更加“力气大”而模拟舵机就会“肉”点。模拟舵机由于控制芯片是模拟电路,所以即便是相同型号的舵机会存在小小的性能差异,而数字舵机在一致性方面就非常好。, @; ]1 f9 @2 o5 C0 @
  e- X0 q- h0 K' d

; s7 U. m$ s: k2 X* z! `- H第四:舵机的工作原理
2 ]5 E8 g6 O( |, i. l1 {( y. c    舵机主要是由外壳、电路板、驱动马达、减速器与位置检测元件所构成。其工作原理是由接收机发出讯号给舵机,经由电路板上的 IC驱动无核心马达开始转动,透过减速齿轮将动力传至摆臂,同时由位置检测器送回讯号,判断是否已经到达定位。位置检测器其实就是可变电阻,当舵机转动时电阻值也会随之改变,此时由检测电阻值便可知转动的角度。一般的伺服马达是将细铜线缠绕在三极转子上,当电流流经线圈时便会产生磁场,与转子外围的磁铁产生排斥作用,进而产生转动的作用力。依据物理学原理,物体的转动惯量与质量成正比,因此要转动质量愈大的物体,所需的作用力也愈大。舵机为求转速快、耗电小,于是将细铜线缠绕成极薄的中空圆柱体,形成一个重量极轻的无极中空转子,并将磁铁置於圆柱体内,这就是空心杯马达。2 i- k4 V( R6 j/ }5 z' y
8 V+ u$ A  A" M1 I% s

! [! f. {8 {  o下面咱们针对具体型号,比如SG90模拟舵机和MG90S数字舵机,来看看这两者之间的区别。
8 ]' U! j' X4 s* Y/ X" o* w1 |' i0 O首先,引脚都是兼容的三根线排列一致,分别是GND(棕色)、VCC(红色)、PWM(黄色),控制方式也是一样的PWM时序,具体对应角度如下:
2 O7 l8 e2 N) w# i. y& ^. x! M# e9 l. ~1 l
舵机基本原理与使用方法-3.jpg / u! I! m' L3 `. C6 M8 z
# Z6 F7 g4 P9 W1 S  X: Y
    这里要注意,PWM波的频率不能太高,大约50HZ,即周期0.02s,20ms左右,(为了方便大家使用,笔者已经将驱动程序整理好,供大家点击下载舵机驱动程序)
  j1 I# f, [$ E, ^
' V$ `- @: p  _" s) F9 U8 ?# d9 y3 C! e: p
所以如果要用12C5A60S2的PCA产生PWM波的话输出频率最低只能达到10khz左右,还是太高,无法驱动舵机,因此需要使用定时器来实现。实际波形像下面这样:1 v( n2 ?! j- B- K, b7 {1 i

  s2 ^1 u& X* C: J5 {) | 舵机基本原理与使用方法-4.jpg
/ }  a, {8 G2 w4 A# P, Z  b  v9 |9 m0 g5 b* i$ D, e
( I3 x9 e  `1 [" U

$ E" @* Z) b4 A- w$ j
# s% g. Y  d3 q2 o* g% m为了更加形象地了解pwm波形和输出角度的对应关系,我们来看一张动图,非常形象:
4 q3 e6 G/ X! u6 q% e. l/ T
) R7 M  R4 B) x  N 舵机基本原理与使用方法-5.jpg 9 c, ?) ^0 {, }7 A
4 ]3 z. j+ ^/ U
- s, ^+ P& Q4 f$ R

! I# Q2 G. q* b9 |% h因为要考虑能耗问题,所以关于SG90模拟舵机和MG90S数字舵机工作电流可以分为几种状态。* a0 b9 `( B5 Y/ ^
① 舵机上电,无pwm控制信号, b* C6 I4 B" u! I* N/ [; J4 W
此时舵机不工作,静态电流均为4mA左右,舵机不会自动复位,完全不动作。
# Q$ M: [+ i3 \" I② 舵机上电,有pwm控制信号,舵机工作在输出到指定角度的过程中3 k7 Z6 S  ]2 X% |
此时舵机工作,需要消耗大约300mA的工作电流。
' p$ P& x- Q! x7 V' r③舵机上电,有pwm控制信号,舵机已工作至指定角度
+ U9 A% ?: h% F6 z" ~此时,舵机主要工作是维持指定角度,如果无外力抗拒,则消耗电流较小,SG90大约需要5mA,MG90S大约需要8mA左右。当然如果有外力抗拒的话则输出电流增大以抗拒外力。
5 Q; V& `8 c1 a) Q5 `, j: S
, T$ [8 K( {  F3 i2 T% ~* L: h1 v' \' j" @; W
第五:舵机是否需要驱动电路?- x( H: ^! x2 K
一般来讲,舵机不需要特别的驱动电路,因为舵机内部已经有驱动电路了,一般单片机IO口输出的PWM波都可以驱动舵机。下图是12C5A60S2驱动舵机的电路图(p1.2没用到)。
# ?0 W7 g3 T5 F  N( h8 p8 q, _
, t: x! v  S, B5 f 舵机基本原理与使用方法-6.jpg ' _9 K6 Q; b, S! Z4 e+ X

' b+ a; v% ?4 o' p! @: O( h  [5 g% \3 l( r

% r$ o4 i0 V5 l: N7 s6 a第六:舵机代码实现参考3 t: C& q) `# J

% c% }( e, f6 L4 A( S' S* G" I  C
7 m; d' M3 Z  V# g9 @+ }
$ Y: n+ L- H9 ]' P* A# R  q
5 h- R% K+ L. n( _* W* c* a# n
% e, O- ^7 X' W6 R+ h( z
. T7 I* v; T9 i0 h" f8 b8 m8 r# O" r6 ?

% Q7 ~9 P  _/ U7 A( K. f
0 ~1 k" e+ n7 k
! E7 b2 c$ w* D4 c( Q3 ^* e
% s2 a! T: l$ _! m9 i5 i! ?" s! R4 V2 k7 x/ m. j

0 g/ m% m; W' N% q) W* {
" u3 m8 N3 l% g  J5 H0 a4 u: @* p! V  U) G4 P- T! x, p- m
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);    }# H5 n. P2 k' p* \& B! A( `- r1 M
1 ]. j* L5 u" @! z) b
0 B, d) N  f0 M
& j" ]% U) P: j/ u$ X
总结:舵机是常用的传感器器件,一般需要采用一个20ms的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围内的角度控制,总间隔为2ms。多实践,方能走的更远。
回复

使用道具 举报

发表回复

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

本版积分规则


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