Giới thiệu dự án

Trong kỷ nguyên tự động hóa công nghiệp 4.0 và bối cảnh chuyển dịch dịch vụ không tiếp xúc (contactless service) hậu đại dịch, ngành F&B (Food and Beverage) cùng lĩnh vực chăm sóc y tế đang chứng kiến tốc độ gia tăng mạnh mẽ của robot dịch vụ với mức tăng trưởng kép hàng năm (CAGR) đạt hơn 18.5%. Đồ án "Robot Giao Thức Ăn" được thực hiện tại Trường Đại học Sư phạm Kỹ thuật TP.HCM (Khoa Đào tạo Chất lượng cao, ngành Công nghệ Kỹ thuật Điện tử - Truyền thông) nhằm cung cấp giải pháp vận chuyển tự động, an toàn và tối ưu hóa chi phí vận hành cho các nhà hàng, bệnh viện và khu cách ly.

       +-----------------------------------------------------------+
       |                  HỆ THỐNG ROBOT GIAO HÀNG                 |
       +-----------------------------------------------------------+
                                     |
        +----------------------------+----------------------------+
        |                                                         |
        v                                                         v
+-----------------------+                         +-----------------------+
|  Tự động (Autonomous) |                         | Từ xa (Teleoperation) |
|  - Dò đường (TCRT5000)|                         | - NodeMCU ESP8266     |
|  - Nhận trạm (KY-022) |                         | - Blynk Cloud / App   |
+-----------------------+                         +-----------------------+

1. Vấn đề thực tiễn (Problem Statement)

Các phương thức phục vụ truyền thống tại các nhà hàng và cơ sở y tế đang bộc lộ nhiều điểm nghẽn:

  • Chi phí nhân sự leo thang: Chi phí vận hành ca trực tăng 25–35% trong các khung giờ cao điểm.
  • Nguy cơ lây nhiễm chéo: Tiếp xúc trực tiếp giữa người với người trong môi trường bệnh viện và khu dịch tễ làm tăng rủi ro dịch bệnh.
  • Sai sót trong điều phối: Nhầm lẫn vị trí bàn, rơi vỡ thức ăn do yếu tố mệt mỏi thể chất của nhân viên.
  • Rào cản chi phí tiếp cận: Các dòng robot thương mại ngoại nhập (Pudu, Keenon) có giá thành quá cao (từ 150–300 triệu VNĐ), khó tiếp cận với phần lớn doanh nghiệp vừa và nhỏ (SMEs) tại Việt Nam.

2. Mục tiêu nghiên cứu

  1. Thiết kế phần cứng: Xây dựng mô hình robot 2 bánh vi sai (Differential Drive) chịu tải trọng từ 3–5 kg, tích hợp cơ cấu giảm chấn và khung gầm kim loại độ bền cao.
  2. Xây dựng khối điều khiển trung tâm: Lập trình nhúng trên vi điều khiển 32-bit ARM Cortex-M4 (STM32F407VGT6) xử lý đa nhiệm thời gian thực với tần số 168 MHz.
  3. Phát triển thuật toán điều hướng: Ứng dụng cụm cảm biến hồng ngoại TCRT5000 kết hợp thuật toán hiệu chỉnh PWM bám line độ chính xác cao.
  4. Hệ thống định vị trạm dừng: Giải mã giao thức hồng ngoại NEC (tần số sóng mang 38 kHz) qua cảm biến KY-022 và mạch phát KY-005 sử dụng vi điều khiển ATtiny85 để xác định chính xác số bàn/trạm.
  5. Điều khiển IoT không dây: Tích hợp module ESP8266 NodeMCU qua nền tảng Blynk Cloud, cho phép giám sát và điều khiển thủ công thời gian thực qua smartphone.
  6. Hệ thống tương tác đa phương tiện: Tích hợp màn hình LCD 1602 giao tiếp $I^2C$, nút chạm điện dung TTP223B và bộ phát âm thanh DFPlayer Mini kết hợp mạch khuếch đại Class-D PAM8403.

3. Phương pháp tiếp cận và kết quả kỳ vọng

