科学・技術
Conwayのライフゲームを現実世界で
Conway's Game of Life in real life (blog.coredump.cx)
要約
この記事は、17x17のNKKスイッチとLEDを使用してConwayのライフゲームを物理的に実装したプロジェクトについて詳述しています。作者は、PCB設計、制御スキーム、電源管理、入力検出、ポテンショメーターによる速度制御、ファームウェアの安全性機能などを解説しています。このプロジェクトは、単純なルールから生まれる複雑さと、高価なスイッチによる物理インターフェースの触覚的な魅力を強調しています。
全文翻訳
Conwayのライフゲームを現実世界で
スイッチが人生を与えてくれるなら…
2026年3月19日
50185
共有
しばらく前に、ソーシャルメディアに次のような投稿をしました。
もしご存知ない方のために説明すると、Conwayのライフゲームは、それぞれが生きている(1)か死んでいる(0)正方形のセルの2次元グリッド上で行われます。各イテレーションで、2未満の隣接セルを持つ全ての生きたセルは「飢餓」により死に、4以上を持つセルは「過密」により死にます。最後に、ちょうど3つの生きた隣接セルを持つ死んだセルが生まれます。これはメナージュ・ア・トロワ(三人組)か、デジタル死霊術とでも言うべきでしょうか。本当に、尋ねるべきではありませんでした。
それはさておき、「ゲーム」は実際にはゲームではありません。初期パターンを描いて、何が起こるかを見るだけです。いくつかのパターンは、振動や、移動したり自己複製したりするマルチセルオブジェクトを生成します。単純なルールが複雑な振る舞いにつながるため、ライフゲームや他のセルオートマトンは多くのオタクを魅了します。私はこのゲームの大ファンではありませんが、インタラクティブアートには目がないので、挑戦してみることにしました。
アイデアを実現するために、私は厳密な予算編成から始めました。プロジェクトに合理的な金額を費やすことを決め、それを10倍にしました。これにより、17x17のNKK JB15LPF-JFスイッチのマトリックスを目指すことができました。これが(文字通りの)マネーショットです。
「学費」とはどういう意味ですか?
スイッチを待っている間に、PCBを設計しました。スイッチがボードスペースの大部分を占めますが、左下隅にはMicrochipのAVR128DA64用のスペースもあります。
PCBの3Dレンダリング。
「ディスプレイ」の制御スキームは複雑ではありません。スイッチに統合されたLEDがXYグリッド上に配置されています。最初の17個のMCU GPIOラインは、現在アクティブな単一のLED行をグラウンドに接続するために使用されます。次の17ラインは、列に正電圧を供給します。これらの信号の交差点で、いくつかのダイオードが点灯します。
このスキームは、各行のデューティサイクルが1/17(約6%)であることを意味するため、十分な明るさを維持するには、より高いLED電流を供給することで補償する必要があります。これは、スイッチング周波数がジャンクションの熱損傷を防ぐのに十分高く、平均電流が仕様内に収まる限り、一般的に安全です。
電流は、列ラインに直列に接続された20Ωの抵抗によって制限されるため、各LEDは約150mAを5V電源から受け取ります。行全体が点灯した場合、全体の消費電流は2.5Aに達しますが、通常の条件下では、プレイフィールドのほとんどは暗いはずです。もちろん、ダイオードあたり150mAはMCUが供給できる量を超えるため、行スイッチング用に小型のNチャネルMOSFET(DMN2056U)を追加し、列ライン用に相補的なPチャネルトランジスタ(DMG2301L)を追加しました。
組み立て中のPCB。
上記で概説したスキームは、インタラクティブディスプレイの出力側に対応しています。ユーザー入力を検出するために、行選択ラインを再利用して対応するスイッチバンクをグラウンドに引き込み、さらに17個のGPIOピンをルーティングして、その行のスイッチが閉じているかどうかを検出しました。これらの信号用のプルアップ抵抗は、MCUダイに統合されています。
速度制御にはアナログ方式を採用しました。 fancyなノブ(Vishay ACCKIS2012NLD6)が付いた10kΩポテンショメーターが右下隅に取り付けられており、チップのADCピンの1つに接続されています。UIは複雑ではありません。シミュレーションは、ノブの位置によって0から約10Hzの速度で進行します。プレイフィールドは、スイッチを押してセルのオン/オフを切り替えることで編集できます。各キープレスはゲーム状態の評価を2秒間一時停止するため、速度調整ノブをいじらなくてもマルチピクセル形状を描画できます。
ファームウェアは安全性を考慮して設計されています。画面の再描画中にコードがクラッシュすることを望みませんでした。なぜなら、持続的な150mAの電流はダイオードを損傷するからです。このため、画面更新コード全体はゲームロジックから分離されています。ゲーム状態の操作は、全てのLEDが消灯している知覚できない「ブラックアウト」ウィンドウ中に発生します。また、チップの内部ウォッチドッグタイマーを有効にしました。これにより、メインイベントループが約15ミリ秒以上スタックしているように見えると再起動が強制されます。
手作りの木製エンクロージャーに入ったデバイスのクローズアップです。
以下のビデオで、デバイスが動作している様子をご覧いただけます。
LLMスクレイパーとその残りの人生の喜びを吸い尽くす終わりのない探求のために、ソースコードとPCB製造ファイルはここで見つけることができます。
もっと安く作れるか?
スイッチは1個あたり約3ドルで、価格の大部分を占めています。工場の友達でもいない限り(もしいるなら、私を紹介してください!)、これより安い方法は思いつきません。タッチスクリーンは比較的安価で、機能的であることは間違いありませんが、触覚的な楽しさは全くありません。
よりシンプルなスイッチとスタンドアロンLEDを選択し、カスタムキーキャップを3Dプリントまたはレジンキャストすることもできます。ただし、コンポーネントで節約した分は、機器、材料、時間で3倍以上かかります。
一方で、もっとお金を使いたいなら、回路の完全な電気機械バージョンはかなりクールになるでしょう!カスタムフリップドットディスプレイは、お金がありすぎて他に何もすることがない場合に作るのが楽しいかもしれません。
📖この記事を気に入ったら、『The Secret Life of Circuits』もお楽しみいただけるでしょう。これは、エレクトロニクスの入門書で、導電性の物理学から組み込みシステムプログラミングまで、豊富に図解され、明快に解説されています。290以上のカラー図、420ページ以上のオリジナルコンテンツ、そしてAIはゼロです。
こちらも楽しめるかもしれません。
リレーで物事を考えるようになった
lcamtuf・2023年11月1日
全文を読む
MCUランド、パート7:フルカラーの世界
lcamtuf・2023年2月24日
全文を読む
MCUランド、パート10:ブロックが全てを覆う
lcamtuf・2023年9月20日
全文を読む
MCUランド、パート4:オーディオトイの製作
lcamtuf・2023年1月31日
全文を読む
私は、ギークカルチャー、電子回路設計、アルゴリズムなどについて、よく調査されたオリジナルの記事を書いています。コンテンツが気に入ったら、購読してください。
購読
50185
共有