マトリックスLEDのWifi遠隔制御  Wifi Lチカ概要  マトリックスLEDの制御
Wifi マトリックスLED 遠隔制御

はじめに
試作当初、マトリックスLEDを遠隔制御しようという思いは無く
@マトリックスLEDを使ってみたい(単独で制御してみたい)。
A旅先から菜園に散水する遠隔操作をしてみたい。
という個別の2つの思いがあり
それぞれ試作して実現のメドが立ったところで
双方の動作確認用のベースボードを作成してみることに、
(1枚の基板で双方を試せるように作成)
このベースボード設計時に、
マイコンの選定でESP8266を採用したことにより
派生的に@Aを組み合わせて
マトリックスLEDも遠隔制御してみようと
思いついたものです。
なお、このページを見て試してみたくなった方のために、
参考資料も準備しました。
使用(活用)する場合はあくまで自己責任での使用が前提ですが
活用いただれば幸いです。

マトリックスLEDは市販されている、
LEDドライバ付きのキットをカスタマイズして
(ヘッダーピンの形状は変更しています) 3セット準備しました。

マイコンはスイッチサイエンスさんにて販売されている
WROOM-02(ESP8266)の
開発ボード又は変換基板(フル版)
をヘッダーを付けて装着できる仕様としました。
基板(ベースボード)は両者に対応するため、ダブルパターンとしました。(後述)

これらの他に3.3V⇒5Vレベル変換IC、C、R、LED、
給電用USB_CN、ローディング用CN等必要な部品を組み合わせて
ベースボードに実装(装着)することのより、
@又はAを体験できる基板に設計しました。
(※なお散水は本来電磁弁の制御ですがLEDで代替します)

最初はユニバーサル基板上で試作しましたが、
マトリックスLEDキットのピッチと合わないこともあり
このことが基板を起こすきっかけになりました。
なお回路設計および基板設計は
DesignSparkPCBを使用しています。


遠隔制御はテキストファイルのアップロードで実現します。
詳しくはWifi Lチカ概要に記載していますので興味のある方は
こちらを参照いただければと思います。
下記(1)〜(3)の手順です。
(1)PC等からテキストファイルのアップロード
(2)ESP8266でテキストの値の読み込み
(3)I/O制御の手順です

マトリックスLEDを実装せず8個のLEDを実装すると
LEDで遠隔操作を体験できます。
最初からいきなりマトリックスLEDを遠隔制御しようとすると
慣れない方は混乱する可能性があります。
まずはLEDの遠隔制御を試していただくと
理解しやすいかと思います。


マトリックスLEDのWifi遠隔制御も
H/WはマトリックスLED制御と全く同じです。
マイコンとマトリックスLEDキット3個を
ベースボード(下の図で左側の基板)
に組んで使用します(下の図で右側)。
この基板はLEDの遠隔操作基板も
兼ねていますが、
LEDや制限抵抗、ジャンパーは
SPIの誤動作を避けるために
非実装にしています。
WROOM-02開発ボードを使用すると部品点数は少なくなります。
左:ベースボード 右:WROOM-02開発ボードを装着した構成

またマトリックスLEDの制御も最初は
WIFI遠隔制御と切り離して体験していただいた方が
理解しやすいかも知れません。
うまくいかない場合はマトリックスLEDの制御を理解いただいた上で
マトリックスLEDのWifi遠隔制御を体験いただければと思います。


ベース基板の回路図はダウンロードできる資料の中に含めています。
動作保障はできませんが参考にして下さい。

ESP8266参考スケッチをダウンロード


ESP8266でマトリックスLEDの制御と
LED(8個)のWIFI遠隔制御に成功したら
その応用としてマトリックスLEDを遠隔制御します。
LEDの遠隔制御と同じくHPサーバーに
保存したテキストファイルの値を、
ESP-WROOM-02(Wi-Fiモジュール)開発ボードに
取り込ませ、その値に対応して
マトリックスLEDを制御をします。
マトリックスLEDの制御LEDの遠隔制御に成功していれば
あとは マトリックスLEDの制御(後半) と WifiLチカ概要
のスケッチを組み合わせて不要な部分を削除するだけです。


