ショップ

取扱説明書

製品概要

ESP32-PIXELは、表示装置として18x8ピクセルのカラーLEDマトリックス (NeoPixel:WS2812)を装備し、さらには様々なセンサーを搭載、使用できるアプリケーションボードです。

カラーLEDマトリックスを表示に使用したゲームを作成したり、各種のセンサーやネットワークから取得した情報をカラーLEDマトリックスに表示する情報端末を作成することができます。

また、IoT端末・ノードとして使用することもできます。

アプリケーションボードとしての特徴

  • 18x8ピクセルのカラーLEDマトリックス (NeoPixel:WS2812)を装備しており、簡単なグラフィックス表示が可能であるだけでなく、英数字であれば3文字を表示することができます。
  • 赤外線リモコンの送受信機能を搭載しています。
  • フォトトランジスタを使用した明るさセンサーを装備しており、首位の明るさを取得することができます。
  • 圧電スピーカーを装備しており、様々な音を鳴らすことができます。
  • 4つのタクトスイッチを装備しています。
  • BME280(別売り)を搭載して温度・湿度・気圧などを取得することができます。
  • MPU9250/MPU6050 (別売り) を搭載して、加速度・回転量などを取得することができます。
  • 超音波距離センサーを接続できるコネクタを装備しています。
  • 人感センサーなどを接続できる端子を装備しています。
  • サーボモーターなどを接続できる端子を装備しています。

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

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

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

スケッチ例

明るさセンサー

明るさセンサー(フォトトランジスタ)で明るさを読みとって、NeoMatrixライブラリを使用してカラーLEDマトリックスに表示するスケッチを示します。

#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>

#define PIN 15

Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(18, 8, PIN,
  NEO_MATRIX_TOP  + NEO_MATRIX_LEFT +
  NEO_MATRIX_ROWS + NEO_MATRIX_PROGRESSIVE,
  NEO_GRB         + NEO_KHZ800 );

void setup() {
  matrix.begin();
  matrix.setTextWrap(false);
  matrix.setBrightness(40);
  matrix.setTextColor(matrix.Color(0, 255, 0));
}

void loop() {
  matrix.fillScreen(0);
  matrix.setCursor(0, 0);
  matrix.print(analogRead(36)/4); // 明るさの読み取り
  matrix.show();
  delay(500);
}

BME280気温・湿度・気圧センサ―

BME280で計測した値を、カラーLEDマトリックスに数秒ずつ順番に表示するスケッチを示します。

#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>
#include <BME280I2C.h>
#include <Wire.h>

#define SERIAL_BAUD 115200

#define PIN 15

Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(18, 8, PIN,
    NEO_MATRIX_TOP + NEO_MATRIX_LEFT + NEO_MATRIX_ROWS + NEO_MATRIX_PROGRESSIVE,
    NEO_GRB + NEO_KHZ800);

BME280I2C bme;

void setup() {
  Serial.begin(SERIAL_BAUD);

  Wire.begin();

  while (!bme.begin()) {
    Serial.println("Could not find BME280 sensor!");
    delay(1000);
  }

  matrix.begin();
  matrix.setTextWrap(false);
  matrix.setBrightness(30);
}

int idx = 0;

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

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

  matrix.fillScreen(0);
  matrix.setCursor(0, 0);

  idx %= 3;
  switch (idx++) {
    case 0:  // temp
      matrix.setTextColor(matrix.Color(0, 255, 0));
      matrix.print((int)(temp + 0.5));
      matrix.print("C");
      break;
    case 1:  // hum
      matrix.setTextColor(matrix.Color(255, 0, 0));
      matrix.print((int)(hum + 0.5));
      matrix.print("%");
      break;
    case 2:  // pres
      matrix.setTextColor(matrix.Color(0, 0, 255));
      str = String((int)(pres + 0.5)) ;
      if (str.length() > 3)
        str = str.substring(1,4);
      matrix.print(str);
      break;
  }
  matrix.show();

  delay(2000);
}

超音波距離センサー

超音波距離センサーHC-SR04を基板左上のCN8に接続して使用することができます。

回路図