본문 바로가기

아두이노

IR 센서와 초음파 센서로 장애물 회피 로봇 제어

반응형

IR 센서와 초음파 센서를 사용하여 장애물을 감지하고 회피하는 아두이노 기반 로봇을 제어하는 방법을 설명하겠습니다. 각 파트별로 설명하겠습니다.

1. 이론 소개:

  • IR 센서: 적외선(IR)을 사용하여 장애물을 감지하는 데 사용되는 센서입니다.
  • 초음파 센서: 초음파 파울스를 사용하여 물체와의 거리를 측정하는 센서입니다.

2. 준비물:

  • Arduino 보드 (예: Arduino Uno)
  • IR 센서 모듈 (예: TCRT5000)
  • 초음파 센서 (HC-SR04 또는 비슷한 모델)
  • 모터 드라이버 모듈 (L298N 또는 다른 모델)
  • DC 모터 (로봇의 구동에 사용)
  • 바퀴와 캐스터 휠 (로봇의 이동을 위해)
  • 9V 배터리 또는 리튬 폴리머 배터리 (로봇 전원 공급용)
  • 브레드보드와 점퍼 와이어
  • 필요한 기타 부품 및 도구

3. 회로 구성:

  1. IR 센서와 초음파 센서를 아두이노에 연결합니다.
  2. 모터 드라이버 모듈을 아두이노에 연결하고 DC 모터와 바퀴를 연결합니다.
  3. 배터리를 로봇에 연결하여 전원을 공급합니다.

.

4. 코딩 내용:

로봇을 프로그래밍하여 IR 센서와 초음파 센서의 데이터를 읽고 장애물을 회피하도록 제어합니다.

아래는 간단한 코드 예제입니다. 코드는 센서 및 모터 드라이버에 따라 다를 수 있습니다.

 

#include <Servo.h>

Servo leftMotor;
Servo rightMotor;

const int trigPin = 9; // 초음파 센서 트리거 핀
const int echoPin = 10; // 초음파 센서 에코 핀
const int irSensorPin = A0; // IR 센서 아날로그 핀

void setup() {
  leftMotor.attach(5); // 왼쪽 모터 연결 핀
  rightMotor.attach(6); // 오른쪽 모터 연결 핀
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(irSensorPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  long duration, distance;
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration / 2) / 29.1;

  int irValue = analogRead(irSensorPin);

  if (distance > 10 && irValue < 500) {
    // 초음파 센서로 감지된 거리가 10cm 이상이고, IR 센서로 장애물이 감지되지 않을 때
    forward();
  } else {
    // 장애물이 감지되면 회전하거나 다른 방향으로 이동하도록 제어
    turn();
  }
}

void forward() {
  leftMotor.write(90); // 왼쪽 모터 전진
  rightMotor.write(90); // 오른쪽 모터 전진
}

void turn() {
  leftMotor.write(0); // 왼쪽 모터 회전
  rightMotor.write(180); // 오른쪽 모터 회전
  delay(1000); // 1초간 회전
  forward(); // 다시 전진
}

 

 

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

  • 위의 코드를 아두이노 IDE에 업로드하고 로봇이 장애물을 피해 이동하는지 확인합니다.

6. 응용 업그레이드:

  • 로봇에 추가적인 센서를 추가하여 기능을 확장할 수 있습니다. 예를 들어, 라인 트래킹 센서를 추가하여 로봇이 선을 따라 이동하도록 만들 수 있습니다.
  • 무선 통신 모듈을 추가하여 원격으로 로봇을 제어할 수 있습니다.

7. 전문용어 설명:

  • IR 센서: 적외선(IR)을 감지하여 물체의 도착을 감지하는 센서입니다.
  • 초음파 센서: 초음파를 사용하여 물체와의 거리를 측정하는 센서입니다.
  • 모터 드라이버 모듈: 모터를 제어하는 데 사용되는 모듈로, 모터의 방향과 속도를 제어합니다.
  • 바퀴와 캐스터 휠: 로봇의 이동을 가능하게 하는 부품입니다.
반응형