前面我们学了控制LED亮灭、控制继电器开关、让蜂鸣器唱歌——但这些都只是"开"和"关"两种状态。今天要学一个能精准控制角度的设备:舵机

航模飞机的机翼控制、小车车轮的转向、家用电器的开关、机器人关节的转动……这些需要"转到某个精确角度"的场景,背后都是舵机在工作。

今天这节课,我们就用ESP32 + MG90S舵机,实现0°、90°、180°的精准角度控制!

第一步:找到课程,看看成品效果

打开逗脑IDE,点击顶部 “文档”,在 “课程” → “ESP32 + MicroPython” 分类下,找到舵机这节课。

在这里插入图片描述

打开课件,你会看到本节课的最终效果:舵机的摆臂在程序控制下,精准地转动到0°、90°、180°,再转回来,动作干脆利落。

在这里插入图片描述

第二步:舵机是什么?

用大白话说:舵机就是能够转动指定角度的设备。

在这里插入图片描述

你给它一个指令"转到90度",它就精准地转到90度;你说"转到180度",它就转到180度。不像普通电机只会一直转,舵机是可以控制角度的。

三根线:

线色功能说明
黑褐色GND电源地
红色VCC电源正极(5V)
橙色信号线接收控制信号

第三步:舵机能做什么?

舵机的应用场景非常广泛:

应用场景用途
航模飞机控制机翼、尾舵的偏转角度
智能小车控制前轮转向
机器人关节控制机械臂、机械腿的角度
家用电器控制开关、阀门
智能窗帘控制窗帘开合角度
摄像头云台控制摄像头上下左右转动
自动门锁控制锁芯旋转开锁

第四步:怎么控制它?——PWM信号

ESP32该发送什么样的数据给舵机的信号线呢?

答案:PWM(脉冲宽度调制)信号。

舵机通过识别PWM信号的脉冲宽度来判断应该转到什么角度:

脉冲宽度对应角度
0.5ms
1.5ms90°
2.5ms180°

在这里插入图片描述

在MicroPython中,我们用duty_u16()来设置脉冲宽度。经过计算和实际验证,MG90S舵机的控制参数如下:

角度duty_u16值
duty_u16(1638)
90°duty_u16(4915)
180°duty_u16(8192)

📌 关键参数: PWM频率设为50Hz(周期20ms),这是舵机的标准控制频率。

第五步:动手接线

舵机线连接ESP32说明
黑褐色(GND)GND电源地
红色(VCC)3.3V电源正极
橙色(信号线)GPIO2PWM信号输出

在这里插入图片描述

第六步:代码——转到指定角度

from machine import Pin, PWM
import time

# 创建PWM对象,连接到GPIO2
p2 = PWM(Pin(2))

# 设置PWM频率为50Hz(舵机标准频率)
p2.freq(50)

# 转到0度
p2.duty_u16(1638)
time.sleep(1)

# 转到90度
p2.duty_u16(4915)
time.sleep(1)

# 转到180度
p2.duty_u16(8192)
time.sleep(1)

代码解读:

代码作用
PWM(Pin(2))创建PWM对象,连接到GPIO2
p2.freq(50)设置频率为50Hz(舵机标准)
p2.duty_u16(1638)转到0°
p2.duty_u16(4915)转到90°
p2.duty_u16(8192)转到180°

📌 版本要求: 必须使用 MicroPython 1.19 及以上版本!1.18版本不会有反应。具体升级方法参考"环境搭建"课程。

第七步:保存运行,看舵机转动!

保存代码到开发板,命名 :servo.py

在这里插入图片描述

点击运行按钮,观察舵机:

  1. 先转到 (摆臂指向最左边)
  2. 等待1秒
  3. 转到 90°(摆臂指向正前方)
  4. 等待1秒
  5. 转到 180°(摆臂指向最右边)

在这里插入图片描述

进阶玩法:让舵机来回摆动

学会了基本的角度控制,可以让舵机来回摆动,做出更生动的效果:

from machine import Pin, PWM
import time

p2 = PWM(Pin(2))
p2.freq(50)

while True:
    # 从0°到180°
    for duty in range(1638, 8192, 100):
        p2.duty_u16(duty)
        time.sleep_ms(20)
    
    # 从180°到0°
    for duty in range(8192, 1638, -100):
        p2.duty_u16(duty)
        time.sleep_ms(20)

效果:舵机像雷达一样,从0°平滑扫到180°,再从180°扫回0°,循环往复。

舵机 + 其他模块 = 更多可能

组合效果
舵机 + 超声波智能小车自动避障
舵机 + 人体感应人靠近自动开门
舵机 + 摇杆用摇杆实时控制舵机角度
舵机 + WiFi远程控制舵机转动
舵机 + 光敏追光太阳能板

全程回顾

步骤操作效果
找到课程文档→课程→ESP32+MicroPython→舵机了解舵机原理
认识硬件3根线:GND、VCC、信号线知道怎么接线
理解PWM脉冲宽度决定角度理解控制原理
动手接线GND→GND, VCC→5V, 信号线→GPIO2硬件就位
打开代码点击"打开"按钮代码进入编辑器
保存运行Ctrl+S → 选择ESP32 → 运行舵机精准转动!
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