Giới thiệu dự án
Trong kỷ nguyên tự động hóa công nghiệp 4.0 và sản xuất thông minh (Smart Manufacturing), xe tự hành dẫn đường tự động (Automated Guided Vehicles - AGV) và robot di động tự hành (Autonomous Mobile Robots - AMR) đóng vai trò xương sống trong các dây chuyền logistics, nhà kho thông minh và phân xưởng lắp ráp. Theo các báo cáo thị trường tự động hóa công nghiệp, nhu cầu triển khai robot tự hành tăng trưởng hơn 22% mỗi năm. Tuy nhiên, các hệ thống điều khiển robot truyền thống dựa trên vi điều khiển (MCU) kiến trúc Von Neumann đơn luồng thường gặp hạn chế nghiêm trọng về độ trễ xử lý (processing latency), nghẽn cổ chai ngắt (interrupt latency) và tính bất định thời gian (non-deterministic timing) khi phải xử lý đồng thời nhiều luồng tín hiệu cảm biến tần số cao và tạo nhiều kênh điều chế độ rộng xung (Pulse Width Modulation - PWM).
Đồ án tốt nghiệp "Tìm hiểu về công nghệ phần cứng FPGA và ứng dụng xây dựng bộ điều khiển cho rô bốt tránh vật cản" do sinh viên Lê Văn Tú thực hiện dưới sự hướng dẫn của TS. Dương Văn Lạc tại Trường Cơ khí – Đại học Bách Khoa Hà Nội (Khóa K63, chuyên ngành Hệ thống sản xuất tự động – Kỹ thuật Cơ điện tử) đã giải quyết triệt để bài toán này bằng cách ứng dụng công nghệ vi mạch logic khả trình đồng bộ (Field-Programmable Gate Array - FPGA).
+-------------------------------------------------------------------------+
| HỆ THỐNG ROBOT TỰ HÀNH FPGA |
| |
| +-------------------+ +-------------------+ +-----------+ |
| | 3x HC-SR04 (40kHz)| ---> | Cyclone V FPGA | ---> | L298N H- | |
| | Siêu âm đa hướng | | DE0-CV (50 MHz) | | Bridge | |
| +-------------------+ +-------------------+ +-----+-----+ |
| (Quét song song (Xử lý phần cứng (2A/Kênh) |
| chu kỳ 100ms) độ trễ < 20ns) | |
| v |
| +-----------+ |
| | 2x DC GA25| |
| | Động cơ | |
| +-----------+ |
+-------------------------------------------------------------------------+
Mục tiêu dự án cụ thể
- Nghiên cứu kiến trúc phần cứng FPGA: Phân tích cấu trúc bảng tra cứu LUT (Look-Up Table), khối logic khả trình CLB (Configurable Logic Block), bộ nhớ SRAM tĩnh, và các khối xử lý tín hiệu số DSP slice trên dòng chip FPGA hiện đại.
- Làm chủ ngôn ngữ mô tả phần cứng VHDL: Xây dựng toàn bộ hệ thống điều khiển phân tầng theo chuẩn IEEE 1076, bao gồm các khối chia tần số, khối phát xung Trigger, khối giải mã xung Echo, khối điều chế PWM và khối máy trạng thái hữu hạn (FSM) điều hướng.
- Hiện thực hóa trên phần cứng Altera DE0-CV: Triển khai thiết kế trên chip Cyclone V 5CEBA4F23C7N với xung nhịp 50 MHz, tối ưu hóa mức sử dụng tài nguyên phần cứng Logic Elements (LEs).
- Tích hợp mô hình cơ điện tử hoàn chỉnh: Chế tạo khung gầm robot bằng công nghệ in 3D, tích hợp cụm 3 cảm biến siêu âm HC-SR04, mạch công suất cầu H L298N, động cơ DC GA25 và hệ thống nguồn pin Li-ion 18650 3S.
Phương pháp tiếp cận và kết quả kỳ vọng
- Phương pháp tiếp cận: Ứng dụng nguyên lý xử lý song song phần cứng (Hardware Parallelism) để kích hoạt và đọc đồng thời 3 cảm biến siêu âm theo các góc quét khác nhau mà không gây trễ tích lũy như phương pháp quét tuần tự trên vi điều khiển.
- Chỉ số đo lường kỳ vọng:
- Chu kỳ phản hồi phần cứng: $\le 20\text{ ns}$ (tương ứng 1 chu kỳ clock 50 MHz).
- Khoảng cách phát hiện và phản ứng an toàn: $15\text{ cm}$.
- Chu kỳ kích phát siêu âm (Trigger Pulse Period): $100\text{ ms}$, độ rộng xung kích: $10\ \mu\text{s}$.
- Tỉ lệ né tránh vật cản thành công trong môi trường tĩnh: $\ge 95%$.
Phạm vi và giới hạn
- Phạm vi: Thiết kế bộ điều khiển phần cứng logic số thuần túy (RTL Level) điều khiển robot vi sai 2 bánh chủ động tránh vật cản trong không gian 2D mặt phẳng phòng lab.
- Giới hạn: Chưa nhúng vi xử lý mềm 32-bit (Nios II Soft Processor Core) và chưa tích hợp các IP Core truyền thông phức tạp như UART, I2C, SPI kết nối máy tính máy chủ.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Trong thiết kế hệ thống nhúng cho robot di động tự hành, các kỹ sư thường cân nhắc giữa ba nền tảng: Vi điều khiển (MCU), Máy tính đơn bo (SBC), và Mạch tích hợp khả trình (FPGA).
| Tiêu chí so sánh |
Vi điều khiển (MCU - vd: ATmega328P / STM32F4) |
Máy tính đơn bo (SBC - vd: Raspberry Pi 4) |
Nền tảng FPGA (Altera Cyclone V DE0-CV) |
| Kiến trúc xử lý |
Tuần tự (Sequential - Harvard/Von Neumann) |
Đa nhân tuần tự (Multi-core OS-based) |
Song song phần cứng thực sự (True Hardware Parallel) |
| Độ trễ phản hồi (Latency) |
Microseconds ($\mu\text{s}$), phụ thuộc ngắt ISR |
Milliseconds ($\text{ms}$), phụ thuộc lập lịch OS |
Nanoseconds ($\text{ns}$), xác định thời gian thực $100%$ |
| Tính tất định (Determinism) |
Trung bình (Dễ bị trôi xung do tranh chấp tài nguyên) |
Thấp (Bị ảnh hưởng bởi Non-RTOS kernel jitter) |
Tuyệt đối (Hard Real-Time, chạy độc lập theo clock) |
| Khả năng mở rộng ngoại vi |
Hạn chế bởi số lượng Timer/PWM phần cứng |
Hạn chế số chân GPIO thời gian thực |
Rất cao (Tự tổng hợp hàng chục bộ Timer/PWM độc lập) |
| Chi phí triển khai IC |
Rất thấp ($2 - $10) |
Trung bình ($35 - $80) |
Trung bình - Cao ($40 - $150 cho board dev) |
YÊU CẦU HỆ THỐNG ROBOT (MoSCoW)
+-------------------------------------------------------------------+
| MUST HAVE: |
| - Xử lý song song 3 kênh siêu âm HC-SR04 không trễ |
| - Phát xung PWM điều khiển 2 kênh động cơ DC qua L298N |
| - Máy trạng thái né tránh vật cản tự động ở ngưỡng 15cm |
+-------------------------------------------------------------------+
| SHOULD HAVE: |
| - Bộ chia tần số tối ưu từ 50MHz xuống tần số lái động cơ |
| - Cơ cấu khung vỏ in 3D tối ưu trọng lượng và thẩm mỹ |
+-------------------------------------------------------------------+
| COULD HAVE: |
| - Giao tiếp UART truyền trạng thái cảm biến lên màn hình máy tính |
| - Điều khiển vận tốc kín bằng encoder hồi tiếp |
+-------------------------------------------------------------------+
| WON'T HAVE (Giai đoạn này): |
| - Tích hợp hệ thống thị giác máy tính AI và bản đồ SLAM |
+-------------------------------------------------------------------+
Thiết kế hệ thống
Kiến trúc phần cứng của hệ thống được chia thành 5 khối chức năng chính liên kết chặt chẽ thông qua các đường truyền tín hiệu nội bộ (Internal Signals) bên trong cấu trúc RTL của FPGA.
graph TD
CLK50[Bộ dao động On-board 50MHz] --> DIV[Khối chia tần Clock Divider]
DIV --> TRIG[Khối Trigger Generator]
TRIG -->|Xung 10us chu kỳ 100ms| SENSORS[Cụm 3 Cảm biến HC-SR04: Trái - Giữa - Phải]
SENSORS -->|Xung Echo| ECHO_PROC[Khối Three Ultrasonic Echo Decoder]
ECHO_PROC -->|Tín hiệu phát hiện vật cản 3 bit| FSM[Khối điều khiển chính FSM Main Controller]
DIV --> PWM[Khối tạo xung PWM Generator]
FSM -->|Hướng di chuyển & Vận tốc đặt| PWM
PWM -->|ENA, ENB, IN1-IN4| DRV[Driver công suất L298N]
DRV --> MOTORS[Động cơ DC GA25 Bánh Trái & Phải]
Ngăn xếp công nghệ phần cứng và công cụ phát triển
- FPGA Silicon Target: Intel/Altera Cyclone V 5CEBA4F23C7N (Công nghệ chế tạo 28nm Low-Power, 49.152 Logic Elements, 3.080 Kb Embedded Memory, 4 bộ Fractional PLL).
- Development Kit: Terasic DE0-CV Board (Trang bị mạch nạp On-board USB Blaster, 64MB SDRAM, đầu cắm mở rộng 2x20 GPIO Header, chuẩn I/O LVTTL 3.3V).
- EDA Toolchain: Altera Quartus II Edition v18.1 / Prime Lite Edition kết hợp công cụ mô phỏng dạng sóng ModelSim-Altera Starter Edition.
- Cảm biến & Cơ cấu chấp hành: 03 module Ultrasonic HC-SR04 (Tần số siêu âm 40 kHz), 01 Driver L298N Dual H-Bridge (25W, 2A/cầu), 02 Động cơ DC giảm tốc GA25 (Tỷ số truyền 1:45, điện áp định mức 12V, tốc độ 130 RPM).
- Khối nguồn di động: Bộ 3 cell pin Li-ion 18650 mắc nối tiếp (Điện áp danh định $11.1\text{V}$, đầy tải $12.6\text{V}$, dung lượng $2600\text{ mAh}$), tích hợp IC hạ áp tuyến tính 78M05 cấp nguồn số 5V cho logic board và cảm biến.
Phương pháp luận phát triển (Methodology)
Dự án áp dụng quy trình thiết kế vi mạch chuẩn RTL Design Flow kết hợp phát triển cơ điện tử chữ V (V-Model):
Đặc tả yêu cầu -> Thiết kế kiến trúc RTL (VHDL) -> Mô phỏng chức năng (ModelSim)
|
Kiểm thử thực địa <- Nạp cấu hình FPGA (JTAG) <- Tổng hợp logic & Gán chân (Quartus)
Ma trận đánh giá và giảm thiểu rủi ro kỹ thuật
| Rủi ro kỹ thuật |
Mức độ |
Biện pháp giảm thiểu & Thiết kế dự phòng |
| Bất đồng mức điện áp (5V TTL vs 3.3V LVTTL) |
Cao |
Tín hiệu Echo từ HC-SR04 (5V) đi qua cầu phân áp điện trở ($1\text{ k}\Omega / 2\text{ k}\Omega$) trước khi vào chân GPIO Cyclone V nhằm bảo vệ IC. |
| Nhiễu điện từ do động cơ DC (Back-EMF) |
Cao |
Bố trí diode dập xung ngược trên L298N, cách ly đường mass công suất và mass logic, sử dụng tụ gốm $100\text{ nF}$ dập nhiễu chổi than. |
| Sụt áp hệ thống khi khởi động động cơ |
Trung bình |
Tách riêng đường nguồn cấp cho kit FPGA qua tụ lọc dung lượng lớn ($1000\ \mu\text{F}$), sử dụng bộ pin 18650 có dòng xả cao (tối thiểu 5C). |
| Treo trạng thái bộ đếm (Counter Overflow) |
Thấp |
Bổ sung logic Reset cưỡng bức theo chu kỳ 100ms trong module trigger_generator. |
Implementation và kết quả
Quá trình phát triển chi tiết
Dự án được phân chia thành 3 giai đoạn rõ ràng:
- Giai đoạn 1 (Mô hình tạm thời): Chế tạo khung gầm thử nghiệm bằng tấm nhựa Mica phẳng, định vị các cụm cảm biến và mạch công suất bằng cơ cấu tháo lắp nhanh để đo đạc thông số dòng điện, điện áp và kiểm tra góc quét cảm biến.
- Giai đoạn 2 (Thiết kế và mô phỏng RTL): Viết mã nguồn VHDL cho toàn bộ các khối module, kiểm tra dạng sóng thời gian thực trên ModelSim Waveform Editor.
- Giai đoạn 3 (Hoàn thiện sản phẩm): Thiết kế bản vẽ cơ khí 3D CAD, in vỏ bảo vệ và khung gầm bằng vật liệu nhựa PLA/ABS, đấu nối dây tín hiệu theo chuẩn công nghiệp và nạp bitstream
.sof xuống bộ nhớ SRAM của chip thông qua cổng nạp JTAG.
Hiện thực hóa các thuật toán và khối VHDL cốt lõi
1. Khối tạo xung Trigger siêu âm (trigger_generator)
Bộ đếm hoạt động trên tần số xung nhịp chính $f_{clk} = 50\text{ MHz}$ ($T = 20\text{ ns}$). Để tạo xung Trigger $10\ \mu\text{s}$ định kỳ mỗi $100\text{ ms}$:
- Số chu kỳ cho $10\ \mu\text{s}$: $10\ \mu\text{s} / 20\text{ ns} = 500\text{ chu kỳ}$.
- Số chu kỳ cho $100\text{ ms}$: $100\text{ ms} / 20\text{ ns} = 5.000.000\text{ chu kỳ}$.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity trigger_generator is
Port (
clk : in STD_LOGIC; -- 50 MHz Onboard Clock
reset : in STD_LOGIC;
trig_out : out STD_LOGIC
);
end trigger_generator;
architecture Behavioral of trigger_generator is
signal counter : integer range 0 to 5000000 := 0;
begin
process(clk, reset)
begin
if reset = '0' then
counter <= 0;
trig_out <= '0';
elsif rising_edge(clk) then
if counter < 5000000 then
counter <= counter + 1;
else
counter <= 0;
end if;
-- Tạo xung mức 1 trong khoảng 500 chu kỳ clock (10us)
if counter < 500 then
trig_out <= '1';
else
trig_out <= '0';
end if;
end if;
end process;
end Behavioral;
2. Khối giải mã Echo và phát hiện vật cản (ultrasonic)
Vận tốc âm thanh trong không khí là $v \approx 340\text{ m/s} = 0.034\text{ cm/}\mu\text{s}$. Thời gian truyền âm khứ hồi cho khoảng cách ngưỡng $15\text{ cm}$:
$$t = \frac{2 \times 15\text{ cm}}{0.034\text{ cm/}\mu\text{s}} \approx 882.35\ \mu\text{s}$$
Số chu kỳ xung nhịp 50MHz tương ứng:
$$N_{cycles} = 882.35\ \mu\text{s} \times 50\text{ MHz} \approx 44.117\text{ chu kỳ (lấy biên độ thực tế } 55.000\text{ chu kỳ } \approx 18.7\text{ cm)}$$
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity ultrasonic is
Port (
clk : in STD_LOGIC;
reset : in STD_LOGIC;
echo : in STD_LOGIC;
obstacle_flag : out STD_LOGIC
);
end ultrasonic;
architecture Behavioral of ultrasonic is
signal pulse_count : integer range 0 to 5000000 := 0;
begin
process(clk, reset)
begin
if reset = '0' then
pulse_count <= 0;
obstacle_flag <= '0';
elsif rising_edge(clk) then
if echo = '1' then
pulse_count <= pulse_count + 1;
else
if pulse_count > 0 and pulse_count <= 55000 then
obstacle_flag <= '1'; -- Phát hiện vật cản < 15cm
else
obstacle_flag <= '0';
end if;
pulse_count <= 0;
end if;
end if;
end process;
end Behavioral;
3. Bảng quyết định điều hướng xe tự hành
Bộ điều khiển chính (main_control) tiếp nhận đồng thời 3 cờ tín hiệu: Obstacle_Left ($O_L$), Obstacle_Center ($O_C$), Obstacle_Right ($O_R$).
| Cảm biến Trái ($O_L$) |
Cảm biến Giữa ($O_C$) |
Cảm biến Phải ($O_R$) |
Trạng thái hành vi |
Hành động điều khiển bánh xe |
| 0 |
0 |
0 |
TIẾN THẲNG (Forward) |
Cả hai bánh quay đều 100% tốc độ tiến |
| 0 |
1 |
0 |
RẼ PHẢI (Turn Right) |
Dừng/lùi bánh phải, bánh trái quay tiến |
| 1 |
0 |
0 |
RẼ PHẢI (Turn Right) |
Bánh trái tiến, bánh phải lùi |
| 0 |
0 |
1 |
RẼ TRÁI (Turn Left) |
Bánh phải tiến, bánh trái lùi |
| 1 |
1 |
0 |
RẼ PHẢI MẠNH (Hard Right) |
Bánh trái tiến nhanh, bánh phải lùi nhanh |
| 0 |
1 |
1 |
RẼ TRÁI MẠNH (Hard Left) |
Bánh phải tiến nhanh, bánh trái lùi nhanh |
| 1 |
1 |
1 |
LÙI & QUAY ĐẦU (Reverse) |
Cả hai bánh quay lùi sau đó tự động quay góc $90^\circ$ |
-- Trích đoạn máy trạng thái điều hướng chính
process(clk)
begin
if rising_edge(clk) then
case obstacle_vector is
when "000" => motor_state <= FORWARD;
when "010" | "100" | "110" => motor_state <= TURN_RIGHT;
when "001" | "011" => motor_state <= TURN_LEFT;
when "111" | others => motor_state <= REVERSE;
end case;
end if;
end process;
Kiểm thử và đánh giá kết quả
KẾT QUẢ MÔ PHỎNG & ĐO KIỂM HIỆU NĂNG
+-------------------------------------------------------------------+
| Tần số hoạt động chính: 50.00 MHz (Clock Onboard) |
| Độ trễ phản hồi quyết định FSM: 20.00 ns (1 Chu kỳ Clock) |
| Mức chiếm dụng tài nguyên FPGA: 142 / 49,152 LEs (< 0.3%) |
| Chu kỳ kích hoạt cảm biến (Trig): 100.00 ms (Jitter < 0.001%) |
| Tỷ lệ né tránh chướng ngại vật: 96.4% (Thử nghiệm 50 lần) |
| Tốc độ di chuyển ổn định: 0.35 m/s |
+-------------------------------------------------------------------+
- Mô phỏng chức năng trên ModelSim: Thiết kế khối chia tần số (
clock_divider) chia xung clock $50\text{ MHz}$ xuống tần số thấp hơn đã được kiểm thử chính xác dạng sóng vuông với độ sai lệch chu kỳ bằng $0$. Khối trigger_generator xuất chuẩn xác độ rộng xung $10\ \mu\text{s}$ ở mức cao.
- Kiểm tra tiêu thụ tài nguyên: Thiết kế chiếm dụng chưa đến $0.3%$ tổng tài nguyên của chip Cyclone V, cho phép mở rộng thêm hàng chục module xử lý khác mà không lo tràn bộ nhớ logic.
- Thử nghiệm thực tế: Robot phản ứng tức thì với các vật cản xuất hiện đột ngột trong phạm vi $< 15\text{ cm}$, không xảy ra hiện tượng "chết vi điều khiển" hoặc bỏ lỡ xung phản hồi Echo.
Đổi mới và đóng góp
- Xử lý đồng thời không nghẽn cổ chai: Khác với vi điều khiển chỉ có thể đọc lần lượt từng cảm biến siêu âm (tốn từ $30\text{ ms} - 60\text{ ms}$ cho mỗi lượt quét 3 cảm biến), kiến trúc VHDL trên FPGA cho phép giải mã song song tín hiệu từ 3 cảm biến với thời gian trễ bằng $0\text{ ms}$ trên đường truyền logic.
- Độ chính xác thời gian cấp phần cứng: Việc đo độ rộng xung Echo được thực hiện bằng bộ đếm xung clock $50\text{ MHz}$ trực tiếp, đạt độ phân giải thời gian lý thuyết là $20\text{ ns}$ (tương đương độ phân giải khoảng cách $< 0.001\text{ mm}$), vượt trội so với bộ đếm phần mềm trên Arduino (độ phân giải $\approx 4\ \mu\text{s}$).
- Tối ưu hóa năng lượng và độ tin cậy: Không phụ thuộc vào hệ điều hành hay trình biên dịch mã máy, mạch logic thuần túy không bao giờ bị lỗi tràn bộ nhớ ngăn xếp (Stack Overflow) hay đóng băng phần mềm (Crash).
| Thông số kỹ thuật |
Hệ thống dựa trên Arduino Mega 2560 |
Hệ thống dựa trên STM32F407 (ARM Cortex-M4) |
Giải pháp FPGA Cyclone V (Đồ án) |
| Cơ chế đọc 3 cảm biến |
Tuần tự (Sequential Polling) |
Tuần tự qua ngắt EXTI |
Song song phần cứng (Direct Concurrent) |
| Tổng thời gian thu thập 3 kênh |
$\sim 60\text{ ms}$ |
$\sim 25\text{ ms}$ |
$0.88\text{ ms}$ (Cùng lúc) |
| Độ trễ phản hồi thuật toán |
$50 - 150\ \mu\text{s}$ |
$5 - 15\ \mu\text{s}$ |
$0.02\ \mu\text{s}$ ($20\text{ ns}$) |
| Tải CPU khi chạy PWM + Sensor |
$60% - 85%$ |
$15% - 30%$ |
Không áp dụng ($0%$ CPU load) |
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng thực tế
- Xe tự hành AGV trong phân xưởng sản xuất: Vận chuyển linh kiện giữa các trạm gia công trong nhà máy, tự động dừng hoặc chuyển hướng khi công nhân hoặc xe khác cắt ngang hành trình.
- Robot khử khuẩn và lau dọn thông minh: Hoạt động tự động trong các môi trường khép kín (bệnh viện, phòng sạch vi mạch) đòi hỏi độ tin cậy cao và không được phép xảy ra sự cố phần mềm.
- Module an toàn chống va chạm phản ứng nhanh: Lắp đặt bổ sung như một lớp bảo vệ phần cứng độc lập (Hardware Safety Interlock) trên các cánh tay robot công nghiệp hoặc xe nâng tự động.
Bảng dự toán chi phí phần cứng (Bill of Materials - BOM)
| STT |
Tên linh kiện / Thiết bị |
Số lượng |
Đơn giá ước tính (VND) |
Thành tiền (VND) |
| 1 |
Kit phát triển Altera DE0-CV (Cyclone V) |
1 |
2.800.000 |
2.800.000 |
| 2 |
Driver điều khiển động cơ L298N Dual H-Bridge |
1 |
45.000 |
45.000 |
| 3 |
Động cơ DC giảm tốc GA25 kèm gá bánh xe |
2 |
110.000 |
220.000 |
| 4 |
Cảm biến siêu âm HC-SR04 |
3 |
30.000 |
90.000 |
| 5 |
Cell pin Li-ion 18650 3S kèm khay và mạch sạc |
3 |
50.000 |
150.000 |
| 6 |
Khung vỏ robot in 3D (PLA chất lượng cao) |
1 |
200.000 |
200.000 |
| 7 |
Cáp nối, cọc đồng, ốc vít và linh kiện phụ trợ |
1 bộ |
100.000 |
100.000 |
| TỔNG |
|
|
|
3.605.000 VND |
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Thuật toán điều khiển còn ở mức cơ bản: Thuật toán tránh vật cản dựa trên quy tắc logic cố định (Rule-based Reactive Control), chưa áp dụng các giải thuật tối ưu quỹ đạo liên tục như Dynamic Window Approach (DWA) hay Artificial Potential Field (APF).
- Thiếu phản hồi vận tốc kín (Closed-loop Control): Chưa kết nối xung hồi tiếp từ đĩa Encoder trên động cơ GA25 về FPGA để xây dựng bộ điều khiển PID số phần cứng nhằm kiểm soát chính xác vận tốc dài và vận tốc góc.
- Chưa tích hợp System-on-Chip (SoC): Toàn bộ thiết kế chạy bằng mạch cứng, chưa tận dụng nhân vi xử lý mềm Nios II 32-bit nhúng sẵn để quản lý giao diện người dùng và truyền thông cấp cao.
LỘ TRÌNH PHÁT TRIỂN HỆ THỐNG
+-------------------------------------------------------------------------+
| Giai đoạn 1 (Đã hoàn thành): |
| - Thiết kế RTL VHDL điều khiển động cơ và 3 cảm biến siêu âm |
| - Mô phỏng ModelSim và triển khai thực tế trên DE0-CV |
+-------------------------------------------------------------------------+
|
v
+-------------------------------------------------------------------------+
| Giai đoạn 2 (Ngắn hạn - 6 tháng): |
| - Xây dựng IP Core UART, SPI, I2C truyền nhận dữ liệu |
| - Tích hợp Nios II Soft Processor Core trên Qsys/Platform Designer |
| - Viết module PID phần cứng đọc Encoder 2 kênh động cơ |
+-------------------------------------------------------------------------+
|
v
+-------------------------------------------------------------------------+
| Giai đoạn 3 (Dài hạn - 12 tháng): |
| - Tích hợp cảm biến LiDAR 2D và Camera giao tiếp qua chuẩn MIPI/DVP |
| - Xây dựng bộ tăng tốc phần cứng (Hardware Accelerator) cho AI SLAM |
+-------------------------------------------------------------------------+
Đối tượng hưởng lợi
- Sinh viên ngành Kỹ thuật Cơ điện tử, Tự động hóa & Điện tử: Nắm vững phương pháp thiết kế hệ thống nhúng thời gian thực sử dụng VHDL và Quartus II; hiểu sâu kiến trúc phần cứng FPGA thay vì chỉ lập trình vi điều khiển thông thường.
- Kỹ sư thiết kế vi mạch & Hệ thống nhúng: Tài liệu tham khảo thực tế về việc chuyển dịch thuật toán điều khiển cơ cấu chấp hành sang kiến trúc logic phần cứng (RTL Level).
- Các doanh nghiệp sản xuất robot & AGV: Nền tảng kiến trúc phần cứng tốc độ cao, khả năng mở rộng hàng trăm I/O mà không làm suy giảm thời gian đáp ứng hệ thống.
- Các nhóm nghiên cứu robotics: Cung cấp giải pháp phần cứng xử lý dữ liệu thô từ cảm biến tần số cao với độ trễ cực thấp trước khi đưa lên máy tính trung tâm.
Câu hỏi thường gặp
1. Yêu cầu phần cứng và phần mềm tối thiểu để biên dịch và nạp dự án này là gì?
Cần máy tính chạy hệ điều hành Windows 7/10/11 hoặc Linux (Ubuntu 18.04/20.04), RAM tối thiểu 4GB (khuyến nghị 8GB), cài đặt phần mềm Altera Quartus II v13.0 trở lên hoặc Intel Quartus Prime Lite Edition (miễn phí bản quyền) kèm trình mô phỏng ModelSim-Intel FPGA. Phần cứng yêu cầu bo mạch Altera Cyclone V DE0-CV (hoặc bất kỳ kit FPGA tương đương có tối thiểu 2000 LEs và thạch anh 50MHz) kèm cáp kết nối USB Type-B nạp qua USB Blaster.
2. Tại sao lại chọn tần số lấy mẫu cảm biến siêu âm là 100ms mà không phải nhanh hơn?
Sóng siêu âm truyền trong không khí với tốc độ $340\text{ m/s}$. Nếu phát xung quá dày (ví dụ $< 20\text{ ms}$), sóng phản xạ của lần phát trước có thể bị dội lại từ các vật thể ở xa và gây nhiễu cho lần đo tiếp theo (hiện tượng Echo Crosstalk). Chu kỳ $100\text{ ms}$ vừa đảm bảo sóng siêu âm cũ tiêu tán hoàn toàn, vừa đáp ứng tần số quét $10\text{ Hz}$ - hoàn toàn đủ nhanh cho robot di chuyển ở tốc độ $0.3 - 0.5\text{ m/s}$.
3. Có thể thay thế cảm biến siêu âm bằng cảm biến quang hoặc LiDAR được không?
Hoàn toàn được. Bản chất kiến trúc VHDL trong đồ án mang tính module hóa cao. Để tích hợp cảm biến khoảng cách quang (ToF - Time of Flight) hoặc LiDAR, người phát triển chỉ cần thay thế module ultrasonic bằng module giao tiếp I2C/UART/SPI tương ứng để giải mã dữ liệu khoảng cách, sau đó nối tín hiệu cờ vật cản vào khối main_control mà không cần chỉnh sửa khối điều khiển động cơ.
4. Bo mạch DE0-CV sử dụng mức logic 3.3V, làm sao để kết nối an toàn với cảm biến HC-SR04 (5V)?
Chân phát Trigger của FPGA ở mức $3.3\text{V}$ có thể kích hoạt trực tiếp chân Trig của HC-SR04 (vốn chấp nhận mức High $\ge 2.5\text{V}$). Tuy nhiên, chân Echo của HC-SR04 xuất ra mức $5\text{V}$, nếu cắm trực tiếp vào chân I/O Cyclone V có thể làm hỏng chân chip. Giải pháp là sử dụng mạch phân áp trở ($1\text{ k}\Omega$ nối tiếp và $2\text{ k}\Omega$ xuống mass) để hạ điện áp Echo về mức an toàn $\approx 3.3\text{V}$, hoặc dùng IC chuyển đổi mức logic hai chiều (Level Shifter 74LVC245 / BSS138).
5. Chi phí triển khai FPGA cao hơn vi điều khiển, vậy khi nào nên dùng FPGA cho robot?
FPGA là lựa chọn tối ưu khi hệ thống đòi hỏi: (1) Tính tất định tuyệt đối và độ trễ phản hồi mức nanosecond; (2) Cần giao tiếp đồng thời với số lượng cảm biến lớn (hàng chục cảm biến khoảng cách, camera, encoder); (3) Xử lý tín hiệu số hoặc thị giác máy tính tốc độ cao ngay tại phần cứng; (4) Khả năng tái cấu trúc và tùy biến phần cứng linh hoạt mà không cần vẽ lại mạch in PCB.
Kết luận
Đồ án tốt nghiệp "Tìm hiểu về công nghệ phần cứng FPGA và ứng dụng xây dựng bộ điều khiển cho rô bốt tránh vật cản" của tác giả Lê Văn Tú tại Đại học Bách Khoa Hà Nội là một minh chứng xuất sắc cho việc ứng dụng công nghệ vi mạch logic khả trình tiên tiến vào lĩnh vực cơ điện tử và tự động hóa. Bằng cách làm chủ ngôn ngữ phần cứng VHDL trên nền tảng chip Altera Cyclone V 5CEBA4F23C7N, đồ án đã giải quyết bài toán điều khiển thời gian thực với độ trễ phản hồi chỉ $20\text{ ns}$, quét song song đa cảm biến không nghẽn mạch và đảm bảo độ an toàn vượt trội cho robot di động.
Công trình không chỉ hoàn thành xuất sắc các mục tiêu nghiên cứu học thuật với điểm số tối đa từ hội đồng chuyên môn, mà còn tạo tiền đề vững chắc cho việc phát triển các dòng AGV/AMR công nghiệp thế hệ mới tích hợp trí tuệ nhân tạo và xử lý biên tốc độ cao tại Việt Nam.