写点什么

如何用树莓派 Pico 针对 IoT 编程?

作者:高端章鱼哥
  • 2023-08-16
    福建
  • 本文字数:3619 字

    阅读完需:约 12 分钟

如何用树莓派Pico针对IoT编程?

众所周知,Raspberry Pi(树莓派)硬件 1~4 已在物联网世界中广为人知,并得到了广泛采用。而 Raspberry Pi Pico 具有较小的物理尺寸,以及相对较高的处理能力和较低的能耗,因此它也在物联网世界中占有特殊的地位,而且已经作为微控制器(MCU),受到了开发爱好者和物联网专业人士的普遍喜爱。



一直以来,Pico 得到了 Raspberry Pi 基金会的支持。该基金会是一家致力于教育事业的注册慈善机构。Raspberry Pi Pico 不但价格非常便宜,而且只需几分钟的设置便可投入使用,因此使用者无需深厚的编程知识,或需要到网上搜罗足够的文档,即可上手。下面,我将和您讨论有关 Raspberry Pi Pico 的编程功能、替代方案、以及资源。

一、Raspberry Pi Pico 系列和功能


Raspberry Pi Pico 不仅仅是一款微控制器,更是高性能的 MCU 板系列。典型的 MCU 板包括: Raspberry Pi Pico、Pico H、Pico W 以及 Pico WH。其中,Pico 和 Pico H 几乎相同,唯一的主要区别只是 Pico H 带有预焊接接头(即,连接电线的地方),而 Pico 则没有。因此,如果您想将电线连接到普通的 Pico 上,则必须自行焊接接头。


Pico W 和 Pico WH 都添加了板载 Wi-Fi 模块,可以让设备连接到互联网上。Pico W 和 Pico WH 之间的唯一区别是, WH 具有预焊接的接头。


总的说来,上述四个系列均具有以下特性:

  1. RP2040 MCU

  2. 双核 Arm Cortex M0+ 处理器

  3. 时钟速度高达 133 MHz

  4. 264 KB SRAM 和 2 MB 闪存

  5. 1 个 USB 1.1 端口

  6. 低功耗或休眠模式

  7. 26 个通用输入/输出 (GPIO) 引脚

  8. 温度感应器

  9. 2 个 SPI、2 个 I2C、2 个 UART、3 个 ADC

  10. 8 个可编程 I/O 状态机


同时,所有四种类型的 Pico 还具有板载的 LED,这对于您首次开展物联网项目来说是非常重要的。当然,如果您已经有了一些物联网和 MCU的经验,那么请跳转到下一部分。


下面,让我们从 MCU 开始。大多数 Raspberry Pi 设计都会交付出单板计算机(single board computers,SBC)。它们在尺寸上具有较高的处理能力,并且可以执行与台式计算机相同的基本操作。通常,它们使用的是基于 Linux 操作系统的 RaspberryOS。相比之下,微控制器板则不具备运行完整操作系统的能力。也就是说,在台式机或笔记本电脑上,您可以打开多个应用程序,而 MCU 一次只能运行一个应用程序。


例如,对于一个标准的智能安全摄像头而言,由于其唯一的功能就是传输视频,因此它不需要拥有完整的操作系统。实际上,Raspberry Pi Pico 操作系统是一个实时操作系统,它一次仅执行一项操作。


就处理器而言,ARM 处理器以其高能效水平,在物联网领域非常受欢迎。而 Raspberry Pi Pico 使用的 M0+ 处理器,甚至比典型的 ARM 处理器更为高效。通常,133 MHz 的时钟速度,对于处理器执行指令的速度来说,并不算特别快。不过,尽管如此,这个速度对于典型的物联网应用来说,已经足够了。作为参考,具有多个传感器和功能的智能健身设备的绝对最大时钟速度,可能达到约 300 MHz。



就设备规格而言,264 KB SRAM 上的数据只有在设备通电时才被保留。一旦设备失电、关闭或电池耗尽,那么内存里的信息将不复存在。而 2 MB 闪存里的数据即使在电源关闭后,仍会被保留在设备的存储器中。换句话说,它实际充当了设备的数据存储库。


Raspberry Pi Pico 还具有 26 个 GPIO 引脚。此处的引脚是指一个个小孔,可方便您连接外部设备。例如,您可以按需使用其中一个引脚将额外的 LED 灯连接到该板上。


注意,SPI、I2C、UART 和 ADC 分别是不同类型的输入协议/格式。凭借着丰富的多样性,您可以将 Pico 用于许多不同的项目和应用程序。最终,利用作为输入/输出组件的可编程 I/O 状态机,您可以针对不同的功能和协议进行编程。

二、Raspberry Pi Pico 的替代方案


虽然 Raspberry Pi Pico 已经成为了物联网项目的绝佳选择,但并非唯一选择。下面,我们来看看 Raspberry Pi Pico 的其他替代方案:

Arduino Uno

与具有相似物理尺寸的 Arduino Uno 板相比,Raspberry Pi Pico 显然具有更好的处理能力和更多的输入选项。例如, Pico 的最大时钟速度为 133 MHz,而 Arduino Uno 的最高时钟速度仅为 16 MHz。同时,它只有 32 KB RAM 和 16 KB 闪存。此外,Uno 比 Pico 具有更少的 I/O 引脚、更高的功耗、以及更高的价格。当然,由于它能够与 Arduino 的大型开源工具、代码库和 Arduino 集成开发环境(IDE)相兼容,因此 Arduino Uno 仍然是一款倍受欢迎的替代方案。

