LED Tower

開発目的

複数のLEDを一つのマイコンで行う方法を模索する。
ここで検証された方法を用いることでLEDを使用したメディアアートの演出制御を容易にすることを目的とする。

システム概要

ハードウェア

LEDについて

LEDにはアノード(+極)とカソード(ー極)という2つの極がある。

注*

アノードを電源側、カソードをグラウンド側に配線することでLEDは発光し、逆に繋いだときは光らない。

詳しく知りたい方はこちらを参考にしてください。
www.my-craft.jp
*注 : 図はhttp://www.my-craft.jp/html/aboutled/led_kyokusei.htmlより引用

ハードウェア概要

LEDを3×3×6のタワー状に配置して、1つのarduinoを使用して任意のLEDを光らせることを目指す。
今回はLEDのアノード同士/カソード同士を接続することで同時制御を可能にする。

上から見て重なるLED同士でアノードを、横から見て同じ高さにあるLED同士でカソードを共有する。
アノード/カソード同士の共有は半田付けで行う。

装置の作り方

1 . LEDのアノード(長い方)を根元から90°折る
2 . アノードの付け根から2mm程度の箇所で下向きに90°折る
3 . カソードの付け根から2mm程度の箇所を横向きに90°折る
4 . 1~3を繰り返し、同じものを3×3×6=54個つくる
5 . 直角に曲げた箇所と、接合するLEDの端子を半田付けする

f:id:tsh982:20200728193714j:plain:w400

arduinoでのLED制御

説明の便宜上、アノードにa〜i カソードに1〜6を図のように割り振る。

アノード側の電位がカソード側の電位より高くなっている時に発光する。
arduinoの端子ではHIGH(5V)とLOW(0V)の切り替えができる。
これを組み合わせることで任意のLEDを光らせることができる。

例えば、正面から見て一番手前の(g,h,iの)層のHigh/Lowの関係とLEDの光り方の例を示す。
f:id:tsh982:20200728202131p:plain:w200

配線

上で定義したアノード/カソードの番号に対して、図のように配線していく。

図中のスティックとはジョイスティックのことであり、後に説明するLEDの点滅パターン制御に使用する。
f:id:tsh982:20200728185503p:plain:w600
このモジュールは、スティックのx,y方向の値を0~1023で返す。
また、スティックを押し込むことでスイッチを押すことができ、通常時に1、押し込まれると0が返される。

ソフトウェア

機能

以下の二つの機能を実装する。

①天気の表現

LEDの点滅パターンで天気(晴/曇/雨)を表現する。

また、スティックを左右に倒すことでどの天気を表示するか切り替える。
スティックを左右で倒すことで変数を下のように遷移することで実現する。
f:id:tsh982:20200728192058p:plain:w400

②サイコロ

1~6の中からランダムな値をLEDタワーで表示する。
出目がnのとき、下から数えてタワーの1~n番目のLEDが全て点灯する。
例えば、出目が4の時の見た目はこのようになる。
f:id:tsh982:20200728203007p:plain

デフォルトは天気モードで、スティックを押し込むことでサイコロモードへ遷移する。
サイコロモードが終了すると自動的に天気モードへ戻る仕組みにする。

実装

今後の応用

今回はarduinoの端子の数を考えて手軽に作れる336のタワーを作成したが、シフトレジスタを使用することでより大きいタワーやキューブが作成できそうなことが分かった。
また、今回実装した仕組みでは表示不可能なパターンも存在してしまう。
例えば図のようなパターンを表示させたい時、(g,h,i)=(H,L,H),(1,2,3,4,5,6)=(L,L,▲,▲,▲,▲) とする必要がある。(▲はH/L任意)
f:id:tsh982:20200728204500p:plain
しかし、この組み合わせでは(g,5)と(i,6)も点灯してしまい、欲しいパターンが入手できない。
これでは不便なので、さらなる改善の余地がある。

また、天気の表示について、今はスティックを使用してモードを切り替えているが、これを湿度センサなどを使うことで実用性のあるものにできるかもしれない。
また、動画を見てもらってわかるように、今のままでは(雨だけは何とか分かるが)天気がわかりづらいという難点もあり、表現力を高める必要も出てくる。

何はともあれ、3×3×6のタワーは作れたので、次は上にあげた課題に取り組んでみたい。