FrontPage

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);

イメージバッファを設定します。
設定しないと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();

他の話題


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS