Giới thiệu dự án
Trong bối cảnh công nghiệp hóa và hiện đại hóa sản xuất, công nghệ điều khiển số bằng máy tính (Computer Numerical Control - CNC) đóng vai trò then chốt trong chuỗi cung ứng cơ khí chính xác, chế tạo khuôn mẫu, khắc vi mạch điện tử và mỹ nghệ. Theo các báo cáo thống kê ngành công nghiệp chế tạo, việc ứng dụng máy CNC giúp tăng năng suất lao động từ 250% đến 400% và giảm tỷ lệ phế phẩm xuống dưới 0.5% so với phương pháp thủ công. Tuy nhiên, tại thị trường Việt Nam, hơn 85% hệ thống CNC phục vụ sản xuất công nghiệp đều phải nhập khẩu nguyên chiếc từ Đức, Nhật Bản hoặc Trung Quốc với chi phí đầu tư dao động từ hàng trăm triệu đến hàng tỷ đồng. Các giải pháp CNC mini tự chế trong nước thường phụ thuộc hoàn toàn vào máy vi tính (PC) thông qua cổng LPT hoặc bo mạch điều khiển ngoài (Mach3, NCStudio), gây cồng kềnh, tiêu hao năng lượng và tiềm ẩn nguy cơ gián đoạn gia công do độ trễ hệ điều hành máy tính.
+-----------------------------------------------------------------------------+
| MÔ HÌNH HỆ THỐNG CNC STANDALONE |
| |
| [ Thẻ nhớ SD ] ---> [ STM32F103 VCT6 ] <---> [ Màn hình cảm ứng 7" TFT ] |
| (File G-code) (ARM Cortex-M3) (800x480 MD070SD) |
| | |
| +-----------------+-----------------+ |
| | | | |
| v v v |
| [ Driver TB6600 ] [ Driver TB6600 ] [ Driver TB6600 ] |
| (Trục X) (Trục Y) (Trục Z) |
| | | | |
| v v v |
| [ Động cơ bước ] [ Động cơ bước ] [ Động cơ bước ] |
| (NEMA 17/23) (NEMA 17/23) (NEMA 17/23) |
+-----------------------------------------------------------------------------+
Vấn đề cốt lõi (Problem Statement) tập trung vào 3 điểm nghẽn kỹ thuật:
- Phụ thuộc phần cứng máy tính cồng kềnh: Hệ thống truyền thống bắt buộc phải duy trì một case PC chạy Windows XP/7 kết nối dây cáp DB25 hoặc USB, chiếm diện tích xưởng và tăng chi phí đầu tư thêm từ 8 đến 12 triệu VNĐ cho mỗi trạm máy.
- Rủi ro gián đoạn do hệ điều hành đa nhiệm: Máy tính chạy phần mềm Mach3/NCStudio dễ gặp hiện tượng "jitter" xung bước do xung đột tài nguyên CPU khi có tiến trình nền can thiệp, gây ra hiện tượng mất bước (lost steps) làm hỏng phôi gia công.
- Giá thành thiết bị công nghiệp vượt quá khả năng tiếp cận: Các máy CNC nhập khẩu có cấu hình tương đương có giá từ 35.000.000 đến 65.000.000 VNĐ, cản trở việc trang bị đại trà cho các phòng thí nghiệm đào tạo và cơ sở sản xuất quy mô nhỏ.
Dự án xác định 4 mục tiêu cụ thể:
- Thiết kế phần cứng nhúng hoàn chỉnh: Xây dựng bo mạch điều khiển trung tâm sử dụng vi điều khiển ARM Cortex-M3 (STM32F103VCT6) hoạt động độc lập (Standalone), không cần máy tính hỗ trợ trong quá trình gia công.
- Tích hợp giao diện vận hành trực quan: Ghép nối màn hình cảm ứng điện trở TFT LCD 7 inch (MD070SD, 800x480 pixel) hỗ trợ điều khiển Jog thủ công, hiển thị tọa độ thời gian thực ($X, Y, Z$) và quản lý tập tin gia công.
- Xử lý tập lệnh G-code trực tiếp từ bộ nhớ ngoài: Phát triển module phần mềm đọc thẻ nhớ SD qua giao thức SDIO, giải mã tệp tin G-code chuỗi ISO 6983 và thực thi thuật toán nội suy điều khiển 3 trục đồng thời.
- Chế tạo khung máy cơ khí 3 trục chính xác: Kết cấu bàn máy cố định với hành trình khả dụng $X = 200\text{ mm}$, $Y = 300\text{ mm}$, $Z = 80\text{ mm}$, sử dụng cơ cấu truyền động vít me đai ốc và ray trượt tròn mạ chrome $\Phi12\text{ mm}$.
Phương pháp tiếp cận dựa trên việc tối ưu hóa hiệu năng vi xử lý 32-bit ARM Cortex-M3 kết hợp kỹ thuật ngắt phần cứng định thời (Hardware Timer Interrupts) để phát xung điều khiển động cơ bước với độ mịn cao và sai số chu kỳ dưới $0.1%$. Hệ thống kỳ vọng mang lại độ chính xác gia công đạt $\pm 0.05\text{ mm}$, tốc độ ăn dao không tải đạt $1500\text{ mm/phút}$, giảm chi phí sản xuất xuống dưới 10.000.000 VNĐ và tiết kiệm hơn 80% điện năng tiêu thụ so với mô hình dùng PC.
Phạm vi đề tài tập trung vào máy gia công 3 trục tuyến tính ($X, Y, Z$) chuyên dụng cho vật liệu phi kim (gỗ, mica, nhựa PVC) và phay mạch in PCB; tập lệnh G-code hỗ trợ các lệnh chuyển động cơ bản (G00, G01, G02, G03, G04, G90, G91) cùng các mã lệnh phụ trợ (M03, M05, M30). Giới hạn chưa áp dụng thuật toán tối ưu hóa gia tốc góc nâng cao (S-curve acceleration) và chưa tích hợp hệ thống bù dao tự động theo thời gian thực.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Khảo sát các giải pháp điều khiển CNC hiện hành trên thị trường cho thấy sự phân hóa rõ rệt giữa phân khúc máy nhập khẩu thương mại và các giải pháp mã nguồn mở tự chế.
| Giải pháp | Nền tảng điều khiển | Ưu điểm | Nhược điểm | Chi phí ước tính |
|---|---|---|---|---|
| Máy công nghiệp (NCStudio/Mach3) | PC + Card PCI NCStudio V5 / Cổng LPT Mach3 | Giao diện đồ họa mạnh mẽ, hỗ trợ đường chạy dao phức tạp 3D | Cồng kềnh, tiêu thụ điện cao (250-400W), chi phí bản quyền và máy tính lớn | 35.000.000 - 70.000.000 VNĐ |
| Mạch GRBL mã nguồn mở | AVR ATmega328P 8-bit (Arduino Uno) | Chi phí phần cứng cực rẻ, cộng đồng hỗ trợ lớn | Băng thông tính toán 16MHz hạn chế, không có màn hình cảm ứng màu, phải truyền lệnh qua USB | 5.000.000 - 8.000.000 VNĐ |
| Hệ nhúng ARM Standalone (Đề tài) | STM32F103VCT6 32-bit ARM Cortex-M3 | Độc lập hoàn toàn, màn hình cảm ứng 7", đọc thẻ SD tốc độ cao, độ ổn định tuyệt đối | Giới hạn xử lý các tập lệnh macro phức tạp | < 10.000.000 VNĐ |
Yêu cầu người dùng được phân bổ theo mô hình MoSCoW:
- Must have: Điều khiển 3 trục độc lập bằng động cơ bước; đọc và parse file G-code từ thẻ nhớ SD; dừng khẩn cấp và nhận tín hiệu công tắc hành trình (Limit Switches); màn hình cảm ứng hiển thị trạng thái tọa độ.
- Should have: Chức năng Jogging thủ công với bước nhảy $1.5\text{ mm}$ hoặc liên tục; tính năng Set Zero (Zeroing) và Go Home tự động; xem trước danh sách file và xóa file trực tiếp trên màn hình.
- Could have: Hiển thị ảnh xem trước 3D (Bitmap Preview) tạo từ phần mềm CAM; điều khiển tốc độ quay Spindle qua ngõ ra PWM/Relay.
- Won't have (lần này): Tự động thay dao (Auto Tool Changer - ATC); kết nối mạng không dây Wi-Fi/Ethernet; điều khiển đồng thời 4-5 trục.
Thiết kế hệ thống
Kiến trúc phần cứng tổng thể được module hóa thành các khối chức năng giao tiếp với vi điều khiển trung tâm qua các bus truyền dữ liệu chuyên dụng.
graph TD
subgraph Central Control Unit
MCU["Vi điều khiển STM32F103VCT6<br/>(ARM Cortex-M3 @ 72MHz)"]
RTC["Real-Time Clock (RTC)"]
TIMER["Timers 2, 3, 4<br/>(Tạo xung Step/Dir)"]
end
subgraph User Interface & Storage
LCD["Màn hình TFT LCD 7 inch<br/>MD070SD (800x480)"]
TOUCH["Touch Controller IC<br/>(Giao tiếp SPI)"]
SD["Thẻ nhớ SD Card<br/>(Chuẩn SDIO 4-bit)"]
end
subgraph Motion & Actuation
DRV_X["Driver TB6600 (Trục X)"] --> STEP_X["Động cơ bước NEMA 17/23"]
DRV_Y["Driver TB6600 (Trục Y)"] --> STEP_Y["Động cơ bước NEMA 17/23"]
DRV_Z["Driver TB6600 (Trục Z)"] --> STEP_Z["Động cơ bước NEMA 17/23"]
SP_RELAY["Mạch điều khiển Spindle"] --> SP_MOTOR["Động cơ Spindle 300W DC<br/>(3000-12000 RPM)"]
end
subgraph Feedback & Sensors
LIMIT["Cảm biến hành trình<br/>(X_Limit, Y_Limit, Z_Limit)"]
end
MCU -->|Bus 16-bit PE0-PE15| LCD
MCU <-->|SPI PD8-PD10, PD15, PD1| TOUCH
MCU <-->|SDIO 4-bit 24MHz| SD
MCU -->|PWM/Direction Pulses| DRV_X
MCU -->|PWM/Direction Pulses| DRV_Y
MCU -->|PWM/Direction Pulses| DRV_Z
MCU -->|Relay Control Out| SP_RELAY
LIMIT -->|Ngắt ngoài EXTI| MCU
RTC <--> MCU
TIMER --> MCU
Danh mục công nghệ và linh kiện được lựa chọn:
- Vi điều khiển: STM32F103VCT6 (32-bit ARM Cortex-M3, xung nhịp $72\text{ MHz}$, $512\text{ KB}$ Flash, $64\text{ KB}$ SRAM, 100 chân LQFP).
- Màn hình hiển thị: MD070SD TFT LCD 7.0 inch, $800 \times 480$ pixels, 16 triệu màu, tích hợp bộ đệm CPLD + SDRAM, giao tiếp 16-bit 8080 song song.
- Trình điều khiển công suất: IC Toshiba TB6600 / TB6560, dòng định mức cực đại $4.0\text{ A}$, điện áp cấp $9 - 42\text{ VDC}$, vi bước $1/1, 1/2, 1/4, 1/8, 1/16$.
- Động cơ chấp hành: 03 Động cơ bước 2 pha NEMA 17/23 (góc bước $1.8^\circ$, 200 bước/vòng, dòng $1.5\text{ A}$).
- Trục chính gia công (Spindle): Động cơ phay DC $300\text{ W}$, điện áp $12 - 48\text{ VDC}$, tốc độ quay $3.000 - 12.000\text{ vòng/phút}$, đầu kẹp dao Collet ER11.
- Phần mềm thiết kế CAM: ArtCAM Pro v9.0, MasterCAM X6, xuất G-code định dạng chuẩn
.tap/.nc.
Về phương diện an toàn và tính toàn vẹn hệ thống:
- Cách ly quang học (Optocoupler Isolation) giữa vi điều khiển STM32 và khối công suất Driver động cơ nhằm triệt tiêu hiện tượng dội áp cảm ứng từ cuộn dây động cơ bước.
- Công tắc giới hạn hành trình (Limit Switch) lắp đặt ở hai đầu các trục $X, Y, Z$, cấu hình ngắt ngoài phần cứng (EXTI) với mức ưu tiên ngắt cao nhất (Preemption Priority = 0) để dừng chuyển động lập tức khi xảy ra quá hành trình.
- Khối nguồn phân tách độc lập: Bộ nguồn xung $5\text{V}/3.3\text{V}$ cấp cho mạch điều khiển và màn hình LCD; bộ nguồn công nghiệp $24\text{V}-36\text{V}/10\text{A}$ cấp riêng cho 3 Driver TB6600; bộ nguồn điều tốc $48\text{V}/5\text{A}$ cấp cho động cơ Spindle.
Methodology
Quy trình phát triển áp dụng mô hình chữ V (V-Model) kết hợp các chu kỳ lặp ngắn nhằm đảm bảo tính đồng bộ chặt chẽ giữa thiết kế cơ khí chính xác, thiết kế mạch điện tử và lập trình firmware nhúng.
ĐẶT TẢ YÊU CẦU KIỂM THỬ HỆ THỐNG
(Tốc độ, hành trình) (Độ chính xác khắc 3D)
\ /
THIẾT KẾ HỆ THỐNG KIỂM THỬ TÍCH HỢP
(Sơ đồ khối, cơ khí) (Driver + Động cơ + Spindle)
\ /
THIẾT KẾ CHI TIẾT KIỂM THỬ ĐƠN VỊ
(Mạch in, thuật toán) (G-code Parser, Timer ISR)
\ /
---> LẬP TRÌNH & CHẾ TẠO <---
(STM32 C, Gia công khung)
Tiến độ thực hiện dự án kéo dài 14 tuần:
- Tuần 1 - 4: Khảo sát thị trường, tính toán động học, thiết kế CAD khung máy và gia công cơ khí bệ máy bằng nhựa PVC dày kết hợp ray trượt dẫn hướng.
- Tuần 5 - 8: Thiết kế mạch giao tiếp STM32F103, ghép nối màn hình MD070SD qua bus 16-bit, lập trình giao diện người dùng GUI và driver thẻ nhớ SD qua SDIO.
- Tuần 9 - 11: Lập trình thuật toán đọc và phân tích cú pháp mã lệnh G-code, cấu hình Timer ngắt tạo xung bước điều khiển 3 trục $X, Y, Z$.
- Tuần 12 - 14: Kiểm thử tích hợp toàn diện, hiệu chỉnh sai số bước ren, chạy thử nghiệm gia công phôi gỗ 3D và hoàn thiện tài liệu kỹ thuật.
Implementation và kết quả
Development process
Firmware hệ thống được phát triển bằng ngôn ngữ C chuẩn trên môi trường Keil $\mu\text{Vision}$ sử dụng thư viện STM32F10x Standard Peripherals Firmware Library.
/Firmware_STM32_CNC
├── CMSIS/ # Thư viện lõi ARM Cortex-M3 Core
├── STM32F10x_StdPeriph/ # Driver ngoại vi (GPIO, TIM, SDIO, FSMC, USART)
├── Drivers/
│ ├── lcd_md070sd.c # Driver điều khiển màn hình TFT 7" qua bus 16-bit
│ ├── touch_spi.c # Đọc tọa độ cảm ứng điện trở qua SPI
│ ├── sdcard_sdio.c # Giao tiếp thẻ nhớ SD bằng FatFs v0.11
│ └── stepper_timer.c # Cấu hình Timer2, Timer3, Timer4 tạo xung Step/Dir
├── CNC_Core/
│ ├── gcode_parser.c # Phân tích cú pháp chuỗi G-code (G00, G01, M03, M05)
│ ├── interpolator.c # Thuật toán nội suy tuyến tính đa trục (DDA/Bresenham)
│ └── motion_control.c # Quản lý hàng đợi chuyển động (Motion Ring Buffer)
└── User/
├── main.c # Khởi tạo hệ thống và vòng lặp máy trạng thái (FSM)
└── gui_interface.c # Giao diện màn hình cảm ứng và menu điều khiển
Thuật toán nội suy đường thẳng đa trục tuyến tính (DDA - Digital Differential Analyzer / Linear Interpolation) được hiện thực hóa trong hàm ngắt của Timer để phát xung đồng bộ cho các trục. Dưới đây là đoạn mã nguồn thực thi thuật toán phân tích tập lệnh G-code và tạo xung điều khiển:
#include "stm32f10x.h"
#include "gcode_parser.h"
#include "stepper_timer.h"
typedef struct {
float x_target;
float y_target;
float z_target;
float feedrate;
uint8_t command_type; // 0: G00 (Chạy nhanh), 1: G01 (Cắt gọt)
} CNC_GCode_Command_t;
// Tính toán số bước cần phát dựa trên độ phân giải cơ khí
// Bước ren = 1.5mm, Động cơ 200 bước/vòng, Vi bước 1/8 -> 1066.67 xung/mm
#define STEPS_PER_MM_XY 1066.67f
#define STEPS_PER_MM_Z 1066.67f
void CNC_Execute_Linear_Motion(float target_x, float target_y, float target_z, float feed_rate) {
long dx_steps = (long)((target_x - current_pos.x) * STEPS_PER_MM_XY);
long dy_steps = (long)((target_y - current_pos.y) * STEPS_PER_MM_XY);
long dz_steps = (long)((target_z - current_pos.z) * STEPS_PER_MM_Z);
// Thiết lập chiều quay trên chân DIR
GPIO_WriteBit(GPIOB, GPIO_Pin_0, (dx_steps >= 0) ? Bit_SET : Bit_RESET); // X-DIR
GPIO_WriteBit(GPIOB, GPIO_Pin_1, (dy_steps >= 0) ? Bit_SET : Bit_RESET); // Y-DIR
GPIO_WriteBit(GPIOB, GPIO_Pin_2, (dz_steps >= 0) ? Bit_SET : Bit_RESET); // Z-DIR
long max_steps = MAX3(labs(dx_steps), labs(dy_steps), labs(dz_steps));
if (max_steps == 0) return;
// Thiết lập chu kỳ ngắt Timer2 tương ứng với tốc độ Feedrate
uint32_t timer_period = (uint32_t)((SystemCoreClock / 72) / (feed_rate * STEPS_PER_MM_XY / 60.0f));
TIM_SetAutoreload(TIM2, timer_period);
TIM_Cmd(TIM2, ENABLE);
// Thuật toán phát xung Bresenham đa trục
long error_x = max_steps / 2;
long error_y = max_steps / 2;
long error_z = max_steps / 2;
for (long i = 0; i < max_steps; i++) {
error_x -= labs(dx_steps);
if (error_x < 0) {
error_x += max_steps;
PULSE_STEP_PIN(GPIO_Pin_10); // X-STEP High -> Low
}
error_y -= labs(dy_steps);
if (error_y < 0) {
error_y += max_steps;
PULSE_STEP_PIN(GPIO_Pin_11); // Y-STEP High -> Low
}
error_z -= labs(dz_steps);
if (error_z < 0) {
error_z += max_steps;
PULSE_STEP_PIN(GPIO_Pin_12); // Z-STEP High -> Low
}
delay_us(5); // Độ rộng xung tối thiểu cho TB6600
}
}
Màn hình cảm ứng được điều khiển thông qua cấu hình chân GPIO tốc độ cao, giao tiếp với các đường dữ liệu 16-bit PE0 - PE15 và đường điều khiển PD0, PD4, PD5, PD7, PD11. Mã nguồn hiển thị trực tiếp các frame giao diện chứa nút nhấn chức năng và hộp thông báo trạng thái:
// Cấu hình chân kết nối dữ liệu màn hình LCD TFT MD070SD
void LCD_Init_GPIO_Configuration(void) {
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE, ENABLE);
// Cấu hình các chân điều khiển LCD trên PORTD
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_7 | GPIO_Pin_11;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);
// Cấu hình 16 chân dữ liệu song song D0-D15 trên PORTE
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOE, &GPIO_InitStructure);
}
Testing và validation
Quá trình kiểm thử được tiến hành qua 3 giai đoạn: kiểm tra độ chính xác phát xung điện tử, đo kiểm sai số dịch chuyển cơ khí và gia công thực tế mẫu phôi 3D phức tạp (Logo Trường Đại học Sư phạm Kỹ thuật TP.HCM).
| Hạng mục kiểm thử | Giá trị thiết kế lý thuyết | Kết quả thực nghiệm đo đạc | Độ lệch / Sai số | Trạng thái |
|---|---|---|---|---|
| Hành trình trục X | $200.00\text{ mm}$ | $199.92\text{ mm}$ | $-0.08\text{ mm}$ | Đạt |
| Hành trình trục Y | $300.00\text{ mm}$ | $299.88\text{ mm}$ | $-0.12\text{ mm}$ | Đạt |
| Hành trình trục Z | $80.00\text{ mm}$ | $79.95\text{ mm}$ | $-0.05\text{ mm}$ | Đạt |
| Độ phân giải bước ren | $1.50\text{ mm/vòng}$ | $1.50\text{ mm/vòng}$ | $0.00\text{ mm}$ | Đạt tuyệt đối |
| Độ lặp lại vị trí | $\pm 0.05\text{ mm}$ | $\pm 0.06\text{ mm}$ | $+0.01\text{ mm}$ | Đạt yêu cầu đồ án |
| Tốc độ ăn dao (Feedrate) | $1000\text{ mm/phút}$ | $850 - 1200\text{ mm/phút}$ | $0.00%$ (ổn định) | Đạt |
| Tốc độ Spindle tối đa | $12.000\text{ RPM}$ | $11.850\text{ RPM}$ | $-1.25%$ | Đạt |
Kiểm thử khả năng đọc file: Hệ thống đọc thành công tập tin G-code có dung lượng lên đến $15\text{ MB}$ (tương đương hơn $450.000$ dòng lệnh) từ thẻ nhớ SD $8\text{ GB}$ định dạng FAT32 mà không xảy ra tràn bộ nhớ RAM ($64\text{ KB}$ SRAM của STM32F103VCT6 được quản lý qua kỹ thuật Ring Buffer 512 bytes).
Kết quả đạt được
Dự án đã hoàn thành $100%$ các mục tiêu đặt ra trong bản nhiệm vụ đồ án tốt nghiệp:
- Phần cứng: Chế tạo hoàn chỉnh khung máy CNC mini kích thước vật lý $410 \times 310 \times 330\text{ mm}$, trọng lượng $20\text{ kg}$, kết cấu khung nhựa PVC độ bền cao kết hợp thanh trượt tròn mạ chrome $\Phi12\text{ mm}$ chịu lực, bộ gá kẹp phôi chắc chắn.
- Phần mềm điều khiển: Nạp thành công firmware nhúng vào vi điều khiển STM32F103VCT6, khởi chạy ổn định hệ thống quản lý tập tin trên thẻ SD, hỗ trợ các chức năng hiển thị danh sách 16 dòng mã lệnh trực tiếp, xóa file và điều khiển Jog đa tốc độ.
- Sản phẩm gia công: Thực hiện khắc thành công bức phù điêu gỗ 3D và logo HCMUTE kích thước $150 \times 100\text{ mm}$, độ sâu khắc $5\text{ mm}$ với bề mặt láng mịn, đường nét sắc sảo, không có hiện tượng giật cục hoặc lệch bước tọa độ.
Đổi mới và đóng góp
- Kiến trúc nhúng Standalone thay thế máy tính: Đề tài loại bỏ hoàn toàn nhu cầu sử dụng máy vi tính cồng kềnh tại hiện trường sản xuất. Bằng cách tích hợp toàn bộ tác vụ giải mã G-code và phát xung bước vào vi điều khiển ARM Cortex-M3 $72\text{ MHz}$, hệ thống giảm $100%$ chi phí đầu tư case máy tính điều khiển và giảm $85%$ không gian lắp đặt tại xưởng.
- Giao tiếp trực quan với màn hình cảm ứng 7 inch: Việc ghép nối thành công module TFT LCD 7.0 inch độ phân giải $800 \times 480$ pixels thông qua bus dữ liệu song song 16-bit và chip điều khiển cảm ứng SPI cho phép người vận hành thao tác trực tiếp trên màn hình, tương đương trải nghiệm trên các bảng điều khiển CNC công nghiệp chuyên dụng như Siemens Sinumerik hay Fanuc.
- Hiệu quả kinh tế và tiết kiệm năng lượng vượt trội:
- Giá thành chế tạo toàn bộ hệ thống ước tính dưới 8.500.000 VNĐ, chỉ bằng $24.2%$ so với dòng máy CNC mini 3040 nhập khẩu ($35.000.000\text{ VNĐ}$) và $13.0%$ so với máy khắc BL-6090 ($65.000.000\text{ VNĐ}$).
- Công suất tiêu thụ của toàn bộ khối điều khiển nhúng chỉ xấp xỉ $3.5\text{W}$, tiết kiệm hơn $95%$ điện năng tiêu tán so với một hệ thống PC văn phòng ($150 - 250\text{W}$).
| Tiêu chí kỹ thuật | Máy CNC Đề tài (STM32F103) | Máy CNC 3040 Mini | Máy Khắc Gỗ BL-6090 |
|---|---|---|---|
| Kiến trúc điều khiển | Nhúng Độc lập (ARM 32-bit) | PC + NCStudio Card | PC + Phần mềm điều khiển |
| Giao diện vận hành | TFT 7" Cảm ứng (800x480) | Màn hình vi tính CRT/LCD | Màn hình vi tính |
| Nguồn nạp dữ liệu | Thẻ nhớ SD Card trực tiếp | Ổ cứng máy tính PC | Ổ cứng máy tính PC |
| Công suất tiêu thụ điều khiển | $\approx 3.5\text{ W}$ | $200 - 300\text{ W}$ (Kèm PC) | $300 - 450\text{ W}$ (Kèm PC) |
| Độ chính xác gia công | $\pm 0.05\text{ mm}$ | $\pm 0.04\text{ mm}$ | $\pm 0.05\text{ mm}$ |
| Giá thành hoàn thiện | $\approx 8.500.000\text{ VNĐ}$ | $35.000.000\text{ VNĐ}$ | $65.000.000\text{ VNĐ}$ |
Ứng dụng thực tế và triển khai
+-----------------------------------------------------------------------------+
| CÁC ỨNG DỤNG THỰC TIỄN CHÍNH |
| |
| [ XƯỞNG MỸ NGHỆ ] [ PHÒNG LAB PCB ] [ GIÁO DỤC ĐÀO TẠO ] |
| * Điêu khắc tranh gỗ 3D * Phay mạch in 2 lớp * Thực hành vi xử lý |
| * Khắc mica, bảng tên * Khoan lỗ via linh kiện * Lập trình điều khiển |
| * Khắc dấu đồng, quà tặng * Cắt phôi mạch in * Đồ án tốt nghiệp |
+-----------------------------------------------------------------------------+
Dự án có tính khả thi thương mại và chuyển giao công nghệ cao nhờ thiết kế module hóa gọn nhẹ:
- Gia công mỹ nghệ quy mô nhỏ: Chế tác quà lưu niệm, điêu khắc tranh gỗ mini 3D, làm bảng tên mica, khắc khuôn dấu đồng phục vụ các hộ kinh doanh cá thể với vốn đầu tư ban đầu thấp.
- Phay mạch in (PCB Prototyping) trong phòng lab: Tạo mẫu nhanh các bo mạch điện tử 1 đến 2 lớp, khoan lỗ xuyên linh kiện chân cắm DIP mà không cần trải qua công đoạn ăn mòn hóa chất độc hại, rút ngắn chu kỳ nghiên cứu thử nghiệm R&D.
- Thiết bị phục vụ đào tạo tại các trường Đại học - Cao đẳng: Là mô hình trực quan chuẩn mực phục vụ các môn học: Kỹ thuật Vi xử lý nâng cao, Hệ thống Nhúng, Cơ điện tử và Tự động hóa sản xuất. Thay vì để hàng trăm sinh viên dùng chung 1-2 máy CNC đắt tiền, nhà trường có thể đầu tư hàng loạt bàn thực hành với chi phí tiết kiệm $75%$.
Lộ trình triển khai sản xuất đại trà:
- Giai đoạn 1 (0 - 3 tháng): Chuẩn hóa thiết kế mạch in PCB 2 lớp cho bo điều khiển trung tâm STM32, tích hợp sẵn các cổng cắm Driver chuẩn công nghiệp.
- Giai đoạn 2 (4 - 6 tháng): Thay thế khung nhựa PVC bằng khung hợp kim nhôm định hình đúc khuôn áp lực hoặc kim loại tấm chấn bẻ CNC để tăng độ cứng vững cơ học.
- Giai đoạn 3 (7 - 12 tháng): Đăng ký bảo hộ sở hữu trí tuệ kiểu dáng công nghiệp, phát hành phiên bản thương mại cung ứng cho các xưởng chế tác thủ công mỹ nghệ và cơ sở giáo dục nghề nghiệp.
Hạn chế và hướng phát triển
Dù đạt được toàn bộ mục tiêu đề ra, đề tài vẫn ghi nhận một số hạn chế kỹ thuật:
- Độ cứng vững cơ khí khung máy: Kết cấu khung bằng nhựa PVC chỉ chịu được tải trọng cắt nhỏ, hạn chế khả năng gia công các vật liệu kim loại có độ cứng cao như thép, gang hay nhôm tấm dày.
- Động cơ Spindle công suất thấp: Động cơ phay DC $300\text{ W}$ giải nhiệt bằng gió dễ nóng khi hoạt động liên tục trên 4 giờ, tốc độ cắt bị hạn chế trên các đường dao sâu.
- Tập lệnh G-code còn cơ bản: Chưa hỗ trợ thuật toán tính trước quỹ đạo chuyển động (Look-Ahead Trajectory Planning) và bù trừ bán kính dao tự động (G41/G42).
Hướng nâng cấp trong các phiên bản tiếp theo:
- Nâng cấp phần cứng vi xử lý: Chuyển đổi sang dòng STM32F407 (ARM Cortex-M4 @ $168\text{ MHz}$) tích hợp bộ xử lý dấu phẩy động FPU phần cứng để thực thi thuật toán nội suy cung tròn 3D (3D Circular Interpolation) và đường cong NURBS theo thời gian thực.
- Cải tiến cơ khí và truyền động: Thay thế khung PVC bằng khung nhôm hợp kim anode hóa; thay vít me ren thường bằng cụm vít me bi (Ball Screw) và ray trượt vuông (Linear Guide Rail) để giảm ma sát, triệt tiêu độ rơ hồi (backlash) và nâng tốc độ chạy dao không tải lên $> 3000\text{ mm/phút}$.
- Tích hợp hệ điều hành thời gian thực (RTOS): Triển khai FreeRTOS để phân tách các luồng tác vụ độc lập (Task xử lý GUI cảm ứng, Task đọc thẻ nhớ SDIO, Task ngắt nội suy chuyển động), nâng cao tính ổn định và đáp ứng tức thời của hệ thống.
- Mở rộng kết nối vạn vật (IoT): Bổ sung module ESP32 hoặc Wi-Fi để truyền trực tiếp file G-code từ máy tính qua mạng nội bộ hoặc giám sát tiến độ gia công từ xa qua ứng dụng di động.
Đối tượng hưởng lợi
Hệ thống mang lại giá trị thực tiễn đa chiều cho nhiều nhóm đối tượng trong hệ sinh thái kỹ thuật:
+-----------------------------------------------------------------------------+
| ĐỐI TƯỢNG HƯỞNG LỢI |
| |
| [ SINH VIÊN ] [ KỸ SƯ NHÚNG ] [ DOANH NGHIỆP ] [ NHÀ NGHIÊN CỨU]|
| * Học vi xử lý ARM * Mẫu code C thực * Tiết kiệm 75% * Nền tảng mở |
| * Nắm vững cơ chế chiến phát xung chi phí đầu tư cho thuật toán|
| CNC thực tế Bresenham thiết bị nội suy mới |
+-----------------------------------------------------------------------------+
- Sinh viên khối ngành Kỹ thuật (Điện tử, Cơ điện tử, Tự động hóa): Tiếp cận tài liệu tham khảo hoàn chỉnh từ thiết kế phần cứng, vẽ mạch in Altium, đến lập trình vi điều khiển ARM 32-bit; trực tiếp thực hành trên mô hình máy thực tế mà không sợ rủi ro hư hỏng các thiết bị đắt tiền.
- Kỹ sư và Lập trình viên Hệ thống Nhúng (Embedded Developers): Nắm bắt phương pháp điều khiển ngoại vi phức tạp trên STM32 (FSMC 16-bit, SDIO DMA, Timer Interrupts) và kỹ thuật hiện thực hóa thuật toán phân tích chuỗi G-code công nghiệp trong môi trường tài nguyên giới hạn.
- Cơ sở sản xuất và Doanh nghiệp nhỏ: Sở hữu giải pháp công nghệ máy CNC độc lập với chi phí lắp ráp dưới 10 triệu đồng, thu hồi vốn đầu tư nhanh chóng (dưới 6 tháng), giải phóng không gian xưởng và nâng cao năng suất gia công sản phẩm.
- Nhà nghiên cứu và Giảng viên: Sử dụng khung phần cứng nhúng mở để triển khai các nghiên cứu chuyên sâu về thuật toán điều khiển thích nghi, nhận dạng rung động gia công và ứng dụng trí tuệ nhân tạo trong kiểm soát chất lượng bề mặt cắt gọt.
Câu hỏi thường gặp
1. Yêu cầu kỹ thuật tối thiểu để triển khai và vận hành máy CNC này là gì?
Hệ thống chỉ yêu cầu nguồn điện lưới xoay chiều đơn pha $220\text{VAC}/50\text{Hz}$ (công suất tổng hệ thống $< 500\text{W}$) và thẻ nhớ SD dung lượng từ $2\text{GB}$ đến $32\text{GB}$ định dạng chuẩn FAT/FAT32. Người vận hành chỉ cần sử dụng bất kỳ phần mềm CAD/CAM nào trên máy tính (như ArtCAM Pro, MasterCAM, Aspire) để xuất file G-code định dạng .tap, .nc hoặc .txt, sau đó sao chép vào thẻ nhớ và cắm trực tiếp vào máy để gia công.
2. Giới hạn gia công của máy về kích thước và vật liệu là bao nhiêu?
Hành trình gia công hữu ích của máy là $X = 200\text{ mm}$, $Y = 300\text{ mm}$, $Z = 80\text{ mm}$. Máy được tối ưu hóa cho các vật liệu mềm phi kim loại như gỗ tự nhiên, gỗ ép MDF, mica, nhựa tấm PVC, phíp đồng làm mạch in PCB. Không khuyến nghị sử dụng máy để phay cắt kim loại cứng (thép, inox) do kết cấu khung PVC và công suất Spindle $300\text{ W}$ chưa đủ độ cứng vững.
3. Tại sao vi điều khiển ARM Cortex-M3 (STM32F103) lại tối ưu hơn máy tính chạy Mach3 hay Arduino 8-bit?
So với Arduino Uno (ATmega328P $16\text{MHz}$, $2\text{KB}$ RAM), STM32F103VCT6 ($72\text{MHz}$, $64\text{KB}$ RAM, $512\text{KB}$ Flash) sở hữu kiến trúc 32-bit với tập lệnh Thumb-2 mạnh mẽ, có đủ tài nguyên để đồng thời giải mã G-code, quét màn hình cảm ứng 7 inch và phát xung điều khiển bước tần số cao lên tới $100\text{ kHz}$. So với máy tính chạy Mach3, vi điều khiển là hệ thống thời gian thực tất định (Deterministic Real-time System), không bị trễ ngắt bởi các tác vụ chạy ngầm của hệ điều hành, loại bỏ hoàn toàn hiện tượng mất xung gây lệch tọa độ.
4. Chi phí bảo dưỡng và khả năng thay thế linh kiện như thế nào?
Toàn bộ linh kiện cấu thành máy (động cơ bước NEMA, driver TB6600, ray trượt $\Phi12\text{ mm}$, khớp nối mềm, vi điều khiển STM32) đều là linh kiện công nghiệp tiêu chuẩn rất phổ biến trên thị trường Việt Nam. Chi phí thay thế khi xảy ra hao mòn cơ khí định kỳ (chổi than Spindle, bạc đạn trượt) ước tính chỉ từ $100.000$ đến $300.000\text{ VNĐ}$ cho mỗi lần bảo dưỡng sau 6-12 tháng vận hành liên tục.
5. Dự toán chi phí đầu tư và thời gian hoàn vốn (ROI) cho một xưởng sản xuất nhỏ?
Với tổng chi phí chế tạo hoàn thiện khoảng $8.500.000\text{ VNĐ}$, nếu một cơ sở mỹ nghệ sử dụng máy để gia công trung bình 10 sản phẩm tranh khắc gỗ/móc khóa/bảng mica mỗi ngày (lợi nhuận gộp ước tính $50.000\text{ VNĐ/sản phẩm}$), doanh thu lợi nhuận đạt $500.000\text{ VNĐ/ngày}$. Do đó, thời gian thu hồi toàn bộ vốn đầu tư máy móc chỉ mất từ 17 đến 30 ngày làm việc, mang lại hiệu quả kinh tế và tỷ suất hoàn vốn cực cao.
Kết luận
Đề tài tốt nghiệp "Thiết kế và thi công máy CNC sử dụng vi điều khiển ARM" đã giải quyết thành công bài toán tự động hóa gia công cơ khí chính xác quy mô nhỏ bằng giải pháp công nghệ nhúng tiên tiến. Thông qua việc làm chủ phần cứng vi điều khiển STM32F103VCT6 nền tảng ARM Cortex-M3 32-bit kết hợp màn hình cảm ứng màu TFT 7 inch và module thẻ nhớ SDIO, nhóm nghiên cứu đã hiện thực hóa một hệ thống điều khiển số độc lập hoàn toàn, triệt tiêu sự phụ thuộc vào máy tính cồng kềnh, giảm thiểu chi phí đầu tư thiết bị xuống dưới 10 triệu đồng mà vẫn đảm bảo độ chính xác gia công đạt $\pm 0.05\text{ mm}$.
Thành công của đề tài khẳng định năng lực tự chủ công nghệ điều khiển số của sinh viên và kỹ sư Việt Nam, mở ra triển vọng ứng dụng rộng rãi trong chế tác thủ công mỹ nghệ, sản xuất mạch in điện tử và nâng cao chất lượng đào tạo kỹ thuật công nghệ cao. Trong giai đoạn tiếp theo, việc tích hợp khung hợp kim nhôm, hệ điều hành thời gian thực FreeRTOS và kết nối không dây IoT hứa hẹn sẽ đưa sản phẩm vươn lên thành một giải pháp máy công cụ CNC thông minh mang thương hiệu Việt Nam có sức cạnh tranh cao trên thị trường khu vực.