HSES-LMC1のプログラミング †LEDマトリックスコントローラHSES-LMC1には、ESP8266が搭載されており、 ESP8266にプログラムを書き込むことで、ネットワークから取得した 情報をLEDマトリックスモジュールに表示することが可能です。 このページでは HSES-LMC1のプログラムを作成する際に必要な情報を 提供します。 関連文書 †ESP8266-Arduino 開発環境 †HSES-LMC1では、プログラム開発環境として esp8266-arduino を使用します。 インストール方法は、下記ページを参照して下さい。 HSES-LMC1用ライブラリ †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);
イメージバッファを設定します。 描画 †LedMat.println("Hello"); LedMat.display(); println(), print(), printf()で文字がイメージバッファに書き込まれ、 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();
他の話題 †
|