はじめに
Raspberry Pi Pico(以下Pico)を購入したので、C言語でLチカできるまでを紹介します。
USBメモリとして認識される
PicoはPCに接続するとUSBメモリととして認識されます。
接続する際に、下図のBOOTSELボタンを押しながら接続することで外付けドライブとして認識されます。 BOOTSELを押さないで接続した場合は、以前のプログラムが実行されます。 BOOTSELを押しながら接続した際には、以前のプログラムは消えてしまうようです。
プログラムの書き込み
プログラムのビルドに関しては後述しますが、Picoにプログラムを書き込む際は、先に述べましたようにUSB接続して見える外部ドライブとしてのPicoにビルドして出来上がったファイルをドラッグ&ドロップまたはコピペするだけとなります。
専用のソフト等は要らず、非常にシンプルです。
M1 Mac Book Proに開発環境を整える
開発はC言語で行うことを考えます。
ARMのGCCをインストールする必要があります。またcmakeもインストールする必要がありますが、そのためにHomebrewを使います。 ところがM1 MacはappleシリコンになったためそれまでのIntelプロセッサ対応のHomebrewではうまくいかない事があり、Homebrewのインストールから始めるのが良いです。
Homebrewをインストールする
現時点は過渡期で、今までのIntelプロセッサ向けとAppleシリコン向けのHomebrewが共存しているので、Appleシリコン向けは別のディレクトリにインストールしてPATHを通して使います。
手順は以下の通りです。シェルを開いて以下の手順を踏みます
cd ~ cd /opt mkdir homebrew curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
ホームに戻り適当なエディタで.bashrc等に以下を追加
export PATH=/opt/homebrew/bin:$PATH
一度、.bashrcを実行してupdateもしておく
cd ~ source .bushrc brew update
cmake,GCCインストール
Homebrewが入ってしまえば、あとは以下のコマンドを実行すればcmakeとGCCがインストールされます。
brew install cmake brew tap ArmMbed/homebrew-formulae brew install arm-none-eabi-gcc
SDKとサンプルプログラムの導入
SDKがないとレジスタ直接叩くしか手がなくなるので、SDKをインストールするのとサンプルが豊富なので、そちらも持ってきます。
cd ~ mkdir pico cd pico git clone -b master https://github.com/raspberrypi/pico-sdk.git cd pico-sdk git submodule update --init cd .. git clone -b master https://github.com/raspberrypi/pico-examples.git
ホームに戻り適当なエディタで.bashrc等に以下を追加
export PICO_SDK_PATH=~/pico/pico-sdk
一度、.bashrcを実行しておく
cd ~ source .bushrc
サンプルコードblinkのビルド
Lチカをするサンプルblinkをビルドします。
プログラムのビルドはcmakeでmakefileを作って、makeでビルドする。 cmakeの作法を正しく理解していないので、ここからは完全に受け売りになります。
buildディレクトリの作成
ソースコードが入っているディレクトリがある同じ階層にbuildディレクトリを作ります。 僕の環境なら先ほど導入したサンプルプログラムの入っているディレクトリpico-examplesになります。
cd ~ cd /pico/pico-examples mkdir build
ビルドの実行
作ったbuildディレクトリに移動してcmakeを実行します。その後、blinkフォルダに移動してmake実行してソースをコンパイルしてリンクしてもらいます。
cd build cmake .. cd blink make
makeには-j4オプションをつけて高速化を適宜します。(数値へ並列可能数以内にする)
書き込み
ビルドが終わると、拡張子がuf2のblink.uf2ファイルができています。
PicoをBOOTSELボタンを押しながらUSB接続すると、以下のようなドライブが現れれます。
ドライブの中は次のようになっていて、そこに先程のblink.uf2をドラッグ&ドロップすることがプログラムを書き込むことになります。
書き込みが終わると、自動的にアンマウントになります。このとき、勝手にドライブ外すなとOSに怒られますが。Picoの動作には問題ないようです。
動作している様子が以下です。
Raspberry Pi Picoサンプルプログラムblinkの動作
おわりに
発売されて間もない、Raspberry Pi Picoのソースをビルドして書き込んで実行できるまでを紹介しました。
ほぼ同じ内容を、YouTube動画にしてみましたので、よかったらそちらもご覧ください。
おまけ動画ですが、Lチカだけなら、USBから電源が供給されて、ボード上のLEDで確認できるので必要ないですが、他に使う際はヘッダピンのはんだ付けが必要なので、はんだ付け動画をつくってみました。
Raspberry Pi Pico にヘッダーピンをハンダ付
それでは、また!