Dự án áp dụng phương pháp phân tầng chức năng (Tiered Architecture), tách biệt tác vụ điều khiển động cơ thời gian thực (Hard Real-time) trên STM32F4 và tác vụ kết nối mạng (Non-deterministic Networking) trên ESP8266.

  • Chỉ số kỳ vọng: Tốc độ di chuyển ổn định 0.3–0.5 m/s, sai số dừng vị trí trạm $\le \pm 5\text{ mm}$, thời gian phát hiện vật cản $< 50\text{ ms}$ ở khoảng cách $3 - 80\text{ cm}$.

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

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

Tiêu chí Phục vụ truyền thống AGV Dẫn đường từ tính Robot SLAM LiDAR Giải pháp Đề tài (Optical Line + IR Beacon)
Chi phí đầu tư Thấp (chi phí định kỳ cao) Rất cao (> 100 triệu VNĐ) Rất cao (> 150 triệu VNĐ) Thấp (< 5 triệu VNĐ)
Độ phức tạp lắp đặt Không Cao (cắt sàn dán băng từ) Thấp (quét bản đồ) Thấp (dán decal line đen/trắng)
Khả năng chống nhiễu Phụ thuộc con người Cao Trung bình (môi trường động) Cao (Bộ lọc quang học + NEC IR 38kHz)
Bảo trì & Vận hành Quản trị nhân sự phức tạp Phức tạp Đòi hỏi kỹ sư chuyên sâu Dễ dàng thay thế module module hóa
+-------------------------------------------------------------------------+
|                  YÊU CẦU HỆ THỐNG THEO MÔ HÌNH MOSCOW                   |
+-------------------------------------------------------------------------+
| [M] MUST HAVE    | Bám line đen/trắng, nhận diện trạm dừng (IR NEC),     |
|                  | dừng khẩn cấp khi gặp vật cản (E18-D80NK).           |
+------------------+------------------------------------------------------+
| [S] SHOULD HAVE  | Điều khiển thủ công qua Blynk Wifi, âm thanh chào    |
|                  | bàn (DFPlayer + PAM8403), hiển thị LCD 1602 I2C.     |
+------------------+------------------------------------------------------+
| [C] COULD HAVE   | Tự động quay về trạm sạc sau timeout, tùy chỉnh tốc  |
|                  | độ theo tải trọng.                                   |
+------------------+------------------------------------------------------+
| [W] WON'T HAVE   | Điều hướng tự do không line (LiDAR SLAM), nhận diện  |
|                  | khuôn mặt khách hàng (Face Recognition).             |
+-------------------------------------------------------------------------+

Thiết kế hệ thống

Kiến trúc phần cứng của hệ thống phân tách thành 8 khối chức năng liên kết chặt chẽ qua bus dữ liệu và tín hiệu I/O:

graph TD
    subgraph Central_Processing_Unit [Khối Xử Lý Trung Tâm]
        STM32[Kit STM32F4 Discovery - STM32F407VGT6 ARM Cortex-M4]
    end

    subgraph Perception_Layer [Khối Thu Nhận Tín Hiệu & Cảm Biến]
        TCRT[Cụm TCRT5000 Line Tracker] -->|Digital In| STM32
        E18[Cảm biến E18-D80NK Obstacle] -->|Digital In NPN| STM32
        KY022[KY-022 IR Receiver + Uno/ATtiny85] -->|NEC Protocol Decode| STM32
        TTP[Cảm ứng điện dung TTP223B] -->|Logic Level| STM32
    end

    subgraph Communication_Layer [Khối Giao Tiếp & Điều Khiển Từ Xa]
        ESP[NodeMCU ESP8266] <-->|UART / GPIO| STM32
        App[Blynk App / Smartphone] <-->|Wi-Fi 802.11 b/g/n| ESP
    end

    subgraph Actuation_Layer [Khối Chấp Hành & Động Lực]
        STM32 -->|TIM1_CH1 / TIM1_CH2 PWM| L298N[Driver H-Bridge L298N]
        L298N --> M1[Động cơ DC JGA25-370 Trái]
        L298N --> M2[Động cơ DC JGA25-370 Phải]
    end

    subgraph HMI_Feedback [Khối Giao Diện & Cảnh Báo]
        STM32 -->|I2C Bus - PB6/PB7| LCD[LCD 1602 + PCF8574T]
        STM32 -->|GPIO Trigger| DF[DFPlayer Mini + PAM8403 + Loa 3W]
        STM32 -->|GPIO Output| LED[Hệ thống LED chỉ thị]
    end

    subgraph Power_Management [Khối Quản Lý Nguồn]
        BAT[Nguồn Pin 12VDC] --> XL[Buck XL4015 DC-DC]
        XL -->|5V / 3A Regulated| Central_Processing_Unit
        XL -->|5V / 3A Regulated| Perception_Layer
        BAT -->|12V Direct Rail| L298N
    end

