LEDマトリックスコントローラHSES-LMC1には、ESP8266が搭載されており、 ESP8266にプログラムを書き込むことで、ネットワークから取得した 情報をLEDマトリックスモジュールに表示することが可能です。
このページでは HSES-LMC1のプログラムを作成する際に必要な情報を 提供します。
HSES-LMC1では、プログラム開発環境として esp8266-arduino を使用します。
インストール方法は、下記ページを参照して下さい。
ESP8266 Arduinoから HSES-LMC1を使ってLEDマトリックスへの描画、表示を 行うためにGitHubというサイトで、ライブラリHumblesoft_LedMatを提供しております。
GitHubからArduinoのライブラリのインストールの仕方については Arduinoライブラリのインストールのページを御覧ください。
Humblesoft_LedMatは、他のArduinoライブラリを使用しています。
下記の3つのライブラリもインストールして下さい。
LEDに文字と枠を表示する簡単なプログラム例lello.inoで説明します。
プログラムはHumblesoft_LedMatライブラリのexamplesに収められていますので、 Arduino-IDEのスケッチの例で呼び出せます。
以下のページでも参照、ダウンロード可能です。
このプログラムの動作した様子の動画です。
#include <Adafruit_GFX.h> #include <Fontx.h> #include <Humblesoft_GFX.h> #include <Humblesoft_LedMat.h>
使用するライブラリのヘッダファイルをインクルードします。
uint8_t imgBuf[1024*4];
Humblesoft_LedMatライブラリでは、LEDモジュールに表示するイメージを ESP8266側に持ち、そこに文字や図形等を描画し、まとめて全部 表示用サブCPU側にSPIで転送します。
イメージバッファのサイズは、使用するLEDモジュールの数、サイズ、プレーン数で 変化します。最大サイズのバッファを確保してしまうと、他の目的でメモリを使用 できなくなってしまいますので、ライブラリの外で明示的に確保、使用するようになっています。
必要なサイズは、下の式で計算できます。
必要なサイズ[byte] = LEDの数÷2 × プレーン数
例えば、 64x32dot LEDモジュール2枚を1プレーン(1階調8色表示)で使用すると
64 × 32 × 2 ÷ 2 × 1 = 2048 [byte]
2048byte必要となります。 64x32dot LEDモジュール6枚、4プレーン(16階調4096色表示)で使用すると
64 × 32 × 6 ÷ 2 × 4 = 24,576 [byte]
24,576byte必要になります。 大体、これが上限で これ以上のサイズを確保しようとすると、 コンパイル時に警告が出るようになります。
LedMat.begin(LMMT64x32s16); LedMat.setLedMode(1); LedMat.setImgBuf(imgBuf, sizeof imgBuf);
イメージバッファを設定します。
設定しないとLEDに何も表示されません。
LedMat.println("Hello"); LedMat.display();
println(), print(), printf()で文字がイメージバッファに書き込まれ、
display()でイメージバッファが表示用サブCPUに転送されてLEDに表示されます。
uint16_t fg = LedMat.rgb(colors[ci]); LedMat.clear(); LedMat.setTextColor(fg); LedMat.setCursor(4,8); LedMat.println(colors[ci]); LedMat.drawRect(0, 0, LedMat.width(), LedMat.height(), fg); LedMat.display();
LedMat.checkSubcon();