Raspberry Pi Zero

作为一台成熟的计算机,Raspberry Pi Zero 带有板载微处理器(MPU)而不是 MCU。它可以同时运行多个应用程序,并且具有高时钟速度、512 MB RAM 、 8 GB 闪存,以及 40 个 I/O 引脚(Pico 只有 26 个)。它也是现有的最小的 Raspberry Pi MPU。不过,它的功耗比 Raspberry Pi Pico 要高得多,而且价格也贵得多,大约需要 15 美元,而 Pico 的成本仅为 4 美元。

ESP32

Espressif 的 ESP32 MCU 系列体积虽然很小,但是处理能力和速度都是 Pico 的两倍左右。虽然该系列 MCU 的具体规格有所不同,但是与 Pico 相比,它们通常具有两个额外的 I/O 引脚、以及 2 倍的闪存。巧合的是,它们的能耗、以及价格也都是 Pico 的 2 倍。可见,Pico 可能更适合于一些初建项目的场合,而 ESP32 更适合大型商业项目。

三、对 Raspberry Pi Pico 进行编程


让我们从一个简单的入门项目开始。正如软件程序员在初次学习一门语言时,首先要编写一个简单的程序,来打印“Hello World”那样,硬件程序员也需要首先练习编写一个简单的程序,来让 LED 灯闪烁。在本例中,我们将通过设置 Raspberry Pi Pico ,以按照设定的时间间隔,打开和关闭 LED 灯。


值得注意的是,Raspberry Pi Pico 可响应多种编码语言,其中包括 C、C++ 和 MicroPython。此处的 MicroPython 是传统 Python 的更轻量级、更简单的版本,也是 Raspberry Pi Pico 爱好者最常用的语言。因此,如果您已经掌握了 Python 的话,则可以轻松地在 Raspberry Pi Pico 上开始使用 MicroPython。

硬件

对于这个简单的项目,您除了需要开发板和 USB 线之外,无需其他任何东西。您可以使用计算机来提供电源,并对设备进行编程。当然,如果您想继续将 Pico 用于其他项目的话,则需要将其连接到外部电源上,以便脱离计算机持续工作。


同时,您可以在 Amazon 或其他网站上,获取 Raspberry Pi Pico 的入门级套件。此类套件通常会提供 Raspberry Pi Pico MCU 板、USB 电缆、面包板、一些 LED 和电阻器、以及各种教程资源。此处的面包板是一块带孔的塑料板。您可以将 Pico 插入其中,然后将其他电气组件(包括电源)连接到该板上。

软件

您需要在计算机上安装相应的软件,才能对 Raspberry Pi Pico 进行编程。在大多数项目中,开发者都会选用 Thonny 集成开发环境。您可以通过链接:https://thonny.org/来下载和安装 Thonny。同时,您可以通过连接:https://micropython.org/download/rp2-pico/,来下载和安装 MicroPython。

第 1 步:连接计算机

请将 USB 线连接到设备的 USB 端口。然后按下 Raspberry Pi Pico 板上的白色小按钮(即,启动选择按钮)。按住该按钮,将 USB 的另一端插入计算机,然后松开该按钮。至此,在文件资源管理器中,您应该能看到一个新的名为“RP1-RP2”的连接设备。

第 2 步:在 Pico 上安装 MicroPython

在文件资源管理器中,请点开 RP1-RP2 设备,并将已下载好的 MicroPython 文件粘贴到此处。

第 3 步:为 Thonny 设置解释器

打开 Thonny 软件。请在“运行”工具栏下单击“选择解释器”,并在其下拉菜单的各个选项中选择“MicroPython (Raspberry Pico)”,再单击“确定”。

第 4 步:编写程序

请将如下代码键入或粘贴到 Thonny 软件的主窗口中:

Pythonimport machineimport utimeled = machine.Pin(25, machine.Pin.OUT)while True:   led.value(1)  utime.sleep(1)  led.value(0)  utime.sleep(1)
复制代码

这段代码会让 LED 灯亮起一秒钟,然后熄灭一秒钟,并无限循环下去,直到设备电源被拔掉。

第 5 步:运行程序

接下来,请点击运行按钮(上面有播放符号)。电脑屏幕的弹窗会询问您需要将文件保存到何处,以及文件名称。此时,请单击“Raspberry Pi Pico”即可。注意,在命名文件时,请确保在末尾添加 .py,以便 MCU 将开发语言识别为 MicroPython。例如,您可以将文件命名为 LED.py。当然,如果您希望该文件在每次插入设备时都能自动运行的话,则请将其命名为 main.py。这将告知 Pico 在启动时立即运行本程序。请记得单击“确定”。


至此,如果您能看到 LED 灯定期闪烁的话,那么恭喜您在 Raspberry Pi Pico 上已成功完成了第一个编程项目。

五、小结


综上所述,Raspberry Pi Pico 是一种便宜且简单的选择,适用于从学习编程,到原型设计,再到从头开始开始创建物联网设备的整个过程。当然,您也可以在各种灵活多变的场景中,通过编程让其发挥更多、更丰富的功能。

发布于: 刚刚阅读数: 5
用户头像

还未添加个人签名 2023-06-19 加入

还未添加个人简介

评论

发布
暂无评论
如何用树莓派Pico针对IoT编程?_树莓派_高端章鱼哥_InfoQ写作社区