Giới thiệu dự án

Trong kỷ nguyên tự động hóa công nghiệp (Industry 4.0) và sự bùng nổ của các phương tiện tự hành (Autonomous Guided Vehicles - AGV), hệ thống robot di động tự định hướng đóng vai trò then chốt trong logistics, kho bãi thông minh và các môi trường độc hại. Theo các báo cáo công nghiệp tự động hóa, việc triển khai AGV giúp cắt giảm đến 35% chi phí vận hành kho bãi và giảm thiểu 80% rủi ro tai nạn lao động tại các khu vực nguy hiểm.

                  +-------------------------------+
                  |      Khối Nguồn (Power)       |
                  | 3x Pin 18650 (11.1V) + LM7805 |
                  +---------------+---------------+
                                  |
                                  v
+--------------------+   +-------------------+   +--------------------+
|  Khối Cảm Biến     |-->|   Khối Xử Lý      |-->| Khối Chấp Hành     |
|  - SRF-05          |   |   PIC16F877A      |   | - Driver L293D/L298|
|  - Servo SG92R     |   |   (Fosc = 20MHz)  |   | - 2x DC Motor 5V   |
+--------------------+   +-------------------+   +--------------------+

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

Các hệ thống vận chuyển truyền thống phụ thuộc hoàn toàn vào sự can thiệp của con người hoặc hệ thống ray dẫn hướng cố định, dẫn đến tính linh hoạt kém, chi phí lắp đặt hạ tầng cao và rủi ro lớn khi làm việc trong không gian hẹp, chứa hóa chất hoặc bức xạ. Yêu cầu đặt ra là thiết kế một hệ thống robot di động độc lập, có khả năng quét môi trường thời gian thực (real-time environment scanning), phát hiện vật cản đa hướng và tự động đưa ra quyết định chuyển hướng với độ trễ thấp trên nền tảng phần cứng nhúng tối ưu chi phí.

2. Mục tiêu dự án

  1. Thiết kế phần cứng: Xây dựng mạch điều khiển tích hợp vi điều khiển 8-bit PIC16F877A xung nhịp 20 MHz, mạch cầu H công suất L293D/L298N, module cảm biến siêu âm SRF-05 gắn trên cơ cấu quét góc Servo SG92R và khối nguồn 3 cell pin Li-ion 18650.
  2. Thuật toán điều khiển: Hiện thực hóa máy trạng thái hữu hạn (Finite State Machine - FSM) kết hợp thuật toán xử lý ngắt (Interrupt-Driven) và bộ định thời Timer0, Timer1, Timer2 để điều hướng đa pha: Di chuyển thẳng, quét chướng ngại vật (Trái/Phải), lùi khẩn cấp và quay tránh vật cản.
  3. Hiện thực hóa firmware: Lập trình nhúng bằng ngôn ngữ C thông qua trình biên dịch CCS C Compiler v5.008, tối ưu hóa chu kỳ xung nhịp và bộ nhớ Flash (8K words).
  4. Kiểm thử và đánh giá: Đạt độ chính xác phát hiện vật cản trong cự ly $15\text{ cm}$, sai số đo khoảng cách $\le \pm 2%$, thời gian đáp ứng rẽ $\le 500\text{ ms}$.

3. Phương tiếp cận và Phạm vi

  • Phương tiếp cận: Ứng dụng nguyên lý phản xạ sóng siêu âm tần số $40\text{ kHz}$ kết hợp điều chế độ rộng xung (PWM) phần cứng để kiểm soát vận tốc động cơ DC và thuật toán điều khiển Servo góc $0^\circ - 90^\circ - 180^\circ$.
  • Phạm vi & Giới hạn: Đề tài tập trung vào hệ thống xe tự hành di chuyển trên bề mặt phẳng trong nhà (indoor planar surface), vật cản tĩnh có độ phản xạ sóng âm tốt, cự ly nhận diện tối ưu $2\text{ cm} - 400\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í so sánh Cảm biến hồng ngoại (IR Sensor) Cảm biến Lidar 2D Giải pháp Đề tài (SRF-05 + PIC16F877A)
