前々回でライフゲーム基板、前回でクロックコントローラーを制作しました。
第3回の今回は関連アイテムを作って完成となります。
前々回、前回をまだご覧になっていない方は是非そちらを先にご覧ください。
キャップ
前回さらっと説明しましたが、入力を浮かせておくと正しく計算できません。回路のおさらいですが、8つの入力電圧の平均が周囲の生存数の信号となります。そのため入力が浮いていると平均の分母が減ることになるからです。
抵抗で計算しているので、プルダウン抵抗を付けるわけにもいきません。(アナログならではの問題ですね)
前回はループ状に配線してこの問題を解決したわけですが、必ずしもループさせたくない場合もあります。というわけで入力を GND に落とすアイテムを作ります。
例えばこれは基板右側のピンヘッダのピン配置ですが、4番ピンが GND で 6, 7番ピンが入力なのでこれらをショートさせてやります。
ちなみに 1番ピンは斜めの信号を中継するためのピンなので処理する必要はありません。
他の方向のピンヘッダ、ピンソケットも同様です。
出来上がったものがこちらになります。
4ピンのピンヘッダ、ピンソケットのピンを1つ切り落として、残りのピンをはんだで無理やり繋げただけです。
土台
セル基板の裏側は何も処理していないのでピンが剥き出しになっています。
セルを繋げたり外したりするときにこのピンで机を傷つける可能性があるので、セルを置く土台を作ることにしました。
また、ループ配線を通すためのスペース確保にもなります。
4×4 セルで1つの土台にしました。3Dプリンターで4つ作りました。
細胞壁
細胞壁って急にどうしたと思うかもしれませんが、セルを囲う壁というわけで細胞壁と名付けました。
これは何かというと、セルを囲って光が外に漏れないようにすることで明暗の差がはっきりさせる役割があります。
なくても問題はありませんが、見た目がきれいになるので作って正解でした。
これも 3Dプリンターで 4つ作りました。
また、壁の上にさらにぼかし用のプラスチック板を乗せると、セル感というかライフゲーム感がグッと増します。
左から壁無し、壁あり、ぼかしありです。
ぼかし板はダイソーで買いました。白かグレー、緑あたりが良かったんですけど、なかったので青にしました。青でも全然問題なかったです。
回路チェッカー
段階としてはもっと前に作ってたものですが、ここで紹介したいと思います。
セル基板が正しく動作するかどうかをチェックする回路を PICマイコンで作りました。
8入力と自分の状態の全パターン = 2^9 = 512通りに対して計算結果が正しいかチェックします。
これによってピンソケットのはんだ付けし忘れに気付くことが出来ました。
…でもこれのチェックは問題ないけど他のセルと組み合わせると計算がおかしくなるセルが2つほどありました(がん細胞と呼んでいます)。セルの繋げ方を変えてもそれらのセルの周りでだけエラーが起こるのでがん細胞を特定し、それは諦めて予備のパーツで新しくセルを作り直しました。
シミュレータ
先ほどがん細胞の話をしましたが、それはグライダーが急に壊れたので発見することが出来ました。
しかし大抵の場合は計算結果が正しいかどうかは見ても分かりません。なので、パソコンでライフゲームのシミュレータを作ってそれと見比べることにしました。
ライフゲームのシミュレータはブラウザで動くものからたくさんありますが、8×8でループが有ったり無かったりという特殊な条件なので自作する必要がありました。
Visual Studio で作りました。左が現在の状況で右側が初期配置です。
手動でセルの生死を設定出来るほか、ランダムに初期条件を設定することも出来ます。
ループの有無やクロック速度、ランダム生成時の密度も調整出来るようにしました。
1クロックごとに進める機能や気に入ったパターンを画像として保存する機能も付けました。
自作すると自分が欲しい機能を欲しいだけ付けることが出来るので楽しいですね。
アナログライフゲームでは初期配置はピンセットで手動で設定する必要があるので、気軽にランダムに面白いパターンを探すのにとても重宝しました。
応用回路
今回8×8の64セルを制作しましたが、1セルごとに独立しているということはつまり、必ずしも矩形にする必要はないということです。
例えば、こんな風に斜めに繋げることも出来ます。
その名もグライダー専用レーン。これがやりたいがために1セルずつ独立させたと言っても過言ではない。
デモ動画
ニコニコ動画に投稿した完成披露動画です。ぜひご覧ください。
最後に
自分史上最大のプロジェクトを完遂できたことに大きな達成感を抱いています。
もし気に入っていただけたらこの記事や上の動画などを他の人に共有してくれるとこの上ない幸せです。
最後までご覧いただきありがとうございました。