Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh cuộc Cách mạng Công nghiệp 4.0, robot và các thiết bị tự động hóa ngày càng giữ vai trò quan trọng trong việc thay đổi phương thức lao động, sản xuất, học tập và đời sống xã hội. Việc ứng dụng công nghệ cao và các tính năng thông minh giúp robot thay thế con người thực hiện các thao tác mang tính lặp đi lặp lại với độ chính xác cao, đồng thời giảm thiểu rủi ro và tăng cường an toàn lao động trong các môi trường nguy hiểm. Đồng thời, sự phát triển của hệ thống tự động cũng đặt ra yêu cầu về sự kết hợp tối ưu giữa con người và công nghệ.

Đề tài "Robot dò đường tránh vật cản" được nhóm tác giả thực hiện nhằm nghiên cứu, thiết kế và chế tạo một mô hình robot di động tự hành có khả năng bám theo vạch dẫn hướng (line follower) và nhận diện vật cản để tự động chuyển hướng an toàn.

Mục tiêu và nhiệm vụ nghiên cứu của đồ án bao gồm:

  1. Tổng hợp cơ sở lý thuyết về Internet of Things (IoT), lập trình hệ thống nhúng và các thành phần phần cứng vi điều khiển.
  2. Khảo sát nguyên lý hoạt động và thông số kỹ thuật của các linh kiện điện tử: vi điều khiển Arduino Uno R3, vi xử lý Wi-Fi ESP8266, cảm biến siêu âm HC-SR04, thanh cảm biến dò line TCRT5000 (BFD-1000), module điều khiển động cơ L298N, động cơ DC giảm tốc TT 130 và nguồn pin sạc 18650.
  3. Thiết kế sơ đồ khối, sơ đồ đấu nối phần cứng và xây dựng lưu đồ thuật toán điều khiển xe robot.
  4. Lập trình điều khiển hệ thống trên môi trường Arduino IDE, hiện thực hóa khả năng di chuyển bám line với độ chính xác cao, tự động phát hiện và tránh vật cản trong phạm vi cài đặt, kết hợp phát tín hiệu âm thanh cảnh báo qua còi báo.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Hệ thống robot tự hành di động tích hợp cảm biến; các giải thuật đọc tín hiệu cảm biến hồng ngoại, cảm biến siêu âm và điều khiển động cơ DC qua cầu H.
  • Phạm vi nghiên cứu: Đồ án môn học/khóa luận tốt nghiệp được thực hiện bởi nhóm sinh viên lớp 20CT3 thuộc Trường Đại học Kiến trúc Đà Nẵng, dưới sự hướng dẫn của giảng viên Trương Văn Hiền.

Cơ sở lý thuyết và phương pháp

Khung lý thuyết và khái niệm cốt lõi

  • Internet of Things (IoT): Thuật ngữ chỉ mạng lưới kết nối các thiết bị điện tử thông minh với nhau và với Internet để thu thập, trao đổi dữ liệu và thực hiện các tác vụ tự động hoặc điều khiển từ xa mà không cần sự can thiệp trực tiếp của con người.
  • Lập trình hệ thống nhúng (Embedded Programming): Quá trình phát triển phần mềm cho các thiết bị điện tử nhúng (vi điều khiển, hệ thống tự động hóa) bằng các ngôn ngữ như C/C++, Python.
  • Cấu trúc phần cứng nhúng cơ bản: Bao gồm bộ nhớ cố định ROM/EEPROM/Flash (lưu trữ chương trình), bộ nhớ khả biến RAM (lưu trữ biến tạm thời và ngăn xếp), bộ xử lý trung tâm MCU cùng các khối ngoại vi như bộ chuyển đổi tín hiệu tương tự sang số ADC (Analog-to-Digital Converter), bộ chuyển đổi tín hiệu số sang tương tự DAC (Digital-to-Analog Converter), và các chuẩn giao tiếp nối tiếp I2C, UART.
  • Nguyên lý đo khoảng cách bằng sóng siêu âm: Cảm biến phát chùm 8 xung sóng siêu âm ở tần số 40 kHz. Khoảng cách $d$ từ cảm biến tới vật cản được xác định dựa trên thời gian $t$ từ khi phát tín hiệu đến khi nhận lại sóng phản xạ: $$\text{Khoảng cách} = \frac{t \times v}{2}$$ Trong đó $v = 340\text{ m/s}$ là vận tốc truyền âm thanh trong không khí.

