はじめに
ラズベリーパイPico(RPi Pico)が入手できた。
開発環境としてラズパイ4が必要とされているが実際のところそうでもなさそうなのでUbuntu 20.04に開発環境(SDK)を構築しLチカを動かしてみる。
pico_setup.shについて
C/C++の開発環境を構築するためにpico_setup.sh
というものが提供されている。
試しにUbuntu 20.04で動かしてみる。
$ wget https://raw.githubusercontent.com/raspberrypi/pico-setup/master/pico_setup.sh $ chmod +x ./pico_setup.sh $ ./pico_setup.sh
下記のようにエラーになる。
vscode.deb 100%[===============================================================================================================>] 57.86M 8.89MB/s in 6.6s 2021-02-04 13:19:47 (8.82 MB/s) - `vscode.deb' へ保存完了 [60667760/60667760] パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 注意、'./vscode.deb' の代わりに 'code:armhf' を選択します インストールすることができないパッケージがありました。おそらく、あり得 ない状況を要求したか、(不安定版ディストリビューションを使用しているの であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移 動されていないことが考えられます。 以下の情報がこの問題を解決するために役立つかもしれません: 以下のパッケージには満たせない依存関係があります: code:armhf : 依存: libnss3:armhf (>= 2:3.26) しかし、インストールすることができません 依存: apt:armhf しかし、インストールすることができません 依存: libxkbfile1:armhf しかし、インストールすることができません 依存: libsecret-1-0:armhf しかし、インストールすることができません 依存: libgtk-3-0:armhf (>= 3.10.0) しかし、インストールすることができません 依存: libxss1:armhf しかし、インストールすることができません 依存: libgbm1:armhf しかし、インストールすることができません E: 問題を解決することができません。壊れた変更禁止パッケージがあります。
しかしこれはARM環境向けのVSCode
をインストールしようとして依存関係が解決できないというエラーなので、エディタ以外のSDKのセットアップ自体は正しく終了している。
スクリプトを確認したところ、VSCodeのインストールのあとはラズパイのUARTの有効化処理なので、こちらも必ず実行しなければならないものではない。
PCを再起動するか下記のコマンドで環境変数を読み込みすると、SDKが使用できるようになる。
$ source ~/.bashrc
RPi PicoをPCと接続
ボード側のBOOTSEL
ボタンを押しながら、USBケーブルでPCと接続すると自動的に/media/${USER}/RPI-RP2
にマウントされる。
プログラムの書き込み
拡張子がuf2
のファイルをRPI-RP2
に書き込むと、ボードへの転送からリセットまで行われる。
つまり下記のような流れで処理が行われる。
RPI-RP2
へ書き込み- PCからRPi Picoへプログラムを転送
- RPi Picoのリセット
- 書き込まれたプログラムが開始
Blink(Lチカ)
${PICO_EXAMPLES_PATH}/build/blink
にblink.uf2
が生成されているのでこれを先ほどマウントされたRPI-RP2
にコピーする。
$ cp ${PICO_EXAMPLES_PATH}/build/blink/blink.uf2 /media/${USER}/RPI-RP2
オンボードの緑色のLEDがチカチカするようになる。
Hello World(USB-UART版)
${PICO_EXAMPLES_PATH}/build/hello_world/usb
にhello_usb.uf2
が生成されているのでこれを先ほどマウントされたRPI-RP2
にコピーする。
$ cp ${PICO_EXAMPLES_PATH}/build/hello_world/usb/hello_usb.uf2 /media/${USER}/RPI-RP2
ボード上でこのプログラムが実行されるとPCで/dev/ttyACMx
というデバイスが検出されるようになる。
$ dmesg | grep ACM 3085:[166271.475390] cdc_acm 1-1:1.0: ttyACM0: USB ACM device
筆者の実行環境では/dev/ttyACM0
が認識された。これをminicom
などの端末で開く。
$ minicom -D /dev/ttyACM0
すると次のように表示される。
minicom へようこそ 2.7.1 オプション: I18n コンパイルされた日時は: Dec 23 2019, 02:06:26. ポート /dev/ttyACM0, 14:59:27 CTRL-@ Z を押すと、説明画面になります。 Hello, world! Hello, world! Hello, world! ... (省略) ...
まとめ
Ubuntuでも問題なくRPi Pico向けのSDKを構築し、プログラムをボードに書き込むことができる。
pico_setup.shはVSCodeのインストールでエラーになるが、SDKのセットアップ自体は完了しているので問題はない。