Technology Stack & Danh mục linh kiện

  • MCU Trung tâm: STM32F407VGT6 (1024KB Flash, 192KB SRAM, 168MHz FPU, 3x ADC 12-bit, 2x DAC, 14 Timers).
  • Mạch điều khiển động cơ: Module L298N Dual Full-Bridge Driver (Dòng định mức 2A/kênh, sụt áp nội $\approx 2\text{V}$, dải điện áp $5\text{V} - 35\text{V}$).
  • Động cơ truyền động: DC Geared Motor JGA25-370 (12VDC, Tỉ số truyền 171:1, Tốc độ không tải 35 RPM, Moment định mức $4\text{ kg}\cdot\text{cm}$, Moment giữ đỉnh $9\text{ kg}\cdot\text{cm}$).
  • Cảm biến dò line: TCRT5000 Phototransistor Reflective Sensor (IC so sánh LM393, khoảng cách nhận diện $1 - 25\text{ mm}$).
  • Cảm biến vật cản: E18-D80NK (Điều chế hồng ngoại chống nhiễu quang ngoài, khoảng cách chỉnh định $3 - 80\text{ cm}$, ngõ ra NPN Open-Collector kéo trở $4.7\text{ k}\Omega$).
  • Hệ thống trạm phát hồng ngoại: Mạch phát KY-005 điều chế sóng mang 38 kHz giao thức NEC qua MCU ATtiny85 (8KB Flash, 20MHz).
  • Module mạng & IoT: ESP8266 NodeMCU ESP-12E (Tensilica L106 32-bit 80MHz, 4MB Flash, Wi-Fi 2.4GHz WPA2).
  • Mạch chuyển đổi nguồn: Buck Converter XL4015 (Hiệu suất chuyển đổi $\le 96%$, dòng tải tối đa 5A, tần số chuyển mạch 180 kHz).
+-----------------------------------------------------------------------------------+
|                        BẢNG ÁNH XẠ CHÂN KẾT NỐI (PIN MAPPING)                     |
+--------------------+-------------------+---------------+--------------------------+
| Module Ngoại Vi    | Chân Module       | Chân STM32F4  | Chức năng phần cứng      |
+--------------------+-------------------+---------------+--------------------------+
| Driver L298N       | ENA, ENB          | PE9, PE11     | TIM1_CH1, TIM1_CH2 (PWM) |
| Driver L298N       | IN1, IN2, IN3, IN4| PE12 to PE15  | GPIO_Output (Direction)  |
| Cụm TCRT5000       | D0_1 to D0_5      | PD8 to PD12   | GPIO_Input (Line States) |
| Cảm biến E18-D80NK | OUT (Pull-up)     | PD0           | GPIO_Input (Obstacle)    |
| Cảm ứng TTP223B    | OUT (Start/Stop)  | PD1, PD2      | GPIO_Input (Touch Event) |
| LCD 1602 (PCF8574T)| SCL, SDA          | PB6, PB7      | I2C1 (Address 0x27)      |
| NodeMCU ESP8266    | D1, D2 (State Bit)| PE2, PE3      | GPIO_Input (Wifi Mode)   |
| DFPlayer Mini      | IO1, IO2 (Trigger)| PB3, PB4      | GPIO_Output (Voice Play) |
+--------------------+-------------------+---------------+--------------------------+

Phương pháp luận phát triển (Methodology)

Dự án áp dụng mô hình phát triển Agile phần cứng lặp (Hardware-in-the-Loop Agile) kéo dài 26 tuần (từ 17/02/2020 đến 15/08/2020):

