Giới thiệu dự án
Bối cảnh và thực trạng ngành
Trong kỷ nguyên Cách mạng Công nghiệp 4.0 và chuyển đổi số, tự động hóa đóng vai trò then chốt trong việc tối ưu hóa năng suất và bảo vệ an toàn lao động. Theo các báo cáo thị trường robot công nghiệp và dịch vụ toàn cầu, nhu cầu ứng dụng robot di động tự hành (Autonomous Mobile Robot - AMR / Unmanned Ground Vehicle - UGV) trong các môi trường độc hại, khắc nghiệt (nhà máy hóa chất, khu vực rò rỉ phóng xạ, hầm lò, vùng thiên tai hỏa hoạn) tăng trưởng trên 18.5% mỗi năm. Việc thay thế con người bằng robot thám sát không chỉ triệt tiêu rủi ro thương vong mà còn đảm bảo tính liên tục trong công tác giám sát môi trường.
Tuy nhiên, phần lớn các mô hình robot điều khiển từ xa truyền thống tại thị trường Việt Nam vẫn phụ thuộc vào sóng vô tuyến tầm ngắn (RF 315/433MHz) hoặc kết nối không dây nội bộ (Bluetooth HC-05/HC-06), dẫn đến giới hạn vật lý nghiêm ngặt về cự ly vận hành (chỉ từ 10m đến 30m không vật cản) và khả năng xuyên tường kém.
+-----------------------------------------------------------------------------+
| HỆ THỐNG CLOUD ROBOTICS |
| |
| [ Android Client ] [ Google Firebase ] [ NodeMCU ESP8266 ]
| - Speech-to-Text =======> - Realtime Database <======> - Wi-Fi Station |
| - Manual Controls (HTTPS) - JSON Key-Value (WSS) - UART Bridge |
| - Telemetry UI - Security Rules - PWM Controller |
| || (UART)
| \/
| [ MCU ATmega328P ]
| - SRF05 Sonar |
| - DHT11 Telemetry|
| - L298N H-Bridge |
+-----------------------------------------------------------------------------+
Vấn đề nghiên cứu và các điểm nghẽn kỹ thuật (Problem Statement)
Các hệ thống robot mini hiện hữu gặp phải 3 điểm nghẽn chính:
- Giới hạn cự ly điều khiển: Sóng Bluetooth và RF truyền thống suy hao tín hiệu mạnh khi gặp vật cản kiến trúc và hoàn toàn mất kiểm soát ngoài phạm vi 15m.
- Thiếu phản hồi dữ liệu thời gian thực (Telemetry Gap): Người điều khiển không nắm bắt được thông số môi trường (nhiệt độ, độ ẩm) tại vị trí robot hoạt động để đưa ra quyết định kịp thời.
- Phương thức tương tác đơn điệu: Chỉ hỗ trợ nút bấm cơ học hoặc joystick ảo, thiếu khả năng điều khiển đa phương thức (Multimodal Control), đặc biệt là xử lý giọng nói tự nhiên (Natural Voice Commands).
Mục tiêu của đồ án
Đề tài "Thiết kế, thi công Robot bằng Arduino và điều khiển dùng điện thoại Android" đặt ra 5 mục tiêu cụ thể:
- Thiết kế và chế tạo hoàn chỉnh phần cứng robot tự hành 2 bánh chủ động (2WD) tích hợp bánh dẫn hướng đa hướng.
- Xây dựng giải pháp điều khiển không giới hạn khoảng cách thông qua hạ tầng mạng Internet bằng giao thức đồng bộ thời gian thực với Cloud Database.
- Tích hợp mô-đun nhận dạng và xử lý giọng nói Tiếng Việt/Tiếng Anh trên hệ điều hành Android để chuyển đổi thành chuỗi lệnh điều hướng.
- Phát triển thuật toán tự động phát hiện và né tránh vật cản chủ động bằng cảm biến sóng siêu âm với độ trễ phản hồi dưới 50ms.
- Thu thập, mã hóa và truyền tải dữ liệu vi khí hậu (nhiệt độ, độ ẩm) từ cảm biến môi trường về điện thoại thông minh với chu kỳ cập nhật dưới 1000ms.
Giải pháp kỹ thuật và cơ sở lựa chọn
Nhóm nghiên cứu lựa chọn mô hình kiến trúc phân tán (Decoupled Dual-Controller Architecture):
- ESP8266-12E NodeMCU: Đảm nhiệm vai trò Gateway IoT, duy trì kết nối Wi-Fi 802.11 b/g/n, giao tiếp thời gian thực với Google Firebase Realtime Database qua WebSocket/HTTPS, giải mã chuỗi lệnh JSON.
- Microchip ATmega328P (8-bit AVR RISC): Đảm nhiệm vai trò bộ điều khiển thời gian thực (Real-time Actuation & Sensing Core), trực tiếp băm xung PWM điều khiển động cơ qua mạch cầu H L298N, lấy mẫu cảm biến siêu âm SRF05 và cảm biến DHT11 qua giao thức 1-Wire chuyên dụng.
Kết quả đầu ra kỳ vọng
- Hệ thống hoạt động ổn định trên băng thông Internet 3G/4G/Wi-Fi với độ trễ điều khiển (End-to-End Latency) $\le 250\text{ ms}$.
- Khoảng cách phát hiện vật cản chính xác từ 2cm đến 300cm với sai số $\le \pm 1\text{ cm}$.
- Khả năng nhận diện lệnh giọng nói đạt độ chính xác $\ge 90%$ trong môi trường độ ồn tiêu chuẩn ($< 45\text{ dB}$).
Phạm vi và giới hạn đề tài
- Phạm vi: Robot hoạt động trong nhà xưởng, văn phòng hoặc môi trường ngoài trời có địa hình tương đối bằng phẳng, có phủ sóng mạng không dây Wi-Fi (2.4GHz).
- Giới hạn: Robot chưa tích hợp camera truyền hình ảnh trực tiếp (FPV); tốc độ di chuyển duy trì ở mức ổn định ($0.3 - 0.7\text{ m/s}$) để tối ưu độ chính xác tránh va chạm.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng và khoảng trống công nghệ
| Tiêu chí kỹ thuật |
Giải pháp Bluetooth (HC-05/06) |
Giải pháp Sóng RF (NRF24L01) |
Giải pháp Cloud IoT (Đề tài đề xuất) |
| Cự ly điều khiển |
Giới hạn 10 – 15m |
Giới hạn 50 – 100m (LoS) |
Không giới hạn (Toàn cầu qua Internet) |
| Độ trễ truyền nhận |
50 – 100ms |
20 – 50ms |
150 – 250ms (Phụ thuộc kết nối Cloud) |
| Khả năng xuyên tường |
Kém (suy hao nhanh qua bê tông) |
Trung bình |
Rất cao (Sử dụng hạ tầng Router Wi-Fi) |
| Đa kênh dữ liệu |
Đơn luồng UART |
Tùy biến gói tin Payload |
Đồng bộ JSON hai chiều (Telemetry + Control) |
| Tích hợp Cloud / AI |
Rất khó, cần gateway trung gian |
Cần gateway vi xử lý |
Tích hợp trực tiếp Google Cloud API / STT |
| Bảo mật kênh truyền |
Ghép đôi mã PIN chuẩn 4 số |
Mã hóa tầng vật lý cơ bản |
Mã hóa SSL/TLS 256-bit, Firebase Rules |
Yêu cầu người dùng và phân loại MoSCoW
- Must have (Bắt buộc):
- Di chuyển linh hoạt 4 hướng: Tiến, Lùi, Rẽ Trái, Rẽ Phải, Dừng.
- Tự động dừng khẩn cấp khi gặp vật cản phía trước ở cự ly $\le 20\text{ cm}$.
- Điều khiển bằng nút bấm giao diện và nhận diện giọng nói từ App Android.
- Should have (Nên có):
- Cập nhật liên tục chỉ số nhiệt độ (°C) và độ ẩm tương đối (%RH) lên giao diện người dùng.
- Tự động tái lập kết nối khi mất tín hiệu mạng Wi-Fi.
- Could have (Có thể có):
- Cảnh báo ngưỡng nhiệt độ nguy hiểm bằng còi chíp và đèn LED tín hiệu.
- Won't have (Chưa thực hiện):
- Bản đồ hóa không gian (SLAM) và truyền video độ phân giải cao H.264.
Ràng buộc kỹ thuật
- Bộ nhớ vi điều khiển: ATmega328P có 32KB Flash, 2KB SRAM đòi hỏi tối ưu mã nguồn C/C++, không sử dụng các thư viện động cấp phát bộ nhớ động (
malloc/free) để tránh phân mảnh RAM.
- Điện áp mức logic: ESP8266 hoạt động ở điện thế 3.3V TTL, trong khi ATmega328P và mạch L298N hoạt động ở mức 5.0V TTL; cần thiết kế phân áp và bộ đệm tương thích tín hiệu UART.
+--------------------------------------------------------------------+
| SƠ ĐỒ CẤU TRÚC PHẦN CỨNG |
| |
| [ NGUỒN ACQUY 12V 1.2Ah ] |
| | | |
| | (12V Raw) +--> [ Mạch Cầu H L298N ] ===> [ Động cơ DC ]|
| | | (5V Regulated) |
| +-------------------------+ |
| | |
| +---> [ ATmega328P (16MHz) ] |
| | ^ ^ |
| | (GPIO) (GPIO) |
| | | | |
| | [SRF05] [DHT11] |
| | |
| +---> [ ESP8266 NodeMCU ] |
| ^ |
| (UART) |
| v |
| (Cloud / Firebase) |
+--------------------------------------------------------------------+
Technology Stack chi tiết
- Firmware Engine: C/C++ trên Arduino IDE v1.8.19, ESP8266 Core v2.7.4.
- Cloud Backend: Google Firebase Realtime Database SDK (REST API / WebSocket Engine).
- Mobile Application: Android Studio Arctic Fox (Java JDK 8, Android SDK Level 30).
- Hardware Architecture: ATmega328P (8-bit AVR @ 16MHz) + Tensilica Xtensa Dual-Core 32-bit L106 ESP8266 (@ 80MHz).
Thiết kế dữ liệu JSON (Firebase Realtime Database Schema)
Dữ liệu lưu trữ dạng cây JSON phân cấp đảm bảo thời gian truy xuất tối ưu ($O(1)$) trên Cloud:
{
"Robot_Controller": {
"command": {
"direction": "FORWARD",
"speed": 200,
"mode": "VOICE",
"timestamp": 1484294400000
},
"telemetry": {
"temperature": 29.5,
"humidity": 68.0,
"obstacle_distance": 45.2,
"status": "NORMAL"
},
"system": {
"battery_voltage": 12.1,
"wifi_rssi": -62
}
}
}
Bảo mật và An toàn hệ thống
- Tích hợp lớp mã hóa dữ liệu HTTPS/WSS với mã hóa chứng chỉ SSL SHA-256 trên ESP8266.
- Sử dụng Firebase Database Rules phân quyền đọc/ghi định danh (Database Secret Key Token) nhằm loại bỏ nguy cơ chiếm quyền điều khiển trái phép từ các thiết bị lạ.
Implementation và kết quả
Quy trình phát triển và các thuật toán trọng tâm
[Khởi tạo Hệ Thống]
|
v
[Đọc Cảm Biến SRF05] ---> (Khoảng cách <= 20cm?) ---YES---> [DỪNG ĐỘNG CƠ / CẢNH BÁO]
| |
NO |
v |
[ESP8266 Đọc Firebase] |
| |
v |
[Gửi Lệnh UART sang ATmega328P] |
| |
v |
[Băm Xung PWM L298N Điều Khiển Động Cơ] <------------------------------+
|
v
[Lấy Mẫu DHT11 (Chu kỳ 2s)] ---> [Gửi Ngược Firebase qua UART/WSS]
1. Thuật toán đo khoảng cách bằng sóng siêu âm (SRF05 Ultrasonic Sensor)
Cảm biến phát chuỗi xung siêu âm $40\text{ kHz}$ qua chân TRIGGER với độ rộng xung tối thiểu $10\ \mu\text{s}$. Khi sóng dội lại gặp vật cản, chân ECHO trả về độ rộng xung tỷ lệ thuận với thời gian sóng truyền đi và về ($t$).
Công thức vật lý tính khoảng cách:
$$D = \frac{t \times v}{2}$$
Trong đó:
- $v = 340\text{ m/s} = 0.034\text{ cm/\mu s}$ (vận tốc âm thanh trong không khí ở $20^\circ\text{C}$).
- $D = \frac{t\ (\mu\text{s}) \times 0.034}{2} = \frac{t}{58.82}\ (\text{cm})$.
// Trích đoạn thuật toán đo khoảng cách và xử lý an toàn vật cản
#define TRIG_PIN 9
#define ECHO_PIN 10
#define SAFE_DISTANCE 20 // Khoảng cách an toàn tối thiểu (cm)
float calculateObstacleDistance() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10); // Kích xung chuẩn 10us
digitalWrite(TRIG_PIN, LOW);
unsigned long duration = pulseIn(ECHO_PIN, HIGH, 25000); // Timeout 25ms (~4m)
if (duration == 0) return 400.0; // Không có vật cản trong tầm quét
float distance = (float)duration * 0.034 / 2.0;
return distance;
}
2. Thuật toán giải mã giao thức 1-Wire cảm biến DHT11
Cảm biến DHT11 truyền gói tin 40-bit nối tiếp (Single-bus Data Format):
$$\text{Data Packet} = \underbrace{\text{Byte}1}{\text{Độ ẩm nguyên}} + \underbrace{\text{Byte}2}{\text{Độ ẩm phân số}} + \underbrace{\text{Byte}3}{\text{Nhiệt độ nguyên}} + \underbrace{\text{Byte}4}{\text{Nhiệt độ phân số}} + \underbrace{\text{Byte}5}{\text{Checksum}}$$
Điều kiện kiểm tra tính toàn vẹn của dữ liệu:
$$\text{Byte}_5 = (\text{Byte}_1 + \text{Byte}_2 + \text{Byte}_3 + \text{Byte}_4) \ & \ \text{0xFF}$$
// Logic kiểm tra Checksum dữ liệu DHT11
bool verifyDHT11Checksum(uint8_t data[5]) {
uint8_t sum = data[0] + data[1] + data[2] + data[3];
return (sum == data[4]);
}
3. Thuật toán điều khiển động cơ băm xung PWM qua Mạch cầu H L298N
// Định nghĩa chân điều khiển cầu H L298N
const int ENA = 5; // Chân băm xung Timer 0 (PWM)
const int IN1 = 6; // Chiều quay Motor Trái
const int IN2 = 7;
const int IN3 = 8; // Chiều quay Motor Phải
const int IN4 = 11;
const int ENB = 3; // Chân băm xung Timer 2 (PWM)
void executeMovement(char command, int pwmSpeed) {
switch(command) {
case 'F': // TIẾN (FORWARD)
digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);
analogWrite(ENA, pwmSpeed); analogWrite(ENB, pwmSpeed);
break;
case 'B': // LÙI (BACKWARD)
digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH);
analogWrite(ENA, pwmSpeed); analogWrite(ENB, pwmSpeed);
break;
case 'L': // RẼ TRÁI (TURN LEFT - Quay tâm)
digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);
analogWrite(ENA, pwmSpeed * 0.8); analogWrite(ENB, pwmSpeed * 0.8);
break;
case 'R': // RẼ PHẢI (TURN RIGHT - Quay tâm)
digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH);
analogWrite(ENA, pwmSpeed * 0.8); analogWrite(ENB, pwmSpeed * 0.8);
break;
case 'S': // DỪNG (STOP)
default:
digitalWrite(IN1, LOW); digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW); digitalWrite(IN4, LOW);
analogWrite(ENA, 0); analogWrite(ENB, 0);
break;
}
}
4. Kiến trúc đồng bộ Firebase trên Android (Java)
// Xử lý Voice Intent và đồng bộ lệnh lên Cloud Realtime Database
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQ_CODE_SPEECH_INPUT && resultCode == RESULT_OK && data != null) {
ArrayList<String> result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
String voiceCommand = result.get(0).toLowerCase();
DatabaseReference commandRef = FirebaseDatabase.getInstance().getReference("Robot_Controller/command");
if (voiceCommand.contains("tiến") || voiceCommand.contains("forward")) {
commandRef.child("direction").setValue("FORWARD");
} else if (voiceCommand.contains("lùi") || voiceCommand.contains("back")) {
commandRef.child("direction").setValue("BACKWARD");
} else if (voiceCommand.contains("trái") || voiceCommand.contains("left")) {
commandRef.child("direction").setValue("LEFT");
} else if (voiceCommand.contains("phải") || voiceCommand.contains("right")) {
commandRef.child("direction").setValue("RIGHT");
} else if (voiceCommand.contains("dừng") || voiceCommand.contains("stop")) {
commandRef.child("direction").setValue("STOP");
}
}
}
Kết quả đo kiểm và Thực nghiệm hiệu năng
+---------------------------------------------------------------------------+
| KẾT QUẢ ĐO KIỂM THỰC NGHIỆM |
| |
| Độ trễ truyền nhận lệnh (Cloud) : [=====> ] 185ms |
| Độ chính xác cảm biến siêu âm (ToF) : [==================>] 98.4% |
| Nhận dạng giọng nói (Google STT) : [=================> ] 92.0% |
| Thời lượng pin liên tục (1.2Ah) : [==============> ] 1.85 giờ |
+---------------------------------------------------------------------------+
-
Khảo sát độ trễ đường truyền (Network Latency Test):
- Mạng Wi-Fi Local (Ping Firebase): Trung bình $45 - 65\text{ ms}$.
- Mạng 3G/4G Di động: Trung bình $140 - 210\text{ ms}$.
- Tổng thời gian trễ từ khi phát lệnh giọng nói đến khi động cơ quay: $\approx 320\text{ ms}$ (đạt yêu cầu điều khiển thời gian thực).
-
Kiểm thử độ chính xác phát hiện vật cản (SRF05):
- Khoảng cách thực tế $10\text{ cm} \rightarrow$ Cảm biến đo: $10.1\text{ cm}$ (Sai số $1.0%$).
- Khoảng cách thực tế $50\text{ cm} \rightarrow$ Cảm biến đo: $49.4\text{ cm}$ (Sai số $1.2%$).
- Khoảng cách thực tế $150\text{ cm} \rightarrow$ Cảm biến đo: $148.2\text{ cm}$ (Sai số $1.2%$).
-
Kiểm tra độ chính xác nhận dạng giọng nói (Google Speech Recognizer API):
- Thử nghiệm 100 mẫu lệnh tiếng Việt trong môi trường phòng thí nghiệm ($35\text{ dB}$): Đạt 94/100 lệnh đúng ($94%$).
- Thử nghiệm 100 mẫu lệnh trong môi trường có tiếng ồn công nghiệp ($65\text{ dB}$): Đạt 82/100 lệnh đúng ($82%$).
Đổi mới và đóng góp
- Kiến trúc điều khiển tách lớp (Decoupled Layer Architecture): Phân tách độc lập tầng xử lý mạng/đám mây (ESP8266) và tầng thực thi cơ điện thời gian thực (ATmega328P), ngăn ngừa tình trạng trễ ngắt băm xung PWM khi mạng bị nghẽn (Zero-Blocking Execution).
- Mở rộng cự ly vô hạn với chi phí tối ưu: Loại bỏ hoàn toàn sự phụ thuộc vào hạ tầng mạng cục bộ (LAN) hoặc khoảng cách vô tuyến tầm gần (Bluetooth/RF), chuyển dịch toàn bộ sang mô hình IoT Cloud Robotics với chi phí linh kiện phần cứng dưới 40 USD.
- Tích hợp xử lý ngôn ngữ tự nhiên trên thiết bị di động: Tận dụng năng lực tính toán của smartphone để nhận diện giọng nói mà không tiêu tốn tài nguyên tính toán của vi điều khiển biên.
- Cải thiện độ an toàn với cơ chế bảo vệ hai lớp (Dual-layer Failsafe): Khi mất kết nối Internet, robot tự động phanh dừng; khi khoảng cách vật cản dưới ngưỡng an toàn $20\text{ cm}$, lệnh dừng phần cứng ghi đè (Hardware Override) lập tức vô hiệu hóa lệnh điều khiển từ xa.
Ứng dụng thực tế và triển khai
Các kịch bản ứng dụng thực tiễn
- Quan trắc môi trường công nghiệp: Giám sát nhiệt độ, độ ẩm tại các trạm biến áp, kho chứa nhiên liệu dễ cháy nổ, kho hóa chất nơi con người bị hạn chế tiếp cận.
- Cứu hộ và thám sát vùng sạt lở, hỏa hoạn: Tiếp cận các khe hẹp, hang sụp đổ để đo đạc vi khí hậu và kiểm tra tình trạng vật cản trước khi lực lượng cứu nạn tiến vào.
- Nền tảng nghiên cứu và giáo dục STEM Robotics: Làm mô hình mẫu cho sinh viên ngành Điện tử - Viễn thông, Tự động hóa và IoT học tập kiến trúc nhúng, lập trình Driver và Cloud integration.
+----------------------------------------------------------------------------+
| QUY TRÌNH TRIỂN KHAI HỆ THỐNG |
| |
| 1. Cấu hình Nguồn ==> 2. Flash Firmware ==> 3. Cấu hình Cloud ==> 4. App|
| - Acquy 12V 1.2Ah - ATmega328P (16MHz) - Firebase Realtime - APK |
| - Step-down 5V - ESP8266 (NodeMCU) - Rules Authentication- Sync|
+----------------------------------------------------------------------------+
Hướng dẫn cài đặt và triển khai hệ thống
- Thiết lập phần cứng:
- Kết nối nguồn Acquy APOLO 12V 1.2Ah vào cổng $12\text{V}$ của mạch cầu H L298N. Cắm jumper $5\text{V}$ để kích hoạt IC nguồn hạ áp nội cấp $5\text{V}$ cho ATmega328P và các cảm biến.
- Nối chân TX/RX của ESP8266 sang chân D2/D3 (SoftwareSerial) của ATmega328P qua cầu chia áp trở ($1\text{k}\Omega : 2\text{k}\Omega$).
- Triển khai Đám mây (Firebase Setup):
- Khởi tạo Project trên Firebase Console, tạo Realtime Database tại khu vực Singapore (khử trễ khu vực Đông Nam Á).
- Tải file
google-services.json chép vào thư mục /app của dự án Android Studio.
- Nạp Firmware:
- Biên dịch và nạp
Robot_Actuator.ino cho ATmega328P qua mạch nạp USB-UART CH340 / Arduino UNO.
- Cấu hình SSID/Password Wi-Fi và Firebase Host Auth Key trong
ESP8266_Gateway.ino, nạp cho kit NodeMCU v12.
Bảng phân tích chi phí phần cứng (Bill of Materials - BOM)
| STT |
Tên linh kiện / Mô-đun |
Thông số kỹ thuật chính |
Số lượng |
Đơn giá ước tính (VND) |
| 1 |
Vi điều khiển ATmega328P-PU |
8-bit AVR, DIP-28, kèm thạch anh 16MHz |
01 |
45.000 |
| 2 |
Kit ESP8266 NodeMCU Lua v12 |
Wi-Fi SoC 802.11 b/g/n, nạp CH340 |
01 |
85.000 |
| 3 |
Driver Động cơ L298N |
Mạch cầu H kép, dòng tải $2\text{A}/\text{kênh}$ |
01 |
40.000 |
| 4 |
Cảm biến siêu âm SRF05 |
Tần số $40\text{kHz}$, cự ly $2 - 300\text{cm}$ |
01 |
35.000 |
| 5 |
Cảm biến nhiệt ẩm DHT11 |
Dải đo $0 - 50^\circ\text{C}$, $20 - 90%\text{RH}$ |
01 |
25.000 |
| 6 |
Động cơ DC giảm tốc + Bánh xe |
Tỉ số truyền 1:48, đường kính $66\text{mm}$ |
02 |
60.000 |
| 7 |
Nguồn Acquy APOLO 12V |
Dung lượng $1.2\text{Ah}$, ắc quy chì kín khí |
01 |
120.000 |
| 8 |
Khung xe mica + Linh kiện thụ động |
Trở, tụ, LED, công tắc, dây cắm, ốc vít |
01 bộ |
70.000 |
| TỔNG |
Chi phí cấu thành phần cứng |
(Tương đương ~20 USD) |
|
480.000 VND |
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Robot phụ thuộc vào điểm phát sóng Wi-Fi cố định; khi đi vào vùng mất sóng (Wi-Fi Blind Spot), robot không thể nhận lệnh mới từ Cloud.
- Cảm biến siêu âm SRF05 có góc quét hẹp ($< 15^\circ$), tạo ra các điểm mù góc ở hai bên sườn xe.
- Động cơ DC không có đĩa Encoder hồi tiếp tốc độ (Closed-loop Control), dẫn đến hiện tượng xe bị lệch hướng nhẹ khi chạy trên địa hình có hệ số ma sát không đồng đều.
Hướng phát triển mở rộng
- Nâng cấp hệ thống thị giác máy tính (Visual IoT): Tích hợp mô-đun ESP32-CAM hoặc Raspberry Pi 4 để truyền luồng video thời gian thực H.264 qua giao thức WebRTC về điện thoại Android.
- Nâng cấp cảm biến định vị không gian: Thay thế cảm biến siêu âm đơn điểm bằng mô-đun LiDAR quét $360^\circ$ (RPLIDAR A1) kết hợp thuật toán Gmapping SLAM để tự động vẽ bản đồ không gian và định vị vị trí robot.
- Tích hợp giao thức MQTT: Chuyển đổi từ Firebase REST sang MQTT Broker (như Eclipse Mosquitto) với cơ chế QoS 1 để tiết kiệm băng thông mạng và năng lượng pin lên đến $40%$.
Đối tượng hưởng lợi
- Sinh viên ngành Kỹ thuật Điện - Điện tử / Viễn thông: Tài liệu tham khảo chuẩn mực về phương pháp kết hợp phần cứng vi điều khiển 8-bit và vi xử lý IoT 32-bit, kỹ thuật phân áp logic và lập trình Android giao tiếp Cloud.
- Kỹ sư nhúng và Lập trình viên IoT: Nắm bắt mô hình kiến trúc điều khiển Robot qua Firebase Realtime Database và cách giải quyết bài toán chống nghẽn thời gian thực.
- Doanh nghiệp sản xuất và Logistics: Khung kiến trúc khả thi để phát triển các mẫu AGV/AMR kích thước nhỏ vận chuyển hàng hóa nội bộ hoặc kiểm tra an toàn nhiệt độ kho hàng với chi phí cực thấp.
Câu hỏi thường gặp
1. Yêu cầu cấu hình tối thiểu của điện thoại Android để cài đặt ứng dụng điều khiển là gì?
Ứng dụng tương thích với các thiết bị chạy hệ điều hành Android từ phiên bản 5.0 (Lollipop - API Level 21) trở lên, yêu cầu tích hợp dịch vụ Google Play Services để kích hoạt engine nhận dạng giọng nói Google Speech-to-Text và có kết nối mạng Internet (3G/4G/LTE hoặc Wi-Fi).
2. Khi mất kết nối Wi-Fi đột ngột, Robot sẽ xử lý như thế nào để tránh va chạm?
Hệ thống tích hợp cơ chế ngắt thời gian chờ (Watchdog Communication Timer). Nếu trong vòng $500\text{ ms}$ ATmega328P không nhận được gói tin dữ liệu hợp lệ từ ESP8266, hệ thống tự động ngắt các chân kích PWM của cầu H L298N để dừng xe tức thì, tránh tình trạng xe tiếp tục chạy theo lệnh cũ dẫn đến va chạm.
3. Tại sao không sử dụng trực tiếp ESP8266 để điều khiển động cơ mà phải dùng thêm ATmega328P?
Mặc dù ESP8266 có xung nhịp cao ($80\text{MHz}$), vi điều khiển này phải chạy nền các tác vụ quản lý ngăn xếp Wi-Fi (Wi-Fi Stack TCP/IP) và kết nối mã hóa SSL. Các tác vụ này có tính ưu tiên cao và chiếm dụng CPU đột ngột, gây ra hiện tượng méo xung PWM hoặc gián đoạn chu kỳ đo thời gian micro-giây của cảm biến siêu âm. Việc sử dụng ATmega328P làm bộ vi xử lý chuyên trách (Co-processor) giúp tách biệt hoàn toàn tác vụ điều khiển thời gian thực và tác vụ truyền thông mạng.
4. Mạch cầu H L298N có gây sụt áp hoặc nóng IC khi động cơ hoạt động liên tục không?
L298N sử dụng transistor tiếp mặt BJT nội nên có sụt áp khoảng $1.4\text{V} - 2\text{V}$ trên các van công suất. Với dòng tiêu thụ của 2 động cơ DC giảm tốc khoảng $250\text{mA} - 500\text{mA}$, công suất tiêu tán nhiệt duy trì ở mức $< 1.5\text{W}$, tản nhiệt nhôm đi kèm hoàn toàn đảm bảo nhiệt độ IC dưới $50^\circ\text{C}$ mà không cần quạt cưỡng bức.
5. Chi phí duy trì cơ sở dữ liệu Firebase Realtime Database cho hệ thống là bao nhiêu?
Google cung cấp gói miễn phí (Spark Plan) cho Firebase Realtime Database với giới hạn 100 kết nối đồng thời (Simultaneous Connections), dung lượng lưu trữ 1GB và băng thông tải xuống 10GB/tháng. Đối với quy mô vận hành của 1-5 robot nghiên cứu, hệ thống hoàn toàn miễn phí duy trì trọn đời mà không phát sinh bất kỳ chi phí hạ tầng nào.
Kết luận
Đồ án tốt nghiệp "Thiết kế, thi công Robot bằng Arduino và điều khiển dùng điện thoại Android" của nhóm tác giả Trần Trung Hiếu và Đinh Công Ngọc Thuận (Khoa Điện - Điện tử, Trường ĐH Sư phạm Kỹ thuật TP.HCM, dưới sự hướng dẫn của TS. Nguyễn Thanh Hải) đã giải quyết trọn vẹn bài toán điều khiển robot không giới hạn khoảng cách và tích hợp đa phương thức tương tác người - máy.
Bằng việc kết hợp kiến trúc vi xử lý kép (ATmega328P + ESP8266-12E NodeMCU) cùng nền tảng điện toán đám mây Google Firebase, đề tài đã chứng minh tính khả thi vượt trội của xu hướng Cloud Robotics chi phí thấp. Hệ thống vận hành chính xác các lệnh điều hướng bằng giọng nói và nút bấm giao diện, đồng thời tự động phản xạ né tránh vật cản và liên tục truyền tải dữ liệu môi trường thời gian thực. Đây là tiền đề kỹ thuật vững chắc để tiếp tục phát triển các hệ thống xe tự hành thông minh cao cấp phục vụ cho công tác cứu hộ, thám sát môi trường nguy hiểm và tự động hóa nhà xưởng trong tương lai.