Giới thiệu dự án

Trong kỷ nguyên Công nghiệp 4.0 và chuyển đổi số, các hệ thống nhúng thông minh và phương tiện tự hành (Unmanned Ground Vehicles - UGV) đóng vai trò then chốt trong tự động hóa nhà máy, cứu hộ cứu nạn và khảo sát môi trường nguy hiểm. Theo báo cáo từ MarketsandMarkets, thị trường xe tự hành không người lái toàn cầu đạt quy mô 2.7 tỷ USD vào năm 2022 và dự kiến tăng trưởng với tốc độ CAGR 14.5% trong giai đoạn 2023–2028. Tuy nhiên, việc phát triển các nền tảng điều khiển nhúng vừa đảm bảo tính thời gian thực (Real-Time), vừa có khả năng xử lý song song phần cứng, đồng thời tích hợp giao diện điều khiển trực quan từ xa qua mạng không dây vẫn là thách thức lớn đối với các kỹ sư cơ điện tử và kỹ thuật máy tính.

Đồ án tốt nghiệp "Điều khiển xe từ xa sử dụng KIT NI myRIO" của nhóm tác giả Phan Tấn Anh và Nguyễn Anh Tuấn (Khoa Cơ khí Chế tạo máy / Khoa Đào tạo Chất lượng cao, Trường Đại học Sư phạm Kỹ thuật TP.HCM; GVHD: ThS. Nguyễn Ngô Lâm) giải quyết trực tiếp các điểm nghẽn kỹ thuật sau:

  • Độ trễ điều khiển cao và tầm truyền dữ liệu ngắn của các giao thức không dây truyền thống như RF/Bluetooth HC-05 (băng thông thấp < 1 Mbps, cự ly < 10m).
  • Sự thiếu hụt khả năng xử lý song song thời gian thực ở các vi điều khiển 8-bit/32-bit truyền thống khi phải đồng thời xử lý tín hiệu analog từ cảm biến khoảng cách, điều chế xung PWM cho động cơ/servo, và phân tích dữ liệu định vị toàn cầu GPS.
  • Khó khăn trong việc xây dựng giao diện tương tác người - máy (HMI) đa nền tảng linh hoạt mà không cần tốn nhiều chu kỳ phát triển ứng dụng di động bản địa (Native Android Apps).
+-----------------------------------------------------------------------+
|                          HỆ THỐNG ĐIỀU KHIỂN XE                       |
|                                                                       |
|  [ Máy tính bảng Android ]  <--- Wi-Fi (Shared Variables) --->        |
|  (NI Data Dashboard v2.2)                                             |
|                                                                       |
|                                [ NI myRIO-1900 ]                      |
|                                +-- Dual-Core ARM Cortex-A9 (667MHz)   |
|                                +-- Xilinx Zynq-7010 FPGA              |
|                                                                       |
|         +-----------------------+----------------------+              |
|         | (PWM / GPIO)          | (ADC / 500kS/s)      | (UART 115k)  |
|         v                       v                      v              |
|   [ Mạch Cầu H L298N ]    [ Cảm biến IR ]       [ Module SIM808 ]    |
|   [ & Servo GWS S03N ]    (Tránh vật cản)       (GPS / GPRS / GSM)   |
+-----------------------------------------------------------------------+

Mục tiêu nghiên cứu cụ thể

  1. Làm chủ công nghệ SoC Zynq-7010: Khai thác kiến trúc xử lý kép kết hợp giữa lõi xử lý Dual-core ARM Cortex-A9 (667 MHz) và mảng logic lập trình được FPGA với 28.000 Logic Cells trên bo mạch NI myRIO-1900.
  2. Lập trình luồng dữ liệu đồ họa (G-Code): Ứng dụng môi trường LabVIEW 2014 Real-Time để xây dựng kiến trúc máy trạng thái hữu hạn (Finite State Machine - FSM) điều khiển phương tiện đa luồng không tắc nghẽn.
  3. Thiết lập giao thức truyền thông Wi-Fi & Shared Variables: Kết nối máy tính bảng Android qua ứng dụng NI Data Dashboard, biến thiết bị di động thành trạm điều khiển mặt đất (Ground Control Station) với độ trễ truyền gói tin dưới 35 ms.
  4. Tích hợp cảm biến và thuật toán tránh vật cản tự động: Xử lý tín hiệu analog từ cảm biến hồng ngoại (IR Sensor) qua bộ ADC 12-bit (500 kS/s) để quét và phát hiện vật cản ở ngưỡng cách 25 cm, tự động điều hướng góc lái Servo GWS S03N STD.
  5. Định vị và giám sát tọa độ địa lý: Tích hợp module GSM/GPRS/GPS SIM808 qua giao tiếp UART (Baud rate 115200 bps), trích xuất chuẩn dữ liệu NMEA 0183 phục vụ theo dõi hành trình xe theo thời gian thực.

