組みあがったら、まずは現状復帰を目指す。
前段階があるのであれば、ハード的な差を適用し、ほぼ同一の動作まで持ち込む。
なにぶん、バラック状態で組んでいたため、構造的にきれいになっていないので
その辺をゲンナリしながら直していく。
その過程で、構造的な部分を検討していく。
割り込み内で間に合うなら問題ないが、時間をオーバーし割り込みをスポイルするようであれば
メインループのidle時間に処理をさせることも考えなければならない。
さしあたって、まずはダイナミック点灯の周期をソコソコのところに決めなければならない。
長くても短くてもダメ。
1秒間に書き換える回数と、その中でさらに細かく輝度・階調の変化を付ける粒度との兼ね合いになる。
そして、ドロップダウンアニメーションの処理も、まともなものに置き換えなければ。
時間効率というか、実行する命令数としてまずできるだけ小さくすることが求められる。
最終形態を時計とする上で、解決すべき問題は実は多い。
あとは時間精度をどう確保するかという課題もある。
この時点ではまだまだ、内蔵CRで1秒を作ればいいだろうと思ってたわけだが。
つづく
回路的なことを少し書いておく。
この回路のキモは、HC238の数珠繋ぎにある。
8セグメントx3=24個のうちの任意の1個を選択する回路になる。
HC238は3bitで8つのうちひとつを選択する、それがLEDマトリクス1つ分。
さらに上位に2bit追加して3つのHC238を選択させる。
メモリーのデコード回路そのものなのだが・・・最近の人はそれすら知らないだろう。
このHC238/HC138は主たる3bit以外に有効/無効を指定するためのピンが3つある。
つまり、この3つのピンの条件が揃わなければ、3bitでの選択信号は出力されない。
この信号をうまく使えば、3つのHC238を制御することができる。
なんだかんだ言っても、この選択回路、今回のキモだ。
さらに言うなら、全出力を無効、という状態を用意することが必要。
この状態がないと・・・・いろいろと不都合が起きる。
データの書き換え時は全消灯を一度挟む。
電源投入時には勝手に点灯しては困る。
使う使わないではなく、安全策として必要不可欠。
案外、これを忘れる。
そんなところか。
要は単純なデコード回路だってこと。
ここ数年、自分が手を動かす、というのは、大概は基板CAD上で設計することを指すようになっていたのだが。
久々にガッツリと配線作業。
何年経っても、一度確立した手法はなかなか手を離れない。
道具としてのPCBEなど、もう使う気もなかったのですが、ユニバーサル基板を作るとなれば
使わざるを得ないわけで。
きっちり設計して少しでも資料を残す。
これって実は大事なことで。
一度、LEDマトリックスモジュールは頓挫した経験があったのだが
今回はその1/2の配線量だったのもあり、なんとか乗り切った。
LED-MATRIX1組分の動作確認を終え、これを3つ組み合わせる。
実は、LEDモジュールを買うときに、秋月電子の店頭でいつもとは違う基板を手に取った。
緑色の長細いユニバーサル基板。
これに、8x8ドットのLEDマトリックスモジュールを載せると、ぴったりの幅で、
ちょうど3つ載るぐらいの長さ。
これは何かと都合がいい。
DIPのCPUとHC238、トランジスタアレーを載せるとちょうどいっぱいいっぱい。
それを2段重ねにしてLEDマトリックス。
この構造は、なるべくしてなったと言える。
この時点では、正確な時刻を刻むすべについては、何も考えていなかった・・・
プロジェクトはここから始まるといった割にひどいタイトル(笑
それと同じ時期に。
LED-MATRIX 8x8のモジュールを3つ並べると、一番外周がちょうど60個になるって、気がついた。
これって、秒針と同じ数。つまり、60個+αのLEDがモジュールとなってそこにある。
LED-MATRIXの制御回路って、実は今回の時計と全く同じ。
1グループ8個のLEDが8組あるだけ。
まるで1グループ5個のLEDが12組あるのと同じ理屈。
回路定数を拾うにあたり、試作するのも悪くないかな、と思い、
まずはモジュール1つで試作。
回路構成はといえば、普通にシフトレジスタを並べるのではなく、
74HC238という3to8デコーダーを使う。
3bit出せばどれかひとつを選択してくれる。HC138の出力がHiになったタイプ。
アノード側は必ずひとつしか同時にONになってはいけないというのだから、この用途にぴったりではないか。
カソード側は普通にドランジスタアレーをONしてやるだけ。
回路のシンプルさを追求して部品を削るよりも、
回路的にできるだけ正しいものにしたい。
なので、多少ゴテゴテと部品が載るのも愛嬌。
同時に。
ソフトウェア的な面からも検討をしておきたい。
当然、ダイナミック点灯だし、1ドットづつの制御が出来るように仕組みが欲しい。
できれば階調表示も。
そんなことを考えながらATmega328でプログラムを書く。
5Vで動いてる分には問題ないが、3.3Vにすると、光り方が暗い。
どうも、カソード側のトランジスタアレー自身の電圧降下が原因らしい。
TD62083のVcesatというパラメータが1V近くになってるのが良くない。
以前作ったとき(注:5年以上前)の回路図を調べ、
現物からとりだしたのはTD62381。
こいつだとVcesatは0.4V前後で済む。
同様の理由でアノード側のトランジスタアレーについても再考がひつようなのだが
昨今のトランジスタアレー大量ディスコンイベントの煽りで、殆ど死滅。
そのなかの数少ない生き残りがTD62783。
これはもう、どうにもならない。
もうひとつ。
LED-MATRIXでやるなら、ということで考えていたこと。
数字が上から下へ降りていくアニメーション(ドロップダウン)を付けたかったので
それもプログラムに仕込む。
そこまでやれば、ほぼ技術的な部分は固まったといえる。
このプロダクトがいろいろ絡みすぎて説明しづらいのは、
メインの成果物以前に、いくつかの形が違う「何か」があるからで。
この時点で、同じ回路でありながら、2つの基板に関するアイディアがごっちゃになってるのだ。
そして、どちらも「派生」ではなく私にとってはメインストリームだということ。
はっきり言って、今回のプロダクト、いろいろと絡みすぎ。説明しづらいwww
2010年、夏。
SpecForMintiaをやってる最中。
せっかくAltiumの評価版が使えるんだから、やるだけやってみようと思い立つ。
とりあえず、思いつくまま、スタンダードな回路図を引くが、
後追いの都合もあり、先駆者とは違うものを選びたい。
秒針を2色LEDにする。
7SEG-LEDは面実装品。
完全な円形ではなく、四角に配置する。
どうせなら、青い7SEG-LEDと赤青の2色LEDで作る。
とりあえずは、この方針で設計を開始。
回路については他で書くが。
結局、この配置の基板は完成までは行ったのだが。
今ひとつ、見栄えがぱっとしないのと
2つもプロダクトを製造にかける余裕はない、
その他もろもろの雑念もあって
そのままお蔵入り。
そして、本当のプロジェクトは、この屍を超えるところから始まる。
(パチンっ)
話をしよう。
あれは今から36万・・・・いや。1年と3ヶ月前だったか・・・・
まあいい。
私にとってはつい昨日のことだが、君たちにとっては多分、明日の出来事だ。
・・・・・なんてことを考えて検索掛けると、仕事がまったく進みませぬ(を
というか、着地点がまったく思いつかないので、本題。
数年前のMTM04に行ったとき、Silriumという方のブースで
LEDを円形に配置し秒針とした時計を見ました。
LED表示の時計はいくらでもありましたが、60個のLEDを円形に並べて秒針にするというアイデアを
見たのは、私にとっての衝撃でした。
参考までに↓
帰ってきてから、いろいろ調べて、結構前からあるのだということを知りました。
LEDを円形に並べる、というのは。
機能のない基板CADでやるには、かなりシンドイはず。
ましてや、円形の配線パターンなど、サポートされるのか、という世界。
過去に仕事でやってるので、出来ることはわかってるんだけど。
EAGLEでよくやるなぁ、と。
でも、面白そう。円形に配線するのは、実は結構楽しい。
平行の線より、完成が美しい気がする。
いつかはやってみたい。
しかしな・・・2番煎じではな・・・
そう思い、しばらく忘れることに。
どっから書いたらいいものやら。
とりあえず、MTM06の展示内容から。
LEDMatrixの時計(DropDown時計)
LED時計(LED CIRCRE CLOCK)
実装屋が実装した基板
その他、MINTIAサイズのMP3プレーヤーとこれまで作った基板の生板
でした。
時計2種については、実は、ほぼ同じ回路。DropDownはCIRCREの試作検討用に作ったもの。
ファームウェアの基本構造は共通。CPUのグレードが違うので、その部分ぐらい。
その辺のことを、これから記事にしてい・・・く予定。
しばらく放置されてたw
某M氏から結論が帰って来た。
「ISSPの線とCapSensの線を共用するなよぼけがぁぁぁぁ!!」
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ごめんなさい(T_T)
いろいろ調整してくれたり、I2Cの変換ブリッヂまで作ってデバックしてくれたらしく
感謝に堪えない。
こっちでも、もう一枚実装して、ISSPへの線をぶった切ってみるよ。
まあ結局、シビアなものを扱ってる関係上、ビアや分岐は
あってはならないってことなんだろうなって当たり前か。
よくよく気をつけてはいたんだけどねぇ
PSoCの機能配置が嫌らしくてな。
あと、ピン配置も、ヲレから言わせればぐちゃぐちゃ。
日本メーカーのCPUを見習って欲しいわ。
まあ、とにかく。
16キーのうち9しか反応しないらしいが、これにて完成と。
もう疲れた。このネタ。
基板は直さなきゃいけないしね。。。
もうそろそろ、このネタ疲れてきた(T_T)
小型版のMP3プレーヤー用の入力として、
小型版のタッチセンサー基板を作ったのでした。
もちろん、単体での検証は終わっていますので、今度はUSBデバイスではなく
単純な入力デバイスとしてコードを書き直しましす。
とはいえ、USBにつながらない以上、デバックの方法がないので(笑)盲目デバックですが。
MP3基板側のキー入力ルーチンはなるべくそのままで、タッチセンサー基板側であわせこむ。
7つキーが並んでいますが、とりあえずは縦に並んでるものをグループとして、同じキーに割り当てます。
そして、これをスイッチ入力と同じビットパターンになるようにポートへ入れてやれば
MP3基板側はコードをいじらなくても済む。せいぜい入力で読むポートを変えるぐらい。
長押しも、ダブルクリックも、MP3基板側で処理できる。こっちはスイッチのフリをすればいいだけだ。
そんな感じで。
だいぶ長いこと、やってた気がするが、これで一通り、基板が動いたことになる。
動作の様子はこの辺
まあ、こんなものでしょう。