なる研電子工作小品集>3次元電光掲示板(3D_LED)

3次元電光掲示板

3次元電光掲示板

 むかしむかし、ミニ電光掲示板を作りました。 このサイズだと振ることができるので、ダイナミック点灯を残像で確認するために振っていました。 法線方向に振って表示タイミングを旨く合わせたら3次元の立体を表示できるんじゃないか!? ってことでやってみました。  稚拙ながらC言語とやらを使うことにも挑戦してみました。

マトリクスドライバ回路

●LEDドライバ

 ドットマトリクスLEDのドライブ専用ICがあればシリアル転送できるので配線が減って楽なのですが、見当たらなかったので(実は探さなかった)、汎用ICを使ってパラレルでやってみました。アノードは非反転バッファ8本入りIC74HC241を2個で、カソードは2進4bitを16進デコードするIC74HC4514を1個と、トランジスタアレイTD62083AFを2個で構成してます。

●振動メカ

機構  平面のマトリクスLEDで立体を描画するには平面をその法線方向に運動させる必要があります。大きな円周を回転させる手もありますが、LEDの点灯デューティが短くなってしまうので、下図のようにして往復させることにしました。この場合、連接棒の長さLは回転半径rに対して長くするほどsinに近い理想的な振動をすることが予想できます。rはジャンク箱にあったクランクを使用したのでr=11mmです。で、これをExelに計算させたところ、Lは極端に短くなければほぼsinに近い動きをしてくれることが分かりました(下右画)。ここでは秋月のB基板に収まるギリギリのL=66mmにしました。秋月の紙エポキシ基盤は加工しやすくいろいろ使えて便利です、反っていても滑らかに動いてくれます。あとで調べたらこれをスライダ・クランク機構というらしいです。
3次元電光掲示板メカニズム

●スキャン

 LEDスキャンと振動の同期は、LEDスキャンを振動に合わせようとすると割り算をする必要がありそうで面倒なので、振動周期を制御してLEDスキャン周期に合わせるようにしました。方法は、z=0のところにフォトインタラプタを置いて往復する時間を測り、予定より時間が長ければPWMデューティを長くし、短ければPWMデューティを短くするという、簡単な積分制御です。
 そんなわけで同期するのですが、それだけではダメで、単純にやると下画のように往路と復路でドットの描画位置がz軸方向にズレます。これを解決するため往路と復路でスキャン方向を逆にしてみました。こうするとドットは往路と復路でほぼ同じ位置に描画されます。さらに、気持ち(1/16)傾けることで歪みを減らしてます。
スキャン方向による表示位置のずれ 3次元データをInt長2次元配列に格納

●unsigned static int vram[8][16]

 上画(クリック拡大可)の通りなのですが、トラ技に付録してきたHEW3で宣言しようとしたら、sectionBがsectionSにはみ出してると怒られました。sectionBの始まりが0xFB80になっていたので、これを0xF780に変更したら通りました。データシート曰く、この領域(0xF780〜0xFB7F)はエミュレータの【E10T】を使うために空けられてたらしいです。スクリーンショット
 何かアプリケーションを実装するときは、別にvramB[8][16]とかを設けてそこで処理させ、z=-1でvram[8][16]へ転送とか考えてます。

●可動部への配線

 直径0.12mmUEWを螺旋(らせん)状にしてみたりセロテープに並べたりしましたが、振動を始めるとすぐに切れてしまい、使い物になりませんでした。で、鈴商でみつけた15mm幅に30本通っているフレキシブルケーブルを使いました。これにUEWを直接半田付けし、ホットボンドで保護しました。ピッチが狭いので画のように交互に付けると比較的楽です。必要なのは32本ですが、失敗を考慮して2本多い34本半田付けしました。したら、ちょうど2箇所短絡していました^^;。
交互に半田付け ホットボンドで固める とりあえずマトリクスLEDに結線
3次元電光掲示板裏 実装密度が… 3次元電光掲示板できた〜

●3Dデータ作成ツール

 例によってJavaScriptで専用の3Dデータ作成ツールを書いてみました。非常に重いので注意してください。これでも、最初は立体視部分にデータを保持していて参照速度が遅く重かったのを、3次元配列に保持することで2倍早くしました。【WinME MSIE5.5 MMX200MHz RAM64MB】のマシンでデモデータの読み込みに2分かかりましたが、根気よく待っていれば落ちはしませんでした^^;。
 JavaScriptまとりくすこんば〜た3D(3d.html)【注意】IE専用。表示に時間がかかります。

3次元電光掲示板_四角錐 直方体 3次元電光掲示板
球? 三角錐? 3次元電光掲示板

●アプリ

ただデータを表示して終わってしまっては勿体無いので、シューティング・ゲームのようなものを書いてみました。
プログラム(C)  【動画 WMV 212kbps 5MB】  【動画 WMV 45kbps 1MB】

●主な参考文献

  • トランジスタ技術2004年4月号(H8とその開発環境が付録)
  • トランジスタ技術2004年5月号(4月号応用例集)
  • どすぶいだにょ☆創刊号 (ドットマトリクスLEDの使い方)
  • どすぶいだにょ☆第3号 (電光掲示ファンの製作)
  • ルネサステクノロジ H8/3694 シリーズ ハードウェアマニュアル
  • ルネサステクノロジ H8/300 シリーズ C/C++コンパイラ、…ユーザーズマニュアル(C/C++言語仕様)
  • 学校の先輩から借りたANSI-C教科書(のnaru独習ノート)
  • なる研 日記〜軌跡〜 3次元電光掲示板な日々


    <<電子工作小品集へ戻る

    Since 2004/08/30
    LastUpdated 2005/05/02
    Copyright 2004 Naru
    アクセス  今日今日のアクセス  昨日昨日のアクセス