Phương pháp tiếp cận và Phạm vi

  • Phương pháp: Kết hợp mô hình thiết kế hướng luồng dữ liệu (Dataflow Paradigm) với phần cứng nhúng thời gian thực (Hard Real-Time Hardware-in-the-Loop).
  • Phạm vi triển khai: Phương tiện 2 bánh chủ động dẫn động qua mạch cầu đôi H-Bridge L298N và 1 bánh lái chuyển hướng điều khiển bằng động cơ Servo, hoạt động trong môi trường phát Wi-Fi Access Point độc lập của myRIO (bán kính phủ sóng lên đến 150m trong điều kiện trực diện Line-of-Sight).

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 Nền tảng Arduino Uno / Mega + Bluetooth Nền tảng Raspberry Pi 3 Model B + Python Nền tảng NI myRIO-1900 + LabVIEW (Đồ án)
Kiến trúc xử lý Vi điều khiển 8-bit AVR đơn nhân (16 MHz) Vi xử lý 4 nhân ARM Cortex-A53 (1.2 GHz) Vi xử lý lõi kép ARM Cortex-A9 (667 MHz) + FPGA Xilinx Zynq-7010
Tính thời gian thực Deterministic thấp, dễ nghẽn khi polling nhiều cảm biến Hệ điều hành Linux chuẩn (Non-RTOS), Jitter cao NI Linux Real-Time OS + FPGA cứng, Jitter xung < 1 µs
Băng thông & Kết nối Bluetooth 2.0 (tốc độ truyền tối đa ~2.1 Mbps, cự ly < 10m) Wi-Fi 802.11n, Bluetooth 4.1 Wi-Fi IEEE 802.11 b/g/n (tần số 2.4 GHz, công suất +10 dBm, cự ly 150m)
Bộ chuyển đổi ADC 10-bit, 15 kS/s, chia sẻ kênh Không tích hợp ADC (cần module MCP3008 ngoài) 12-bit, tốc độ lấy mẫu cực cao 500 kS/s, bảo vệ quá áp ±16V
Thời gian tạo HMI Thủ công (viết app Android/Flutter riêng biệt) Viết web dashboard (Flask/NodeJS/WebSocket) Kéo thả trực quan qua NI Data Dashboard & Network Shared Variables

Ma trận ưu tiên yêu cầu kỹ thuật (MoSCoW)

  • Must-have (Bắt buộc có):
    • Điều khiển chuyển động tiến/lùi, dừng khẩn cấp qua mạch cầu H L298N.
    • Điều khiển góc bẻ lái góc ±60° của bánh trước sử dụng xung PWM điều khiển Servo GWS S03N STD.
    • Chuyển đổi linh hoạt giữa 2 chế độ: Thủ công (Manual Mode) và Tự động tránh chướng ngại vật (Autonomous Obstacle Avoidance Mode).
    • Thu nhận chuỗi NMEA từ SIM808 để lấy tọa độ Vĩ độ (Latitude), Kinh độ (Longitude).
  • Should-have (Nên có): Giao diện điều khiển cảm ứng không dây trên Android thông qua Network Published Shared Variables. Tần số cập nhật vị trí và cảm biến đạt tối thiểu 10 Hz.
  • Could-have (Có thể có): Cơ chế tự động lùi xe 3 giây và quét góc 2 hướng (Trái/Phải) khi gặp đường cụt.
  • Won't-have (Chưa thực hiện đợt này): Truyền luồng video trực tiếp từ camera và thuật toán SLAM bằng LiDAR.

Thiết kế hệ thống

graph TD
    A[Giao diện Android - NI Data Dashboard] -->|Wi-Fi 802.11 b/g/n - Shared Variables TCP/IP| B[NI myRIO-1900 Controller]
    
    subgraph "Xử lý trung tâm NI myRIO (Zynq-7010)"
        B --> C[ARM Cortex-A9 Real-Time Engine]
        C <--> D[FPGA I/O Core]
    end
    
    D -->|PWM Chân 27/MSP| E[Servo GWS S03N - Bẻ lái]
    D -->|Digital Out Chân 18, 22, 24 / Port MXP A| F[Driver Cầu H L298N]
    F --> G[Động cơ DC 12V Trục sau]
    
    H[Cảm biến hồng ngoại IR Sharp] -->|Analog Input AI0 / MXP A| D
    I[Module SIM808 GPS/GSM] -->|UART Rx/Tx 115200 bps / MXP B| D
    
    J[Nguồn Pin Li-ion 12V] -->|Buck DC-DC LM2596| K[Nguồn 5V DC Hệ thống]
    J -->|Cấp nguồn trực tiếp| F
    J -->|Cấp nguồn Jack DC 6-16V| B

