Giới thiệu dự án

Trong kỷ nguyên chuyển đổi số và phát triển đô thị thông minh (Smart City), các hệ thống hiển thị thông tin công cộng và quảng cáo kỹ thuật số ngoài trời (Digital Out-of-Home - DOOH) đóng vai trò huyết mạch trong việc truyền tải thông điệp thị giác. Theo các báo cáo thị trường quảng cáo kỹ thuật số, hệ thống màn hình LED chiếm hơn 45% thị phần thiết bị hiển thị công cộng nhờ độ sáng vượt trội, khả năng hoạt động bền bỉ dưới mọi điều kiện ánh sáng và góc nhìn rộng. Tuy nhiên, phần lớn các hệ thống bảng điện tử truyền thống hiện nay vẫn phụ thuộc vào máy tính điều khiển cồng kềnh qua cáp COM/USB hoặc các mạch điều khiển ngoại tuyến nạp dữ liệu qua USB, dẫn đến sự thiếu linh hoạt trong việc cập nhật nội dung tức thời và chi phí vận hành cao.

+------------------+       Wi-Fi (UDP)       +-------------------+       UART        +--------------------+      1/16 Scan      +----------------------+
|  Android App     | ----------------------> |  NodeMCU ESP8266  | ----------------> |  STM32H743XI       | ------------------> | 16x Module P5 RGB    |
|  (User Interface)|   2.4 GHz Network       |  (Wi-Fi Gateway)  |   Baud: 115200    |  (ARM Cortex-M7)   |   Parallel GPIO     | (256x128 Matrix)     |
+------------------+                         +-------------------+                   +--------------------+                     +----------------------+
                                                       ^                                       ^
                                                       | 1-Wire                                |
                                             +-------------------+                   +--------------------+
                                             |  DHT11 Sensor     |                   | Nguồn 5V/40A (x2)  |
                                             | (Temp & Humidity) |                   | (Dual Power Rail)  |
                                             +-------------------+                   +--------------------+

Đồ án tốt nghiệp ngành Công nghệ Kỹ thuật Điện tử Truyền thông tại Trường Đại học Sư phạm Kỹ thuật TP.HCM đã giải quyết triệt để các hạn chế trên thông qua đề tài: "Thiết kế và thi công hệ thống bảng LED Matrix điều khiển bằng App Android" do sinh viên Trần Châu Phong và Nguyễn Minh Đức thực hiện dưới sự hướng dẫn của ThS. Phan Vân Hoàn.

Mục tiêu dự án

  1. Thiết kế phần cứng tối ưu: Xây dựng bo mạch điều khiển trung tâm sử dụng vi điều khiển hiệu năng cao STM32H743XI (ARM Cortex-M7 @ 400MHz) kết hợp module truyền thông không dây NodeMCU ESP8266.
  2. Thi công khối hiển thị ma trận: Ghép nối 16 tấm module LED Ma trận P5 Full-Color (kích thước $16\text{ cm} \times 32\text{ cm}$ mỗi tấm) tạo thành màn hình hiển thị kích thước lớn $64\text{ cm} \times 128\text{ cm}$ với độ phân giải $256 \times 128$ pixels ($32.768$ điểm ảnh RGB, tương đương $98.304$ bóng LED).
  3. Phát triển ứng dụng Android chuyên dụng: Xây dựng phần mềm trên smartphone Android hỗ trợ soạn thảo văn bản tiếng Việt có dấu, đồng bộ thời gian thực, truyền phát hiệu ứng đồ họa, hình ảnh bitmap, video và các trò chơi tương tác.
  4. Tích hợp thu thập dữ liệu môi trường: Đọc và hiển thị thời gian thực các thông số nhiệt độ, độ ẩm từ cảm biến DHT11 lên bảng LED.
  5. Đảm bảo tính ổn định và thời gian thực: Đạt tần số quét làm tươi $\ge 120\text{ Hz}$, loại bỏ hoàn toàn hiện tượng nhấp nháy (flickering), độ trễ truyền nhận không dây $< 50\text{ ms}$.

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

  • Phương pháp tiếp cận: Sử dụng kiến trúc xử lý phân tầng. Module ESP8266 đảm nhận vai trò trạm thu phát dữ liệu Wi-Fi cục bộ qua giao thức UDP không khóa (non-blocking) và đọc cảm biến qua chuẩn 1-Wire, sau đó chuyển tiếp dữ liệu thô sang STM32H743XI qua giao tiếp UART tốc độ cao. STM32H743XI tập trung $100%$ xung nhịp $400\text{ MHz}$ cho việc giải mã mảng dữ liệu 3D và quét song song 4 luồng dữ liệu ra các tấm LED P5.
  • Phạm vi & Giới hạn: Hệ thống triển khai điều khiển trong mạng Wi-Fi cục bộ (LAN), sử dụng 16 module P5 RGB chuẩn quét 1/16, cấp nguồn tập trung bởi 2 bộ nguồn tổ ong $5\text{V} - 40\text{A}$.

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

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

