Giới thiệu dự án

Sự bùng nổ của cuộc Cách mạng Công nghiệp 4.0 đã thúc đẩy mạnh mẽ quá trình chuyển đổi số và tự động hóa trong quản lý đô thị thông minh (Smart City). Theo các báo cáo thống kê môi trường đô thị, mỗi ngày các thành phố lớn tại Việt Nam phát sinh hàng chục nghìn tấn chất thải rắn sinh hoạt. Quy trình thu gom rác hiện nay vẫn phụ thuộc chủ yếu vào các phương thức truyền thống: công nhân vệ sinh phải trực tiếp đẩy hoặc lái các xe gom rác thô sơ trên các tuyến phố, ngõ hẹp. Phương thức này không chỉ tiêu tốn nhiều sức lao động mà còn trực tiếp phơi nhiễm người lao động trước các nguồn ô nhiễm sinh học, khí độc ($H_2S, NH_3$) và vi khuẩn gây hại.

Mặc dù trên thế giới đã xuất hiện một số robot vệ sinh tự hành sử dụng cảm biến LiDAR hoặc thị giác máy tính, nhưng giá thành của chúng dao động từ $2.000 đến hơn $10.000, đồng thời kích thước cồng kềnh khó thích ứng với các ngõ nhỏ đô thị đặc thù tại các nước đang phát triển. Đề tài "Điều khiển xe thu gom rác thải từ xa bằng Smartphone" của nhóm sinh viên ngành Công nghệ Kỹ thuật Điện tử - Truyền thông, Trường Đại học Sư phạm Kỹ thuật TP.HCM (HCMUTE) được nghiên cứu và chế tạo nhằm giải quyết trực tiếp bài toán này. Đề tài phát triển một mô hình xe gom rác thông minh có chi phí chế tạo thấp, tích hợp công nghệ điều khiển đa phương thức qua mạng không dây (Wireless LAN/Internet) và hệ thống định vị thời gian thực.

Mục tiêu cụ thể của dự án

  1. Thiết kế cơ khí và phần cứng tích hợp: Xây dựng khung gầm xe tự hành 4 bánh chủ động (kích thước $30 \times 20 \times 10\text{ cm}$), tích hợp bộ điều khiển trung tâm Raspberry Pi 3 Model B+, vi điều khiển phụ Arduino Uno R3, mạch cầu H L298N, module định vị GPS GY-NEO 6M V2, động cơ servo SG90 và mạch âm thanh ISD1820.
  2. Xây dựng giải pháp điều khiển kép qua Smartphone: Lập trình ứng dụng di động trên nền tảng Android (MIT App Inventor 2) hỗ trợ điều khiển xe qua 2 chế độ: Chế độ thủ công (Manual Virtual Buttons) và chế độ giọng nói (Voice Control) thông qua Google Assistant và Google Speech-to-Text (STT) API.
  3. Thu thập và hiển thị dữ liệu viễn trắc (Telemetry): Xử lý luồng dữ liệu NMEA từ module GPS trên vi điều khiển, truyền thông UART sang Raspberry Pi và đồng bộ hiển thị tọa độ kinh độ/vĩ độ trực tiếp trên bản đồ số Google Maps tại giao diện Smartphone.
  4. Cơ cấu chấp hành và tương tác tự động: Tự động hóa việc đóng/mở nắp thùng chứa rác từ xa bằng điều chế độ rộng xung (PWM) cho RC Servo, kết hợp phát âm thanh thông báo qua còi/loa khi xe tác vụ.
+-----------------------------------------------------------------------+
|                           HỆ THỐNG ĐIỀU KHIỂN                         |
|   +---------------------+                 +-----------------------+   |
|   | Ứng dụng Android    |                 |   Google Assistant    |   |
|   | (MIT App Inventor)  |                 | (Voice Recognition)   |   |
|   +----------+----------+                 +-----------+-----------+   |
+--------------|----------------------------------------|---------------+
               |                 HTTP / TCP             |                
               +-------------------+--------------------+                
                                   |                                     
                                   v                                     
+-----------------------------------------------------------------------+
|                     TRẠM XỬ LÝ TRUNG TÂM (XE GOM RÁC)                 |
|                                                                       |
|   +---------------------------------------------------------------+   |
|   |                  Raspberry Pi 3 Model B+                      |   |
|   |   (Web Server / Socket Server, Điều phối GPIO, Tính toán PWM) |   |
|   +---------+------------------+-------------------+--------------+   |
|             |                  |                   |                  |
|             | (PWM / GPIO)     | (UART Serial)     | (GPIO Trigger)   |
|             v                  v                   v                  |
|      +--------------+   +--------------+    +--------------+          |
|      | Module L298N |   | Arduino Uno  |    | Mạch ISD1820 |          |
|      |  (Động cơ DC)|   | (Xử lý GPS)  |    | (Phát Loa)   |          |
|      +-------+------+   +-------+------+    +--------------+          |
|              |                  |                                     |
|              v                  v                                     |
|         [ 4x DC Motors ]  [ Module GPS ]                              |
|                           [ GY-NEO 6M  ]                              |
|                                                                       |
|      +--------------+                                                 |
|      |  Servo SG90  | <--- (GPIO 17 PWM - Đóng/Mở nắp thùng rác)      |
|      +--------------+                                                 |
+-----------------------------------------------------------------------+

Phạm vi và giới hạn

  • Phạm vi hoạt động: Thử nghiệm trong mạng cục bộ không dây (WLAN IEEE 802.11 b/g/n băng tần 2.4 GHz) với địa chỉ IP tĩnh nội mạng.
  • Giới hạn môi trường định vị: Module GPS GY-NEO 6M đạt độ chính xác tối ưu trong không gian mở ngoài trời (độ trễ khóa vệ tinh $20 - 30$ phút cho lần cold start đầu tiên); trong phòng kín cần hỗ trợ định vị phụ trợ.
  • Tải trọng nguyên mẫu: Khung xe mô hình chịu tải thực tế $1.5 - 2.0\text{ kg}$ rác thải phục vụ đánh giá tính khả thi giải pháp kỹ thuật.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Tiêu chí so sánh Xe gom rác đẩy tay truyền thống Robot vệ sinh công nghiệp LiDAR/SLAM Mô hình Xe gom rác Smartphone (Đồ án)
Chi phí chế tạo Rất thấp (~500.000 VNĐ) Rất cao (>50.000.000 VNĐ) Thấp (~1.800.000 - 2.500.000 VNĐ)
Tác động sức khỏe Tiếp xúc trực tiếp chất thải độc hại Không tiếp xúc Điều khiển cách ly hoàn toàn từ xa
Giao diện điều khiển Cơ học trực tiếp Lập trình tự động phức tạp Đồ họa trực quan + Giọng nói tiếng Việt
Khả năng định vị Không có Bản đồ nội bộ quét 2D/3D Tọa độ GPS toàn cầu + Google Maps
Bảo trì và sửa đổi Đơn giản Phức tạp, cần chuyên gia Linh kiện module hóa mở, dễ thay thế

Yêu cầu người dùng theo ma trận MoSCoW

  • Must-have (Bắt buộc): Di chuyển 4 hướng (Tiến, Lùi, Trái, Phải, Dừng); Nhận dạng giọng nói tiếng Việt chuẩn xác; Đóng/mở nắp thùng rác từ xa; Trích xuất tọa độ GPS.
  • Should-have (Cần có): Hiển thị vị trí trực tiếp trên giao diện Google Maps; Phát cảnh báo âm thanh khi xe vận hành; Cơ chế bảo vệ xung đột nguồn.
  • Could-have (Có thể mở rộng): Tự động bám vết đường line; Camera FPV truyền luồng video thời gian thực về màn hình điện thoại.
  • Won't-have (Chưa triển khai ở giai đoạn này): Cánh tay robot tự động kẹp và nhấc thùng rác cỡ lớn; Tự động né vật cản động bằng mạng nơ-ron học sâu.

Thiết kế hệ thống

Hệ thống được thiết kế theo kiến trúc phân tầng xử lý lai (Hybrid Dual-Tier Processing), tách biệt giữa tầng tính toán cấp cao (Raspberry Pi 3B+) và tầng thu thập cảm biến cơ sở (Arduino Uno R3) nhằm ngăn chặn hiện tượng quá tải CPU và bảo vệ chân GPIO 3.3V của vi xử lý trước điện áp 5V từ cảm biến ngoại vi.

       [ Vệ tinh GPS NAVSTAR ]
                 |
                 | (Sóng UHF L1 1575.42 MHz)
                 v
        +------------------+
        |  GY-NEO 6M V2    |
        +--------+---------+
                 | (UART 9600 bps - NMEA Sentences)
                 v
        +------------------+
        | Arduino Uno R3   |
        | (ATmega328P 16M) |
        +--------+---------+
                 | (UART USB Serial - Data Filtered)
                 v
+----------------+-------------------------------------------------------+
| Raspberry Pi 3 Model B+ (Broadcom BCM2837B0 Quad-Core @ 1.4GHz)        |
|                                                                       |
|  [ Linux Raspbian OS ] <---> [ Python Web/Socket Server Engine ]      |
|                                         |                             |
|          +------------------------------+--------------------+        |
|          | (PWM @ 50Hz)                                      |        |
|          v                                                   v        |
|  +---------------+                                   +---------------+|
|  | Module L298N  |                                   |  RC Servo 9g  ||
|  +-------+-------+                                   |  SG90         ||
|          |                                           +---------------+|
|          v                                                            |
|   [ 4x DC Motors ]                                                    |
+-----------------------------------------------------------------------+

Bảng đặc tả ngăn xếp công nghệ (Technology Stack)

Thành phần Phần cứng / Phần mềm Thông số kỹ thuật chi tiết
Vi xử lý trung tâm Raspberry Pi 3 Model B+ SoC Broadcom BCM2837B0, Quad-core Cortex-A53 64-bit @1.4GHz, 1GB LPDDR2, WiFi 2.4/5GHz
Vi điều khiển phụ Arduino Uno R3 MCU ATmega328P 8-bit @16MHz, 32KB Flash, 2KB SRAM, 1KB EEPROM, 14 Digital I/O
Mạch lái công suất L298N Dual H-Bridge IC L298, điện áp kích 5-30VDC, dòng tải đỉnh 2A/cầu H, công suất tiêu tán 25W
Module định vị U-blox GY-NEO 6M V2 Tần số L1 1575.42MHz, Baudrate 9600 bps, Anten gốm tích hợp, bộ nhớ EEPROM
Cơ cấu chấp hành RC Servo SG90 & DC Gear Servo góc quay 180° (0.3s/60°), 4 động cơ DC giảm tốc cấp nguồn 11.1V
Module âm thanh ISD1820 Voice Recorder Ghi/phát 10s, tích hợp Micro và mạch khuếch đại âm thanh, lưu trữ EEPROM 100 năm
Môi trường phần mềm Raspbian Linux / Python 3.7 Socket Server, thư viện RPi.GPIO, pyserial, giao thức truyền thông JSON/REST
Nền tảng App di động MIT App Inventor 2 Android SDK, SpeechRecognizer Component, Google Maps JavaScript/Static API

Tính toán thiết kế điện và điều khiển PWM

  1. Điều khiển băm xung tốc độ động cơ (L298N): Tần số kích chọn định mức $f = 50\text{ Hz} \implies \text{Chu kỳ } T = \frac{1}{f} = 0.02\text{ s} = 20\text{ ms}$. Thiết lập hệ số chu kỳ làm việc (Duty Cycle - $DC$) ở mức $40%$ nhằm tối ưu mô-men xoắn khởi động: $$t_{on} = DC \times T = 0.4 \times 20\text{ ms} = 8\text{ ms}$$ $$t_{off} = T - t_{on} = 20\text{ ms} - 8\text{ ms} = 12\text{ ms}$$

  2. Điều khiển góc quay Servo mở nắp thùng rác: Góc mở nắp thùng $\theta \in [0^\circ, 90^\circ]$ tương ứng chu kỳ xung kích từ $1.0\text{ ms}$ đến $2.0\text{ ms}$. Công thức chuyển đổi Duty Cycle trên Raspberry Pi: $$DC_{\text{servo}} = \frac{\theta}{18} + 2 \quad (%)$$ Khi mở nắp $\theta = 90^\circ \implies DC_{\text{servo}} = \frac{90}{18} + 2 = 7.0%$.

Phương pháp nghiên cứu và phát triển

Dự án áp dụng mô hình phát triển tích hợp phần cứng - phần mềm (V-Model Iteration):

  • Giai đoạn 1 (Tuần 1 - 3): Phân tích sơ đồ chân GPIO, thiết kế nguồn cách ly giữa khối tính toán và khối công suất động cơ.
  • Giai đoạn 2 (Tuần 4 - 7): Lập trình vi điều khiển Arduino giải mã NMEA chuỗi $GPRMC, $GPGGA từ GPS GY-NEO 6M; xây dựng Web Server trên nền Python tại Raspberry Pi.
  • Giai đoạn 3 (Tuần 8 - 10): Thiết kế giao diện App Android trên MIT App Inventor 2, tích hợp khối nhận dạng giọng nói tự động (ASR).
  • Giai đoạn 4 (Tuần 11 - 14): Lắp ráp cơ khí, cân chỉnh góc quét servo, kiểm thử thực địa và đo đạc độ trễ truyền thông.

Thực thi và Kết quả thực nghiệm

Quy trình phát triển phần mềm và Mã nguồn cốt lõi

Hệ thống sử dụng một Socket/Web Server viết bằng Python 3 trên Raspberry Pi nhằm lắng nghe các gói tin điều khiển từ điện thoại gửi về thông qua cổng mạng TCP.

# Server điều phối trung tâm trên Raspberry Pi (control_server.py)
import RPi.GPIO as GPIO
import socket
import serial
import time

# Cấu hình GPIO theo chuẩn BCM
IN1, IN2 = 23, 24  # Động cơ bên phải
IN3, IN4 = 5, 12   # Động cơ bên trái
ENA, ENB = 6, 26   # Kích hoạt xung PWM
SERVO_PIN = 17     # Servo SG90 nắp thùng rác

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
for pin in [IN1, IN2, IN3, IN4, ENA, ENB, SERVO_PIN]:
    GPIO.setup(pin, GPIO.OUT)

# Khởi tạo PWM 50Hz cho động cơ và Servo
pwm_a = GPIO.PWM(ENA, 50)
pwm_b = GPIO.PWM(ENB, 50)
pwm_servo = GPIO.PWM(SERVO_PIN, 50)
pwm_a.start(40) # Duty cycle 40%
pwm_b.start(40)
pwm_servo.start(0)

# Khởi tạo giao tiếp UART với Arduino Uno để đọc GPS
ser_arduino = serial.Serial('/dev/ttyACM0', 9600, timeout=1)

def set_movement(state):
    if state == "FORWARD":
        GPIO.output(IN1, GPIO.HIGH); GPIO.output(IN2, GPIO.LOW)
        GPIO.output(IN3, GPIO.HIGH); GPIO.output(IN4, GPIO.LOW)
    elif state == "BACKWARD":
        GPIO.output(IN1, GPIO.LOW); GPIO.output(IN2, GPIO.HIGH)
        GPIO.output(IN3, GPIO.LOW); GPIO.output(IN4, GPIO.HIGH)
    elif state == "LEFT":
        GPIO.output(IN1, GPIO.HIGH); GPIO.output(IN2, GPIO.LOW)
        GPIO.output(IN3, GPIO.LOW); GPIO.output(IN4, GPIO.LOW)
    elif state == "RIGHT":
        GPIO.output(IN1, GPIO.LOW); GPIO.output(IN2, GPIO.LOW)
        GPIO.output(IN3, GPIO.HIGH); GPIO.output(IN4, GPIO.LOW)
    elif state == "STOP":
        GPIO.output(IN1, GPIO.LOW); GPIO.output(IN2, GPIO.LOW)
        GPIO.output(IN3, GPIO.LOW); GPIO.output(IN4, GPIO.LOW)

def control_lid(action):
    if action == "OPEN":
        pwm_servo.ChangeDutyCycle(7.0) # Góc 90 độ
    elif action == "CLOSE":
        pwm_servo.ChangeDutyCycle(2.0) # Góc 0 độ
    time.sleep(0.5)
    pwm_servo.ChangeDutyCycle(0)

# Khởi tạo Server Socket lắng nghe kết nối
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('192.168.1.50', 8080))
server_socket.listen(5)

