아두이노 실시간 360° 레이더 제작: 초음파+서보 스캐닝 & 데이터 은닉 스테가노그래피
부품 및 소모품
| 부품 | 수량 | 비고 |
| 아두이노 우노 R3 | 1 | 메인 컨트롤러 |
| HC-SR04 초음파 센서 | 1 | 거리 측정용 |
| 180° 서보 모터 (RobotGeek) | 2 | 수직/수평 2축 스캐닝 (각 180° → 합계 360° 커버리지) |
| 점퍼 와이어 | 1세트 | 배선용 |
필요 도구
- 파이프 (센서/서보 마운트용)
- 글루건 (고정용)
소프트웨어
- 아두이노 IDE (펌웨어 업로드)
- Microsoft Visual Studio 2015 (PC 측 레이더 드로잉/스테가노그래피 애플리케이션 빌드용)
프로젝트 개요
듀얼 서보(수평/수직)와 초음파 센서로 360° 공간 스캔을 수행하고, 실시간으로 PC에 거리/각도 데이터를 전송해 레이더 화면을 그립니다. 한 회전(360°) 완료 후 이전 스캔 데이터를 저장하고 새 스캔을 중첩 표시합니다. 특이하게도 스캔 데이터를 이미지 파일에 은닉하는 스테가노그래피(Steganography) 기능을 구현했습니다. "데이터만 전송하면 감시자에게 암호화된 통신으로 보이지만, 이미지 안에 숨기면 단순한 사진 전송으로 위장 가능"하다는 개념입니다.
제작 단계
1단계: 부품 준비
- 아두이노 우노, 서보 2개, HC-SR04, 와이어
2단계: 하드웨어 조립
회로도 참조: 서보 2개(핀 2, 3), 초음파 센서(트리거 핀 9, 에코 핀 10). 파이프와 글루건으로 2축 짐벌 구조물을 제작해 센서를 서보 혼에 고정합니다. 기계적 간섭 없이 180°×180° 동작 범위 확보가 중요합니다.
3단계: 펌웨어 업로드 및 PC 애플리케이션 실행
아두이노 코드 업로드 후 시리얼 포트(COM3, COM5 등 확인)를 PC 애플리케이션에 설정. 작성자 제공 EXE 파일(`circular_draw_qP2ROsoPds.rar`) 다운로드 후 실행하거나, Visual Studio 2015로 소스 빌드.
아두이노 펌웨어 코드
#include <Servo.h>
Servo Down; // 수평 회전 (0~180°)
Servo Up; // 수직 회전 (0~180°)
const int trigPin = 9;
const int echoPin = 10;
long duration;
int pos = 0, pos2 = 0;
int distance;
int _degrees; // 누적 각도 (수평+수직)
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Down.attach(2);
Up.attach(3);
Serial.begin(9600);
}
void loop() {
// 원점 복귀
Down.write(0);
Up.write(0);
// 수평 스캔 (0→180°)
for (pos = 0; pos <= 180; pos += 1) {
Down.write(pos);
_degrees = pos;
dis();
delay(50);
// 수평 180° 도달 시 수직 스캔 수행
if (pos == 180) {
for (pos2 = 0; pos2 <= 180; pos2 += 1) {
Up.write(pos2);
_degrees = pos + pos2; // 누적 각도 (0~360)
dis();
delay(50);
}
}
}
// 원점 복귀 (빠르게)
for (pos = 180; pos >= 0; pos -= 1) {
Down.write(pos);
Up.write(pos);
delay(5);
}
}
void dis() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2; // cm 단위
Serial.print(distance);
Serial.print(",");
Serial.println(_degrees);
}
PC 측 애플리케이션 기능
- 시리얼 포트에서 `거리,각도` 파싱
- 극좌표 → 직교좌표 변환 후 레이더 스윕 라인 그리기
- 360° 완료 시 이전 프레임 페이드아웃/저장, 새 프레임 시작
- 스테가노그래피: 스캔 데이터 비트스트림을 BMP/PNG 이미지 LSB(Least Significant Bit)에 임베딩/추출
- AI 기반 최적 은닉 알고리즘 선택(작성자 언급)
회로도
제공된 3종 배선도 이미지 참조 (서보 2개 + 초음파 센서 연결).
커스텀 파트
EXE 실행 파일 다운로드: `circular_draw_qP2ROsoPds.rar` (CAD 섹션 링크). 소스 코드 요청 시 작성자 문의.
기술적 고려사항
- 서보 2개 동시 구동 시 전류 피크 고려 → 별도 5V 전원 권장 (아두이노 레귤레이터 과부하 방지)
- HC-SR04 측정 범위: 2cm~400cm, 분해능 ~3mm
- 스캔 속도: 스텝당 50ms → 전체 360° 약 18초 소요 (속도 조절 가능)
- 시리얼 통신 9600bps → 데이터량 적어 병목 없음. 고속화 시 115200bps 권장
- 스테가노그래피는 개념 증명용; 실제 보안 용도 시 암호화 병행 필수
응용 분야
- 실내 매핑/로봇 내비게이션 (SLAM 전단계)
- 보안 감시: 은밀한 데이터 전송 채널
- 교육용: 레이더 원리, 시리얼 통신, 극좌표 변환, 스테가노그래피 학습
- 취미/메이커: 3D 스캐너 베이스, 인터랙티브 아트 설치