Tiêu chí Bảng LED truyền thống (PC/COM) Mạch điều khiển Offline (USB) Hệ thống STM32H7 + ESP8266 + Android
Giao thức điều khiển Cáp RS232/RS485 nối với máy tính Nạp file cấu hình thủ công qua USB Flash Wi-Fi Direct / Local IP qua giao thức UDP
Thiết bị điều khiển Máy tính để bàn / Laptop cồng kềnh Máy tính soạn thảo rồi copy vào USB Smartphone Android nhỏ gọn, mọi lúc mọi nơi
Khả năng hiển thị Đa dạng nhưng tốn điện cho PC Đơn sắc hoặc hiệu ứng giới hạn, giật lag Full 16.7 triệu màu, video, ảnh, game tương tác
Cập nhật tức thời Có (yêu cầu duy trì kết nối dây) Không (phải rút cắm USB thủ công) Có (độ trễ phản hồi $< 35\text{ ms}$)
Thu thập môi trường Phức tạp, cần gắn thêm card I/O Hầu như không hỗ trợ Tích hợp sẵn DHT11 qua chuẩn 1-Wire
Chi phí đầu tư Rất cao (chi phí PC + Card chuyên dụng) Thấp nhưng công năng nghèo nàn Tối ưu, hiệu năng cao, linh kiện dễ tìm

Phân loại yêu cầu hệ thống theo mô hình MoSCoW

  • Must Have (Bắt buộc có): Quét 16 module P5 đồng bộ ở độ phân giải $256 \times 128$; Giao tiếp Wi-Fi ổn định giữa Android và ESP8266; Hiển thị chữ tiếng Việt có dấu, thời gian thực và nhiệt độ/độ ẩm.
  • Should Have (Nên có): Điều chỉnh độ sáng bảng LED qua băm xung PWM chân OE; Hiệu ứng chữ cuộn mượt (Scroll Left/Right/Up/Down); Tích hợp giao diện Paint vẽ trực tiếp trên điện thoại hiện lên LED.
  • Could Have (Có thể có): Chế độ chơi game mini (Rắn săn mồi, Xe tăng, Xếp hình) tương tác bằng phím ảo trên App Android; Trình chiếu khung hình động (Video/GIF).
  • Won't Have (Chưa thực hiện trong giai đoạn này): Điều khiển đám mây qua giao thức MQTT/Cloud Server ngoài Internet; Hỗ trợ nền tảng iOS.

Thiết kế hệ thống

Kiến trúc phân tầng và ngăn xếp công nghệ (Technology Stack)

  • Bộ vi điều khiển trung tâm (MCU): STMicroelectronics STM32H743XIH6 (32-bit ARM Cortex-M7, $400\text{ MHz}$, $2\text{ MB}$ Flash, $1\text{ MB}$ SRAM với $192\text{ KB}$ TCM RAM, $864\text{ KB}$ SRAM).
  • Module truyền thông không dây: NodeMCU ESP8266-12E (Chip ESP8266EX @ $80\text{ MHz}$, $4\text{ MB}$ Flash SPI, chuẩn $802.11\text{ b/g/n}$).
  • Cảm biến môi trường: DHT11 (Chuẩn giao tiếp 1-Wire, dải đo $0-50^\circ\text{C} \pm 2^\circ\text{C}$, $20-90%\text{ RH} \pm 5%\text{ RH}$).
  • Khối điều khiển hiển thị: 16x Module LED Matrix P5 Full Color ($32 \times 64$ điểm ảnh/tấm, sử dụng IC giải mã quét hàng ICN2012 và IC ghi dịch dòng không đổi 16-bit ICN2028BP).
  • Môi trường lập trình:
    • Firmware STM32: Keil MDK ARM v5.28 kết hợp STM32CubeMX v5.2.0 (C/C++).
    • Firmware ESP8266: Arduino IDE v1.8.9 với bộ lõi ESP8266 Core v2.5.0.
    • Ứng dụng di động: Android Studio v3.4.0 (Java SDK 8, Target API 28, Min API 21).
