こんにちは、あろっちです。
当ブログでは、過去にArduino Nano RP2040 Connectを購入した体験記事を執筆しましたが、今回はRP2040-PlusというWaveshareのRP2040を搭載したボードを購入したのでご紹介したいと思います。
Waveshare製品ではRP2040-Zeroも記事にしていますのでぜひご覧ください。
2022年末にRP2040-Oneが発売されました。
参考サイト:
RP2040-Plusについて
Raspberry Pi Picoと形状/ピン配置に互換性があるボードです。
名前の通り、Raspberry Pi Picoに以下の特徴を”プラス”したようなボードになります。
特徴
- ほとんどのRaspberry Pi Picoアドオンモジュールと互換性がある
- オンボードの4MBフラッシュメモリ (Raspberry Pi Picoは2MB)
- USB Type-C
- リセットボタン
- モバイルデバイスに適したリチウム電池の再充電/放電ヘッダー搭載
- 高効率DC-DC昇降圧チップ(TPS63000、1.8A電流スイッチ)搭載
MCU | RP2040 デュアルコア ARM Cortex M0+プロセッサ、最大動作周波数 133 MHz |
フラッシュメモリ | 4MB |
GPIO | 26(ピン配列はRaspberry Pi Picoと互換) |
仕様
サイズ
搭載しているもの
- LED
ユーザーLED - USB Type-Cコネクタ
- TPS63000
高効率DC-DC昇降圧チップ - ETA6096
高効率リチウム電池充電マネージャー - BOOTボタン
- W25Q32JVSSIQ
4MBフラッシュメモリ - リセットボタン
- RP2040
デュアルコア ARM Cortex M0+プロセッサ、最大動作周波数 133 MHz - バッテリーヘッダー
Molex 1.25ヘッダー(3.7Vリチウムバッテリー用)により、バッテリーの再充電とボードへの電力供給を同時に行うことができます - ピン配列
Raspberry Pi Picoと互換性があります - USBテストポイント
USBインターフェースに接続可能 - BOOTテストポイント
BOOTボタンに接続可能 - デバッグポイント
ピン配列
ギャラリー
こんな感じです。
ピンヘッダー装着後
Raspberry Pi Picoとの比較
形状、ピン配列は、ほぼ同じことが確認できますね。
USBマスストレージモード
BOOTボタンを押した状態で、リセットボタンを押すと、USBマスストレージモード(RPI-RP2)になります。
USBマスストレージモードの時に、PCからMicroPythonやCircuitPythonのファームウェアなどがインストールできます。
CircuitPython
MicroPythonはRaspberry Pi Picoのファームウェアを使用できます。
Arduino IDEの設定
- Arduino IDEにボードを追加
※実施済みの場合、この手順は不要です。
事前にRaspberry Pi Pico/RP2040ボードを追加します。追加方法は、以下の記事をご参照ください。
- Raspberry Pi Pico/RP2040ボードのインストール
[ツール] > [ボード] > [ボードマネージャ]をクリックし、検索ボックスに「rp2040」と入力し、[Raspberry Pi Pico/RP2040]ボードをインストールします。
※以下は、バージョン1.9.5をインストール済みの画像です。実際には最新バージョンをインストールすればよいでしょう。
- ボードの選択
[ツール] > [ボード] > [Raspberry Pi RP2040 Boards(Ver)] > [Waveshare RP2040 Plus 4MB]を選択します。
Raspberry Pi Pico/RP2040ボード(Arduino-Pico) バージョン2.6.4より前の場合
[ツール] > [ボード] > [Raspberry Pi RP2040 Boards(Ver)] > [Generic RP2040]を選択します。
RP2040-Plusはフラッシュメモリの容量を4MBに設定できます。
[ツール] > [Flash Size:] > [4MB (no FS)]を選択します。
- シリアルポートの選択
[ツール] > [シリアルポート]からRP2040-Plusが接続されているシリアルポートを選択します。
サンプルプログラム
タクトスイッチで内蔵LEDをON/OFFしてみる
タクトスイッチを押すと、内蔵LEDが点灯するArduinoスケッチです。
スケッチは、[スケッチ例] > [02.Digital] > [Button]のスケッチを修正したものです。
タクトスイッチ(buttonPin)をGPIO16に、LED(ledPin)を内蔵LED(LED_BUILTIN)に変更しました。
// constants won't change. They're used here to set pin numbers:
const int buttonPin = 16; // the number of the pushbutton pin
const int ledPin = LED_BUILTIN; // the number of the LED pin
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status
void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT_PULLUP);
}
void loop() {
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed. If it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// turn LED off:
digitalWrite(ledPin, LOW);
} else {
// turn LED on:
digitalWrite(ledPin, HIGH);
}
}
RP2040-PlusとRaspberry Pi Picoに同じスケッチを書き込んで試してみました。
2つとも同じように動作することを確認できますね。
アナログ入力を試してみました
今回は、CircuitPythonで、以下の記事のボリューム抵抗でLEDの光量が変化する回路基板を使って試してみました。
CircuitPythonは、Raspberry Pi Pico用のファームウェアを使いました。
こんな感じで、Raspberry Pi Picoと同じように動きました。
TFT(IPS) 1.3インチディスプレイ(SPI)を試してみました
TFT(IPS) 1.3インチディスプレイを試してみました。
Raspberry Pi Picoで以下のように表示されるArduinoスケッチ。
使用しているエキスパンダーは、Raspberry Pi Pico用のものです。
このエキスパンダーにRP2040-Plusをセットして、同じスケッチを試してみました。
Raspberry Pi Picoと同じように動きましたね。
バッテリーで動かしてみました
RP2040-Plusには、Molex 1.25mmのバッテリーコネクタが搭載されているので、バッテリーで動くか試してみました。
Raspberry Pi Pico用のGrove ShieldにGrove OLEDディスプレイモジュールとSPIのTFT(IPS) 1.54インチのディスプレイを取り付けて、同時に表示するスケッチを動かしてみました。
バッテリーで見事に動きました。Raspberry Pi PicoのGrove Shieldも使えるようですね。
まとめ
Raspberry Pi Picoにはなかったリセットボタンなどが追加され、Raspberry Pi Picoと同じ回路が使えるのが魅力的なボードですね。
当ブログのマイコン記事です。ぜひご覧ください。
コメント