はじめに
以前は、Ubuntuをインストールした専用のLinuxマシンでRaspberry Pi Picoの開発を行っていました。しかし、ここ2~3年でWSL(Windows Subsystem for Linux)も非常に発展してきているようなので、Windows上で開発が完結できないか試してみました。
結論から言うと、Windows上のWSL2環境でRaspberry Pi Pico Wの開発が問題なく可能でした。
今回はその環境構築の手順をまとめておきます。
ここでは、Raspberry Pi Pico wは2ではありません。
手順1:WSL環境の構築
まず、Windows上でWSLを使えるように有効化(Activate)します。
基本的にwsl --install
コマンドで必要な機能のインストールからUbuntuの導入まで一括で行ってくれるはずのようですが、なぜかうまくいかなかったようなので、各ステップを個別に実行して導入しました。
以下の操作は管理者権限で起動したPowerShellで行います。
$ wsl --install
WSLを利用するために必要な「Windows Subsystem for Linux」と「仮想マシン プラットフォーム」を有効化します。
現在の状態は以下のコマンドで確認できます。
$ dism.exe /online /get-features | select-string "Linux","Virtual" -Context 0,1
もし無効 (State: Disabled) になっていれば、以下のコマンドで有効化します。
$ dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart $ dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
上記コマンドを実行したら、一度Windowsを再起動してください。
再起動後、WSLのデフォルトバージョンを2に設定し、Ubuntuをインストールします。
$ wsl --set-default-version 2 $ wsl --install -d Ubuntu
インストールが完了したら、以下のコマンドでWSLの状態を確認します。STATEがRunningになっていれば、Ubuntuが正常に起動しています。
$ wsl -l -v NAME STATE VERSION Ubuntu Running 2
手順2:Raspberry Pi Pico W 開発環境の構築
次に、起動したUbuntu上でPicoの開発環境を構築します。
公式のPico SDKとサンプルコードのリポジトリを取得します。
$ git clone https://github.com/raspberrypi/pico-sdk.git --branch master $ cd pico-sdk $ git submodule update --init $ cd .. $ git clone https://github.com/raspberrypi/pico-examples.git --branch master
git submodule update --init
は、SDKが必要とするライブラリをダウンロードするためのコマンドです。
pico-examples
ディレクトリに移動し、ビルド用のディレクトリを作成します。
その後、cmake
を実行してビルド環境をセットアップします。
$ cd pico-examples $ mkdir build $ cd build $ export PICO_SDK_PATH=../../pico-sdk $ cmake -DPICO_BOARD=pico_w -DWIFI_SSID="Your Network" -DWIFI_PASSWORD="Your Password" ..
cmake
コマンドの引数は以下の通りです。ご自身の環境に合わせて設定してください。
-DPICO_BOARD=pico_w // ビルド対象のボードをPico Wに指定する -DWIFI_SSID="Your Network" // 接続するWi-FiのSSIDを指定する -DWIFI_PASSWORD="Your Password" // Wi-Fiのパスワードを指定する
ここでは例として、Raspberry Pi Pico wでLチカを行う wifi/blink サンプルをビルドしてみます。
$ cd pico_w/wifi/blink $ make -j4
これでビルドが開始されます。make -j4 のように -j オプションを付けると、CPUのコアを複数使って並列でビルドするため、処理が高速になります。
ビルドが完了すると、カレントディレクトリに blink.uf2 というファイルが生成されます。このファイルを、BOOTSELモードで起動したPicoにドラッグ&ドロップすればプログラムが書き込まれます。
また、同様にwifi/wifi_scan
を書き込んでみると、Wi-Fiも動いていることが確認できました。
ここで、SerialはUSBポートではなく、UARTとなりますので、別途USBシリアルを用意して受信する必要があります。
USBケーブルからシリアルを出力するには設定を変更する必要があります。
(書き込みはUSBケーブルですが、ここでのUSBケーブルは電源を供給しているだけ。)