Phương pháp nghiên cứu

  • Phương pháp phân tích và mô hình hóa: Xác định danh sách tác nhân (Actor), xây dựng biểu đồ tuần tự (Sequence Diagram) và lập kế hoạch thực hiện thông qua sơ đồ tiến độ Gantt Chart.
  • Phương pháp thiết kế và tích hợp hệ thống: Ghép nối phần cứng gồm vi điều khiển trung tâm, khối cảm biến thu thập dữ liệu (hồng ngoại, siêu âm), khối công suất điều khiển động cơ (L298N) và khối nguồn cấp.
  • Phương pháp lập trình thực nghiệm: Sử dụng ngôn ngữ C/C++ trên môi trường Arduino IDE để biên dịch mã nguồn, nạp xuống vi điều khiển qua cổng USB và tiến hành hiệu chỉnh thông số vận hành thực tế.

Thiết kế và triển khai hệ thống

Thông số kỹ thuật các linh kiện phần cứng

Linh kiện / Module Thông số kỹ thuật chính Vai trò trong hệ thống
Arduino Uno R3 Vi điều khiển AVR, các chân Digital I/O, Analog Input, giao tiếp USB/UART/I2C. Khối xử lý trung tâm tiếp nhận tín hiệu cảm biến và điều khiển động cơ.
ESP8266 Vi xử lý Tensilica L106 32-bit (80 MHz), RAM 80 KB, Flash 4 MB, Wi-Fi 802.11 b/g/n, áp 3.3V, dòng 0.5–215 mA, UART 115200 bps. Module truyền thông mở rộng cho kết nối không dây và giám sát từ xa.
Cảm biến HC-SR04 Điện áp 5VDC, dòng $< 2\text{ mA}$, dải đo 2–450 cm (hoặc 2–300 cm), góc đo tối đa $15^\circ$, độ chính xác 3 mm, tần số 40 kHz. Đo khoảng cách và phát hiện chướng ngại vật phía trước robot.
Thanh cảm biến TCRT5000 (BFD-1000) 5 cảm biến dò line TCRT5000 hướng xuống, 1 cảm biến hồng ngoại tránh vật cản phía trước, 1 công tắc hành trình, áp 3.3–5VDC, ngõ ra Digital. Phát hiện vạch kẻ dẫn hướng trên mặt sàn để điều hướng robot.
Mạch cầu H L298N IC Dual Full Bridge Driver L298, áp cấp 5–30VDC, dòng tối đa 2A/cầu, công suất 25W/cầu, tích hợp IC hạ áp 7805 (nguồn ra 5VDC). Điều khiển tốc độ và chiều quay của 2 động cơ DC.
Động cơ DC giảm tốc TT 130 + Bánh xe 65mm Điện áp 3–6VDC, dòng 110–140 mA, tỉ số truyền 1:48 hoặc 1:120, tốc độ 125 vòng/phút (ở 3V) và 208 vòng/phút (ở 5V). Truyền động di chuyển cho khung xe robot.
Nguồn Pin Ultrafire 18650 Pin sạc/NiMH, điện thế 3.7V, dung lượng 4200 mAh, kích thước $18\text{ mm} \times 65\text{ mm}$. Cấp nguồn hoạt động cho toàn bộ hệ thống mạch và động cơ.