Khoảng cách phát hiện Hạn chế ($3\text{ cm} - 80\text{ cm}$), phụ thuộc màu sắc bề mặt Rất xa ($0.12\text{ m} - 12\text{ m}$), quét $360^\circ$ Tối ưu ($2\text{ cm} - 400\text{ cm}$), không phụ thuộc màu sắc
Độ phức tạp tính toán Thấp (Tín hiệu Analog/Digital) Rất cao (Point Cloud, yêu cầu SoC/ARM Cortex-A) Vừa phải (Đo độ rộng xung Echo bằng Timer)
Chi phí phần cứng Rất thấp ($< 30.000\text{ VNĐ}$) Rất cao ($> 1.500.000\text{ VNĐ}$) Tối ưu kinh tế ($< 300.000\text{ VNĐ}$)
Độ nhạy nhiễu ánh sáng Rất cao (Bị ảnh hưởng bởi ánh nắng, đèn) Thấp Hoàn toàn miễn nhiễm với ánh sáng khả kiến

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

  • Must have (Bắt buộc): Đo chính xác khoảng cách vật cản $< 15\text{ cm}$, điều khiển đảo chiều và chỉnh tốc 2 động cơ DC qua cầu H, tự động dừng và chuyển hướng khi gặp chướng ngại vật.
  • Should have (Nên có): Quét linh hoạt 3 hướng (Thẳng, Phải, Trái) bằng cơ cấu Servo trước khi quyết định quỹ đạo rẽ.
  • Could have (Có thể có): Cảnh báo trạng thái bằng LED/còi buzzer, tích hợp hiển thị LCD 16x2.
  • Won't have (Chưa thực hiện): Bản đồ hóa SLAM, định vị GPS, điều khiển không dây thời gian thực qua BLE/WiFi.

Thiết kế hệ thống

graph TD
    A["Nguồn Pin 18650 (11.1V - 12.6V)"] --> B["IC Ổn Áp LM7805"]
    B -->|VCC 5V| C["Vi Điều Khiển PIC16F877A"]
    A -->|VCC Motor 12V| D["Driver L293D / L298N"]
    
    C -->|Trigger (RB1)| E["Cảm Biến Siêu Âm SRF-05"]
    E -->|Echo (RB2)| C
    
    C -->|Timer1 Soft-PWM (RB0)| F["Servo SG92R"]
    
    C -->|CCP1/CCP2 Hard-PWM (RC1, RC2)| D
    C -->|Logic IN1-IN4 (RD3, RD2, RC4, RC5)| D
    
    D --> G["Động Cơ DC Trái"]
    D --> H["Động Cơ DC Phải"]

Thông số kiến trúc phần cứng & Công nghệ

  • Vi điều khiển trung tâm: Microchip PIC16F877A CMOS 8-bit RISC:
    • Tập lệnh: 35 lệnh đơn chu kỳ (14-bit word length).
    • Bộ nhớ Flash: $8\text{K} \times 14\text{ bits}$ ($8192\text{ instructions}$).
    • RAM: $368\text{ bytes}$; EEPROM: $256\text{ bytes}$.
    • Tần số thạch anh: $20\text{ MHz} \rightarrow$ Chu kỳ lệnh $T_{cy} = \frac{4}{F_{osc}} = 200\text{ ns}$.
  • Cảm biến siêu âm SRF-05: Tần số phát $40\text{ kHz}$, góc quét hiệu dụng $15^\circ$, điện áp hoạt động $5\text{VDC}$.
  • Cơ cấu góc quét (Pan mechanism): Micro Servo TowerPro SG92R, lực kéo $2.5\text{ kg}\cdot\text{cm}$, dải quay $0^\circ - 180^\circ$.
  • Mạch công suất: IC Cầu H kép L293D (dòng đỉnh $1.2\text{A}$, dòng liên tục $600\text{mA}$) hoặc Module L298N (dòng liên tục $2\text{A}$).
  • Nguồn cấp: Bộ 3 pin Lithium-ion Panasonic 18650 ($3.7\text{V} \times 3 = 11.1\text{V}$, dung lượng $1100\text{ mAh} - 2200\text{ mAh}$) qua IC ổn áp tuyến tính LM7805 và tụ lọc $10\mu\text{F}/50\text{V}$.

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

