4 美金就能买到的「树莓派处理器」,说说我的使用体验

2021-01-27 16:37:40 17点赞 49收藏 5评论

2021 年 1 月 21 日,树莓派基金会发布了微处理器(Microcontroller)级新品 Raspberry Pi Pico[1]。该产品基于树莓派基金会自研的 RP 2040 芯片构建,售价仅为 4 美元。据介绍,Pico 作为一款微处理器,它擅长低时延的 I/O 通信和模拟信号输入,功耗低,可以弥补树莓派在与物理世界互动方面的不足。一起来揭开这款新品的神秘面纱吧。

1. 参数和配置

Raspberry Pi Pico 是一款搭载了 RP 2040 芯片的微处理器开发板。对于 Pico 的参数和配置的介绍,我们分两步进行:先看 RP 2040 芯片,再看 Pico 开发板。

1.1. RP 2040 芯片

RP 2040 芯片由树莓派基金会设计开发。在 官网 Blog[2] 中,首席运营官、首席硬件工程师 James Adams 调侃道:

It seems like every fruit company is making its own silicon these days, and we' re no exception.

(似乎现在每个水果公司都在研制自己的芯片了,我们也不例外。)

RP 2040 芯片采用 40 nm 制程工艺,7×7 mm QFN-56 封装。它的具体规格参数如下(树莓派实验室文章《树莓派 Pico:树莓派首款微控制器级产品》,来源:Raspberry Pi Blog「Meet Raspberry Silicon: Raspberry Pi Pico now on sale at $4」):

  • 搭载双核 ARM Cortex M0+ 处理器,运行频率 133 MHz

  • 内置 264 KB 的片上 RAM

  • 可通过专用 QSPI 总线支持最高 16 MB 的片外闪存

  • DMA 控制器

  • 外挂内插器和整数除法器

  • 30 个 GPIO 引脚,其中 4 个可用于模拟信号输入

  • 2 个 SPI、2 个 I2C、2 个 UART

  • 16 个 PWM 通道

  • 主机和设备支持的 USB 1.1

  • 8 个树莓派可编程 I/O 状态机

  • 支持 UF2 的 USB 大容量存储启动模式,用于拖放式编程

1.2. Raspberry Pi Pico 开发板以下展示 Raspberry Pi Pico 开发板的参数和配置(来源:Raspberry Pi Pico)。为了准确、完整地展示 Pico 的参数和配置,RP 2040 芯片的部分关键参数会被再次列举。

  • 搭载上述 RP 2040 芯片。

  • 采用双核 ARM Cortex M0+ 处理器,运行频率 133 MHz。

  • 搭载 264 KB 的片上 RAM,板载 2 MB 闪存。

  • 主机和设备支持的 USB1.1。

  • 支持低功耗的睡眠和休眠模式。

  • 采用拖放式编程。

  • 拥有 26 个 GPIO 引脚,其中 3 个可用于模拟信号输入(即 3 路 12 位 ADC)。

  • 拥有 2 个 SPI、2 个 I2C、2 个 UART、16 路 PWM。

  • 片上时钟、计时器;片上浮点库;搭载温度传感器。

  • 可通过 Micro USB 供电,也支持 1.8-5.5 V 直流电源供电。因此我们用串联的干电池或者锂电池即可驱动 Pico,这使得 Pico 的应用更加灵活。

  • 配备 1 个 LED 灯和一个开关按钮。该按钮用于向 Pico 烧录程序时控制 Pico 进入 USB 大容量存储模式,也可用于通用的输入。

  • 40 个引脚均为「焊孔 + 齿状边缘」的形态,由用户灵活选择安装方式,便于与其他开发板焊接。

4 美金就能买到的「树莓派处理器」,说说我的使用体验

Raspberry Pi Pico 的引脚分布,图源:raspberrypi.org

从参数和配置来看,Pico 就是一款微处理器开发板,也就是我们常说的「单片机」开发板。做个类比,它不是一款可以运行操作系统、五脏俱全的「树莓派」电脑,而是一款拥有丰富通用输入输出接口、可以与传感器和组件高效互动的「Arduino」开发板。

更加详细的技术参数,请参看官方提供的 RP 2040 芯片[3] 和 Raspberry Pi Pico [4] 的 Datasheet。

2. 开发方法

对于 Pico 的编程开发,官方开发了 Pico C/C++ SDK[5] 和 Pico Python SDK[6] 软件开发工具包,用户可以选择 C/C++ 或者 Python 对 Pico 进行开发。

对 Pico 的编程和烧录需要在计算机上进行。所支持的操作系统和计算机包括:

  • 搭载 Raspberry Pi OS 的树莓派

  • 其他搭载基于 Debian 的 Linux 系统的平台

  • 搭载 MacOS 的计算机

  • 搭载 Windows 的计算机等

其中,作为亲儿子,搭载 Raspberry Pi OS 的树莓派 4B 或树莓派 400 的开发环境配置最为便捷,通过一行 setup 脚本命令便可以完成大部分的配置工作。