Chi tiết Tech Stack và Cấu hình phần cứng

  1. Phần mềm & Môi trường phát triển:
    • LabVIEW 2014 SP1 (v14.0): Lập trình hệ thống thời gian thực, điều phối vòng lặp điều khiển chính (Deterministic Control Loop).
    • NI-RIO Device Drivers 2014: Quản lý giao tiếp thanh ghi I/O và nạp bitfile cấu hình cho FPGA Zynq.
    • NI Measurement & Automation Explorer (NI MAX v14.0): Thiết lập mạng, gán IP tĩnh (172.22.11.2 qua USB hoặc Subnet DHCP qua Wi-Fi) và quản lý firmware myRIO.
    • NI Data Dashboard for Android (v2.2): Xây dựng giao diện hiển thị trạng thái và nút bấm, cần gạt ảo (Slider/Switch).
  2. Phần cứng và Giao tiếp ngoại vi:
    • NI myRIO-1900: Vi xử lý 667 MHz Dual-Core ARM Cortex-A9, DDR3 512MB, Bộ nhớ Flash 256MB, FPGA 28k logic cells.
    • Mạch cầu H L298N: Dải điện áp hoạt động +5V đến +35V, dòng đỉnh 2A mỗi kênh, tổn hao công suất 20W, điều khiển động cơ DC giảm tốc 12V.
    • Servo GWS S03N STD: Điện áp 4.8V–6.0V, mô-men xoắn 3.8 kg.cm tại 4.8V, thời gian đáp ứng 0.18s/60°.
    • Cảm biến khoảng cách hồng ngoại (IR Sensor): Tín hiệu ngõ ra Analog điện áp 0.4V–3.1V tương ứng cự ly 10cm–80cm.
    • Module SIM808 GSM/GPRS/GPS: Tích hợp bộ thu GPS độ nhạy cao -165dBm, giao tiếp qua tập lệnh AT Command chuẩn NMEA 0183.
+-----------------------------------------------------------------------------------+
|               BẢN ĐỒ KẾT NỐI CHÂN TÍN HIỆU TRÊN CỔNG MXP A & MXP B               |
+-------------------+-----------------+-----------------------+---------------------+
| Thiết bị ngoại vi | Chân myRIO      | Loại tín hiệu         | Chức năng           |
+-------------------+-----------------+-----------------------+---------------------+
| Driver L298N      | MXP A / DIO 0   | Digital Output (3.3V) | ENA (Cho phép cầu A)|
| Driver L298N      | MXP A / DIO 1   | Digital Output (3.3V) | IN1 (Chiều tiến)    |
| Driver L298N      | MXP A / DIO 2   | Digital Output (3.3V) | IN2 (Chiều lùi)     |
| Servo GWS S03N    | MXP A / PWM 0   | PWM Out (50 Hz)       | Tín hiệu bẻ lái     |
| Cảm biến IR       | MXP A / AI 0    | Analog In (0 - 5V)    | Đọc khoảng cách     |
| Module SIM808     | MXP B / UART.RX | UART Input            | Nhận dữ liệu NMEA   |
| Module SIM808     | MXP B / UART.TX | UART Output           | Gửi tập lệnh AT     |
+-------------------+-----------------+-----------------------+---------------------+

Phương pháp quản lý và Quy trình phát triển (Methodology)

Dự án áp dụng mô hình phát triển gia tăng lặp (Iterative Waterfall Model kết hợp Agile Sprints) trong 19 tuần (14/03/2016 – 26/07/2016):

  • Giai đoạn 1 (Tuần 1–4): Nghiên cứu lý thuyết kiến trúc LabVIEW G-code, cấu trúc thanh ghi FPGA myRIO, tập lệnh AT Command module SIM808 và datasheet linh kiện.
  • Giai đoạn 2 (Tuần 5–9): Thiết kế khung xe, tính toán nguồn pin Li-ion 3S (11.1V - 12.6V, 2200 mAh), lắp ráp phần cứng cơ khí, mạch cầu H và cơ cấu servo lái.
  • Giai đoạn 3 (Tuần 10–14): Lập trình các khối chức năng con (SubVI): SubVI_Motor_Control.vi, SubVI_Servo_PWM.vi, SubVI_IR_ADC_Read.vi, SubVI_GPS_Parser.vi.
  • Giai đoạn 4 (Tuần 15–17): Cấu hình Network Shared Variables, thiết kế giao diện HMI trên máy tính bảng Android bằng NI Data Dashboard, tối ưu hóa thuật toán định vị và tránh vật cản.
  • Giai đoạn 5 (Tuần 18–19): Chạy thử nghiệm thực địa, đo đạc thông số kỹ thuật (Latency, dòng tiêu thụ, độ nhạy GPS), tinh chỉnh thuật toán và hoàn thiện tài liệu đồ án.

Ma trận đánh giá và kiểm soát rủi ro

