Giới thiệu dự án

Sự gia tăng nhanh chóng của phương tiện giao thông cá nhân, đặc biệt là ô tô tại các đô thị lớn tại Việt Nam, đang tạo ra áp lực khổng lồ lên hạ tầng giao thông tĩnh. Theo thống kê từ Cục Đăng kiểm Việt Nam, lượng xe ô tô lưu hành tăng trưởng trung bình trên 10-15% mỗi năm, dẫn đến tình trạng quá tải nghiêm trọng tại các bãi đỗ xe trung tâm thương mại, chung cư và cơ quan hành chính. Các bãi đỗ xe truyền thống quản lý thủ công bộc lộ nhiều điểm nghẽn nghiêm trọng:

  • Ùn tắc cục bộ tại cổng kiểm soát: Thời gian ghi vé giấy hoặc quét thẻ từ kết hợp kiểm tra thủ công mất từ 15–30 giây/xe.
  • Lãng phí thời gian tìm vị trí đỗ: Người điều khiển phương tiện mất trung bình 8–15 phút để tìm vị trí trống do thiếu thông tin chỉ dẫn thời gian thực.
  • Rủi ro an ninh và thất thoát vé: Vé giấy dễ rách, mất mát hoặc làm giả; việc đối soát phương tiện ra/vào dựa vào mắt thường của nhân viên tiềm ẩn nguy cơ nhầm lẫn hoặc gian lận.
  • Chi phí vận hành nhân sự cao: Cần nhiều nhân sự túc trực tại các chốt cổng và tuần tra trong khuôn viên bãi đỗ.
[Camera USB] ──(Video Feed)──> [Raspberry Pi 4] ──(Edge AI: OpenCV + Tesseract)──> Nhận diện Biển số
                                      │
                     ┌────────────────┴────────────────┐
                     ▼ (UART 9600 bps)                 ▼ (PWM 50Hz)
            [Arduino Mega 2560]                [Servo SG90 - Barrier]
                     │
         ┌───────────┴───────────┐
         ▼                       ▼
