Sinh viên FPT Polytechnic Đà Nẵng thử sức với Xe dò line 4 bánh sử dụng Arduino Uno

2:31 31/07/2024

Xe dò line 4 bánh sử dụng Arduino Uno là một trong những dự án hấp dẫn mà sinh viên khóa K19 chuyên ngành Công nghệ kỹ thuật điều khiển & Tự động hóa FPT Polytechnic Đà Nẵng sẽ bảo vệ vào kỳ học Block 2 Summer 2024. Đây không chỉ là cơ hội để sinh viên áp dụng kiến thức đã học vào thực tiễn, mà còn là dịp để rèn luyện kỹ năng làm việc nhóm và giải quyết vấn đề.

Với những bạn sinh viên thực hiện dự án Xe dò line 4 bánh sử dụng Arduino Uno, các bạn cần nắm vững những chú ý sau đây!

  1. Nắm vững nguyên lý dò line

Xe dò line hoạt động dựa trên các cảm biến quang học, thường là cảm biến hồng ngoại (IR), giúp phát hiện sự khác biệt giữa màu sắc của đường và bề mặt dưới xe. Sinh viên cần tìm hiểu về cách thức hoạt động của các cảm biến này, từ đó thiết lập cách xác định tín hiệu để điều khiển hướng đi của xe.

Arduino Uno
  1. Chọn linh kiện phù hợp

Việc chọn linh kiện là rất quan trọng cho sự thành công của dự án. Sinh viên nên lựa chọn các linh kiện dễ tìm và có khả năng tương thích tốt với Arduino Uno. Một số linh kiện cần thiết bao gồm:

  • Arduino Uno: Là vi điều khiển trung tâm giúp xử lý các tín hiệu từ cảm biến và gửi lệnh đến động cơ.
  • Cảm biến IR: Để phát hiện đường đi.
  • Động cơ DC hoặc servo: Để di chuyển xe.
  • Khung xe: Có thể tự chế hoặc mua sẵn. Khung xe cần có thiết kế chắc chắn để chịu lực trong quá trình di chuyển.
Cầu H L298N
  1. Thiết kế mạch điện rõ ràng

Khi lắp ráp xe, sinh viên cần chú ý đến việc thiết kế mạch điện một cách khoa học và rõ ràng. Nên dùng breadboard trong giai đoạn thử nghiệm để dễ dàng thay đổi cũng như sửa chữa. Đảm bảo kết nối các linh kiện đúng cách để tránh tạo ra các sự cố không mong muốn.

CB Hồng ngoại IRC5
  1. Lập trình chính xác

Lập trình là phần trung tâm của xe dò line. Sinh viên cần viết mã nguồn rõ ràng, có chú thích đầy đủ để dễ dàng theo dõi. Hãy sử dụng các vòng lặp và điều kiện để điều khiển động cơ một cách linh hoạt, tùy thuộc vào tín hiệu từ cảm biến. Ngoài ra, nên chú trọng đến lập trình kiểm tra lỗi, giúp xe phản hồi một cách chính xác trong trường hợp gặp phải trở ngại.

Mô hình xe dò line 3 bánh mẫu
  1. Thực hành kiểm tra và điều chỉnh

Sau khi hoàn thành, sinh viên nên dành thời gian để thử nghiệm xe trên từng đoạn đường khác nhau. Khi xe hoạt động chưa ổn định, hãy phân tích và điều chỉnh cảm biến, mã nguồn hoặc cơ cấu truyền động. Việc này không chỉ giúp xe hoạt động tốt hơn mà còn giúp sinh viên học hỏi từ những sai sót và rút kinh nghiệm.

Ví dụ về xe dò line
  1. Phối hợp làm việc nhóm tốt

Cuối cùng, hãy nhớ rằng dự án này không chỉ là công việc cá nhân mà còn là sự hợp tác giữa các thành viên trong nhóm. Việc phân chia công việc hợp lý và thường xuyên trao đổi ý kiến sẽ giúp nhóm vận hành hiệu quả và đạt được kết quả như mong muốn.

Dưới đây là một đoạn code mẫu do giảng viên Nguyễn Đăng Nhật Minh thực hiện, các bạn có thể tham khảo và điều chỉnh lại để phù hợp với mô hình của mình.

// Khai báo chân cảm biến  

const int sensor1 = 2;  // Cảm biến 1  

const int sensor2 = 3;  // Cảm biến 2  

