ショップ

取扱説明書

製品概要

ESP32-LEDPROは新バージョン(R2)となりました。(2024/6/19)

新バージョンの変更内容は以下の通りです。

基本はそのままに、センサーが追加され、用途が広がりました。

  • ESP32Eのフラッシュ容量が16MBから8MBになった。
  • 加速度センサー(KXTJ3-1057)が追加された。
  • 温湿度センサー(AHT20)が追加された。
  • 明るさセンサー(フォトトランジスタ)が基板に実装された。
  • USBがType-Cになった。
  • LEDパネルに基板を直付けする場合のコネクタが同梱された。(基板の裏側に取り付け、基板の表側ではんだ付けしてください)
  • 赤外線LEDが除去された。

温湿度センサーAHT20は、発熱源であるESP32から離れた場所に設置し、アートワークも熱的に分離するように配慮していますが、ESP32の稼働に伴う発熱とともに、計測温度が周囲の気温より高くなるので計測値の利用に関してはお気を付けください。

新バージョンのLEDパネル関係の回路は旧バージョンと同じなので、旧バージョンのスケッチをそのまま利用することができます。ご迷惑をおかけしますが、新バージョンの説明書と紹介記事が整備されるまでは、旧バージョンの情報をご活用ください。

センサー情報

温湿度センサーと加速度センサーの利用例

ESP32-LEDPRO-R2に搭載されている温湿度センサーと加速度センサーの使用例を示します。LEDパネルは、P4 64×32です。それぞれ、Arduino IDEのライブラリマネージャでライブラリを導入し、I2Cで制御します。

#include <ESP32-HUB75-MatrixPanel-I2S-DMA.h>

MatrixPanel_I2S_DMA *dma_display;
//MatrixPanel_I2S_DMA *dma_display = nullptr;

#define RES_X 64      // Number of pixels wide of each INDIVIDUAL panel module. 
#define RES_Y 32     // Number of pixels tall of each INDIVIDUAL panel module.
#define CHAIN 1      // Total number of panels chained one to another
 
#include <Adafruit_AHTX0.h>

Adafruit_AHTX0 aht;

#include <kxtj3-1057.h>

float sampleRate = 6.25; // HZ - Samples per second - 0.781, 1.563, 3.125, 6.25,
          // 12.5, 25, 50, 100, 200, 400, 800, 1600Hz
          // Sample rates ≥ 400Hz force High Resolution mode on
uint8_t accelRange = 2; // Accelerometer range = 2, 4, 8, 16g
bool highRes = false; // High Resolution mode on/off

KXTJ3 myIMU(0x0E); // Address can be 0x0E or 0x0F

void setup()
{
  aht.begin();
  myIMU.begin(sampleRate, accelRange, highRes) ;

  HUB75_I2S_CFG mxconfig(RES_X, RES_Y, CHAIN) ;

  if (RES_Y == 64)
    mxconfig.gpio.e = 32; // HUB75E, 1/32 Scan

  mxconfig.clkphase = false;
  //mxconfig.driver = HUB75_I2S_CFG::FM6126A;

  // Display Setup
  dma_display = new MatrixPanel_I2S_DMA(mxconfig);
  dma_display->begin();
  dma_display->setBrightness8(200); //0-255
  dma_display->clearScreen();

  dma_display->setTextSize(1);     // size 1 == 8 pixels high
  dma_display->setTextWrap(false); // Don't wrap at end of line - will do ourselves
}

void loop()
{
  char tstr[20];
  sensors_event_t humidity, temp;

  aht.getEvent(&humidity, &temp); // AHT21から湿度と温度の取得

  myIMU.standby(false);

  dma_display->clearScreen();
  dma_display->setCursor(0, 0);

  dma_display->setTextColor(dma_display->color444(8,8,8));
  dma_display->print(temp.temperature, 1);
  dma_display->print("'C ");
  dma_display->print((int)humidity.relative_humidity);
  dma_display->println("%");

  dma_display->setTextColor(dma_display->color444(15,0,0));
  dma_display->print("X: ");
  dma_display->println(myIMU.axisAccel(X), 2);
  dma_display->setTextColor(dma_display->color444(0,15,0));
  dma_display->print("Y: ");
  dma_display->println(myIMU.axisAccel(Y), 2);
  dma_display->setTextColor(dma_display->color444(0,0,15));
  dma_display->print("Z: ");
  dma_display->println(myIMU.axisAccel(Z), 2);

  myIMU.standby(true);

  delay(500); 
}

加速度センサーの計測軸は、基板面がXY軸、基板に垂直の方向がZ軸になっています。このため、基板が水平に近い状態で少し傾いて置かれている以下の例では、X,Yが0g近く、Zが1g近くになっています。

回路図


製品概要 (旧バージョン)

ESP32-PRO

鮮やかな色で文字や画像を表示できるLED マトリックスパネルが広く使われるようになり、LED マトリックスパネルを手軽に制御できる高性能なコントローラが求められています。
ESP32-LEDPRO-R1 はESP-WROOM-32 を中核に、HUB75(E) インターフェースを使用するLED マトリックスパネルを手軽に利用できるように開発されたコントローラボードです。
ESP32-LEDPRO-R1 はLED マトリックスパネルの裏面のHUB75 コネクタに直付けすることも可能で、手軽に使用できます。また、LED マトリックスパネルの表示制御は、Arduino IDE を使用して、プログラミングすることができます。
さらに、ESP-WROOM-32 はWiFi などの無線ネットワーク機能を持っているため、インターネットやスマートフォンからLED マトリックスパネルを制御したり、インターネット上の各種のサービスに接続し、リアルタイムで様々な情報を表示するシステムを作成することも可能です。
ESP32-LEDPRO-R1 はLED マトリックスパネルを初めて使用する人や、それを利用して多様なアプリケーションを作成・使用したい人に最適なコントローラボードです。

