树莓派 Pico 与 MicroPython:从 PWM 原理到舵机控制实战
2026/9/5 15:00:37 网站建设 项目流程

如果你问我现在想做一两个真正的智能自动化小项目,预算又不想上去就花几百元买现成模块,我首先推荐的控制核心,就是树莓派 Pico。关于它的讨论已经流行很多年了,最近再次被大家翻出来,是因为树莓派 Pico 控制舵机这类执行器的完整链路已经非常成熟,资料多、成本低、试错成本几乎可以忽略。

树莓派 Pico 的价值,并不仅仅在于“便宜”。它真正解决的是把传感器信号读取、逻辑判断、执行器控制这条自动化链路,压进一块官方指导价约 4 美元、国内渠道普遍几十元内的开发板上。过去要完成类似工作,要么用 Arduino 熟悉一套不同于 Python 的 C++ 生态,要么上一台几百元的树莓派跑操作系统,再做 GPIO 控制;现在,一块 Pico 加上 MicroPython 环境,几十行代码就能跑通一个小型自动控制系统。

这篇文章会按一条可以实际跑通的路线来写:先讲清楚 Pico 在自动化方案中的定位和适用边界,然后从零烧录固件、点亮 LED;再重点拆解大家都很关心的“树莓派 Pico 控制舵机”场景,把 PWM 原理一次说透;最后把土壤湿度传感器、舵机和状态判断逻辑组合起来,完成一个能感知、能决策、能执行的智能自动化最小闭环。读完后你可以照着复现,也能避开大多数新手会踩的供电和接线问题。

1. 树莓派 Pico 为什么适合做智能自动化

1.1 它不是另一台跑 Linux 的树莓派

不少刚接触硬件的人会把树莓派 Pico 和树莓派 4B 搞混。两者的主控芯片体系完全不同。

树莓派 Pico 使用的是 RP2040 芯片,内部是双核 Arm Cortex-M0+ 处理器,支持最高 133MHz 运行频率,板载 264KB SRAM 和 2MB Flash,带 26 个多功能 GPIO。它属于微控制器。微控制器的特点是直接操作寄存器、引脚和外设,没有操作系统那一层,上电后可以立刻执行程序,非常适合实时性要求不高的自动控制任务。

树莓派 4B 等“卡片电脑”使用的则是 Cortex-A 系列处理器,运行完整 Linux 操作系统。这类设备适合跑 Web 服务、图像处理或复杂应用,但如果只是想让一个引脚输出 PWM 波形来控制舵机,需要用额外的 GPIO 库、依赖操作系统调度,实时性和可靠性反而不如一颗微控制器。

判断也很直接:如果你的项目里需要运行 Python 应用、联网部署服务、做图像计算,选树莓派电脑;如果你的项目是“读传感器、做判断、控制电机/舵机/继电器”,Pico 是更精准的工具。

1.2 Pico、Arduino 单片机与树莓派电脑怎么选

对比维度树莓派 Pico入门级 Arduino 开发板树莓派电脑开发板
产品定位单片机微控制器开发板单片机开发板微型 Linux 电脑
核心处理器RP2040 双核 Cortex-M0+AVR 等单片机Cortex-A 多核处理器
操作系统无操作系统或裸机运行无操作系统运行 Linux
常用开发语言MicroPython、C/C++C/C++Python、Shell、Java 等
上手难度MicroPython 门槛低需要理解 C++ 基础适合软件开发者,但硬件实时性弱
典型自动化场景传感器采集 + 执行器控制简单传感器控制器边缘计算、Web 应用、复杂网关
价格区间较低视型号和渠道而定相对高

从表格能看出,Pico 并不是要替代树莓派电脑,它替代的是实验箱里那些“只做教学演示”的开发板。它更适合作为真实自动化项目的前端控制器。

1.3 Pico 适合什么,不适合什么

适合的场景:

  • 需要高频访问 GPIO 的传感器控制。
  • 需要输出 PWM 控制舵机、LED 亮度、蜂鸣器。
  • 需要读取 ADC 模拟量的环境监测。
  • 需要低功耗、低成本部署的小型闭环系统。
  • 想从零学习单片机、但不想在 C++ 环境里挣扎的 Python 开发者。