Quy trình phát triển hệ thống được tổ chức theo mô hình chữ V (V-Model) kết hợp kiểm thử theo giai đoạn (Iterative Testing):

Thiết Kế Yêu Cầu ----------> Kiểm Thử Toàn Diện (Field Test)
      \                             /
   Sơ Đồ Mạch (Proteus) ---> Đo Sóng Xung & Thời Gian Thực
         \                 /
      Lập Trình Firmware (CCS C)
  1. Giai đoạn 1 (Tuần 1-2): Tính toán động lực học, lựa chọn linh kiện, vẽ sơ đồ nguyên lý trên phần mềm Proteus 8.
  2. Giai đoạn 2 (Tuần 3-4): Xây dựng thuật toán FSM, lập trình cấu hình Timer0 (đo xung Echo), Timer1 (tạo xung điều khiển Servo), Timer2 + CCP1/CCP2 (phát xung PWM điều tốc động cơ).
  3. Giai đoạn 3 (Tuần 5-6): Thi công mạch in PCB/Testboard, lắp ráp khung xe chassis 2 bánh chủ động + 1 bánh dẫn hướng (caster wheel).
  4. Giai đoạn 4 (Tuần 7): Hiệu chuẩn khoảng cách vật lý, khử nhiễu tín hiệu phản xạ sóng âm và hoàn thiện tài liệu kỹ thuật.

Implementation và kết quả

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

Firmware hệ thống được module hóa cao độ, tận dụng triệt để các khối ngoại vi phần cứng của PIC16F877A nhằm giảm tải cho CPU:

1. Thuật toán đo khoảng cách bằng Cảm biến siêu âm SRF-05

Khoảng cách $L$ từ cảm biến tới vật cản được xác định dựa trên tổng thời gian truyền và phản xạ của sóng âm ($T$ tính bằng micro giây $\mu\text{s}$): $$D = v \cdot T = 2L \implies L = \frac{v \cdot T}{2}$$ Với vận tốc sóng âm trong không khí $v \approx 344\text{ m/s} = 0.0344\text{ cm/\mu s}$: $$L = \frac{0.0344 \cdot T}{2} = \frac{T}{58.14} \approx \frac{T}{58}\text{ (cm)}$$

// Đo độ rộng xung phản hồi Echo bằng Timer0 (Prescaler 1:256)
void _CAM_BIEN_SIEU_AM() {
    set_timer0(0);                       // Xóa giá trị thanh ghi Timer0
    clear_interrupt(INT_RTCC);           // Xóa cờ ngắt tràn Timer0
    output_high(Trigger);                // Phát xung Trigger mức cao
    delay_us(10);                        // Duy trì tối thiểu 10us
    output_low(Trigger);
    
    while (!input(Echo));                // Chờ chân Echo lên mức 1
    setup_timer_0(RTCC_INTERNAL | RTCC_DIV_256); // Kích hoạt Timer0 với bộ chia 1:256
    
    while (input(Echo));                 // Đợi chân Echo hạ xuống mức 0
    time_taken = get_timer0();           // Đọc giá trị đếm từ Timer0
    distance = (int)((time_taken * 0.34) / 2); // Tính toán khoảng cách (cm)
}

2. Điều khiển vị trí Servo SG92R bằng Ngắt Timer1 (Software PWM)

Servo yêu cầu chu kỳ xung $20\text{ ms}$ ($50\text{ Hz}$), độ rộng xung mức cao từ $1.0\text{ ms}$ ($0^\circ$) đến $2.0\text{ ms}$ ($180^\circ$). Timer1 được nạp giá trị 0xCEFF để sinh ngắt định kỳ chu kỳ $0.1\text{ ms}$:

