Conway's Game of Life, 물리적 하드웨어로 부활!
Conway's Game of Life를 17x17 스위치 매트릭스 기반의 물리적 하드웨어로 구현
AVR128DA64 마이크로컨트롤러(Microcontroller)를 사용하여 LED 제어 및 사용자 입력을 처리
아날로그 속도 제어(Analog Speed Control)를 위한 가변 저항(Potentiometer) 사용 및 펌웨어 안전성 확보
오픈 소스(Open Source)로 소스 코드 및 PCB 파일 공개, 하드웨어 제작 가이드 제공
하드웨어 설계 및 LED 제어 방식
게시물에서는 17x17 스위치 매트릭스를 사용하여 Conway's Game of Life를 구현하기 위한 하드웨어 설계를 상세히 설명한다. 특히, 각 LED를 제어하기 위해 멀티플렉싱(Multiplexing) 방식을 사용하며, MCU의 GPIO 핀을 활용하여 행과 열을 제어한다. 또한, LED의 밝기를 유지하기 위해 높은 전류를 공급해야 하며, 이를 위해 MOSFET 및 트랜지스터를 사용하여 전력 효율(Power Efficiency)을 높였다.
펌웨어 안전성 및 UI/UX 구현
펌웨어는 LED 손상을 방지하기 위해 화면 업데이트 코드와 게임 로직을 분리하여 설계되었다. 구체적으로, 화면을 다시 그리는 동안 발생하는 150mA 전류로 인한 다이오드 손상을 방지하기 위해, 모든 LED가 꺼져 있는 '블랙아웃' 기간 동안 게임 상태를 조작한다. 또한, 워치독 타이머(Watchdog Timer)를 사용하여 메인 루프가 멈추는 경우 시스템을 재부팅하여 안정성을 확보했다.
아날로그 속도 제어 및 사용자 인터페이스
사용자는 10kΩ 가변 저항을 통해 게임의 속도를 조절할 수 있으며, 0~10Hz 범위에서 속도 조절이 가능하다. 또한, 스위치를 누르면 해당 셀의 상태를 토글할 수 있으며, 각 키 입력을 통해 게임 상태 평가를 2초 동안 일시 중지하여 사용자가 멀티 픽셀 형태(Multi-pixel Shapes)를 쉽게 그릴 수 있도록 설계되었다. 이러한 UI/UX는 직관적인 조작성(Intuitive Operability)을 제공한다.
비용 분석 및 대안 제시
프로젝트의 주요 비용은 스위치 부품으로, 개당 약 3달러로 책정되었다. 게시자는 터치스크린을 대안으로 제시하지만, 촉각적인 재미를 제공하지 못한다고 언급한다. 또한, 더 저렴한 스위치와 LED를 사용하거나, 3D 프린팅(3D Printing)을 통해 커스텀 키캡을 제작하는 방법도 제시한다. 하지만, 이러한 방법은 장비, 재료, 시간 측면에서 추가적인 비용이 발생할 수 있다.