원문 캡처 · xydac.com
원문 캡처 · xydac.com

두 살배기 딸이 버튼을 누르고 색을 보며 놀 수 있도록 한 아빠가 LED 패널 게임 벽을 만들었다. 구글이 스타디아 서비스 종료 전 블루투스 기능을 켠 컨트롤러를 재활용했고, 게임 규칙도 아이가 지지 않도록 바꿨다.

처음에는 Waveshare ESP32-P4 보드를 썼지만, 펌웨어 부팅 오류와 패널 신호 문제를 해결하지 못해 약 일주일간 시행착오를 겪었다. 패널 입력부의 74HC245 버퍼는 5V로 작동해 ESP32의 3.3V 신호를 제대로 인식하지 못했다. 결국 버퍼가 갖춰진 Seengreat RGB Matrix HUB75 S3 보드로 바꾸자 패널이 처음 시도에 켜졌다. 제작자는 사양이 더 빠른 칩보다 문제를 덜어 주는 보드가 나았다고 설명했다.

펌웨어는 ESPHome에서 ESP-IDF와 Arduino 조합으로 옮겼다. 패널에는 ESP32-HUB75-MatrixPanel-DMA, 컨트롤러 연결에는 Bluepad32를 사용했다. 스타디아 컨트롤러는 처음 페어링한 뒤 다시 연결되지 않았지만, 블루투스 스택을 두 군데 수정해 재부팅 후 몇 초 안에 자동으로 재연결되게 했다.

게임은 Snake, Tetris, Pac-Man, DAVE, DINO 등을 포함한다. 벽에 부딪히면 반대편으로 이어지거나, 잡히면 게임을 처음부터 다시 시작하는 식으로 패배를 없앴다. 박수로 점프하는 DINO에서는 선인장에 부딪혀도 죽지 않고 비틀거린다. 제작자는 DAVE의 점프 물리를 모든 입력에 적용하는 검사 프로그램으로 레벨을 점검해, 두 살 아이가 하기 어려운 점프와 닿을 수 없는 보물을 찾아냈다고 밝혔다.

두 개의 패널은 색상 8비트 설정에서 초당 49프레임으로 작동한다. 각 화면을 PSRAM에 그린 뒤 패널에 표시된 화면과 비교해 바뀐 픽셀만 DMA 버퍼에 쓰는 방식이다. 제작자는 이 방식으로 깜박임 없이 Wi-Fi와 블루투스를 함께 사용할 여유도 남겼다고 설명했다.

보드에 달린 마이크로 박수를 감지하는 앱도 만들었다. COUNT는 숫자와 사과를 보여 주고 음성으로 숫자를 읽으며, 박수를 치면 수를 센다. 장난감 곰 형태의 ECHO는 소리에 반응하고 말을 되돌려 들려준다. 곰이 45초 동안 반응을 받지 못하면 잠든다. whisper.cpp와 Claude Haiku, macOS say를 연결한 AI 대화도 시험했지만, 답변에 7~8초가 걸려 두 살 아이에게는 장난감이 고장 난 것처럼 느껴질 수 있다며 되돌렸다.

벽 자체의 작은 스피커 대신 집에 있는 휴대전화와 아이패드를 소리 출력 장치로 쓰는 기능도 넣었다. 벽은 오디오를 보내지 않고 버튼 입력을 짧은 JSON 한 줄로 맥에 전송한다. 맥은 서버 전송 이벤트로 열린 웹페이지에 입력을 전달하고, 각 기기는 브라우저의 Web Audio API로 소리를 만든다. 기기가 두 대 이상이면 드럼과 멜로디를 나눠 재생할 수 있다.

제작자는 아직 딸이 게임 규칙을 이해하지 못하고, 지금은 버튼을 누르고 색을 보는 단계라고 했다. 앞으로 패널 두 개와 큰 아케이드 버튼을 추가하고, 반투명 덮개가 있는 틀을 만들 계획이다.

제작 과정과 사진·영상 보기