Rủi ro kỹ thuật tiềm ẩn Mức độ Biện pháp giảm thiểu & Giải pháp thiết kế
Sụt áp hệ thống khi động cơ DC khởi động gây Reset myRIO Cao Tách biệt hoàn toàn nguồn động lực 12V và nguồn nuôi logic qua IC ổn áp DC-DC LM2596-5.0, bổ sung tụ lọc 1000 µF/25V tại đầu vào L298N.
Treo chuỗi truyền UART do dữ liệu NMEA trả về quá nhanh Trung bình Sử dụng bộ đệm vòng FIFO kích thước 1024 bytes trong LabVIEW Real-Time; đọc dữ liệu ngắt quãng theo chu kỳ 200ms.
Mất gói tin Shared Variables khi khoảng cách Wi-Fi tăng cao Trung bình Tích hợp cơ chế kiểm tra nhịp tim (Heartbeat Signal). Nếu mất kết nối quá 1.5 giây, hệ thống tự động ngắt chân ENA/ENB để dừng xe an toàn.

Implementation và kết quả

Chi tiết thuật toán và Cấu trúc mã nguồn

Hệ thống được thiết kế theo mô hình Producer-Consumer Pattern kết hợp State Machine nhằm đảm bảo khả năng chạy đa nhiệm không bị trễ chu kỳ xung nhịp.

                    +-----------------------------+
                    |        START SYSTEM         |
                    | (Init UART, PWM, Variables) |
                    +--------------+--------------+
                                   |
                                   v
             +---------------------+---------------------+
             |                                           |
             v [Chế độ = Manual]                         v [Chế độ = Auto]
+---------------------------+               +---------------------------+
|    MANUAL DRIVE STATE     |               |     AUTO CRUISE STATE     |
| Đọc Slider -> Cập nhật PWM|               | Chạy thẳng, liên tục đọc  |
| Đọc Switch -> Điều khiển H|               | giá trị điện áp cảm biến  |
+-------------+-------------+               +-------------+-------------+
              |                                           |
              |                                           v
              |                             +---------------------------+
              |                             |  Khoảng cách IR < 25 cm?  |
              |                             +-------------+-------------+
              |                                           |
              |                      +--------------------+--------------------+
              |                      | (Có vật cản)                            | (Không có)
              |                      v                                         v
              |        +---------------------------+             +---------------------------+
              |        |   STOP & SCAN SUBROUTINE  |             |      Tiếp tục tiến        |
              |        | 1. Dừng xe (ENA=0)        |             +---------------------------+
              |        | 2. Quay Servo Left (-45°) |
              |        |    -> Đọc khoảng cách dL  |
              |        | 3. Quay Servo Right (+45°)|
              |        |    -> Đọc khoảng cách dR  |
              |        +-------------+-------------+
              |                      |
              |                      v
              |        +---------------------------+
              |        |  DECISION LOGIC / TURN    |
              |        |  dL > dR: Rẽ trái         |
              |        |  dR > dL: Rẽ phải         |
              |        |  Cả 2 < 25cm: Lùi xe 3s   |
              |        +-------------+-------------+
              |                      |
              +----------------------+
                         |
                         v
        +---------------------------------+
        |  GPS & TELEMETRY TASK (100ms)   |
        |  Đọc SIM808 UART -> Gỡ chuỗi    |
        |  $GPRMC -> Cập nhật Dashboard   |
        +---------------------------------+

1. Logic xử lý ADC Cảm biến khoảng cách và Tuyến tính hóa

Tín hiệu từ cảm biến IR là phi tuyến tính, được chuyển đổi thông qua công thức thực nghiệm nội suy điện áp sang cự ly (cm):

$$\text{Distance (cm)} = \frac{27.86}{\text{Voltage (V)} - 0.10}$$

Đoạn mã giả thuật toán đọc Analog và tránh vật cản trong LabVIEW State Machine:

// Khởi tạo kênh Analog AI0 trên MXP A
AnalogInputPin ir_sensor = myRIO.OpenAnalogInput(Connector.MXPA, Channel.AI0);
ServoChannel steering_servo = myRIO.OpenPWM(Connector.MXPA, Pin.PWM0, Frequency.50Hz);
DigitalOutput motor_in1 = myRIO.OpenDIO(Connector.MXPA, Pin.DIO1);
DigitalOutput motor_in2 = myRIO.OpenDIO(Connector.MXPA, Pin.DIO2);
DigitalOutput motor_ena = myRIO.OpenDIO(Connector.MXPA, Pin.DIO0);