Tuần  1 -  4: Nghiên cứu tài liệu datasheet (STM32F4, L298N, NEC protocol), lập sơ đồ khối.
Tuần  5 -  8: Thiết kế mạch nguyên lý (Schematic) trên Proteus/Altium; thi công khung cơ khí.
Tuần  9 - 14: Lập trình firmware điều khiển bám line, ngắt Timer PWM trên STM32CubeIDE.
Tuần 15 - 18: Lập trình giải mã tín hiệu NEC IR trên ATtiny85/Arduino và giao tiếp ESP8266.
Tuần 19 - 22: Tích hợp toàn hệ thống, tinh chỉnh bộ thông số điều khiển, thử nghiệm tải trọng.
Tuần 23 - 26: Đánh giá độ tin cậy, tối ưu hóa năng lượng tiêu thụ, hoàn thiện báo cáo tốt nghiệp.

Implementation và kết quả

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

Firmware trung tâm được xây dựng bằng ngôn ngữ C tiêu chuẩn trên nền tảng STM32CubeIDE, tối ưu hóa thông qua các thư viện phần cứng STM32F4 HAL (Hardware Abstraction Layer).

+---------------------------------------------------------------------+
|         LƯU ĐỒ GIẢI THUẬT ĐIỀU HƯỚNG BÁM LINE VÀ TRẠM DỪNG          |
+---------------------------------------------------------------------+
                                  |
                                  v
                       +---------------------+
                       |   Đọc TCRT5000 (5)  |
                       +---------------------+
                                  |
                                  v
                       +---------------------+
                       | Tính toán sai lệch  |
                       | Error = Sum(Wi*Si)  |
                       +---------------------+
                                  |
              +-------------------+-------------------+
              |                                       |
              v                                       v
     [Phát hiện Vật cản]                     [Đúng vị trí Line]
      (E18-D80NK == LOW)                              |
              |                                       v
              v                              +-----------------+
     +-----------------+                     | Cập nhật PWM    |
     | Duty = 0%       |                     | Motor L/R       |
     | Bật còi báo     |                     +-----------------+
     +-----------------+                              |
                                                      v
                                             +-----------------+
                                             | Quét mã Trạm IR |
                                             | (KY-022 Decode) |
                                             +-----------------+
                                                      |
                                     +----------------+----------------+
                                     |                                 |
                                     v                                 v
                             [Khớp địa chỉ Bàn]              [Chưa tới đích]
                                     |                                 |
                                     v                                 v
                            +-----------------+                +---------------+
                            | Dừng xe         |                | Tiếp tục chạy |
                            | Chờ Touch TTP   |                +---------------+
                            | Phát âm thanh   |
                            +-----------------+

Thuật toán điều khiển động cơ bám line và bù tốc độ

Hệ thống sử dụng mảng 5 cảm biến $S_0, S_1, S_2, S_3, S_4$ với trọng số vị trí tương ứng $W = [-2, -1, 0, 1, 2]$. Giá trị sai lệch vị trí đường dẫn được tính toán:

$$\text{Error} = \frac{\sum_{i=0}^{4} W_i \cdot S_i}{\sum_{i=0}^{4} S_i}$$

Dựa trên giá trị sai lệch, bộ điều khiển cấp xung PWM cho 2 kênh trái ($V_L$) và phải ($V_R$) thông qua Timer 1:

$$V_L = V_{\text{base}} + K_p \cdot \text{Error} + K_d \cdot (\text{Error} - \text{Last_Error})$$

$$V_R = V_{\text{base}} - K_p \cdot \text{Error} - K_d \cdot (\text{Error} - \text{Last_Error})$$

/**
  * @brief  Xử lý tính toán điều khiển động cơ bám Line
  * @param  None
  * @retval None
  */
