この記事は前回からの続きとなります。前回をご覧になっていない方は是非こちらもご覧ください。
コントローラー
前回の記事まででセルの基板は一通り完成したわけですが、電源とクロックがなければ動作しません。というわけでこれらを供給するコントローラーを作ります。
コントローラーに求める必須条件は
①クロックの ON/OFF
②クロックの速さ調節
としました。
電源の ON/OFF についてはコントローラーの電源ごと ON/OFF すればいいと思ったので、実装は見送りました。
また、今回のアナログライフゲーム制作のコンセプトの1つとしてマイコンを使用しないというものがあるので、コントローラーにもマイコンは使用しないことにします。
というわけでクロックは電子工作ではおなじみの、タイマーIC 555 を使用します。
その他にインジケーターとして LED 等を付けました。一応部品リストを載せておきます。
- タイマーIC NE555P
- 基板用2連可変抵抗 A10K
- Nch MOSFET BS170
- 10連LEDアレイ
- レベルメーターIC LM3914N
- オペアンプ LMT358N
- 半固定抵抗、抵抗、コンデンサ、LED
- スライドスイッチ、XHコネクタ、microUSBコネクタ
回路図はこんな感じです。部分ごとに説明したいと思います。
555+可変抵抗
555 の使い方はこちらのサイトを参考にさせていただきました。
回路図の中央下にある RV2A が可変抵抗で、これを変化させることによってクロックの速さを変更します。
今回はデューティー比はどうでもいいのでこのような単純な接続になってます。
可変抵抗のカーブは Aカーブのものを使用しました。Aカーブは下に凸のカーブです。(抵抗が大きいほど周波数は小さくなるので、回転の向きを逆にして使用します。図は左右反転することになります。)
クロックの周期は抵抗値に対して1次なので、周波数は-1次となります。Aカーブが仮に y = 1 / x だったとすると周波数が可変抵抗の回転量の1次になると考えました。
(そもそも周波数が線形で変化したところで人間の感覚的に線形に感じるのかも不明ですが)
実際に試してみた感じだと、周波数が回転量に対して Aカーブ(下に凸)になっているように感じました。
まあ単調増加で微調整ができれば何でもいいと思います。(後述のレベルメーターのことを考えると Bカーブにしておいた方が良かったかも)
抵抗やコンデンサの定数はクロックの最大と最小を基準に決めました。
可変抵抗が 0Ω のとき 28Hz、10kΩ のとき 0.7Hz となります。
出力制御
クロックの ON/OFF をスライドスイッチで制御します。左上の R6 の左に 555 の出力があって、結節点の上側に出力用のコネクタがあります。
初めは 555 のリセットピンを使おうと思ってたのですが、リセット解除時(= クロック ON時)に動作が安定しないのか、ライフゲームの計算にエラーが多発したので MOSFET を用いることにしました。
R2はリセットピンを使用していた時の名残です。外すと基板の見た目のバランスが崩れるのでそのままにしてあります。動作には関係ないです。
ゲートに電圧がかかっているときはドレインが GND に落ちるので出力は 0 に固定されます。R6 は短絡防止用の抵抗です。
ゲートに電圧がかかっていないときは 555 の出力が R6 を経由してそのまま出力されます。
R6 を挟むことでクロックの出力不足にはならないだろうかと心配しましたが、結果的に大丈夫でした。
レベルメーター
つまみは無段階で回るので、クロック速度の再現性を確保するためにレベルメーターを実装することにしました。(カッコいいから付けてみたかっただけ)
アナログライフゲームを動作させるときは部屋の明かりを消すことも想定しているので、そのとき邪魔にならないようにレベルメーターの電源は 555 とは別にしてあります。(クロック確認用の LED も一緒に消えます)
レベルメーターIC の周辺回路は秋月のキットを参考にしました。
回路図中央付近にある RV2B が可変抵抗です。2連の可変抵抗なので、555 の方で出てきた可変抵抗と同一です。
LM3914 は入力電圧に比例する数の LED を点灯させるので、可変抵抗のカーブが直線でないと回転量と点灯数が比例しないことになります。
また、先ほど可変抵抗は Aカーブだと書きましたが、単純に考えることはできません。
つまみを回すほど周波数が上がり、メーターも上がってほしいわけです。しかし、周波数は抵抗が小さいほど大きくなるのに対して(①と③の端子に電圧をかけた時の②の)電圧は抵抗が小さいほど小さくなってしまいます。
そのため、回転に対して抵抗が増加する部分、図で言うと R’ の部分を使用することになるので実質的には Cカーブということになります。
可変抵抗と並列に入っている R5 はカーブ調節用の抵抗で、これによってカーブが若干直線に近付きます。
やっぱり Bカーブの可変抵抗にしておくべきだったと思いますね。
ちなみに、このIC は電流制御されてるので LED に抵抗を入れる必要はないのですが、オープンコレクタ出力なので LED の向きを逆にすることはできません。
回路図左側にあるオペアンプは基準電圧作成用のボルテージフォロワという回路で入力電圧をそのまま出力します。
先ほどレベルメーターIC は入力電圧に比例して出力すると書きましたが、その傾きは IC にかける基準電圧によって調整できます。
同じ入力電圧でも、基準が大きいほど出力は小さくなるわけです。
この基準電圧は電源電圧まで上げることはできません。(その場合入力に電源電圧をかけても全部点灯しない)
普通は IC 側の基準電圧も調整するべきなのですが、今回は IC 側の基準電圧には電源電圧をかけたまま、入力電圧の最大値を調整する方向で対応しました。
つまみをいっぱいに回したときにちょうど全部の LED が点灯するようにオペアンプの半固定抵抗で調整しました。
組み立て
というわけでコントローラーを作りました。
左側につまみとクロック ON/OFF スイッチ、右側に電源用 micro USB、上側にライフゲーム基板へ接続するコネクタが出ています。
秋月電子で売っているアクリルパネルを取り付けました。アクリルパネル使用するのは初めてなんですが、かっこよくて気に入りました。
裏面はこんな感じになってます。
電源とクロックはスズメッキ線で、そのほかは UEW で配線しています。
今回は UEW の配線を特に頑張りました。今までで一番上手く配線できたと思います。
ちなみに、最初に買ったつまみはサイズが微妙に合わなくて悲しい思いをしました。
ループ配線
クロックコントローラーも完成したので、本格的に動作させてみようと思うのですが、外周部の入力が浮かないように処理しないといけません。
前回の12セルの動作テストではジャンパ線でブレッドボードに繋げてましたが、今回は上下と左右をジャンパ線で繋げてループさせる作戦で行きたいと思います。
写真をよく見ると、縦糸と横糸が編み込んであるのが分かると思います。編み込むのは面倒ですが、一度作ると形が崩れにくくて良かったです。
ジャンパ線はこちらの20mmで40pのものを使用しました。秋月でオスーメスのものが売ってなかったので、オスーオスとメスーメスを合わせて使用しています。
ピンヘッダ、ソケットとジャンパ線のコネクタの相性によってはゆるゆるですぐ抜けることがありましたが、コネクタの向きを変えると抜けにくくなることが割とありました。
動作テスト
クロックとループの動作テストになります。
ループのおかげでグライダーが飛び続けます。途中でクロックの速さを変えているのも確認できると思います。
最後に
本当はこの vol.2 で完結するつもりだったんですけど、意外と分量が多くなってしまったので今回はここまでにしたいと思います。
最後までご覧いただきありがとうございました。
↓次回は関連アイテム制作とデモ映像となります。