マトリックスLED
ESP8266(遠隔制御)
フルカラーLED
Arduino_IDE
経緯・概略・制御の基本
マトリックスLEDキットの組立て方
キット3個とマイコンで顔を
顔を表現するソフト
4個並べて電光掲示板
電光掲示板用ソフトとフォント
8×8マトリックスLEDキット(LEDドライバ付き)を4個
使用した電光掲示板の資料を
暫定版で公開しております。
電光掲示板用の資料をダウンロード
なおExcelツールの容量が大きくなっているため
MAX7219のデータシートは資料に含めておりません。
必要な場合は下記を利用いただければと思います。
MAX7219{マトリックスLED(8×8)}制御用資料をダウンロード
資料内の参考スケッチを使用される場合は
Excelツールを合わせて使用いただくと
Excelツール内で文字情報の2次元配列を作成し
IDEの所定位置へコピペすると
(置き換える)
表示する文字を任意に変更できます。
ドット情報はExcelツール内で
漢字1700文字を含めて
美咲フォントの情報を登録済みです。
なお文字数の設定は参考スケッチで100文字
に設定しております。
100文字以上使用したい場合も
設定変更して増すことが可能です
調整して使用して下さい。
当初50文字に設定してましたが
新幹線の車内の表示文字数を
カウントして100文字まで拡張することにしました。
Excelツールは半角文字非対応の
全角文字限定版ですが
試してみたい方は利用いただければ
と思います。
なお文字登録情報においてドット位置の誤りなど
ございましたら問い合わせボタンから
一報いただければ対応させていただきます。
またフォントのドット位置誤りなど
不備がございましたら問い合わせボタンから
一報いただければ修正して再公開いたします。
なお美咲フォントのドットに位置は
「文字拡大鏡
」というサイトを参照して
入力しました。
登録されていない漢字があった場合は
漢字シートにドット情報を
追記すれば使用できます。
顔を表現するパターンの作成時と同様に
Excelツールで点灯させたいLED(ドット)の位置に
「1」を入力することで、任意の表示パターンを
生成が可能ですが
文字数が多いと結構手間がかかります。
8×8で日本語表示は無理と思っていましたが
「美咲フォント」が8×8ドットを想定して
作成されたものであることがわかりましたので
流用させていただくことにしました
現在、半角は対応していませんが
美咲フォントの全角文字に関しては
Excelツールの中に以下を登録しましたので
よろしければ利用してください。
・英数字(全角文字)
・ひらがなかな(全角文字)
・カタカナ(全角文字)
・漢字(約1700字)
Excelツールを利用いただくと
登録された文字に関しては
文字入力だけでS/Wの作成が可能になります。
登録されていない漢字は「漢字」シートに
追加して使用すれば使用することができます。
一部の説明は顔のツールの説明と重複しますが
S/Wの概略は以下となります。
MAX7219制御用のライブラリが
用意されていますのでこれを利用します。
maxOne(X,Y,Z){関数}を以下のように使用
X・・マイコン側から何番目のキットであるか設定
Y・・キット上で何列目かを設定
Z・・縦1列の点灯状態を10進数に変換した値を設定します。
例(MAX7219が上側の状態){キットの表示状態}
最下部のみ点灯・・・・1
2番目のみ点灯・・・・ 2
最下部+2番目・・・・ 3
最上部のみ点灯・・・128
1列全点灯・・・・・ 255
顔を表現する場合と異なる動作として
表示する列を右から左へ1列ずつ
一定時間間隔でシフトする動作が必要になります。
この動作を実現するために
配列を使用します。
@Excelツールで表示する文字すべての情報を
2次元配列として生成します。
・・・・a[ ][8]
(IDEへコピペする箇所です)
A2次元配列を1次元に変換します
・・・・a[ ][8]→b[n]
※1
B表示する部位のみを別の配列で扱い
シフトする動作の準備処理を行います。
・・・・c[i2]=c[i2+1];c[31]=b[i3];
※1
Cc[ ]を>maxOne(X,Y,Z)に代入して
点灯を制御
※1 初期作成ソフトの動作です。
ループ内の処理がながくなり
ESP8266が不安定動作となるため
後で見直しました。
・・・・a[ ][8]→b
c[0]=c[1];・・・・c[i2]=c[i2+1];c[31]=b;
フォントの誤りを見つけられたら
連絡いただければ修正して
修正版を再公開します
フォント文字の追加も
依頼いただけば対応します。
特に画数の少ない文字で使用頻度の
高い文字が未登録である場合
御指摘大歓迎です。
下記問い合わせボタンを使用して下さい。
なお各文字(美咲フォント)のドットの位置は
「文字拡大鏡」というサイトを参照して
入力しました。(比較する場合の参考に)
Excelツールの使用方法
「設計」シートを開き
「ツール」ボタンでフォーム起動
まず水色のボックスにLEDに表示させたい文字列を入力します。
※Excelツール内では文字数は100文字以内です。
(100文字以上の場合は分割して配列を作成してください。)
次に、登録されていない文字がないか確認します。
「・・・文字の登録を確認する」ボタンを押下します。
全ての文字が登録できていれば下記表示がでるので
「OK」を押下げします。
下記のような表示が出た場合は未登録の文字があります。
今後も使用しそうな文字が未登録であれば
「漢字」シートに美咲フォントのドット情報を登録します。
あまり使用しないと思われる字の場合には
水色ボックス内の未登録文字を「?」などに置き換えて
再度「・・・文字の登録を確認する」を実行します。
後で「設計用」シート上の「?」の部位をドットを入力します。
未登録の漢字は「漢字」シートの末尾に
追加登録すれば使用できます。
漢字などの追加登録時に守るべきルールとしては
赤枠内が文字のドット情報
(点灯させる位置に「1」を入力)
赤枠の左上角のドットの一つ上の位置に
登録する文字を入力します。
行は10行周期、列は9列周期になっています。
なお文字登録は左詰め、上詰めで登録します。
データの読み込みは
左端から右へ順に読み込みます
その行で空白があると右端と判断し
次行左端へ移動、再度左端から右へ読み込みます。
左端列が空白となった行でデータは終了と判断します
すべて登録されている場合は下のボックスに
文字列が表示されます。
これでドット情報をシートに
表示させる準備は完了です。
「文字を記入する」ボタン押下げで
ワークシート上にフォントのドット情報が記入されます。
マクロは各シートに登録されたフォント情報を検索して
「設計用」シート上にドット情報を反映していきます。
「設計用」シートの「B列」の5行目から下が
文字のドット情報を2次元配列化したデータです。
1つのセルが1文字分のデータであり、
1行目が1文字目、2行目が2文字目・・・
となっています。
この2次元配列をArduinoIDEで
開いた参考スケッチの指定場所に
置き換えて(コピーして)
使用します。
1)まずArduino IDEで新規スケッチ作成
2)資料内の参考スケッチ
「LED掲示版_Ver??.txt」(テキストファイル)を
Arduino IDEにコピーして任意の名前で保存
3)Excelツールから2次元配列を所定の位置へコピペ。
4)文字数にあわせて「m」の値を設定するだけです。
経緯・概略・制御の基本
マトリックスLEDキットの組立て方
キット3個とマイコンで顔を
顔を表現するソフト
4個並べて電光掲示板
電光掲示板用ソフトとフォント
(最終更新 2019-01-20)