Pico 采用颇为便捷的拖放式编程:将 Pico 通过 USB 与计算机连接,Pico 会被计算机识别为大容量存储设备,向其中拖放编程文件即可完成程序烧录。接下来的「上手体验」环节会对此做具体介绍和展示。

3. 上手体验3.1. 购买与开箱

目前,树莓派基金会在全球 53 个国家和地区的授权代理商均开始发售 Pico,售价基本为 4 美元。本人在 树莓派实验室[7] 的淘宝店下单购买了一片 Raspberry Pi Pico,价格是 36 元,另付运费 8 元。

收到快递后第一时间开箱,发现「无箱可开」:这玩意儿真就是官方 Blog 所展示的——装在卷带里的。

4 美金就能买到的「树莓派处理器」,说说我的使用体验

Pico 的包装,图源:raspberrypi.org

首先跟两位老大哥来张合照吧:

4 美金就能买到的「树莓派处理器」,说说我的使用体验

从左到右:Raspberry Pi Pico,Raspberry Pi 4B,Arduino uno r3

接下来跟一元硬币和钥匙来张合照。看了这张照片,大家应该可以对 Pico 的「小」有了一个比较清晰的认识。掏出你手里的钥匙,它就是那么小!Pico 开发板为双层 PCB 板,除了小,还很薄。拿在手上,这种轻薄的手感和齿状的边缘让人有种拿着一片苏打饼干的感觉。

4 美金就能买到的「树莓派处理器」,说说我的使用体验

4 美金就能买到的「树莓派处理器」,说说我的使用体验

现在来看看下图所展示的 Pico 正反两面,图中为了方便大家正确区分正反两面的方向,我用红色原点对 40 号引脚加以标记。Pico 的正面分布有 RP 2040 芯片、按钮、LED 灯、电源芯片等元件。正面只对 1、2、39 号引脚进行了标识。其背面无分布其他元件,背面 PCB 上对 40 个引脚的功能进行了标识。Pico 正面的引脚标记缺失可能会对刚接触 Pico 的用户带来不便。

4 美金就能买到的「树莓派处理器」,说说我的使用体验

从左到右:Pico 的正面和反面

3.2. 使用 C/C++ SDK 开发

现在我们来开发 Pico。

我们尝试按照官方入门指南 Getting started with Raspberry Pi Pico[8] 的指引,在搭载 Raspberry Pi OS 的树莓派 4B 上使用 C/C++ SDK 开发。

使用 C/C++ SDK 开发 Pico 的思路是,利用软件将使用 C 语言编写的程序转化为可被 Pico 识别的 .uf2 文件,烧录到 Pico 中,由 Pico 运行。

首先在树莓派安装 Git 工具,如果已经安装过,则可以忽略:

$ sudo apt install git

接下来在根目录「/home/pi」下新建「pico」目录,并在该目录中下载用于开发 Pico 的 SDK 和示例程序:

$ cd ~/
$ mkdir pico
$ cd pico
$ git clone -b master https://github.com/raspberrypi/pico-sdk.git
$ cd pico-sdk
$ git submodule update --init
$ cd ..
$ git clone -b master https://github.com/raspberrypi/pico-examples.git

完成后,我们可以在「/home/pi/pico」目录下看到「pico-examples」和「pico-sdk」两个目录。现在安装开发工具 CMake:

$ sudo apt update
$ sudo apt install cmake gcc-arm-none-eabi build-essential

至此,针对 Pico 开发的配置工作基本完成。

👇补充说明👇

对于搭载 Raspberry Pi OS 的树莓派,以上操作可以通过运行配置开发环境的脚本来更加便捷地完成。我们执行克隆命令来获取脚本,运行脚本后重启树莓派即可完成所有的配置工作,包括新建目录、下载 SDK 和示例程序、下载 Visual Studio Code 等软件,等等:

$ git clone https://github.com/raspberrypi/pico-setup.git
$ pico-setup/pico_setup.sh
$ sudo reboot

👆补充说明结束👆

现在,我们在「/home/pi/pico」目录下新建目录「myProject」:

$ cd /home/pi/pico
$ mkdir myProject
$ cd myProject

在「~/myProject」目录下,我们需要准备三个文件:

文件 1:用 C 语言编写控制 Pico 上 LED 等闪烁的「blink.c」程序,LED 灯连接的是 25 号引脚:

#include "pico/stdlib.h"
int main() {
const uint LED_PIN = 25;
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);
}
}

文件 2:创建「CMakeLists.txt」文件:

cmake_minimum_required(VERSION 3.12)
include(pico_sdk_import.cmake)
project(test_project)
pico_sdk_init()
add_executable(myProject
blink.c
)
pico_add_extra_outputs(myProject)
target_link_libraries(myProject pico_stdlib)

文件 3:从「~/pico-sdk/external」目录复制「pico_sdk_import.cmake」文件:

$ cp ../pico-sdk/external/pico_sdk_import.cmake .

准备好三个文件后,在「~/myProject」目录下新建并进入目录「build」并执行:

$ mkdir build
$ cd build
$ export PICO_SDK_PATH=../../pico-sdk
$ cmake ..
$ make

make 命令即为「编译」,它将在「~/myProject/build」目录下生成 .uf2 文件和其他文件。

4 美金就能买到的「树莓派处理器」,说说我的使用体验

make 命令完成,成功 built 了 myProject

4 美金就能买到的「树莓派处理器」,说说我的使用体验

make 命令在「build」目录下所生成的文件

现在用 Micro USB 转 USB 数据线将 Pico 和树莓派 4B 连接。按住 Pico 的开关按钮,将 Pico 通过 Micro USB 数据线与树莓派 4B 连接,随后松开按钮。此时,Pico 会被树莓派 4B 识别为「USB Mass Storage Device」。将「~/myProject/build」目录下的「myProject.uf2」文件拖入其中,即可完成烧录,Pico 上的 LED 灯便开始闪烁了。

4 美金就能买到的「树莓派处理器」,说说我的使用体验

使用 C/C++ SDK 开发 Pico

3.3. 使用 Python SDK 开发

使用 Python SDK 开发 Pico 的思路是,将 MicroPython——一款可在微处理器上运行的 Python 固件——拖拽到 Pico 中,然后将计算机上的 Python 代码传给 Pico 运行。

首先,我们 下载[9] 「pico_micropython_20210121.uf2」文件。

然后用「按按钮 - 连接 - 松开按钮」的老方法将 Pico 以「USB Mass Storage Device」与树莓派连接。向其拷贝「pico_micropython_20210121.uf2」文件。拷贝完成后,Pico 自动重启,此时「USB Mass Storage Device」消失,Pico 被识别为串口设备。

我们可以执行代码来打印树莓派所有的串口:

$ ls /dev/tty*

列表中以 /dev/ttyACM 开头的即为 Pico。

我们安装 minicom,利用它来控制串口:

$ sudo apt install minicom
$ minicom -o -D /dev/ttyACM0

此时 minicom 的命令行窗口弹出,我们可以在此输入 Python 代码,实时控制 Pico。同样还是一个 blink 程序:

4 美金就能买到的「树莓派处理器」,说说我的使用体验

4 美金就能买到的「树莓派处理器」,说说我的使用体验

使用 Python SDK 开发 Pico

在命令行中一行一行地输入代码毕竟不是长久之计。更高效和人性化的编程方式是在 IDE 中编写 Python 代码来开发 Pico,比如使用「Thonny Python IDE」。

首先安装「Thonny Python IDE」:

$ sudo apt install thonny

为「Thonny Python IDE」下载[10] 最新的 Pico 插件。

启动「Thonny Python IDE」,选择「Tools>Manage plug-ins」,选择「Install from local file」,选中所下载的 Pico 插件(.whl 文件),等待进度条走完之后点击「Close」关闭,随后重启软件。

4 美金就能买到的「树莓派处理器」,说说我的使用体验

重新启动软件后,选择「Run - Select Interpreter」,在下拉菜单中选择「Micro Python (Raspberry Pi Pico) 」,点击「OK」完成设置。现在「Thonny Python IDE」便与 Pico 连接了。

4 美金就能买到的「树莓派处理器」,说说我的使用体验

我们在主面板中编辑控制 LED 灯闪烁的完整 Python 代码,保存,此时软件弹出「Where to save to?」的弹窗,选择保存到「Raspberry Pi Pico」。保存后,点击「Run」,Pico 上的 LED 灯便开始闪烁了。

4 美金就能买到的「树莓派处理器」,说说我的使用体验

4. 搭载 RP 2040 的兄弟产品

除了本文主角 Pico,树莓派基金会也与其他合作伙伴联合开发了搭载 RP 2040 芯片的其他微处理器开发板,包括 Adafruit Feather RP 2040、Adafruit ItsyBitsy RP 2040、Arduino Nano RP2040 Connect、Pimoroni PicoSystem、Pimoroni Pico Explorer Base、SparkFun Thing Plus – RP2040、SparkFun MicroMod RP2040 Processor、SparkFun Pro Micro – RP2040 等开发板,力图开拓 RP 2040 芯片在 IoT、游戏掌机、教育领域的应用。

4 美金就能买到的「树莓派处理器」,说说我的使用体验

Arduino Nano RP2040 Connect:Raspberry Pi+Arduino,双厨狂喜!

图源:blog.arduino.cc

展开 收起
5评论

  • 精彩
  • 最新
  • 这玩意和esp32比起来没啥优势,还不带蓝牙或WiFi

    校验提示文案

    提交
  • 跟Ardino UNO比不上耍流氓吗,应该和nano比

    校验提示文案

    提交
  • 工业级的吗

    校验提示文案

    提交
  • 这东西,到底能做些啥? [敷面膜]

    校验提示文案

    提交
  • 好家伙,还没个手环性能强

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
49
扫一下,分享更方便,购买更轻松