void Motor_Line_Tracking_Process(void)
{
    // Đọc trạng thái mảng 5 cảm biến TCRT5000 (0: Nền trắng, 1: Vạch đen)
    uint8_t s[5];
    s[0] = HAL_GPIO_ReadPin(GPIOD, GPIO_PIN_8);
    s[1] = HAL_GPIO_ReadPin(GPIOD, GPIO_PIN_9);
    s[2] = HAL_GPIO_ReadPin(GPIOD, GPIO_PIN_10);
    s[3] = HAL_GPIO_ReadPin(GPIOD, GPIO_PIN_11);
    s[4] = HAL_GPIO_ReadPin(GPIOD, GPIO_PIN_12);

    int8_t error = 0;
    static int8_t last_error = 0;
    
    // Đánh giá trọng số sai lệch
    if (s[0] == 0 && s[1] == 0 && s[2] == 1 && s[3] == 0 && s[4] == 0) error = 0;
    else if (s[0] == 0 && s[1] == 1 && s[2] == 1 && s[3] == 0 && s[4] == 0) error = -1;
    else if (s[0] == 0 && s[1] == 1 && s[2] == 0 && s[3] == 0 && s[4] == 0) error = -2;
    else if (s[0] == 1 && s[1] == 1 && s[2] == 0 && s[3] == 0 && s[4] == 0) error = -3;
    else if (s[0] == 1 && s[1] == 0 && s[2] == 0 && s[3] == 0 && s[4] == 0) error = -4;
    else if (s[0] == 0 && s[1] == 0 && s[2] == 1 && s[3] == 1 && s[4] == 0) error = 1;
    else if (s[0] == 0 && s[1] == 0 && s[2] == 0 && s[3] == 1 && s[4] == 0) error = 2;
    else if (s[0] == 0 && s[1] == 0 && s[2] == 0 && s[3] == 1 && s[4] == 1) error = 3;
    else if (s[0] == 0 && s[1] == 0 && s[2] == 0 && s[3] == 0 && s[4] == 1) error = 4;
    else error = last_error; // Giữ hướng khi mất line tạm thời

    // Hệ số khuếch đại vi sai
    int16_t Kp = 35;
    int16_t Kd = 15;
    int16_t P_term = error * Kp;
    int16_t D_term = (error - last_error) * Kd;
    int16_t correction = P_term + D_term;
    last_error = error;

    int16_t base_speed = 450; // Chu kỳ xung ARR = 1000
    int16_t left_duty  = base_speed + correction;
    int16_t right_duty = base_speed - correction;

    // Giới hạn giá trị PWM Duty Cycle [0, 999]
    if (left_duty > 900) left_duty = 900;
    if (left_duty < 0) left_duty = 0;
    if (right_duty > 900) right_duty = 900;
    if (right_duty < 0) right_duty = 0;

    // Cập nhật giá trị CCR vào Timer 1
    __HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, left_duty);
    __HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_2, right_duty);
}

Giải mã tín hiệu trạm dừng giao thức NEC

Giao thức NEC truyền chuỗi 32-bit gồm 8-bit địa chỉ, 8-bit đảo địa chỉ, 8-bit lệnh và 8-bit đảo lệnh. Sóng mang 38 kHz với cấu trúc logic:

  • Bit 0: Xung High $562.5,\mu\text{s}$ + Khoảng trống Low $562.5,\mu\text{s}$ (Tổng chu kỳ: $1.125\text{ ms}$).
  • Bit 1: Xung High $562.5,\mu\text{s}$ + Khoảng trống Low $1.6875\text{ ms}$ (Tổng chu kỳ: $2.25\text{ ms}$).
/**
  * @brief  Xử lý mã lệnh nhận diện trạm phát IR từ ATtiny85/KY-005
  * @param  received_addr: Mã bàn được giải mã từ KY-022
  * @param  target_table: Bàn được chọn từ giao diện người dùng
  */
void Station_Check_Process(uint8_t received_addr, uint8_t target_table)
{
    if (received_addr == target_table)
    {
        // 1. Dừng động cơ lập tức
        __HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, 0);
        __HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_2, 0);
        
        // 2. Kích hoạt âm thanh chào bàn qua DFPlayer Mini
        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_RESET);
        HAL_Delay(100);
        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET);
        
        // 3. Hiển thị thông báo trên LCD 1602 qua I2C
        LCD_SetCursor(0, 0);
        LCD_Print("DA TOI BAN SO: ");
        LCD_Print_Number(target_table);
        LCD_SetCursor(1, 0);
        LCD_Print("CHAM CAM UNG DE VE");

        // 4. Chờ tín hiệu nút chạm TTP223B hoặc timeout an toàn (60 giây)
        uint32_t start_tick = HAL_GetTick();
        while (HAL_GPIO_ReadPin(GPIOD, GPIO_PIN_1) == GPIO_PIN_RESET)
        {
            if (HAL_GetTick() - start_tick > 60000) break; // Timeout tự về
            HAL_Delay(50);
        }
    }
}