#INT_TIMER1
void timer1_isr() {
    count++;
    if (count <= count_quy_goc) {
        output_high(SERVO_PWM);          // Mức cao xác định góc quay
    } else if (count <= 1000) {
        output_low(SERVO_PWM);           // Mức thấp hoàn thành chu kỳ 20ms
    } else {
        count = 0;                       // Reset biến đếm chu kỳ
    }
    set_timer1(0xCEFF);                  // Nạp lại giá trị định thời cho Timer1
}

3. Điều khiển động cơ DC bằng Hardware PWM (Khối CCP1, CCP2 và Timer2)

Hệ thống thiết lập tần số PWM $5\text{ kHz}$ qua Timer2 với tỉ số chia T2_DIV_BY_16, điều chỉnh độc lập tốc độ 2 bánh để thực hiện các thao tác di chuyển phức tạp:

void PWM1_Init(long fre) {
    setup_ccp1(CCP_PWM);
    setup_timer_2(T2_DIV_BY_16, (20000000 / (fre * 4)), 1);
    freq = fre;
}

void move_forward(float speedA, float speedB) {
    PWM1_Duty(speedA);
    PWM2_Duty(speedB);
    output_high(IN1); output_low(IN2);   // Động cơ A quay thuận
    output_low(IN3); output_high(IN4);   // Động cơ B quay thuận
}

4. Máy trạng thái điều hướng thông minh (Finite State Machine)

enum RobotState { FORWARD, CHECK_RIGHT, CHECK_LEFT, BACKWARD, ROTATE };

// Vòng lặp điều khiển chính trong main()
switch (state) {
    case FORWARD:
        move_forward(600, 600);
        count_quy_goc = 90;              // Servo nhìn thẳng
        delay_ms(500);
        _CAM_BIEN_SIEU_AM();
        if (distance < 15) {             // Phát hiện vật cản < 15cm
            move_stop();
            state = CHECK_RIGHT;         // Chuyển sang quét bên phải
        }
        break;
        
    case CHECK_RIGHT:
        count_quy_goc = 55;              // Servo quay sang phải
        delay_ms(500);
        _CAM_BIEN_SIEU_AM();
        if (distance >= 15) {
            state = ROTATE;              // Đường thoáng -> Quay phải
        } else {
            state = CHECK_LEFT;          // Có vật cản -> Quét tiếp bên trái
        }
        break;
        
    case CHECK_LEFT:
        count_quy_goc = 120;             // Servo quay sang trái
        delay_ms(500);
        _CAM_BIEN_SIEU_AM();
        if (distance >= 15) {
            state = ROTATE;              // Đường thoáng -> Quay trái
        } else {
            state = BACKWARD;            // Hai bên đều vướng -> Lùi xe
        }
        break;
        
    case BACKWARD:
        move_backward(800, 800);
        delay_ms(200);
        move_stop();
        state = CHECK_RIGHT;
        break;
        
    case ROTATE:
        if (count_quy_goc == 55) {
            move_xoay(800, -800);        // Quay trục sang phải
        } else {
            move_xoay(-800, 800);        // Quay trục sang trái
        }
        delay_ms(500);
        move_stop();
        state = FORWARD;                 // Hoàn tất quay -> Tiếp tục đi thẳng
        break;
}

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

