코드로 물리 세계를 움직이다: 아두이노 기반 자동 물 받기 장치 제작기
• 문제의 발견: 정수기 버튼을 수동으로 누르고 있어야 하는 일상의 사소한 불편함을 피지컬 AI와 로보틱스 기술로 해결했습니다.
• H/W 및 S/W 설계: 아두이노 나노를 메인으로 서보모터, 회전 센서, LCD를 조합하여 상태 기반 제어 로직(FSM) 시스템을 구축했습니다.
• 기술적 통찰: 이론적 코드 계산(7초)과 실제 하드웨어 작동(12초) 사이의 오차를 검증하며, 실제 환경 테스트의 중요성을 확인했습니다.

생활 속 불편함을 해결하는 첫 번째 H/W 프로젝트
이번 프로젝트는 소프트웨어가 화면 속 데이터에 머물지 않고, 물리적 현실 세계와 연결될 때 발생하는 시각적·경험적 가치를 탐구하기 위해 시작되었습니다. 아두이노(Arduino)를 기반으로 임베디드 시스템과 자동화, 그리고 사용자 경험(UX)을 결합한 실증 사례입니다.

문제의 발견 (The Problem)
• 상황: 새로 산 냉장고 정수기에 ‘자동 정량 받기’ 기능이 없음.
• 불편함: 500ml나 1L의 많은 양의 물을 받을 때, 물이 다 찰 때까지 사용자가 버튼을 계속 누르고 있어야 함. 이로 인해 두 손이 묶여 다른 주방 일을 할 수 없으며 매일 반복되는 행동으로 피로감이 누적됨.
• 아이디어(The Spark): "이 정도는 아두이노로 직접 만들 수 있지 않을까?"라는 의문에서 시작됨.

프로젝트 목표 및 요구사항
최종 목표: 사용자가 원하는 물의 양을 입력하면 서보모터가 정수기 버튼을 대신 누르고, 목표량 도달 시 자동으로 멈추는 장치 제작.
필수 기능:
아날로그 회전 센서를 이용한 정밀한 물 양 설정.
서보모터를 이용한 물리적 버튼 푸시 제어.
확장 목표:
최소한의 조작으로 조작 가능한 직관적인 UI 제공.
동작 중 즉시 멈출 수 있는 취소 기능 포함.

전체 시스템 구성 (Hardware Anatomy)
정밀한 제어를 위해 다음과 같은 하드웨어를 구성했습니다.
• INPUT: 회전 센서(물 양 설정), 스위치 3개(설정/시작/취소).
• CONTROL: 아두이노 나노(Arduino Nano). 센서 데이터를 처리하고 모터와 LCD를 제어하는 메인 보드입니다.
• OUTPUT: 16x2 LCD(상태 시각화), 서보모터(Servo Motor). 물리적으로 정수기 버튼을 누르는 역할을 수행합니다.

직관적인 UI/UX 설계
사용자가 현재 상태를 즉각적으로 인지할 수 있도록 16X2 LCD 화면을 설계했습니다.
• IDLE (대기): 장치가 켜진 초기 상태.
• SETTING (설정): 회전 센서를 돌려 0~1000ml 사이의 양을 설정하는 상태.
• WATER! (작동): 서보모터가 버튼을 누르고 물이 나오는 상태.
• CANCEL (취소): 동작 중 사용자가 버튼을 눌러 강제로 중단시킨 상태.

핵심 로직과 기술 구현
장치의 안정성을 위해 소프트웨어는 유한 상태 기계(Finite State Machine) 로직으로 설계되었습니다.
• 값의 정규화: 회전 센서의 0~1023 원시 데이터를 0~1L 수치로 맵핑하여 정밀한 제어 기반을 마련했습니다.
• 상태 전환: IDLE → SETTED → FLOW → STOP으로 이어지는 유기적인 프로세스를 코드로 구현했습니다.

제어 로직 - 상태 기반 설계 (FSM)
장치의 동작을 유한 상태 기계(Finite State Machine)로 설계하여 논리적 오류를 방지했습니다.
1) IDLE: 시작 버튼 대기.
2) SETTED: 목표량 설정 완료 및 모터 구동 준비.
3) FLOW: 서보모터가 작동 각도(90~180도 등)로 이동하여 버튼을 누름.
4) STOP: 시간 경과 혹은 취소 버튼 입력 시 모터를 원위치로 복귀.

이상과 현실의 괴리 (Expectation vs. Reality)
이 프로젝트의 가장 중요한 기술적 발견입니다.
• 이론적 설계: 100ml를 받는 데 7초가 소요됨을 실측하여 코드상에 delay(7000)를 설정함
• 실제 결과: 실제 구동 시 오차가 누적되어 100ml를 채우는 데 약 12초가 소요됨
• 원인 분석: 프로세서의 스케줄링 지연 및 하드웨어의 물리적 관성으로 인한 오차 발생 추정
• 교훈: 소프트웨어 로직만으로는 완벽할 수 없으며, 실제 환경에서의 반복적인 테스트와 보정(Calibration)이 필수적

프로젝트 성과 (Physical Computing)
결과: 단순한 스크립트 작성을 넘어, 현실의 불편함을 물리적으로 해소하는 '진짜 제품'의 프로토타입을 완성
기능 달성도: 자동 물 양 설정, 물리적 누르기, 자동 종료, 중간 취소 기능을 100% 구현 완료
융합 가치: Hardware(기계), Software(제어), UX(인터랙션)가 하나로 묶이는 경험을 실증

향후 발전 방향 (Next Steps)
현재의 프로토타입을 고도화하기 위한 3단계 로드맵입니다.
1) 기계적 구조 개선: 서보모터의 회전 운동을 랙 앤 피니언(Rack and Pinion) 방식을 활용한 직선 운동으로 변경하여 버튼 누름의 안정성 확보.
2) 디자인 및 패키징: 전선이 노출되지 않도록 3D 프린팅 하우징(케이스)을 제작하여 실제 주방에서 사용할 수 있는 외관 완성.
3) 소형화: 배터리 구동 및 소형 보드 적용을 통한 장치 최적화.

기능이 ‘제품’이 되는 순간
이번 프로젝트를 통해 내린 엔지니어링적 결론은 다음과 같습니다.
1) 코드는 현실을 움직이는 힘이다: 데이터는 단지 화면 속에 머물지 않고 물리적 실체를 움직입니다.
3) 스스로 해결하는 엔지니어링: 일상의 작은 불편함도 기술을 통해 직접 해결할 수 있습니다.
4) 융합의 가치: 하드웨어, 소프트웨어, 그리고 사용자 경험(UX)이 하나로 묶일 때 비로소 단순한 기능은 '제품'으로 진화합니다.
실제 테스트 영상입니다
📍 비주얼센터 시각언어연구소는 기술로 일상을 혁신합니다.
공식 웹사이트: https://visual.center/
기술 협업 및 세미나 문의: 1577-7638 | withU@2tv.co.kr