ラズパイの新シリーズのラズベリーパイPicoについて、マイコンの解説もまじえながら詳細を解説しています。

Raspberry Pi Picoとは

ラズパイの新シリーズ

2021年にイギリスのラズベリーパイ財団が販売を開始した、ラズパイの新シリーズです。Picoはマイクロコントローラー(マイコン)と呼ばれる小型のコンピューターです。

マイコンとは

マイクロコントローラー(Microcontroller、MCU、マイコン)とは、シングル・チップと呼ばれるひとつの集積回路からなる、安価で小型なコンピューターのことです。OSを使用できず、シングルスレッドで動作します。

マイコンの用途は?

よくあるのは機械などをコントロールするための単純なループ処理を永遠に繰り返すような場合です。例えば、温度センサーからの温度情報を液晶モニターに表示しつつ、ボイラーをちょうどいい具合に制御し、お湯を43℃に保つ、のようなケースです。

そうです! 給湯器にはマイコンが使われています😊♨

代表的なマイコンとして、ATMEGA328Pというマイコンがあります。これは32KBのメモリを搭載した8ビットマイコンで、Arduinoボードでよく使用されています。他にも数多くのマイコンが存在しますが、最近注目されているものにCortex-M0+があります。これは英国のARM社が開発、設計を行っている32ビットマイコンで、Raspberry Pi PicoにはこのCortex-M0+を2つ載せたRP2040というチップが搭載されています。

2024年8月には、RP2040の後継機であるRP2350が発表されました。RP2350については別の記事で詳しく紹介します。

 

これまでのラズパイシリーズとの違い・メリット

Picoは、Raspberry Pi・400・Zeroシリーズのようなシングル・ボード・コンピューターとは全く違います。マイコンなので、Raspberry Pi OSを入れて動かすことはできません。以下の見た目どおり、そもそもmicroSDカードスロットがありません。デスクトップPCとしても使えません。カメラも接続できません。

しかしながら、他のラズパイシリーズにはないメリットがあります。

まずセットアップが簡単なことです。1分もかかりません。それから起動が早いことです。電源をつなげば一瞬で起動します。また、消費電力がかなり抑えられているため、単3電池2本で駆動できます。プログラムは不揮発性のフラッシュメモリに格納するため、microSDの寿命や破損を心配する必要はありません。

なお、他のラズパイシリーズにないADCを搭載しています。これまでのラズパイではADCを別途用意しないと接続できなかったCdS光センサー等のアナログ型のセンサーを簡単に使えます。

価格帯は700〜1,000円とかなりお手頃です。

いかがでしょうか? 他のラズパイに比べ、安価にすぐ電子工作やプログラミングをはじめることができるようになっています。

 

Picoでできること

電子工作

まずは電子工作です。Picoに入力機器としてセンサーやスイッチ、出力機器としてLEDやモーターをつなぎ、それらを橋渡しするプログラムをPicoで実行し、さまざまな電子工作のプロジェクトに使用できます。

 

IoTデバイスの開発

PicoにLTEモジュールなどを追加するか、以下のWiFi/Bluetooth機能搭載バージョンのPico Wを使えば、データの送受信が可能なIoTデバイスを作ることもできます。

Pico Wを使うと、おもちゃなどをスマホ対応に簡単に改造することもできます。

 

ゲーム機開発

Picoに小さなOLEDディスプレイやボタンやジョイスティックなどの入力デバイスを接続し、プログラムを書き込めば、簡単なゲーム機を作ることができます。

 

機械学習

機械学習といっても学習は難しいですのが、Cortex-M0+は浮動小数点の演算用のライブラリがあるので、推論に使用することができます。例えば、ジェスチャー認識のモデルをPicoに入れ、ジャイロセンサーを接続し、◯や✕などのジェスチャー認識を行う魔法の杖を作る、といった具合です。

 

Picoのバージョン

現在、Raspberry Pi ①Pico、②Pico H、③Pico W、④PicoWH、⑤Pico 2の5種類があります。Pico、Pico W、Pico 2は基板のみ、Pico H、Pico WHはヘッダーがはんだ付けされています。

Pico ヘッダーなし
Pico H ヘッダー付き
Pico W ヘッダーなし、無線機能あり
Pico W ヘッダーあり、無線機能あり
Pico 2 ヘッダーなし

 

 

Picoのスペック

主要スペック

ラズパイPicoの主要スペックは以下のようになっています。

Pico Pico 2
プロセッサー RP2040 RP2350
マイクロコントローラー デュアルArm Cortex-M0+ デュアルArm Cortex-M33 or デュアルHazard3
メモリ SRAM 264KB SRAM 520KB
フラッシュメモリ QSPI 2MB QSPI 4MB
GPIO 26 (アナログ入力 x 3) 26 (アナログ入力 x 4)
インターフェース UARTx2、SPIx2、I2Cx2、 PWMx16
USB USB 1.1 x 1
電源 micro USBコネクタからDC5V入力 or VBUSピンからDC1.8〜5.5V入力

 

RP2040

RP2040のコアはCortex-M0+のため、浮動小数点演算ユニット(FPU)が搭載されておらず、TinyMLのような最新分野への用途には向かないと思われがちですが、ソフトウェアライブラリーで浮動小数点演算がサポートされています。

プログラム開発用にC/C++ SDKおよびPython SDKが用意されています。使用できる言語はC、C++、MicroPythonです。

メモリ

RP2040内部のメインメモリは264KBで、Arduino Unoの2KBに比べると100倍の大きさです。さらにプログラムを格納する外部のフラッシュメモリは2MBもあります。Arduino Unoのフラッシュメモリは32KBなので、60倍です。RP2350になるとメモリは512KB、フラッシュメモリは4MBです。

ADC

PicoのGPIOのうち3つ、Pico 2では4つにはアナログ入力ができるADCが接続されています。また、ADC専用のGNDとしてAGNDも用意されています。

 

Picoの使い方

別の記事で詳細な使い方を解説していますので、ここではざっくりと説明します。

ファームウェアの書き込み

購入したばかりのPicoボードはまっさらな状態ですので、MicroPythonのファームウェアを書き込んだあとから使用できるようになります。

ファームウェアを書き込む際は、BOOTSELボタンを長押ししてPCにPicoボードをUSBのマスストレージデバイス(USBメモリ)として認識させたあと、Pythonのプログラムを作成するThonnyエディターからファームウェアの書き込みを行います。

プログラムの書き込み

例としてThonnyから以下のプログラムをPicoに書き込みます。

from machine import Pin 
import time 

led = Pin(25, Pin.OUT) 

while True: 
    led.value(1) 
    time.sleep(1) 
    led.value(0) 
    time.sleep(1)

動作確認

書き込みが終わると同時に、PicoのオンボードLEDが1秒間隔で点滅を始めます。

 

ここまでかかった時間

PicoをPCに接続してから2分も経っていません! これをRaspberry Pi、400、Zeroシリーズでやろうとしたら、OSのインストールから初期設定、アップデート、再起動と、30分近くかかります。

 

おわりに
いかがだったでしょうか? 他の記事も参考に、みなさんもぜひPicoを使ってみてくださいね。