While (System_Running == TRUE) {
    Double voltage = ir_sensor.ReadVoltage(); // Lấy mẫu ADC 12-bit
    Double distance = 27.86 / (voltage - 0.10);
    
    If (Operation_Mode == MODE_MANUAL) {
        // Cập nhật điều khiển từ Shared Variables do Android gửi qua
        steering_servo.SetDutyCycle(Calculate_PWM_From_Slider(Slider_Angle));
        motor_ena.Write(Switch_Power_State);
        If (Switch_Direction == FORWARD) {
            motor_in1.Write(HIGH);
            motor_in2.Write(LOW);
        } Else {
            motor_in1.Write(LOW);
            motor_in2.Write(HIGH);
        }
    } 
    Else If (Operation_Mode == MODE_AUTO) {
        If (distance >= 25.0) {
            // Đường thoáng: Cho xe chạy thẳng
            steering_servo.SetDutyCycle(0.075); // Góc 0 độ (Độ rộng xung 1.5ms / Chu kỳ 20ms)
            motor_ena.Write(HIGH);
            motor_in1.Write(HIGH);
            motor_in2.Write(LOW);
        } Else {
            // Phát hiện chướng ngại vật dưới 25cm: Dừng xe và quét 2 phía
            motor_ena.Write(LOW); // Dừng xe tức thì
            Wait_ms(200);
            
            // Quét bên trái (-45 độ tương ứng Duty Cycle xung 1.25ms)
            steering_servo.SetDutyCycle(0.0625);
            Wait_ms(400);
            Double dist_left = 27.86 / (ir_sensor.ReadVoltage() - 0.10);
            
            // Quét bên phải (+45 độ tương ứng Duty Cycle xung 1.75ms)
            steering_servo.SetDutyCycle(0.0875);
            Wait_ms(400);
            Double dist_right = 27.86 / (ir_sensor.ReadVoltage() - 0.10);
            
            If (dist_left > 25.0 && dist_left >= dist_right) {
                steering_servo.SetDutyCycle(0.050); // Bẻ lái tối đa bên trái
                motor_ena.Write(HIGH);
                motor_in1.Write(HIGH);
                motor_in2.Write(LOW);
                Wait_ms(1200);
            } Else If (dist_right > 25.0 && dist_right > dist_left) {
                steering_servo.SetDutyCycle(0.100); // Bẻ lái tối đa bên phải
                motor_ena.Write(HIGH);
                motor_in1.Write(HIGH);
                motor_in2.Write(LOW);
                Wait_ms(1200);
            } Else {
                // Cả hai hướng đều bị chặn: Thực hiện lùi xe 3 giây
                steering_servo.SetDutyCycle(0.075); // Bánh thẳng
                motor_ena.Write(HIGH);
                motor_in1.Write(LOW);
                motor_in2.Write(HIGH); // Đảo chiều động cơ (Lùi)
                Wait_ms(3000);
            }
        }
    }
    
    // Luồng giám sát tọa độ GPS qua UART
    Execute_GPS_Parser_SubVI();
    Wait_ms(50); // Deterministic cycle time
}

2. Kỹ thuật giải mã chuỗi GPS NMEA từ SIM808

Mô-đun SIM808 liên tục xuất chuỗi chuẩn $GPRMC theo định dạng: $GPRMC,hhmmss.sss,A,llll.ll,a,yyyyy.yy,a,x.x,x.x,ddmmyy,,,a*hh Khối SubVI_GPS_Parser.vi sử dụng các hàm xử lý chuỗi trong LabVIEW (Match Regular Expression, Scan From String) để bóc tách:

  • Trạng thái hợp lệ (Field 2: A = Valid, V = Invalid).
  • Vĩ độ: llll.ll kết hợp ký tự bán cầu N/S chuyển đổi sang định dạng thập phân (Decimal Degrees): $\text{Lat} = \text{Deg} + \frac{\text{Minutes}}{60}$.
  • Kinh độ: yyyyy.yy kết hợp ký tự E/W: $\text{Lon} = \text{Deg} + \frac{\text{Minutes}}{60}$.

Thử nghiệm và Đánh giá hiệu năng

Hệ thống được đưa vào kiểm thử thực tế trên sân phẳng kích thước $20\text{m} \times 15\text{m}$ với nhiều kịch bản khác nhau.

+-----------------------------------------------------------------------------------+
|            BIỂU ĐỒ ĐỘ TRỄ TRUYỀN DẪN THEO KHOẢNG CÁCH (Wi-Fi 802.11 b/g/n)         |
+-----------------------------------------------------------------------------------+
| Khoảng cách (m) | Độ trễ gói tin (ms) | Biểu đồ thanh ngang (Mức chuẩn < 50ms)    |
|-----------------+---------------------+-------------------------------------------|
| 5m              | 12.4 ms             | [=====                     ] Rất tốt      |
| 25m             | 18.2 ms             | [=======                   ] Tốt          |
| 50m             | 26.7 ms             | [===========               ] Tốt          |
| 75m             | 38.5 ms             | [================          ] Ổn định      |
| 100m            | 49.1 ms             | [====================      ] Đạt yêu cầu  |
| 130m            | 78.4 ms             | [================================] Jitter |
| 150m (LOS)      | 114.2 ms (Rớt 4%)   | [======================================*] |
+-----------------------------------------------------------------------------------+

