Arduino-Pico

Ядро Arduino для Raspberry Pi Pico, для всех плат на RP2040 и RP2350
Это порт Arduino на RP2040 (процессор Raspberry Pi Pico) и RP2350 (процессор Raspberry Pi Pico 2). Он использует голый Raspberry Pi Pico SDK и пользовательский набор инструментов GCC 14.3/Newlib 4.5 и поддерживает ядра ARM и RISC-V.
Документация
См. https://arduino-pico.readthedocs.io/en/latest/ вместе с примерами для получения более подробной информации об использовании.
Внесение вклада
Прочитайте Руководство по внесению вклада для получения дополнительной информации об отправке pull request'ов и портировании библиотек или скетчей в это ядро.
Поддерживаемые платы
- Raspberry Pi Pico
- Raspberry Pi Pico W
- Raspberry Pi Pico 2
- Raspberry Pi Pico 2W
- 0xCB Helios
- Adafruit Feather RP2040
- Adafruit Feather RP2040 SCORPIO
- Adafruit Floppsy RP2040
- Adafruit ItsyBitsy RP2040
- Adafruit KB2040
- Adafruit Macropad RP2040
- Adafruit Metro RP2040
- Adafruit Metro RP2350
- Adafruit QTPy RP2040
- Adafruit STEMMA Friend RP2040
- Adafruit Trinkey RP2040 QT
- Amken Bunny
- Amken Revelop
- Amken Revelop Plus
- Amken Revelop eS
- Architeuthis Flux Jumperless
- Architeuthis Flux Jumperless V5
- Arduino Nano RP2040 Connect
- ArtronShop RP2 Nano
- BIGTREETECH SKR-Pico
- Breadstick Raspberry
- BridgeTek IDM2040-7A
- BridgeTek IDM2040-43A
- Cytron IRIV IO Controller
- Cytron Maker Pi RP2040
- Cytron Maker Nano RP2040
- Cytron Maker Uno RP2040
- Cytron Motion 2350 Pro
- Datanoise PicoADK v1
- Datanoise PicoADK v2 (RP2350)
- Degz Suibo RP2040
- DeRuiLab FlyBoard2040 Core
- DFRobot Beetle RP2040
- ElectronicCats Hunter Cat NFC
- EVN Alpha
- ExtremeElectronics RC2040
- GeeekPi RP2040 Plus
- GroundStudio Marble Pico
- Invector Labs Challenger RP2040 WiFi
- Invector Labs Challenger RP2040 WiFi/BLE
- Invector Labs Challenger RP2040 WiFi6/BLE
- Invector Labs Challenger NB RP2040 WiFi
- Invector Labs Challenger RP2040 LTE
- Invector Labs Challenger RP2040 LoRa
- Invector Labs Challenger RP2040 SubGHz
- Invector Labs Challenger RP2040 SD/RTC
- Invector Labs Challenger RP2040 UWB
- Invector Labs Challenger+ RP2350 BConnect
- Invector Labs Challenger+ RP2350 WiFi/BLE
- Invector Labs Challenger+ RP2350 NB-IoT
- Invector Labs RPICO32
- Melopero Cookie RP2040
- Melopero Shake RP2040
- METE HOCA Akana R1
- Makerbase MKSTHR36
- Makerbase MKSTHR42
- MyMakers RP2040
- Neko Systems BL2040 Mini
- Newsan Archi
- nullbits Bit-C PRO
- Olimex Pico2XL
- Olimex Pico2XXL
- Olimex RP2040-Pico30
- PicoLume Transceiver
- Pimoroni PGA2040
- Pimoroni Pico Plus 2
- Pimoroni Pico Plus 2W
- Pimoroni Plasma2040
- Pimoroni Plasma2350
- Pimoroni Plasma2350W
- Pimoroni Servo2040
- Pimoroni Tiny2040
- Pimoroni Tiny2350
- Pintronix PinMax
- PCBCupid Glyph 2040
- PCBCupid Glyph Mini 2040
- RAKwireless RAK11300
- Redscorp RP2040-Eins
- Redscorp RP2040-ProMini
- Sea-Picro
- Seeed Indicator RP2040
- Seeed XIAO RP2040
- Seeed XIAO RP2040 Plus
- Seeed XIAO RP2350
- Silicognition RP2040-Shim
- Solder Party RP2040 Stamp
- Solder Party RP2350 Stamp
- Solder Party RP2350 Stamp XL
- Soldered Electronics NULA Ethernet W55RP20
- Soldered Electronics NULA RP2350
- SparkFun IoT RedBoard RP2350
- SparkFun MicroMod RP2040
- SparkFun ProMicro RP2040
- SparkFun ProMicro RP2350
- SparkFun Thing Plus RP2040
- SparkFun Thing Plus RP2350
- SparkFun XRP Controller
- uPesy RP2040 DevKit
- VCC-GND YD-RP2040
- Viyalab Mizu RP2040
- Waveshare RP2040 Zero
- Waveshare RP2040 One
- Waveshare RP2040 Plus
- Waveshare RP2040 LCD 0.96
- Waveshare RP2040 LCD 1.28
- Waveshare RP2040 LoRa
- Waveshare RP2040 Matrix
- Waveshare RP2040 PiZero
- Waveshare RP2350 Zero
- Waveshare RP2350 PiZero
- Waveshare RP2350 Plus
- Waveshare RP2350 Plus W
- Waveshare RP2350 LCD 0.96
- WIZnet W5100S-EVB-Pico
- WIZnet W5100S-EVB-Pico2
- WIZnet W5500-EVB-Pico
- WIZnet W5500-EVB-Pico2
- WIZnet W55RP20-EVB-Pico
- WIZnet W6300-EVB-Pico
- WIZnet W6300-EVB-Pico2
- WIZnet WizFi360-EVB-Pico
- Generic RP2040 (configurable flash, I/O pins)
- Generic RP2350 (configurable flash, I/O pins)
Возможности
- Adafruit TinyUSB Arduino (USB-мышь, клавиатура, флеш-накопитель, универсальный HID, CDC Serial, MIDI, WebUSB и другие)
- Bluetooth на PicoW (Classic и BLE) с клавиатурой, мышью, джойстиком и виртуальным последовательным портом
- Режим ведущего HID для Bluetooth Classic и BLE (подключение BT-клавиатуры, мыши или джойстика)
- Эмуляция универсального Arduino USB Serial, Keyboard, Joystick и Mouse
- Wi-Fi (Pico W, ESPHost на базе ESP32, Atmel WINC1500)
- Ethernet (проводной WizNet W6300, WizNet W6100, WizNet W5500, WizNet W5100, ENC28J60)
- HTTP-клиент и сервер (WebServer)
- SSL/TLS/HTTPS
- Обновления по воздуху (OTA)
- Файловые системы (LittleFS и SD/SDFS)
- Поддержка многоядерности (setup1() и loop1())
- Поддержка FreeRTOS SMP
- Разгон и снижение тактовой частоты из меню
- digitalWrite/Read, shiftIn/Out, tone, analogWrite(PWM)/Read, temperature
- Аналоговый стереовход с использованием DMA и встроенного АЦП
- Аналоговый стереовыход с использованием аппаратного ШИМ
- Источник (выход) и приёмник (вход) Bluetooth A2DP на PicoW
- Режим USB-накопителя для регистраторов данных (SingleFileDrive, FatFSUSB)
- Периферия: SPI ведущий/ведомый, Wire(I2C) ведущий/ведомый, два UART, эмулируемая EEPROM, аудиовход/выход I2S, Servo
- Вывод printf (т.е. отладочной информации) через USB-последовательный порт
- Прозрачное использование глобальных переменных и кучи в PSRAM (только RP2350)
- Поддержка ARM или RISC-V (Hazard3) для RP2350
- Полухостовый (semihosted) доступ к последовательному порту и файловой системе
- Поддержка профилирования GPROF
Государственные машины PIO (SMs) RP2040 используются для генерации без джиттера:
- Сервоприводов
- Тонов
- Входа I2S
- Выхода I2S
- Программных UART (последовательных портов)
- Программных SPI
Установка через менеджер плат Arduino
Примечания для Windows
Пожалуйста, не используйте версию приложения Arduino из Windows Store,
поскольку у неё возникают проблемы с обнаружением подключённых плат Pico. Используйте загрузку "Windows ZIP" или обычного
исполняемого файла (EXE) "Windows" напрямую с https://arduino.cc и разрешите установку всех предлагаемых
драйверов устройств. В противном случае плата Pico может не обнаруживаться. Кроме того, если вы пробуете
бета-версию Arduino 2.0, пожалуйста, предварительно установите версию 1.8, чтобы убедиться, что необходимые драйверы
устройств присутствуют. (См. #20 для подробностей.)
Примечания для Linux
Установка Arduino с помощью flatpak (часто используемого "Магазинами приложений" в различных дистрибутивах
Linux) означает ограниченный доступ к хосту. Это может привести к сбоям загрузки
с сообщениями об ошибках, подобными следующим:
Scanning for RP2040 devices
...
No drive to deploy.
Если вы столкнулись с этим, вам нужно либо установить Arduino другим способом, либо отключить
функцию песочницы flatpak с помощью следующей команды, а затем перезапустить Arduino.
flatpak override --user --filesystem=host:ro cc.arduino.IDE2
Установка
Откройте IDE Arduino и перейдите в Файл->Настройки.
В появившемся диалоговом окне введите следующий URL в поле "Дополнительные ссылки для менеджера плат":
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json

Нажмите OK, чтобы закрыть диалоговое окно.
Перейдите в Инструменты->Платы->Менеджер плат в IDE.
Введите "pico" в поле поиска и выберите "Добавить":