while True:
    client, addr = server_socket.accept()
    data = client.recv(1024).decode('utf-8').strip()
    if data in ["FORWARD", "BACKWARD", "LEFT", "RIGHT", "STOP"]:
        set_movement(data)
    elif data in ["OPEN", "CLOSE"]:
        control_lid(data)
    elif data == "GET_GPS":
        # Truy vấn chuỗi kinh độ, vĩ độ từ Arduino
        if ser_arduino.in_waiting > 0:
            gps_data = ser_arduino.readline().decode('utf-8')
            client.send(gps_data.encode('utf-8'))
    client.close()

Mã nguồn trên Arduino Uno R3 tiếp nhận dữ liệu NMEA trực tiếp từ module GY-NEO 6M qua SoftwareSerial tại chân D2/D3, trích xuất hai tham số LatitudeLongitude chuẩn xác trước khi truyền tải lên vi xử lý chính:

// Thuật toán trích xuất tọa độ GPS trên Arduino Uno R3 (gps_parser.ino)
#include <SoftwareSerial.h>
#include <TinyGPS++.h>

SoftwareSerial gpsSerial(2, 3); // RX = D2, TX = D3 (Kết nối TX Module GPS vào D2)
TinyGPSPlus gps;

void setup() {
  Serial.begin(9600);    // Giao tiếp UART với Raspberry Pi
  gpsSerial.begin(9600); // Giao tiếp UART với GY-NEO 6M
}

void loop() {
  while (gpsSerial.available() > 0) {
    if (gps.encode(gpsSerial.read())) {
      if (gps.location.isValid()) {
        Serial.print(gps.location.lat(), 6);
        Serial.print(",");
        Serial.println(gps.location.lng(), 6);
      }
    }
  }
}

Kiểm thử và Đánh giá hiệu năng

+-----------------------------------------------------------------------------------+
|                        KẾT QUẢ ĐO ĐẠC ĐỘ TRỄ HỆ THỐNG (MS)                         |
|                                                                                   |
|  Manual HTTP Command    [███] 45ms                                                |
|  Voice Command (STT)    [██████████████████] 285ms                                |
|  GPS Data Stream Round  [████████████] 190ms                                      |
|  Servo Action Reaction  [████████] 120ms                                          |
+-----------------------------------------------------------------------------------+

Bảng thông số kiểm thử thực tế

Kịch bản kiểm thử Môi trường thử nghiệm Số mẫu Tỷ lệ thành công (%) Độ trễ trung bình
Điều khiển nút bấm Manual Mạng WiFi cục bộ 2.4GHz 100 lần 99.0% $45\text{ ms} \pm 8\text{ ms}$
Nhận dạng giọng nói (Google STT) Phòng thí nghiệm yên tĩnh (<45dB) 50 câu lệnh 96.0% $285\text{ ms} \pm 35\text{ ms}$
Nhận dạng giọng nói (Ngoại cảnh) Ngoài đường phố có tiếng ồn (>70dB) 50 câu lệnh 84.0% $340\text{ ms} \pm 50\text{ ms}$
Khóa vị trí GPS vệ tinh (Cold start) Không gian ngoài trời thoáng đãng 10 lần 100% $22\text{ phút}$ (Sai số $<6.5\text{m}$)
Khóa vị trí GPS vệ tinh (Cold start) Trong nhà xưởng bán kiên cố 10 lần 60.0% $44\text{ phút}$ (Sai số $<12.8\text{m}$)

Kết quả đạt được so với mục tiêu ban đầu

  1. Khả năng điều khiển chuyển động: Xe phản hồi chính xác 5 trạng thái cơ bản (Tiến, Lùi, Rẽ Trái, Rẽ Phải, Dừng lại) từ cả lệnh bấm màn hình và câu lệnh thoại tiếng Việt (ví dụ: "xe tiến lên", "xe dừng lại").
  2. Hệ thống cấp nguồn phân đoạn: Thiết kế thành công 2 kênh nguồn độc lập: Khối vi xử lý dùng pin Lithium Power Pack 3800mAh (đạt thời lượng hoạt động liên tục 8.5 giờ), Khối động cơ dùng bộ 3 cell Li-ion 18650 mắc nối tiếp ($11.1\text{V} - 2600\text{mAh}$) đáp ứng dòng xả tức thời $2.6\text{A}$ mà không gây sụt áp làm reset Raspberry Pi.
  3. Hiển thị trực quan Telemetry: Bản đồ số trên ứng dụng Android tự động cập nhật marker vị trí mỗi khi nhận chuỗi kinh độ/vĩ độ, hỗ trợ người vận hành giám sát xe ngoài tầm nhìn trực tiếp (Non-Line-of-Sight - NLOS).

