
2026/08/20 21:40
現実世界におけるコンウェイのライフゲーム
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
このプロジェクトは、NKK JB15LPF-JF スイッチの 17×17 マトリックスと Microchip AVR128DA64 マイクロコントローラーを使用した、コンウェイのゲーム・オブ・ライフを完全に機能し、インタラクティブに実装したハードウェアの詳細を述べています。設計は、行切り替え用小な n 型 MOSFET (DMN2056U) と、列線用に補完的な p 型トランジスター (DMG2301L) を用いた効率的な電力アーキテクチャを採用しており、合計 2.5 A の電流を扱える能力を持っています。Vishay のポテンショメーターによるアナログ速度制御により、シミュレーションレートは停止から 10 Hz まで調整可能です。キーを押すと評価が 2 秒間一時停止し、マルチピクセル形状の描画を助けます。安定性を確保するため、内部のウォッチドッグタイマーがメインループが停滞した場合に自動的にデバイスを再起動します。すべての設計ファイルとソースコードは、自作するセル自動機械を求めるエンthusiasts に対して公開されています。
本文
コンウェイの生命ゲームを実装したインタラクティブアート装置
ある時期、私は SNS で以下のような投稿を行いました。コンウェイの生命ゲームは、各セルが「生(1)」か「死(0)」かの 2 つ次元の正方形グリッド上で進行する Cellular Automaton です。
ゲームの基本ルール
- 飢餓(死亡): 隣接する生きているセルが 2 つ未満 の場合、細胞は死亡します。
- 過剰繁殖(死亡): 隣接する生きているセルが 4 つ以上 ある場合、細胞は死亡します。
- 活性化: 死んだセルがちょうど 3 つ の近隣に生きているセルを持つ場合、再生産されます(「ménage à trois」や「デジタル的なネクロマンシー」とも表現できます)。
このゲーム自体よりインタラクティブなアート作品を作りたいと思い、実際に作ってしまいました。単純なルールから複雑な振る舞い(振動、移動、自己複製など)が生まれるため、「ニードル(極端な趣味人)」を魅了しています。
プロジェクトの予算策定と構成案
アイデアを実体化させるために、まず厳格な予算策定を行いました。見積もった費用の 10 倍を確保する目標を立てました。
スイッチ選定について(コスト要因)
- 現状の決定: NKK JB15LPF-JF タイプのスイッチを使用(17×17 マトリックス配置)。
- 単価: 約 3 ドル/個。総コストの大半を占めます。
- 代替案 A(タッチスクリーン): 低価格・高性能ですが、触覚的な楽しさがありません。
- 代替案 B(簡易スイッチ + カスタムキーキャップ):
- 部品代は安くなりますが、機材・材料・時間は 3 倍 かかります(3D プリンタまたはレジンキャストでカスタムキーキャップ作成が必要)。
- 代替案 C(さらに高額オプション):
- 完全電磁式(EM)回路版や、カスタムサイズフリップドットディスプレイの制作も可能ですが、多額の予算が必要です。
【本物の写真】:「大学生のための貯金箱」といった意味合いですが、一体何のことでしょうか?
ハードウェア構成:PCB デザイン
スイッチを待つ間に PCB 設計を行いました。
- 基板スペース配分: 大半をスイッチ用に確保し、左下隅にマイコン用余白を残しました。
- マイコン: Microchip AVR128DA64 を使用。
「表示部」の制御方式(マトリクス LED ドライブ)
LED が統合されたスイッチを x-y グリッド上に配置した方式を採用しました。
- 行制御 (Row Lines): 最初の 17 つの MCU GPIO ラインで、現在アクティブな行の LED をアース(GND)に接続。
- 列制御 (Column Lines): その後の 17 つのラインで、各列へ正電圧を供給。
- 点灯ロジック: 行列が交差する地点でダイオード(LED)が点灯します。
電力設計と回路保護
- デューティサイクル: 各行は 1/17(約 6%)しか点灯しないため、高電流供給が必要です。
- 抵抗値: 列ラインに直列接続した 20 オームの抵抗 で電流を制限。
- 供給電圧:5 ボルト
- LED 電流:約 150 mA/個
- 総消費電力: 全画面点灯時でも 2.5 A 程度ですが、通常はプレイフィールドの大部分が暗いため安全です。
- 過負荷対策: マイコン単体では供給できないため、以下の追加回路を搭載しました。
- 行切換用: N チャネル MOSFET (DMN2056U)
- 列ライン用: P チャネルトランジスタ (DMG2301L)
ユーザー入力検出(スイッチマトリクス)
- 画面出力と同様に、行選択ラインを再利用してスイッチバンクをアースに引き下げる方式。
- 別の 17 つの GPIO ピン で、その行内のどのスイッチが閉じているかを検出します。
- プルアップ抵抗はマイコンチップ上に統合されています。
ソフトウェアと速度制御
ファームウェアは安全性を最優先に設計しています。
速度調整(アナログ方式)
- コントローラー: 右下隅に 10kΩ 可変抵抗 とエレガントなノブ (Vishay ACCKIS2012NLD6) を搭載。
- 機能: ノブ位置に応じてシミュレーション速度を調整(0 Hz 〜 約 10 Hz)。
- 描画操作: スイッチを押してセルの有無をトグル可能。
- キー入力中はゲーム状態評価が 2 秒間一時停止。
- これにより、ノブをいじらずに多ピクセル形状の描画が可能です。
セキュリティアーキテクチャ
画面再描画中にコードがクラッシュすると、継続的な 150 mA の電流 でダイオードが損傷するのを防ぐためです。
- 分離処理: 「全体画面更新用コード」と「ゲームロジック」を完全に分離。
- ブラックアウトウィンドウ: ゲーム状態の変更はすべて、LED が消灯している極めて短い期間で行います。
- ウォッチドッグタイマー (WDT): マイコン内部 WDT を有効化。メインイベントループが約 15 ミリ秒以上 停滞すると自動的に再起動されます。
結果と入手方法
以下の動画をご覧いただければ、デバイスの動作をお楽しみいただけます。
- LLM スクレイパー諸氏とその「人生の最後の喜びを搾り取るための無尽蔵な探求」のためにも、以下から入手可能です:
- ソースコード
- PCB 製造ファイル (Gerber など)
おすすめリソース
この記事を気に入っていただけた場合は、以下の資料もご参照ください。
-
書籍『回路の秘密生活』:
- 電気伝導の物理学から組み込みシステムプログラミングまでを解説した電子工学入門書。
- 特徴:290 個以上のカラー図表、420 ページ以上のオリジナルコンテンツ。
- ゼロの AI を搭載しています(人間による執筆)。
-
その他の記事:
- ギークカルチャー、電子回路設計、アルゴリズムなどについて、よく研究されたオリジナル記事を投稿中です。
この投稿に関する議論も準備されています。さらに知りたいですか?