概要
- 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+自作キーキャップ も可能だが、設備・材料・時間コストが増大
- さらにコストをかけるなら、 フリップドットディスプレイ など完全電気機械式も面白い選択肢
まとめ・関連情報
- 電子回路設計・アルゴリズム・オタク文化 をテーマにした独自記事も執筆
- 読者登録 や他の記事への誘導も推奨