Bảng thông số đo kiểm kỹ thuật thực nghiệm

Tham số đo kiểm Giá trị thiết kế mục tiêu Kết quả đo thực tế Trạng thái đạt được
Độ trễ phản hồi điều khiển (Latency) $< 50\text{ ms}$ (ở bán kính 50m) $26.7\text{ ms}$ Vượt 46.6%
Góc bẻ lái bánh trước tối đa $\pm 45^\circ$ $\pm 55^\circ$ Vượt 22.2%
Khoảng cách phát hiện chướng ngại vật $25.0\text{ cm} \pm 2.0\text{ cm}$ $24.3\text{ cm} \pm 0.8\text{ cm}$ Đạt chuẩn
Sai số định vị tọa độ GPS ngoài trời $< 5.0\text{ m}$ CEP $2.3\text{ m} - 3.1\text{ m}$ Đạt chuẩn
Tốc độ di chuyển tối đa của xe $1.2\text{ m/s}$ $1.45\text{ m/s}$ ($5.22\text{ km/h}$) Đạt chuẩn
Thời lượng hoạt động của pin (2200mAh) $> 45\text{ phút}$ liên tục $58\text{ phút}$ (chế độ hỗn hợp) Vượt 28.8%

Tỷ lệ thành công kịch bản thử nghiệm (50 lần chạy/kịch bản)

  1. Kịch bản 1: Rẽ tránh vật cản đơn lẻ: 49/50 lần thành công (Đạt 98%).
  2. Kịch bản 2: Phát hiện ngõ cụt 3 mặt & tự động lùi: 46/50 lần thành công (Đạt 92%; 4 lần cảm biến góc quét phản xạ yếu trên bề mặt kính đen).
  3. Kịch bản 3: Tải tọa độ GPS lên Dashboard: 50/50 chu kỳ gửi thành công khi có tín hiệu khóa vệ tinh 3D-Fix (Đạt 100%).

Đổi mới và đóng góp

  1. Ứng dụng công nghệ xử lý phần cứng FPGA/Real-Time trong mô hình đào tạo: Thay vì sử dụng vi điều khiển đơn luồng dễ xung đột tài nguyên, đề tài là một trong những nghiên cứu tiên phong tại Trường ĐH Sư phạm Kỹ thuật TP.HCM áp dụng kit NI myRIO-1900 với hệ điều hành thời gian thực kết hợp FPGA, mở ra phương pháp tiếp cận mới trong thiết kế hệ thống nhúng điều khiển robot.
  2. Loại bỏ rào cản phát triển Native Mobile App: Bằng việc sử dụng cơ chế Network Published Shared Variables của LabVIEW kết nối trực tiếp với NI Data Dashboard, nhóm phát triển đã rút ngắn thời gian xây dựng giao diện điều khiển di động trên tablet Android từ vài tuần xuống chỉ còn 2 ngày làm việc mà vẫn đảm bảo tính đồng bộ hai chiều thời gian thực.
  3. Tích hợp cảm biến kép định vị - tránh va chạm thông minh: Kết hợp đồng thời cảm biến khoảng cách tầm gần độ trễ thấp (vòng quét 10ms trên FPGA) với module viễn thông SIM808 tầm xa, cho phép phương tiện vừa có khả năng phản xạ tự động tại chỗ, vừa truyền telemetry về trung tâm giám sát.
+-------------------------------------------------------------------------------------+
|                  SO SÁNH CÁC CHỈ SỐ NÂNG CAO VỚI GIẢI PHÁP TIỀN NHIỆM                |
+--------------------------+---------------------+-------------------+----------------+
| Chỉ số                   | Arduino + HC-05     | RPi 3 + Web App   | NI myRIO (Đề tài)
+--------------------------+---------------------+-------------------+----------------+
| Thời gian đáp ứng I/O    | ~5 - 10 ms          | ~15 - 30 ms       | < 1 µs (FPGA)  |
| Thời gian dựng HMI       | 40 giờ lập trình    | 25 giờ lập trình  | 4 giờ kéo thả  |
| Khả năng mở rộng I/O     | Hạn chế (8-bit bus) | Trung bình (GPIO) | Cực cao (MXP/MSP)
| Tính ổn định khi đa luồng| Thấp (Dễ nghẽn)     | Trung bình        | Tuyệt đối (RTOS)|
+--------------------------+---------------------+-------------------+----------------+

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

