現実の中のコンウェイのライフゲーム
概要
- Conway's Game of Lifeを物理インタラクティブアートとして実装した体験談
- 17×17マトリクススイッチとLEDによるハードウェア設計
- コスト管理や部品選定の工夫、回路設計の詳細解説
- ファームウェアの安全設計やユーザーインターフェースの工夫
- コスト比較や代替案、より高価なアプローチへの提案も紹介
Conway's Game of Life物理インタラクティブアート化計画
- Conway's Game of Lifeは、2次元グリッド上でセルが生死を繰り返すセル・オートマトン
- 生存・誕生・死滅のルールにより、シンプルな規則から複雑なパターンが生まれる現象
- ゲームというよりは、初期パターンを描いて観察するアートとしての側面
- インタラクティブアート好きとして、物理的な装置で実現することを決意
設計と部品選定
- 予算を設定し、実際には10倍のコストを見込んで計画
- NKK JB15LPF-JFスイッチを17×17マトリクスで使用
- スイッチ単価は約$3で、コストの大半を占める
- PCB設計では、スイッチが基板の大部分を占拠
- 左下にはMicrochip AVR128DA64を配置
- スイッチ内蔵LEDをx-yグリッドで配置し、MCUのGPIOで制御
回路設計と制御方式
- 17本のGPIOで各行のLEDのグランドを切り替え
- 別の17本で各列に正電圧を供給
- ダイオードの点灯は、行と列の信号が交わる箇所で発生
- 各行のデューティ比は1/17(約6%)、明るさ確保のためLED電流を増加
- 20Ω抵抗で電流制限、1LEDあたり約150mA
- 全行点灯時は最大2.5A消費だが、通常はプレイフィールドの多くが消灯
- MCUの駆動力不足を補うため、**n-channel MOSFET(DMN2056U)**で行切り替え、**p-channelトランジスタ(DMG2301L)**で列を制御
入力検出・ユーザーインターフェース
- 行選択ラインを利用し、スイッチ入力検出も実現
- 17本のGPIOでスイッチのON/OFFを検知、MCU内蔵プルアップ抵抗を活用
- 速度調整用ポテンショメータ(Vishay ACCKIS2012NLD6)を右下に設置し、ADCで読み取り
- ノブ位置に応じて0〜10Hzでシミュレーション進行
- スイッチ操作でセルのON/OFFを切り替え、2秒間ゲーム評価を一時停止し、複数セルの編集が容易
ファームウェアと安全設計
- 画面書き換え処理とゲームロジックを分離し、LED全消灯中に状態更新
- 150mAの持続点灯によるダイオード損傷防止
- ウォッチドッグタイマーを有効化し、15ms以上メインループが停止した場合は自動再起動
ケース・完成品・デモ
- 手作り木製ケースに組み込み、見た目も工夫
- 動作動画も公開、ソースコードやPCB設計データも提供
コスト・代替案・発展的アイデア
- スイッチのコストが全体の大半を占める
- タッチスクリーンなら安価かつ高機能だが、触感の楽しさは失われる
- 安価なスイッチ+独立LED+自作キーキャップも可能だが、設備・材料・時間コストが増大
- さらにコストをかけるなら、フリップドットディスプレイなど完全電気機械式も面白い選択肢
まとめ・関連情報
- 電子回路設計・アルゴリズム・オタク文化をテーマにした独自記事も執筆
- 読者登録や他の記事への誘導も推奨