Raspberry Pi Pico SDK v1.5(Pico setup for Windows)Windows環境構築
Raspberry Pi Pico SDKを使用して、Windows上でRaspberry Pi Pico(RP2040)の開発環境を構築する方法について。
公式の資料は以下の通りです。
- 公式PDF:Raspberry Pi Pico をセットアップしよう
- 公式PDF:Raspberry Pi Pico Datasheet
- 公式PDF:Raspberry Pi Pico C/C++ SDK
Raspberry Pi Pico SDKのインストール方法
「Raspberry Pi Pico をセットアップしよう」の48ページ付近にある通り、Windows上で開発を行うためには以下のソフトウェアが必要です。
- ARM GCC コンパイラー
- CMake
- Build Tools for Visual Studio 2019
- Python 3.9
- Git
これらのソフトウェアをPDFの説明通りに個別に導入するのも良いのですが、非常に手間がかかります。
そのため全てをひとまとめにしたインストールパッケージ(Pico setup for Windows)を使用して開発環境を整えてみましょう。
Pico setup for Windowsのダウンロード
Pico setup for Windows をダウンロードしましょう。
「Download the latest release」リンクからダウンロードしてもいいですし、リリース一覧から「pico-setup-windows-x64-standalone.exe」をダウンロードしても良いと思います。
2024年7月現在ですと、v1.5.1が最新のようです。
こちらに含まれているソフトは、PDF中で指定されているものと少し違う点があります。
特に、ビルドシステムとしてのコマンドが、「Build Tools for Visual Studio 2019」ではなく「Ninja」となっているため、PDFの説明通りにnmakeコマンド(Microsoft Program Maintenance Utility [NMAKE.EXE])を使用しようとしてもこのパッケージには収録されておらず、一部コマンドを変更する必要があります。
ビルド方法については後述します。
Pico setup for Windowsのインストール
ダウンロードしてきた「pico-setup-windows-x64-standalone.exe」を実行します。
「Next」で進めて「Install」でインストールを開始します。
インストールが終了すると、サンプルファイルを配置するか聞かれます。
大変参考になるので、チェックを入れたままにしておきましょう。
デフォルトだと「%USERPROFILE%\Documents\Pico-v1.5.1」に配置されるようです。
サンプルファイルの配置とビルドが始まります。
終わったら適当なキーを押して終了です。
ドキュメントフォルダにサンプル類が配置されました。
スタートメニュー内にはこのようなアプリが増えます。
(加えて、Visual Studio Codeもインストールされています)
基本的にはショートカットとなっていて、以下のようなコマンドが実行されるものになっています。
「Pico - Developer Command Prompt」
C:\Windows\system32\cmd.exe /k "C:\Program Files\Raspberry Pi\Pico SDK v1.5.1\pico-env.cmd"
「Pico - Developer PowerShell」
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoExit -ExecutionPolicy Bypass -File "C:\Program Files\Raspberry Pi\Pico SDK v1.5.1\pico-env.ps1"
「Pico - Visual Studio Code」
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -File "C:\Program Files\Raspberry Pi\Pico SDK v1.5.1\pico-code.ps1"
「Pico - Developer Command Prompt」ショートカットを見ればわかりますが、インストールフォルダ内のバッチファイルを実行し、環境変数を設定しているだけです。
そのため、「Pico - Developer Command Prompt」ショートカットを使用せずにコマンドプロンプトを立ち上げた場合でも、インストールフォルダ内のバッチファイルを実行すれば同様の環境になります。
毎回手間かと思われますが、個人的にはシステム環境変数のPathを汚すことなく使えるこの方法のほうが良いと思っています。
(コマンドを実行する際にPath環境変数に設定されたフォルダを探して実行していきます。そのため、無秩序に増やすとコマンド名が被って意図する方を実行できなかったり手間が増え、環境が汚れてしまいます)
サンプルのビルド
先程のインストール時にビルドも行われているため、必要ない操作ではありますが、ビルド方法の説明として再度ビルドを行ってみます。
スタートメニューより「Pico - Developer Command Prompt」を開く、もしくは先ほどの手順でコマンドプロンプトを起動し環境変数をセットしておきます。
公式では開発環境としてVisual Studio Codeを推奨していますし、実際にインストールもされますが、今回は使用せずにビルドを行います。
カスタマイズ性が高いところに人気があると思いますが、個人的にはGUIアプリとしてはUIや設定が雑然としすぎに見え、vimrcを育てるのと同じような煩雑なイメージを持ってしまっています。
C:\Program Files\Raspberry Pi\Pico SDK v1.5.1>cd "%PICO_examples_PATH%"
C:\Users\pcjpnet\Documents\Pico-v1.5.1\pico-examples>cd build
C:\Users\pcjpnet\Documents\Pico-v1.5.1\pico-examples\build>cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Debug --fresh
C:\Users\pcjpnet\Documents\Pico-v1.5.1\pico-examples\build>ninja
前述の通り、nmakeコマンドではなくninjaコマンドを使用します。
インストール時にbuildフォルダが出来てしまっているので、mkdir buildコマンドは実行せずに、cd buildでbuildフォルダに移動してしまいます。
これでサンプルファイル全てがビルドされるので、「C:\Users\(ユーザー名)\Documents\Pico-v1.5.1\pico-examples\build」フォルダ内に書き込み対象のファイルが完成しているはずです。
例えばBlinkプロジェクト「C:\Users\(ユーザー名)\Documents\Pico-v1.5.1\pico-examples\build\blink\blink.uf2」をUSB経由でRPI-RP2ドライブに書き込めばLEDが点滅すると思われます。
応用:Arduinoプロジェクトからもビルド出来るようにする
Arduinoからビルドを行うと、以下のような宣言が追加されるようです。
#define ARDUINO 10607
#define ARDUINO_ARCH_RP2040 1
#define ARDUINO_API_H
#define ARDUINO_API_VERSION 10200
#define ARDUINO_GENERIC_RP2040 1
#define ARDUINO_VARIANT "generic"
#define __ARDUINO_STRINGS__
#define ARDUINO_PICO_VERSION_STR "3.9.3"
#define ARDUINO_PICO_MAJOR 3
#define ARDUINO_PICO_MINOR 9
#define ARDUINO_PICO_REVISION 3
Pico SDKでのビルドと比較すると、この宣言があるかどうかで処理を変えることが可能と思われます。
応用:GitHub Actionsでの自動ビルド