とりあえずの記録

はじめは同学科の人向けのナレッジまとめでした

MacでPico SDKを用いてPico WをLチカ・Hello, World!

Raspberry Pi Pico Wに対して,MacでPico SDKを利用するためのセットアップ方法を示します.
本文中で特段の言及がない限り,基本的には以下の公式ドキュメントを参照しています.
もし引っかかるポイントがあれば,こちらをご確認ください.

https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf

https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-c-sdk.pdf

https://datasheets.raspberrypi.com/picow/connecting-to-the-internet-with-pico-w.pdf

Homebrewのインストール

まずはTerminal.appを開いてください.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

VSCodeのインストール,セットアップ

brew update
brew install visual-studio-code
code

VSCodeが立ち上がりますので,左のバーから拡張機能 "CMake Tools" をインストール,有効化してください.

ツールチェーンのインストール

brew install cmake
brew tap ArmMbed/homebrew-formulae
brew install arm-none-eabi-gcc

概ね10分かかりました.

なお,Apple Siliconを搭載したMacでは,Rosettaを有効化しなければならない場合があるようです.
その場合は以下のコマンドでインストールできるとのことです.

/usr/sbin/softwareupdate --install-rosetta --agree-to-license

Pico SDKのセットアップ

git clone https://github.com/raspberrypi/pico-sdk.git
cd pico-sdk
git checkout 1.5.1

git submodule update --init
cd ..

サンプルリポジトリのセットアップ

git clone https://github.com/raspberrypi/pico-examples.git
cd pico-examples
git checkout sdk-1.5.1

mkdir .vscode
vi .vscode/settings.json

JSONファイルの中に,以下を書き込みます.

{
  "cmake.environment": {
  "PICO_SDK_PATH": "../../pico-sdk",
  "PICO_BOARD": "pico_w",
  "WIFI_SSID": "ご自宅のWi-Fi SSID(2.4GHz)",
  "WIFI_PASSWORD": "ご自宅のWi-Fiパスワード"
  },
  "C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools"
}

ここではviを使用しましたが,emacsやnano,cotなどお好みのエディタをご利用ください.

VSCodeのセットアップ

code .

上記コマンドを叩くと,VSCodeリポジトリが開かれます.(ピリオドをお忘れなく)
画面下のバーより,[🛠No Kit Selected]をクリック,GCC for arm-none-eabi を選択します.

もしGCC for arm-none-eabiが見つからなかったら,[Scan for Kits]を選択した上で改めて[🛠No Kit Selected]をクリック,GCC for arm-none-eabi が表示されないか試してみてください.

ここまでできたら,画面下のバーに出現する[⚙Build]をクリックすることで,Raspberry Pi Pico W に転送可能なuf2バイナリが生成されます.
私の環境では2分程度かかりました.

Lチカしてみる

本体の[BOOT SEL]を押しながらMicro USBケーブルでMacと接続します.
接続したらボタンは離してOKです.

MacでFinderを開き,左のバーに[RPI-RP2]という名前の外部デバイスが表示されたことを確認し,これをクリックします.

VSCodeに戻り,左のバーからPICO-EXAMPLES/build/pico_w/wifi/blink/picow_blink.uf2を見つけて,これをRPI-RP2の中にドラッグ&ドロップします.

自動的にマウントが外れて再起動し,Pico Wの本体LEDが点滅するはずです.
もしうまくいかないときは,buildログを読んでみるとよいです.
先頭のほうに,結構見やすく状況を出力してくれています.

なお,PICO-EXAMPLES/build/blink/blink.uf2は動作しません
これは,PicoではGPIO 25で内蔵LEDにアクセスできていたものの,Pico Wでは当該GPIOはWi-Fiチップにより使用されているためです.
Wi-Fiチップの機能を利用してblinkさせるため,pico_w/wifiの中に配置されていると思ってよさそうです.

参考) Raspberry Pi Pico Wのハードウェアとソフトウェアを覗いてみる - Qiita

もしPICO-EXAMPLES/build/pico_w/wifi/blink/picow_blink.uf2が見つからない場合は,環境変数が設定されていない(settings.jsonのミス) or 依存関係にあるライブラリが見つからない(git submodule update --init忘れ)などが考えられます.

Hello, World!

一旦Micro USBケーブルを抜き,改めて本体の[BOOT SEL]を押しながらMicro USBケーブルでMacと接続し,ボタンを離します.

MacでFinderを開き,左のバーから[RPI-RP2]をクリックします.

VSCodeに戻り,今度は左のバーからPICO-EXAMPLES/build/hello_world/usb/hello_usb.uf2を見つけて,これをRPI-RP2の中にドラッグ&ドロップします.

MacでTerminal.appを開き,

ls /dev/tty.usb*

でPico Wを見つけます.
(おそらく1つだけ表示されるはずです.もし複数あるときは,ls -l /dev/tty.usb* として時刻が最も新しいものを覚えておきます.)

その上で,

screen /dev/見つけたデバイス

とすることで接続できます.例: screen /dev/tty.usbmodem14401

Hello, world!
Hello, world!
Hello, world!
Hello, world!

と表示できていればOKです.

終了するには,Ctrl+A → Ctrl+K → Y です.
Command⌘キーではないのでご注意を.

うまく接続できないときは,USBケーブルを一度抜き差しするか,sudo screen 〜のようにsudoをつけて試してみてください.

[おまけ] Micro USBケーブルの抜き差しが億劫

タクトスイッチが1個 or ジャンパケーブルが1本あれば,いちいちUSBケーブルを抜き差しすることなく書き込み・再起動が可能になります.

tamasan238.hatenablog.com