
在芯片涨价的浪潮下,我机缘巧合地 斥巨资 购入了一片树莓派的微控制器开发板 —— Pico。特意写下这篇专栏作为学习记录,参考官方文档:《Raspberry Pi Pico Datasheet》《Getting started with Raspberry Pi Pico》《Raspberry Pi Pico Python SDK》《Raspberry Pi Pico C/C++ SDK》。
Pico 的外观小巧,大小只有 51mm * 21mm ,表面浅绿色的油墨和金闪闪的焊盘,颜值很高。

Raspberry Pi Pico
Pico 是一款基于 Raspberry Pi RP2040 的微控制器开发板。Pico的规格参数如下描述(来源 https://pico.org.cn )
双核 Arm Cortex-M0 + @ 133MHz
芯片内置 264KB SRAM 和 2MB 的板载闪存
通过专用 QSPI 总线支持最高 16MB 的片外闪存
DMA 控制器
30 个 GPIO 引脚,其中 4 个可用作模拟输入
2 个 UART、2 个 SPI 控制器和 2 个 I2C 控制器
16 个 PWM 通道
USB 1.1 主机和设备支持
8 个树莓派可编程 I/O (PIO) 状态机,用于自定义外围设备支持
支持 UF2 的 USB 大容量存储启动模式,用于拖放式编程

Raspberry Pi Pico Pinout
Pico 支持 MicroPython 和 C/C++ 开发,两者的开发环境配置大相径庭。
MicroPython 是 Python3 的精简高效实现,是一款专门为微控制器制作的解释语言。
C/C++ 是经典的微控制器开发语言,有运算速度快、编译效率高、可移植性好的特点。
MicroPython 和 C/C++ 的开发环境配置在 Pico 的官方文档中都有详细的介绍,这里主要介绍 Windows 下 vscode (Visual Studio Code) 的开发环境配置。
MicroPython
先将 MicroPython 解释器下载到 Pico。到树莓派的官网 ( https://www.raspberrypi.org/documentation/rp2040/getting-started/#getting-started-with-micropython ) 下载 MicroPython 的 UF2 文件,按住 Pico 开发板上的 BOOTSEL 按键,通过 USB 数据线连接到 PC 电脑,然后松开按键,此时 Pico 会被 PC 电脑识别为 RPI-RP2 U盘 大容量存储设备,将 rp2-pico-20210418-v1.15.uf2 文件放进 RPI-RP2 内,Pico 将会自动重启,设备管理器可以查看到一个新的串口 COM 设备。

被识别为 RPI-RP2 存储设备
既然是 Python,那就必须要在 vscode 中安装 Python 插件。

Python 插件
在 vscode 中安装 RT-Thread MicroPython 插件。

RT-Thread MicroPython 插件
在 vscode 中创建一个 MicroPython 的空白工程。

创建 MicroPython 工程
创建或者打开 MicroPython 工程之后可以看到窗口底部有几个操作按钮,从左到右分别是连接上 Pico 的串口、将脚本文件同步到 Pico、将脚本在 Pico 上运行和停止脚本运行。

RT-Thread MicroPython 插件的基本操作
调试前要先连接 Pico 的串口,其中 Pico 的串口 COM 号可以在设备管理器查询(我的是 COM 5),然后就可以按运行进行调试。

成功连接 Pico
C/C++
C/C++ 的开发环境配置的步骤有点繁琐,详细说明请往下阅读。
1. 安装交叉编译工具链 - ARM GCC compiler
下载并安装 ARM GCC compiler ( 下载地址 https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads )。

下载 ARM GCC compiler

安装 ARM GCC compiler
2. 安装自动化建构系统 - CMake
CMake (Cross platform Make) 是一个开源的跨平台自动化建构系统,用来管理软件建置的程序。(下载地址 https://cmake.org/download/ ),安装 CMake 并添加到环境变量。

安装
3. 下载并配置 Pico C/C++ SDK
使用 Git 从 GitHub 上克隆 pico-sdk (没有 Git 的可以自行安装一下)。
在自己想要放 pico-sdk 的位置打开 Git Bash,然后执行以下命令克隆 pico-sdk 以及安装依赖:
git clone -b master https://github.com/raspberrypi/pico-sdk.git
cd pico-sdk
git submodule update --init 将 pico-sdk 添加到环境变量中,并命名为 PICO_SDK_PATH 。

新建 PICO_SDK_PATH
4. 配置 vscode
需要在 vscode 中安装下面 3 个插件,分别是 C/C++、CMake、CMake Tools。

C/C++ 插件

CMake 插件

CMake Tools 插件
为 vscode 的 Cmake 添加PICO_SDK_PATH 环境变量。
先找到 vscode 左下角的 Manage 按钮,进入 Settings 选项。

vscode 的 Settings 选项
在 Extensions 找到 CMake Tools configuration。

CMake Tools configuration
找到 Cmake: Environment,添加 PICO_SDK_PATH 环境变量。

配置 Cmake: Environment 环境变量
配置 Cmake: Generator ,这里需要把 Cmake 的 Generator 指定为 MinGW Makefiles(没有 MinGW 的可以自行安装,至于这里指定为 MinGW Makefiles 而不是 NMake Makefiles,是因为 NMake 需要由 Vistual Studio 2019 命令行启动) ,并配置 mingw32-make.exe 的地址(不指定编译的时候会报“系统找不到指定文件”,估计是没有找到这个 MinGW 的 make 工具)。

配置 Cmake: Generator

配置 Cmake: Mingw Search Dirs
用 Git 在合适的位置,下载 Pico 的官方样例程序,并在 vscode 中打开。
git clone -b master https://github.com/raspberrypi/pico-examples.git

用 vscode 打开 pico-examples 工程
如果要自己创建工程的话,请注意 cmake 文件和 CMakeLists 等工程文件。
在底部工具栏,配置好 CMake 的输出、交叉编译工具链、编译的具体项目,就可以按 Build 编译。

编译的配置操作
编译没有报错的话,编译好的 uf2 文件位于 pico-examples 目录下的 build 文件夹里对应的项目路径。
按住 Pico 开发板上的 BOOTSEL 按键,通过 USB 数据线连接到 PC 电脑,然后将编译好的 uf2 文件放到名为 RPI-RP2 的存储设备中,这就把固件烧录到 Pico 了,这里的操作跟下载 MicroPython 解释器的操作步骤一样。
配置好开发环境之后,点灯路上的障碍就基本被扫清了。
在 Pico 的 Pinout 上可以查到开发板上唯一一颗 LED 由 GP25 引脚控制。
MicroPython:
from machine import Pin
import time
led = Pin(25, Pin.OUT)
if __name__ == '__main__':
while True:
led.value(0)
time.sleep(1)
led.value(1)
time.value(1) C:
#include "pico/stdio.h"
int main()
{
const uint LED_PIN = PICO_DEFAULT_LEN_PIN;
gpio_init(LED_PIN);
gpio_set_dir(LED_PIN, GPIO_OUT);
while(true)
{
gpio_put(LED_PIN, 1);
sleep_ms(250);
gpio_put(LED_PIN, 0);
sleep_ms(250);
}
} MicroPython 脚本可以直接在 Pico 开发板上运行,但是如果想要开发板上电就执行程序的话,要将 MicroPython 脚本重命名为 main.py ,然后再同步到 Pico 开发板上。C 的话直接编译得到 uf2 文件,下载到 Pico 开发板就行。
写下这篇指南,主要是为了记录自己 Pico 的使用过程,以及总结整理 Pico 的使用教程,尽量扫掉一些使用过程中的陷阱和障碍。后续可能会继续更新 Pico 这个系列,将自己做的一些 Pico 实验,以及实验过程中遇到的问题及其解决方法记录下来,大家敬请期待吧。
相关资料的 伪传送门 网址:
Pico 的官方指南:[ https://www.raspberrypi.org/documentation/rp2040/getting-started/ ]
树莓派 Pico 中文站:[ https://pico.org.cn/ ]
树莓派 Pico Datasheet:[ https://datasheets.raspberrypi.org/pico/pico-datasheet.pdf ]
RP2040 Datasheet:[ https://datasheets.raspberrypi.org/rp2040/rp2040-datasheet.pdf ]
RP2040 硬件设计:[ https://datasheets.raspberrypi.org/rp2040/hardware-design-with-rp2040.pdf ]
开始使用树莓派 Pico:[ https://datasheets.raspberrypi.org/pico/getting-started-with-pico.pdf ]
Pico C/C++ SDK:[ https://datasheets.raspberrypi.org/pico/raspberry-pi-pico-c-sdk.pdf ]
Pico Python SDK:[ https://datasheets.raspberrypi.org/pico/raspberry-pi-pico-python-sdk.pdf ]