2012年11月10日土曜日

ドットマトリクス時計(dotmatrix clock)

ドットマトリクス時計(dotmatrix clock)


16*16 2colorLEDのドットマトリクスを使った時計を紹介します。

動画:dotmatrixclock_cq.wmv

1. 概要

秋月電子通商で販売されている16x16ドットマトリクス2色LED LT-5016M1(http://akizukidenshi.com/catalog/g/gI-00039/)を使ってアナログ風12時間表示の置時計を作りました。制御にはmbedを使用しています。時刻設定はEthernetでNTPから時刻データを取得するので手動での時刻設定は不要です。LEDの制御にはTLC5940(http://www.ti.com/lit/ds/slvs515c/slvs515c.pdf)を使い100階調で滑らかな表示を可能にしています。
写真1-1~1-8に時計の各部分を示します。


写真1-1 正面



写真1-2 側面


写真1-3 背面(コネクタ)



写真1-4 上面



写真1-5 上背面





写真1-6 LEDモジュール(正面)


写真1-7 LEDモジュール(背面)



写真1-8 コネクタモジュール




2. ハードウエア

2-1.システム構成

図2-1-1にハードウエアのシステム構成を示します。外付けUSBはケースに組み込んだ後のプログラム書き換えのためです。mbedのUSB端子を使う場合は省略可能です。Etherは起動時にNTPで現在時刻を取得するために使用します。ドットマトリクスの制御はダイナミック出力で制御します。TD62783はドットマトリクスへの電源供給とRow制御を行います。TLC5940はドットマトリクスの輝度制御と、Column制御を行います。ドットマトリクスLEDは消費電力が大きいのでmbedのUSBからの給電では動作できません。このため+5V電源を外部から接続します。(Row、ColumnはドットマトリクスLEDの信号名です)



図2-1-1 ドットマトリクス時計システム図





2-2.回路図

次に回路図を図2-2-1~2-2-5に示します。



図2-2-1 回路図(mbed部)

 


図2-2-2 回路図(TLC5940部)

 


図2-2-3 回路図(TD62783APG部)

 


図2-2-4 回路図(LT5016M1部)

 


図2-2-5 回路図(USB、Etherコネクタ部)


図2-2-1のmbed周辺回路ですが、mbedに付属するUSB端子からプログラムを書込みする場合には、mbedのIF-、IF+、nRへの配線は不要です。USB端子を外付けする場合には、外付けUSBからmbedへの電源(Vbus)供給のためmbed側の改造が必要です。この改造については2-3で説明します。

図2-2-2のTLC5940はLEDをPWM制御するためのICです。IC1個で16本のLEDを制御できます。ドットマトリクスLEDは赤、緑の各16本ずつ制御するのでICは2個使用します。階調データ送信とPWM出力は同時に行うようにしています。

図2-2-3のTD62783はドライバICです。ドットマトリクスLEDの消費電流が大きいのでmbedのデジタル出力端子では必要な電流を供給できません。このためTD62783を使い必要な電流を供給します。また、ドットマトリクスLEDはダイナミック制御とする必要がありますのでそのためのColumn線の制御も行っています。

図2-2-4のLT5016M1は16*16 2色(赤・緑)LEDドットマトリクスです。ダイナミック制御で点灯します。Row線で点灯ラインを決め、Column線で点灯LEDを決めます。赤・緑でRow線は共通なので、Row線への電流供給は2ライン分の容量を持たせる必要があります。

図2-2-5のCN1は外付けUSB端子になります。mbedのUSB信号線はIF+、IF-端子にそのまま出力されているので、この端子にCN1のD+、D-端子を接続します。CN1のUSB電源(Vbus)はmbedのVU端子に接続します。本来VU端子は+5V電源出力なので、ここに外付けUSBのVbusを接続してはいけませんが、mbedへの外付けUSB接続通知をするために必要となります。この接続のためmbed側に改造が必要になりますが、これについては2-3で説明します。

図2-2-5のLAN1はEtherのコネクタになります。簡易的な接続ではTD+,TD-とRD+、RD-の接続で通信できます。今回の製作では、mbedとコネクタ間は10cm程度のケーブル接続としたためノイズの影響を受けやすく、通信ができませんでした。このためEtherコネクタのCTをmbedのVOUT(3.3V電源)に、GNDはmbedのGNDに接続しています。

2-3.USB端子の外付け

mbedをケースに組み込んだ状態でプログラムを書き換えする場合には、ケースにUSB端子が出ていると便利です。
mbedのIF+、IF-端子はmbedのUSBのD+,D-端子が直接接続されており、ここに外付けUSBのD+、D-を接続します。また外付けUSBのGNDはmbedのGNDに接続します。これは図2-2-1、図2-2-5の回路図の通りです。
しかしこの状態では、外付けUSBにパソコンを接続してもUSB認識しません。これは、mbedがUSBのVbus端子からの+5Vを認識して、D+をプルアップすることでパソコンがUSB接続されたことを認識するためです。外付けUSBのVbusをmbedのVbusに供給する必要がありますが、mbedには、このための端子が用意されていません。そこで、mbedのVU端子(mbed内USBのVbusからの+5V電源供給端子)に外付けUSBのVbusを接続した上で、mbedにダイオードを追加する改造をして対応します。
ここ(http://mbed.org/media/uploads/chris/mbed-005.1.pdf)にmbedの回路図があります。この2/5ページにUSBのVbus周りの回路があります。図2-3-1に抜粋を示します。







図2-3-1 mbedのUSB電源関係回路

ここで、R13が未実装となっており、ここにダイオードをAにアノード、Bにカソードが来るように接続すれば、mbedのVU端子からmbed内部のVBUSに電源を供給することができます。写真2-3-1にダイオードを接続した様子を示します。



写真2-3-1 mbedへのダイオード追加
この状態では、外付けUSBのVbusは電流制限がかからないので、図2-2-5にあるようにResettableFuse(500[mA])を入れておきます。この改造を行った場合でも、mbedのUSBは制限なく使用できます。ただし、mbedのUSBと外付けUSBは同時に接続使用はできません。必ずどちらか一方のみの使用となります。

上記ではmbedにダイオードを追加しましたが、図2-3-1の未実装R13のA側ランドに外付けUSBのVbusを接続すれば、mbed内部の電流制限機能が有効になるので、図2-2-5のResettableFuseは不要になります。ただし、この接続のために配線が1本必要になりますのでmbedを別の工作で使いまわす場合に不便です。
もっと簡単には、mbedのUSB端子に延長ケーブルを接続すればmbed側の改造は一切不要です。可能なら延長ケーブルを使用する方法が良いでしょう。

3. 組み立て

3-1.部品一覧









一覧表に示した部品の内、半導体以外の部品は型番にこだわる必要はありません。手持ち部品などを使用してください。また外付けUSBを使わない場合はNo.12,13,14の部品は不要です。
*1:1セットの数量が必要数量より多いので注意

3-2.加工・組み立て

ここでは置時計として使うための見栄えを考えた工作のポイントを説明します。

3-2-1.LEDモジュール

置時計として使うためドットマトリクスLEDと同面積の基板を奥行き方向に重ねるように部品配置をします。この部分の回路をLEDモジュールと呼ぶことにします。写真3-2-1-1にLEDモジュールを組み立てた状態を示します。




写真3-2-1-1 LEDモジュール

ドットマトリクスLEDの端子は2mmピッチですので、1.27mmピッチのユニバーサル基板の穴にピンを差し込みピン間隔を調整します(写真3-2-1-2)。その後で、1.27mmピッチピンヘッダを取り付けてユニバーサル基板に固定します。(写真3-2-1-3)ピンヘッダの使用しないピンは配線時の邪魔になりますので抜いておきます。ただし、+5V、GNDやTLC5940の制御線をこのピンを通して配線するので、この分の配線用のピンは残しておく必要があります。




写真3-2-1-2 ドットマトリクスLED端子トリミング

 


写真3-2-1-3 ドットマトリクスLEDピンヘッダ装着


配線に使用するユニバーサル基板はドットマトリクスLEDの画面の大きさに切り取ります。切断は、ピン穴に沿ってカッターナイフで両面に筋目を入れ、端をラジオペンチで固定して折り取ります。基板端面のスジ入れが浅いとバリが出ますので、基板端面の筋入れは入念に行ってください。写真3-2-1-4、3-2-1-5
ユニバーサル基板の切断でアクリルカッターを使用すると、基板の穴に引っかかりうまく切れません。ユニバーサル基板の切断には普通のカッターナイフが良いと思います。




写真3-2-1-4 基板の切断加工

 


写真3-2-1-5 両面、片面基板加工完了

写真3-2-1-1にあるように片面基板はドットマトリクスLEDとTLC5940の配線用、両面基板はmbedとTD62783APGの配線用として使用します。ドットマトリクスLEDの端子は4辺にあり、2列のピン群はColumn信号で、片面基板上のTLC5940に配線されます。1列のピン群はRow信号で、両面基板上のTD962783APGに配線されます。Row信号は片面基板を貫通して両面基板まで配線を伸ばします。このために、片面基板のパターン面に1.27mmピンヘッダを立て、対面する両面基板側にピンソケットを配置することで、2枚の基板の接続を行います。このピンヘッダ-ピンソケットではドットマトリクスLEDのRow信号だけでなく、+5V、GND、TLC5940の信号線も空き端子を使い配線します。(写真3-2-1-6、写真3-2-1-7)



写真3-2-1-6 片面基板側ピンヘッダ

 


写真3-2-1-7 両面基板側ピンソケット



片面基板の配線の様子を写真3-2-1-8に示します。片面基板へのTLC5940の配線の後、ドットマトリクスLEDの配線を行いますが、ドットマトリクスLEDの実装後の回路修正は困難ですので、配線間違い、断線、短絡の確認は充分行ってください。



写真3-2-1-8 片面基板の部品実装

両面基板への部品実装の様子を写真3-2-1-9に示します。両面基板は端子穴がスルーホールになっているため、基板両面で配線を交差させることができません。(スルーホールを通じて短絡する)このためパターンワークには注意してください。
mbedの実装には2列のピンソケットを使用しましたが、これは1列のものが入手できなかったためです。ただ、動作試験での信号の取出しには好都合でした。



写真3-2-1-9 両面基板の部品実装


 3-2-2.コネクタモジュール
ケースに組み込んだ場合にResetSW、Etherコネクタ、+5V電源コネクタ、USBコネクタの端子口をケースから出す必要があります。今回はこれらコネクタをまとめたモジュールを作成し、LEDモジュールとは別に配置することでケースへの取り付けを行いました。(写真3-2-2-1)



写真3-2-2-1 コネクタモジュール

ユニバーサル基板はLEDモジュールの片面基板の端材を使用しています。基板の配線面は、部品端子や配線材で厚みが出るので、台と基板の間にナットを噛ませて浮かせた状態で固定します。
台はアクリル(5mm)をケースの内寸法に切り出して使用します。基板固定用のネジ穴とネジ頭を埋め込む窪みを空けます。(写真3-2-2-2)


写真3-2-2-2 コネクタモジュール台

コネクタモジュールの固定位置はケースに組み込んだときに、コネクタ口端面とケース端面が合う位置になるように調整します。(写真3-2-2-3)



写真3-2-2-3 コネクタとケース端面の関係

3-2-3.ケース加工

ケースは100円ショップにあったMDケースを使用しました(写真3-2-3-1)。



写真3-2-3-1 MDケース

ドットマトリクスLEDをケース各辺に対して45℃回転して配置しました。ドットマトリクスLEDの各辺がわずかにケースに当たるので、干渉する部分のケース側を削りLEDモジュールを収めます。写真3-2-3-2、3.-2-3-3



写真3-2-3-2 ケース切り欠き




写真3-2-3-3 ケース切り欠きとLEDモジュールの嵌めあい

ケースの厚みもそれほど無く、ドットマトリクスLEDの角が強く当たると割れやすいので、この部分は注意して加工します。



写真3-2-3-4 ケースへのLEDモジュールへの組み込み

ケースの蓋はネジでケース本体に固定します。ネジ穴は、この後作るスモークフィルムを蓋に装着した状態で、蓋とケースを合わせて、蓋とケース本体を同時にドリルで穴あけします。こうするとネジ穴がずれません。穴を開けたら、ケース本体の内側にナットを接着します。このナットとねじでケースと蓋を固定します。写真3-2-3-5、3-2-3-6



写真3-2-3-5 ケースへのナット接着



写真3-2-3-6 蓋のケースへの固定

ケース下面の蓋固定用のネジにはペットボトルの蓋を挟み込んで置時計の足とします。写真3-2-3-7、3-2-3-8



写真3-2-3-7 ケース足

 


写真3-2-3-8 ケースへの足の固定


コネクタモジュールのケースへの組み込みでは、コネクタモジュールをケースに仮組みし、ケースに空けるコネクタ穴位置を確認して、アクリルカッターやドリルで穴あけします。電動ドリルで穴開けする場合、ケースの素材がスチロール樹脂の場合、ドリルとの摩擦熱で溶けますので回転数を落とすなどして穴開けします。穴あけ後はヤスリでコネクタと穴の位置を微調整してガタツキの無いようにします。ケースへのコネクタモジュールの組み込み位置が決まったら、コネクタ台のアクリル板とケースをアクリル用の接着剤で固定します。写真3-2-3-9、3-2-3-10



写真3-2-3-9 コネクタモジュール台とケースの接着

 



写真3-2-3-10 コネクタとケースの正面

3-2-4.ディスプレイ用スモークフィルム
ドットマトリクスLEDの前にスモークフィルムを置き、LEDの光を和らげています。スモークフィルムは、VTRの外箱のプラスチックを使いました。くもり度合いが低いので、2枚重ねて使用しました。写真3-2-4-1、3-2-4-2



写真3-2-4-1 VTR外箱

 


写真3-2-4-2 スモークフィルム切り出し


スモークフィルムはケース蓋とドットマトリクスLEDの間に挟んで使用します。このため、ケースの蓋はフィルム分浮くことになるので、蓋の固定穴を開けるときは、このフィルムをはさんだ状態で開けるようにしてください。

 4. ソフトウエア

ソフトウエアはmbedのWeb(http://mbed.org/users/suupen/notebook/2color-led-dot-matrix-clock/)からダウンロードしてください。

用意したプログラムは、電源投入時にNTPから現在時刻を取得し、mbed内のRTCに設定後、RTCの計時に従って表示を行います。

4-1.プログラムファイルの説明


プログラムは、機能単位でファイルを別けています。ここではファイル毎の機能を大まかに説明します。詳細は割愛します。必要に応じてソースファイルを解析してください。

表4-1 ファイル名と機能



* 1:http://mbed.org/cookbook/Ethernet
* 2:2011/09/19現在 NTPClientMinというライブラリに置き換わっています。(http://mbed.org/users/hlipka/libraries/NTPClientMin/llj6s5)

ライブラリはプログラムファイルに含まれているので、別途ダウンロードする必要はありません。








5. まとめ

今回の製作で関係するmbedWebをまとめておきます。
TLC5940制御サンプル:
http://mbed.org/users/suupen/notebook/tlc594016channel-led-driver-grayscale-pwm-control-/
USB外付け方法:
http://mbed.org/users/suupen/notebook/how-to-external-usb-receptacle-on-mbed/

以上

0 件のコメント:

コメントを投稿