아두이노-피코
모든 RP2040 및 RP2350 보드용 Raspberry Pi Pico Arduino 코어
이는 Arduino를 RP2040(Raspberry Pi Pico 프로세서) 및 RP2350(Raspberry Pi Pico 2 프로세서)에 대한 포트입니다. 이는 기본 Raspberry Pi Pico SDK와 사용자 정의 GCC 14.2/Newlib 4.3 도구 체인을 사용하고 ARM 및 RISC-V 코어를 지원합니다.
선적 서류 비치
자세한 사용 정보는 예제와 함께 https://arduino-pico.readthedocs.io/en/latest/를 참조하세요.
기여
끌어오기 요청 제출 및 라이브러리나 스케치를 이 코어로 포팅하는 방법에 대한 자세한 내용은 기여 가이드를 읽어보세요.
지원되는 보드
- 라즈베리파이 피코
- 라즈베리파이 피코W
- 라즈베리 파이 피코 2
- 0xCB 헬리오스
- 아다프루트 깃털 RP2040
- 아다프루트 깃털 RP2040 SCORPIO
- Adafruit ItsyBitsy RP2040
- 아다프루트 KB2040
- 아다프루트 매크로패드 RP2040
- 아다프루트 메트로 RP2040
- 아다프루트 QTPy RP2040
- Adafruit STEMMA 친구 RP2040
- Adafruit Trinkey RP2040 QT
- 암켄 버니
- 암켄 레벨롭
- 암켄 레벨롭 플러스
- 암켄 레벨롭 eS
- Architeuthis Flux 점퍼리스
- Architeuthis Flux 점퍼리스 V5
- 아두이노 나노 RP2040 연결
- 아트론샵 RP2 나노
- 브레드스틱 라즈베리
- BridgeTek IDM2040-7A
- BridgeTek IDM2040-43A
- Cytron IRIV IO 컨트롤러
- 사이트론 메이커 파이 RP2040
- 사이트론 메이커 나노 RP2040
- 사이트론 메이커 우노 RP2040
- 사이트론 모션 2350 Pro
- 데이터노이즈 PicoADK v1
- 데이터노이즈 PicoADK v2(RP2350)
- 데그즈 수이보 RP2040
- DeRuiLab 플라이보드2040 코어
- DF로봇 비틀 RP2040
- ElectronicCats 헌터캣 NFC
- EVN 알파
- 익스트림일렉트로닉스 RC2040
- GroundStudio 마블 피코
- 인벡터 연구소 챌린저 RP2040 WiFi
- 인벡터 연구소 챌린저 RP2040 WiFi/BLE
- 인벡터 연구소 챌린저 RP2040 WiFi6/BLE
- 인벡터 랩 챌린저 NB RP2040 WiFi
- 인벡터랩스 챌린저 RP2040 LTE
- 인벡터 연구소 챌린저 RP2040 LoRa
- 인벡터 연구소 챌린저 RP2040 SubGHz
- 인벡터 연구소 챌린저 RP2040 SD/RTC
- 인벡터 연구소 챌린저 RP2040 UWB
- 인벡터 연구소 챌린저 RP2350 BConnect
- 인벡터 랩스 챌린저 RP2350 WiFi/BLE
- 인벡터 연구소 RPICO32
- 멜로페로 쿠키 RP2040
- 멜로페로 쉐이크 RP2040
- METE HOCA 아카나 R1
- 네코시스템즈 BL2040 Mini
- 올리멕스 RP2040-Pico30
- 뉴산 아치
- 널비트 Bit-C PRO
- 피모로니 PGA2040
- 피모로니 피코 플러스 2
- 피모로니 피코 플러스 2W
- 피모로니 플라즈마2040
- 피모로니 Tiny2040
- 피모로니 Tiny2350
- 핀트로닉스 핀맥스
- RAK무선 RAK11300
- Redscorp RP2040-아인
- 레드스코프 RP2040-ProMini
- 씨-피크로
- 시드 인디케이터 RP2040
- XIAO RP2040 참조
- XIAO RP2350 참조
- 실리콘인지 RP2040-심
- 솔더 파티 RP2040 스탬프
- 솔더 파티 RP2350 스탬프
- 솔더파티 RP2350 스탬프 XL
- SparkFun MicroMod RP2040
- SparkFun ProMicro RP2040
- SparkFun ProMicro RP2350
- SparkFun Thing Plus RP2040
- SparkFun Thing Plus RP2350
- uPesy RP2040 개발 키트
- VCC-GND YD-RP2040
- 비야랩 미즈 RP2040
- 웨이브쉐어 RP2040 제로
- 웨이브쉐어 RP2040 원
- 웨이브쉐어 RP2040 플러스
- 웨이브쉐어 RP2040 LCD 0.96
- 웨이브쉐어 RP2040 LCD 1.28
- Waveshare RP2040 매트릭스
- 웨이브쉐어 RP2040 파이제로
- WIZnet W5100S-EVB-피코
- WIZnet W5100S-EVB-Pico2
- WIZnet W5500-EVB-Pico
- WIZnet W5500-EVB-Pico2
- WIZnet W55RP20-EVB-피코
- WIZnet WizFi360-EVB-Pico
- 일반 RP2040(구성 가능한 플래시, I/O 핀)
- 일반 RP2350(구성 가능한 플래시, I/O 핀)
특징
- Adafruit TinyUSB Arduino(USB 마우스, 키보드, 플래시 드라이브, 일반 HID, CDC 직렬, MIDI, WebUSB, 기타)
- 키보드, 마우스, 조이스틱 및 가상 직렬을 갖춘 PicoW(클래식 및 BLE)의 Bluetooth
- Bluetooth Classic 및 BLE HID 마스터 모드(BT 키보드, 마우스 또는 조이스틱에 연결)
- 일반 Arduino USB 직렬, 키보드, 조이스틱 및 마우스 에뮬레이션
- WiFi (Pico W, ESP32 기반 ESPHost, Atmel WINC1500)
- 이더넷(유선 WizNet W6100, WizNet W5500, WizNet W5100, ENC28J60)
- HTTP 클라이언트 및 서버(웹서버)
- SSL/TLS/HTTPS
- OTA(Over-the-Air) 업그레이드
- 파일 시스템(LittleFS 및 SD/SDFS)
- 멀티코어 지원(setup1() 및 loop1())
- FreeRTOS SMP 지원
- 메뉴에서 오버클러킹 및 언더클러킹
- 디지털쓰기/읽기, ShiftIn/Out, 톤, 아날로그쓰기(PWM)/읽기, 온도
- DMA 및 내장 ADC를 사용한 아날로그 스테레오 오디오
- PWM 하드웨어를 사용한 아날로그 스테레오 오디오 출력
- PicoW의 Bluetooth A2DP 오디오 소스(출력) 및 싱크(입력)
- 데이터 로거용 USB 드라이브 모드(SingleFileDrive, FatFSUSB)
- 주변 장치: SPI 마스터/슬레이브, Wire(I2C) 마스터/슬레이브, 듀얼 UART, 에뮬레이트된 EEPROM, I2S 오디오 입력/출력, 서보
- USB 직렬을 통한 printf(예: 디버그) 출력
- PSRAM 전역 및 힙의 투명한 사용(RP2350에만 해당)
- RP2350에 대한 ARM 또는 RISC-V(Hazard3) 지원
RP2040 PIO 상태 머신(SM)은 지터 없는 생성을 위해 사용됩니다.
- 서보
- 톤
- I2S 입력
- I2S 출력
- 소프트웨어 UART(직렬 포트)
Arduino 보드 관리자를 통해 설치
Windows 관련 참고사항
실제 Arduino 애플리케이션의 Windows Store 버전은 연결된 Pico 보드를 감지하는 데 문제가 있으므로 사용하지 마십시오. https://arduino.cc에서 직접 "Windows ZIP" 또는 일반 "Windows" 실행 파일(EXE) 다운로드를 사용하세요. 제안된 모든 장치 드라이버를 설치할 수 있도록 허용합니다. 그렇지 않으면 Pico 보드가 감지되지 않을 수 있습니다. 또한 2.0 베타 Arduino를 시험해 보는 경우 필요한 장치 드라이버가 있는지 확인하기 위해 릴리스 1.8 버전을 미리 설치하십시오. (자세한 내용은 #20을 참조하세요.)
Linux 관련 참고사항
flatpak(다양한 Linux 배포판의 "App Store"에서 자주 사용됨)을 사용하여 Arduino를 설치하면 호스트에 대한 액세스가 제한됩니다. 이로 인해 다음과 같은 오류 메시지와 함께 업로드가 실패할 수 있습니다.
Scanning for RP2040 devices
...
No drive to deploy.
이 문제가 발생하면 다른 방식으로 Arduino를 설치하거나 다음 명령을 사용하여 flatpak 샌드박스 기능을 재정의한 다음 Arduino를 다시 시작해야 합니다.
flatpak override --user --filesystem=host:ro cc.arduino.IDE2
설치
Arduino IDE를 열고 파일->기본 설정으로 이동합니다.
팝업 대화 상자에서 "추가 보드 관리자 URL" 필드에 다음 URL을 입력합니다.
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
확인을 눌러 대화 상자를 닫습니다.
IDE에서 도구->보드->보드 관리자로 이동합니다.
검색 상자에 "pico"를 입력하고 "추가"를 선택합니다.
GIT를 통해 설치
Windows 사용자: Windows에서 git
통해 설치하기 전에 이 링크의 지침을 읽고 따르십시오. Win32 긴 경로가 활성화되지 않고 이를 사용하도록 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
스케치 업로드
첫 번째 스케치를 업로드하려면 Pico를 컴퓨터에 연결하는 동안 BOOTSEL 버튼을 누르고 있어야 합니다. 그런 다음 업로드 버튼을 누르면 스케치가 전송되어 실행되기 시작합니다.
첫 번째 업로드 후에는 arduino-pico
코어가 자동 재설정을 지원하므로 이 작업이 필요하지 않습니다. Arduino Tools->Port->Serial Port 메뉴에 표시된 적절한 직렬 포트를 한 번 선택합니다(이 설정은 고정되며 여러 번 업로드하는 경우에는 터치할 필요가 없습니다). 이 선택을 통해 자동 재설정 도구는 재설정할 적절한 장치를 식별할 수 있습니다. 업로드 버튼을 누르면 스케치가 업로드되고 실행됩니다.
어떤 경우에는 Pico가 갑자기 멈추어 USB 포트가 자동 재설정 요청에 응답하지 않는 경우가 있습니다. 이런 일이 발생하면 Pico를 연결하는 동안 BOOTSEL 버튼을 누르고 ROM 부트로더로 들어가는 초기 절차를 따르십시오.
파일 시스템 이미지 업로드
Pico용 온보드 플래시 파일 시스템인 LittleFS를 사용하면 스케치에서 사용할 파일 시스템 이미지를 스케치 디렉터리에서 업로드할 수 있습니다. 다음에서 필요한 플러그인을 다운로드하세요.
- https://github.com/earlephilhower/arduino-pico-littlefs-plugin/releases
설치하려면 다음 지침을 따르세요.
- https://github.com/earlephilhower/arduino-pico-littlefs-plugin/blob/master/README.md
자세한 사용법 정보는 다음에서 제공되는 ESP8266 저장소 문서(SPIFFS 관련 참고 사항 무시)를 확인하세요.
- https://arduino-pico.readthedocs.io/en/latest/fs.html
Picoprobe/Debugprobe를 사용하여 스케치 업로드
Raspberry Pi Picoprobe를 구축한 경우 OpenOCD를 사용하여 스케치 업로드를 처리하고 GDB로 디버깅할 수 있습니다.
Windows에서는 로컬 관리자가 Picoprobe 포트에 자동으로 액세스할 수 있어야 하지만 Linux에서는 udev
에 장치에 대한 정보를 제공하고 일반 사용자 액세스를 허용해야 합니다.
Ubuntu(및 udev
사용하는 기타 OS)에서 Picoprobe에 대한 사용자 수준 액세스를 설정하려면:
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="0004", MODE="660", GROUP-"plugdev"' | sudo tee -a /etc/udev/rules.d/98-PicoProbe.rules
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="000a", MODE="660", GROUP="plugdev"' | sudo tee -a /etc/udev/rules.d/98-PicoProbe.rules
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="000f", MODE="660", GROUP="plugdev"' | sudo tee -a /etc/udev/rules.d/98-PicoProbe.rules
sudo udevadm control --reload
sudo udevadm trigger -w -s usb
첫 번째 줄은 Picoprobe의 USB 공급업체 및 제품 ID와 일치하는 /dev
에 장치 파일을 생성하고 전역 읽기+쓰기 권한을 활성화합니다. 두 번째 줄은 udev
이 새로운 규칙을 로드하도록 합니다. 세 번째 줄은 커널이 새로운 udev
규칙을 실행하게 하는 "장치 변경" 이벤트를 생성하도록 요청합니다.
어떤 이유로든 장치 파일이 나타나지 않으면 USB 연결을 수동으로 뽑았다가 다시 연결한 후 다시 확인하세요. dmesg
의 출력은 장치 파일이 없는 경우 유용한 진단을 제공할 수 있습니다.
Picoprobe 권한이 제대로 설정되면 도구 메뉴에서 "Raspberry Pi Pico(Picoprobe)" 보드를 선택하고 정상적으로 업로드합니다.
Picoprobe, OpenOCD 및 GDB를 사용한 디버깅
설치된 도구에는 OpenOCD(pqt-openocd 디렉터리에 있음) 및 GDB(pqt-gcc 디렉터리에 있음) 버전이 포함되어 있습니다. 이는 Raspberry Pi Foundation의 Pico 시작하기 매뉴얼에 설명된 대로 대화형 창에서 GDB를 실행하는 데 사용될 수 있습니다. git
설치 디렉터리에서 ./system/openocd/bin/openocd -f ./lib/rp2040/picoprobe_cmsis_dap.tcl
또는 ./system/openocd/bin/openocd -f ./lib/rp2350/picoprobe_cmsis_dap.tcl
명령줄을 사용합니다. .
라이선스 및 크레딧
- Arduino IDE 및 ArduinoCore-API는 Arduino 팀에서 개발하고 유지 관리합니다. IDE는 GPL에 따라 라이센스가 부여됩니다.
- RP2040 GCC 기반 툴체인은 GPL에 따라 라이센스가 부여됩니다.
- Pico-SDK는 Raspberry Pi (Trading) Ltd에 의해 제작되었으며 BSD 3-Clause 라이센스에 따라 라이센스가 부여되었습니다.
- Arduino-Pico 코어 파일은 LGPL에 따라 라이센스가 부여됩니다.
- ARM Limited에서 작성하고 BSD 3 절 라이센스에 따라 릴리스된 LittleFS 라이브러리입니다.
- UF2CONV.PY는 Microsoft Corporation에 의해 제작되었으며 MIT 라이센스에 따라 라이센스가 부여되었습니다.
- ESP8266 Arduino Core에서 가져온 네트워킹 및 파일 시스템 코드이며 LGPL에 따라 라이센스가 부여됩니다.
- MIT 라이센스에 따라 배포되는 Micropython 프로젝트의 AP 호스트 모드용 DHCP 서버입니다.
- FreeRTOS는 Amazon.com, Inc. 또는 그 계열사의 저작권이며 MIT 라이선스에 따라 배포됩니다.
- lwIP는 (c) 스웨덴 컴퓨터 과학 연구소이며 BSD 라이선스에 따라 라이선스가 부여됩니다.
- Thomas Pornin이 작성한 BearSSL 라이브러리는 MIT 라이센스에 따라 배포됩니다.
- UZLib은 저작권 (c) 2003 Joergen Ibsen이며 zlib 라이센스에 따라 배포됩니다.
- LEAmDNS는 여러 저자에게 저작권이 있으며 MIT 라이센스에 따라 배포됩니다.
- http-parser의 저작권은 Joyent, Inc. 및 기타 노드 기여자에게 있습니다.
- ESP32 WebServer에서 수정된 WebServer 코드이며 저작권은 (c) 2015 Ivan Grokhotkov 및 기타입니다.
- Xoshiro-cpp는 저작권 (c) 2020 Ryo Suzuki이며 MIT 라이선스에 따라 배포됩니다.
- FatFS 하위 수준 파일 시스템 코드는 Copyright (C) 2024, ChaN, 모든 권리 보유입니다.
- Matthew Conte가 원본 Espressif 포크에서 가져온 PSRAM용 TLSF 메모리 관리자는 Matthew Conte의 저작권이며 MIT 라이센스에 따라 라이센스가 부여됩니다.
- ESPHost 라이브러리는 관리자에 의해 LGPL 라이센스를 받았습니다.
-얼 F. 필하워(Earle F. Philhower) 3세
[email protected]