Unit LCD
SKU:U120
説明
Unit LCD は、1.14 インチのカラフルな LCD 拡張ディスプレイユニットです。ST7789V2 ドライバ方式を採用し、解像度は 135 x 240、RGB666 表示(262,144 色)をサポートします。内部には ESP32-PICO 制御コア(内蔵ファームウェア)を統合しており、表示開発をより簡単に行えます。I2C(addr: 0x3E)通信インターフェースによる制御およびファームウェア更新をサポートします。ディスプレイ背面にはマグネット吸着設計が組み込まれており、金属表面に簡単に固定できます。この LCD 拡張ディスプレイは、シンプルな表示が必要な各種計測機器や制御装置の表示パネルとしての組み込みに適しています。
特徴
- 1.14 inch カラー LCD ディスプレイパネル
- I2C 通信インターフェース
- 視野角:全視角
- 背面マグネット吸着設計
- I2C ファームウェア更新対応
含まれるもの
- 1 x Unit LCD
- 1 x HY2.0-4P Grove 接続ケーブル(20cm)
アプリケーション
仕様
| 仕様 | パラメータ |
|---|
| ディスプレイドライバ IC | ST7789V2 |
| 動作電流 | 45.7mA |
| 通信インターフェース | I2C 通信 @ 0x3E |
| 表示サイズ | 1.14 inch |
| ピクセルピッチ | 0.1101 (H) x 0.1038 (V) mm |
| 解像度 | 135 x 240 |
| 視野角 | 全視角 |
| 動作温度 | 0 ~ 60°C |
| ケース材質 | Plastic (PC) |
| 製品サイズ | 48.0 x 24.0 x 8.0mm |
| 製品重量 | 8.6g |
| 梱包サイズ | 68.0 x 57.0 x 17.0mm |
| 総重量 | 21.3g |
回路図
ピンマップ
Unit LCD
| HY2.0-4P | Black | Red | Yellow | White |
|---|
| PORT.A | GND | 5V | SDA | SCL |
製品サイズ
データシート
ソフトウェア
Arduino
#include <M5UnitLCD.h>
M5UnitLCD display;
M5Canvas canvas(&display);
static constexpr char text[] = "Hello world ! こんにちは世界! this is long long string sample. 寿限無、寿限無、五劫の擦り切れ、海砂利水魚の、水行末・雲来末・風来末、喰う寝る処に住む処、藪ら柑子の藪柑子、パイポ・パイポ・パイポのシューリンガン、シューリンガンのグーリンダイ、グーリンダイのポンポコピーのポンポコナの、長久命の長助";
static constexpr size_t textlen = sizeof(text) / sizeof(text[0]);
int textpos = 0;
int scrollstep = 2;
void setup(void)
{
display.init();
display.setRotation(2);
canvas.setColorDepth(1);
canvas.setFont(&fonts::lgfxJapanMinchoP_32);
canvas.setTextWrap(false);
canvas.setTextSize(2);
canvas.createSprite(display.width() + 64, 72);
}
void loop(void)
{
int32_t cursor_x = canvas.getCursorX()-scrollstep;
if (cursor_x <= 0)
{
textpos = 0;
cursor_x = display.width();
}
canvas.setCursor(cursor_x, 0);
canvas.scroll(-scrollstep, 0);
while (textpos < textlen && cursor_x <= display.width())
{
canvas.print(text[textpos++]);
cursor_x = canvas.getCursorX();
}
display.waitDisplay();
canvas.pushSprite(&display, 0, (display.height()-canvas.height()) >> 1);
}
内蔵ファームウェア
通信プロトコル
Unit LCD について
- Unit LCD は ESP32 と ST7789V2 を搭載した I2C ユニットです。
- 解像度 135 x 240 の IPS パネルを備えています。
- 表示可能な色数は RGB666 の 262,144 色で、これは ST7789V2 の仕様です。
- ESP32 は I2C 通信を担当し、受信した内容に基づいてメモリ内にフレームバッファを描画します。
- ESP32 メモリ内のフレームバッファの内容は、SPI 通信の DMA 転送によって ST7789V2 に反映されます。
- フレームバッファ上では RGB888 の 16,777,216 色で表現されます。
I2C 通信について
- I2C 通信を使用して Unit LCD にコマンドを送信し、データを受信することができます。
- I2C 通信の最大通信速度は 400kHz です。
- I2C の 7 ビットアドレスの初期値は 0x3E です。CHANGE_ADDR コマンドで変更できます。
- 送信が必要なバイト数はコマンドによって異なります。1 バイトで完結するコマンドもあれば、7 バイト必要なコマンドもあります。不定長コマンドは通信が停止するまで続きます。
- コマンド転送中に I2C 通信の STOP または RESTART が発生した場合、その中断されたコマンドは処理されません。必ず 1 つの転送シーケンスで最後まで中断なく送信してください。
- 固定長コマンド送信後は、別のコマンドを連続して送信できます。
- 不定長コマンド送信後は、コマンド終了を示すために I2C 通信を停止する必要があります。
- NOP コマンドや未定義のコマンドが送信された場合、I2C 通信が停止するまで通信内容は無視されます。
- I2C 通信ユニットと描画処理ユニットは並列で動作するため、描画処理中でも I2C 通信を行うことができます。
- I2C 通信内容は ESP32 メモリ内のコマンドバッファに格納され、描画処理ユニットが順次処理します。
- 広範囲の塗りつぶしや範囲コピーなど、負荷の高い処理を大量に送信するとバッファが溢れる可能性があるため、READ_BUFCOUNT コマンドを使用してバッファ残量を確認してください。
描画について
- FILLRECT を使用して、任意の領域を単色で塗りつぶすことができます。
- 単一ピクセルを描画する場合は、FILLRECT の代わりに DRAWPIXEL を使用できます。
- 前景色を省略したコマンドを使用した場合、最後に使用した色が使われます。
- CASET と RASET を使用して描画範囲を指定し、WRITE_RAW コマンドで画像データを送信できます。
- WRITE_RAW の代わりに WRITE_RLE を使用して、ランレングス圧縮された画像データを送信できます。
(以下のコマンド一覧、通信例、ファームウェア更新手順および画像は、原文の構造・内容を保持したまま、日本語化されています。数値、コード、表構造は変更していません。)
ファームウェア更新
- 方法 1:ESP32-Downloader を使用してファームウェアをダウンロードし更新
Unit LCD のケースを分解し、USB Downloader を使用してプログラムを更新します。


UNIT_LCD_FW ファームウェアを M5Core1/Core2/M5StickC/CPlus/ATOM/Paper のいずれかのコントローラに書き込みます。
Unit LCD を I2C ポートに接続すると、自動的に更新が開始されます。


UiFlow1
UiFlow2
動画