Đánh giá thử nghiệm và Kết quả thực nghiệm

+-----------------------------------------------------------------------------------+
|                        KẾT QUẢ KIỂM THỬ TỪNG PHÂN HỆ                              |
+--------------------------+----------------------+----------------+----------------+
| Bài kiểm tra (Test Case) | Điều kiện kiểm thử   | Kết quả đạt    | Đánh giá       |
+--------------------------+----------------------+----------------+----------------+
| Dò line vạch đơn 3cm     | Tốc độ 0.35 m/s      | Bám line 100%  | Đạt chuẩn      |
| Chuyển hướng góc 90 độ   | Bán kính cua 15 cm   | Không lệch quỹ | Đạt chuẩn      |
| Phát hiện vật cản trước  | Vật cản kích thước   | Phản hồi <40ms | An toàn tuyệt  |
| (Cảm biến E18-D80NK)     | 10x10cm cách 30cm    | Dừng cách 15cm | đối            |
| Nhận diện trạm NEC IR    | Khoảng cách 0.5 - 2m | Tỉ lệ 99.2%    | Không nhầm bàn |
| Điều khiển Blynk Wifi    | Bán kính mạng 30m    | Trễ < 80ms     | Mượt mà        |
| Tải trọng tối đa         | Đặt tải trọng 4.5 kg | Tốc độ suy     | Vận hành ổn    |
|                          |                      | giảm < 12%     | định           |
+--------------------------+----------------------+----------------+----------------+
           PHÂN BỔ NĂNG LƯỢNG TIÊU THỤ CỦA HỆ THỐNG
      +-------------------------------------------------+
      | [========== 68% ==========] Động cơ DC JGA25-370|
      | [==== 14% ====] Driver L298N & Buck XL4015      |
      | [=== 9% ===] STM32F4 Discovery Core             |
      | [== 5% ==] NodeMCU ESP8266 Wi-Fi Module         |
      | [= 4% =] Cảm biến (TCRT, E18, I2C LCD, Audio)   |
      +-------------------------------------------------+
      Total Current Consumption at Full Load: ~2.15A @ 12VDC

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

  1. Kiến trúc phân phối nhiệm vụ Dual-Core không đồng nhất (Heterogeneous Processing Architecture): Việc kết hợp STM32F407 (xử lý logic điều khiển kín, ngắt timer mili-giây) với ESP8266 NodeMCU (xử lý giao thức mạng Wi-Fi/TCP-IP) giải quyết triệt để hiện tượng đứng khung chương trình (blocking latency) khi mất kết nối mạng.
  2. Cơ chế xác định trạm bằng sóng mang hồng ngoại định danh (Coded IR Station Beacon): Thay vì sử dụng thẻ từ RFID đắt tiền hoặc các vạch line mã hóa phức tạp, hệ thống sử dụng các trạm phát hồng ngoại KY-005 mã hóa bằng ATtiny85 theo chuẩn NEC 38 kHz. Phương pháp này giảm $75%$ chi phí triển khai phần cứng trạm dừng so với công nghệ RFID dải cao.
  3. Cơ chế dự phòng kép (Dual-redundancy Mode): Tự động chuyển đổi giữa chế độ tự hành theo line (Autonomous Navigation) và chế độ can thiệp từ xa (Manual Override Teleoperation) qua ứng dụng di động khi phát hiện chướng ngại vật cố định không thể giải tỏa.
  4. Tối ưu hóa hiệu suất năng lượng: Sử dụng module chuyển đổi xung XL4015 hiệu suất cao (thay vì các IC tuyến tính như LM7805), giảm tổn hao nhiệt hơn $40%$, giúp kéo dài thời lượng hoạt động của pin 12V 4400mAh lên hơn 3.5 giờ làm việc liên tục.

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

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

  • Nhà hàng thông minh: Tự động mang thức ăn, nước uống từ khu vực bếp (Kitchen Hub) đến từng bàn được chỉ định thông qua thao tác bấm chọn số bàn của nhân viên bếp.
  • Bệnh viện & Khu cách ly điều trị: Vận chuyển thuốc men, bệnh phẩm y tế và khẩu phần ăn đến các phòng bệnh nhân truyền nhiễm, triệt tiêu hoàn toàn tiếp xúc vật lý giữa y bác sĩ và nguồn bệnh.
  • Căn-tin trường học/Doanh nghiệp: Phục vụ các khay cơm theo tuyến đường định sẵn trong các khung giờ nghỉ cố định.
       +--------------------+                  +--------------------+
       |  KHU VỰC BẾP/TRẠM  |                  |   BÀN PHỤC VỤ (1)  |
       |  - Nạp thức ăn     |                  |   - Beacon ID: 0x01|
       |  - Bấm chọn bàn    |                  +--------------------+
       +--------------------+                            ^
                 |                                       |
                 | ===> [Vạch Line Quang Decal] =========+
                 |                                       |
                 v                                       v
       +--------------------+                  +--------------------+
       |   BÀN PHỤC VỤ (2)  | <================ |   BÀN PHỤC VỤ (3)  |
       |   - Beacon ID: 0x02|                  |   - Beacon ID: 0x03|
       +--------------------+                  +--------------------+

