【RC电子硬件】舵机的入门

一、舵机简介

我——舵机,是一种位置(角度)伺服的电机,适用于那些需要角度变化并可以保持的控制系统。

舵机(Servo motor)英文常简称 Servo,中文也有人称伺服机,由控制电路、齿轮、直流马达等组成,可使用 PWM 技术来控制舵机转动角度。

图 舵机实物图

舵机的种类多种多样,可以按照不同的标准进行分类:

 


图 舵机接线图

舵机一般有三条线,一条接电源(5V即可,电压越高,速度越快),一条接地,最后一条接控制(即单片机输出的PWM控制)

舵机的控制一般需要一个20ms左右的时基脉冲(50Hz),该脉冲的高电平部分一般为0.5ms-2.5ms范围内的角度控制脉冲部分,总间隔为2ms。以180度角度为例,的其控制关系是这样的:

  •    0.5ms--------------0度;
  •    1.0ms------------45度;
  •    1.5ms------------90度;
  •    2.0ms-----------135度;
  •    2.5ms-----------180度;

另一种表示方式是 -90度~90度(这里,对舵机输出轴转角进行重定义:-90°认为是0位置,90°认为是180位置),如下图

可以归纳为以下的公式:

任意角脉宽 = 0°脉冲宽度 +  角度值 *(脉宽的最大增量 / 180°),即:任意角脉宽 = 0.5ms + 角度值 *(2ms/180°)

至于360度舵机,是无法控制角度的,相当于一种特殊的减速电机。

  •    0.5ms-------------- -180度;以最大速度正向持续
  •    1.5ms------------0度;停止转动,速度无
  •    2.5ms-----------180度;以最大速度逆向持续

 

二、舵机如何控制?

舵机的信号线是做为输入线就是接收PWM信号(定时器产生)。

一般PWM的周期是20ms(50hz)。那么改变不同的占空比就可以控制转动的角度。其中占空比从0.5-2.5ms(如果占空比大于2.5ms也只会在最大角度。),相对应的舵盘位置为0-180度,呈线性变化。

给它提供一定的脉宽,无论外界转矩怎么改变(不超过最大力矩),它的输出轴就会保持一定对应角度上,。

舵机内部有一个基准电路,产生周期为20ms,宽度1.5ms的基准信号,有一个比较器,将外加信号与基准信号相比较,判断出方向和大小,从而生产电机的转动信号。由此可见,舵机是一种位置伺服驱动器,转动范围不能超过180度,适用于那些需要不断变化并可以保持的驱动器中,比如说机器人的关节、飞机的舵面等。

注:建议先写一个0度的程序,方便确定舵机转动的方向和角度

这里,对舵机输出轴转角进行重定义:-90°认为是0位置,90°认为是180位置:

脉冲宽度 0.5ms 1ms 1.5ms 2ms 2.5ms
转动角度 -90° -45° 34° 90°
重定义转角 45° 90° 135° 180°


以0.5ms为0位置时,

从0位置转到180位置,脉宽的最大增量 = (2.5ms - 0.5ms) = 2ms,有:

任意角脉宽 = 0°脉冲宽度 +  角度值 *(脉宽的最大增量 / 180°),即:任意角脉宽 = 0.5ms + 角度值 *(2ms/180°)

任意角占空比 = 任意角脉宽/20ms

三、STM32 定时器控制舵机

STM32 定时器基本计算公式:

定时器频率计算公式:f = sys_clk / [ ( arr + 1 ) * ( psc + 1 ) ];

占空比计算公式:duty = ccr/arr * 100%;

sys_clk 系统运行时钟
psc 定时器时钟预分频值
arr 计数重装载值
ccr 比较计数值

另外:任意角脉宽计算公式 :脉宽 = 0.5ms + 角度值 *(2ms/180°)(其中角度值范围[0,180])

1. 设置arr(计算重装载值)    

因为一个周期为20ms, 脉宽范围为0.5~2.5ms,因此将arr设置为(2000-1),ccr的范围就是50到250.

2. 设置psc(预分频值)    

根据STM32基本定时器公式有:psc = sys_clk/[ f * (arr + 1) ] - 1;

本示例中f=50hzsys_clk=72Mhzarr=(2000-1),即:

psc = 72Mhz/(50hz * 2000) - 1;
   = 720

3. 角度与ccr值换算 

  ccr = 50+ 角度值 *(200/180°)

即当角度为0的时候,CCR=50;角度为180的时候,CCR=250。

 

 

四、常见的舵机

SG90s

 

MG90s

MG90S舵机的主要参数包括产品扭矩、‌产品速度、‌转动角度、‌工作电压、‌齿轮形式、‌死区设定、‌产品重量、‌产品尺寸。‌

  • 产品扭矩:‌在4.8V电压下为2.0kg/cm,‌在6V电压下为2.8kg/cm。‌
  • 产品速度:‌在4.8V电压下,‌舵机以0.11秒/60°的速度转动,‌而在6V电压下,‌速度提升到0.09秒/60°。‌

由上面可知,电压越高,转矩和转速越快。

 

二、中型舵机

1. MG996R

MG996R是一种中型舵机,具有高扭矩,转速为0.13秒/60度,扭矩为11kg/cm。工作电压为4.8V-7.2V。

2. MG945

MG945是中型舵机中的一种,转速为0.13秒/60度,扭矩为13kg/cm。工作电压为4.8V-7.2V。

 

三、大型舵机

1. S3003

S3003是一种大型舵机,重量为38g,转速为0.23秒/60度,扭矩为3.5kg/cm。工作电压为4.8V-7.2V。

2. S3004

S3004是大型舵机中的一种,转速为0.23秒/60度,扭矩为5.5kg/cm。工作电压为4.8V-7.2V。

四、航模专用舵机

1. DS3218

DS3218是一种航模专用舵机,具有高转速和扭矩。转速为0.12秒/60度,扭矩为17kg/cm。工作电压为4.8V-6.8V。

2. DS3235

DS3235是航模专用舵机中的一种,具有极高的转速和扭矩。转速为0.09秒/60度,扭矩为35kg/cm。工作电压为6V-8.4V。

 

 

参考文章:

1. <STM32f1之舵机驱动+转动角度调整(含主代码和计算)>:https://blog.csdn.net/weixin_45930808/article/details/119117499

2. <舵机的控制>:https://blog.csdn.net/qq_44125275/article/details/128521102

3. <舵机篇(二)舵机控制>: https://blog.csdn.net/weixin_38288325/article/details/132367150

4. 常用舵机型号及参数解析:https://b2b.baidu.com/q/aland?q=7A6A1A0A7F2F72331904730C75797B070334742B073

5. Plotclock就应用了三个舵机,以手臂在白板上绘制出目前的时间。

Plotclock 用的是Tower Pro 9g servos(SG90 digital servo),为三线式舵机,红线接电源,棕色的线接 GND,橘色线为信号线:

 

posted @ 2024-05-30 21:55  FBshark  阅读(5)  评论(0)    收藏  举报