+---------------------------------------------------------------------------------------------------+
|                                   ANDROID APPLICATION (JAVA)                                      |
|  [Text UI - UTF-8]   [Paint Canvas]   [Clock / Temp Engine]   [Game Control]   [Video Transcoder] |
+---------------------------------------------------------------------------------------------------+
                                                  | UDP Socket (Port 8888)
                                                  v
+---------------------------------------------------------------------------------------------------+
|                                NODEMCU ESP8266 GATEWAY (C/C++)                                    |
|   [Wi-Fi SoftAP / Station]  --->  [UDP Datagram Parser]  --->  [1-Wire DHT11 Driver Engine]       |
+---------------------------------------------------------------------------------------------------+
                                                  | Hardware UART (Baudrate 115200)
                                                  v
+---------------------------------------------------------------------------------------------------+
|                                STM32H743XI CENTRAL CORE (ARM C-M7)                                |
|   [UART DMA Buffer]  --->  [3D DATA_IN Framebuffer]  --->  [Bit-plane Modulation Converter]       |
|                                                                    |                              |
|                                                                    v                              |
|   [1/16 Scan Timer ISR]  <---  [Parallel GPIO Driver (Port B & C)] <--- [DATA_OUT Memory Slices]   |
+---------------------------------------------------------------------------------------------------+
                                                  | Parallel Bus: CLK, LAT, OE, A,B,C,D, R1..B2 (x4)
                                                  v
+---------------------------------------------------------------------------------------------------+
|                           16x P5 LED MATRIX PANELS (256x128 RGB PIXELS)                           |
|       [Row Multiplexer: 4x ICN2012]       |       [Column Drivers: 24x ICN2028BP / 74HC245]       |
+---------------------------------------------------------------------------------------------------+

Thiết kế bộ đệm dữ liệu (Framebuffer Architecture)

Để xử lý hiển thị 16.7 triệu màu mà không làm quá tải CPU, hệ thống xây dựng 2 tầng bộ đệm:

  1. Bộ đệm nhận dữ liệu (DATA_IN): Mảng 3 chiều uint8_t DATA_IN[3][128][256] lưu trữ các giá trị màu $R, G, B$ thô ($0 - 255$) cho từng tọa độ pixel. Chiếm $3 \times 128 \times 256 = 98.304\text{ Bytes}$ ($\approx 96\text{ KB}$) trong bộ nhớ RAM nội dung lượng lớn của STM32H7.
  2. Bộ đệm xuất dữ liệu (DATA_OUT): Cấu trúc phân tích dạng lát phẳng bit (bit-plane slicing) kết hợp dữ liệu song song của 4 khối hiển thị để nạp trực tiếp vào thanh ghi GPIO BSRR (Bit Set/Reset Register) của Port B và Port C trong mỗi chu kỳ ngắt Timer, loại bỏ hoàn toàn các phép toán dịch bit phức tạp trong ngắt.

Tính toán công suất và nguồn điện

Mỗi bóng LED RGB khi sáng cực đại ở cả 3 màu (Màu trắng) tiêu thụ dòng điện $I_{LED} \approx 60\text{ mA}$ ($20\text{ mA}$ cho mỗi kênh $R, G, B$). Do module P5 hoạt động ở chế độ quét $1/16$, tại mỗi thời điểm chỉ có $1/16$ số hàng được kích hoạt đồng thời.

$$\text{Tổng số điểm ảnh RGB} = 256 \times 128 = 32.768\text{ pixels}$$

$$\text{Dòng điện tiêu thụ cực đại tại một thời điểm:} \quad I_{\text{max}} = \frac{32.768 \times 0{,}02\text{ A}}{16} = 40{,}96\text{ A}$$

$$\text{Công suất tiêu thụ cực đại của khối LED:} \quad P_{\text{max}} = 5\text{V} \times 40{,}96\text{ A} \approx 204{,}8\text{ W}$$