Bảng dự toán chi phí & Hiệu quả kinh tế (ROI)

Hạng mục linh kiện / Thiết bị Số lượng Đơn giá (VNĐ) Thành tiền (VNĐ)
Kit STM32F407VGT6 Discovery 01 480,000 480,000
Module ESP8266 NodeMCU Lua 01 75,000 75,000
Động cơ DC JGA25-370 + Bánh xe 02 145,000 290,000
Driver điều khiển động cơ L298N 01 45,000 45,000
Cảm biến vật cản E18-D80NK 01 65,000 65,000
Mảng cảm biến dò line TCRT5000 05 12,000 60,000
Khối âm thanh (DFPlayer + PAM8403 + Loa) 01 bộ 85,000 85,000
Trạm phát hồng ngoại (ATtiny85 + KY-005) 05 bộ 50,000 250,000
Pin sạc Li-ion 12V 4400mAh + Mạch sạc 01 bộ 320,000 320,000
Khung gầm, chi tiết cơ khí gia công, Mica 01 bộ 450,000 450,000
Tổng chi phí phần cứng (BOM) 2,120,000 VNĐ
  • Thời gian hoàn vốn (Payback Period): So với mức lương trung bình của một nhân viên bưng bê phục vụ (khoảng 5,000,000 VNĐ/tháng), một hệ thống robot với tổng chi phí sản xuất khoảng hơn 2.1 triệu VNĐ mang lại thời gian thu hồi vốn dưới 1 tháng hoạt động.

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

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

  • Phụ thuộc vào đường line dẫn hướng: Việc thay đổi sơ đồ bàn ăn đòi hỏi phải dán lại đường line decal trên mặt sàn, làm giảm tính linh hoạt của không gian cao cấp.
  • Độ nhạy sáng môi trường: Cảm biến quang TCRT5000 có thể bị nhiễu cục bộ dưới ánh sáng mặt trời cường độ mạnh (> 5000 Lux).
  • Khả năng leo dốc hạn chế: Động cơ JGA25-370 với moment $4\text{ kg}\cdot\text{cm}$ hoạt động tối ưu trên mặt phẳng nằm ngang, hiệu suất giảm khi qua các gờ giảm tốc cao hơn $10\text{ mm}$.

Hướng nâng cấp mở rộng

  1. Tích hợp cảm biến LiDAR 2D & Thuật toán Cartographer SLAM: Chuyển đổi sang hệ thống điều hướng không đường dẫn (Virtual Line Navigation), xây dựng bản đồ số hóa không gian nhà hàng.
  2. Nâng cấp giao thức truyền thông Robot-to-Kitchen (V2X): Xây dựng máy chủ cục bộ bằng Raspberry Pi 4 chạy MQTT Broker và giao diện Web Dashboard quản lý toàn bộ đội xe (Fleet Management).
  3. Cơ chế tự động về dock sạc: Bổ sung cảm biến định vị trạm sạc không dây và thuật toán tự động nhận biết điện áp pin yếu qua chân ADC của STM32F4.

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

  • Sinh viên & Kỹ sư nhúng (Embedded Developers): Nguồn tài liệu tham khảo chi tiết về lập trình thanh ghi/HAL STM32F4, xử lý giải mã giao thức hồng ngoại NEC, điều chế xung PWM Timer phần cứng và kỹ thuật tích hợp IoT Blynk trên ESP8266.
  • Chủ doanh nghiệp ngành F&B: Giải pháp tham khảo để tối ưu hóa bài toán nhân sự, tạo điểm nhấn trải nghiệm công nghệ thu hút khách hàng và đảm bảo tiêu chuẩn vệ sinh an toàn dịch tễ.
  • Nhà nghiên cứu hệ thống AGV/Robot dịch vụ: Dữ liệu thực nghiệm về phối hợp điều khiển giữa hệ thống thời gian thực (STM32) và hệ điều hành thời gian thực phân tán phục vụ nghiên cứu sâu hơn về Robot học di động.

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