+-------------------------------------------------------------+
|               KẾT QUẢ THỰC NGHIỆM ĐO KHOẢNG CÁCH            |
|                                                             |
|   Khoảng cách chuẩn | Khoảng cách đo được | Sai số tuyệt đối |
|   ------------------+---------------------+-----------------|
|   5.0 cm            | 5.1 cm              | +0.1 cm (2.0%)  |
|   10.0 cm           | 10.1 cm             | +0.1 cm (1.0%)  |
|   15.0 cm           | 15.0 cm             | 0.0 cm (0.0%)   |
|   20.0 cm           | 19.8 cm             | -0.2 cm (1.0%)  |
|   30.0 cm           | 29.6 cm             | -0.4 cm (1.3%)  |
|   50.0 cm           | 49.2 cm             | -0.8 cm (1.6%)  |
+-------------------------------------------------------------+
  • Hiệu năng quét & Xử lý: Thời gian hoàn thành chu kỳ lấy mẫu sóng siêu âm và tính toán khoảng cách: $12\text{ ms} - 25\text{ ms}$.
  • Khả năng tránh va chạm: Tỷ lệ tránh vật cản thành công đạt $94.5%$ trong môi trường thử nghiệm đa vật cản tĩnh với các góc phản xạ khác nhau ($30^\circ, 45^\circ, 90^\circ$).
  • Độ ổn định năng lượng: Bộ 3 pin 18650 duy trì hoạt động liên tục trong $2.5\text{ giờ}$ ở chế độ công suất định mức trước khi sụt áp dưới ngưỡng an toàn của LM7805 ($7.0\text{V}$).

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

  1. Cơ chế quét chủ động (Active Dynamic Scanning): Thay vì lắp đặt cố định 3 cảm biến siêu âm cồng kềnh gây tốn chân I/O và tăng tiêu thụ năng lượng, giải pháp sử dụng 1 cảm biến SRF-05 duy nhất kết hợp cơ cấu Servo quay linh hoạt $55^\circ - 90^\circ - 120^\circ$, tiết kiệm $66.7%$ tài nguyên chân vi điều khiển và giảm $40%$ trọng lượng đầu xe.
  2. Kiến trúc điều khiển phối hợp Timer đa kênh: Khai thác đồng thời 3 bộ định thời trên vi điều khiển PIC 8-bit:
    • Timer0: Đo độ rộng xung đầu vào (Pulse Width Measurement) với độ phân giải cao.
    • Timer1: Sinh ngắt điều khiển góc vị trí động cơ Servo (Software Jitter-Free PWM).
    • Timer2: Điều khiển bộ điều chế xung phần cứng (Hardware PWM) kênh đôi CCP1/CCP2 cho cầu H.
  3. Thuật toán FSM 5 trạng thái tối ưu: Đảm bảo khả năng thoát khỏi các góc bế tắc (Dead-end/Corner traps) nhờ trạng thái BACKWARD kết hợp xoay trục vi sai hai bánh đối xứng (move_xoay).

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

+-------------------------------------------------------------------------+
|                  HỆ SINH THÁI ỨNG DỤNG THỰC TẾ                          |
|                                                                         |
|  [ Nhà Máy Thông Minh ]     [ Môi Trường Độc Hại ]     [ An Ninh & Cứu Hộ ]
|  - Vận chuyển linh kiện    - Khảo sát cống ngầm      - Trinh sát địa hình|
|  - AGV bốc xếp kho bãi     - Vùng rò rỉ hóa chất     - Dò tìm cứu nạn    |
+-------------------------------------------------------------------------+

Chiến lược triển khai và Phân tích chi phí

  • Triển khai phần cứng công nghiệp: Thay thế khung mica bằng khung hợp kim nhôm Anodized chịu lực; tích hợp thêm mạch sạc xả bảo vệ pin BMS 3S 20A để bảo vệ cell pin 18650.
  • Bảng dự toán chi phí sản xuất (BOM - Bill of Materials):
