Raspberry Pi Foundationのマイクロコントローラー「RP2040」は、性能と柔軟性のバランスがとれた興味深いチップだ。これまで既製のプロセッサーを使用していた同財団が、初めて独自に開発したシステムオンチップ(SoC)デバイスでもある。
RP2040は、133MHzのデュアルコア「ARM Cortex-M0」と264KBのオンチップRAMを搭載する。ハードウェアに組み込めるように設計されていて、各チップに26本のGPIOピンがあり、8つのプログラマブルI/Oステートマシンなど、追加のコントローラーハードウェアを多数備えている。
RP2040は、購入した顧客が自分のデバイスに組み込めるようになっているほか(筆者は4×4のLEDバックライトキーボードとカスタマイズ可能な電子ペーパーバッジに使っている)、Raspberry Pi Foundation独自の「Raspberry Pi Pico」ボードにも使用されている。Picoはメーカーやその他のハードウェア愛好家向けの低価格デバイスだ。RP2040に加えて、コードとファームウェア用に2MBのフラッシュストレージも搭載している。21mm×51mmの回路基板であり、40ピンをブレッドボード用のヘッダーピンに取り付けたり、センサーやアクチュエーターに直接接続したりすることができる。
新しいPicoはWi-Fi機能を搭載
Raspberry Pi Foundationは先頃、Picoの新バージョンを2つ発表し、2022年中に3つ目の発売を予定している。「Raspberry Pi Pico H」は、ヘッダーピンがはんだ付けされており、プロトタイピングや実験での使用を想定したモデルだ。一方、「Raspberry Pi Pico W」は、Wi-Fi機能を内蔵し、単体で接続アプリケーションに使用できる。最終的にはこれらが融合し、Pico Wにヘッダーを追加した「Raspberry Pi Pico WH」が登場する予定だ。初代のPicoと同様に、Pico Wも商用プロジェクトでの使用向けに一括購入することができる。
Raspberry Pi Pico W。銀色のケースの下にあるInfineonのWi-Fiチップ「CYW43439」はBluetoothもサポートするが、この機能はまだ有効になっていない。
提供:Simon Bisson
Pico Wは大きな変化であり、2.4GHzの802.11b/g/n Wi-Fiチップセットとオンボードアンテナが追加された。これらはすべてデバイスのフォームファクターを変更することなく追加されているため、既存のプロジェクトで使っている標準のPicoをPico Wに交換することができる。標準のPicoと同じく、電源と基本的な接続にはMicro-USBポートを使用するが、ボードのピンを使用してデバイスに給電することもできるので、ケースに配線して、バッテリーを代替電源として使用することも可能だ。
Pico WにWi-Fiを追加するために搭載されたチップであるInfineonの「CYW43439」は、BluetoothとBluetooth Low Energy(LE)もサポートする。今回の最初のモデルはWi-Fiのみをサポートするが、Raspberry Pi Foundationは、将来的にBluetoothサポートを追加する可能性があるとしている。現在、ワイヤレススタックはlwIP TCP/IP実装をベースとしており、「libcyw43」を使用してワイヤレスハードウェアを制御する。libcyw43は、通常は非商用だが、Raspberry Pi Foundationは利便性を高めるため、無料の商用利用ライセンスについて交渉した。そのため、引き続きPico Wを使用して商用ハードウェアを構築することも、RP2040とCYW43439をベースに独自のボードを構築することもできる。
ワイヤレスサポートの追加以外にも、Wと標準のPicoにはいくつか小さな違いがある。最も明白な違いは、オンボードLEDがRP2040のGPIOピンに接続されなくなり、Wi-Fiチップ自体のGPIOを通して機能するようになった点だ。オンボードLEDを「C」や「MicroPython」でインジケーターとして使用していた場合は、新しいハードウェアオプションを利用できるようにコードを変更する必要がある。
そのため、Raspberry Pi FoundationはMicroPythonのビルドをフォークしている。ファームウェアのビルドが分かれているため、必ずPico W向けの適切なバージョンをインストールしよう。Picoには2つの開発モデルが提供されている。Cを使用してユーザー独自のコードをファームウェアにバンドルする方法と、Raspberry Pi Foundation独自のファームウェア(MicroPythonで設定され、必要なモジュールの大半を搭載)を使用する方法だ。
Pico Wのプログラミング
Pico W向けの開発には、デスクトップPCや「Mac」を使用することもできるし、Raspberry Piから接続することもできる。筆者は「Windows」PCのUSB接続を使用した。まずPico WのBOOTSELボタンを押してダウンロードモードに入り、Raspberry PiのファームウェアをPico Wのストレージにドロップしてインストールした。インストールが完了すると、Picoは自動的に再起動し、USBポートを開発用PCやPiへのシリアル接続として使用する。