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

Sự phát triển của khoa học kỹ thuật và công nghệ điện tử - vi điều khiển đóng vai trò quan trọng trong tiến trình công nghiệp hóa và hiện đại hóa. Các hệ thống nhúng và vi điều khiển ngày càng được ứng dụng sâu rộng trong đời sống, từ các thiết bị dân dụng đến các dây chuyền tự động hóa phức tạp và robot công nghiệp. Nhằm vận dụng kiến thức chuyên ngành được trang bị trong học phần Vi điều khiển tại Trường Đại học Công nghệ Thông tin và Truyền thông Việt - Hàn (Khoa Khoa học Máy tính), nhóm nghiên cứu đã triển khai đề tài thiết kế và chế tạo hai mô hình robot di động: xe điều khiển bằng tay và xe tự hành.

Mục tiêu nghiên cứu của đồ án được xác định cụ thể gồm hai nhiệm vụ:

  1. Thiết kế và chế tạo mô hình xe điều khiển bằng tay (Robocar) nhận tín hiệu qua sóng vô tuyến (sử dụng giao thức Bluetooth SPP giao tiếp với điện thoại thông minh); áp dụng kỹ thuật điều khiển tốc độ, hướng di chuyển và tích hợp cánh tay robot cơ khí phục vụ các thao tác vận hành trên sa bàn.
  2. Thiết kế và chế tạo mô hình xe tự hành (Robocar) có khả năng tự định vị, bám vạch kẻ đường (dò line) thông qua cụm cảm biến quang hồng ngoại, tự động điều chỉnh tốc độ và hướng di chuyển để hoàn thành lộ trình định sẵn.

Đối tượng nghiên cứu của đồ án là cấu trúc phần cứng, giải thuật điều khiển nhúng trên nền tảng vi điều khiển họ AVR (ATmega328P) và các module ngoại vi. Phạm vi nghiên cứu tập trung vào việc thiết kế mô hình thực nghiệm quy mô nhỏ, hoàn thành và nghiệm thu tại thành phố Đà Nẵng vào tháng 5 năm 2024.

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

Cơ sở lý thuyết của đồ án dựa trên các nguyên lý điều khiển tự động và kỹ thuật vi điều khiển:

  • Kiến trúc vi điều khiển AVR: Nền tảng vi điều khiển 8-bit ATmega328P với cấu trúc tập lệnh đơn giản, tích hợp sẵn các bộ chuyển đổi tương tự - số (ADC), bộ định thời (Timer) và các kênh điều chế độ rộng xung (PWM) phục vụ điều khiển công suất.
  • Nguyên lý điều khiển động cơ DC bằng cầu H: Sử dụng vi mạch chuyên dụng L298N để nhận tín hiệu logic và PWM từ vi điều khiển nhằm đảo chiều điện áp, thay đổi tốc độ quay của hai động cơ DC độc lập.
  • Nguyên lý thu phát hồng ngoại phản xạ: Cảm biến TCRT5000L hoạt động dựa trên sự chênh lệch hệ số hấp thụ và phản xạ ánh sáng hồng ngoại giữa bề mặt vạch kẻ tối màu và nền sáng màu, chuyển đổi thành mức điện áp logic đưa về chân vi điều khiển.
  • Giao thức truyền thông nối tiếp không dây (Bluetooth SPP): Mô phỏng cổng nối tiếp chuẩn UART qua kết nối vô tuyến Bluetooth 2.4GHz để truyền nhận chuỗi ký tự điều khiển từ ứng dụng di động.

Phương pháp nghiên cứu bao gồm:

  • Phương pháp thu thập dữ liệu: Khảo sát thông số kỹ thuật, sơ đồ chân và điều kiện hoạt động của các linh kiện điện tử, vi điều khiển, driver động cơ và các module cảm biến.
  • Phương pháp phân tích dữ liệu: Phân tích tín hiệu đầu vào từ cảm biến và lệnh điều khiển từ xa để xây dựng lưu đồ thuật toán tối ưu.
  • Phương pháp thiết kế và thực nghiệm hệ thống: Thiết kế sơ đồ nguyên lý, lắp ráp cơ khí, ghép nối phần cứng và lập trình nạp code kiểm thử thực tế trên hai mô hình xe.