不适合的场景:

  • 需要运行完整 Web 服务器或数据库。
  • 需要调用复杂机器学习模型进行图像识别。
  • 需要直接播放高清视频。
  • 需要海量存储或复杂多媒体接口。

认清适用边界,才不会拿着 Pico 做了一两周后,发现计算资源不够用,又重新换平台。对大部分智能硬件初学者而言,Pico 起步合适,并且后续可以无缝配合树莓派电脑或服务器组成完整系统。

2. 智能自动化到底在控制什么:GPIO、PWM、ADC 和 MicroPython 的分工

2.1 自动化的本质是一条控制链

智能自动化听起来高级,拆开后无非是三个环节:

  1. 输入:通过传感器采集环境信息,比如温度、湿度、光照、距离。
  2. 决策:根据预设逻辑判断下一步动作,比如“土壤太干就打开浇水”。
  3. 输出:控制执行器完成动作,比如驱动舵机、继电器、电机。

Pico 在中间扮演“大脑”角色。它通过 GPIO 读数字信号,通过 ADC 读模拟信号,通过 GPIO 或 PWM 输出控制信号。识别出这三步,后面的硬件接线都是围绕这三个环节展开的。

2.2 三个必须掌握的核心概念

GPIO 是 General Purpose Input Output,通用输入输出引脚。引脚可以设置为输入模式,也可以设置为输出模式。输出模式下,引脚可以输出高电平或低电平,适合控制 LED、继电器这类只要求“开/关”的设备;输入模式下,可以读取外部信号是高还是低,比如按键按下、避障模块返回的开关量。

PWM 是 Pulse Width Modulation,脉冲宽度调制。它用固定频率下改变高电平所占比例的方式,去逼近一个平均电压。和单纯输出高/低电平不同,PWM 能控制舵机角度、LED 亮度、直流电机转速,是非常关键的自动化输出手段。

ADC 是 Analog-to-Digital Converter,模数转换器。它把连续变化的模拟电压转换成数字值。例如土壤湿度模块输出 0 到 3.3V 的电压,Pico 无法直接“读懂”电压大小,但通过 ADC 引脚可以转换成 0 到 65535 之间的整数值,这样程序就能判断“土壤很干”或“比较湿润”。

概念通俗理解在自动化中的典型用途
GPIO能输出高/低电平的引脚控制 LED、读取按键、控制继电器
PWM通过高电平时长控制设备控制舵机角度、LED 亮度、电机转速
ADC把模拟电压转成数字值读取土壤湿度、光敏电阻、电位器电压
MicroPython可运行在单片机上的精简 Python快速编写控制逻辑、减少编译调试

2.3 PWM 与舵机有什么关系

舵机内部有一个控制电路、直流电机和齿轮组。你给舵机发送一个周期性的脉宽信号,舵机内部就能解析出“你希望它转到哪个角度”。常见标准舵机需要 50Hz 左右的 PWM 信号,也就是周期约 20ms。在这个 20ms 周期里,高电平持续的宽度不同,舵机目标角度就不同。

简单来说,舵机不看 PWM 的频率是否足够快,只看“一个周期里高电平持续了多少微秒”。这也是后面写 Pico 控制舵机代码时需要特别注意的换算点。

2.4 为什么从 MicroPython 开始更合适

Pico 官方同时支持 C/C++ SDK 和 MicroPython。对大多数做智能自动化的开发者,MicroPython 是更平滑的入口:

  • 语法接近桌面端 Python,逻辑能快速验证。
  • 固件自带常用驱动,省去配置编译链的麻烦。
  • REPL 环境可以边运行边调试,不需要反复烧录固件。
  • 外设 API 统一,machine模块下就能访问 Pin、ADC、PWM。

它不是没有代价。MicroPython 的解释执行速度比 C 慢,极端时序控制可能需要用 C/C++ SDK。但如果是做传感器自动化和常规舵机控制,速度完全够用。

3. 硬件准备与环境搭建

3.1 先准备一份基础硬件清单

硬件用途与建议
Raspberry Pi Pico 开发板推荐带排针版本,方便插面包板
Micro-USB 数据线必须支持数据传输,很多充电线只能供电
面包板与杜邦线用于搭建可调试原型
USB-TTL 或 Thonny 所需串口环境Pico 自带 USB,

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询