Raspberry Pi Pico(ラズベリー・パイ Pico)
ラズベリー・パイ財団が独自に開発したプロセッサー「RP2040」を搭載した小型のコンピューターボード「Raspberry Pi Pico(ラズベリー・パイ Pico)」を紹介します。
Raspberry Pi Pico(ラズベリー・パイ Pico)
Raspberry Pi Pico(ラズベリー・パイ Pico)は、ラズベリー・パイ財団が独自に開発したプロセッサー「RP2040」を搭載した小型のコンピューターボードです。RP2040が持つほぼすべてのGPIOを外部へ引き出し、センサーや無線通信などの付加機能を省くことにより、低価格で提供されています。
ラズベリー・パイ財団が独自に開発したプロセッサー「RP2040」
ラズベリー・パイ財団が独自に開発したプロセッサー「RP2040」は、最高速度133MHzで動作するArm Cortex-M0+を2つ(下図のProc0とProc1)持つデュアルコアのプロセッサーです。
A system overview of the RP2040 chip
Hardware design with RP2040 - Chapter 1. About the RP2040
メインRAMとして264KバイトのSRAMを内蔵しています。プログラム保存用のフラッシュメモリーは外付けで、XIP(Execute-In-Place)を通して、Quad SPI(QSPI)インタフェースで接続されます。外付けフラッシュメモリーは、メモリー空間の0x10000000番地からマッピング(最大16Mバイト)され、内部メモリーのように参照することができます。
RP2040には、30個(0~29)のGPIOがあり、うち4個(26~29)がADコンバーター(ADC)に接続されています。また、SPI・I2C・UART・16チャネルのPWMを搭載しています。
Raspberry Pi Pico(ラズベリー・パイ Pico)のGPIO
Raspberry Pi Picoは、プログラム保存用として2Mバイトの外付けフラッシュメモリーをボード上に実装しています。また、RP2040が持つ30個のGPIOのうち、4個が予約済みGPIO(RP2040の23~25、29)としてボード上で使われ、残りの26個が外部へ引き出されています。GPIOのロジックレベルは3.3Vです。
Raspberry Pi Picoピンアウト図
Raspberry Pi Documentation - Raspberry Pi Pico
- GPIO×26:GP0~GP22(デジタル)、GP26~GP28(デジタル/アナログ)
- ADC(12ビット)×3:ADC0~ADC2
- UART×2:UART0、UART1
- SPI×2:SPI0、SPI1
- I2C×2:I2C0、I2C1
- PWM×16チャネル
予約済みGPIOの25番は、ボード上のLED(GP25)に接続されています。ハードウェア用のプログラミングでは、最初にLEDを点滅させるのが常套手段(Lチカなど)ですが、Raspberry Pi Picoでは、このLEDをプログラムで制御できます。
Raspberry Pi Pico(ラズベリー・パイ Pico)の電源
Raspberry Pi Picoに電源を供給する方法は主に3つあります。USBコネクターにパソコンや5Vの電源ユニットをつなぐ方法(a)、VBUSピンに5Vを供給する方法(b)、VSYSピンに1.8V~5.5Vを供給する方法(c)です。いずれの方法も3V3ピンから外部回路用として3.3Vが出力されます。この3V3ピンは出力専用なので、電源に接続してはいけません。
Recommended ways of powering Raspberry Pi Pico
Hardware design with RP2040 - 3.1 Power
予約済みGPIOの24番はVBUSピンの監視、29番はVSYSピンの電圧監視、23番は省電力制御に用いられています。
Raspberry Pi Pico(ラズベリー・パイ Pico)の外観
Raspberry Pi Picoの大きさは、51.3mm×21mm×3.9mm(USBコネクタ含まず)で、40ピンのDIP(Dual Inline Package)形状となっています。
ボードの長辺側には、それぞれ20個のスルーホールがあり、ピンヘッダーを取り付けることができるので、ブレッドボードなどで手軽に回路の試作・実験ができます。また、スルーホールの外側には、半円状の端面スルーホールがあり、直接ユニバーサル基板などにハンダ付けすることができます。
短辺側の一方は、パソコンと接続するためのUSBコネクタです。もう一方はSWD(Serial Wire Debug)と呼ばれるデバッグ用の信号線(3ピン)が引き出されています。
ボード上にある白いボタンはBOOTSELと呼ばれるもので、押しながら起動するとマスストレージデバイスとして認識され、ドライブとして見えるようになります。このドライブに特別なUF2ファイル(ファームウェアなど)をコピーすると、フラッシュメモリーに書き込まれます。
Raspberry Pi Pico(ラズベリー・パイ Pico)の開発環境
Raspberry Pi Picoの開発環境として、MicroPythonとC/C++ SDKが公式から提供されています。MicroPythonは、Python 3というプログラミング言語をベースに開発されたもので、マイクロコントローラーという制限された環境で動作することを目的として最適化されたインタプリターです。最小限のPython標準ライブラリーとMicroPython固有のライブラリーに加えて、MicroPythonが動作するマイクロコントローラーに合わせて、そのハードウェアを操作する固有のライブラリーが用意されています。
Get Started with MicroPython on Raspberry Pi Pico
Thonnyを使って、MicroPythonでプログラミングを行います。環境の構築からブレッドボードを使った外部回路の制御まで詳しく解説しています。
図1-2は、Python IDE(統合開発環境)であるThonnyを使って、Raspberry Pi Picoボード上のLEDを点灯させるMicroPythonスクリプトを記述した例です。
MicroPythonでは、machineモジュール(上記スクリプトの1行目)にハードウェア固有のクラスや関数が含まれています。Raspberry Pi Picoのmachimeモジュールを見ると、Pin(GPIO)・I2C・PWM・SPI・ADCなどのクラスが含まれ、これらをMicroPythonで制御できることがわかります。
Python IDE(統合開発環境)であるThonnyを使って、Raspberry Pi Picoの開発に必要な手順を紹介しています。ぜひ参考にしてください。
おすすめ
Get Started with MicroPython on Raspberry Pi Pico
In Get Started with MicroPython on Raspberry Pi Pico, you will learn how to use the beginner-friendly language MicroPython to write programs and connect hardware to make your Raspberry Pi Pico interact with the world around it.