Raspberry Pi Pico事始め(Lチカ)
Raspberry Pi Pico vs Nucleo
Raspberry Pi Picoというマイコンボードがあり、最初はただのSTマイクロのNucleoのようなLinuxの走らないマイコンボードだなと思ったのですが(その通りなのですが)、スペックを見てみるとARMマイコン R2040のスペックがDual ARM Cortex M0+ Clock 133MHz、SRAM 264kB、Flashは内蔵していませんが、これで単体で\117(Digi-Key/2021/July/11の場合)、マイコンボード(Raspberry Pi Pico)が\550(スイッチサイエンスなど/同じく2021/July/11の場合)とコストパフォマンスがかなり良さそうです。
Nucleoと比べてみると、以下のような感じになります。
項目 | Raspberry Pi Pico(\550) | Nucleo-G031K8(\1279) |
ARM | Dual Arm Cortex M0+ | Arm Cortex M0+ |
マイコン | RP2040(\117) | STM32G031K8(\315) |
Clock |
133MHz |
64MHz |
Flash |
2M Bytes (W25Q16JVU外付け:\58(Digi-Key)) |
64k Bytes |
RAM |
264k Bytes |
8k Bytes |
IO数 | 30 | 30 |
Peripherals |
12bit ADC x4 I2C x2 UART x2 SPI x2 Timer x1 RTC USB1.1 |
12bit ADC x16 I2C x2 UART x3 SPI x3 Timer x18 RTC |
IDE | なし(Raspberry Pi 4など利用) | あり |
ざっくりいうとRaspberry Pi PicoはNucleoの半分以下の価格で倍以上の能力を持っていることになります。
メモリーも多いです(flashは外付けですが)。
ただしNucleoにはOn-board ST-Link Debuggerが載っていますしSTM32CubeIDEというアプリを1つインストールすればすぐに開発が開始できますが、Raspberry Pi PicoはRaspberry Pi 4などが必要になりますし(単に実行ファイルを書き込むだけならRaspberry Pi 4は必要ない)、開発環境を整えるのも少し手間です(開発環境構築は1回やるだけなのでそんなには問題ないとは思いますが)。
また表には書いてないですがSTマイクロの方はCRC計算器、乱数発生器などもあります。
いずれにしろRaspberry Pi Picoのコストパフォマンスは良さそうなので試してみたいと思います。
環境構築
Raspberry Piのサイトに「Getting Started with Raspberry Pi Pico」というPDFがあるのでこれをベースにやっていきます。
私は手持ちのRaspberry Pi 2Bに環境構築をしていきます。普通はRaspberry 4とかでしょうし、WindowsやMacでもできそうです(試していませんが)。
Raspberry Piを使うのは後にデバッガーとして使うことを想定しているためです。
まずはセットアップスクリプトを入手します。
スクリプトを実行可能にして、実行します。
セットアップが終わったら再起動します。
Lチカ実施
まずはLチカをやってみます。
先ほどのセットアップで”pico”ディレクトリーができてその中に”pico-sdk”や”pico-examples”などがインストールされています。
その内の”~/pico/pico-examples/build/”にchdirしたのち、”export PICO_SDK_PATH=../../pico-sdk”でPICO_SDK_PATHをセットした後、cmakeを実行してcmakeビルドディレクトリを準備します。
“blink”ディレクトリーにchdirして、”make”すると”blink.elf”や”blink.uf2″ができるので、このうち”blink.uf2″をRaspberry Pi Picoに書き込んでLチカしてみます。
“blink.elf”はデバッガーで使います。ソースコードは”~/pico/pico-examples/blink/blink.c”にあります。
“blink.uf2″をRaspberry Pi Picoに書き込むには、Pico基板上にある「BOOTSEL」ボタンを押しながら、マイクロUSBコネクタを差し込むとPicoがマスストレージデバイスとして認識されます。
このフォルダー内に”blink.uf2″ファイルを放り込むとPicoはLチカプログラムが走り出します。
今回はとりあえず終わりです。今後、Picoの性能評価(vs STマイクロ)やデバッカー機能実装などやっていく予定です。