Để đảm bảo hệ thống vận hành an toàn với hệ số dự phòng $\ge 1.8$, thiết kế trang bị 2 bộ nguồn tổ ong $5\text{V} - 40\text{A}$ (tổng công suất khả dụng $400\text{ W}$), chia tải riêng biệt cho 2 nửa màn hình và sử dụng dây cấp nguồn đồng nhiều lõi cỡ lớn để tránh sụt áp trên thanh cái DC.

Quy trình và phương pháp luận triển khai

+------------------------------------------------------------------------------------+
|  Phase 1: R&D & Schematic Design (Tuần 1 - Tuần 3)                                 |
|  - Khảo sát giao tiếp P5 Matrix, STM32H743, NodeMCU ESP8266                        |
|  - Thiết kế sơ đồ nguyên lý Altium, layout mạch in PCB giao tiếp vi điều khiển      |
+------------------------------------------------------------------------------------+
                                         |
                                         v
+------------------------------------------------------------------------------------+
|  Phase 2: Firmware & Scanning Algorithm (Tuần 4 - Tuần 7)                         |
|  - Lập trình ngắt Timer quét 1/16 trên Keil MDK, tối ưu thanh ghi GPIO STM32H7     |
|  - Lập trình truyền nhận UDP & 1-Wire trên ESP8266, thiết lập giao tiếp UART      |
+------------------------------------------------------------------------------------+
                                         |
                                         v
+------------------------------------------------------------------------------------+
|  Phase 3: Android App & Full Integration (Tuần 8 - Tuần 11)                        |
|  - Viết App Android: Text UTF-8, Paint, Clock, Effect, Game Controller             |
|  - Gia công khung sắt bảo vệ 16 tấm P5 ($64 \times 128\text{ cm}$), lắp ráp nguồn 5V|
+------------------------------------------------------------------------------------+
                                         |
                                         v
+------------------------------------------------------------------------------------+
|  Phase 4: Stress Testing & Calibration (Tuần 12 - Tuần 14)                         |
|  - Đo đạc tần số quét, kiểm tra sụt áp, đo độ trễ mạng, tinh chỉnh phần mềm        |
|  - Hoàn thiện tài liệu kỹ thuật và bảo vệ đồ án                                    |
+------------------------------------------------------------------------------------+

Ma trận đánh giá rủi ro kỹ thuật (Risk Assessment)

  • Rủi ro sụt áp & chết điểm ảnh LED: Khi toàn bộ màn hình hiển thị màu trắng, dòng tải tăng vọt gây sụt áp ở các tấm xa nguồn. Giải pháp: Đi dây cấp nguồn $5\text{V}/\text{GND}$ riêng biệt hình tia từ nguồn tổ ong tới từng cặp tấm P5; bổ sung tụ hóa $1000\mu\text{F}/16\text{V}$ và tụ gốm $100\text{nF}$ tại ngõ vào nguồn mỗi tấm.
  • Hiện tượng tràn bộ đệm UART: Dữ liệu UDP gửi từ điện thoại quá nhanh làm ESP8266 gửi liên tục gây nghẽn UART STM32. Giải pháp: Thiết kế giao thức đóng gói Frame có Header (0xAA 0x55), Byte độ dài (Length), Mã lệnh (Command), Data và Checksum kiểm tra tính toàn vẹn.

Implementation và kết quả

Quá trình phát triển và thuật toán cốt lõi

1. Thuật toán quét ma trận 1/16 bằng ngắt Timer trên STM32H7

Module LED P5 điều khiển 2 hàng cùng lúc thông qua các chân địa chỉ $A, B, C, D$ ($2^4 = 16$ tổ hợp tương ứng với các cặp hàng: $0 & 16$, $1 & 17$, $\dots$, $15 & 31$). Quá trình quét được thực thi bên trong ngắt phần cứng TIM2_IRQHandler với chu kỳ chính xác.

/**
 * @brief  Ham ngat Timer xuat du lieu cho 16 hang LED Matrix P5
 * @note   Chay tren STM32H743XI @ 400MHz, su dung thanh ghi GPIO toc do cao
 */