Sơ đồ đấu nối và phân bổ chân vi điều khiển (Pinout)

  • Chân phát xung cảm biến siêu âm (trigPin): Chân số 12 của Arduino.
  • Chân nhận phản hồi cảm biến siêu âm (echoPin): Chân số 13 của Arduino.
  • Chân điều khiển mạch động cơ L298N:
    • IN1: Chân số 3
    • IN2: Chân số 5
    • IN3: Chân số 6
    • IN4: Chân số 9
  • Chân điều khiển còi báo động (COI): Chân số 2
  • Các chân đọc tín hiệu cảm biến dò line: ss1, ss2, ss3, ss4, ss5.
  • Ngưỡng khoảng cách cảnh báo và dừng xe: Robot_stop_distance = 10 cm.

Mã nguồn điều khiển hệ thống (C/C++ trên Arduino IDE)

//Thiết kế bởi RC Man
int Robot_stop_distance = 10;// Khoảng cách phát hiện vật cản
//Kết nối SRF 04
const int trigPin = 12; // kết nối chân trig với chân 12 arduino
const int echoPin = 13; // kết nối chân echo với chân 13 arduino
const int IN1 = 3;
const int IN2 = 5;
const int IN3 = 6;
const int IN4 = 9;
const int COI = 2;
int ss1 = 0;
int ss2 = 0;
int ss3 = 0;
int ss4 = 0;
int ss5 = 0;
long duration; // 
int distance; // biến khoảng cách
int mode;

void setup() {
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
  pinMode(ss1, INPUT);
  pinMode(ss2, INPUT);
  pinMode(ss3, INPUT);
  pinMode(ss4, INPUT);
  pinMode(ss5, INPUT);
  pinMode(COI, OUTPUT);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  digitalWrite(COI, LOW);
  delay(2000);
}

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

Nội dung chính theo từng chương

Chương I: Cơ sở lý thuyết

Chương này tập trung trình bày tổng quan lý thuyết về làn sóng công nghệ IoT và kỹ thuật lập trình hệ thống nhúng:

  • Khái niệm và xu hướng IoT: Giới thiệu định nghĩa IoT như một mạng lưới liên kết thiết bị thông minh thông qua Internet nhằm tự động hóa quy trình vận hành và tối ưu hóa chi phí. Số liệu trích dẫn từ Gartner chỉ ra rằng vào năm 2020 toàn cầu đã có khoảng 20 tỷ thiết bị IoT kết nối, và con số này được dự báo tăng trưởng lên 41,6 tỷ thiết bị.
  • Phân tích yêu cầu và lập hồ sơ: Xác định các thành phần tương tác của hệ thống, thiết lập danh sách Actor, biểu đồ tuần tự và sơ đồ tiến độ Gantt Chart phục vụ quản lý dự án.
  • Nền tảng lập trình nhúng: Hệ thống hóa các kiến trúc phần cứng cốt lõi gồm bộ nhớ lưu trữ cố định ROM (hoặc EEPROM, Flash thay thế), bộ nhớ RAM lưu trữ dữ liệu thực thi, bộ xử lý trung tâm MCU và các giao tiếp ngoại vi (ADC, DAC, I2C, UART).
  • Ứng dụng thực tiễn: Khảo sát 6 nhóm ứng dụng tiêu biểu của lập trình nhúng: thiết bị di động, hệ thống thông minh (nhà thông minh, xe thông minh), thiết bị y tế, tự động hóa công nghiệp, mạng lưới IoT và thiết bị gia dụng.
  • Tổng quan mô hình robot: Trình bày ý tưởng kết hợp giữa cảm biến siêu âm, cảm biến hồng ngoại, mạch cầu H L298N và bo mạch Arduino Uno R3 để tạo nên một hệ thống tự hành có khả năng bám vạch và tránh vật cản.

Chương II: Arduino và các module điều khiển

