Chế tạo robot dò line (Line Follower Robot)
Yêu cầu phần cứng1 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