Nguồn dữ liệu và tài liệu tham khảo chính của đồ án gồm: Giáo trình Arduino cho người mới bắt đầu (Cộng đồng Arduino Việt Nam), tài liệu Internet of Things với ESP8266, cổng thông tin kỹ thuật dientubachviet.com và các tài liệu kỹ thuật từ nhà sản xuất linh kiện.

Thiết kế và triển khai

Hệ thống được phân tách thành hai mô hình phần cứng độc lập, sử dụng chung nền tảng xử lý trung tâm là vi điều khiển Arduino Nano kết hợp môi trường phát triển Arduino IDE (ngôn ngữ lập trình C/C++).

Thông số kỹ thuật các thành phần phần cứng

Thành phần linh kiện Thông số kỹ thuật chính Vai trò trong hệ thống
Bo mạch Arduino Nano Vi xử lý ATmega328P (16 MHz); Điện áp hoạt động: 5V; Điện áp vào: 7-12V; 14 chân Digital I/O (6 chân PWM), 8 chân Analog; Kích thước: 18 x 45 mm; Trọng lượng: 7g Khối xử lý trung tâm, đọc cảm biến, giải mã lệnh và phát xung điều khiển
Mạch công suất L298N Mạch cầu H đôi; Điện áp hoạt động: 5V - 35V; Dòng tải tối đa: 2A mỗi kênh; Tích hợp bảo vệ quá nhiệt, quá dòng Khuếch đại công suất và điều khiển đảo chiều, điều chỉnh tốc độ 2 động cơ DC
Module Bluetooth JDY-33-SPP Chuẩn Bluetooth 3.0/4.0; Giao thức SPP (Serial Port Profile); Tần số: 2.4GHz; Dòng hoạt động: <10mA; Khoảng cách: ~10m Nhận dữ liệu điều khiển không dây từ điện thoại thông minh và gửi tới UART Arduino
Cảm biến hồng ngoại TCRT5000L Cặp thu phát hồng ngoại phản xạ; Khoảng cách dò: 2mm - 15mm; Điện áp: 5V; Dòng tiêu thụ: <20mA Nhận diện vạch kẻ đường dựa trên mức độ phản xạ ánh sáng
Động cơ Servo SG90 Góc quay: 0 - 180 độ; Điện áp: 4.8V - 6V; Moment xoắn: 1.8 kg/cm (tại 4.8V); Tốc độ phản ứng: ~0.1s/60 độ; Trọng lượng: 9g Dẫn động các khớp xoay, nâng hạ và đóng mở của cánh tay robot mica
Module hạ áp MP1584 Mạch DC-DC Buck; Điện áp vào: 4.5V - 28V; Điện áp ra điều chỉnh: 0.8V - 20V; Dòng ra tối đa: 3A; Hiệu suất: 80% - 92% Cung cấp nguồn điện áp ổn định cho vi điều khiển và các module ngoại vi
Cơ cấu khung và nguồn Khung xe mica, hệ thống bánh xích (xe điều khiển), bánh xe cao su (xe dò line), bộ pin 3.7V, công tắc, còi buzzer Khung gầm truyền động và hệ thống cấp nguồn toàn mạch