LED マトリックスパネルコントローラとしての特徴

ESP32-LEDPRO-R1 はLED マトリックスパネルコントローラとして以下のような特徴を持っています。

  • HUB75(E) インターフェースを利用した、1/16 または1/32 スキャンのLED マトリックスパネルを制御することができます。
  • 信号電圧が3.3V のESP-WROOM-32 から、信号電圧が5V のHUB75(E) を適切に制御するために、信号電圧の変換回路を備えており、HUB75(E) を安定して制御できます。
  • 複数枚のLED マトリックスパネル(ESP-WROOM-32 のメモリによる枚数制限はあります)を接続 して制御することもできます。
  • LED マトリックスパネルの使用時に、USB コネクタにLED マトリックスパネルが必要とする大容量の電流が流れないように安全回路が組み込まれています。
  • 電子工作で広く利用されているArduino などの無償、便利、高機能な開発環境を利用してLED 表示用のソフトウェアを開発できます。
  • LED マトリックスパネルの制御用のライブラリ*1 は、ライブラリマネージャを使用してArduino IDE に簡単に組み込むことができます。
  • 上記のライブラリは、LED マトリックスパネルへの高頻度のデータの伝送にDMA を使用しているのでCPU の負担はほとんどなく、CPU の能力のほとんどをLED マトリックスパネルの表示以外の処理に振り向けることができます。
  • 圧電スピーカーを搭載しており、LED での表示に合わせて音を出すことができます。
  • 温度や湿度等のセンサーを搭載することができ、その計測値をLED 表示に利用することができます。

ESP32-LEDPRO-R1 を使用してP2.5 128×64 ピクセルのLED マトリックスパネルに表示を行った例を図に示します。

ESP-WROOM-32 開発ボードとしての特徴

またESP32-LEDPRO-R1 は、ESP-WROOM-32 を使用した開発ボードとして以下のような特徴を持っています。

  • ESP32 のE バージョンの16M 版を搭載しています。
  • 高性能の32 ビットマイクロプロセッサを搭載することで、Arduino UNO R3 などと比較して高速な処理が行えるとともに、大容量のFLASH(16M) とRAM を利用できます。
  • ネットワークと接続するためのWiFi やBluetooth のネットワーク機能を利用できます。
  • Arduino IDE で作成したスケッチを書き込むためのUSB インターフェースを装備しています。
  • ドロップアウトが300mV と少ない1.5A *2の電圧レギュレータを搭載し、ESP-WROOM-32 に安定した電源を供給できます。
  • ESP-WROOM-32 の信号線がピンヘッダーを取り付け可能な端子列に引き出されており、LED 表示以外の機能を拡張することができます。
  • 様々な情報を表示できるOLED ディスプレイ(別売) を搭載することができます。

スケッチの例

64×32パネルにBME280の計測結果を表示する例

P4の64×32のLEDパネルに、BME280で計測した温度・湿度・気圧を表示するスケッチの例を示します。

#include <ESP32-HUB75-MatrixPanel-I2S-DMA.h>
#include <BME280I2C.h>
#include <Wire.h>

#define RES_X 64
#define RES_Y 32
#define CHAIN 1

MatrixPanel_I2S_DMA *dma_display = nullptr;
BME280I2C bme;

void setup() {
  HUB75_I2S_CFG mxconfig(RES_X, RES_Y, CHAIN);

  // Display Setup
  dma_display = new MatrixPanel_I2S_DMA(mxconfig);
  dma_display->setBrightness8(128);  // range is 0-255, 0 - 0%, 255 - 100%
  dma_display->begin();

  Wire.begin();

  while (!bme.begin()) {
    delay(1000);
  }
}

void printValue(double v, char *unit, uint16_t color) {
  dma_display->setTextColor(color);

  if (v < 100)
    dma_display->print("  ");
  else if (v < 1000)
    dma_display->print(" ");

  dma_display->print(v);
  dma_display->println(unit);
}

void loop() {
  float temp, hum, pres;
  BME280::TempUnit tu(BME280::TempUnit_Celsius);
  BME280::PresUnit pu(BME280::PresUnit_hPa);

  bme.read(pres, temp, hum, tu, pu);

  dma_display->fillScreen(0);
  dma_display->setCursor(0, 0);

  printValue(temp, "'C", dma_display->color565(0, 255, 0)) ;
  printValue(hum, "%", dma_display->color565(255, 0, 0)) ;
  printValue(pres, "hPa", dma_display->color565(0, 0, 255)) ;

  delay(2000);
}

回路図


関連記事

ESP32-LEDPROの各種のプログラミング情報を提供しています。


関連製品

P4 64 X 32 LEDパネル

弊社で最も人気のある手ごろなピクセル数のLEDパネルです。

P3 64 X 64 LEDパネル

弊社で人気のある大きめのピクセル数のLEDパネルです。

P2.5 128 X 64 LEDパネル

ピクセル数が大きく解像度が高い、表現力の高いLEDパネルです。