Chương II phân tích chi tiết cấu tạo, nguyên lý vận hành và thông số kỹ thuật của từng thành phần phần cứng được áp dụng trong đề tài:

  • Nền tảng Arduino và phần mềm Arduino IDE: Giới thiệu lịch sử nền tảng mã nguồn mở Arduino (phát triển từ năm 2005 tại Ý). Môi trường Arduino IDE cung cấp công cụ biên dịch mã nguồn dựa trên C/C++, kiểm tra lỗi, quản lý thư viện và tải trực tiếp chương trình xuống vi điều khiển qua cổng giao tiếp USB.
  • Module Wi-Fi ESP8266: Phân tích vi xử lý 32-bit Tensilica L106 chạy ở xung nhịp 80 MHz, bộ nhớ RAM 80 KB, Flash 4 MB, hoạt động ở dải điện áp 3.3V và hỗ trợ chuẩn kết nối Wi-Fi 802.11 b/g/n. Đồ án đồng thời khảo sát 5 mô hình ứng dụng của ESP8266:
    1. ESP8266 Web Server: Điều khiển thiết bị từ xa thông qua trình duyệt web trên máy tính hoặc điện thoại.
    2. Cập nhật Firmware qua mạng (OTA): Nạp code từ xa không dây mà không cần cắm cáp trực tiếp.
    3. Điều khiển bằng giọng nói: Kết nối trợ lý ảo Google Assistant trên smartphone để ra lệnh cho thiết bị.
    4. Xe điều khiển từ xa qua ESP8266: Ứng dụng điều khiển phương tiện di động qua giao diện mạng.
    5. Hiển thị dữ liệu lên LED ma trận: Truyền văn bản và dữ liệu thời gian lên bảng hiển thị.
  • Khối cảm biến và khối chấp hành:
    • Cảm biến siêu âm HC-SR04: Đo khoảng cách trong phạm vi 2–450 cm với góc quét tối đa $15^\circ$ và độ chính xác 3 mm nhờ nguyên lý thu phát sóng siêu âm 40 kHz.
    • Thanh cảm biến TCRT5000 (Line Follower Sensor BFD-1000): Tích hợp 5 mắt cảm biến hồng ngoại TCRT5000 hướng xuống, 1 cảm biến hồng ngoại phía trước và 1 công tắc hành trình cơ học.
    • Mạch công suất L298N: Sử dụng IC L298 kép, hỗ trợ dòng 2A mỗi cầu H, công suất tải cực đại 25W/cầu, tích hợp bộ ổn áp 7805 cấp nguồn 5VDC logic.
    • Động cơ DC giảm tốc TT 130 và Bánh xe 65mm: Đạt tốc độ quay 125 vòng/phút tại 3VDC và 208 vòng/phút tại 5VDC, dòng tiêu thụ 110–140 mA.
    • Khối nguồn: Bộ pin sạc 18650 Ultrafire dung lượng 4200 mAh, điện thế danh định 3.7V.

Chương III: Thiết kế và xây dựng mô hình

Chương III trình bày quá trình hiện thực hóa mô hình thực tế, tích hợp hệ thống và thuật toán điều khiển:

  • Yêu cầu chức năng của robot:
    • Nhận diện và tự động điều chỉnh hướng di chuyển bám theo các đường line trên mặt sàn.
    • Phát hiện vật thể trong phạm vi quét của cảm biến và chủ động chuyển hướng di chuyển để tránh va chạm.
    • Kích hoạt còi báo hiệu phát âm thanh cảnh báo khi phát hiện vật cản phía trước.
    • Định hướng mở rộng khả năng nhận dạng các đối tượng chuyên biệt trong tiến trình sản xuất công nghiệp tự động.
  • Nguyên lý đo đạc và điều khiển: Trung tâm điều khiển Arduino Uno R3 kích hoạt xung Trigger tối thiểu 10 µs, tính toán thời gian phản hồi xung mức cao tại chân Echo bằng hàm pulseIn(), từ đó suy ra khoảng cách vật cản và điều khiển trạng thái các chân logic IN1, IN2, IN3, IN4 của module L298N để thay đổi hướng di chuyển của xe.

