Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh tự động hóa quy trình sản xuất và logistics hiện đại, việc vận chuyển hàng hóa tự động đóng vai trò thiết yếu nhằm tối ưu hóa chuỗi cung ứng, nâng cao hiệu suất làm việc và tiết kiệm chi phí nhân công. Việc ứng dụng xe tự hành (AGV - Automated Guided Vehicle) vận chuyển hàng ngoài trời giúp hệ thống có thể vận hành liên tục 24/7, giảm thiểu tai nạn giao thông và loại bỏ các rủi ro do lỗi của con người. Để giải quyết bài toán định vị và dẫn đường cho phương tiện di chuyển trong không gian mở mà không cần thiết lập hạ tầng cố định phức tạp như đường ray hay đường kẻ từ tính, hệ thống định vị toàn cầu GPS (Global Positioning System) kết hợp với cảm biến la bàn số được xem là hướng tiếp cận phù hợp.
Đồ án tốt nghiệp "Thiết kế và điều khiển xe tự hành sử dụng định vị GPS" do nhóm sinh viên ngành Cơ điện tử, Trường Cơ khí – Đại học Bách Khoa Hà Nội thực hiện, tập trung nghiên cứu, thiết kế, chế tạo và thử nghiệm mô hình xe tự hành vận chuyển hàng hóa ứng dụng công nghệ định vị vệ tinh.
Mục tiêu nghiên cứu của đồ án được xác định gồm 5 nội dung chính:
- Thiết kế một hệ thống định vị GPS chính xác và ổn định để xe tự hành có thể xác định vị trí của mình trên bản đồ và tìm đường đi đến đích.
- Phát triển một phần mềm điều khiển xe tự hành thông qua các giải thuật và thuật toán điều khiển để đưa ra quyết định và điều khiển xe hoạt động đúng cách.
- Tích hợp các cảm biến vào xe tự hành để xe có thể phát hiện và tránh các chướng ngại vật trong quá trình di chuyển.
- Thực hiện các bài kiểm tra an toàn để đảm bảo rằng xe tự hành có thể hoạt động đúng cách và không gây nguy hiểm cho người tham gia giao thông.
- Đánh giá và cải tiến hệ thống để tăng tính ổn định và độ chính xác của xe tự hành.
Nhiệm vụ kỹ thuật cụ thể bao gồm:
- Tính toán và thiết kế kết cấu cơ khí: khung xe chịu tải, khung gá động cơ, lựa chọn động cơ dẫn động và nguồn pin.
- Xây dựng bản vẽ thiết kế: bản vẽ lắp 2D/3D và bản vẽ chế tạo chi tiết trên phần mềm chuyên dụng.
- Thiết kế hệ thống điện – điện tử: xây dựng sơ đồ khối, lựa chọn vi điều khiển, mạch điều khiển động cơ, module truyền thông không dây và các cảm biến.
- Xây dựng thuật toán điều khiển: lập trình xử lý tín hiệu cảm biến, thuật toán tìm đường, thuật toán ổn định tốc độ PID và lập trình giao diện điều khiển, giám sát trên máy tính.
- Thực nghiệm, đo đạc và đánh giá sai số hoạt động ngoài thực tế.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Mô hình xe tự hành 4 bánh đa hướng (omni-directional wheels) phục vụ vận chuyển hàng hóa.
- Phạm vi nghiên cứu: Hoạt động trong môi trường ngoài trời thông thoáng, không gian di chuyển tương thích với các khu vực như khuôn viên trường học, khu dân cư, kho bãi công nghiệp hoặc sân bay; tải trọng hàng hóa thiết kế 10 kg, nguồn pin 12V duy trì hoạt động trong 1 giờ.
Cơ sở lý thuyết và phương pháp
Khung lý thuyết và mô hình tính toán được tác giả sử dụng trong đồ án bao gồm:
- Mô hình động học chuyển động bánh đa hướng: Cơ chế truyền động sử dụng 4 bánh xe đa hướng cho phép phương tiện di chuyển linh hoạt trong không gian hẹp với 11 phương thức chuyển động khác nhau mà không cần cơ cấu đổi hướng lái phức tạp.
- Lý thuyết định vị toàn cầu và chuẩn dữ liệu NMEA-0183: Nguyên lý xác định tọa độ thông qua việc thu nhận tín hiệu từ tối thiểu 4 vệ tinh quỹ đạo, tính toán khoảng cách dựa trên thời gian truyền tín hiệu. Khai thác chuỗi dữ liệu thô chuẩn NMEA
$GPGGA để trích xuất vĩ độ (Latitude) và kinh độ (Longitude).
- Mô hình xác định hướng góc (Heading): Sử dụng cảm biến từ trường 3 trục đo giá trị từ trường Trái Đất theo các trục $X, Y, Z$, kết hợp tính toán góc lệch từ thiên (declination) để xác định góc lệch của xe so với phương Bắc địa lý:
$$\text{Heading} = \arctan\left(\frac{Y}{X}\right) + \text{declination}$$
- Nguyên lý đo khoảng cách bằng sóng siêu âm: Dựa trên thời gian lan truyền và phản xạ của chùm sóng siêu âm $40\text{ kHz}$ với vận tốc lan truyền trong không khí $340\text{ m/s}$:
$$\text{Khoảng cách} = \frac{\text{Thời gian} \times 340}{2}$$
- Lý thuyết điều khiển phản hồi PID (Proportional - Integral - Derivative): Ứng dụng bộ điều khiển PID kinh điển nhằm ổn định và duy trì tốc độ quay của động cơ DC thông qua tín hiệu phản hồi từ encoder.
Phương pháp nghiên cứu thực tế đã sử dụng:
- Phương pháp tính toán cơ học và kiểm nghiệm độ bền: Tính toán lực cản, công suất phát động cần thiết, mô men xoắn; mô phỏng phân tích ứng suất và biến dạng của kết cấu khung chịu lực trên phần mềm Autodesk Inventor với vật liệu Nhôm-1345.
- Phương pháp thiết kế mạch và mô phỏng điện tử: Thiết kế sơ đồ nguyên lý mạch logic tối ưu hóa chân điều khiển driver trên phần mềm Proteus.
- Phương pháp lập trình nhúng và xử lý dữ liệu số: Lập trình điều khiển thời gian thực trên bo mạch Arduino Mega 2560 bằng ngôn ngữ C/C++; lập trình giao diện người dùng (GUI) và xử lý bản đồ bằng ngôn ngữ Python; xây dựng giao thức truyền thông nhị phân tối ưu qua cổng nối tiếp UART.
- Phương pháp thực nghiệm - kiểm chứng: Chạy thử nghiệm mô hình thực tế trong môi trường ngoài trời và mô phỏng trên nền tảng MATLAB để đối sánh thông số phản hồi động học.
Nguồn dữ liệu của nghiên cứu:
- Dữ liệu thu nhận trực tiếp từ phần cứng cảm biến: Module GPS NEO-M8N, cảm biến từ trường HMC5883L (module GY-271), cảm biến siêu âm HC-SR04, xung phản hồi từ encoder quang gắn trên trục động cơ JGB 37-545.
- Thông số kỹ thuật chuẩn công nghiệp từ tài liệu bán dẫn và linh kiện (datasheet) của các hãng sản xuất u-blox, Honeywell/Semtech, Johnson Electric.
Thiết kế và triển khai hệ thống
Hệ thống xe tự hành được thiết kế đồng bộ từ kết cấu cơ khí, phần cứng điện tử đến phần mềm điều khiển và giao diện giám sát:
| Phân hệ |
Thành phần / Thiết bị |
Thông số kỹ thuật chính |
Chức năng trong hệ thống |
| Cơ khí |
Khung xe (Nhôm-1345) |
Kích thước $300 \times 470\text{ mm}$, khối lượng $3\text{ kg}$, thanh hộp $15 \times 15\text{ mm}$ |
Chịu lực chính, gá lắp động cơ, pin và linh kiện |
|
Bánh xe |
4 bánh đa hướng (Omni) |
Tạo chuyển động linh hoạt theo 11 cách |
|
Động cơ JGB 37-545 |
$V_{\text{đm}} = 3\text{--}24\text{V}$, $N_{\text{không tải}} = 332\text{ rpm}$, $I_{\text{tải max}} = 5\text{A}$, tỉ số truyền $1:19$ |
Dẫn động các bánh xe độc lập |
| Điện - Điện tử |
Vi điều khiển Arduino Mega 2560 |
Vi xử lý ATmega2560 ($16\text{ MHz}$), 54 chân Digital I/O (14 PWM), 16 Analog In, Flash $256\text{ KB}$ |
Xử lý thuật toán điều khiển trung tâm tại xe |
|
Driver động cơ L298N |
Điện áp $5\text{--}46\text{V}$, dòng đỉnh $2\text{A}$/kênh ($4\text{A}$ tổng), công suất $25\text{W}$ |
Cấp nguồn và điều chế độ rộng xung cho 4 động cơ |
|
Mạch logic (74HC08, 74HC04) |
Cổng AND và NOT; Hàm logic: $\text{In1} = \text{PWM} \cdot \overline{\text{DIR}}$, $\text{In2} = \text{PWM} \cdot \text{DIR}$ |
Giảm số chân điều khiển từ vi điều khiển xuống driver |
|
Module GPS NEO-M8N |
Tần số $1575.42\text{ MHz}$, 66 kênh, độ chính xác $2.5\text{m}$ CEP, UART |
Thu nhận tọa độ địa lý (kinh độ, vĩ độ) |
|
La bàn số HMC5883L (GY-271) |
Đo 3 trục $X, Y, Z$, độ chính xác $1.3\text{ gauss}$, giao tiếp $\text{I}^2\text{C}$ |
Đo góc hướng của xe so với phương Bắc |
|
Cảm biến siêu âm HC-SR04 |
Cự ly $2\text{--}400\text{ cm}$, độ chính xác $\pm 3\text{ mm}$, tần số $40\text{ kHz}$, nguồn $5\text{V}$ |
Phát hiện chướng ngại vật phía trước xe |
|
Module truyền thông LoRa AS32 |
Tần số $410\text{--}441\text{ MHz}$, công suất $1\text{W}$, cự ly $8000\text{ m}$, UART ($9600\text{ bps}$) |
Truyền nhận dữ liệu song công giữa xe và máy tính |
|
Nguồn cấp |
Pin LiPo Tiger 3S-4500mAh-35C ($11.1\text{V}$, dung lượng $4500\text{ mAh}$, xả $35\text{C}$) |
Cung cấp năng lượng cho toàn bộ hệ thống |
|
Cảnh báo |
Còi chip $5\text{V}$ ($30\text{ mA}$, $85\text{ dB}$, $2\text{ kHz}$) |
Phát tín hiệu âm thanh cảnh báo |
| Phần mềm |
Mã nguồn nhúng (C/C++) |
Arduino IDE, biên dịch vi xử lý AVR |
Đọc cảm biến, chạy bộ điều khiển PID, lái động cơ |
|
Giao diện máy tính (Python) |
Python GUI, hiển thị bản đồ, xử lý tọa độ danh sách đích |
Giám sát hành trình, chuyển chế độ Auto/Manual |
Giao thức truyền thông và đóng gói dữ liệu:
- Truyền từ vi điều khiển lên máy tính (9 bytes): Byte mào đầu
0xFF, theo sau là 4 bytes vĩ độ (Latitude) và 4 bytes kinh độ (Longitude). Tọa độ được giải mã bằng các phép dịch bit và toán tử logic OR.
- Truyền từ máy tính xuống vi điều khiển (5 bytes): Byte mào đầu
0xFF, 2 bytes dữ liệu góc lệch mục tiêu và 2 bytes dữ liệu khoảng cách tới đích.
- Ở chế độ thủ công (Manual): Máy tính gửi gói dữ liệu gồm byte mào đầu
0xFF, byte chỉ thị hướng di chuyển và byte cài đặt tốc độ.
Nội dung chính theo từng chương
CHƯƠNG 1: TỔNG QUAN
Chương 1 phân tích bức tranh tổng quan về các phương pháp vận chuyển hàng hóa tự động (phương pháp kéo hàng, phương pháp chở hàng và phương pháp nâng hàng) cùng các hình thức tìm đường (dẫn đường theo vạch/đường định sẵn, dẫn đường tự động bằng cảm biến và định vị, hệ thống lái tự động và hệ thống tự động hóa tập trung). Tác giả lựa chọn phương pháp chở hàng kết hợp dẫn đường tự động do đáp ứng được tính cơ động ngoài trời và khả năng làm việc linh hoạt trong không gian hạn chế. Chương này cũng làm rõ lý do chọn đề tài, 5 mục tiêu cốt lõi, nhiệm vụ thiết kế từ cơ khí, điện tử, giải thuật đến thực nghiệm, đồng thời xác lập phạm vi ứng dụng trong các khuôn viên công nghiệp, trường học và khu dân cư.
CHƯƠNG 2: LỰA CHỌN PHƯƠNG ÁN THIẾT KẾ XE TỰ HÀNH
Chương này đi sâu vào tính toán và lựa chọn phương án cơ khí cho phương tiện. Nhóm tác giả lựa chọn giải pháp sử dụng 4 bánh xe đa hướng, cho phép phân tích và thực thi 11 trạng thái chuyển động khác nhau. Kết cấu khung xe được thiết kế trên phần mềm Inventor với kích thước $300 \times 470\text{ mm}$, khối lượng khung $3\text{ kg}$, sử dụng vật liệu Nhôm-1345. Dựa trên phân tích tải trọng toàn phần $15\text{ kg}$ (khối lượng xe $5\text{ kg}$, tải trọng hàng $10\text{ kg}$) và yêu cầu vận tốc đạt tốc độ người đi bộ $v = 1.38\text{ m/s}$ ($5\text{ km/h}$), tác giả tính toán lực phát động $F = 0.5\text{ N}$, công suất tiêu hao $P = 1.6\text{ W}$, công suất động cơ yêu cầu $P_{\text{dc}} = 17.38\text{ W}$, từ đó quyết định chọn 4 động cơ DC giảm tốc JGB 37-545 công suất $60\text{ W}$, tốc độ $208\text{ rpm}$, tỉ số truyền $1:19$. Kết quả kiểm nghiệm ứng suất trên Inventor xác định thanh chịu lực có kích thước yêu cầu $> 12.3345\text{ mm}$, do đó nhóm chọn biên dạng nhôm hộp vuông $15 \times 15\text{ mm}$ đảm bảo điều kiện bền.
CHƯƠNG 3: THIẾT KẾ HỆ THỐNG ĐIỆN – ĐIỆN TỬ
Chương 3 xây dựng sơ đồ khối tổng thể của hệ thống điện và lựa chọn chi tiết các linh kiện bán dẫn. Hệ thống được điều khiển trung tâm bởi bo mạch Arduino Mega 2560 (ATmega2560, $16\text{ MHz}$). Bộ điều khiển động cơ sử dụng mạch cầu H kép L298N kết hợp với mạch logic tích hợp từ 2 IC logic 74HC08 (AND) và 74HC04 (NOT) để giảm tải chân điều khiển, thiết lập quan hệ chân lý: $\text{In1} = \text{PWM} \cdot \overline{\text{DIR}}$ và $\text{In2} = \text{PWM} \cdot \text{DIR}$. Thiết bị định vị gồm cảm biến GPS u-blox NEO-M8N giao tiếp UART, cảm biến la bàn số 3 trục HMC5883L giao tiếp $\text{I}^2\text{C}$ và cảm biến siêu âm HC-SR04 giao tiếp Digital I/O. Nguồn cấp cho toàn bộ thiết bị sử dụng khối Pin LiPo Tiger 3S-4500mAh-35C ($11.1\text{V}$), module truyền thông không dây LoRa AS32 công suất $1\text{W}$ (cự ly thiết kế $8000\text{ m}$) và còi chip $5\text{V}$ ($85\text{ dB}$).
CHƯƠNG 4: NGUYÊN LÝ HOẠT ĐỘNG
Chương 4 trình bày chu trình thu thập, xử lý tín hiệu và sơ đồ thuật toán điều khiển phương tiện theo hai chế độ:
- Chế độ tự động (Map): Khi người dùng nhấp chuột phải trên bản đồ máy tính, sự kiện
add_marker_event lưu danh sách tọa độ đích vào tệp coorTargetList. Tọa độ hiện tại được cập nhật liên tục từ GPS vào tệp currentCoord.txt. Khoảng cách và góc lệch giữa điểm hiện tại và điểm đích được tính toán. Xe di chuyển nếu khoảng cách nằm trong dải an toàn ($> 3.5\text{ m}$) và tiến hành giảm tốc, dừng lại khi khoảng cách nhỏ hơn ngưỡng dừng ($< 0.15\text{ m}$). Khi đến đích, điểm đó được xóa khỏi danh sách để chuyển sang điểm tiếp theo.
- Thuật toán điều hướng trên Arduino: Tính toán sai số góc $\text{headingError}$. Nếu $-10^\circ < \text{headingError} < 10^\circ$, xe đi thẳng; nếu $\text{headingError} > 180^\circ$ hoặc $-180^\circ < \text{headingError} < -10^\circ$, xe quay trái; nếu $10^\circ < \text{headingError} < 180^\circ$ hoặc $\text{headingError} < -180^\circ$, xe quay phải. Nếu cảm biến siêu âm phát hiện vật cản, xe lập tức dừng lại và chờ đến khi vật cản rời đi.
- Chế độ thủ công (Manual): Người vận hành tùy chọn cấp tốc độ và điều khiển hướng chuyển động trực tiếp thông qua các phím bấm trên giao diện điều khiển.
CHƯƠNG 5: XỬ LÝ TÍN HIỆU
Chương 5 giải quyết các bài toán xử lý tín hiệu chuyên sâu:
- Xử lý bản tin GPS: Lọc chuỗi dữ liệu chuẩn NMEA-0183, nhận dạng chuỗi
$GPGGA, trích xuất chuỗi ký tự sau dấu phẩy thứ 2 (vĩ độ) và thứ 4 (kinh độ), chuyển đổi thành dạng số thực.
- Hiệu chỉnh la bàn số: Đọc 6 byte dữ liệu từ trường trên 3 trục $X, Y, Z$ từ HMC5883L, bù giá trị offset để đưa về dải đo đối xứng $[0^\circ, 360^\circ]$, tính góc $\text{Heading}$ theo trục địa lý.
- Xử lý cảm biến siêu âm: Tạo xung Trigger $10\ \mu\text{s}$, đo độ rộng xung Echo mức cao để tính khoảng cách với vận tốc sóng âm $340\text{ m/s}$.
- Bộ điều khiển tốc độ PID: Thiết lập bộ điều khiển PID cho động cơ với bộ tham số thực nghiệm $K_p = 125$, $K_d = 0.0001$. Đáp ứng tốc độ với giá trị đặt $N_{\text{yc}} = 40\text{ rpm}$ ghi nhận tốc độ cực tiểu $N_{\text{min}} = 35\text{ rpm}$, tốc độ cực đại $N_{\text{max}} = 45\text{ rpm}$, đạt sai số $\sigma = 12.5%$.
- Đóng gói dữ liệu LoRa: Cấu trúc hóa gói tin UART với byte mào đầu
0xFF hoặc 0xFE, áp dụng các phép toán logic dịch bit (shift) và OR để nén/giải mã số nguyên và số thực giữa Arduino và máy tính.
CHƯƠNG 6: LẬP TRÌNH ĐIỀU KHIỂN – GIAO DIỆN
Chương này mô tả chi tiết kiến trúc phần mềm:
- Lập trình nhúng trên Arduino IDE: Cấu trúc chương trình gồm hàm
setup() cấu hình cổng giao tiếp, ngắt ngoài đọc encoder bánh xe; vòng lặp loop() liên tục gọi các khối hàm chức năng: đọc GPS, đọc la bàn số qua hàm tính $\text{heading}$, gửi dữ liệu lên PC qua hàm sent_data(), tính khoảng cách qua calculateDistance(), tính góc $\text{targetHeading}$ và điều khiển động cơ qua hàm calmove().
- Lập trình giao diện máy tính bằng Python: Xây dựng cửa sổ giám sát đồ họa tích hợp bản đồ số, cập nhật vị trí và góc quay thời gian thực của xe, cung cấp các nút điều hướng thủ công và điều chỉnh thông số truyền thông qua cổng nối tiếp.
CHƯƠNG 7: KẾT QUẢ THỰC NGHIỆM
Chương 7 tổng hợp kết quả chạy thử nghiệm hệ thống xe tự hành trong điều kiện thực tế ngoài trời kết hợp phân tích mô phỏng trên nền tảng MATLAB. Hệ thống chứng minh khả năng tự hành bám theo các mốc tọa độ GPS đã định trước trên bản đồ, phản hồi tốt với các lệnh điều hướng và tự động dừng khi phát hiện vật cản trong cự ly an toàn.
CHƯƠNG 8: TỔNG KẾT
Đánh giá tổng thể mức độ hoàn thành nhiệm vụ của đồ án, chỉ rõ các hạng mục kỹ thuật đã đạt được, các hạn chế còn tồn tại về phần cứng và thuật toán, đồng thời vạch ra hướng phát triển và nâng cấp hệ thống trong tương lai.
Kết quả và đóng góp
Kết quả kỹ thuật đạt được:
- Chế tạo thành công mô hình xe tự hành 4 bánh đa hướng hoàn chỉnh với khung nhôm $300 \times 470\text{ mm}$, tải trọng vận chuyển đạt $10\text{ kg}$, tốc độ di chuyển xấp xỉ tốc độ người đi bộ ($1.38\text{ m/s}$).
- Thiết lập thành công hệ thống định vị ngoài trời sử dụng GPS NEO-M8N kết hợp la bàn số HMC5883L, cho phép xe tự động tính toán góc lệch và bám theo lộ trình qua nhiều điểm mốc tọa độ liên tiếp.
- Thiết kế mạch logic điều khiển động cơ sử dụng IC 74HC08 và 74HC04 kết hợp driver L298N, giúp tối ưu hóa chân xung PWM từ vi điều khiển Arduino Mega 2560.
- Xây dựng bộ điều khiển PID tốc độ với thông số $K_p = 125, K_d = 0.0001$, duy trì vận tốc quay của động cơ trong dải $35\text{--}45\text{ rpm}$ so với giá trị đặt $40\text{ rpm}$ (sai số đáp ứng $\pm 12.5%$).
- Thiết lập giao thức truyền thông không dây LoRa AS32 tốc độ $9600\text{ bps}$, mã hóa chuỗi nhị phân tối ưu 5 bytes và 9 bytes giữa phương tiện và phần mềm giám sát Python.
Đóng góp kỹ thuật của đề tài:
- Đề xuất giải pháp tích hợp phần cứng gọn nhẹ, chi phí thấp cho xe tự hành ngoài trời không phụ thuộc vào đường dẫn cố định.
- Hiện thực hóa thành công giải thuật điều hướng dựa trên sai số góc $\text{headingError}$ phân theo các miền góc đối xứng, kết hợp cơ chế tránh vật cản tức thời bằng cảm biến siêu âm.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế của đồ án:
- Độ chính xác định vị phụ thuộc nhiều vào điều kiện môi trường; khi hoạt động gần các vật cản như nhà cao tầng, tán cây, tín hiệu GPS dân sự có thể bị sai số lệch vị trí từ $2.0\text{--}2.5\text{ m}$.
- Sai số điều khiển ổn định tốc độ động cơ của bộ điều khiển PID vẫn ở mức $\pm 12.5%$.
- Cơ chế xử lý vật cản còn đơn giản: cảm biến siêu âm HC-SR04 chỉ phát hiện vật cản đơn hướng phía trước và thực hiện lệnh dừng xe thụ động, chưa có thuật toán tự động quy hoạch lại quỹ đạo để vòng qua vật cản.
Hướng phát triển tiếp theo:
- Ứng dụng công nghệ định vị GPS vi sai (DGPS) hoặc định vị động thời gian thực RTK (Real-Time Kinematic) kết hợp bộ lọc Kalman mở rộng để giảm sai số định vị xuống mức centimet.
- Bổ sung hệ thống cảm biến LiDAR hoặc cụm cảm biến góc rộng để quét không gian 2D/3D, nâng cấp thuật toán tránh vật cản động và tự động tìm đường vòng.
- Tối ưu hóa bộ tham số PID hoặc nghiên cứu áp dụng các bộ điều khiển phi tuyến, điều khiển mờ (Fuzzy Logic) nhằm giảm sai số đáp ứng tốc độ động cơ xuống dưới $5%$.
Giá trị tham khảo
Tài liệu đồ án này có giá trị tham khảo chuyên môn cho sinh viên và kỹ sư thuộc các chuyên ngành Cơ điện tử, Kỹ thuật Cơ khí, Kỹ thuật Điều khiển và Tự động hóa, Kỹ thuật Robot, Hệ thống nhúng và IoT:
- Tham khảo về thiết kế cơ khí: Phương pháp tính chọn công suất động cơ dẫn động cho xe bánh đa hướng, quy trình mô phỏng kiểm nghiệm bền khung chịu lực bằng phần mềm Autodesk Inventor.
- Tham khảo về thiết kế mạch điện tử: Mạch logic ghép nối giữa IC 74HC08/74HC04 và driver L298N để tối ưu hóa chân vi điều khiển.
- Tham khảo về giải thuật và lập trình nhúng: Kỹ thuật tách chuỗi bản tin NMEA-0183 (
$GPGGA) trên Arduino C++; thuật toán điều hướng phương vị dựa trên sai số góc la bàn; phương pháp mã hóa và giải mã dữ liệu nhị phân qua module truyền thông LoRa.
- Tham khảo về phần mềm giám sát: Kiến trúc xây dựng giao diện điều khiển và giám sát phương tiện tự hành trên nền tảng Python GUI.
Câu hỏi thường gặp
1. Khung xe được thiết kế từ vật liệu gì và kích thước tiết diện chịu lực được chọn là bao nhiêu?
Khung xe được thiết kế bằng vật liệu Nhôm-1345 với kích thước tổng thể $300 \times 470\text{ mm}$, khối lượng $3\text{ kg}$. Qua kiểm nghiệm bền uốn trên phần mềm Autodesk Inventor với tải trọng lớn nhất $10\text{ kg}$, kích thước thanh chịu lực yêu cầu phải lớn hơn $12.3345\text{ mm}$. Tác giả đã lựa chọn thanh nhôm hộp vuông kích thước $15 \times 15\text{ mm}$ để chế tạo khung.
2. Mạch logic phụ trợ cho driver động cơ L298N hoạt động theo nguyên lý nào và sử dụng IC gì?
Mạch logic sử dụng 2 IC gồm 74HC08 (cổng AND) và 74HC04 (cổng NOT) để điều khiển động cơ chỉ bằng 1 chân PWM và 1 chân tín hiệu hướng (DIR). Hàm logic cho 2 ngõ vào driver L298N được thiết lập là $\text{In1} = \text{PWM} \cdot \overline{\text{DIR}}$ và $\text{In2} = \text{PWM} \cdot \text{DIR}$. Khi $\text{DIR}=0$, $\text{In1}=\text{PWM}, \text{In2}=0$; khi $\text{DIR}=1$, $\text{In1}=0, \text{In2}=\text{PWM}$.
3. Cảm biến GPS NEO-M8N xuất chuỗi dữ liệu theo chuẩn nào và tác giả trích xuất thông tin gì để điều khiển?
Module GPS NEO-M8N xuất dữ liệu theo chuẩn NMEA-0183 (bao gồm các bản tin $GPGGA, $GPRMC, $GPVTG, $GPGSV, $GPGLL, $GPZDA). Tác giả sử dụng chuỗi $GPGGA, đọc qua cổng Serial và phân tách các dấu phẩy để trích xuất dữ liệu vĩ độ (sau dấu phẩy thứ hai) và kinh độ (sau dấu phẩy thứ tư).
4. Quy tắc điều hướng xe dựa trên sai số góc (headingError) trên vi điều khiển Arduino được thực thi như thế nào?
Arduino xác định hướng di chuyển thông qua biến $\text{headingError}$:
- Nếu $-10^\circ < \text{headingError} < 10^\circ$: Xe tiếp tục đi thẳng.
- Nếu $\text{headingError} > 180^\circ$ hoặc $-180^\circ < \text{headingError} < -10^\circ$: Xe thực hiện lệnh quay trái cho tới khi sai số góc quay về khoảng an toàn $[-10^\circ, 10^\circ]$.
- Nếu $10^\circ < \text{headingError} < 180^\circ$ hoặc $\text{headingError} < -180^\circ$: Xe thực hiện lệnh quay phải cho tới khi sai số góc quay về khoảng an toàn $[-10^\circ, 10^\circ]$.
5. Bộ điều khiển PID ổn định tốc độ động cơ sử dụng bộ tham số nào và đạt sai số bao nhiêu?
Bộ điều khiển PID cho động cơ JGB 37-545 sử dụng thông số phản hồi từ encoder với hệ số cài đặt thực nghiệm $K_p = 125$ và $K_d = 0.0001$. Với tốc độ đặt $N_{\text{yc}} = 40\text{ rpm}$, hệ thống đáp ứng tốc độ trong dải từ $N_{\text{min}} = 35\text{ rpm}$ đến $N_{\text{max}} = 45\text{ rpm}$, tương ứng với sai số điều khiển $\pm 12.5%$.
Kết luận
Đồ án tốt nghiệp "Thiết kế và điều khiển xe tự hành sử dụng định vị GPS" đã hoàn thành trọn vẹn quy trình nghiên cứu, tính toán, thiết kế và chế tạo thực nghiệm mô hình xe tự hành vận chuyển hàng hóa 4 bánh đa hướng với tải trọng $10\text{ kg}$. Hệ thống tích hợp thành công vi điều khiển Arduino Mega 2560, cảm biến GPS NEO-M8N, la bàn số HMC5883L, cảm biến siêu âm HC-SR04 cùng module truyền thông LoRa AS32 và giao diện điều khiển Python. Kết quả thử nghiệm cho thấy phương tiện có khả năng tự động bám lộ trình theo tọa độ đặt trước ngoài trời, ổn định tốc độ qua bộ điều khiển PID và tự động dừng khi có chướng ngại vật. Công trình cung cấp tài liệu tham khảo kỹ thuật hữu ích về cả phương diện cơ khí, phần cứng điện tử lẫn giải thuật điều khiển nhúng trong lĩnh vực robot tự hành.