Chế tạo robot dò line - congnghelop10

Latest

Hình đại diện

Tuesday, 26 December 2017

Chế tạo robot dò line

Chế tạo robot dò line (Line Follower Robot)

Yêu cầu phần cứng

1 khung xe robot giá khoản 120.000đ
1 mạch arduino r3 uno  giá 150.000đ
1 mạch cầu H l298N 55.000đ
1 cảm biến hồng ngoại 4 kênh 100.000đ
1 pin 9V hoặc 2 pin 18650 50.000đ
dây điện, công tắc, đế pin
--------------







SƠ ĐỒ NỐI DÂY


(code Line Follower Robot) viết bằng phần mềm arduino IDE classic

// Định nghĩa các chân
int ENA = 3;
int IN1 = 1;
int IN2 = 2;

int ENB = 6;
int IN3 = 4;
int IN4 = 5;

// tốc độ động cơ là 80
#define ENASpeed 80
#define ENBSpeed 80

// khai báo tất cả các cảm biến điều không tín hiệu)

int Sensor1 = 0;
int Sensor2 = 0;
int Sensor3 = 0;
int Sensor4 = 0;

void setup() {

  pinMode(ENA, OUTPUT);
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);

  pinMode(ENB, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);

  pinMode(Sensor1, INPUT);
  pinMode(Sensor2, INPUT);
  pinMode(Sensor3, INPUT);
  pinMode(Sensor4, INPUT);

}

void loop(){

  //đọc giá trị các chân
  analogWrite(ENA, ENASpeed);
  analogWrite(ENB, ENBSpeed);

// đọc cảm biến là sáng nếu vào đường đen, đèn cảm biến tắt khi lệch đường
  Sensor1 = digitalRead(8);
  Sensor2 = digitalRead(9);
  Sensor3 = digitalRead(10);
  Sensor4 = digitalRead(11);

  if(Sensor4 == HIGH && Sensor3 == HIGH && Sensor2 == LOW && Sensor1 == LOW){

// rẻ trái nếu cảm biến 3 và 4 lệch đường
//động cơ trái dừng
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, LOW);

    //motor B Forward
// động cơ phải tiến
    digitalWrite(IN3, LOW);
    digitalWrite(IN4, HIGH);
 
  }

  else if (Sensor4 == LOW && Sensor3 == LOW && Sensor2 == HIGH && Sensor1 == HIGH){

// rẻ trái nếu cảm biến 1 và 2 lệch đường
// động cơ trái tiến
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, HIGH);

 
//động cơ phải dừng
    digitalWrite(IN3, LOW);
    digitalWrite(IN4, LOW);

  }

  else if (Sensor4 == LOW && Sensor3 == LOW && Sensor2 == LOW && Sensor1 == LOW){

//tất cả động cơ dừng lại nếu xe hoàn toàn lệch khỏi đường
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, LOW);
    digitalWrite(IN3, LOW);
    digitalWrite(IN4, LOW);
 
  }

   else if (Sensor4 == HIGH && Sensor3 == HIGH && Sensor2 == HIGH && Sensor1 == HIGH){

//tất cả động cơ dừng lại nếu tất cả cá cảm biến điều trên đường

    digitalWrite(IN1, LOW);
    digitalWrite(IN2, LOW);
    digitalWrite(IN3, LOW);
    digitalWrite(IN4, LOW);
  }

  else{

    //if(Sensor4 == LOW && Sensor3 == HIGH && Sensor2 == HIGH && Sensor1 == LOW

// nếu cảm biến 4 và 1 nằm ngoài đường đen, cảm biến 2,3 trên đường đen thì xe chạy tới
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, HIGH);
    digitalWrite(IN3, LOW);
    digitalWrite(IN4, HIGH);
  }
}




No comments:

Post a Comment