VCC-GND製ESP32 S2搭載基板、YD-ESP32-S2-miniを入手しました。
Arduino環境で使ってみます。
紹介するもの
YD-ESP32-S2-mini
特徴
VCC-GND のESP32 S2基板搭載の開発ボードです。
技適マークが無いため、無線を使用することはできません。
GPIOピンも豊富に出ていて高性能マイコン基板として使用できます。
YD-ESP32-S2-mini | |
---|---|
接続 | Type C(USBシルク) Type C(COMシルク CH340K) |
CPU | ESP32-S2 Xtensa 32bit LX7 singlecore 240MHz |
Memory | Flash 4MB SRAM 320KB ROM 128KB |
GPIO | 36 |
ADC | 20 (13bit 0 – 8191, 3.3V) |
DAC | 2 (8bit 0 – 255, 3.3V) |
PWM | 36 (8bit 0 – 255, 3.3V) 同時に8本まで |
UART | 3 |
I2C | 2 |
SPI | 2 |
ボタン | BOOT リセット |
そのほか | WS2812 (GPIO 18) |
入手 | NOV/2023 Ali Express 送料込み \700 |
VCC-GND製RP2040搭載基板
ピン配置
外観
基板の幅が広いため、400穴ブレッドボード一枚では収まりません。
2枚連結することで有効に使用することができます。
使ってみて
無線を使用することはできませんが、ESP32-S2自体は高性能なマイコンです。
GPIOが多く使えるところもありますが、出力では珍しくDACによるアナログ出力と、入力ではADCの分解能は13bitあり他のESPの12bitよりも高分解能です。
基板自体は大柄で少し使いにくいところはありますが、各ピンにはシルクによるピン番号が記載されているので配線作業がしやすい。
USBは2ポートありどちらからでも書き込みができますが、シリアルチップのある「COM」表記側が使いやすいと思います。
スペックが高めで価格もお手頃な開発基板だと思います。
そのほかのESP32 S2搭載基板
絵 | 型名 | 特徴 |
---|---|---|
ESP32-S2-WROOM | 価格の控えめなESP32-S2。 大柄な基板ですが、400穴ブレッドボードでも使えます。 | |
QT Py ESP32-S2 | 最も小柄な XIAO規格の基板です。 DACも使えて、Qwiicもついている、小さいのに使える基板。 | |
ESP32-S2-Pico | RaspberryPi Pico互換基板です。 価格は安くはないが、サイズや機能のバランスが良い。 |
準備
ライブラリ
ボードライブラリ
Arduino IDEのボードマネージャからESP32用のライブラリのインストールとボードの選択をします。
ボードマネージャのURL | https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json |
検索 | ESP |
ボードライブラリ | esp32 by Espressif Systems バージョン x.x.x※ |
選択するボード | ツール > ボード > esp32 > ESP32S3 Dev Module |
モジュールライブラリ
機能やモジュールを使用しない場合インストールの必要はありません。
機能/モジュール | ライブラリ名 | 検索 | 確認時のバージョン |
---|---|---|---|
WS2812 | Adafruit NeoPixel by Adafruit | NEOPIXEL | 1.10.5 |
スケッチの書き込み
ArduinoIDEからスケッチ書き込みボタンを押すことで書き込みできます。
USBコネクタが2つありますが、どちらからでも書き込みできます。
COMシルク側
スケッチ書き込み後もシリアル認識されるため、BOOTボタンの作業なく書き込みができます。
USBシルク側
書き込みを行うと時々別の番号になるので、書き込みができなかったりしたときは選択されているCOM番号を確認してください。
スケッチ
UART
説明
UARTを使って文字列を出力します。
USBコネクタへの出力と、GPIOへのの出力を確認します。
スケッチは1秒ごとに”Hello”を出力します。
スケッチの書き込みはどちらのUSBコネクタ(COM / USB)で行ってもかまいません。
スケッチ
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println("Hello");
delay(1000);
}
結果
COMシルク側に接続
ArduinoIDEのシリアルモニタを開くと結果が出力されました。
シリアル変換チップ(CH340K)によりシリアル出力ができています。
USBシルク側に接続
USBが接続されていないメッセージに変わります。
デフォルトでGPIO43(TX)、GPIO44(RX)にシリアル変換モジュールを使用することでUART通信することができます。
画像はUARTをFT232RLでシリアル変換しています。
WS2812
説明
実装 WS2812を点灯させます。
1秒間隔で、赤->緑->黄->青->紫->水->白 の順で点灯させます。
基板実装WS2812を使用するため配線は不要です。
WS2812のピン番号はGPIO18です。
スケッチ
/**********************************************************************
【ライセンスについて】
Copyright(c) 2022 by tamanegi
Released under the MIT license
'http://tamanegi.digick.jp/about-licence//【スケッチの説明】
【スケッチの説明】
実装 WS2812を点灯させます。
1秒間隔で、赤->緑->黄->青->紫->水->白 の順で点灯させます。
【バージョン情報】
2023/11/24 : 新規
**********************************************************************/
#include <Adafruit_NeoPixel.h>
#define DIN_PIN 18 // NeoPixel の出力ピン番号はGP16
#define LED_COUNT 1 // LEDの連結数
#define WAIT_MS 1000 // 次の点灯までのウエイト
#define BRIGHTNESS 64 // 輝度
Adafruit_NeoPixel pixels(LED_COUNT, DIN_PIN, NEO_GRB + 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);
}
結果
WS2812が点灯しました。
コメント