Raspberry Pi Pico Arduino核心,适用于所有RP2040板子
这是一个将RP2040(Raspberry Pi Pico处理器)移植到Arduino生态系统中的项目。它使用裸露的Raspberry Pi Pico SDK和一个自定义的GCC 10.3/Newlib 4.0工具链。
文档
更详细的使用信息请参见https://arduino-pico.readthedocs.io/en/latest/,以及例子。
支持的板子
- Raspberry Pi Pico
- Adafruit Feather RP2040
- Adafruit ItsyBitsy RP2040
- Adafruit KB2040
- Adafruit Macropad RP2040
- Adafruit QTPy RP2040
- Adafruit STEMMA Friend RP2040
- Adafruit Trinkey RP2040 QT
- Arduino Nano RP2040 Connect
- 骏马制造者Pi RP2040
- 骏马制造者Nano RP2040
- DeRuiLab FlyBoard2040 Core
- DFRobot 甲壳虫 RP2040
- Invector Labs Challenger RP2040 WiFi
- Invector Labs Challenger RP2040 WiFi/BLE
- Invector Labs Challenger NB RP2040 WiFi
- Invector Labs Challenger RP2040 LTE
- Invector Labs Challenger RP2040 LoRa
- Invector Labs RPICO32
- Melopero Shake RP2040
- 思德晓 RP2040
- Solder Party RP2040印章
- SparkFun ProMicro RP2040
- SparkFun Thing Plus RP2040
- uPesy RP2040 DevKit
- WIZnet W5100S-EVB-Pico
- WIZnet W5500-EVB-Pico
- WIZnet WizFi360-EVB-Pico
- 通用型(可配置闪存,I/O引脚)
通过Arduino Board Manager安装
Windows用户。请不要使用Windows商店版本的实际Arduino应用程序,因为它在检测连接的Pico板时有问题。使用 "Windows ZIP "或普通的 "Windows "可执行文件(EXE)直接从arduino.cc。并允许它安装它建议的任何设备驱动程序。否则可能检测不到Pico板。另外,如果尝试2.0测试版的Arduino,请事先安装1.8版本,以确保所需的设备驱动程序存在。(更多细节见#20)。
打开Arduino IDE,进入文件->首选项。
在弹出的对话框中,在 "Additional Boards Manager URLs "栏中输入以下URL。
点击 "确定",关闭对话框。
在IDE中进入工具->板卡->板卡管理器
在搜索框中输入 "pico "并选择 "添加"。
通过GIT安装
要通过GIT安装(对于最新和最大的版本)。
mkdir -p ~/Arduino/hardware/pico
git clone https://github.com/earlephilhower/arduino-pico.git ~/Arduino/hardware/pico/rp2040
cd ~/Arduino/hardware/pico/rp2040
git submodule update --init
cd pico-sdk
git submodule update --init
cd ../tools
python3 ./get.py
同时安装Arduino和CMake
Tom's Hardware提供了一个非常好的关于在Windows和Linux上安装arduino-pico
的文章,可在www.tomshardware.com/how-to/prog…。
如果你按照Les的步骤,你也会有一个功能齐全的基于CMake
的环境,如果你超越了Arduino的生态系统,可以在上面建立Pico应用程序。
上传草图
要上传你的第一个草图,你需要按住BOOTSEL按钮,同时把Pico插到你的电脑上。然后点击上传按钮,草图应该被传输并开始运行。
在第一次上传后,这应该是没有必要的,因为arduino-pico
核心有自动复位支持。选择Arduino工具->端口->串行端口菜单中显示的适当的串行端口一次(这个设置将坚持下去,不需要为多次上传而触动)。这个选择允许自动复位工具识别适当的设备来复位。点击上传按钮,你的草图应该上传并运行。
在某些情况下,Pico会遇到硬挂,它的USB端口不会对自动重置请求作出反应。如果发生这种情况,只需按照最初的程序,在插入Pico时按住BOOTSEL按钮,进入ROM引导程序。
上传文件系统图像
Pico的板载闪存文件系统LittleFS可以让你从草图目录中上传一个文件系统图像,供你的草图使用。从以下网站下载所需的插件
要安装,请按照
关于详细的使用信息,请查看ESP8266 repo文件(忽略SPIFFS的相关说明),网址是
用Picoprobe上传sketches
如果你已经建立了Raspberry Pi Picoprobe,你可以使用OpenOCD来处理你的草图上传和用GDB进行调试。
在Windows下,本地管理用户应该能够自动访问Picoprobe端口,但在Linux下udev
,必须被告知该设备并允许普通用户访问。
要在Ubuntu(和其他使用udev
的操作系统)上设置对Picoprobes的用户级访问。
echo 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="0004", GROUP="users", MODE="0666"' | sudo tee -a /etc/udev/rules.d/98-PicoProbe.rules
sudo udevadm control --reload
第一行创建一个带有USB供应商和Picoprobe ID的文件,并告诉UDEV允许用户完全访问它。第二行导致udev
加载这个新规则。注意,在你第一次创建这个文件时,你需要拔掉并重新插入你的设备,以使udev能够正确地建立设备节点。
一旦Picoprobe的权限设置正确,然后在工具菜单中选择板子 "Raspberry Pi Pico (Picoprobe)",像平常一样上传。
用pico-debug上传sketches
pico-debug与Picoprobe的不同之处在于,pico-debug是一个虚拟调试舱,在你运行代码的同一RP2040上并排运行;因此,你只需要一块RP2040板而不是两块。pico-debug与Picoprobe的不同之处在于,pico-debug是基于标准的;它使用CMSIS-DAP协议,这意味着即使不是专门为Raspberry Pi Pico编写的软件也可以支持它。pico-debug使用OpenOCD来处理你的草图上传,调试可以通过CMSIS-DAP功能的调试器来完成,包括GDB。
在Windows和macOS下,任何用户都应该能够自动访问pico-debug,但在Linux下udev
,必须被告知该设备并允许普通用户访问。
要在Ubuntu(和其他使用udev
的操作系统)上设置对所有CMSIS-DAP适配器的用户级访问。
echo 'ATTRS{product}=="*CMSIS-DAP*", MODE="664", GROUP="plugdev"' | sudo tee -a /etc/udev/rules.d/98-CMSIS-DAP.rules
sudo udevadm control --reload
第一行创建一个文件,识别所有的CMSIS-DAP适配器,并告诉UDEV让用户完全访问它。第二行使udev
,以加载这个新的规则。注意,在你第一次创建这个文件时,你需要拔掉并重新插入你的设备,以使udev能够正确地建立设备节点。
一旦CMSIS-DAP的权限设置正确,然后在工具菜单中选择板子 "Raspberry Pi Pico(pico-debug)"。
当第一次将USB端口连接到你的电脑时,你必须将pico-debug-gimmecache.uf2复制到Pi Pico上,以便将pico-debug加载到RAM中;之后,像平常一样上传。
使用Picoprobe/pico-debug、OpenOCD和GDB进行调试
安装的工具包括OpenOCD(在pqt-openocd目录下)和GDB(在pqt-gcc目录下)的一个版本。这些工具可以用来在交互式窗口中运行GDB,正如Raspberry Pi基金会的Pico入门手册中所记载的。对于pico-debug,将Pico入门手册中的raspberrypi-swd和picoprobe的OpenOCD参数"-f interface/raspberrypi-swd.cfg -f target/rp2040.cfg "或"-f interface/picoprobe.cfg -f target/rp2040.cfg "分别改为"-f board/pico-debug.cfg"。
功能介绍
- Adafruit TinyUSB Arduino(USB鼠标、键盘、闪存驱动器、通用HID、CDC串行、MIDI、WebUSB、其他)
- 通用的Arduino USB串口、键盘和鼠标模拟
- 文件系统(LittleFS和SD/SDFS)
- 多核支持(setup1()和loop1())。
- 通过菜单进行超频和降频
- 数字写/读、移入/移出、音调、模拟写(PWM)/读、温度
- 外围设备。SPI主控,Wire(I2C)主/从,双路UART,模拟EEPROM,I2S音频输入,I2S音频输出,Servo
- 通过USB串口输出printf(即调试)。
RP2040的PIO状态机(SM)用于产生无抖动。
- 舵机
- 音调
- I2S输入
- I2S输出
- 软件UART(串行端口)
网络上的教程
这里有一些覆盖面和额外的使用教程的链接arduino-pico
-
File::类取自ESP8266。见https://arduino-esp8266.readthedocs.io/en/latest/filesystem.html
-
Arduino对Pi Pico的支持可用!Pico的速度有多快?-youtu.be/-XHh17cuH5E
-
预发布的Adafruit QT Py RP2040 -www.youtube.com/watch?v=sfC…
-
Adafruit Feather RP2040运行LCD + TMP117 -www.youtube.com/watch?v=fKD…
-
用韩语演示舵机和I2C -cafe.naver.com/arduinoshie…
许可证和信用
- Arduino IDE和ArduinoCore-API是由Arduino团队开发和维护的。集成开发环境是根据GPL授权的。
- 基于RP2040 GCC的工具链是根据GPL授权的。
- Pico-SDK是由Raspberry Pi (Trading) Ltd开发的,在BSD 3-Clause许可下授权。
- Arduino-Pico的核心文件是根据LGPL许可的。
- LittleFS库由ARM有限公司编写,在BSD 3条款许可下发布。
- UF2CONV.PY是由微软公司编写的,在MIT许可下发布。
- 一些文件系统代码取自ESP8266 Arduino Core,在LGPL下许可。
- FreeRTOS是Amazon.com, Inc.或其附属机构的版权,并在MIT许可下发布。