const int sensor3 = 4;  // Cảm biến 3  

const int sensor4 = 5;  // Cảm biến 4  

const int sensor5 = 7;  // Cảm biến 5  

// Khai báo chân điều khiển động cơ  

const int motor1Pin1 = 8;  

const int motor1Pin2 = 9;  

const int motor2Pin1 = 10;  

const int motor2Pin2 = 11;  

const int enableA = 6;  

const int enableB = 12;  

void setup() {  

    Serial.begin(9600);  // Khởi động giao tiếp Serial  

    pinMode(sensor1, INPUT);  

    pinMode(sensor2, INPUT);  

    pinMode(sensor3, INPUT);  

    pinMode(sensor4, INPUT);  

    pinMode(sensor5, INPUT);  

    

    // Khởi tạo chân điều khiển động cơ  

    pinMode(motor1Pin1, OUTPUT);  

    pinMode(motor1Pin2, OUTPUT);  

    pinMode(motor2Pin1, OUTPUT);  

    pinMode(motor2Pin2, OUTPUT);  

    pinMode(enableA, OUTPUT);  

    pinMode(enableB, OUTPUT);  

}  

void loop() {  

    int sensorVal1 = digitalRead(sensor1);  

    int sensorVal2 = digitalRead(sensor2);  

    int sensorVal3 = digitalRead(sensor3);  

    int sensorVal4 = digitalRead(sensor4);  

    int sensorVal5 = digitalRead(sensor5);  

    // Xuất giá trị cảm biến lên Serial Monitor  

    Serial.print(“Sensor 1: “); Serial.print(sensorVal1);  

    Serial.print(” Sensor 2: “); Serial.print(sensorVal2);  

    Serial.print(” Sensor 3: “); Serial.print(sensorVal3);  

    Serial.print(” Sensor 4: “); Serial.print(sensorVal4);  

    Serial.print(” Sensor 5: “); Serial.println(sensorVal5);  

    

    // Điều khiển dựa trên giá trị cảm biến phát hiện line  

    if (sensorVal3 == LOW) {  

        // Nếu cảm biến trung tâm phát hiện đường, di chuyển thẳng  

        moveForward(150, 150); // Tốc độ di chuyển  

    } else if (sensorVal2 == LOW || sensorVal1 == LOW) {  

        // Nếu cảm biến bên trái phát hiện đường, quay phải  

        moveForward(80, 150); // Giảm tốc độ bên trái để quay phải  

    } else if (sensorVal4 == LOW || sensorVal5 == LOW) {  

        // Nếu cảm biến bên phải phát hiện đường, quay trái  

        moveForward(150, 80); // Giảm tốc độ bên phải để quay trái  

    } else {  

        // Nếu không có cảm biến nào phát hiện đường, di chuyển lùi chậm  

        moveBackward(50, 50); // Tốc độ lùi chậm  

    }  

}  

void moveForward(byte speedL, byte speedR) {  

    analogWrite(enableA, speedL);  

    analogWrite(enableB, speedR);  

    digitalWrite(motor1Pin1, HIGH);  

    digitalWrite(motor1Pin2, LOW);  

    digitalWrite(motor2Pin1, HIGH);  

    digitalWrite(motor2Pin2, LOW);  

}  

void moveBackward(byte speedL, byte speedR) {  

    analogWrite(enableA, speedL);  

    analogWrite(enableB, speedR);  

    digitalWrite(motor1Pin1, LOW);  

    digitalWrite(motor1Pin2, HIGH);  

    digitalWrite(motor2Pin1, LOW);  

    digitalWrite(motor2Pin2, HIGH);  

}  

void stopMotors() {  

    analogWrite(enableA, 0);  

    analogWrite(enableB, 0);  

Chúc các bạn sinh viên K19 Tự động hóa FPT Polytechnic Đà Nẵng có một kỳ bảo vệ thành công cùng những trải nghiệm thú vị trong quá trình thực hiện dự án!

Giảng viên Nguyễn Đăng Nhật Minh
Bộ môn Điện – Cơ khí
FPT Polytechnic Đà Nẵng

Hỗ trợ tư vấn và giải đáp thông tin tuyển sinh FPT Polytechnic

Cùng chuyên mục

Đăng ký nhập học tại FPT Polytechnic 2026

  • Max. file size: 50 MB.
  • Max. file size: 50 MB.
  • Max. file size: 50 MB.