[TFT LCD 3.2" ILI9341]   [Loa phát âm thanh]

Để giải quyết triệt để các tồn đọng trên, đồ án "Thiết kế và thi công mô hình bãi giữ xe ô tô thông minh" được thực hiện bởi nhóm nghiên cứu chuyên ngành Công nghệ Kỹ thuật Điện tử - Viễn thông (Trường Đại học Sư phạm Kỹ thuật TP.HCM) dưới sự hướng dẫn của ThS. Võ Đức Dũng. Dự án tập trung phát triển hệ thống quản lý bãi đỗ xe tự động ứng dụng xử lý ảnh nhận diện biển số xe tại biên (Edge AI ALPR), kết hợp mạng lưới cảm biến hồng ngoại giám sát vị trí thực tế và giao diện điều hướng trực quan.

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

  1. Thiết kế và chế tạo phần cứng: Xây dựng mô hình vật lý bãi đỗ xe tích hợp cổng kiểm soát tự động sử dụng động cơ Servo SG90, hệ thống 06 cảm biến hồng ngoại giám sát vị trí đỗ và module camera thu nhận hình ảnh.
  2. Phát triển thuật toán nhận dạng biển số: Triển khai quy trình xử lý ảnh trên máy tính nhúng Raspberry Pi 4 sử dụng thư viện OpenCV và OCR Engine Pytesseract, trích xuất chính xác chuỗi ký tự biển số trong điều kiện ánh sáng chuẩn.
  3. Thiết kế hệ thống hiển thị và điều hướng: Xây dựng giao diện đồ họa trên màn hình cảm ứng TFT LCD 3.2 inch điều khiển bởi Arduino Mega 2560, hiển thị sơ đồ trạng thái chỗ trống và chỉ dẫn xe vào ô đỗ phù hợp.
  4. Tích hợp giao tiếp liên vi điều khiển: Thiết lập giao thức truyền thông nối tiếp UART ổn định giữa Raspberry Pi 4 và Arduino Mega 2560.
  5. Đánh giá thực nghiệm: Kiểm thử độ chính xác nhận dạng, độ trễ xử lý và độ tin cậy của cơ cấu chấp hành trong các kịch bản xe ra/vào liên tục.

Phạm vi và giới hạn đề tài

  • Quy mô mô hình: Bãi đỗ xe quy mô mô hình 06 vị trí đỗ tiêu chuẩn dành cho xe ô tô con.
  • Khoảng cách nhận dạng: Tối ưu hóa trong cự ly từ 10 cm đến 30 cm từ camera đến biển số mô hình.
  • Xử lý tại biên: Toàn bộ thuật toán nhận dạng chạy cục bộ (on-device) trên kit Raspberry Pi 4 Model B, chưa triển khai lưu trữ cơ sở dữ liệu trên cloud server tập trung.
  • Điều kiện môi trường: Mô hình hoạt động tối ưu trong điều kiện ánh sáng phòng ổn định, góc chụp trực diện với độ lệch góc không quá $\pm 15^\circ$.

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 Bãi giữ xe truyền thống (Vé giấy) Bãi giữ xe thẻ từ RFID Giải pháp ALPR kết hợp IoT (Đồ án)
Thời gian xử lý/xe 15 - 30 giây 3 - 5 giây 1.2 - 2.5 giây
Mức độ tự động hóa Rất thấp (100% thủ công) Trung bình (cần thao tác quẹt thẻ) Hoàn toàn tự động qua camera
Giám sát vị trí trống Không có (tự tìm thủ công) Hiếm khi có hoặc chi phí cực cao Giám sát từng ô đỗ qua cảm biến IR
Rủi ro thất lạc/gian lận Rất cao Thấp (nhưng vẫn có thể tráo thẻ) Gần như bằng 0 (khớp biển số in-out)
Chi phí đầu tư phần cứng Thấp Trung bình Tối ưu nhờ kit nhúng mã nguồn mở

Yêu cầu hệ thống theo mô hình MoSCoW

  • Must Have (Bắt buộc phải có): Nhận diện tự động biển số xe vào/ra; Tự động đóng/mở barrier bằng Servo; Cập nhật trạng thái chiếm chỗ của 6 slot đỗ qua cảm biến; Hiển thị thông tin biển số và vị trí còn trống lên màn hình TFT LCD.
  • Should Have (Nên có): Điều hướng âm thanh thông báo vị trí đỗ cụ thể cho lái xe; Lưu vết lịch sử xe ra/vào bãi.
  • Could Have (Có thể có): Giao diện điều khiển giám sát từ xa qua VNC Viewer; Giao diện quản lý thông tin chủ bãi.
  • Won't Have (Chưa thực hiện trong giai đoạn này): Ứng dụng di động (Mobile App) đặt chỗ trước; Hệ thống thanh toán trực tuyến qua cổng QR/e-Wallet.

Thiết kế kiến trúc hệ thống

Kiến trúc phần cứng được phân cấp thành hai tầng xử lý riêng biệt: Tầng xử lý thị giác máy tính cấp cao (High-level Compute Layer) và Tầng điều khiển giao tiếp ngoại vi cấp thấp (Low-level Control Layer).

+-----------------------------------------------------------------------+
|                       TẦNG XỬ LÝ CẤP CAO                              |
|                       Raspberry Pi 4 Model B                          |
|  - Broadcom BCM2711, 4x Cortex-A72 @ 1.5GHz, 4GB LPDDR4               |
|  - Pipeline: OpenCV 4.5.x (Morphology, Contours) + Tesseract OCR      |
+-----------------------------------┬-----------------------------------+
                                    │ UART Serial (Baud: 9600 bps)
+-----------------------------------┴-----------------------------------+
|                      TẦNG ĐIỀU KHIỂN CẤP THẤP                         |
|                         Arduino Mega 2560                             |
|  - ATmega2560 @ 16MHz, 256KB Flash, 54 Digital Pins                   |
|  - TFT LCD Mega Shield v2.2 + 3.2" TFT LCD (Driver ILI9341)           |
+-----------------------------------┬-----------------------------------+
                                    │
          ┌─────────────────────────┴─────────────────────────┐
          ▼                                                   ▼
+-----------------------+                           +-------------------+
|   Khối Cảm Biến       |                           |  Khối Chấp Hành   |
| 6x IR LM393 (GPIO In) |                           | 2x Servo SG90     |
+-----------------------+                           +-------------------+

Ngăn xếp công nghệ (Technology Stack)

  • Phần cứng tính toán: Raspberry Pi 4 Model B (Broadcom BCM2711 SoC, Quad-core Cortex-A72 64-bit @ 1.5GHz, 4GB RAM LPDDR4).
  • Phần cứng giao tiếp & GUI: Arduino Mega 2560 R3 (Vi điều khiển ATmega2560, xung nhịp 16MHz, bộ nhớ Flash 256KB) kết hợp TFT LCD Mega Shield.
  • Cảm biến & Ngoại vi: 06 module cảm biến vật cản hồng ngoại (IC so sánh LM393, khoảng cách phản hồi 2–5 cm); 02 Động cơ Servo TowerPro SG90; Module USB Camera CMOS 640x480 pixel tiêu cự F6; Màn hình cảm ứng màu TFT LCD 3.2 inch (320x240 pixels, IC điều khiển ILI9341, IC cảm ứng XPT2046).
  • Môi trường phần mềm: Raspberry Pi OS (Debian 11 bullseye), Python 3.9, OpenCV 4.5.3, Tesseract OCR Engine v3.05 / Pytesseract wrapper, Arduino IDE 1.8.19 (ngôn ngữ C/C++).

Thiết kế phân phối nguồn điện (Power Supply Isolation)

Nhằm triệt tiêu hiện tượng sụt áp (brownout reset) trên vi xử lý Raspberry Pi 4 do dòng khởi động của động cơ servo và nhiễu xung cảm ứng, hệ thống được thiết kế với 2 đường nguồn cách ly độc lập:

  1. Nguồn logic: Adapter 5V - 3.0A chuyên dụng cấp nguồn qua cổng USB Type-C cho Raspberry Pi 4; Arduino Mega 2560 nhận nguồn trực tiếp từ cổng USB Host của Pi.
  2. Nguồn công suất: Adapter 5V - 1.0A riêng biệt cấp nguồn cho 02 động cơ Servo SG90 và 06 cảm biến hồng ngoại. Dòng tải tối đa tính toán: $$I_{max} = I_{sensors} + I_{servos} = (6 \times 15\text{ mA}) + (2 \times 250\text{ mA}_{\text{stall}}) \approx 590\text{ mA} < 1000\text{ mA}$$

Giao thức truyền thông nối tiếp (UART Communication)

Dữ liệu được đóng gói thành các chuỗi byte cấu trúc rõ ràng truyền giữa cổng phần cứng UART của Raspberry Pi (GPIO14/TXD, GPIO15/RXD) và cổng Serial1 của Arduino Mega 2560 (Pin 19/RX1, Pin 18/TX1) với tốc độ truyền (baud rate) 9600 bps:

[Bắt đầu: '$'] + [Mã lệnh: 'E'/'X'/'S'] + [Dữ liệu biển số: 8-10 ký tự] + [Vị trí đỗ: '1'-'6'] + [Kết thúc: '\n']
Ví dụ chuỗi gửi xe vào slot 3: "$E51A12345#3\n"

Implementation và kết quả

Quy trình phát triển phần mềm

Dự án được triển khai theo tiến trình 16 tuần với các mốc kiểm soát kỹ thuật nghiêm ngặt:

[Tuần 1-4: Nghiên cứu & Thiết kế] 
       └──> [Tuần 5-8: Lập trình Thị giác Máy tính & Thuật toán ALPR]
                  └──> [Tuần 9-12: Thiết kế Mạch PCB & Lập trình Giao diện Arduino]
                             └──> [Tuần 13-16: Tích hợp Toàn diện, Hiệu chuẩn & Đánh giá]

Thuật toán nhận diện biển số xe (Computer Vision Pipeline)

Quy trình xử lý ảnh từ khung hình camera đến chuỗi ký tự số được tối ưu hóa qua các bước xử lý liên tiếp:

Ảnh màu RGB (640x480)
       │
       ▼
[Chuyển đổi sang ảnh xám (Grayscale)] : P = 0.299R + 0.587G + 0.114B
       │
       ▼
[Bộ lọc nhiễu Gaussian Blur (Kernel 5x5)]
       │
       ▼
[Dò biên cạnh Canny (Threshold: 100, 200)]
       │
       ▼
[Phát hiện đường bao (Contours Finding)]
       │
       ▼
[Lọc hình học: 4 đỉnh, Tỷ lệ khung hình Aspect Ratio 1.2 - 5.5, Diện tích tối thiểu]
       │
       ▼
[Biến đổi phối cảnh (Perspective Transform) & Cắt vùng biển số (ROI)]
       │
       ▼
[Nhị phân hóa ngưỡng Otsu (Adaptive Thresholding)]
       │
       ▼
[Tesseract OCR Engine (PSM = 8 / 7)] ──> Chuỗi ký tự biển số (String)

Trích đoạn mã nguồn nhận diện biển số trên Raspberry Pi (Python)

import cv2
import pytesseract
import serial
import time

# Khởi tạo giao tiếp UART với Arduino Mega 2560
uart_ser = serial.Serial('/dev/ttyAMA0', baudrate=9600, timeout=1)

def extract_plate_number(frame):
    # 1. Chuyển sang ảnh mức xám
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    
    # 2. Lọc mờ giảm nhiễu hạt
    blurred = cv2.GaussianBlur(gray, (5, 5), 0)
    
    # 3. Thuật toán phát hiện biên cạnh Canny
    edged = cv2.Canny(blurred, 100, 200)
    
    # 4. Tìm kiếm các contours
    contours, _ = cv2.findContours(edged.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
    contours = sorted(contours, key=cv2.contourArea, reverse=True)[:10]
    
    plate_cnt = None
    for c in contours:
        peri = cv2.arcLength(c, True)
        approx = cv2.approxPolyDP(c, 0.02 * peri, True)
        # Biển số chuẩn có 4 đỉnh
        if len(approx) == 4:
            x, y, w, h = cv2.boundingRect(approx)
            aspect_ratio = float(w) / h
            # Kiểm tra tỷ lệ khung hình chuẩn của biển số xe
            if 1.2 <= aspect_ratio <= 5.5 and cv2.contourArea(c) > 1000:
                plate_cnt = approx
                break
                
    if plate_cnt is not None:
        x, y, w, h = cv2.boundingRect(plate_cnt)
        plate_roi = gray[y:y+h, x:x+w]
        
        # Tiền xử lý cho OCR: Nhị phân hóa Otsu
        _, thresh = cv2.threshold(plate_roi, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
        
        # Cấu hình Tesseract: Chế độ nhận dạng 1 dòng ký tự đơn
        custom_config = r'--oem 3 --psm 7 -c tessedit_char_whitelist=ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
        plate_text = pytesseract.image_to_string(thresh, config=custom_config)
        return plate_text.strip()
    return None

Trích đoạn mã nguồn điều khiển hiển thị và ngoại vi trên Arduino (C++)

#include <UTFT.h>
#include <URTouch.h>
#include <Servo.h>

// Khởi tạo đối tượng màn hình TFT 3.2 inch qua Shield
UTFT myGLCD(ILI9341_16, 38, 39, 40, 41);
Servo barrierServoIn;

void setup() {
  Serial.begin(9600);    // Serial Monitor
  Serial1.begin(9600);   // UART nhận tín hiệu từ Raspberry Pi
  barrierServoIn.attach(9);
  barrierServoIn.write(0); // Đóng barrier ban đầu
  
  myGLCD.InitLCD();
  myGLCD.clrScr();
  myGLCD.setFont(BigFont);
  myGLCD.print("SMART PARKING", CENTER, 20);
}

void loop() {
  if (Serial1.available() > 0) {
    String payload = Serial1.readStringUntil('\n');
    if (payload.startsWith("$E")) { // Kịch bản xe vào
      int hashIdx = payload.indexOf('#');
      String plate = payload.substring(2, hashIdx);
      String slot = payload.substring(hashIdx + 1);
      
      myGLCD.setColor(0, 255, 0);
      myGLCD.print("IN: " + plate, CENTER, 80);
      myGLCD.print("SLOT: " + slot, CENTER, 120);
      
      // Mở barrier
      barrierServoIn.write(90);
      delay(3000);
      barrierServoIn.write(0);
    }
  }
}

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

Hệ thống được đưa vào kiểm thử thực tế với tập mẫu gồm 50 lượt xe vào và 50 lượt xe ra tại các khoảng cách và điều kiện định vị khác nhau.

Bảng thống kê hiệu năng nhận dạng theo khoảng cách

Khoảng cách (cm) Số mẫu thử (lượt) Nhận diện thành công Tỷ lệ chính xác (%) Thời gian đáp ứng trung bình (s) Đánh giá trạng thái
10 - 15 20 19 95.0% 1.35 Ký tự rõ nét, độ tương phản cao
15 - 25 20 18 90.0% 1.42 Vùng nhận diện tối ưu nhất
25 - 30 10 7 70.0% 1.85 Ảnh bắt đầu mờ do giới hạn tiêu cự
> 30 10 3 30.0% 2.40 Không khuyến nghị (ngoài tiêu cự)

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

  • Tỷ lệ nhận diện biển số thành công: Đạt 88.0% trên toàn bộ dải đo 10–30 cm trong điều kiện ánh sáng tiêu chuẩn.
  • Thời gian xử lý luồng xe: Trung bình 1.45 giây/xe, giảm hơn 90% thời gian thao tác so với ghi vé thủ công.
  • Độ chính xác giám sát vị trí đỗ: Đạt 100% nhờ mạng lưới 6 cảm biến hồng ngoại phản hồi liên tục với tần số quét 50ms.
  • Độ ổn định của cơ cấu chấp hành: Động cơ servo phản hồi góc xoay 90 độ chính xác, không ghi nhận tình trạng giật cục hay treo vi điều khiển sau 100 chu kỳ đóng/mở liên tục.

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

  1. Kiến trúc điện toán biên chi phí thấp (Edge Computing): Đồ án hiện thực hóa thành công mô hình nhận dạng biển số cục bộ trực tiếp trên Raspberry Pi 4 mà không cần phụ thuộc vào máy chủ cấu hình mạnh hay kết nối Internet liên tục, giúp giảm chi phí đầu tư thiết bị từ hàng chục triệu đồng xuống mức dưới 4 triệu đồng.
  2. Mô hình phân tải Master-Slave thông minh: Tách biệt rõ ràng tác vụ xử lý thị giác máy tính nặng (Raspberry Pi - Master) và tác vụ điều khiển thời gian thực kết hợp quét giao diện đồ họa cảm ứng (Arduino Mega 2560 - Slave). Kiến trúc này giúp tránh hiện tượng thắt cổ chai tài nguyên, đảm bảo hệ thống không bị đơ gián đoạn khi thuật toán OCR đang chạy.
  3. Điều hướng thông minh tích hợp đa giác quan: Không chỉ dừng lại ở việc đếm số lượng xe, hệ thống chỉ định chính xác vị trí đỗ còn trống cụ thể (Slot 1 đến Slot 6) đồng thời đồng bộ hóa hiển thị đồ họa trên màn hình LCD TFT 3.2 inch và âm thanh hướng dẫn.

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

                     ┌────────────────────────────────────────┐
                     │    TRUNG TÂM QUẢN TRỊ BÃI XE           │
                     │  - Dashboard giám sát doanh thu / ngày │
                     │  - Quản lý danh sách cư dân cố định    │
                     └───────────────────▲────────────────────┘
                                         │ LAN / Wi-Fi (MQTT / HTTP)
                     ┌───────────────────┴────────────────────┐
                     │   Trạm Kiểm Soát Biên (Edge Station)   │
                     │   Raspberry Pi 4 + Arduino Mega 2560   │
                     └─────────┬────────────────────┬─────────┘
                               │                    │
            ┌──────────────────┴───┐            ┌───┴──────────────────┐
            ▼                      ▼            ▼                      ▼
    [Camera ANPR Ngoài Trời] [Barrier Cổng] [Bảng LED Chỉ Hướng] [Sensor Siêu Âm Ô Đỗ]

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

  • Tòa nhà văn phòng và chung cư cao tầng: Quản lý xe của cư dân thông qua danh sách trắng (whitelist) biển số được nạp sẵn, mở cổng tự động trong 1.5 giây mà không yêu cầu hạ kính quẹt thẻ trong điều kiện mưa bão.
  • Bãi giữ xe sân bay và trung tâm thương mại: Tự động điều hướng tài xế tới khu vực còn chỗ trống gần nhất, giảm thời gian tìm kiếm điểm đỗ và giảm phát thải khí CO2 trong không gian hầm kín.

Phân tích hiệu quả kinh tế (ROI Analysis)

Xét bài toán triển khai cho một bãi giữ xe quy mô 200 vị trí đỗ tại tòa nhà văn phòng:

  • Chi phí nhân sự truyền thống: 04 nhân viên trực 2 ca/ngày $\times$ 7.500.000 VNĐ/tháng = 30.000.000 VNĐ/tháng (360.000.000 VNĐ/năm).
  • Chi phí lắp đặt hệ thống tự động hóa (Ước tính công nghiệp hóa): Khoảng 65.000.000 VNĐ (Bao gồm camera chuyên dụng, barrier công nghiệp, bộ điều khiển trung tâm và cảm biến).
  • Thời gian hoàn vốn (Payback Period): $$\text{Thời gian hoàn vốn} = \frac{65.000.000}{30.000.000 - 2.000.000 \text{ (Chi phí bảo trì/tháng)}} \approx 2.3 \text{ tháng}$$

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

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

  • Độ phụ thuộc góc chụp và ánh sáng: Thuật toán tiền xử lý Canny + Otsu truyền thống dễ suy giảm độ chính xác khi biển số bị lóa đèn pha ban đêm hoặc bị nghiêng góc quá $20^\circ$.
  • Tốc độ xử lý OCR: Bộ nhận diện Tesseract OCR chạy trên CPU của Raspberry Pi mất từ 0.8s – 1.2s cho bước trích xuất chuỗi ký tự.
  • Giới hạn phần cứng mô hình: Module camera USB có tiêu cự cố định, độ phân giải thấp (640x480) và cảm biến hồng ngoại có cự ly đo ngắn (2-5cm), chỉ phù hợp trong khuôn khổ sa bàn thực nghiệm.

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

  1. Chuyển đổi sang Deep Learning chuyên sâu: Tích hợp mô hình nhận diện đối tượng nhẹ như YOLOv8-Nano hoặc MobileNet-SSD kết hợp mạng nơ-ron hồi quy CRNN + CTC Loss tối ưu hóa qua TensorFlow Lite/ONNX Runtime để nhận dạng biển số chính xác trong mọi điều kiện thời tiết.
  2. Nâng cấp cảm biến công nghiệp: Thay thế cảm biến hồng ngoại bằng mạng cảm biến siêu âm công nghiệp (Ultrasonic Sensor) gắn trần kết hợp đèn LED báo trạng thái xanh/đỏ tại từng vị trí đỗ.
  3. Xây dựng hệ sinh thái Cloud & Mobile App: Phát triển ứng dụng Flutter cho phép người dùng đặt trước chỗ đỗ, tích hợp cổng thanh toán trực tuyến qua mã QR động (VietQR/MoMo) và kết nối máy chủ dữ liệu trung tâm qua giao thức MQTT.

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

  • Sinh viên & Học viên ngành Điện tử - Viễn thông, Tự động hóa, CNTT: Nguồn tài liệu tham khảo thực tế về cách thức phối ghép liên vi điều khiển (Raspberry Pi – Arduino Mega), kỹ thuật lập trình giao diện nhúng trên TFT LCD và quy trình triển khai Computer Vision tại biên.
  • Kỹ sư nhúng và Lập trình viên: Nền tảng mẫu (code template) về tích hợp OpenCV và Tesseract OCR trên môi trường Linux nhúng tối ưu hóa bộ nhớ RAM và CPU.
  • Doanh nghiệp và Đơn vị quản lý tòa nhà: Cung cấp cơ sở khoa học và giải pháp khả thi để nội địa hóa hệ thống kiểm soát xe thông minh với chi phí đầu tư chỉ bằng 25–35% so với các giải pháp ngoại nhập.

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

1. Yêu cầu kỹ thuật phần cứng tối thiểu để triển khai hệ thống là gì?

Để triển khai hệ thống ở quy mô thử nghiệm thực tế, yêu cầu tối thiểu gồm: 01 Single Board Computer (Raspberry Pi 4B bản RAM 2GB trở lên hoặc tương đương như Jetson Nano), 01 Camera IP/USB độ phân giải tối thiểu HD 720p có hỗ trợ đèn LED hồng ngoại ban đêm, 01 Bo mạch vi điều khiển (Arduino Mega 2560 hoặc ESP32) để điều khiển rơ-le/barrier, bộ nguồn công nghiệp 12V/5V DC có mạch lọc nhiễu LC.

2. Giới hạn mở rộng số lượng vị trí đỗ xe của hệ thống là bao nhiêu?

Với kiến trúc Arduino Mega 2560 hiện tại (54 chân I/O số), hệ thống có thể mở rộng tối đa khoảng 40 cảm biến nối trực tiếp. Để mở rộng lên hàng trăm vị trí trong bãi đỗ thực tế, giải pháp tối ưu là sử dụng các module mở rộng I/O qua giao thức $I^2C$ (như PCF8574), giao tiếp công nghiệp RS-485 Modbus RTU hoặc mạng cảm biến không dây Zigbee/LoRa truyền dữ liệu về bộ tập trung.

3. Hệ thống có thể tích hợp với cổng thanh toán tự động không?

Hoàn toàn khả thi. Raspberry Pi 4 có cổng Ethernet và Wi-Fi tích hợp, dễ dàng kết nối RESTful API đến máy chủ thanh toán để sinh mã VietQR động theo thời gian gửi xe hiển thị trực tiếp lên màn hình phụ tại cổng ra.

4. Chi phí bảo trì định kỳ của hệ thống gồm những gì?

Chi phí vận hành và bảo trì rất thấp, chủ yếu bao gồm: vệ sinh ống kính camera định kỳ (1 tháng/lần), kiểm tra độ căng cơ khí và tra dầu mỡ cơ cấu bánh răng của barrier (3-6 tháng/lần), và sao lưu cơ sở dữ liệu lịch sử xe ra vào.

5. Tại sao không dùng Raspberry Pi điều khiển trực tiếp toàn bộ mà cần thêm Arduino Mega 2560?

Raspberry Pi chạy hệ điều hành đa nhiệm Linux (Non-Realtime OS), việc xử lý xung PWM chính xác cho nhiều servo và quét liên tục hàng chục chân cảm biến cùng lúc với tác vụ xử lý ảnh nặng có thể dẫn đến hiện tượng trễ xung hoặc giật khung hình. Việc sử dụng Arduino Mega 2560 chạy vi điều khiển thời gian thực đơn nhiệm (Bare-metal C++) đảm bảo đáp ứng tức thời các tín hiệu đóng cắt vật lý, tăng độ tin cậy của toàn hệ sinh thái.


Kết luận

Đồ án tốt nghiệp "Thiết kế và thi công mô hình bãi giữ xe ô tô thông minh" đã giải quyết trọn vẹn bài toán tự động hóa kiểm soát phương tiện thông qua việc kết hợp hài hòa giữa thị giác máy tính tại biên và điều khiển nhúng thời gian thực. Hệ thống chứng minh tính khả thi cao với tỷ lệ nhận dạng biển số đạt 88.0% trên phần cứng giá rẻ, thời gian giải phóng phương tiện chỉ 1.45 giây/xe, loại bỏ hoàn toàn các bất cập của quy trình soát vé truyền thống. Đây là tiền đề kỹ thuật vững chắc để tiếp tục phát triển thành sản phẩm thương mại hoàn thiện, đóng góp thiết thực vào mục tiêu xây dựng hạ tầng đô thị thông minh (Smart City) tại Việt Nam.