Tình huống ứng dụng thực tế (Use Cases)

  • Xe tuần tra, trinh sát môi trường độc hại: Xe mang theo các cảm biến đo khí độc hại ($CO_2, SO_2$), di chuyển vào các khu vực con người khó tiếp cận (đường ống hẹp, vùng hóa chất) và truyền dữ liệu tọa độ vị trí cùng nồng độ khí về máy tính bảng chỉ huy.
  • Robot vận chuyển tự hành (AGV) trong kho thông minh: Ứng dụng cơ chế điều khiển bẻ lái tự động và cảm biến khoảng cách để vận chuyển linh kiện giữa các dây chuyền sản xuất mà không cần lắp đặt ray dẫn hướng tốn kém.
  • Nền tảng nghiên cứu & thực hành thí nghiệm nhúng (Educational Testbed): Làm mô hình mẫu cho sinh viên các ngành Cơ điện tử, Kỹ thuật Máy tính và Tự động hóa tiếp cận công nghệ LabVIEW FPGA và thiết kế hệ thống nhúng phân tán.
+------------------------------------------------------------------------------------+
|                         LỘ TRÌNH TRIỂN KHAI VÀ THƯƠNG MẠI HÓA                      |
+--------------------+---------------------------------------------------------------+
| Giai đoạn 1 (Q1)   | Chế tạo khung gầm công nghiệp chịu lực, chống rung chuẩn IP54.|
| Giai đoạn 2 (Q2)   | Tích hợp module camera AI xử lý hình ảnh nhận diện làn đường. |
| Giai đoạn 3 (Q3)   | Nâng cấp giao thức truyền dữ liệu qua 4G LTE / MQTT Cloud.    |
| Giai đoạn 4 (Q4)   | Sản xuất hàng loạt phiên bản thương mại phục vụ giáo dục STEM.|
+--------------------+---------------------------------------------------------------+

Phân tích chi phí và Khả năng nhân rộng (Cost-Benefit Analysis)

  • Chi phí phần cứng mẫu thử nghiệm (BOM):
    • Khung xe & Động cơ DC + Mạch cầu H L298N + Servo: ~650.000 VNĐ.
    • Cảm biến hồng ngoại IR Sharp GP2Y0A21YK0F: ~180.000 VNĐ.
    • Module SIM808 GPS/GPRS: ~750.000 VNĐ.
    • Nguồn Pin Li-ion 3S 2200mAh & Mạch sạc cân bằng: ~450.000 VNĐ.
    • Tổng chi phí cấu thành (chưa gồm kit myRIO do trường/hãng tài trợ): ~2.030.000 VNĐ.
  • Hiệu quả kinh tế: So với các bộ kit thực hành Robot di động nhập khẩu từ Mỹ/Đức có giá hàng nghìn USD, việc tự chủ thiết kế phần cứng tích hợp trên bo mạch NI myRIO giúp giảm hơn 65% chi phí trang bị phòng thí nghiệm cho các trường đại học kỹ thuật trong nước.

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

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

  • Cảm biến hồng ngoại analog dễ bị nhiễu bởi ánh sáng mặt trời có cường độ quang thông cao (ngoài trời nắng gắt) hoặc các bề mặt có độ hấp thụ quang học đặc biệt (bề mặt sơn đen mờ).
  • Tầm truyền Wi-Fi chuẩn b/g/n phụ thuộc vào ăng-ten Omnidirectional tích hợp trên myRIO, dễ bị suy hao qua tường chắn bê tông dày.
  • Năng lượng tiêu thụ của kit myRIO ở trạng thái nghỉ khoảng 2.6W (tối đa 14W), đòi hỏi nguồn pin dung lượng lớn nếu muốn xe vận hành liên tục nhiều giờ.

Hướng phát triển nâng cao

  • Tích hợp cảm biến LiDAR 2D & SLAM: Thay thế cảm biến IR bằng cảm biến laser quay 360° để vẽ bản đồ môi trường thời gian thực (Occupancy Grid Map).
  • Xử lý thị giác máy tính (Computer Vision): Tận dụng cổng USB 2.0 High-Speed trên myRIO để gắn Camera Logitech C920, kết hợp bộ thư viện LabVIEW Vision Development Module để nhận diện biển báo và bám làn đường.
  • Chuyển đổi giao thức sang MQTT / WebSockets: Kết nối xe với Broker trung tâm trên nền tảng đám mây AWS IoT Core thông qua kết nối GPRS/3G của module SIM808, cho phép điều khiển phương tiện từ bất kỳ đâu trên thế giới qua Internet không giới hạn cự ly Wi-Fi.

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

  • Sinh viên ngành Kỹ thuật: Tiếp cận tài liệu hướng dẫn chi tiết từ sơ đồ nối dây MXP/MSP, cấu hình mạng NI MAX đến phương pháp lập trình đồ họa LabVIEW FPGA và kỹ thuật gỡ chuỗi NMEA GPS.
  • Kỹ sư phát triển hệ thống nhúng (Embedded Developers): Nắm vững mô hình kết nối Shared Variables giữa thiết bị di động Android và bộ điều khiển công nghiệp thời gian thực, tái sử dụng các khối SubVI điều khiển cầu H và Servo.
  • Doanh nghiệp & Cơ sở giáo dục: Sở hữu bản thiết kế chi tiết để xây dựng các mô hình AGV thu nhỏ phục vụ đào tạo thực hành hoặc thử nghiệm thuật toán điều hướng trước khi ứng dụng trên xe công nghiệp tải trọng lớn.

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

