Build a Tiny Virtual Pet on Arduino in 60 Minutes 🐾
아두이노로 60분 만에 만드는 작은 가상 반려동물
Arduino Uno Q의 LED 매트릭스에 표정을 띄우고 키보드 명령에 반응하는 가상 반려동물 Kiku를 만드는 입문 프로젝트입니다. Serial 통신, 상태 관리, 시간에 따른 상태 변화와 간단한 상태 머신을 한데 묶어 임베디드 프로그래밍의 기초를 익힙니다.
- 주제
AI 요약
Kiku는 배고픔과 기쁨, 에너지 상태에 따라 표정과 행동이 달라지는 Tamagotchi 스타일의 가상 반려동물입니다. 이 워크숍은 Arduino Uno Q와 USB 케이블, Arduino App Lab을 사용하며 약 60분이 걸립니다. 먼저 LED를 깜빡이는 프로그램을 실행해 보드 연결을 확인한 뒤, USB 연결로 노트북과 보드 사이에 Serial 통신을 설정합니다.
키보드 입력과 상태 관리
Serial Monitor에서 f를 입력하면 먹이를 주고, p를 입력하면 함께 놀며, s를 입력하면 잠들거나 깨어납니다. 프로그램은 hunger, joy, energy 정수 변수와 asleep 불리언 변수로 Kiku의 상태를 기억합니다. 먹이를 주면 배고픔을 3 낮추고 기쁨을 1 높입니다. 놀이는 기쁨을 3 높이는 대신 에너지를 2 낮추고 배고픔을 1 높입니다. 값은 0부터 10 사이에 머물도록 제한합니다.
시간에 따른 변화와 표정
입력에 반응하는 것만으로는 반려동물처럼 보이지 않으므로, 예제는 10초마다 실행하는 tick() 함수로 상태를 갱신합니다. 잠든 동안에는 에너지를 회복하고, 깨어 있으면 에너지가 줄며 기쁨과 배고픔도 시간에 따라 변합니다. TICK_MS 값을 바꾸면 상태 변화 속도를 조절할 수 있습니다.
눈과 입 모양은 각각 enum으로 정의하고, 배고픔이 7 이상이거나 기쁨이 3 이하일 때는 찡그린 입을, 기쁨이 7 이상일 때는 웃는 입을 표시합니다. Arduino Uno Q의 LED 매트릭스에 이 표정을 그려 내부 상태를 보여줍니다. 메인 루프는 명령을 읽고, 시간이 됐는지 확인해 상태를 갱신하고, 알맞은 표정을 다시 그리는 구조입니다.
확장해 볼 부분
글은 깜빡임이나 윙크, 놀란 표정을 추가하고 c 명령으로 청소 기능을 만드는 아이디어를 제안합니다. 전체 Arduino 스케치와 연습 문제, 지식 확인 문제는 Her AI Studio 교육 과정에서 제공합니다. 튜토리얼은 입력 처리, 상태 전이, 시간 기반 동작, LED 매트릭스 렌더링을 작은 임베디드 프로젝트에서 함께 다룹니다.
dev.to 반응
- @earlgreyhot1701d — @jenlooper 튜토리얼 정말 감사합니다! 직접 하드웨어를 만들어 보는 일이 할 일 목록에 있는데, 이 프로젝트가 좋은 첫걸음이 될 것 같습니다. 아두이노를 구할 때까지 북마크해 두겠습니다. 즐거운 Hacktoberfest 보내세요! 🎃
원문: dev.to / 번역·요약: Trawling