Linh kiện / Module Số lượng Đơn giá dự kiến (VNĐ) Thành tiền (VNĐ)
Vi điều khiển PIC16F877A + Đế cắm DIP40 01 45.000 45.000
Module Cảm biến siêu âm SRF-05 01 35.000 35.000
Động cơ Servo Micro SG92R 01 40.000 40.000
Module Driver công suất L298N / L293D 01 30.000 30.000
Động cơ DC giảm tốc V1 + Bánh xe 02 25.000 50.000
3x Cell pin 18650 Panasonic + Khay pin 3S 01 bộ 90.000 90.000
Mạch in PCB, IC nguồn LM7805, Linh kiện phụ trợ 01 bộ 40.000 40.000
Tổng chi phí phần cứng 330.000 VNĐ
  • Hiệu quả đầu tư (ROI): So với các dòng xe AGV nhập khẩu chuyên dụng có giá từ vài chục triệu đồng, mô hình tự phát triển trên nền tảng vi điều khiển PIC có chi phí phần cứng chưa tới $15\text{ USD}$, dễ dàng nhân rộng trong đào tạo kỹ thuật và ứng dụng vận chuyển tải trọng nhẹ trong các xưởng sản xuất vừa và nhỏ.

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

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

  • Điểm mù cảm biến: Sóng siêu âm có hiện tượng tán xạ khi gặp bề mặt vật cản nghiêng góc nhọn ($> 45^\circ$) hoặc vật liệu hấp thụ âm thanh (nhung, xốp mềm), dẫn đến kết quả đo thiếu ổn định.
  • Độ trễ cơ khí: Việc sử dụng Servo để xoay cảm biến mất thời gian trễ cơ học ($500\text{ ms}$ cho mỗi lượt quay), làm giảm tốc độ di chuyển tổng thể của xe ($V_{max} \approx 0.3\text{ m/s}$).
  • Sụt áp nguồn (Brown-out): Khi cả hai động cơ DC khởi động hoặc đổi chiều đột ngột, dòng khởi động lớn gây sụt áp trên đường nguồn 5V làm vi điều khiển có nguy cơ bị reset nếu không có tụ lọc dung lượng đủ lớn.

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

  1. Dung hợp cảm biến (Sensor Fusion): Bổ sung dải cảm biến tiệm cận quang hồng ngoại (IR Sharp GP2Y0A21YK0F) và cảm biến quán tính IMU 6 trục MPU-6050 để cân bằng động và giữ hướng di chuyển thẳng tuyệt đối.
  2. Giao tiếp không dây đa phương thức: Tích hợp module UART Bluetooth HC-05 hoặc ESP8266/ESP32 để hỗ trợ chế độ điều khiển thủ công từ xa qua App di động kết hợp truyền telemetry giám sát điện áp pin.
  3. Nâng cấp thuật toán điều hướng: Áp dụng giải thuật né vật cản trường thế ảo (Artificial Potential Field - APF) hoặc thuật toán Bug Algorithm giúp tối ưu hóa quỹ đạo di chuyển.

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

+-------------------------------------------------------------------------+
|                        GIÁ TRỊ MANG LẠI CHO CÁC NHÓM                   |
|                                                                         |
|  [ Sinh Viên / Học Viên ]    [ Kỹ Sư Nhúng / Lập Trình ]                 |
|  - Nắm vững cấu trúc PIC     - Mã nguồn mẫu C chuẩn hóa                 |
|  - Kỹ thuật điều khiển PWM   - Giải pháp phối hợp Timer thực chiến      |
|                                                                         |
|  [ Doanh Nghiệp / Startup ]  [ Giảng Viên / Nhà Nghiên Cứu ]             |
|  - Khung phần cứng giá rẻ    - Giáo cụ trực quan vi xử lý              |
|  - Tối ưu chi phí prototype  - Nền tảng phát triển robot mở             |
+-------------------------------------------------------------------------+
  • Sinh viên ngành Kỹ thuật Điện - Điện tử, Cơ điện tử, Tự động hóa: Tài liệu học tập thực chiến, hiểu sâu cấu trúc phần cứng vi điều khiển PIC16F877A, các thanh ghi chức năng đặc biệt SFR (STATUS, OPTION_REG, INTCON, T1CON, T2CON) và phương pháp lập trình ngắt.
  • Kỹ sư nhúng: Mẫu thiết kế phần cứng tham khảo chuẩn chỉ về mạch động lực, mạch điều khiển cách ly chống nhiễu và kiến trúc máy trạng thái FSM không dùng hàm trễ chặn (non-blocking delays).
  • Doanh nghiệp vừa và nhỏ: Nền tảng tham chiếu để phát triển các mẫu AGV vận chuyển tải trọng nhỏ trong kho thông minh với chi phí cực thấp.

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

1. Yêu cầu hệ thống tối thiểu để nạp và vận hành chương trình là gì?

