Giới thiệu dự án
Sự phát triển của cuộc Cách mạng Công nghiệp 4.0 và xu hướng tự động hóa gia dụng đã thúc đẩy nhu cầu ứng dụng robot thông minh vào đời sống. Theo các nghiên cứu thị trường về thiết bị dịch vụ vệ sinh, thị trường robot hút bụi và tự động làm sạch toàn cầu đạt tốc độ tăng trưởng kép hàng năm (CAGR) trên 14.5%, phản ánh sự dịch chuyển từ các thiết bị thủ công sang hệ thống di động tự hành (AGV/AMR).
Đồ án tốt nghiệp "Thiết kế và thi công mô hình xe tự động vệ sinh" do sinh viên Lê Đình Tín và Lê Trần Thiện Minh (Khoa Đào tạo Chất lượng cao, ngành Công nghệ Kỹ thuật Máy tính, Trường Đại học Sư phạm Kỹ thuật TP.HCM) thực hiện dưới sự hướng dẫn của ThS. Huỳnh Hoàng Hà, tập trung giải quyết bài toán thiết kế một robot di động tự hành (Autonomous Mobile Robot) giá thành tối ưu nhưng đáp ứng độ ổn định quỹ đạo cao và khả năng giám sát thời gian thực.
+-------------------------------------------------------------------------+
| KHỐI NGUỒN |
| Pin Wild Scorpion 11.1V Li-Po (35C) -> Buck DC-DC 5V/3.3V |
+------------------------------------+------------------------------------+
|
+------------------------------------v------------------------------------+
| KHỐI XỬ LÝ TRUNG TÂM |
| STM32F103C8T6 (ARM Cortex-M3 @ 72MHz) |
+-----------+--------------------+-------------------+--------------------+
| | |
| I2C (400kHz) | GPIO / External | USART1 (9600-115200)
v v v
+-----------------------+ +--------------------+ +------------------------+
| KHỐI CẢM BIẾN | | KHỐI CẢM BIẾN | | KHỐI TRUYỀN THÔNG RF |
| La bàn số HMC5883L | | Quang E3F-DS30C4 | | Module HC-11 (CC1101) |
| (Định hướng quỹ đạo) | | (Phát hiện cản) | | (Giao tiếp máy tính) |
+-----------------------+ +--------------------+ +------------------------+
| |
| Timer PWM (TIM1) | Relay Control
v v
+-----------------------+ +--------------------+
| KHỐI ĐIỀU KHIỂN TẢI | | CƠ CẤU VỆ SINH |
| Cầu H L298N + 2x | | Động cơ chổi quét/ |
| Động cơ GA25 Encoder | | hút rác 3V DC |
+-----------------------+ +--------------------+
Vấn đề thực tiễn và bài toán đặt ra
Các dòng robot hút bụi giá rẻ trên thị trường thường sử dụng thuật toán di chuyển ngẫu nhiên (Random Walk), dẫn đến hiện tượng bỏ sót diện tích (vùng chết lên tới 35-40%), lặp đường chạy gây hao pin và thiếu cơ chế phản hồi hướng đi khi bánh xe bị trượt vật lý. Ngược lại, các hệ thống sử dụng cảm biến laser LiDAR hoặc camera SLAM lại có chi phí linh kiện quá cao, cấu trúc tính toán phức tạp, vượt quá khả năng triển khai cho phân khúc thiết bị chi phí thấp.
Mục tiêu của đề tài
- Thiết kế phần cứng: Xây dựng bo mạch điều khiển trung tâm dựa trên vi điều khiển 32-bit ARM Cortex-M3 (STM32F103C8T6), tích hợp khối công suất cầu H L298N, module RF HC-11, cảm biến quang và cảm biến la bàn số.
- Thuật toán ổn định hướng: Ứng dụng cảm biến la bàn từ trường số HMC5883L qua giao thức I2C để liên tục đo đạc và tự động bù góc lệch chuyển động khi di chuyển trên mặt phẳng.
- Phát hiện và né tránh vật cản: Tích hợp cụm cảm biến quang hồng ngoại E3F-DS30C4 ngõ ra NPN cho phản hồi tức thời dưới 2.5ms khi phát hiện tường hoặc vật cản trong phạm vi 0–30cm.
- Cơ cấu tải làm sạch: Điều khiển đóng/ngắt cơ cấu quét và gom rác thông qua rơ-le cách ly quang, đảm bảo không gây sụt áp hoặc nhiễu lên vi điều khiển.
- Giám sát không dây: Xây dựng giao diện điều khiển và giám sát telemetry trên máy tính (PC Host) qua module RF CC1101 433MHz.
Tiếp cận giải pháp và phạm vi nghiên cứu
- Phương pháp tiếp cận: Kết hợp điều khiển phản hồi kín hướng đi (Closed-loop Heading Control) từ cảm biến la bàn số HMC5883L và bộ đếm xung encoder từ tính 1336 PPR (Pulse Per Revolution) để định vị tương đối, phân chia quỹ đạo quét hình chữ nhật theo dạng Zig-Zag (băng ngang, xoay 180° tại biên).
- Kết quả kỳ vọng: Hệ thống tự hành phủ kín diện tích phòng sàn phẳng, góc lệch quỹ đạo không vượt quá $\pm 2^\circ$, vận hành liên tục trên 45 phút với nguồn pin Li-Po 11.1V.
- Phạm vi và giới hạn: Hoạt động trong nhà, nền phẳng, không có vật cản dốc; từ trường môi trường không bị biến thiên dị thường bởi vật liệu kim loại nặng liền kề.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Tiêu chí |
Robot di chuyển ngẫu nhiên (Bump & Go) |
Xe tự hành dò line (Line Follower) |
Giải pháp đề tài (HMC5883L + RF + STM32) |
| Độ bao phủ diện tích |
Kém (50 - 65%), lặp đường nhiều |
Cố định theo đường kẻ sẵn |
Cao (> 85%) theo thuật toán quét Zig-Zag |
| Tính linh hoạt môi trường |
Trung bình, phụ thuộc va chạm |
Kém, phải dán băng dính dẫn đường |
Cao, tự thích nghi kích thước phòng |
| Độ chính xác hướng đi |
Không kiểm soát (trôi dạt tự do) |
Cao (dựa theo vệt quang) |
Cao, tự bù sai số góc quay bằng la bàn số |
| Chi phí triển khai |
Rất thấp ($20 - $30) |
Thấp ($25 - $35) |
Tối ưu ($40 - $50), hiệu năng cao |
| Khả năng giám sát từ xa |
Không có |
Rất hiếm |
Có (Giao diện PC qua sóng RF 433MHz) |
Phân tích yêu cầu theo mô hình MoSCoW
- Must have (Bắt buộc): Chạy thẳng tự ổn định hướng; phát hiện vật cản dừng và quay 180°; đóng ngắt cơ cấu tải vệ sinh tự động; dừng xe khi hoàn thành số chu trình.
- Should have (Nên có): Giao tiếp không dây gửi trạng thái về máy tính qua UART RF; điều khiển chuyển chế độ Manual/Auto từ PC.
- Could have (Có thể có): Điều chỉnh tốc độ động cơ linh hoạt thông qua thay đổi độ rộng xung PWM trực tiếp trên phần mềm máy tính.
- Won't have (Chưa thực hiện): Bản đồ hóa không gian 2D bằng LiDAR SLAM; tự động tìm trạm sạc không dây.
Thiết kế hệ thống
graph TD
subgraph Power_System ["Khối Nguồn"]
BAT["Pin Li-Po 11.1V 1500mAh 35C"] --> BUCK["Mạch Buck DC-DC Công Suất Cao"]
BUCK -->|3.3V DC| MCU["STM32F103C8T6 (ARM Cortex-M3)"]
BUCK -->|5.0V DC| SENSORS["HMC5883L / E3F-DS30C4 / HC-11"]
BAT -->|11.1V Trực tiếp| L298N["Mạch cầu H L298N"]
end
subgraph Central_Processing ["Khối Xử Lý & Điều Khiển"]
MCU -->|I2C 400kHz| MAG["La bàn số HMC5883L"]
MCU -->|GPIO Ext Int| OPT["Cảm biến quang E3F-DS30C4"]
MCU -->|USART1 9600bps| RF["Module RF HC-11 (CC1101)"]
MCU -->|TIM1 PWM + Dir| L298N
MCU -->|GPIO Output| RELAY["Module Relay 5V"]
end
subgraph Actuators ["Khối Chấp Hành & Tải"]
L298N --> M1["Motor DC Trái GA25"]
L298N --> M2["Motor DC Phải GA25"]
M1 -.->|Encoder Kênh A/B| MCU
M2 -.->|Encoder Kênh A/B| MCU
RELAY --> VACUUM["Motor Vệ Sinh / Quét Bụi 3V"]
end
RF -.->|Sóng 433MHz FSK| PC["Máy tính điều khiển & giám sát"]
Technology Stack và thông số linh kiện
Hardware Stack:
├── Vi điều khiển: STM32F103C8T6 (ARM Cortex-M3, 32-bit, 72 MHz, 64 KB Flash, LQFP48)
├── Cảm biến góc: Honeywell HMC5883L (I2C 12-bit ADC, resolution 1°-2°)
├── Cảm biến vật cản: Omron E3F-DS30C4 (Hồng ngoại, NPN Open Collector, 950nm)
├── Driver động cơ: STMicroelectronics L298N Dual Full-Bridge (Tối đa 2A/kênh)
├── Động cơ truyền động: GA25 DC Geared Motor (Tỷ số truyền 1:45, tích hợp Hall Encoder)
├── Module RF: HC-11 (Texas Instruments CC1101 + STM8S MCU, 433 MHz, chuẩn UART)
└── Nguồn cấp: Wild Scorpion 11.1V 1500mAh 3S Li-Po (Dòng xả liên tục 52.5A)
Firmware & Software Stack:
├── Trình biên dịch & IDE: Keil MDK-ARM v5.20 / STM32 Standard Peripheral Libraries v3.5.0
├── Ngôn ngữ nhúng: C/C++ chuẩn ANSI nhúng
└── Phần mềm máy tính: C# .NET Windows Forms Application (Giao tiếp Serial qua cổng COM ảo)
Thiết kế phần cứng và tính toán phụ tải
Tổng dòng điện tiêu thụ cực đại của hệ thống:
$$I_{max} = I_{MCU} + I_{Opt} + I_{Mag} + I_{RF} + 2 \times I_{Motor_Stall} + I_{Relay} + I_{Vacuum}$$
$$I_{max} = 150\text{mA} + 25\text{mA} + 0.1\text{mA} + 22\text{mA} + 2 \times 1200\text{mA} + 70\text{mA} + 500\text{mA} \approx 3167.1\text{mA} \approx 3.17\text{A}$$
Pin Li-Po 11.1V dung lượng $1500\text{mAh}$, hệ số xả $35\text{C}$ có khả năng cung cấp dòng xả liên tục:
$$I_{discharge} = 1.5\text{A} \times 35 = 52.5\text{A} \gg 3.17\text{A}$$
Hệ số an toàn đạt trên 1600%, đảm bảo không sụt nguồn khi 2 động cơ đảo chiều hoặc khởi động tải tức thời.
Phương pháp luận phát triển (Methodology)
Dự án áp dụng mô hình phát triển chữ V (V-Model) kết hợp kiểm thử phần cứng lặp (Hardware-in-the-Loop Testing):
- Giai đoạn 1 (Tháng 1-2): Khảo sát tài liệu, đọc datasheet thanh ghi của STM32F103, HMC5883L và giao thức sóng CC1101.
- Giai đoạn 2 (Tháng 3-4): Thiết kế sơ đồ nguyên lý (Schematic), layout PCB nguồn và mạch giao tiếp cảm biến; lập trình driver I2C/UART phần cứng.
- Giai đoạn 3 (Tháng 5): Hiện thực hóa giải thuật bù góc la bàn số, giải thuật quét Zig-Zag và lập trình giao diện giám sát C#.
- Giai đoạn 4 (Tháng 6-7): Tích hợp khung gầm cơ khí tròn, thực nghiệm hiệu chỉnh hệ số điều khiển tốc độ và đánh giá sai số thực tế.
Hiện thực hóa (Implementation) và kết quả
Quy trình phát triển và thuật toán cốt lõi
1. Đọc dữ liệu và tính toán góc hướng la bàn số HMC5883L qua I2C
Cảm biến HMC5883L lưu giá trị cường độ từ trường 3 trục $X, Y, Z$ trong 6 thanh ghi dữ liệu 8-bit từ địa chỉ 0x03 đến 0x08. Góc hướng (Heading Angle $\theta$) trên mặt phẳng nằm ngang được tính toán theo hàm lượng giác:
$$\theta = \text{atan2}(Y_{axis}, X_{axis}) \times \frac{180}{\pi} + \text{DeclinationAngle}$$
Nếu $\theta < 0$, $\theta = \theta + 360^\circ$. Nếu $\theta > 360^\circ$, $\theta = \theta - 360^\circ$.
#include "stm32f10x.h"
#include <math.h>
#define HMC5883L_ADDRESS 0x3C // 7-bit addr 0x1E shifted left
#define PI 3.14159265359f
void HMC5883L_Init(void) {
I2C_Start();
I2C_SendAddress(HMC5883L_ADDRESS, I2C_Direction_Transmitter);
I2C_WriteData(0x00); // Config Register A
I2C_WriteData(0x70); // 8-samples average, 15 Hz default
I2C_WriteData(0x01); // Config Register B
I2C_WriteData(0x20); // Gain = 5 (default)
I2C_WriteData(0x02); // Mode Register
I2C_WriteData(0x00); // Continuous-measurement mode
I2C_Stop();
}
float HMC5883L_ReadHeading(void) {
int16_t x, y, z;
uint8_t buffer[6];
I2C_Start();
I2C_SendAddress(HMC5883L_ADDRESS, I2C_Direction_Transmitter);
I2C_WriteData(0x03); // Point to Register 0x03 (Data Output X MSB)
I2C_Stop();
I2C_Start();
I2C_SendAddress(HMC5883L_ADDRESS, I2C_Direction_Receiver);
for(int i = 0; i < 6; i++) {
buffer[i] = I2C_ReadData(i == 5 ? NACK : ACK);
}
I2C_Stop();
x = (int16_t)((buffer[0] << 8) | buffer[1]);
z = (int16_t)((buffer[2] << 8) | buffer[3]);
y = (int16_t)((buffer[4] << 8) | buffer[5]);
float heading = atan2f((float)y, (float)x) * (180.0f / PI);
// Bù góc lệch từ thiên địa phương (Declination angle tại TP.HCM ~ 0.5 độ)
heading += 0.5f;
if(heading < 0.0f) heading += 360.0f;
if(heading > 360.0f) heading -= 360.0f;
return heading;
}
2. Thuật toán bù góc sai lệch hướng di chuyển (Heading Auto-Correction)
Hệ thống sử dụng Timer 1 (TIM1) tạo 2 kênh xung PWM điều khiển tốc độ 2 bánh thông qua chân ENA, ENB của L298N. Khi xe đang trong giai đoạn chạy thẳng, sai lệch góc $e(t) = \theta_{target} - \theta_{current}$ được đưa vào bộ điều khiển vi sai để bù tốc độ hai bánh:
void Adjust_Heading(float target_heading) {
float current_heading = HMC5883L_ReadHeading();
float error = target_heading - current_heading;
// Xử lý góc xoay qua mốc 0/360 độ
if (error > 180.0f) error -= 360.0f;
if (error < -180.0f) error += 360.0f;
uint16_t base_pwm = 600; // Chu kỳ TIM1_Period = 999
int16_t correction = (int16_t)(error * 12.5f); // Hệ số khuếch đại vi sai
int16_t pwm_left = base_pwm - correction;
int16_t pwm_right = base_pwm + correction;
// Giới hạn dải bão hòa PWM (0 - 999)
if (pwm_left > 950) pwm_left = 950;
if (pwm_left < 200) pwm_left = 200;
if (pwm_right > 950) pwm_right = 950;
if (pwm_right < 200) pwm_right = 200;
TIM1->CCR1 = (uint16_t)pwm_left; // PWM Motor Trái
TIM1->CCR4 = (uint16_t)pwm_right; // PWM Motor Phải
}
3. Quản lý truyền thông không dây với tập lệnh AT trên HC-11
Cấu hình thông số truyền tin trên sóng mang 433MHz giữa xe và trạm máy tính:
PC Host -> Cáp USB-UART -> Module HC-11 (TX/RX) <--- Sóng RF 433MHz ---> Module HC-11 trên xe -> STM32F103 (USART1)
- Tốc độ baudrate: 9600 bps (
AT+B9600)
- Kênh truyền: Channel 002 tần số 434.4MHz (
AT+C002)
- Chế độ công suất: FU3 (Truyền chuẩn, độ trễ 8ms, tiêu thụ 22mA)
Kiểm thử và đánh giá thực nghiệm
Kịch bản kiểm thử
- Kiểm thử ổn định hướng chạy thẳng (10 mét liên tục): Đánh giá độ lệch phương ngang khi có và không có bù la bàn số.
- Kiểm thử độ nhạy cảm biến quang: Đặt vật cản kích thước $10\text{mm} \times 10\text{mm}$ ở các cự ly $10\text{cm}, 20\text{cm}, 30\text{cm}$.
- Kiểm thử quay đảo chiều $180^\circ$ tại chân tường: Đo sai số góc quay sau khi nhận tín hiệu kích hoạt từ cảm biến E3F-DS30C4.
- Kiểm thử truyền nhận dữ liệu telemetry: Kiểm tra tỷ lệ mất gói tin (Packet Drop Rate) ở khoảng cách từ 5m đến 40m qua vật cản kính/tường gạch.
+-------------------------------------------------------------------------------+
| BẢNG THỰC NGHIỆM ĐỘ LỆCH QUỸ ĐẠO (10M) |
+-------------------+--------------------+------------------+-------------------+
| Lần thử nghiệm | Không có HMC5883L | Có bù HMC5883L | Tỷ lệ cải thiện |
+-------------------+--------------------+------------------+-------------------+
| Lần 1 | Lệch 42 cm | Lệch 6 cm | 85.7% |
| Lần 2 | Lệch 55 cm | Lệch 8 cm | 85.4% |
| Lần 3 | Lệch 38 cm | Lệch 5 cm | 86.8% |
| Lần 4 | Lệch 61 cm | Lệch 9 cm | 85.2% |
| Lần 5 | Lệch 49 cm | Lệch 7 cm | 85.7% |
+-------------------+--------------------+------------------+-------------------+
| Trung bình | 49.0 cm | 7.0 cm | 85.7% |
+-------------------+--------------------+------------------+-------------------+
+-------------------------------------------------------------------------------+
| ĐÁNH GIÁ TRUYỀN THÔNG KHÔNG DÂY HC-11 |
+-----------------------+--------------------+------------------+---------------+
| Khoảng cách (Mét) | Môi trường | Tốc độ truyền | Tỷ lệ lỗi bit |
+-----------------------+--------------------+------------------+---------------+
| 5m | Phòng trống | 9600 bps | 0.00% |
| 15m | Cách 1 vách tường | 9600 bps | 0.02% |
| 30m | Cách 2 vách tường | 9600 bps | 0.85% |
| 45m | Không gian mở | 9600 bps | 2.10% |
+-----------------------+--------------------+------------------+---------------+
Đổi mới và đóng góp kỹ thuật
- Ứng dụng la bàn số giải quyết bài toán trôi dạt cơ khí: Khắc phục triệt để hiện tượng sai số trôi dạt tích lũy của bánh xe khi chỉ dùng encoder thông thường. Việc đọc dữ liệu từ trường Trái Đất giúp robot luôn có một hệ quy chiếu tuyệt đối trong không gian phẳng.
- Kiến trúc phần cứng nhúng hiệu năng cao trên nền ARM 32-bit: Thay thế các dòng vi điều khiển 8-bit truyền thống (8051, PIC, ATmega328P) bằng STM32F103C8T6 (Cortex-M3, xung nhịp 72MHz, quản lý bus APB1/APB2 độc lập), xử lý song song các tác vụ I2C phần cứng và ngắt ngoại vi thời gian thực không bị gián đoạn.
- Cơ chế truyền thông hai chiều thời gian thực: Kết hợp module CC1101 cấu hình linh hoạt bằng tập lệnh AT, cho phép gửi dữ liệu trạng thái hoạt động (góc hiện tại, trạng thái cảm biến cản, chế độ tải) lên PC với chu kỳ 100ms/lần.
+---------------------------------------------------------------------------+
| SO SÁNH CÁC PHƯƠNG ÁN ĐIỀU HƯỚNG ROBOT GIÁ RẺ |
+---------------------------+-----------------------+-----------------------+
| Thông số kỹ thuật | Mô hình Dead-Reckoning| Đề tài (HMC5883L + |
| | thuần Encoder | STM32 + Encoder) |
+---------------------------+-----------------------+-----------------------+
| Sai số góc sau 5 chu kỳ | ±18.5° | ±2.1° |
| Thời gian phản hồi vật cản| ~20 ms (Công tắc cơ) | 2.5 ms (Quang NPN) |
| Tải tính toán CPU | Cao (Tích phân liên | Thấp (Đọc trực tiếp |
| | tục xung encoder) | góc la bàn qua I2C) |
| Khả năng chịu trượt bánh | Rất kém | Rất tốt (Tự bù góc) |
+---------------------------+-----------------------+-----------------------+
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng trong thực tế
- Vệ sinh tự động văn phòng và căn hộ chung cư: Làm sạch bụi mịn trên sàn gỗ, gạch men theo hành lang hình chữ nhật định sẵn mà không cần sự can thiệp của con người.
- Vệ sinh công nghiệp nhẹ trong nhà kho: Hoạt động dọc theo các lối đi giữa các kệ hàng tiêu chuẩn nhờ khả năng quay đầu $180^\circ$ chính xác tại cuối dãy.
- Mô hình nền tảng cho nghiên cứu AGV/AMR: Nền tảng phần cứng mẫu cho sinh viên thực hành điều khiển nhúng, xử lý tín hiệu cảm biến và lập trình truyền thông nối tiếp.
+-------------------------------------------------------------------------------+
| BẢNG HẠCH TOÁN CHI PHÍ PHẦN CỨNG (BOM) |
+----+--------------------------------+---------+---------------+---------------+
| STT| Tên linh kiện | Số lượng| Đơn giá (VND) | Thành tiền |
+----+--------------------------------+---------+---------------+---------------+
| 1 | Kit vi điều khiển STM32F103C8T6| 01 | 75,000 | 75,000 |
| 2 | Cảm biến la bàn số HMC5883L | 01 | 55,000 | 55,000 |
| 3 | Cảm biến quang E3F-DS30C4 | 02 | 85,000 | 170,000 |
| 4 | Driver động cơ cầu H L298N | 01 | 45,000 | 45,000 |
| 5 | Động cơ DC giảm tốc GA25 + Enc | 02 | 140,000 | 280,000 |
| 6 | Cặp module RF HC-11 433MHz | 02 | 90,000 | 180,000 |
| 7 | Pin Wild Scorpion 11.1V 1500mAh| 01 | 240,000 | 240,000 |
| 8 | Khung xe tròn, rơ-le & phụ kiện| Trọn bộ | 150,000 | 150,000 |
+----+--------------------------------+---------+---------------+---------------+
| | TỔNG CỘNG | | | 1,195,000 VND |
+----+--------------------------------+---------+---------------+---------------+
Chi phí nguyên mẫu chỉ rơi vào khoảng ~1.2 triệu VNĐ (~$50 USD), thấp hơn từ 70% đến 85% so với các dòng robot thương mại có tính năng định hướng tương đương trên thị trường tại thời điểm nghiên cứu.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Nhiễu từ trường cục bộ (Hard/Soft Iron Distortion): Khi xe di chuyển quá gần các khối sắt lớn hoặc dây dẫn điện nguồn công suất cao, cảm biến HMC5883L có thể bị biến thiên giá trị đọc tức thời.
- Thuật toán quét tĩnh: Chưa hỗ trợ ghi nhớ bản đồ không gian phòng và định vị điểm sạc pin khi nguồn xuống dưới ngưỡng an toàn (dưới 9.9V cho 3S Li-Po).
- Cơ cấu làm sạch cơ bản: Sử dụng động cơ quét chổi quét trực tiếp, chưa tích hợp quạt hút ly tâm công suất lớn để hút bụi nặng.
Hướng phát triển nâng cao
- Tích hợp bộ lọc Kalman mở rộng (EKF): Kết hợp dữ liệu cảm biến gia tốc/con quay hồi chuyển 6 trục MPU6050 với từ kế HMC5883L để triệt tiêu hoàn toàn nhiễu từ trường tức thời.
- Nâng cấp công nghệ định vị: Bổ sung mô-đun cảm biến khoảng cách quét 2D LiDAR (RPLiDAR A1) và chuyển dịch kiến trúc phần mềm sang ROS (Robot Operating System) chạy trên bo nhúng máy tính biên (Raspberry Pi/Jetson Nano).
- Phát triển trạm sạc tự động (Auto-docking Station): Sử dụng phát phát hồng ngoại tại trạm sạc để robot tự tìm về khi điện áp pin báo yếu.
Đối tượng hưởng lợi
- Sinh viên ngành Kỹ thuật Máy tính, Điện tử & Tự động hóa: Tài liệu tham khảo thực tế về cách giao tiếp I2C phần cứng trên STM32, điều khiển động cơ DC với L298N và cấu hình sóng RF CC1101.
- Kỹ sư phát triển hệ thống nhúng (Embedded Developers): Mẫu thiết kế phân tầng phần cứng kết hợp thuật toán vi sai bù góc la bàn số ứng dụng trong các hệ thống AGV tự hành quy mô nhỏ.
- Doanh nghiệp & Xưởng sản xuất: Cơ sở dữ liệu kỹ thuật và bảng chi phí linh kiện (BOM) để phát triển dòng xe đẩy hàng nội bộ hoặc robot lau sàn chuyên dụng giá rẻ.
- Nhà nghiên cứu (Researchers): Nền tảng thực nghiệm đo đạc độ trôi dạt của các hệ dẫn động vi sai trong nhà để phát triển các giải pháp lọc nhiễu cảm biến tiếp theo.
Câu hỏi thường gặp
1. Yêu cầu phần cứng tối thiểu để triển khai và nạp code cho hệ thống xe tự hành này là gì?
Cần máy tính cài đặt Keil MDK-ARM (phiên bản v5.x trở lên), mạch nạp ST-Link V2 hỗ trợ giao tiếp chuẩn SWD (gồm 4 dây: SWDIO, SWCLK, 3.3V, GND) và cáp chuyển đổi USB-to-TTL (như CP2102 hoặc PL2303) để cấu hình module HC-11 qua tập lệnh AT.
2. Làm thế nào để triệt tiêu nhiễu từ trường do chính 2 động cơ DC gây ra lên cảm biến la bàn số HMC5883L?
Trong thiết kế vật lý, module HMC5883L phải được nâng cao cách ly khỏi mặt sàn kim loại và trục động cơ tối thiểu 10–15cm thông qua trụ mica/nhựa cách điện. Đồng thời, phần mềm cần thực hiện bước hiệu chuẩn tĩnh (Hard-Iron Calibration) bằng cách xoay xe $360^\circ$ trước khi chạy để lấy offset bù trừ cực đại/cực tiểu của trục $X$ và $Y$.
3. Hệ thống xử lý như thế nào khi gặp vật cản dạng góc chéo hoặc vật cản trong suốt?
Cảm biến quang E3F-DS30C4 sử dụng bước sóng hồng ngoại 950nm với phản xạ khuếch tán. Đối với vật thể có độ phản xạ thấp hoặc bề mặt chéo làm tán xạ ánh sáng, hệ thống có thể bổ sung thanh cản cơ học phía trước gắn công tắc hành trình (Microswitch) mắc song song vào chân ngắt ngoài của STM32 để kích hoạt phanh khẩn cấp.
4. Module RF HC-11 có thể hoạt động song song nhiều xe trong cùng một khu vực mà không bị trùng sóng không?
Có. HC-11 hỗ trợ 127 kênh tần số khác nhau từ 433.4MHz đến 473.0MHz (bước nhảy 400kHz mỗi kênh thông qua lệnh AT+Cxxx) và hỗ trợ 255 địa chỉ định danh (AT+Axxx). Mỗi robot có thể được gán một kênh hoặc địa chỉ riêng biệt để truyền dữ liệu độc lập về trạm điều khiển trung tâm.
5. Nguồn pin Li-Po 11.1V 1500mAh có thể duy trì hoạt động của robot trong bao lâu?
Ở chế độ làm việc định mức (2 động cơ di chuyển liên tục với dòng tiêu thụ ~600mA/động cơ, cơ cấu quét ~300mA, mạch vi điều khiển và cảm biến ~200mA, tổng dòng trung bình khoảng 1.7A), pin 1500mAh cho thời gian vận hành liên tục lý thuyết khoảng 50–55 phút. Để bảo vệ tuổi thọ cell pin Li-Po, hệ thống nên dừng hoạt động khi điện áp xả chạm ngưỡng 10.2V (3.4V/cell).
Kết luận
Đồ án tốt nghiệp "Thiết kế và thi công mô hình xe tự động vệ sinh" của nhóm tác giả Lê Đình Tín và Lê Trần Thiện Minh tại Trường ĐH Sư phạm Kỹ thuật TP.HCM đã hoàn thành xuất sắc các mục tiêu nghiên cứu và ứng dụng kỹ thuật thực tiễn. Đề tài đã làm chủ thành công vi điều khiển 32-bit ARM Cortex-M3 (STM32F103C8T6), giải quyết triệt để bài toán bù trôi hướng di chuyển bằng cảm biến la bàn số Honeywell HMC5883L, kết hợp nhịp nhàng giữa phát hiện vật cản tức thời qua cảm biến quang và truyền thông không dây tầm xa qua RF 433MHz.
Mô hình chứng minh tính khả thi cao về mặt kỹ thuật và giá trị kinh tế, mở ra hướng ứng dụng rộng rãi cho các sản phẩm robot dịch vụ gia dụng và công nghiệp tự hành tại Việt Nam. Bạn có thể áp dụng ngay kiến trúc phần cứng và mã nguồn giải thuật trong tài liệu này để phát triển các dự án AGV, robot tự hành hoặc hệ thống giám sát nhúng không dây của riêng mình.