Arduino-ピコ
Raspberry Pi Pico Arduino コア、すべての RP2040 および RP2350 ボード用
これは、RP2040 (Raspberry Pi Pico プロセッサ) および RP2350 (Raspberry Pi Pico 2 プロセッサ) への Arduino のポートです。ベア Raspberry Pi Pico SDK とカスタム GCC 14.2/Newlib 4.3 ツールチェーンを使用し、ARM および RISC-V コアをサポートします。
ドキュメント
詳しい使用方法については、https://arduino-pico.readthedocs.io/en/latest/ と例を参照してください。
貢献する
プル リクエストの送信とライブラリまたはスケッチのこのコアへの移植の詳細については、「貢献ガイド」を参照してください。
サポートされているボード
- ラズベリーパイピコ
- ラズベリーパイピコW
- ラズベリーパイピコ2
- 0xCB ヘリオス
- アダフルーツフェザー RP2040
- Adafruit フェザー RP2040 SCORPIO
- Adafruit ItsyBitsy RP2040
- アダフルーツKB2040
- Adafruit マクロパッド RP2040
- Adafruit メトロ RP2040
- Adafruit QTPy RP2040
- Adafruit STEMMA フレンド RP2040
- Adafruit Trinkey RP2040 QT
- アムケンバニー
- アムケン・リベロップ
- アムケン リベロップ プラス
- アムケン・リベロップ・エス
- Architeuthis Flux ジャンパーレス
- アーキテクチャーフラックス ジャンパーレス V5
- Arduino Nano RP2040接続
- ArtronShop RP2 Nano
- ブレッドスティック ラズベリー
- BridgeTek IDM2040-7A
- BridgeTek IDM2040-43A
- Cytron IRIV IO コントローラー
- Cytron Maker Pi RP2040
- サイトロンメーカーナノ RP2040
- サイトロンメーカーウノ RP2040
- Cytron モーション 2350 プロ
- Datanoise PicoADK v1
- Datanoise PicoADK v2 (RP2350)
- デグズスイボ RP2040
- DeRuiLab FlyBoard2040 コア
- DFロボットビートル RP2040
- ElectronicCats ハンターキャット NFC
- EVN アルファ
- エクストリームエレクトロニクス RC2040
- グラウンドスタジオ マーブル ピコ
- Invector Labs チャレンジャー RP2040 WiFi
- Invector Labs チャレンジャー RP2040 WiFi/BLE
- Invector Labs チャレンジャー RP2040 WiFi6/BLE
- Invector Labs チャレンジャー NB RP2040 WiFi
- Invector Labs チャレンジャー RP2040 LTE
- Invector Labs チャレンジャー RP2040 LoRa
- Invector Labs チャレンジャー RP2040 サブ GHz
- Invector Labs チャレンジャー RP2040 SD/RTC
- Invector Labs チャレンジャー RP2040 UWB
- Invector Labs チャレンジャー RP2350 BConnect
- Invector Labs チャレンジャー RP2350 WiFi/BLE
- Invector Labs RPICO32
- メロペロクッキー RP2040
- メロペロシェイク RP2040
- メテホカ アカナ R1
- ネコシステム BL2040 ミニ
- オリメックス RP2040-ピコ30
- ニュースン・アーキ
- nullbits Bit-C PRO
- ピモローニ PGA2040
- ピモローニピコプラス2
- ピモローニ ピコプラス 2W
- ピモローニプラズマ2040
- ピモローニ Tiny2040
- ピモローニ Tiny2350
- ピントロニクス・ピンマックス
- RAKワイヤレス RAK11300
- レッドスコープ RP2040-Eins
- Redscorp RP2040-ProMini
- シーピクロ
- シードインジケーター RP2040
- XIAO RP2040を参照
- シード XIAO RP2350
- シリコグニション RP2040-シム
- ソルダーパーティー RP2040 スタンプ
- ソルダーパーティー RP2350 スタンプ
- ソルダーパーティー RP2350 スタンプXL
- SparkFun MicroMod RP2040
- SparkFun プロマイクロ RP2040
- SparkFun プロマイクロ RP2350
- スパークファン シング プラス RP2040
- スパークファン シング プラス RP2350
- uPesy RP2040 開発キット
- VCC-GND YD-RP2040
- ヴィヤラボミズ RP2040
- ウェーブシェア RP2040 ゼロ
- ウェーブシェア RP2040 1
- ウェーブシェア RP2040 プラス
- ウェーブシェア RP2040 LCD 0.96
- ウェーブシェア RP2040 LCD 1.28
- ウェーブシェア RP2040 マトリックス
- ウェーブシェア RP2040 PiZero
- WIZnet W5100S-EVB-ピコ
- WIZnet W5100S-EVB-Pico2
- WIZnet W5500-EVB-ピコ
- WIZnet W5500-EVB-Pico2
- WIZnet W55RP20-EVB-ピコ
- WIZnet WizFi360-EVB-ピコ
- 汎用 RP2040 (構成可能なフラッシュ、I/O ピン)
- 汎用 RP2350 (構成可能なフラッシュ、I/O ピン)
特徴
- Adafruit TinyUSB Arduino (USB マウス、キーボード、フラッシュ ドライブ、汎用 HID、CDC シリアル、MIDI、WebUSB、その他)
- PicoW の Bluetooth (クラシックおよび BLE) とキーボード、マウス、ジョイスティック、および仮想シリアル
- Bluetooth クラシックおよび BLE HID マスター モード (BT キーボード、マウス、またはジョイスティックに接続)
- 汎用 Arduino USB シリアル、キーボード、ジョイスティック、およびマウスのエミュレーション
- WiFi (Pico W、ESP32 ベースの ESPHost、Atmel WINC1500)
- イーサネット (有線 WizNet W6100、WizNet W5500、WizNet W5100、ENC28J60)
- HTTP クライアントおよびサーバー (Web サーバー)
- SSL/TLS/HTTPS
- 無線 (OTA) アップグレード
- ファイルシステム (LittleFS および SD/SDFS)
- マルチコアのサポート (setup1() およびloop1())
- FreeRTOS SMP のサポート
- メニューからのオーバークロックとアンダークロック
- デジタル書き込み/読み取り、シフトイン/アウト、トーン、アナログ書き込み(PWM)/読み取り、温度
- DMA と内蔵 ADC を使用したアナログ ステレオ オーディオ入力
- PWMハードウェアを使用したアナログステレオオーディオ出力
- PicoW の Bluetooth A2DP オーディオ ソース (出力) とシンク (入力)
- データロガーのUSBドライブモード(SingleFileDrive、FatFSUSB)
- 周辺機器: SPI マスター/スレーブ、ワイヤー (I2C) マスター/スレーブ、デュアル UART、エミュレートされた EEPROM、I2S オーディオ入力/出力、サーボ
- USB シリアル経由の printf (つまりデバッグ) 出力
- PSRAM グローバルとヒープの透過的な使用 (RP2350 のみ)
- RP2350 の ARM または RISC-V (Hazard3) のサポート
RP2040 PIO ステート マシン (SM) は、ジッターのないものを生成するために使用されます。
- サーボ
- トーン
- I2S入力
- I2S出力
- ソフトウェア UART (シリアル ポート)
Arduino Boards Manager経由でインストールする
Windows 固有の注意事項
実際の Arduino アプリケーションの Windows ストア バージョンは、接続された Pico ボードの検出に問題があるため、使用しないでください。 https://arduino.cc から直接ダウンロードした「Windows ZIP」またはプレーンの「Windows」実行可能ファイル (EXE) を使用します。そして、提案されたデバイスドライバーのインストールを許可します。そうしないと、Pico ボードが検出されない可能性があります。また、Arduino 2.0 ベータ版を試す場合は、必要なデバイス ドライバーが存在することを確認するために、事前にリリース 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
「OK」を押してダイアログを閉じます。
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
詳しい使用方法については、次の URL で入手可能な 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) で Picoprobes へのユーザーレベルのアクセスを設定するには:
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
に作成し、グローバルな読み取り + 書き込み権限を有効にします。 2 行目では、 udev
にこの新しいルールをロードさせます。 3 行目は、新しいudev
ルールを実行させる「デバイス変更」イベントを生成するようカーネルに要求します。
何らかの理由でデバイス ファイルが表示されない場合は、USB 接続を手動で取り外して再度接続し、再度確認してください。デバイス ファイルが存在しない場合は、 dmesg
からの出力で有用な診断結果が得られる可能性があります。
Picoprobe の権限が適切に設定されたら、[ツール] メニューでボード「Raspberry Pi Pico (Picoprobe)」を選択し、通常どおりアップロードします。
Picoprobe、OpenOCD、および GDB を使用したデバッグ
インストールされるツールには、OpenOCD (pqt-openocd ディレクトリ内) および GDB (pqt-gcc ディレクトリ内) のバージョンが含まれます。これらは、Raspberry Pi Foundation の Pico Getting Started マニュアルに記載されているように、対話型ウィンドウで 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 条項ライセンスに基づいてライセンスされています。
- Arduino-Pico コア ファイルは LGPL に基づいてライセンスされています。
- LittleFS ライブラリは ARM Limited によって作成され、BSD 3 条項ライセンスに基づいてリリースされています。
- UF2CONV.PY は Microsoft Corporation によって提供され、MIT ライセンスに基づいてライセンスされています。
- ネットワークとファイルシステムのコードは ESP8266 Arduino Core から取得され、LGPL に基づいてライセンスされています。
- MIT ライセンスに基づいて配布される、Micropython プロジェクトの AP ホスト モード用の DHCP サーバー。
- FreeRTOS の著作権は Amazon.com, Inc. またはその関連会社にあり、MIT ライセンスに基づいて配布されます。
- lwIP は (c) スウェーデンコンピュータサイエンス研究所であり、BSD ライセンスに基づいてライセンスされています。
- Thomas Portin によって作成された BearSSL ライブラリは、MIT ライセンスに基づいて配布されています。
- UZLib の著作権は 2003 Joergen Ibsen にあり、zlib ライセンスに基づいて配布されています。
- LEamDNS の著作権は複数の作者にあり、MIT ライセンスに基づいて配布されています。
- http-parser の著作権は Joyent, Inc. および他の Node 貢献者にあります。
- Web サーバー コードは ESP32 Web サーバーから変更されており、著作権は 2015 Ivan Grokhotkov およびその他にあります。
- Xoshiro-cpp の著作権は (c) 2020 Rio Kawasaki であり、MIT ライセンスに基づいて配布されています。
- FatFS の低レベル ファイルシステム コードは、著作権 (C) 2024、ChaN、全著作権所有です。
- Matthew Conte によるオリジナルの Espressif フォークからの PSRAM 用 TLSF メモリ マネージャーの著作権は Matthew Conte にあり、MIT ライセンスに基づいてライセンスされています。
- ESPHost ライブラリは、メンテナによって LGPL ライセンスが付与されています。
-アール・F・フィルハワー三世
[email protected]