Kiến trúc điều khiển và thuật toán triển khai

  1. Hệ thống xe điều khiển từ xa (kèm cánh tay robot):

    • Vi điều khiển đọc dữ liệu ký tự liên tục từ cổng UART nối với module JDY-33-SPP.
    • Khi nhận mã ký tự định hướng (F: tiến, B: lùi, L: rẽ trái, R: rẽ phải, S: dừng, G, I, H, J: điều hướng kết hợp), vi điều khiển xuất tín hiệu PWM tương ứng (vSpeed = 200) ra các chân điều khiển động cơ qua mạch L298N (chân D3, D5, D6, D9).
    • Khi nhận mã kích hoạt chế độ cánh tay robot (X/x), các phím điều hướng được chuyển đổi chức năng để tăng/giảm góc quay của các servo: xoay trục (step_quay_truc, góc 0 - 120 độ), nâng hạ thân (step_nang_duoi, góc 0 - 140 độ) và kẹp nhả (tay_kep, góc 0 - 33 độ).
    • Tích hợp còi báo (buzzer tại chân D4) và đèn hiển thị (LED tại chân D2) phản hồi trạng thái hoạt động.
  2. Hệ thống xe dò line tự hành:

    • Sử dụng mảng 5 cảm biến hồng ngoại TCRT5000L kết nối trực tiếp vào các chân đầu vào tương tự/số (A0, A1, A2, A3, A4).
    • Hàm In_Sensor() đọc đồng thời 5 cảm biến để xác định vị trí tương đối của xe so với vạch kẻ.
    • Giải thuật bám đường phân chia thành các trường hợp logic để điều chỉnh tốc độ vi sai giữa hai bánh qua hàm robotMover(), sử dụng 3 cấp độ xung PWM cố định: td1 = 160 (tốc độ thấp), td2 = 190 (tốc độ trung bình), td3 = 220 (tốc độ cao). Khi xe đi lệch tâm sang trái hoặc phải, vi điều khiển kích hoạt giảm tốc một bên và tăng tốc bên còn lại hoặc quay góc 90 độ để giữ xe luôn bám sát vạch.

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

Chương 1. Giới thiệu về Arduino

Chương 1 trình bày tổng quan về hệ sinh thái Arduino, môi trường lập trình và khảo sát chi tiết thông số kỹ thuật của các linh kiện sử dụng trong đồ án:

  • Phân tích cấu trúc phần cứng của nền tảng Arduino với vi điều khiển họ AVR, cơ chế mở rộng bằng shield ghép tầng qua giao tiếp I2C hoặc các chân I/O tiêu chuẩn.
  • Giới thiệu phần mềm phát triển mã nguồn Arduino IDE xây dựng trên nền tảng Java, hỗ trợ ngôn ngữ C/C++ cùng thư viện hàm Wiring hỗ trợ thao tác nhanh với các cổng vào/ra số và tương tự.
  • Khảo sát thông số vật lý và điện học chi tiết của 8 nhóm linh kiện chính: bo mạch Arduino Nano, bộ khung cánh tay robot mica 3 khớp, module truyền thông Bluetooth JDY-33-SPP, động cơ servo SG90, mạch cầu H L298N, module nguồn DC-DC MP1584, module cảm biến quang hồng ngoại TCRT5000L, cùng các phụ kiện cơ khí (khung mica, xích truyền động, bánh xe dò line, pin nguồn 3.7V, công tắc gạt).

Chương 2. Phân tích thiết kế

Chương 2 tập trung xây dựng sơ đồ khối chức năng, sơ đồ kết nối mạch nguyên lý và lưu đồ giải thuật cho từng hệ thống:

  • Phân tích xe điều khiển: Mô tả chi tiết 6 khối chức năng gồm: Khối thiết bị điều khiển (ứng dụng di động), Khối thu tín hiệu Bluetooth, Khối vi điều khiển trung tâm, Khối điều khiển động cơ L298N, Khối cơ cấu chấp hành Servo (cánh tay robot) và Khối động cơ truyền động. Xây dựng lưu đồ xử lý dữ liệu nối tiếp và lưu đồ điều khiển góc quay an toàn cho các servo.
  • Phân tích xe tự hành: Mô tả 4 khối chức năng gồm: Khối cảm biến hồng ngoại 5 kênh, Khối xử lý trung tâm Arduino Nano, Khối điều khiển động cơ L298N và Khối động cơ truyền động bánh xe. Xây dựng sơ đồ đấu nối chân tín hiệu từ mảng cảm biến về các chân A0 - A4 và lưu đồ giải thuật phân nhánh điều hướng bám line (tiến thẳng, rẽ trái 90 độ, rẽ phải 90 độ, xoay ngược hướng khi mất line).

Chương 3. Thi công và sản phẩm

