久々の配線

.11 2012 回路図ノート comment(0) trackback(0)


先日母校の文化祭に行き、その後同期とこんな話をしていた。
「最近の作品って全部マイコンで昔みたいなロジックICだけの作品とかもうなくなっちゃったよね」
「5054とか4033とか言っても今の世代には通じないんだろうな」
「でも7414くらいは使うんじゃね?」
「マイコンはクロック内蔵だしチャタリングもポートをスキャンする間隔を調整するだけで無視できるから7414すら用なしかも」
「大基盤にICがずらーっと並んでる作品とか久々に見てみたい気はするけどね」
「じゃあ作るか」
というわけで作った。

タッチセンサとLEDで線を共有する

.22 2011 回路図ノート comment(0) trackback(0)
3次元ダイナミック制御でタッチセンサとデータ線を共有するとタッチセンサの立ち上がりが異様に遅くなる現象が発生していましたが、一応解決しました。
図中の上から下に変更するとLEDの影響をほぼ完全にシャットアウトできます。


どうせLEDのキャパシタンスorリークが影響しているのでLEDの先にダイオード付けてLEDに流入する電荷を制限します。
ダイオードはリークがかなり少なく、静電容量もLEDに比べるとかなり小さいのでこれでかなり改善されます。
# まさかLEDにダイオードを直列に繋ぐ日が来るとは…

これだけだと電源によっては押しっぱなしにしているのになぜかゆっくり発振したりと意味不明な現象が起こったので、回路図にあるようにLEDのアノード側(トランジスタのコレクタに接続)をプルダウンしています。
今回のタッチセンサの抵抗値は1.5Mと6.2Mですが前と同じようにいい感じに反応してくれています。

折角安定してセンサのデータが取れるようになったので熱拡散シミュレーションでもやってみますかね。
3x3だとあんまりきれいに出ない気はしますけど。
# AVRの処理能力的に陽的Euler法一択ですね。

多次元ダイナミック制御

.16 2011 回路図ノート comment(0) trackback(0)
3x3x2色を制御するとき、普通なら次のような回路を考えます。


これだと3 + (3 * 2) = 9本のIOが必要になります。
これを一工夫して8本(3 + 3 + 2)で制御する方法を思いつきました。
さらに入出力共有制御と組み合わせてタッチセンサをつけてみました。

通常なら12本(3 for common, 3 for red, 3 for green, 3 for sens)のIOが必要ですが8本で済んでいます。


使っているのはPORTBの8本だけ。

LEDと同じ線を共有しているせいかタッチセンサの応答が鈍っています。
(触れられていないときHになるが、その立ち上がりが異様に遅い)
トランジスタの入出力容量なんて大したことないはずなのでLEDのキャパシタンスが邪魔してるのではないかと睨んでいます。

進展があったらまた追記します。

続 LEDのキャパシタンス

.07 2011 LED-sens comment(0) trackback(0)
以前のエントリで書いたことの検証実験をやってみました。
LEDの温度を上げると「暗い」判定が出やすくなることの検証です。
これは簡単で、起動後(キャリブレーション後)LEDの端子にコテ当てて温度を思いっきり上昇させればよさそうです。
結果。コテ当てた途端「暗い」判定しかでなくなりました。放置してLEDが冷えてくると最初と同じ感度で影に反応してくれるようになりました。
よって前に書いた仮説は正しいのではないかと思われます(キャパシタンス以外にも高温でVfが低下するとかいろいろ考えられますがキャパシタンスの変化が一番大きなファクターだと思っています)。

さて、昨日久々に秋葉行ってきました。今週もちゃんと巡礼して一安心です。
特に買うものはなかったのですが、LED-sensプロジェクトでダイナミック制御するとき、ひとつのセルにLEDの他にトランジスタも乗せることになりそうなので日米で安く買えるチップトランジスタの型番を調べました。
# チップじゃないと影ができるので却下。さすがにチップじゃないトランジスタを基板の裏に配線するのは気持ち悪すぎるw
日米でおじさんに聞いたらチップトランジスタの在庫表をくれました。毎度日米では本当にお世話になります。
定番の2SC1815とか2SA1015とかはありませんでしたが、まぁこいつら生産終了予定なのでこの機会に他のトランジスタの特性とか調べることにします。


今更ですが、微小電流の測定は普通はこんな変な方法は使いません(少なくとも精度が欲しい時は)。
大抵は非常に大きな値の抵抗を使って電圧を大きく降下させてその電圧を測定して流れた電流を割り出すと思います。
また、今回の場合ならLEDに並列に数Mohmの抵抗を付けてLEDの両端の電圧を計測すればその抵抗を流れた電流(~LEDの起電力)が割り出せます。LEDの起電力なんてたかが知れていて数Mohm挟んでも数十mVにしかならないのでこれをOPアンプでリファレンス電圧と比較するのが正統派です。

ではなぜこんな変な方法で計測しているのかというと、たくさん並べてダイナミック制御をするときにひとつのセルに高い部品とかかさばる部品とかを使うのはどうしても避けたいからです(OPアンプはちょっと…)。
それから影の濃さも判定したいので(かつダイナミック制御のことを考えるとセンサからの線は1本にしたい)電流を時間に変換するという怪しい方法になっているのです。
当然安物なので部品の性能にばらつきはありますが、大体はキャリブレーションでカバーできると考えています。
ただ人体の接近によるノイズとかは対処しようがない気がしています。

LEDのキャパシタンス

.05 2011 LED-sens comment(0) trackback(0)
いろいろ実験してみた結果、どうも点灯して消した直後と点灯しなかった場合でLEDの静電容量が結構違うのではないかという結論に至りました。
LEDのキャパシタンスで検索してもvoltage - capacitanceのグラフしかでてこなくて正確な値はわからないのですが、キャパシタ同様、温度によってかなり変化するのではないかと思われます。
アルミ電解や積層セラコンのキャパシタンスをプロットすると10~20度あたりで最大になる放物線っぽいグラフになります。
参考にしたLEDのvoltage - capacitanceグラフは-5Vで35pF, 2Vで75pFになる指数関数っぽいグラフになっていました。

今回はLEDの両端にかかる電圧はほぼ一定なのですが、ある程度点灯してから消した場合LEDの温度が上がっているのでキャパシタンスが小さくなり、トランジスタがOFFするまでの時間が短くなる気がします。
今回の場合は暗いときにLEDを点け、LEDが点くことでキャパシタンスが低下し、トランジスタがOFFしやすくなってますます暗い判定が出やすくなるというあまりよくない現象が起きていると思われます。
実際、暗いところに長時間放置(LEDが温まってキャパシタンス低下)してから明るいところに移すとなかなかLEDが消えてくれません(明るい判定が出てくれない)でした。

現在残っている課題は次の3つです。
  1. LEDのキャパシタンスの変化によると思われる感度の低下
  2. 全体的に遅い発振を繰り返している
  3. 人体の接近で変な反応を示す
3については人体の接近で明るい判定が出やすくなることもあればその逆もあり、原因の特定が難しいところです。
2についてはS/Wで適切な処理をすればなんとかなる気がしています(高周波なら前後数回の平均とかで対処できるのだが遅い発振なので補正が難航している)。

このプロジェクトは気分転換程度に進めていくことにして今日はParallel Computer Architectureの本を読み進めることにします。
 HOME