このページの目次
ショップ
取扱説明書
製品概要
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に接続して使用することができます。