1. Yêu cầu môi trường kỹ thuật để triển khai robot là gì?

Robot yêu cầu mặt sàn có độ phẳng tương đối (độ nghiêng $\le 5^\circ$), vạch line dẫn hướng có độ tương phản cao (line đen trên sàn trắng hoặc ngược lại, bản rộng $20 - 30\text{ mm}$), trạm dừng gắn beacon hồng ngoại KY-005 ở độ cao ngang tầm mắt thu KY-022 ($15 - 20\text{ cm}$ so với mặt đất) và phủ sóng Wi-Fi băng tần 2.4 GHz.

2. Khi gặp chướng ngại vật bất ngờ, robot xử lý như thế nào?

Cảm biến E18-D80NK quét liên tục ở phía trước. Khi phát hiện chướng ngại vật trong khoảng cách cài đặt ($30\text{ cm}$), chân tín hiệu kéo xuống mức LOW tạo ngắt dừng khẩn cấp trên STM32F4, lập tức triệt tiêu xung PWM về 0%, đồng thời phát còi cảnh báo yêu cầu nhường đường. Xe tự động tiếp tục hành trình khi vật cản rời đi.

3. Hệ thống có thể tích hợp với phần mềm quản lý nhà hàng (POS) sẵn có không?

Hoàn toàn khả thi. Module ESP8266 hỗ trợ giao thức HTTP RESTful API và MQTT. Có thể cấu hình ESP8266 nhận lệnh gọi bàn trực tiếp từ hệ thống POS trung tâm qua mạng nội bộ mà không cần phụ thuộc vào ứng dụng Blynk.

4. Chi phí và quy trình bảo trì hệ thống ra sao?

Quy trình bảo trì định kỳ 3 tháng/lần bao gồm: vệ sinh thấu kính quang học TCRT5000 bằng cồn isopropyl, tra mỡ bôi trơn hộp số kim loại JGA25-370 và kiểm tra dung lượng pin Li-ion. Chi phí linh kiện thay thế rất thấp do sử dụng toàn bộ module tiêu chuẩn phổ thông trên thị trường.

5. Khả năng mở rộng cho nhiều robot cùng chạy một lúc (Multi-robot Coordination)?

Hệ thống có thể mở rộng chạy nhiều robot bằng cách gán địa chỉ MAC và Client ID riêng biệt trên giao thức MQTT. Thuật toán phân luồng tại các nút giao cắt (Intersections) sẽ được máy chủ trung tâm điều phối thông qua việc truyền cờ trạng thái khóa đường (Mutual Exclusion Semaphore) qua Wi-Fi.


Kết luận

Đề tài "Robot Giao Thức Ăn" đã giải quyết trọn vẹn bài toán tự động hóa quy trình vận chuyển trong dịch vụ ăn uống và y tế bằng cách kết hợp tối ưu giữa phần cứng cơ điện tử và phần mềm điều khiển nhúng chuyên sâu. Bằng việc tận dụng năng lực tính toán vượt trội của vi điều khiển STM32F407VGT6 kết hợp với nền tảng kết nối IoT ESP8266, hệ thống đạt độ ổn định cao, vận hành an toàn tuyệt đối với chi phí sản xuất cực kỳ cạnh tranh. Đồ án không chỉ khẳng định tính khả thi của mô hình robot dịch vụ nội địa hóa mà còn đóng vai trò là nền tảng vững chắc để tiếp tục phát triển lên các hệ thống robot tự hành thông minh ứng dụng SLAM và trí tuệ nhân tạo trong tương lai.