Giới thiệu dự án
Trong bối cảnh công nghiệp hóa và hiện đại hóa, các tai nạn lao động nghiêm trọng như sập hầm mỏ khai khoáng, hỏa hoạn tại các tổ hợp chung cư cao tầng hay rò rỉ hóa chất độc hại tại các khu công nghiệp đang đặt ra bài toán cấp bách về an toàn cứu nạn. Theo các báo cáo kỹ thuật cứu hộ cứu nạn quốc tế, hơn 60% trường hợp thương vong thứ cấp xảy ra đối với nhân lực cứu hỏa và trinh sát khi phải tiến vào vùng nguy hiểm mà không có dữ liệu thực địa trước về nồng độ khí độc, kết cấu sụp đổ hoặc nhiệt độ môi trường.
Đề tài "Thiết kế và thi công mô hình xe thăm dò môi trường" (Khoa Điện - Điện Tử, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh) được nghiên cứu và chế tạo nhằm thay thế con người tiếp cận các khu vực nguy hiểm, địa hình chật hẹp và độc hại để thu thập dữ liệu vi khí hậu và truyền phát hình ảnh trực tiếp về trung tâm điều khiển theo thời gian thực.
+-----------------------------------------------------------------------------------+
| KIẾN TRÚC TỔNG QUAN |
| |
| [Trình duyệt Web / Client] <---(Wi-Fi / VPN Hamachi)---> [Raspberry Pi 3 (Master)]|
| | |
| (UART Serial) |
| v |
| [Arduino Uno R3 (Slave)] |
| | |
| +--------------+--------------+
| | | |
| v v v
| [L298N] [SG90 Servos] [LEDs]
| | | |
| v v |
| [2x GA25 DC] [Logitech C270] |
+-----------------------------------------------------------------------------------+
Mục tiêu dự án
- Thiết kế phần cứng cơ điện tử: Chế tạo khung gầm xe bánh xích kích thước nhỏ gọn ($30 \times 15 \times 12\text{ cm}$) tích hợp đai cao su tăng ma sát, có khả năng vượt chướng ngại vật cao từ $3 - 5\text{ cm}$ và leo dốc nghiêng dưới $30^\circ$.
- Thiết lập kiến trúc điều khiển Master - Slave: Tích hợp bộ xử lý trung tâm đa nhiệm Broadcom BCM2837B0 trên Raspberry Pi 3 kết hợp vi điều khiển thực thi thời gian thực ATmega328P trên Arduino Uno R3.
- Phát triển hệ thống giám sát hình ảnh Pan-Tilt: Lắp đặt cụm camera Logitech C270 (chuẩn HD 720p/30fps) trên gimbal 2 trục sử dụng 2 động cơ Servo SG90 cho phép xoay linh hoạt $180^\circ$.
- Thu thập và hiển thị telemetric: Đo đạc nhiệt độ, độ ẩm môi trường bằng cảm biến DHT11 và giám sát cân bằng góc nghiêng 3 trục chống lật bằng module gia tốc - con quay hồi chuyển MPU-6050 (6-DOF IMU).
- Xây dựng Web Server điều khiển từ xa: Thiết lập giao diện điều khiển tương thích đa nền tảng qua giao thức HTTP/TCP-IP, truyền video stream trực tiếp và biểu đồ dữ liệu qua mạng Wi-Fi cục bộ hoặc mở rộng qua VPN LogMeIn Hamachi.
Phạm vi và giới hạn hoạt động
- Môi trường hoạt động: Địa hình bằng phẳng, nền cứng gồ ghề, dốc nghiêng $< 30^\circ$, môi trường thiếu sáng (hỗ trợ bởi cụm 5 đèn LED trắng $20\text{mA}$). Xe không hỗ trợ vận hành trong môi trường đầm lầy ngập nước hoặc bùn nhão sâu.
- Nguồn cấp: Hệ thống sử dụng nguồn di động độc lập: Pin sạc dự phòng 5V/2.5A cho mạch logic và pin Lithium 2S 7.4V/3000mAh cho động cơ truyền động, cho phép thời gian vận hành liên tục xấp xỉ 120 phút.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Tiêu chí kỹ thuật |
Robot công nghiệp (iRobot PackBot / Negotiator) |
Xe mô hình RC truyền thống |
Hệ thống xe thăm dò đề xuất |
| Kiến trúc điều khiển |
Máy tính nhúng công nghiệp + Bus quân sự |
Mạch vi điều khiển sóng vô tuyến RF (27/433MHz) |
Master-Slave: Raspberry Pi 3 + Arduino Uno R3 |
| Giao thức truyền dữ liệu |
Mã hóa cấp quân sự / Băng tần riêng |
Điều chế tương tự / PPM / PWM |
Giao thức HTTP Web Server / TCP-IP / IEEE 802.11b/g/n |
| Giao diện người dùng |
Bộ điều khiển chuyên dụng (OCU) |
Tay cầm điều khiển vô tuyến rời |
Giao diện Web Browser tương thích đa thiết bị |
| Khả năng quan sát |
Cụm camera quang hồng ngoại đa kênh |
Không có hoặc dùng Camera FPV analog rời |
Camera HD 720p gắn gimbal 2 trục Pan-Tilt |
| Thu thập dữ liệu môi trường |
Đa cảm biến CBRN (Hóa học, phóng xạ) |
Không hỗ trợ |
Cảm biến DHT11 (nhiệt - ẩm) + MPU-6050 (góc nghiêng) |
| Chi phí chế tạo |
Cực kỳ cao ($> 20.000\text{ USD}$) |
Thấp ($30 - 50\text{ USD}$) |
Tối ưu, phù hợp ứng dụng thực tế ($100 - 150\text{ USD}$) |
Ma trận yêu cầu người dùng (MoSCoW)
- Must-Have (Bắt buộc): Di chuyển 4 hướng (Tiến/Lùi/Trái/Phải); Truyền luồng video trực tiếp từ camera Logitech C270 về trình duyệt; Điều khiển góc quay camera Pan-Tilt; Đọc dữ liệu nhiệt độ - độ ẩm từ DHT11.
- Should-Have (Nên có): Cảnh báo góc nghiêng chống lật với MPU-6050; Bật/tắt cụm đèn LED chiếu sáng ban đêm từ giao diện web; Tự động phục hồi kết nối Serial UART.
- Could-Have (Có thể mở rộng): Kết nối điều khiển toàn cầu qua mạng diện rộng WAN sử dụng VPN Hamachi hoặc ngrok tunnel; Lưu trữ biểu đồ nhiệt ẩm vào cơ sở dữ liệu SQLite.
- Won't-Have (Chưa thực hiện): Chế độ tự hành SLAM tránh vật cản tự động hoàn toàn; Cơ cấu tay gắp cơ khí thu mẫu vật.
Thiết kế hệ thống và thông số phần cứng
+--------------------------------------------------------------------------------------+
| SƠ ĐỒ NGUYÊN LÝ |
| |
| [Nguồn 5V/2.5A] ------> [Raspberry Pi 3 Model B+] <===(USB Video)===> [Logitech C270]|
| | ^ |
| (UART TX/RX) (I2C / 1-Wire) |
| v | |
| [Nguồn 7.4V/3A] -------> [Arduino Uno] <---+--- [MPU-6050 (I2C)] |
| | | +--- [DHT11 (D4)] |
| | +------+------+ |
| | | | |
| v v v |
| [L298N] <---(D2,D4,D6,D7) (D9,D10) ---> [2x Servo SG90] |
| | |
| +---> [2x Động cơ DC GA25] [D8] ---------> [Mạch 5x LED Siêu Sáng] |
+--------------------------------------------------------------------------------------+
-
Khối xử lý trung tâm (Raspberry Pi 3 Model B+):
- Bộ vi xử lý Broadcom BCM2837B0 Quad-Core 64-bit ARMv8 Cortex-A53 @ 1.4GHz, RAM 1GB LPDDR2.
- Kết nối không dây chuẩn Dual-band IEEE 802.11b/g/n/ac (2.4GHz / 5GHz), Bluetooth 4.2 BLE.
- Nhiệm vụ: Khởi tạo Web Server (Python Flask / mjpg-streamer), xử lý luồng nén hình ảnh H.264/MJPEG từ Logitech C270, giao tiếp Serial với Arduino qua UART (
/dev/ttyACM0 hoặc /dev/ttyAMA0).
-
Khối chấp hành ngoại vi (Arduino Uno R3):
- Vi điều khiển Microchip ATmega328P @ 16MHz, Bộ nhớ Flash 32KB, SRAM 2KB, 14 chân Digital I/O (6 chân hỗ trợ PWM).
- Nhiệm vụ: Tiếp nhận chuỗi ký tự điều khiển từ Raspberry Pi, tạo xung PWM điều khiển góc quay 2 động cơ Servo SG90 (chân D9, D10), xuất tín hiệu logic (D2, D4, D6, D7) điều khiển module cầu H L298N và chân D8 kích hoạt dàn đèn LED.
-
Khối động lực và cơ cấu truyền động:
- Driver L298N Dual Full-Bridge: IC L298 tích hợp bảo vệ diode ngược, dòng cực đại $2\text{A}$ mỗi kênh, dải điện áp điều khiển $5\text{V} - 35\text{V}$, công suất tối đa $25\text{W}$.
- 2x Động cơ DC giảm tốc GA25: Điện áp hoạt động $3\text{V} - 12\text{V}$, tỷ số truyền hộp số $1/45$, tốc độ định mức $130\text{ vòng/phút}$ tại $12\text{V}$, dòng tiêu thụ không tải $600\text{mA}$, lực kéo mô-men xoắn lớn đảm bảo xe vượt dốc và chướng ngại vật gồ ghề.
-
Tính toán khối chiếu sáng bổ trợ:
- Mạch sử dụng 5 LED siêu sáng trắng nối tiếp với điện trở hạn dòng $R$ mắc song song. Điện áp thuận định mức của LED trắng $V_F = 3.2\text{V}$, dòng định mức $I_F = 20\text{mA} = 0.02\text{A}$.
- Điện trở tính toán lý thuyết:
$$R = \frac{V_{CC} - V_F}{I_F} = \frac{5\text{V} - 3.2\text{V}}{0.02\text{A}} = 90,\Omega$$
- Chọn giá trị điện trở thương mại chuẩn $R = 100,\Omega$. Dòng qua mỗi nhánh:
$$I_{\text{nhánh}} = \frac{5 - 3.2}{100} = 18\text{mA}$$
- Tổng dòng tiêu thụ của 5 LED song song là $I_{\text{total}} = 5 \times 18\text{mA} = 90\text{mA}$, hoàn toàn nằm trong ngưỡng cấp an toàn của cổng kích Arduino.
Quy trình phát triển và kiểm chuẩn (Methodology)
Quy trình phát triển hệ thống được tổ chức theo mô hình lặp từng phần (Iterative Engineering Lifecycle) trong 14 tuần:
Tuần 01-02: Khảo sát lý thuyết, lập hồ sơ kỹ thuật, chọn linh kiện
Tuần 03-04: Lập trình streaming video (MJPEG) & giao tiếp UART Serial
Tuần 05-06: Tích hợp đọc cảm biến DHT11 & MPU-6050
Tuần 07-09: Thiết kế Web UI điều khiển (HTML5/CSS3/JavaScript)
Tuần 10-12: Gia công cơ khí khung gầm xích, lắp ráp phần cứng
Tuần 13-14: Thử nghiệm thực địa, tối ưu hóa độ trễ, nghiệm thu
Implementation và kết quả
Kiến trúc mã nguồn và thuật toán điều khiển
Hệ thống hoạt động dựa trên cơ chế phân tách tác vụ (Decoupled Task Processing):
# Tệp: server_controller.py (Chạy trên Raspberry Pi 3 - Python 3.7 / Flask)
import serial
import time
from flask import Flask, render_template, request, Response
app = Flask(__name__)
# Khởi tạo kết nối Serial tới Arduino Uno R3 với Baudrate 9600
try:
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
time.sleep(2) # Chờ ổn định kết nối DTR
except Exception as e:
print(f"Lỗi khởi tạo Serial: {e}")
@app.route('/')
def index():
return render_template('index.html')
@app.route('/action', methods=['POST'])
def execute_action():
"""Nhận lệnh từ giao diện Web và truyền xuống Arduino qua UART"""
command = request.form.get('cmd')
valid_commands = ['F', 'B', 'L', 'R', 'S', 'CAM_U', 'CAM_D', 'CAM_L', 'CAM_R', 'LED_ON', 'LED_OFF']
if command in valid_commands:
ser.write(command.encode('utf-8'))
return {"status": "SUCCESS", "command": command}, 200
return {"status": "INVALID_COMMAND"}, 400
if __name__ == '__main__':
# Chạy Web Server trên cổng 8080 hỗ trợ đa luồng
app.run(host='0.0.0.0', port=8080, threaded=True)
Trên vi điều khiển Arduino Uno R3, chương trình lắng nghe liên tục bộ đệm Serial vòng và thực thi điều khiển PWM động cơ và góc quay Servo:
// Tệp: vehicle_core.ino (Nạp cho Arduino Uno R3)
#include <Servo.h>
// Định nghĩa chân điều khiển động cơ L298N
const int IN1 = 2;
const int IN2 = 4;
const int IN3 = 6;
const int IN4 = 7;
const int LED_PIN = 8;
// Định nghĩa chân và đối tượng Servo Pan-Tilt
const int SERVO_PAN_PIN = 9;
const int SERVO_TILT_PIN = 10;
Servo servoPan;
Servo servoTilt;
int panAngle = 90;
int tiltAngle = 90;
void setup() {
Serial.begin(9600);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(LED_PIN, OUTPUT);
servoPan.attach(SERVO_PAN_PIN);
servoTilt.attach(SERVO_TILT_PIN);
servoPan.write(panAngle);
servoTilt.write(tiltAngle);
stopVehicle();
}
void loop() {
if (Serial.available() > 0) {
String command = Serial.readStringUntil('\n');
command.trim();
// Xử lý lệnh di chuyển
if (command == "F") moveForward();
else if (command == "B") moveBackward();
else if (command == "L") turnLeft();
else if (command == "R") turnRight();
else if (command == "S") stopVehicle();
// Xử lý góc quay Camera
else if (command == "CAM_U") { tiltAngle = constrain(tiltAngle + 15, 0, 180); servoTilt.write(tiltAngle); }
else if (command == "CAM_D") { tiltAngle = constrain(tiltAngle - 15, 0, 180); servoTilt.write(tiltAngle); }
else if (command == "CAM_L") { panAngle = constrain(panAngle + 15, 0, 180); servoPan.write(panAngle); }
else if (command == "CAM_R") { panAngle = constrain(panAngle - 15, 0, 180); servoPan.write(panAngle); }
// Xử lý đèn chiếu sáng
else if (command == "LED_ON") digitalWrite(LED_PIN, HIGH);
else if (command == "LED_OFF") digitalWrite(LED_PIN, LOW);
}
}
void moveForward() {
digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);
}
void moveBackward() {
digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH);
}
void turnLeft() {
digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);
}
void turnRight() {
digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH);
}
void stopVehicle() {
digitalWrite(IN1, LOW); digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW); digitalWrite(IN4, LOW);
}
Kết quả đo kiểm và hiệu năng hệ thống
Hệ thống đã trải qua quy trình đánh giá thực nghiệm đa kịch bản với các kết quả cụ thể:
| Hạng mục kiểm tra |
Giá trị thiết kế mục tiêu |
Giá trị đo kiểm thực nghiệm |
Đánh giá sai số / Kết quả |
| Độ trễ truyền nhận lệnh (Wi-Fi LAN) |
$< 250\text{ ms}$ |
$120 - 180\text{ ms}$ |
Đạt tiêu chuẩn phản hồi tức thời |
| Tốc độ khung hình Video Stream |
720p @ 30 fps |
720p @ 24 - 28 fps |
Hình ảnh mượt, không vỡ khung |
| Khả năng vượt vật cản đứng |
$3 - 5\text{ cm}$ |
$4.5\text{ cm}$ |
Băng xích cao su bám tốt |
| Góc dốc nghiêng tối đa |
$\le 30^\circ$ |
$28.5^\circ$ |
Trọng tâm xe thấp, không lật |
| Dải đo nhiệt độ DHT11 |
$0^\circ\text{C} - 50^\circ\text{C}$ |
$24.5^\circ\text{C} - 38.2^\circ\text{C}$ |
Sai số $\pm 1.2^\circ\text{C}$ |
| Dải đo độ ẩm DHT11 |
$20% - 90%\text{ RH}$ |
$45% - 85%\text{ RH}$ |
Sai số $\pm 4.0%\text{ RH}$ |
| Bảo vệ góc nghiêng MPU-6050 |
Ngưỡng ngắt an toàn $> 45^\circ$ |
Kích hoạt cảnh báo tại $42^\circ$ |
Triệt tiêu nguy cơ lật xe |
| Thời lượng pin liên tục |
$\ge 90\text{ phút}$ |
$115\text{ phút}$ (tải trung bình) |
Đáp ứng ca trinh sát thực địa |
Đổi mới và đóng góp
- Kiến trúc phân tầng xử lý lai (Hybrid Decoupled Architecture): Thay vì sử dụng một vi điều khiển đơn lẻ (gây nghẽn khi vừa xử lý video vừa điều khiển động cơ) hoặc chỉ dùng một máy tính nhúng (kém chính xác trong phát xung PWM thời gian thực), hệ thống phân định rõ: Raspberry Pi chuyên trách luồng dữ liệu nặng (Video streaming, HTTP Server) và Arduino Uno chuyên trách logic điều khiển cơ điện tử.
- Tối ưu hóa chi phí sản xuất (Cost-Efficiency): Tái tạo các tính năng cốt lõi của robot quân sự/công nghiệp đắt tiền (truyền hình ảnh thời gian thực, điều khiển góc nhìn Pan-Tilt 2 trục, đo lường môi trường) trên nền tảng linh kiện mở với chi phí tiết kiệm hơn $90%$ so với các sản phẩm thương mại cùng công năng.
- Cơ chế phòng ngừa lật xe chủ động: Tích hợp dữ liệu con quay hồi chuyển từ module MPU-6050 GY-521 (sử dụng thuật toán bù góc nghiêng gia tốc), liên tục gửi trạng thái về máy chủ giúp người vận hành nhận diện bề mặt sạt lở nguy hiểm trước khi xảy ra tai nạn lật khung gầm.
Ứng dụng thực tế và triển khai
Tình huống ứng dụng thực tế (Use Cases)
- Trinh sát hỏa hoạn và chung cư cao tầng: Tiếp cận hành lang ngập khói, tầng hầm để xác định điểm phát nhiệt, đo nồng độ ẩm/khí nóng và gửi vị trí nạn nhân qua hình ảnh trực tiếp giúp lực lượng cứu hỏa xây dựng lộ trình tiếp cận an toàn.
- Khảo sát an toàn hầm mỏ khai khoáng: Di chuyển vào các ngách hầm có nguy cơ sập hoặc tích tụ khí mê-tan, kiểm tra kết cấu địa chất và kiểm soát nhiệt độ trước khi cho công nhân tiến vào.
- Thăm dò đường ống kỹ thuật ngầm: Kiểm tra tình trạng rò rỉ, tắc nghẽn của hệ thống ống thoát nước đô thị hoặc đường cáp ngầm mà con người không thể trực tiếp chui vào.
+------------------------------------------------------------------------------------+
| HƯỚNG DẪN TRIỂN KHAI |
| |
| 1. Cài đặt hệ điều hành Raspberry Pi OS (Buster/Bullseye Lite) trên MicroSD 16GB |
| 2. Cài đặt môi trường: |
| $ sudo apt-get update && sudo apt-get install python3-pip python3-serial |
| $ pip3 install flask mjpg-streamer |
| 3. Thiết lập VPN LogMeIn Hamachi để điều khiển qua mạng di động 4G/WAN: |
| $ sudo hamachi login && sudo hamachi join <Network_ID> |
| 4. Nạp code vehicle_core.ino cho Arduino Uno qua cổng USB |
| 5. Chạy dịch vụ nền: |
| $ python3 /home/pi/robot/server_controller.py & |
+------------------------------------------------------------------------------------+
Phân tích hiệu quả kinh tế (Cost-Benefit Analysis)
- Chi phí phần cứng: Xấp xỉ $2.800.000\text{ VNĐ}$ ($120\text{ USD}$), thấp hơn rất nhiều so với thiết bị trinh sát nhập khẩu chuyên dụng ($> 150.000.000\text{ VNĐ}$).
- Giá trị giảm thiểu rủi ro: Giảm thiểu $100%$ nguy cơ thương vong trực tiếp của nhân viên cứu hộ trong giai đoạn thám sát đầu tiên tại các vùng nguy hiểm có khí độc hoặc nguy cơ sụp đổ.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật
- Phạm vi truyền thông: Kết nối Wi-Fi cục bộ bị suy hao nhanh khi đi qua các bức tường bê tông cốt thép dày ($> 20\text{ cm}$) hoặc xuống hầm sâu nếu không có trạm tiếp sóng (Repeater).
- Môi trường vận hành: Vỏ khung xe dạng mở chưa đạt chuẩn kháng nước/kháng bụi IP67/IP68; động cơ chổi than GA25 có thể sinh tia lửa nhỏ, hạn chế sử dụng trong môi trường có nồng độ khí gas dễ cháy nổ cao.
Hướng phát triển tiếp theo
- Nâng cấp truyền thông tầm xa: Tích hợp module truyền thông không dây băng tần phụ LoRa 433/915MHz hoặc modem công nghiệp 4G/5G LTE kết hợp ăng-ten định hướng công suất cao.
- Tích hợp cảm biến chuyên dụng: Bổ sung cảm biến khí gas MQ-2, MQ-135 để định lượng nồng độ $CO, CO_2, CH_4$, và cảm biến khoảng cách Lidar 2D phục vụ dựng bản đồ không gian 3D (SLAM).
- Tự hành hóa: Ứng dụng mô hình thị giác máy tính OpenCV và mạng nơ-ron tích chập (CNN) trên Raspberry Pi để phát hiện vật cản và tự động bám đuổi/tránh chướng ngại vật khi mất kết nối mạng.
Đối tượng hưởng lợi
- Sinh viên ngành Kỹ thuật Điện - Điện tử, Tự động hóa & Cơ điện tử: Cung cấp tài liệu tham khảo hoàn chỉnh từ thiết kế sơ đồ nguyên lý, tính toán mạch cấp nguồn, đến kỹ thuật lập trình điều khiển nhúng phân tầng Master-Slave.
- Kỹ sư và lập trình viên IoT: Cung cấp mẫu kiến trúc kết hợp giữa Python Flask Web Server và vi điều khiển C/C++ để tối ưu hóa việc truyền nhận tín hiệu điều khiển và streaming video thời gian thực.
- Đơn vị cứu hộ cứu nạn và doanh nghiệp khai khoáng: Cung cấp mô hình thử nghiệm chi phí thấp để đánh giá tính khả thi trước khi đặt hàng sản xuất các dòng robot trinh sát chuyên dụng.
- Nhà nghiên cứu học thuật: Cung cấp dữ liệu thực nghiệm về sai số cảm biến và độ trễ mạng trong điều kiện môi trường gồ ghề, làm tiền đề cho các thuật toán điều khiển thích nghi.
Câu hỏi thường gặp
1. Cấu hình phần cứng tối thiểu để triển khai Web Server trên Raspberry Pi là gì?
Hệ thống yêu cầu tối thiểu một kit Raspberry Pi 3 Model B hoặc B+ (Broadcom Quad-Core 1.4GHz, RAM 1GB), thẻ nhớ MicroSD tối thiểu 16GB Class 10 (tốc độ đọc/ghi $\ge 80\text{MB/s}$), nguồn cấp ổn định $5\text{V}/2.5\text{A}$ và camera USB tương thích chuẩn UVC (như Logitech C270).
2. Làm thế nào để điều khiển xe khi vượt ra ngoài tầm phủ sóng của mạng Wi-Fi cục bộ?
Có thể mở rộng điều khiển ra mạng diện rộng (WAN) bằng hai cách: (1) Cài đặt phần mềm tạo mạng riêng ảo như LogMeIn Hamachi / ZeroTier trên Raspberry Pi để kết nối chung một mạng ảo với máy tính điều khiển; hoặc (2) Sử dụng dịch vụ Reverse SSH Tunneling / ngrok để công khai cổng Web Server ra Internet với độ trễ tăng thêm khoảng $50 - 100\text{ ms}$.
3. Tại sao không điều khiển trực tiếp động cơ bằng Raspberry Pi mà phải thông qua Arduino Uno?
Raspberry Pi chạy hệ điều hành Linux (không phải hệ điều hành thời gian thực - Non-RTOS), do đó việc phân bổ chu kỳ tạo xung PWM cho động cơ và servo dễ bị trễ hoặc rung lắc (jitter) khi CPU bận xử lý nén luồng video camera. Sử dụng Arduino Uno R3 chuyên trách tạo xung phần cứng giúp các cơ cấu chấp hành chuyển động chính xác và ổn định tuyệt đối.
4. Hệ thống xử lý thế nào khi xảy ra hiện tượng mất tín hiệu mạng đột ngột?
Trong firmware Arduino Uno, có thể tích hợp bộ đếm thời gian Watchdog Timer. Nếu trong khoảng thời gian $1.5\text{ giây}$ Arduino không nhận được gói tin dữ liệu "Keep-Alive" từ Raspberry Pi qua cổng Serial, hệ thống sẽ tự động gán trạng thái dừng khẩn cấp cho cả 2 động cơ DC (stopVehicle()) để tránh việc xe tiếp tục chạy tự do vào khu vực nguy hiểm.
5. Chi phí bảo trì và thay thế linh kiện định kỳ là bao nhiêu?
Nhờ sử dụng các module phần cứng tiêu chuẩn hóa và phổ biến trên thị trường (Arduino Uno, L298N, SG90, GA25), chi phí bảo dưỡng định kỳ rất thấp. Chi phí thay thế một cụm động cơ hoặc bộ bánh xích cao su chỉ dao động từ $80.000 - 150.000\text{ VNĐ}$ với thời gian lắp ráp thay thế dưới 30 phút.
Kết luận
Đồ án tốt nghiệp "Thiết kế và thi công mô hình xe thăm dò môi trường" đã hoàn thành toàn diện các mục tiêu đề ra về mặt lý thuyết cũng như thực nghiệm cơ điện tử. Việc ứng dụng thành công mô hình điều khiển phân tầng Master - Slave (kết hợp sức mạnh xử lý luồng mạng của Raspberry Pi 3 và tính ổn định thời gian thực của Arduino Uno R3) đã tạo nên một giải pháp xe thăm dò bánh xích linh hoạt, có khả năng truyền phát video HD 720p trực tiếp, giám sát vi khí hậu và chống lật hiệu quả.
Hệ thống chứng minh tính khả thi cao trong việc ứng dụng vào các nhiệm vụ trinh sát hỏa hoạn, cứu hộ sập hầm và kiểm tra hạ tầng công nghiệp với mức chi phí chế tạo tối ưu. Đây là nền tảng vững chắc để tiếp tục tích hợp các công nghệ thông minh như xử lý ảnh AI nhận diện người bị nạn, lập bản đồ tự hành Lidar SLAM và truyền thông tầm xa LoRa trong các giai đoạn phát triển tiếp theo.