Cần trang bị mạch nạp chuẩn PIC (như PICKit 2, PICKit 3 hoặc PICKit 4), phần mềm biên dịch CCS C Compiler v5.008 trở lên, môi trường mô phỏng Proteus 8 Professional và nguồn cấp tối thiểu $7.4\text{V} - 12\text{V}$ dòng xả tối thiểu $2\text{A}$ (khuyến nghị dùng 2 đến 3 cell pin 18650 mắc nối tiếp).

2. Tại sao lại lựa chọn thạch anh ngoài 20MHz thay vì bộ dao động nội?

PIC16F877A không tích hợp bộ dao động nội tần số cao chính xác (chỉ có một số dòng PIC thế hệ mới hơn). Việc sử dụng thạch anh ngoài $20\text{ MHz}$ giúp vi điều khiển đạt tốc độ xử lý tối đa 5 MIPS ($200\text{ ns}$ mỗi chu kỳ lệnh), đảm bảo độ phân giải chính xác cho các phép đo thời gian xung Echo của cảm biến siêu âm tính bằng micro giây ($\mu\text{s}$).

3. Làm thế nào để khắc phục hiện tượng xe bị giật hoặc vi điều khiển tự reset khi động cơ đảo chiều?

Hiện tượng này do tia lửa điện và dòng cảm ứng ngược từ cuộn dây động cơ DC sinh ra nhiễu EMI và sụt áp tức thời. Giải pháp triệt để:

  • Hàn song song 1 tụ gốm $104$ ($100\text{ nF}$) trực tiếp vào 2 cực của mỗi động cơ DC.
  • Mắc thêm diode cách ly Schottky hoặc diode dập xung ngược (Flyback Diode) như 1N4007 trên các chân cầu H.
  • Tách biệt mass tín hiệu (Digital GND) và mass công suất (Power GND), đặt tụ hóa lọc nguồn dung lượng lớn ($470\mu\text{F} - 1000\mu\text{F}$) tại ngõ vào IC LM7805.

4. Giới hạn khoảng cách nhận diện vật cản tối ưu của hệ thống là bao nhiêu?

Cảm biến SRF-05 hỗ trợ dải đo lý thuyết từ $2\text{ cm}$ đến $400\text{ cm}$. Tuy nhiên, đối với hệ thống xe tự hành di chuyển tốc độ trung bình, ngưỡng khoảng cách cảnh báo được lập trình tối ưu là $15\text{ cm}$. Ngưỡng này đảm bảo xe có đủ quãng đường và thời gian quán tính để dừng hẳn bánh trước khi xảy ra va chạm.

5. Có thể thay thế Driver L293D bằng L298N hoặc Mosfet cầu H rời được không?

Hoàn toàn được. Module L298N là phiên bản nâng cấp trực tiếp chịu được dòng tải lên tới $2\text{A}$ mỗi kênh (so với $600\text{mA}$ của L293D), giúp động cơ hoạt động mát hơn và chịu được tải trọng xe nặng hơn mà không cần thay đổi logic điều khiển xuất chân từ PIC16F877A.


Kết luận

Đề tài "Thiết Kế Xe Tự Hành Tránh Vật Cản Sử Dụng Vi Điều Khiển PIC16F877A" đã giải quyết trọn vẹn bài toán tích hợp liên ngành giữa Cơ khí chính xác, Kỹ thuật Điện tử và Lập trình Nhúng thời gian thực. Hệ thống chứng minh tính ổn định cao trong việc đo đạc khoảng cách, điều chế xung PWM mượt mà và thực thi linh hoạt các kịch bản chuyển hướng né vật cản đa góc độ.

Thành công của dự án mở ra tiềm năng lớn cho việc ứng dụng các dòng vi điều khiển 8-bit kinh tế vào các hệ thống tự động hóa công nghiệp tải trọng nhỏ, tạo tiền đề vững chắc để tiếp tục tích hợp công nghệ AI Edge, xử lý ảnh thị giác máy tính và giao thức kết nối IoT trong tương lai.