爱笑的小姐姐 · 2021年02月22日

阿chai带你学Raspberry Pi Pico:环境搭建与简介

Pico开发环境安装

Pico可以在电脑和树莓派上做开发,阿chai在这里主要介绍在电脑上的开发环境,分为C版本与MicroPython版。阿chai建议大家使用MicroPython版本。

MicroPython环境搭建

首先需要刷固件。

可将USB将Pico连接到计算机,然后将文件拖放到其中来对Pico进行编程,官方整理了一个可下载的UF2文件。

下载MicroPython UF2文件。
按住BOOTSEL按钮,然后将Pico插入Raspberry Pi或其他计算机的USB端口。连接Pico后,释放BOOTSEL按钮。
它将安装为称为RPI-RP2的大容量存储设备。
将MicroPython UF2文件拖放到RPI-RP2卷上。您的Pico将重新启动。您现在正在运行MicroPython。

image.png
上图中的IDE是官方推荐使用Thonny,但是阿chai还是喜欢VSCode,那么下面介绍一下VSCode中搭建环境。

调试工具与使用:

$ brew install minicom
$ minicom -b 115200 -o -D /dev/cu.usbmodem0000000000001

安装MicroPython的插件:

image.png

因为upload项目是需要使用串口的,因此我们进行串口配置:

# 查看groups
$ groups

# 添加
$ sudo usermod --append --groups dialout tux

使用如下代码进行测试可以看到LED的闪烁。

from machine import Pin, Timer

led = Pin(25, Pin.OUT)
tim = Timer()
def tick(timer):
    global led
    led.toggle()

tim.init(freq=2.5, mode=Timer.PERIODIC, callback=tick)

C/C++ SDK
C/C++版本的程序比较偏向底层,开发需具备嵌入式相关知识。

首先我们下载代码并安装对应的SDK。

$ 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

添加环境变量:

export PICO_SDK_PATH=自己设置的pico-sdk路径 

调试工具与使用:

$ brew install minicom
$ minicom -b 115200 -o -D /dev/cu.usbmodem0000000000001

在VSCode中安装cmake tools:

image.png
settings中找到CMake Tools configure ,点击 CMake Tools configure 选项,往下拉, 找到 Configure Environment 、 点击添加项, 在项中写 PICO_MDK_PATH 在值中填入 SDK 的安装路径。
image.png

Cmake: Generator 中填写 NMake Makefiles。

image.png

安装交叉编译工具:

$ brew install cmake
$ brew tap ArmMbed/homebrew-formulae
$ brew install arm-none-eabi-gcc

在VSCode顶部的导航栏中选择arm的交叉编译工具即可使用。

可使用如下的程序进行测试:

#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);
    }
}

CMakeLists.txt如下:

add_executable(blink
        blink.c
        )
target_link_libraries(blink pico_stdlib)
pico_add_extra_outputs(blink)
example_auto_set_url(blink)

在 bulid 文件夹中找到对应的编译生成文件 bin elf u2f 。将 U2f 拖入到 Pico 识别出的磁盘中可以看到LED的闪烁。

Pico硬件资源介绍

Raspberry Pi Pico的开发环境我已经搭建好,接下来我们开始进入开发的正题,Pico和之前的Pi一样,也是具备一些GPIO供大家使用。

image.png

  • Raspberry Pi在英国设计的RP2040微控制器芯片
  • 双核Arm Cortex M0 +处理器,时钟频率高达133 MHz
  • 264KB的SRAM和2MB的板载闪存
  • 形模块允许直接焊接到载板
  • 具有设备和主机支持的USB 1.1
  • 低功耗睡眠和休眠模式
  • 通过USB使用大容量存储进行拖放编程
  • 26个多功能GPIO引脚
  • 2个SPI,2个I2C,2个UART,3个12位ADC,16个可控PWM通道
  • 片上准确的时钟和计时器
  • 温度感应器
  • 片上加速浮点库
  • 8个可编程I/O(PIO)状态机,用于自定义外围设备支持

Pico的内核是ARM Crotex-M0的内核,也就是说他的CPU是ARM系列的单片机,那么对应的外设资源就是IO、串口、SPI、I2C等等。那么我们学习的时候可以根据单片机的方法去学习。

除了核心板,官网还提供了一个插件的面包板,如下图所示。

image.png
支持自己的DIY,开源了外设板卡:

外设板卡.jpg

同样,核心板的原理图也开源了:

原理图.png

原文链接:https://github.com/zihan987/Raspberry-Pi-Pico/tree/main/Doc
作者:阿chai带你学AI

- The End -

推荐阅读

更多嵌入式AI技术相关内容请关注嵌入式AI专栏。
推荐阅读
关注数
18838
内容数
1374
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息