void TIM2_IRQHandler(void)
{
    if (TIM2->SR & TIM_SR_UIF)
    {
        TIM2->SR &= ~TIM_SR_UIF; // Xoa co ngat

        // 1. Vo hieu hoa xuat du lieu (Tat LED de tranh bong ma - Ghosting)
        HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET); // OE = Low (hoac High tuy logic dem)

        // 2. Chot du lieu da nap tu chu ky truoc ra ngoai den LED
        HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET);   // LAT = High
        __NOP(); __NOP();
        HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET); // LAT = Low

        // 3. Chuyen hang quet tiep theo (A, B, C, D)
        current_scan_line = (current_scan_line + 1) & 0x0F;
        GPIOA->ODR = (GPIOA->ODR & 0xFFF0) | (current_scan_line & 0x000F);

        // 4. Bat lai tin hieu cho phep xuat du lieu
        HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);   // OE = Active

        // 5. Day du lieu 64 cot cua hang ke tiep vao IC ghi dich ICN2028BP
        for (uint8_t col = 0; col < 64; col++)
        {
            // Xuat dong thoi du lieu 4 block LED tren Port B va Port C
            GPIOB->ODR = (GPIOB->ODR & 0x0000) | out_buffer_block1_2[current_scan_line][col];
            GPIOC->ODR = (GPIOC->ODR & 0x0000) | out_buffer_block3_4[current_scan_line][col];

            // Tao xung Clock day du lieu vao thanh ghi dich
            HAL_GPIO_WritePin(GPIOB, GPIO_PIN_15, GPIO_PIN_SET);   // CLK = High
            __NOP();
            HAL_GPIO_WritePin(GPIOB, GPIO_PIN_15, GPIO_PIN_RESET); // CLK = Low
        }
    }
}

2. Thuật toán truyền nhận gói tin UDP trên Android và ESP8266

Để đạt tốc độ phản hồi tức thời cho các tính năng tương tác như vẽ hình (Paint) và điều khiển game, ứng dụng Android sử dụng DatagramSocket truyền gói tin UDP không đồng bộ qua luồng nền (AsyncTask/Thread).

/**
 * @brief  Gui goi tin UDP dieu khien tu Android App den ESP8266
 * @param  commandType Ma lenh (0x01: Text, 0x02: Image, 0x03: Paint, 0x04: Game)
 * @param  payload Mang byte du lieu noi dung
 */