Đổi mới và Đóng góp kỹ thuật

Đóng góp mang tính giải pháp

  • Kiến trúc xử lý cảm biến bất đối xứng (Asymmetric Sensor Offloading): Việc sử dụng Arduino Uno làm bộ lọc trung gian cho module GPS GY-NEO 6M giúp giải phóng hoàn toàn luồng I/O của Raspberry Pi, hạn chế lỗi tràn bộ đệm UART khi hệ điều hành Raspbian thực hiện đa tác vụ web server.
  • Tối ưu hóa năng lượng cơ cấu chấp hành: Áp dụng kỹ thuật ngắt chu kỳ xung PWM servo (pwm_servo.ChangeDutyCycle(0)) ngay sau khi đạt góc quay $90^\circ$, giúp triệt tiêu hiện tượng rung giật (jittering) và giảm $92%$ điện năng tiêu thụ tĩnh tại cuộn dây servo.
  • Giải pháp chi phí thấp cho Đô thị thông minh: Toàn bộ hệ thống được xây dựng từ các linh kiện COTS (Commercial Off-The-Shelf), giúp tổng chi phí sản xuất thấp hơn $95%$ so với các robot thu gom tự hành nhập khẩu.
Giải pháp kỹ thuật Công nghệ cũ (Robot công nghiệp) Cải tiến trong đồ án Lợi ích định lượng
Giao tiếp tầm xa Sóng RC / Bluetooth 10-20m WiFi TCP/IP + Internet Routing Bán kính mở rộng gấp $5 - 10$ lần
Xử lý tiếng nói Mạch giải mã cứng Offline đắt tiền Cloud Google Speech-to-Text API Nhận diện tiếng Việt tự nhiên đạt $96%$
Nền tảng ứng dụng Bộ điều khiển phần cứng riêng biệt App di động Android tùy biến Giảm $100%$ chi phí mua remote rời

Ứng dụng thực tế và Triển khai

+-----------------------------------------------------------------------------------+
|                        LỘ TRÌNH TRIỂN KHAI HỆ THỐNG (ROADMAP)                     |
|                                                                                   |
|  Giai đoạn 1: Chuẩn bị phần cứng, nạp firmware Raspberry Pi OS & Arduino           |
|  [==========================>] 100%                                              |
|                                                                                   |
|  Giai đoạn 2: Thử nghiệm mạng WLAN nội bộ trong khuôn viên trường học/bệnh viện   |
|  [==========================>] 100%                                              |
|                                                                                   |
|  Giai đoạn 3: Tích hợp module 4G LTE SIM808 & Camera quan sát thời gian thực      |
|  [=====================>     ] 70%                                               |
|                                                                                   |
|  Giai đoạn 4: Nâng cấp khung gầm công nghiệp, tích hợp sạc tự động                |
|  [==========>                ] 35%                                               |
+-----------------------------------------------------------------------------------+

Kịch bản ứng dụng thực tế

  1. Khu cách ly y tế và Bệnh viện: Thu gom rác thải nguy hại, bông băng gạc lây nhiễm mà không cần nhân viên y tế bước vào phòng bệnh có nồng độ virus cao.
  2. Khuôn viên nhà máy, trường học, công viên: Thu gom lá cây, rác thải nhẹ định kỳ trên các cung đường nội bộ theo sự điều phối từ phòng quản trị trung tâm.
  3. Khu vực cống rãnh, hầm chứa hóa chất: Tiếp cận các vị trí có khí độc ($CO, H_2S$) gây nguy hiểm đến tính mạng con người.

