WaveShare の RP2040搭載の小型基板 RP2040-Oneを入手しました。
RP2040-Zeroほとんど一緒ですが、コネクタがType A(Male)のドングルタイプになっています。
RP2040-Zero と RP2040-One
主な仕様比較
比較項目 | RP2040-Zero | RP2040-One |
---|---|---|
外観 | ![]() | ![]() |
接続 | Type C | TYPE A(Male) |
フラッシュMemory | 2MB | 4MB |
ADC | 4 | 4 |
I2C | 2 | 2 |
SPI | 2 | 1 |
GPIO※1 | 20 背面パッドパターンx9 | 20 背面パッドパターンx9 |
ボタン | BOOT RESET | BOOT RESET |
LED | GP16 WS2182 | GP16 WS2182 |
価格 | \650~\800 | \1,400~\1,700 |
その他のRP2040搭載基板の一覧
RP2040-One
ピン配置
作成したピン配置表

公式のピン配置表

外観
直接パソコンやUSBハブに接続することができます。
ブレッドボードに挿して使用することもできます。
当方もTypeAコネクタの基板についてはいまだにピンヘッダをつけられずにいます。


使ってみて
普段はマイコン基板側がTypeCやMicroBが多いのですが、TypeAとして使えるドングルタイプは強度的な安心感はあります。
まだどのように使うと効果的なのか想像力が足りていませんが、創作ネタが出てきたら記事に使用と思います。
RP2040-Zero 互換基板
RP2040-One | ![]() | ドングル型のZero。 背面のGPIOパッドも使えます。 |
RP2040-Tiny | ![]() | USBコネクタと本体を分離したモデル。 本体基板と離れた位置にリセットボタンやコネクタを設置できます。 背面のパッドはありません。 |
RP2040-Matrix | ![]() | RP2040-ZeroにWS2812bを25個実装したモデル。 リセットボタンやBOOTボタンが背面に移動したため使いにくいですが 煌びやかな演出ができます。 |
Pico bit RP2040 | ![]() | Waveshare製ではないコンパチブル基板です。 RP2040-Zeroと遜色なく使うことができますが、入手性が良くない。 |
Super Mini RP2040 | ![]() | Waveshare製ではないコンパチブル基板です。 リセットボタンがなく一部機能劣化があります。 MCUが上面にあるので、背面のパッドを使う場合は作業性が良いです。 |
ESP32-C3-Zero | ![]() | ESP32 C3搭載基板です。 後方のエッジスルーホールがなくなっていますが、 電源ピン周りは互換があります。 |
ESP32-S3-Zero | 記事準備中です。 ESP32 S3搭載基板です。 ピン周りはESP32 C3と同様のようです。 Zero規格では最速の基板です。 |
準備
使い方はRaspberrpPi Picoと同じですので、こちらのリンクを参照してください。
ライブラリ
Arduino IDEのボードマネージャからRP2040-One用のライブラリのインストールとボードの選択をします。
どちらも同じライブラリを使用します。
“変更する設定”にてメモリサイズを変更してください。
検索 | RP2040 |
ボードライブラリ | Raspberry Pi RP2040 Boards(x.x.x)※1 |
選択するボード | Raspberry Pi RP2040 Boards(x.x.x) > Generic RP2040 |
変更する設定 | Tools > Flash Size > xxMB(no FS)※2 |
※2 RP2040-Zero は 2MB(no FS), RP2040-One は 4MB(no FS)
WS2812を制御するためのライブラリにはAdafruit NeoPixelライブラリを使用します。
検索 | neopixel |
ライブラリ名 | Adafruit NeoPixel by Adafruit(x.x.x)※ |
特別な機能のスケッチ
WS2812
スケッチの説明
Adafruit のAdafruit NeoPixel by Adafruitを使用します。
サンプルスケッチ
/**********************************************************************
【ライセンスについて】
Copyright(c) 2022 by tamanegi
Released under the MIT license
'http://tamanegi.digick.jp/about-licence//【スケッチの説明】
【スケッチの説明】
NeoPixel搭載RP2040基板で使用できます。
実装 W2812を点灯させます。
1秒間隔で、赤->緑->黄->青->紫->水->白 の順で点灯させます。
【バージョン情報】
2022/7/6 : 新規
2022/12/18 : RP2040-Zero用にBuilt In LEDのピン番号を変更 23 -> 16(RP2040-One共通)
2022/12/25 : カラーパターン修正。(赤->緑->黄->青->紫->水->白で変化するように修正)
**********************************************************************/
#include <Adafruit_NeoPixel.h>
#define DIN_PIN 16 // NeoPixel の出力ピン番号はGP16
#define LED_COUNT 1 // LEDの連結数
#define WAIT_MS 1000 // 次の点灯までのウエイト
#define BRIGHTNESS 64 // 輝度
Adafruit_NeoPixel pixels(LED_COUNT, DIN_PIN, NEO_RGB + NEO_KHZ800);
void setup()
{
pixels.begin(); //NeoPixel制御開始
}
void loop()
{
pixels.clear();
//pixels.Color(Red, Green, Blue)で、パレット情報を作成する。
//赤点灯
pixels.setPixelColor(0, pixels.Color(BRIGHTNESS, 0, 0));
pixels.show();
delay(WAIT_MS);
//緑点灯
pixels.setPixelColor(0, pixels.Color(0, BRIGHTNESS, 0));
pixels.show();
delay(WAIT_MS);
//赤 + 緑 で 黄点灯
pixels.setPixelColor(0, pixels.Color(BRIGHTNESS, BRIGHTNESS, 0));
pixels.show();
delay(WAIT_MS);
//青点灯
pixels.setPixelColor(0, pixels.Color(0, 0, BRIGHTNESS));
pixels.show();
delay(WAIT_MS);
//赤 + 青 で 紫点灯
pixels.setPixelColor(0, pixels.Color(BRIGHTNESS, 0, BRIGHTNESS));
pixels.show();
delay(WAIT_MS);
//緑 + 青 で 水点灯
pixels.setPixelColor(0, pixels.Color(0, BRIGHTNESS, BRIGHTNESS));
pixels.show();
delay(WAIT_MS);
//赤 + 緑 + 青 で 白点灯
pixels.setPixelColor(0, pixels.Color(BRIGHTNESS, BRIGHTNESS, BRIGHTNESS));
pixels.show();
delay(WAIT_MS);
}
1秒ごとに、LEDの色を変化させます。
赤->緑->黄->青->紫->水->白
結果
1秒ごとに色の変化が確認出来ました。
最大輝度はかなり明るいので、直視すると残影が残ります。
コメント