Chương 3 trình bày toàn bộ quy trình chế tạo thực nghiệm và đánh giá chất lượng vận hành của hai mẫu sản phẩm:

  • Quy trình 7 bước thi công: (1) Khảo sát linh kiện cần thiết; (2) Chuẩn bị vật tư; (3) Lắp ráp khung cơ khí và cánh tay robot; (4) Kết nối dây tín hiệu và nguồn giữa các module; (5) Lập trình và nạp code cho Arduino Nano; (6) Kiểm tra chức năng từng khối; (7) Tinh chỉnh tham số điều khiển trên sa bàn chạy thử.
  • Đánh giá khả năng hoạt động của hai sản phẩm:
    • Mô hình xe tank điều khiển từ xa: Vận hành cơ cấu truyền động bánh xích linh hoạt trên nhiều địa hình phẳng, cánh tay robot gắp nhả đồ vật chính xác thông qua lệnh gửi từ ứng dụng di động qua kết nối Bluetooth bán kính 10 mét.
    • Mô hình xe dò line: Tự động bám vạch kẻ chính xác, xử lý tốt các góc cua thông qua phản hồi nhanh của mảng 5 cảm biến hồng ngoại và thuật toán điều tốc vi sai động cơ.

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

Đồ án đã đạt được các kết quả cụ thể sau:

  • Chế tạo thành công hai mẫu robot di động hoàn chỉnh về cả phần cứng cơ khí, mạch điện tử và mã nguồn điều khiển: một xe bánh xích tích hợp cánh tay robot gắp vật 3 bậc tự do điều khiển qua Bluetooth và một xe tự hành 2 bánh độc lập dò vạch kẻ đường.
  • Thiết lập cấu hình điều khiển nhúng trên vi điều khiển ATmega328P với tần số xung nhịp 16 MHz, sử dụng tín hiệu điều chế độ rộng xung PWM để kiểm soát chính xác 3 cấp tốc độ động cơ (160, 190, 220) và điều khiển góc quay 4 servo qua thư viện Servo.h.
  • Xây dựng bảng mã lệnh truyền thông nối tiếp logic cho phép chuyển đổi linh hoạt giữa chế độ điều khiển chuyển động khung gầm và chế độ điều khiển từng khớp cánh tay robot trên cùng một giao diện điều khiển.
  • Đóng góp mô hình thực hành trực quan phục vụ công tác nghiên cứu, học tập môn học Vi điều khiển và Hệ thống nhúng cho sinh viên chuyên ngành Khoa học Máy tính.

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

Dựa trên phạm vi và nội dung triển khai thực tế của đồ án, các hạn chế và hướng mở rộng được ghi nhận như sau:

  • Hạn chế:
    • Cấu trúc cơ khí khung xe và cánh tay robot gia công bằng vật liệu mica có độ bền cơ học ở mức trung bình, khả năng chịu tải của các servo mini SG90 còn giới hạn khi gắp vật nặng.
    • Thuật toán bám đường của xe tự hành áp dụng giải thuật so sánh điều kiện logic (if-else) dựa trên mảng 5 cảm biến, chuyển động của xe tại các khúc cua gấp đôi khi chưa đạt độ mượt tối ưu.
    • Tầm hoạt động của xe điều khiển bằng tay phụ thuộc vào cự ly phát của module Bluetooth JDY-33-SPP (trong phạm vi khoảng 10 mét).
  • Hướng nghiên cứu tiếp:
    • Tích hợp bộ điều khiển PID (Proportional - Integral - Derivative) vào giải thuật bám đường của xe tự hành để nâng cao độ mượt mà và tốc độ di chuyển.
    • Tích hợp thêm cảm biến siêu âm phát hiện vật cản tự động trên đường đua theo định hướng ban đầu của đề tài.
    • Nâng cấp giao thức truyền thông không dây sang sóng vô tuyến công suất cao hoặc Wifi/RF để mở rộng khoảng cách điều khiển.

Giá trị tham khảo