Yêu cầu triển khai và Hướng dẫn cấu hình

  • Yêu cầu hạ tầng: Mạng WiFi chuẩn 802.11 b/g/n (hoặc phát Hotspot từ điện thoại di động) với băng thông tối thiểu $1\text{ Mbps}$.
  • Cấu hình trạm xe:
    1. Cài đặt hệ điều hành Raspbian Buster Lite lên thẻ nhớ MicroSD Class 10 (tối thiểu 16GB).
    2. Kích hoạt giao tiếp SSH, I2C và Serial thông qua lệnh sudo raspi-config.
    3. Cài đặt các gói phụ thuộc: sudo apt-get install python3-pip python3-serial && pip3 install RPi.GPIO.
    4. Thiết lập file dịch vụ systemd để tự động chạy control_server.py ngay khi cấp nguồn.

Hạn chế và Hướng phát triển

Hạn chế kỹ thuật hiện tại

  • Độ nhạy GPS trong nhà: Module GY-NEO 6M sử dụng anten gốm thụ động kích thước nhỏ ($12 \times 12\text{ mm}$), dẫn đến thời gian Time To First Fix (TTFF) kéo dài nếu xe hoạt động trong môi trường có nhiều nhà cao tầng hoặc tán cây dày đặc.
  • Giới hạn phạm vi phát sóng WiFi: Khoảng cách điều khiển phụ thuộc vào tầm phủ sóng Access Point ($50 - 80\text{ m}$).
  • Khả năng tự hành: Xe chưa tích hợp cảm biến đo cự ly (như cảm biến siêu âm HC-SR04) để tự động dừng khẩn cấp khi gặp chướng ngại vật bất ngờ.

Hướng nâng cấp trong tương lai

  1. Nâng cấp truyền thông di động: Thay thế khối WiFi bằng module 4G/5G LTE (như SIM7600E hoặc SIM808) kết hợp giao thức MQTT/WebRTC, cho phép điều khiển xe không giới hạn khoảng cách địa lý qua Internet.
  2. Tích hợp thị giác máy tính (Edge AI): Gắn Camera Raspberry Pi V2 kết hợp mô hình học sâu rút gọn YOLOv5-Nano để tự động nhận dạng rác thải trên đường và phân loại sơ bộ (rác vô cơ / rác hữu cơ).
  3. Hệ thống truyền động công nghiệp: Nâng cấp khung gầm nhôm định hình, sử dụng động cơ DC chổi than công suất lớn có gắn Encoders hồi tiếp vòng lặp kín để ổn định vận tốc khi vượt địa hình dốc.

Đối tượng hưởng lợi

+-----------------------------------------------------------------------------------+
|                        GIÁ TRỊ MANG LẠI CHO CÁC NHÓM ĐỐI TƯỢNG                    |
+------------------------------------+----------------------------------------------+
| SINH VIÊN KỸ THUẬT & NGHIÊN CỨU    | - Nguồn tài liệu mẫu về lập trình IoT lai    |
|                                    |   (Raspberry Pi + Arduino + App Inventor)    |
|                                    | - Phương pháp tính toán PWM thực tế          |
+------------------------------------+----------------------------------------------+
| KỸ SƯ HỆ THỐNG NHÚNG               | - Thiết kế mạch chống xung đột điện áp       |
|                                    | - Kỹ thuật tối ưu hóa ngắt dòng tiêu thụ     |
+------------------------------------+----------------------------------------------+
| DOANH NGHIỆP DỊCH VỤ MÔI TRƯỜNG   | - Mô hình thử nghiệm tự động hóa giá rẻ      |
|                                    | - Giảm thiểu 100% phơi nhiễm rác độc hại     |
+------------------------------------+----------------------------------------------+
  • Sinh viên & Giảng viên ngành Điện tử - Viễn thông, IoT: Cung cấp tài liệu thực hành hoàn chỉnh về việc tích hợp hệ thống nhúng đa nền tảng, kỹ thuật giao tiếp liên vi điều khiển (Inter-MCU Serial Communication) và thuật toán giải mã chuẩn NMEA GPS.
  • Kỹ sư phát triển sản phẩm: Nắm bắt mô hình triển khai máy chủ dịch vụ điều khiển siêu nhẹ trên Linux nhúng kết hợp ứng dụng di động kéo thả.
  • Công nhân và Đơn vị vận hành môi trường: Minh chứng giải pháp cách ly an toàn cho người lao động trong các môi trường thu gom rác thải nguy hại.

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