1. Yêu cầu cấu hình phần cứng và phần mềm tối thiểu để chạy hệ thống là gì?

Máy tính lập trình cần cài đặt hệ điều hành Windows 7/8/10 (32-bit hoặc 64-bit), RAM tối thiểu 4GB, cài đặt bộ công cụ LabVIEW 2014, LabVIEW Real-Time Module 2014, LabVIEW FPGA Module 2014, và driver NI-RIO 14.0. Thiết bị di động điều khiển chạy hệ điều hành Android từ phiên bản 4.0 trở lên, có hỗ trợ kết nối Wi-Fi và cài đặt ứng dụng NI Data Dashboard v2.2.

2. Làm thế nào để xử lý hiện tượng mất gói tin hoặc mất kết nối Wi-Fi khi xe chạy ra xa?

Trong kiến trúc phần mềm trên myRIO, nhóm nghiên cứu đã thiết lập khối giám sát Watchdog Timer (Heartbeat Checker) với chu kỳ 1500 ms. Nếu trong khoảng thời gian này myRIO không nhận được bất kỳ tín hiệu xác thực nào từ biến Shared Variable trên Android, hệ thống sẽ tự động chuyển máy trạng thái về EMERGENCY_STOP, xuất mức logic '0' tại chân ENA để khóa động cơ, tránh việc xe tiếp tục chạy mất kiểm soát.

3. Tại sao chọn giao thức Shared Variables thay vì tự viết socket TCP/UDP thuần?

Network Published Shared Variables là công nghệ độc quyền tối ưu của National Instruments chạy trên nền giao thức NI-PSP (Publish-Subscribe Protocol). Giao thức này tự động quản lý việc đóng gói dữ liệu, kiểm tra lỗi truyền thông và đồng bộ hóa biến giữa các luồng LabVIEW RT và giao diện Android mà không cần lập trình viên phải tự viết mã phân tích khung byte (Byte Parsing) hay quản lý Socket I/O phức tạp.

4. Module SIM808 cần bao lâu để lấy được vị trí GPS chính xác (Cold Start vs Hot Start)?

Module SIM808 trong điều kiện ngoài trời thoáng đãng có thời gian khởi động nguội (Cold Start) để bắt tín hiệu vệ tinh và khóa tọa độ (3D Fix) trung bình từ 30 – 35 giây. Đối với khởi động nóng (Hot Start), thời gian chốt vị trí chỉ mất từ 1 – 2 giây với độ chính xác vị trí trong bán kính 2.5m CEP.

5. Chi phí tái tạo lại mô hình này là bao nhiêu và thời gian lắp ráp mất bao lâu?

Nếu đã có sẵn kit NI myRIO (thường được trang bị tại các phòng thí nghiệm đại học), tổng chi phí mua sắm linh kiện phụ trợ (khung gầm xe, driver L298N, động cơ DC, servo lái, module SIM808, cảm biến IR và pin Li-ion) dao động từ 1.800.000 đến 2.200.000 VNĐ. Thời gian gia công phần cứng và cấu hình phần mềm hoàn chỉnh cho một kỹ sư/sinh viên nắm vững tài liệu đồ án mất khoảng 3 đến 5 ngày.


Kết luận

Đồ án tốt nghiệp "Điều khiển xe từ xa sử dụng KIT NI myRIO" đã hoàn thành xuất sắc toàn bộ các mục tiêu đặt ra: làm chủ nền tảng phần cứng nhúng cao cấp NI myRIO-1900, làm chủ phương pháp lập trình đồ họa thời gian thực đa luồng với LabVIEW 2014, triển khai thành công giao diện điều khiển HMI cảm ứng linh hoạt trên máy tính bảng Android qua mạng không dây Wi-Fi, đồng thời kết hợp linh hoạt cảm biến khoảng cách quang học và module định vị toàn cầu GPS SIM808.

Kết quả thử nghiệm thực tế chứng minh tính ổn định cao, độ trễ phản hồi thấp ($26.7\text{ ms}$ tại $50\text{m}$) và khả năng tự hành tránh vật cản chính xác ($98%$). Đây không chỉ là một công trình nghiên cứu ứng dụng có giá trị học thuật cao, mà còn là tài liệu tham khảo kỹ thuật chuẩn mực cho cộng đồng sinh viên, kỹ sư đam mê phát triển robot tự hành và hệ thống nhúng công nghiệp.