산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노 HC-SR04 초음파 레이더: 서보와 프로세싱으로 실시간 시각화 구축

부품 및 소모품

아두이노 우노 × 1
HC-SR04 초음파 센서 × 1
서보 모터 (SG90 등) × 1
브레드보드 및 점퍼 와이어 × 1

프로젝트 소개

HC-SR04 초음파 센서를 서보 모터에 장착해 180도 범위를 스캔하며, 거리 데이터를 실시간으로 PC의 프로세싱(Processing) 스케치에 전송해 레이더 화면처럼 시각화하는 프로젝트입니다.

아두이노 HC-SR04 초음파 레이더: 서보와 프로세싱으로 실시간 시각화 구축
회로 연결도

시스템 구성

아두이노 코드 핵심

#include <NewPing.h>
#include <Servo.h>

#define TRIGGER_PIN 2
#define ECHO_PIN 3
#define MAX_DISTANCE 150   // 최대 측정 거리 (cm)
#define SERVO_PWM_PIN 9
#define ANGLE_BOUNDS 80    // ±80도 범위
#define ANGLE_STEP 1       // 1도씩 이동

Servo myservo;
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

int angle = 0;
int dir = 1;  // 1: 정방향, -1: 역방향

void setup() {
  Serial.begin(9600);
  myservo.attach(SERVO_PWM_PIN);
}

void loop() {
  delay(50);  // 측정 간격
  
  // 서보 각도 설정 (-80~80 → 0~160 매핑)
  myservo.write(angle + ANGLE_BOUNDS);
  
  // 거리 측정 및 시리얼 전송
  getDistanceAndSend2Serial(angle);
  
  // 각도 업데이트 (경계에서 방향 반전)
  if (angle >= ANGLE_BOUNDS || angle <= -ANGLE_BOUNDS) {
    dir = -dir;
  }
  angle += (dir * ANGLE_STEP);
}

int getDistanceAndSend2Serial(int angle) {
  int cm = sonar.ping_cm();
  Serial.print(angle, DEC);
  Serial.print(",");
  Serial.println(cm, DEC);
}

핵심 포인트

프로세싱(Processing) 측

GitHub 저장소에 전체 코드 제공:

프로세싱 코드는 좌우 왕복 2회 측정값의 평균을 내어 노이즈를 줄이고, 레이더 스윕 라인과 탐지 객체 점을 실시간으로 그립니다.

확장 아이디어

GitHub 저장소

https://github.com/faweiz/My-Arduino/tree/master/arduino_radar

제조공정

  1. 블루투스 제어 아두이노 스파이봇(Spybot) 만들기
  2. 플릭모트(FlickMote): 스마트 홈을 위한 제스처 제어 IR 리모컨
  3. DIY 아두이노 TV B-Gone: 모든 TV를 끄는 만능 리모컨
  4. 아두이노로 만드는 대형 LED 마스터 시계 (알람 기능 포함, 12m 거리에서도 식별 가능)
  5. 아두이노와 블루투스로 만드는 스마트 물건 찾기 'Find Me'
  6. 아두이노 프로젝트를 위한 최적화된 전원 솔루션
  7. 아두이노 틱택토 게임 - MAX7219 LED 매트릭스와 골판지 케이스
  8. 스마트 아두이노 4족 보행 로봇 제작: 단계별 완벽 가이드
  9. 아두이노 소나 & 프로세싱으로 실시간 거리 측정 및 시각화
  10. 게이밍용 커스텀 아두이노 조이스틱 스티어링 휠 만들기