YD-ESP32-S2-miniを使う

コンピュータ、組み込み

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)
CPUESP32-S2
Xtensa 32bit LX7 singlecore
240MHz
MemoryFlash 4MB
SRAM 320KB
ROM 128KB
GPIO36
ADC20
(13bit 0 – 8191, 3.3V)
DAC2 (8bit 0 – 255, 3.3V)
PWM36 (8bit 0 – 255, 3.3V)
同時に8本まで
UART3
I2C2
SPI2
ボタン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-PicoRaspberryPi Pico互換基板です。
価格は安くはないが、サイズや機能のバランスが良い。

準備

ライブラリ

ボードライブラリ

Arduino IDEのボードマネージャからESP32用のライブラリのインストールとボードの選択をします。

ボードマネージャのURLhttps://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
検索ESP
ボードライブラリesp32 by Espressif Systems バージョン x.x.x※
選択するボードツール > ボード > esp32 > ESP32S3 Dev Module
※ x.x.x 動作確認は2.0.3を使用しています

モジュールライブラリ

機能やモジュールを使用しない場合インストールの必要はありません。

機能/モジュールライブラリ名検索確認時のバージョン
WS2812Adafruit NeoPixel by AdafruitNEOPIXEL1.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が点灯しました。

コメント

タイトルとURLをコピーしました