1. Hệ thống cần những yêu cầu kỹ thuật tối thiểu nào để có thể triển khai vận hành?

Xe yêu cầu 01 bo mạch Raspberry Pi 3 Model B+ (chạy HĐH Raspbian Linux), 01 Arduino Uno R3, 01 module L298N, 01 module GPS GY-NEO 6M, bộ nguồn cấp gồm pin dự phòng 5V (cho RPi) và 3 cell pin Li-ion 18650 nối tiếp 11.1V (cho động cơ). Phía người dùng cần 01 điện thoại Android chạy phiên bản 6.0 trở lên, có kết nối chung mạng WiFi với xe.

2. Tại sao đồ án không nối trực tiếp Module GPS vào Raspberry Pi mà phải qua Arduino Uno R3?

Việc kết nối qua Arduino Uno R3 giải quyết 2 vấn đề cốt lõi: Thứ nhất, module GPS thường xuất mức logic 5V ở chân Tx, nếu nối trực tiếp vào GPIO 3.3V của Raspberry Pi dễ gây hỏng cổng phần cứng nếu không có mạch chia áp (Logic Level Shifter). Thứ hai, Arduino xử lý việc đọc liên tục chuỗi ký tự NMEA UART, chỉ gửi dữ liệu đã xử lý sạch sang Pi, giúp tối ưu tài nguyên CPU của Raspberry Pi để phục vụ Web Server mượt mà.

3. Làm thế nào để điều khiển xe khi vượt ra khỏi tầm phủ sóng của mạng WiFi gia đình?

Trong thực tế triển khai ngoài đường phố, người dùng có thể bật tính năng Điểm phát sóng di động (Mobile Hotspot 4G/5G) ngay trên chính chiếc Smartphone điều khiển. Bo mạch Raspberry Pi được cấu hình lưu sẵn SSID và Password của Hotspot này sẽ tự động kết nối trong vòng 10 giây sau khi khởi động.

4. Tỷ lệ chính xác khi nhận diện giọng nói tiếng Việt phụ thuộc vào những yếu tố nào?

Độ chính xác phụ thuộc chủ yếu vào: (1) Chất lượng micro thu âm trên điện thoại và khả năng lọc ồn môi trường xung quanh; (2) Tốc độ đường truyền Internet tới máy chủ Google Speech API; (3) Cách phát âm của người dùng theo các từ khóa chuẩn đã được lập trình trong thuật toán so khớp chuỗi ("tiến", "lùi", "trái", "phải", "dừng").

5. Chi phí linh kiện chế tạo mô hình xe hoàn chỉnh là bao nhiêu?

Tổng chi phí linh kiện phần cứng (Raspberry Pi 3B+, Arduino Uno R3, Module GPS, L298N, Servo SG90, ISD1820, động cơ, pin và khung gầm) dao động trong khoảng 1.800.000 đến 2.300.000 VNĐ, chỉ bằng khoảng $2 - 5%$ so với các kit robot nghiên cứu nhập khẩu trên thị trường.


Kết luận

Đề tài "Điều khiển xe thu gom rác thải từ xa bằng Smartphone" của sinh viên Phạm Trí Nhân và Trịnh Quốc Toản (Khoa Đào tạo Chất lượng cao, Trường ĐH Sư phạm Kỹ thuật TP.HCM) dưới sự hướng dẫn của ThS. Nguyễn Ngô Lâm đã hoàn thiện thành công một mô hình thực nghiệm tiêu biểu cho xu hướng ứng dụng IoT trong giải quyết các vấn đề an sinh môi trường. Dự án đã chứng minh tính khả thi vượt trội trong việc kết hợp giữa phần cứng nhúng mở, xử lý tiếng nói thông minh qua nền tảng di động và hệ thống định vị toàn cầu thời gian thực.

Với nền tảng phần mềm mã nguồn mở và kiến trúc phần cứng module hóa, đề tài mở ra tiềm năng ứng dụng thực tiễn to lớn trong việc nâng cấp thành các phương tiện vệ sinh bán tự động cho bệnh viện, nhà máy và đô thị thông minh trong kỷ nguyên chuyển đổi số.