본문 바로가기

아두이노

IR 센서와 초음파 센서를 사용한 장애물 회피 로봇

반응형

IR 센서와 초음파 센서를 사용하여 장애물 회피 로봇을 만들어보겠습니다. 각 파트별로 설명하겠습니다.

1. 이론 소개:

  • 이 프로젝트에서는 로봇이 주변 환경을 탐지하고, IR (적외선) 센서와 초음파 센서를 사용하여 장애물을 감지하고 피하는 방법을 구현합니다.

2. 준비물:

  • 아두이노 보드 (예: Arduino Uno 또는 Arduino Mega)
  • 모터 드라이버 (예: L298N)
  • DC 모터 (2개)
  • IR 센서 모듈 (적외선 센서)
  • 초음파 센서 HC-SR04
  • 로봇 캐시터 휠 또는 로봇 바퀴
  • 9V 배터리 또는 배터리 팩
  • 브레드보드, 연결 선, 볼트 및 너트

3. 비슷한 모델:

  • IR 센서 및 초음파 센서는 다양한 모델과 브랜드에서 사용 가능합니다.

4. 추천 보드 및 간단한 설명:

  • Arduino Uno 또는 Arduino Mega: 다양한 입출력 핀 및 라이브러리 지원으로 로봇 제어에 적합합니다.
  • L298N 모터 드라이버: 모터 제어를 위해 필요한 드라이버입니다.

5. 회로 구성 (글로 설명):

  • 로봇의 기본 회로 구성은 다음과 같습니다:
    • 두 개의 DC 모터를 모터 드라이버에 연결합니다.
    • IR 센서와 초음파 센서를 아두이노에 연결합니다.
    • 배터리를 사용하여 전원을 공급합니다.

6. 코딩 내용 (주석 포함):

 

// 라이브러리 추가
#include <AFMotor.h>
#include <NewPing.h>

// 초음파 센서 핀 설정
#define TRIGGER_PIN 12
#define ECHO_PIN 11

// IR 센서 핀 설정
#define IR_SENSOR_PIN A0

// 모터 드라이버 설정
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);

// 초음파 센서 설정
NewPing sonar(TRIGGER_PIN, ECHO_PIN);

void setup() {
  // 시리얼 통신 시작
  Serial.begin(9600);
}

void loop() {
  // IR 센서 값 읽기
  int irValue = analogRead(IR_SENSOR_PIN);

  // IR 센서 값에 따라 회피 동작 수행
  if (irValue > 500) { // 장애물이 감지되지 않으면 직진
    motor1.setSpeed(255);
    motor2.setSpeed(255);
    motor1.run(FORWARD);
    motor2.run(FORWARD);
  } else { // 장애물 감지 시 회전
    motor1.setSpeed(200);
    motor2.setSpeed(200);
    motor1.run(BACKWARD);
    motor2.run(FORWARD);
    delay(1000); // 회전 시간 설정
  }

  // 초음파 센서로 거리 측정
  unsigned int distance = sonar.ping_cm();

  // 거리 정보 출력
  Serial.print("Distance: ");
  Serial.print(distance);
  Serial.println(" cm");

  delay(100); // 0.1초마다 센서 읽기
}

 

7. 코딩 내용 설명:

  • 이 코드는 IR 센서와 초음파 센서를 사용하여 로봇의 회피 동작을 구현합니다.
  • IR 센서로 장애물을 감지하면 로봇은 회전하여 장애물을 피합니다.
  • 초음파 센서로 주변 거리를 측정하고 시리얼 모니터에 출력합니다.

8. 코드 업로드 및 테스트:

  • 아두이노 보드에 코드를 업로드하고 로봇을 테스트합니다.
  • 로봇이 장애물을 감지하고 회피하는지 확인합니다.

9. 응용 업그레이드:

  • 로봇에 추가적인 센서를 추가하여 확장할 수 있습니다.
  • 더 복잡한 회피 알고리즘을 구현하여 로봇의 성능을 향상시킬 수 있습니다.

10. 전문 용어 및 설명:

  • IR 센서 (Infrared Sensor): 적외선을 사용하여 물체를 감지하는 센서입니다.
  • 초음파 센서 (Ultrasonic Sensor): 초음파를 사용하여 물체와의 거리를 측정하는 센서입니다.
  • 모터 드라이버 (Motor Driver): 모터를 제어하기 위한 회로와 소프트웨어를 제공하는 장치입니다.
  • 모터 제어 (Motor Control): DC 모터 또는 스테퍼 모터를 회전 방향과 속도를 제어하는 것을 의미합니다.
반응형