Bản báo cáo đồ án mang lại giá trị tham khảo thiết thực cho:

  • Sinh viên ngành Kỹ thuật máy tính, Công nghệ thông tin, Điện tử - Viễn thông, Tự động hóa: Tài liệu mẫu trong việc thiết kế sơ đồ khối, lựa chọn linh kiện, đấu nối mạch phần cứng và lập trình vi điều khiển AVR/Arduino trong các học phần đồ án môn học hoặc đồ án cơ sở ngành.
  • Người nghiên cứu và người mới tiếp cận Robotics: Tham khảo cấu trúc chương trình nguồn C/C++ xử lý giao tiếp Bluetooth nối tiếp, điều khiển đa động cơ servo, và thuật toán phân tích trạng thái mảng cảm biến quang phục vụ các bài toán xe tự hành cơ bản.

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

1. Vi điều khiển chính được sử dụng trong hai mô hình là loại nào và có đặc tính kỹ thuật gì? Đồ án sử dụng bo mạch Arduino Nano trang bị vi điều khiển ATmega328P hoạt động ở tần số 16 MHz, điện áp 5V, có 14 chân I/O số (trong đó 6 chân có thể băm xung PWM), 8 chân đầu vào tương tự, kích thước nhỏ gọn 18 x 45 mm và trọng lượng khoảng 7g.

2. Xe dò line sử dụng bao nhiêu cảm biến và nguyên lý nhận diện đường đi ra sao? Xe dò line sử dụng mảng 5 module cảm biến hồng ngoại TCRT5000L kết nối vào các chân A0 đến A4 của Arduino Nano. Cảm biến hoạt động theo nguyên tắc phản xạ hồng ngoại: phát hiện vạch kẻ dựa trên sự khác biệt về cường độ ánh sáng phản xạ giữa vạch màu và mặt sàn trong khoảng cách dò từ 2mm đến 15mm.

3. Giao thức nào được sử dụng để kết nối và điều khiển xe từ xa? Hệ thống sử dụng module Bluetooth JDY-33-SPP hoạt động ở tần số 2.4GHz với giao thức SPP (Serial Port Profile), thiết lập kết nối truyền thông nối tiếp không dây giữa điện thoại thông minh và cổng UART của Arduino trong phạm vi hoạt động khoảng 10 mét.

4. Trong mã nguồn của xe tự hành, tốc độ động cơ được cấu hình theo các mức xung PWM nào? Mã nguồn cấu hình 3 biến tốc độ PWM cố định gồm: td1 = 160, td2 = 190 và td3 = 220, được xuất ra các chân kích của mạch cầu H L298N (D3, D5, D6, D9) thông qua lệnh analogWrite() tùy thuộc vào trạng thái lệch tâm đọc được từ mảng cảm biến.

5. Quy trình thi công sản phẩm thực tế của nhóm sinh viên gồm những bước nào? Quy trình gồm 7 bước: (B1) Tìm hiểu linh kiện cần thiết; (B2) Chuẩn bị linh kiện; (B3) Lắp ráp khung xe và cánh tay robot; (B4/B5) Kết nối các linh kiện điện tử; (B6) Lập trình phần mềm cho Arduino; (B7) Kiểm tra chức năng và tinh chỉnh hoạt động của xe.

Kết luận

Đồ án "Thiết Kế và Xây Dựng Xe Dò Line và Xe Điều Khiển Bằng Tay" của nhóm sinh viên Trường Đại học Công nghệ Thông tin và Truyền thông Việt - Hàn đã hoàn thành đầy đủ mục tiêu thiết kế và chế tạo hai mô hình robot nhúng ứng dụng vi điều khiển Arduino Nano. Đề tài kết hợp hiệu quả giữa lý thuyết điều khiển vi xử lý họ AVR, kỹ thuật công suất cầu H L298N, truyền thông không dây Bluetooth và kỹ thuật xử lý tín hiệu cảm biến quang hồng ngoại. Các sản phẩm thực nghiệm hoạt động ổn định, cung cấp tài liệu kỹ thuật và mã nguồn hữu ích cho việc nghiên cứu, giảng dạy và thực hành trong lĩnh vực vi điều khiển và robot di động.