舵机(Servo Motor)是一种集电机、控制电路和反馈系统于一体的伺服电机系统,用于精确控制位置(角度)、速度或力矩。它最常见的用途是 角度伺服控制,即驱动一个机械装置旋转到特定角度并保持稳定。
组成
一个典型的舵机包括以下部分:
- 电机
- 通常是一个直流电机(DC Motor)或无刷电机,负责提供驱动力。
- 齿轮组
- 电机驱动输出轴通过齿轮组减速并放大扭矩,从而增加精度和力量。
- 控制电路
- 内部的电子控制模块接收控制信号(如 PWM 信号),将其转换为电机的转速和方向。
- 位置反馈系统(通常是电位计)
- 用于检测输出轴的当前位置,反馈给控制电路以形成闭环控制。
- 输出轴
- 连接外部机械装置,执行精确的角度控制。
特点
精准角度控制
舵机可以控制输出轴在特定范围内(通常为 0° 到 180° 或 360°)的位置。闭环控制
舵机通过位置反馈系统(如电位计或编码器)不断调整输出轴的位置,确保达到目标角度。易于使用
使用简单的 PWM 信号即可控制,无需复杂的驱动器。扭矩输出
舵机通常以 kg.cm(千克力·厘米)为单位来表示其扭矩能力。
工作原理
舵机的工作原理基于闭环控制系统,它通过比较控制信号与实际位置之间的差异,调整电机的转动,最终使舵机的输出轴达到并保持在目标位置。具体过程如下:
接收 PWM 信号
MCU 输出一个 PWM 信号,通常是周期为 20ms,脉冲宽度在 1ms 到 2ms 之间。
例如,1ms 的脉冲宽度对应 0°,1.5ms 对应 90°,2ms 对应 180°。
这个 PWM 信号决定了舵机的 目标位置。
舵机判断是否需要转动
舵机内部有一个电位器,它持续监控舵机的实际角度。
控制电路将接收到的目标角度与电位器提供的当前角度进行比较,计算出 误差(即目标角度与当前角度之间的差值)。
如果目标角度和实际角度不一致,舵机会继续转动,通过电机和齿轮组调整到目标位置。
如果目标角度与实际角度相同,电机停止转动,舵机就会维持当前的角度。
电机转动
是否需要转动:舵机是否继续转动取决于 当前角度 和 目标角度 之间的误差。如果两者一致,舵机不需要转动;如果存在误差,舵机会转动直到达到目标角度。
PWM信号 只负责设置目标角度,舵机根据当前角度和目标角度的差值决定是否需要转动。
分类
模拟舵机(Analog Servo)
- 使用模拟电路控制,接收连续的 PWM 信号。
- 优点:成本低,适合低精度应用。
- 缺点:响应速度较慢,抗干扰能力弱。
数字舵机(Digital Servo)
- 使用数字信号处理器(DSP)控制。
- 优点:控制更精确,响应速度快。
- 缺点:价格较高,功耗略高。
连续旋转舵机(Continuous Servo)
- 特点:能够连续旋转,不局限于角度范围。
- 应用:作为轮子或传动装置,用于机器人。
工业伺服电机(Industrial Servo Motor)
- 用于精确控制速度和位置。
- 应用:工业自动化设备、机械臂等高精度场景。
与普通电机的区别
特性 | 舵机 | 普通电机 |
---|---|---|
控制精度 | 高,可控制到具体角度或位置 | 低,通常只控制速度或方向 |
结构 | 集成反馈和控制电路 | 仅包含电机本体 |
控制方式 | 通过 PWM 信号或命令控制 | 电压、电流或占空比控制 |
应用 | 精确控制机械位置 | 旋转运动或动力输出 |
MG 996R
MG 996R 型号对于舵机的控制如下:
1.5ms 对应中间位置,2ms 对应最右边位置(+90°),1ms 对应最左边位置(-90°)。
实现
1 |
|
问题
一、周期计算
如何计算周期为 20ms 的 PWM 参数
已知:当前频率为 1000000Hz,周期为 20ms
频率为 1000000Hz,表示一秒钟有 1000000 个周期,每个周期的时间 = 1 / 1000000 = 0.001ms
我想要数 20 ms,也就是说我要数 x 个数,0.001x = 20ms,x = 20000
所以我们此时 pwm 的周期应该设置为 20000