public void sendUDPCommand(byte commandType, byte[] payload) {
    new Thread(() -> {
        try {
            DatagramSocket socket = new DatagramSocket();
            InetAddress serverAddress = InetAddress.getByName("192.168.4.1"); // IP NodeMCU
            int serverPort = 8888;

            // Xay dung cau truc goi tin Header + Command + Length + Payload + Checksum
            byte[] packetData = new byte[payload.length + 5];
            packetData[0] = (byte) 0xAA; // Header 1
            packetData[1] = (byte) 0x55; // Header 2
            packetData[2] = commandType; // Command
            packetData[3] = (byte) payload.length; // Data Length
            System.arraycopy(payload, 0, packetData, 4, payload.length);
            
            // Tinh byte checksum XOR don gian
            byte checksum = 0;
            for (int i = 0; i < packetData.length - 1; i++) {
                checksum ^= packetData[i];
            }
            packetData[packetData.length - 1] = checksum;

            DatagramPacket packet = new DatagramPacket(packetData, packetData.length, serverAddress, serverPort);
            socket.send(packet);
            socket.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }).start();
}

Kết quả đo kiểm và đánh giá thực nghiệm

Hệ thống đã trải qua quá trình kiểm thử tải liên tục trong $72\text{ giờ}$ tại phòng thí nghiệm Bộ môn Điện tử Công nghiệp - Y Sinh với các chỉ số đo lường cụ thể:

+---------------------------------------------------------------------------------------------+
|                             BENCHMARK PERFORMANCE SUMMARY                                   |
+------------------------------------+------------------------------------+-------------------+
| Metric                             | Measured Value                     | Evaluation Status |
+------------------------------------+------------------------------------+-------------------+
| Resolution (Ma trận điểm ảnh)      | 256 x 128 Pixels (32,768 RGB LEDs) | PASS [100%]       |
| Hardware Refresh Rate (Tần số quét)| 160 Hz (Flicker-Free)              | PASS [Exceeded]   |
| Wi-Fi Latency (Độ trễ truyền gói)  | 28 ms - 42 ms (Môi trường LAN)     | PASS [Optimal]    |
| UART Transmission Baudrate         | 115,200 bps (0% Packet Drop Rate)  | PASS [Stable]     |
| Color Depth (Độ sâu màu sắc)       | 16.7 Million Colors (RGB888)       | PASS [Vivid]      |
| Temperature Sensor Accuracy        | +/- 1.2 deg C (Dải 20 - 45 deg C)  | PASS [Accurate]   |
| Continuous Run Uptime              | 72 Hours Zero-Crash                | PASS [Reliable]   |
+------------------------------------+------------------------------------+-------------------+

Phân tích hiệu năng tiêu thụ điện thực tế

  • Trạng thái hiển thị văn bản / Đồng hồ thông thường: Dòng tiêu thụ dao động từ $4{,}5\text{ A}$ đến $8{,}2\text{ A}$ ($22{,}5\text{ W} - 41\text{ W}$), nhiệt độ bề mặt module duy trì ở mức $34^\circ\text{C}$.
  • Trạng thái hiển thị toàn màn hình màu trắng (Full White $100%$ Brightness): Dòng tiêu thụ đạt đỉnh $38{,}6\text{ A}$ ($193\text{ W}$), 2 bộ nguồn $40\text{ A}$ đáp ứng mượt mà, độ sụt áp tại module xa nhất không vượt quá $0{,}22\text{V}$ (điện áp duy trì $\ge 4{,}78\text{V}$).

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

  1. Kiến trúc điều khiển không dùng FPGA/Card phát đắt tiền: Đề tài đã khai thác tối đa sức mạnh tính toán của lõi ARM Cortex-M7 trên vi điều khiển STM32H743XI để điều khiển trực tiếp $98.304$ LED mà không cần các card điều khiển chuyên dụng đắt đỏ (như LINSN, NovaStar hay Raspberry Pi), giúp giảm $65%$ chi phí phần cứng.
  2. Khả năng tương tác thời gian thực hai chiều: Thay vì chỉ hiển thị thông tin tĩnh, hệ thống cho phép người dùng vẽ tự do trên màn hình cảm ứng điện thoại và hiển thị tức thời lên bảng LED với độ trễ chỉ $32\text{ ms}$, đồng thời chơi các tựa game kinh điển (Snake, Tank) với phản hồi phím mượt mà.
  3. Thuật toán Font Engine tiếng Việt có dấu tối ưu: Tích hợp bộ giải mã ký tự UTF-8 trực tiếp, tối ưu hóa bảng mã font bitmap tiếng Việt trong bộ nhớ Flash của STM32, cho phép hiển thị các ký tự có dấu phức tạp với độ sắc nét cao mà không bị vỡ nét chữ.
  4. Hiệu suất năng lượng vượt trội: Kỹ thuật điều chế độ rộng xung PWM trên chân OE cho phép tinh chỉnh độ sáng 100 cấp độ từ App Android, giúp tiết kiệm đến $40%$ điện năng khi hoạt động vào ban đêm.

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

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

  • Hệ thống bảng thông tin trường học / Bệnh viện: Đặt tại sảnh chính để hiển thị thông báo khẩn, lịch công tác, đồng hồ thời gian thực và các chỉ số môi trường (nhiệt độ, độ ẩm phòng).
  • Biển hiệu quảng cáo thông minh cho chuỗi bán lẻ: Cho phép nhân viên cửa hàng thay đổi chương trình khuyến mãi, giá bán tức thời ngay trên smartphone mà không cần cắm máy tính.
  • Bảng chỉ dẫn nhà ga, bến xe, sân bay: Cập nhật thông tin chuyến bay, giờ tàu chạy thông qua giao tiếp không dây nhanh chóng.
+----------------------------------------------------------------------------------------------------+
|                                    HƯỚNG DẪN LẮP ĐẶT VÀ VẬN HÀNH                                   |
+----------------------------------------------------------------------------------------------------+
| 1. Lắp ráp cơ khí: Cố định 16 tấm P5 lên khung sắt kích thước 64x128cm bằng ốc nam châm chuyên dụng |
| 2. Đi dây Bus dữ liệu: Cắm cáp dẹt 16-pin từ cổng OUT tấm 1 sang cổng IN tấm 2 theo sơ đồ 4 hàng song|
| 3. Cấp nguồn: Đấu nối dây nguồn 5V/GND từ 2 nguồn tổ ong 5V-40A riêng biệt, cấp đều cho từng tấm  |
| 4. Kết nối mạng: Mở Wi-Fi trên smartphone, kết nối vào SSID "LED_MATRIX_AP" (Mật khẩu: 12345678)  |
| 5. Vận hành: Mở App Android "LED Controller", chọn chức năng Text/Image/Clock và bấm "Gửi dữ liệu"|
+----------------------------------------------------------------------------------------------------+

Phân tích tài chính và hiệu quả đầu tư (ROI)

  • Chi phí sản xuất mẫu thử nghiệm: $\approx 6.500.000\text{ VNĐ}$ (gồm 16 tấm P5, Kit STM32H7, NodeMCU ESP8266, 2 bộ nguồn 40A, khung sắt và phụ kiện).
  • So sánh thị trường: Một bảng LED Matrix Full-Color tương đương ngoài thị trường đi kèm bộ điều khiển công nghiệp có giá từ $14.000.000 - 18.000.000\text{ VNĐ}$.
  • Hiệu quả kinh tế: Tiết kiệm hơn $55%$ chi phí đầu tư ban đầu, thời gian thu hồi vốn cho các cơ sở kinh doanh dự kiến chỉ trong vòng 3 - 5 tháng nhờ tăng hiệu quả quảng bá sản phẩm.

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

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

  • Hệ thống mới hỗ trợ điều khiển trong mạng Wi-Fi nội bộ (Local SoftAP/LAN), chưa triển khai máy chủ trung gian qua Internet (Cloud MQTT).
  • Module P5 có khoảng cách điểm ảnh $5\text{ mm}$, phù hợp quan sát ở cự ly $\ge 3\text{ mét}$; khi quan sát gần dưới $1\text{ mét}$ hình ảnh vẫn có hiện tượng lộ hạt pixel.
  • Cảm biến DHT11 có tần số lấy mẫu thấp ($1\text{ Hz}$) và sai số độ ẩm còn lớn ($\pm 5%$).

Hướng phát triển mở rộng

  1. Nâng cấp chuẩn tấm nền LED: Chuyển đổi sang các dòng module LED P2.5 hoặc P3 trong nhà để nâng cao mật độ điểm ảnh, cho hình ảnh mịn màng sắc nét chuẩn Full HD.
  2. Tích hợp giao thức Internet of Things (IoT): Kết nối bảng LED về nền tảng Cloud qua MQTT/AWS IoT Core, cho phép quản lý tập trung hàng trăm bảng hiệu quảng cáo trên toàn quốc từ một Dashboard duy nhất.
  3. Nâng cấp cảm biến công nghiệp: Thay thế DHT11 bằng cảm biến SHT30 hoặc BME280 qua giao tiếp I2C để tăng độ chính xác của phép đo môi trường lên $\pm 0.3^\circ\text{C}$.
  4. Tối ưu hóa DMA2D trên STM32H7: Khai thác bộ tăng tốc đồ họa phần cứng Chrom-ART Accelerator (DMA2D) để phát trực tiếp video tốc độ khung hình cao $60\text{ FPS}$ từ thẻ nhớ SD.

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

+---------------------------------------------------------------------------------------------+
|                                    BENEFICIARY MATRIX                                       |
+-------------------+-------------------------------------------------------------------------+
| Target Group      | Quantified Value & Direct Benefits                                      |
+-------------------+-------------------------------------------------------------------------+
| Sinh viên         | Tài liệu tham khảo toàn diện về lập trình ARM Cortex-M7 bare-metal,     |
| Điện tử / IoT     | kỹ thuật quét LED Matrix 1/16 scan và xây dựng ứng dụng Android socket. |
+-------------------+-------------------------------------------------------------------------+
| Lập trình viên    | Thiết kế mẫu cho giao thức đóng gói Frame dữ liệu UDP-to-UART, quản lý   |
| Embedded / Mobile | Framebuffer 2 tầng và tối ưu hóa thời gian thực trên vi điều khiển.      |
+-------------------+-------------------------------------------------------------------------+
| Doanh nghiệp      | Giải pháp bảng quảng cáo tự chủ công nghệ, tiết kiệm 55-65% chi phí     |
| & Chuỗi bán lẻ    | đầu tư phần cứng, dễ dàng tùy biến giao diện theo thương hiệu.           |
+-------------------+-------------------------------------------------------------------------+
| Nhà nghiên cứu    | Dữ liệu thực nghiệm về giới hạn băng thông UART/GPIO trên dòng chip     |
| & Giảng viên      | STM32 thế hệ mới phục vụ giảng dạy hệ thống nhúng và IoT.               |
+-------------------+-------------------------------------------------------------------------+

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

1. Yêu cầu nguồn điện để hệ thống 16 tấm LED P5 hoạt động ổn định là gì?

Hệ thống yêu cầu nguồn cấp $5\text{V DC}$ với tổng công suất khuyến nghị $\ge 300\text{ W}$. Đồ án sử dụng 2 bộ nguồn tổ ong $5\text{V} - 40\text{A}$ ($200\text{ W} \times 2 = 400\text{ W}$). Bắt buộc phải đấu nối dây nguồn song song riêng rẽ đến từng cặp tấm P5 để tránh hiện tượng sụt áp làm lệch màu LED ở các tấm cuối chuỗi.

2. Vi điều khiển STM32H743XI có thể mở rộng tối đa bao nhiêu tấm LED P5?

Với dung lượng RAM nội $1\text{ MB}$ và xung nhịp $400\text{ MHz}$, STM32H743XI có thể quản lý bộ đệm và quét mượt mà tối đa 32 đến 48 tấm P5 (tương đương độ phân giải lên đến $512 \times 256$ pixels) ở tần số quét $> 100\text{ Hz}$ thông qua kỹ thuật điều khiển DMA song song đa luồng trên GPIO.

3. Tại sao hệ thống chọn giao thức UDP thay vì TCP để truyền dữ liệu từ App Android?

Giao thức UDP là giao thức phi kết nối (connectionless), không tốn thời gian bắt tay 3 bước (handshake) và không chờ tin báo nhận (ACK). Điều này mang lại tốc độ truyền dữ liệu cực nhanh với độ trễ thấp ($< 35\text{ ms}$), đặc biệt thích hợp cho các tác vụ truyền khung hình liên tục, vẽ trực tiếp (Paint) và điều khiển game thời gian thực mà không bị gián đoạn.

4. Hệ thống xử lý vấn đề hiển thị tiếng Việt có dấu như thế nào?

Ứng dụng Android mã hóa chuỗi ký tự nhập vào theo chuẩn Unicode UTF-8 và đóng gói gửi xuống ESP8266. STM32H743XI được nhúng sẵn một bảng tra cứu ma trận điểm (Bitmap Font Table 8x16 và 16x16) chứa đầy đủ các ký tự tiếng Việt có dấu. Khi nhận mã byte UTF-8, vi điều khiển ánh xạ trực tiếp sang mảng điểm ảnh tương ứng và nạp vào bộ đệm DATA_IN.

5. Chi phí bảo trì và độ bền của bảng LED P5 ra sao?

Module P5 trong nhà có tuổi thọ danh định $\ge 100.000\text{ giờ}$ hoạt động. Nhờ cấu trúc module ghép nối độc lập, khi có sự cố chết bóng hoặc hỏng IC ghi dịch, kỹ thuật viên chỉ cần tháo tấm bị lỗi thông qua ốc nam châm và thay thế tấm mới trong vòng chưa đầy 5 phút mà không làm gián đoạn toàn bộ hệ thống.


Kết luận

Đồ án tốt nghiệp "Thiết kế và thi công hệ thống bảng LED Matrix điều khiển bằng App Android" của sinh viên Trần Châu Phong và Nguyễn Minh Đức đã chứng minh tính khả thi, độ tin cậy và giá trị thực tiễn cao của việc kết hợp vi điều khiển hiệu năng cao STM32H743XI với công nghệ không dây ESP8266 và hệ điều hành di động Android. Đề tài không chỉ hoàn thành xuất sắc các yêu cầu kỹ thuật về hiển thị ma trận điểm ảnh độ phân giải cao ($256 \times 128$), quét mượt mà 16.7 triệu màu, hiển thị chữ tiếng Việt sắc nét và tích hợp cảm biến nhiệt - ẩm, mà còn mở ra giải pháp thương mại hóa với chi phí thấp hơn $55%$ so với các thiết bị ngoại nhập trên thị trường.

Hệ thống là nền tảng vững chắc để tiếp tục mở rộng phát triển thành mạng lưới màn hình quảng cáo thông minh kết nối vạn vật (IoT Digital Signage), sẵn sàng đáp ứng nhu cầu truyền thông thị giác đa phương tiện trong thời đại công nghệ số.