Kết quả và đóng góp

Kết quả đạt được

  • Chế tạo thành công mô hình xe robot phần cứng hoàn chỉnh tích hợp vi điều khiển Arduino Uno R3, thanh 5 cảm biến hồng ngoại TCRT5000, cảm biến siêu âm HC-SR04, module công suất L298N và động cơ giảm tốc TT 130.
  • Xây dựng chương trình điều khiển nhúng trên Arduino IDE:
    • Khởi tạo và thiết lập chế độ chân Input/Output cho các khối ngoại vi (IN1-IN4, ss1-ss5, COI, trigPin, echoPin).
    • Thiết lập ngưỡng khoảng cách dừng phát hiện vật cản an toàn Robot_stop_distance = 10 cm.
    • Xử lý việc phát chùm xung Trigger 10 µs và đo độ rộng xung Echo để tính toán chính xác khoảng cách tức thời.

Đóng góp của đề tài

  • Hệ thống hóa các kiến thức cơ sở về lập trình nhúng, chuẩn giao tiếp ngoại vi và thiết kế mạch điều khiển động cơ DC.
  • Cung cấp một mô hình thực nghiệm trực quan về xe tự hành kết hợp đồng thời hai tính năng: dò vạch dẫn hướng và phát hiện/tránh vật cản bằng sóng siêu âm.
  • Đóng vai trò là tài liệu kỹ thuật nền tảng phục vụ nghiên cứu và phát triển các hệ thống robot tự hành thông minh trong môi trường nhà xưởng công nghiệp.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế của đề tài

  • Thuật toán điều khiển chủ yếu dựa trên ngưỡng phát hiện khoảng cách cố định (10 cm) và tín hiệu số logic từ cảm biến hồng ngoại, chưa tích hợp các thuật toán điều khiển mờ (Fuzzy Logic) hoặc PID để tối ưu hóa độ êm khi bám line.
  • Mô hình phần cứng dừng lại ở mức thử nghiệm học thuật, chưa hoàn thiện phần tích hợp giao tiếp truyền dữ liệu cảm biến thời gian thực lên máy tính hoặc giao diện Web Server qua module ESP8266 trong chương trình điều khiển chính.

Hướng nghiên cứu tiếp

  • Tích hợp module Wi-Fi ESP8266 vào chương trình tổng thể nhằm truyền các thông số đo đạc của cảm biến lên giao diện máy tính, cho phép giám sát và điều khiển xe từ xa qua Web Server.
  • Khai thác tính năng nạp mã nguồn qua mạng không dây (OTA) và điều khiển xe bằng giọng nói qua Google Assistant như đã khảo sát lý thuyết ở Chương II.
  • Phát triển thêm các thuật toán nhận dạng vật thể chuyên biệt phục vụ phân loại và vận chuyển tự động trong dây chuyền sản xuất nhà máy.

Giá trị tham khảo

Báo cáo đồ án là tài liệu tham khảo phù hợp cho sinh viên các chuyên ngành Công nghệ thông tin, Kỹ thuật điều khiển và Tự động hóa, Điện tử - Viễn thông, Cơ điện tử khi thực hiện các học phần:

  • Lập trình hệ thống nhúng và ứng dụng vi điều khiển (AVR / Arduino / ESP8266).
  • Nhập môn Robot học và các hệ thống xe tự hành (AGV).
  • Thiết kế mạch công suất điều khiển động cơ DC và ghép nối cảm biến (siêu âm, hồng ngoại).

Nội dung chi tiết về bảng thông số kỹ thuật linh kiện, cấu hình chân kết nối và đoạn mã nguồn khởi tạo trên Arduino IDE có thể được sử dụng trực tiếp làm mẫu thiết kế trong các đồ án môn học liên quan.


