아두이노 윤(Yun)으로 만드는 초음파 맵 메이커: 단계별 가이드
프로젝트 개요
아두이노 윤(Yun), HC-SR04 초음파 센서, 서보 모터(MG996R)를 결합해 180도 시야각의 2D 맵핑 장치를 만듭니다. 아두이노가 서보를 회전시키며 초음파 센서로 거리 데이터를 수집해 시리얼로 전송하면, PC의 MATLAB이 극좌표를 직교좌표로 변환해 실시간 그래프로 시각화합니다.
작동 원리
초음파 센서 (HC-SR04)
사람 귀에 들리지 않는 고주파 음파를 발사해 장애물에 반사되어 돌아오는 시간 측정으로 거리 계산. 박쥐나 선박의 소나와 동일 원리.
서보 모터
일반 DC 모터와 달리 특정 각도로 정밀 제어 가능. 펄스 폭으로 각도 제어.
필요 부품
- 아두이노 윤 (또는 우노 호환 보드) × 1
- HC-SR04 초음파 센서 × 1
- 서보 모터 (타워프로 MG996R) × 1
- 점퍼 와이어 × 10
- 아두이노 프로토타입 실드 (선택, 센서 마운트용)
소프트웨어
- 아두이노 IDE (펌웨어 업로드)
- MATLAB (시리얼 데이터 수신, 좌표 변환, 시각화)
기계적 조립
- 범용 기판에 HC-SR04 헤더 제작
- 서보 혼(horn)에 양면 테이프로 센서 부착
- 서보를 프로토타입 실드 돌출부에 양면 테이프로 고정 (선택, 컴팩트화)
- 완성 모습은 월-E 복부 형태
아두이노 코드 로직
1. 라이브러리 임포트 (Servo, NewPing)
2. 변수/핀 초기화, 서보 객체 생성
3. 시리얼 통신 시작 (9600 baud), 3초 대기
4. 카운터 초기화
5. 서보 1도씩 회전 (0~179도)
6. 각 각도에서 초음파 측정 10회 수행 후 평균
7. 평균 거리를 시리얼로 전송
8. 5단계로 반복
MATLAB 코드 로직
1. COM 포트 열기 (9600 baud)
2. 180개 데이터 수신하여 배열 저장
3. 극좌표(각도, 거리) → 직교좌표(x, y) 변환:
x = r * cos(θ), y = r * sin(θ)
4. 산점도 그래프로 시각화
결과 및 한계
- 박스 형태 물체 테스트 시 가로/세로 대략적 크기 파악 가능
- 오차 원인: 서보 이동 중 센서 진동, 초음파 센서 자체 노이즈
- 깊이 인식 실험, 기초 컴퓨터 비전 프로젝트용으로 적합
제공 파일
- 아두이노 코드 (
.ino)
- MATLAB 코드 (
matlab_code_to_run_on_pc.m)
- 프리칭 회로도 파일 (
YunConfig.fzz)
확장 아이디어
- 라즈베리 파이 + 카메라 모듈로 3D 스캐너 발전
- ROS(Robot Operating System) 연동으로 SLAM 구현
- 다중 초음파 센서로 해상도 향상
- 실내 내비게이션 로봇 기초 센서로 활용