HPのTOPページ
(例:http://hogehoge.net/)
の直下にフォルダ
「test001」「test002」「test003」・・・
が作成されており
これらの各フォルダ内に
「TEST.txt」が
それぞれ格納されていることが前提です。
この「TEST.txt」内の文字列を
ESP-WROOM-02(ESP8266)に取得させ、
Matrix LEDを制御する 信号を
ESP8266に生成させます。


ダウンロードいただいた資料で
「WIFI_kao_001_9_10.txt」
が制御するためのスケッチとなり、
制御に使用するIOポートは
IO_13、IO_2、IO_0となります。


参考スケッチの下記行の
SSIDとPASSを入力して下さい
const char* ssid = "SSIDを入力";
const char* password = "PASSを入力";

また下記行のURLをあなたのHPのURLに変更して使用して下さい。
const char* host = "hokusetsu.iinaa.net"; //URLをあなたの・・

HPを持ってない場合は・・・・
このHPへのアップロードすることはできませんので
代替案として参考スケッチの以下の箇所を変更して
再ローディングすることで動作が変わることで体感して下さい。

String url = "/test005/TEST.txt"; //格納フォルダ、ファイル名を・・

各フォルダのデータを表にすると以下の通りです。
サブフォルダ TEST.txtの値
test001 10100000
test002 不定
test003 01010101
test004 10101010
test005 10000000
test006 01000000
test007 00100000
test008 11111111
test009 00000000


サブフォルダ名の「test005」を
「test006」「test007」「test008」「test009」等に
変更後、再ロディングして
点灯パターンが変われば成功です。

「test005」とすると目が左右に動きます。
「test006」とすると目が上下に動きます。
「test008」とすると目が左右に動いた後
で上下に動いてさらに次の動作となります。
「test009」とすると目の動きが停止します。

なお「test002」に格納されているTEST.txtは実験用ですので
時々変更しています。
「test002」のTEST.txtを開く


マトリックスLEDの表示パターンの作成は
マトリックスLEDの制御(後半)に詳しく記載していますが
下記資料内のExcelツールを使用すると簡単に関数を
生成できます。
MAX7219{マトリックスLED(8×8)}制御用資料をダウンロード



指定されている目と口の枠内に
数値の「1」を入力すると
セルの色が変色します
表情を確認しながら
イメージした表情のパターンが
Excel上で完成したところで
AN列にソースコードが
完成しているのでこれをコピペ
Arduino IDEの所定の位置に貼り付けます
後は次の表示パターンのソースとの間に
Delayを挟んでつないでいく単純作業です。

基本的にExcelツールで作成したソース(関数)をコピペし
Delayでつなぐだだけで作成できます。
マトリックスLEDの制御(後半)も参照下さい。

ただし作成したソースをコピペしていくと
同じコードを何度も書くことになります。
無駄を回避するべく関数を作成しました。

max0001、max0001、・・・、max0012は
静止パターンの関数です

一方、max001、max002、max003、max004・・・は
前述のmax00XXの静止パターンを
Delayでつないだ動作パターンの
関数になっています。

動画関数で静止画関数を呼び出すことで
同じ静止状態のコマンドを
何度もかくことを回避しています。

max00XXはフォント、max00Xは単語の登録
といった感じでしょうか・・・

max001は目を左右に動かします。
max002は目を上下に動かします。
max003は目をぐるっと一周動かします。
max004は細目で左右に動かします。

テキストファイルの先頭が「1」の場合は
「max001」を実行
テキストファイルの先2文字目が「1」の場合は
「max002」を実行
テキストファイルの先3文字目が「1」の場合は
「max003」を実行
テキストファイルの先4文字目が「1」の場合は
「max004」を実行


遠隔操作のためのPC側のツールとして
テキストファイルをサーバーへ
アップロードするツールが必要になります。
当初はFFFTPを使用していましたが、
BASP21とVBAでアップロードを行う
Excelのツールを作成しました。
Excelツールのフォームの操作だけで
遠隔操作を行えます。

マトリックスLED遠隔制御用に
フォームの形式はもう少し見直す予定です。



マトリックスLEDのWifi遠隔制御  Wifi Lチカ概要  マトリックスLEDの制御



(最終更新 2018-05-04)