如果你问我现在想做一两个真正的智能自动化小项目,预算又不想上去就花几百元买现成模块,我首先推荐的控制核心,就是树莓派 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 自动化的本质是一条控制链
智能自动化听起来高级,拆开后无非是三个环节:
- 输入:通过传感器采集环境信息,比如温度、湿度、光照、距离。
- 决策:根据预设逻辑判断下一步动作,比如“土壤太干就打开浇水”。
- 输出:控制执行器完成动作,比如驱动舵机、继电器、电机。
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, |