ZephyrとラズパイPico2WでLチカしてみました。
Zephyrの環境構築から、Westのビルド、uf2でプログラムの書き込みしています。
しっかり公式の手順に従って、Lチカを進めた内容を紹介します。
ZephyrをラズパイPico2Wで始め方。Lチカしてみた
ZephyrとラズパイPico2WでLチカしてみました。
Zephyrの環境構築から、Westのビルド、uf2でプログラムの書き込みしています。
またLチカと一緒にUARTのシリアルメッセージも確認しています。
プログラムはUSBから送れるので、Lチカ単体ならUARTケーブルは不要です。
実際のテスト・デモ動画は下記です。
しっかり公式の手順に従って、Lチカを進めた内容を紹介します。
Zephyrを公式通りに環境構築
Windowsで公式の手順をcmd(コマンドプロンプト)でインストールします。
公式手順を守ってインストールします。下記を参考ください。
以上です。実行コマンドは公式ページを参照してもらいたく記載していません。
公式の手順を守ること
公式の最初に書かれている、下記注記のコマンド含めて実行することを推奨します。
Git・Cmake・7Zip・wgetが必要で、インストールしておかないとエラーが出ます。
1 |
winget install Kitware.CMake Ninja-build.Ninja oss-winget.gperf python Git.Git oss-winget.dtc wget 7zip.7zip |
インストールしておかないと、(筆者のように)下記のようにエラーが沢山でます。
(手動で入れるのも手間なので、ちゃんと公式の手順を守りましょう)
また公式の注記どおり7-Zipに環境変数のパスを通しておくこと。
パス通しておかないとsdkインストールの際にエラーが出ます。
公式の手順を守れば、sdkまで問題なくインストールできます。
Pico2WでLチカ
ラズパイPico2でLチカのデバッグを進めていきます。
ブレッドボード上にLED+抵抗(1kΩ)を置いてテストします。
UARTのメッセージも確認したい方は、UART0の箇所にシリアルケーブルも接続します。
ピンヘッダーをはんだ付け
ラズパイPico2Wのデフォルト単体で購入ですると、ピンヘッダーは付属していません。
2.54㎜ピッチのピンヘッダーをはんだ付けします
半田ごてを使って、はんだ付けをします。2.54㎜ピッチなので、難しくはないです。
ピン配置
ラズパイpico2のピン配置は下記となっています。
ラズパイ公式ページより引用しています。
https://datasheets.raspberrypi.com/picow/pico-2-w-pinout.pdf
今回はLED用にGPIO14だけでなく、UART用にUART0の箇所を使用しています。
Pico2の回路図
「Pico2W」と「Pico」ではピン配置に差分がありますのでご注意ください。
後述する元々LED用のGPIO25などが、無線用信号用に使われています。
詳細は下記公式のPico2Wの回路図を参照ください。
https://datasheets.raspberrypi.com/picow/pico-2-w-schematic.pdf
Pico2のデバイスツリーだとLチカできない
202506時点ではZephyrが「Pico2」のボードをサポートしています。
https://github.com/zephyrproject-rtos/zephyr/tree/main/boards/raspberrypi/rpi_pico2
但し、「Pico2W」だとGPIO25が使えないので、14に変更してテストしています。
(*GPIO25は無線用ICの信号に使われています。)
zephyrproject\zephyr\boards\raspberrypi\common\rpi_pico-led.dtsi
1 2 3 4 5 6 7 8 9 10 |
/* Pico and Pico 2 boards (but not Pico W) have a common LED placement. */ / { leds { compatible = "gpio-leds"; led0: led_0 { // gpios = <&gpio0 25 GPIO_ACTIVE_HIGH>; gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>; label = "LED"; }; }; |
Lチカのプログラム自体はZephyrのサンプルそのままを使用しました。
https://github.com/zephyrproject-rtos/zephyr/tree/main/samples/basic/blinky
Pico2WでのGPIO+UARTのテスト
冒頭でも紹介しましたが、デモ動画でも紹介しています。
プログラム書き込み~Lチカまでの一連の流れが分かりますので、ご参照ください。
筆者はVSCode上のターミナル環境で実行しています。
コマンドプロンプトから実行してもらっても、実行可能です。
1 2 3 4 |
zephyrproject\.venv\Scripts\activate.bat cd %HOMEPATH%\zephyrproject\zephyr west build -b rpi_pico2/rp2350a/m33 samples/basic/blinky west flash -r uf2 |
Pico2WのUSBを差し込む際に、BOOTボタンを押すことでリセットさせます。
接続先のPCでもラズパイpico2Wの存在が確認できます。
west flash -r uf2をすることで、USBからプログラムが書き込まれます。
uf2…USB Flashing Format
LEDが1秒おきに点滅を繰り返します。
UARTからシリアルメッセージも確認できます。
ボーレートを115200bpsに合わせれば、LED_stateのON/OFFが分かります。
まとめ
ZephyrとラズパイPico2WでLチカしてみました。
Zephyrの環境構築から、Westのビルド、uf2でプログラムの書き込みしています。
しっかり公式の手順に従って、Lチカを進めた内容を紹介しました。
コメント