본문 바로가기

아두이노

자율주행 자동차 만들기: 장애물을 피해 가는 자동차.

반응형
  1. 이론 소개:
    • 이 프로젝트는 아두이노를 사용하여 자율주행 자동차를 만드는 것을 목표로 합니다. 자동차는 전진하다가 초음파 센서로 장애물을 감지하면 후진하여 좌로 이동한 다음 다시 전진합니다.
  2. 준비물:
    • 이 프로젝트를 시작하기 위해 필요한 장비 및 재료는 다음과 같습니다:
      • 아두이노 보드 (예: Arduino Uno)
      • 모터 드라이버 (예: L298N)
      • DC 모터 (2개)
      • 초음파 센서 (예: HC-SR04)
      • 바퀴와 샤시 (로봇 차체를 만들기 위한 재료)
      • 전원 공급 장치 (9V 배터리 또는 DC 전원 공급기)
      • 브레드보드 및 점퍼 와이어
      • 필요한 부품을 조립하기 위한 공구
  3. 추천보드:
    • 이 프로젝트에는 아두이노 Uno 또는 호환 보드를 사용하는 것이 일반적입니다.
  4. 회로 구성:
    • 회로 구성에 대한 설명은 다음과 같습니다.
      • 두 개의 DC 모터를 모터 드라이버 (예: L298N)로 연결합니다.
      • 초음파 센서를 아두이노에 연결합니다.
      • DC 모터와 모터 드라이버, 초음파 센서를 아두이노에 연결하는 회로를 구성합니다. 자세한 연결 방법은 모터 드라이버와 초음파 센서의 데이터 시트 또는 가이드를 참조하십시오.
  5. 코딩 내용:
    • 아래는 아두이노 코드 예제입니다. 이 코드는 전진 중에 장애물을 감지하면 자동차가 후진하고 좌회전한 다음 다시 전진합니다. 코드 내용은 다음과 같습니다.

#include <AFMotor.h>

AF_DCMotor motor1(1); // 모터 1을 제어하기 위한 객체 생성
AF_DCMotor motor2(2); // 모터 2를 제어하기 위한 객체 생성
const int trigPin = 9; // 초음파 센서 Trig 핀
const int echoPin = 10; // 초음파 센서 Echo 핀

void setup() {
  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; // 거리 계산
  
  // 장애물 감지 시 후진 후 좌회전하여 다시 전진
  if (distance < 10) {
    motor1.setSpeed(150);
    motor2.setSpeed(150);
    motor1.backward();
    motor2.backward();
    delay(1000); // 1초 후 후진
    
    motor1.setSpeed(150);
    motor2.setSpeed(150);
    motor1.backward();
    motor2.forward();
    delay(1000); // 1초간 좌회전
    
    motor1.setSpeed(255);
    motor2.setSpeed(255);
    motor1.forward();
    motor2.forward();
  }
  // 장애물이 없을 경우 계속 전진
  else {
    motor1.setSpeed(255);
    motor2.setSpeed(255);
    motor1.forward();
    motor2.forward();
  }
}

 

 

  1. 코드 업로드 및 테스트:
    • 위의 코드를 아두이노 IDE에 업로드하고 자동차를 테스트합니다. 초음파 센서로 장애물을 감지하면 자동차가 후진하고 좌회전한 다음 다시 전진합니다.
  2. 토론 및 응용:
    • 이 프로젝트를 확장하여 더 복잡한 자율주행 자동차를 만들 수 있습니다. 더 많은 센서, 카메라, 경로 계획 알고리즘 등을 추가하여 성능을 향상시킬 수 있습니다.
  3. 추가 자료 및 과제:
    • 자율주행 알고리즘, 센서 퓨전, 리모트 컨트롤 기능 추가 등을 공부하고 구현하여 프로젝트를 발전시킬 수 있습니다.
  4. 전문용어

초음파 센서 (Ultrasonic Sensor)

초음파 센서는 초음파 파동을 생성하고 해당 파동이 물체에 반사되어 돌아오는 시간을 측정하여 물체와의 거리를 계산하는 센서입니다. 이 센서를 사용하여 주변 환경의 거리 정보를 측정할 수 있습니다.

서보 모터 (Servo Motor)

서보 모터는 특정 각도로 회전하도록 제어할 수 있는 모터입니다. 이 모터를 사용하여 초음파 센서를 좌우로 회전시키는 데 사용됩니다.

 

반응형