Câu hỏi thường gặp

1. Hệ thống sử dụng những loại cảm biến nào để thực hiện các chức năng dẫn đường và tránh vật cản?

Hệ thống sử dụng hai loại cảm biến chính: thanh 5 cảm biến hồng ngoại TCRT5000 (Line Follower Sensor BFD-1000) bố trí hướng xuống sàn để nhận diện vạch kẻ dẫn hướng, và một cảm biến siêu âm HC-SR04 gắn phía trước xe để đo khoảng cách và phát hiện chướng ngại vật trong phạm vi từ 2 cm đến 450 cm.

2. Nguyên lý đo khoảng cách của cảm biến siêu âm HC-SR04 được triển khai như thế nào trong đồ án?

Cảm biến phát ra 8 xung sóng siêu âm ở tần số 40 kHz khi chân Trigger nhận tín hiệu kích mức cao trong thời gian 10 µs. Chân Echo sẽ duy trì mức điện áp cao tương ứng với thời gian sóng phản xạ trở lại. Khoảng cách được tính toán bằng công thức: $\text{Khoảng cách} = \text{thời gian} \times 340\text{ m/s} / 2$.

3. Module L298N trong đồ án có vai trò gì và thông số giới hạn ra sao?

Module L298N đóng vai trò là mạch cầu H điều khiển công suất cho 2 động cơ DC giảm tốc TT 130. Mạch hỗ trợ điện áp vào từ 5V đến 30VDC, dòng tải cực đại 2A cho mỗi cầu H, công suất tiêu tán tối đa 25W trên mỗi cầu và tích hợp IC hạ áp 7805 để cung cấp nguồn 5VDC logic.

4. Vi điều khiển Arduino Uno R3 phân bổ các chân I/O như thế nào theo mã nguồn thiết kế?

Theo mã nguồn của đồ án, chân số 12 nối với trigPin, chân số 13 nối với echoPin, chân số 2 điều khiển còi báo (COI), các chân số 3, 5, 6, 9 lần lượt kết nối với các đầu vào IN1, IN2, IN3, IN4 của module L298N, và các chân ss1 đến ss5 dùng để đọc dữ liệu từ thanh cảm biến dò line.

5. Module Wi-Fi ESP8266 được nhóm tác giả khảo sát với những tiềm năng ứng dụng nào?

ESP8266 sử dụng vi xử lý Tensilica L106 32-bit (80 MHz), 80 KB RAM, 4 MB Flash và Wi-Fi 802.11 b/g/n. Module được khảo sát với 5 ứng dụng tiềm năng: xây dựng Web Server điều khiển thiết bị từ xa qua mạng, cập nhật firmware không dây qua giao thức OTA, điều khiển thiết bị bằng giọng nói qua Google Assistant, chế tạo xe điều khiển từ xa qua smartphone và hiển thị dữ liệu văn bản lên bảng ma trận LED.


Kết luận

Đồ án "Báo cáo đồ án lập trình hệ thống robot dò đường tránh vật cản" do nhóm sinh viên lớp 20CT3 Trường Đại học Kiến trúc Đà Nẵng thực hiện đã cung cấp cái nhìn toàn diện từ cơ sở lý thuyết IoT, hệ thống nhúng đến việc triển khai mạch phần cứng cụ thể. Hệ thống đã tích hợp thành công vi điều khiển Arduino Uno R3, cảm biến siêu âm HC-SR04, thanh cảm biến dò line TCRT5000 và mạch cầu H L298N để thực hiện các yêu cầu bám đường dẫn hướng, đo khoảng cách và phát âm thanh cảnh báo vật cản. Kết quả của đồ án là tài liệu kỹ thuật có giá trị thực tiễn cho việc nghiên cứu, giảng dạy và chế tạo các mô hình robot di động tự hành cơ bản.