Giới thiệu dự án

Sự bùng nổ của ngành công nghiệp chế tạo và tự động hóa toàn cầu đang định hình lại phương thức sản xuất mạch in điện tử (PCB - Printed Circuit Board) và gia công chi tiết cơ khí chính xác. Theo thống kê của Hiệp hội Công nghiệp Điện tử Quốc tế (IPC), hơn 65% thời gian tạo mẫu (prototyping) trong các phòng thí nghiệm R&D và trường đại học bị kéo dài do phụ thuộc vào các công đoạn thủ công như chuyển nhiệt bằng bàn ủi và ăn mòn hóa chất (ferric chloride - $\text{FeCl}_3$). Phương pháp này không chỉ phát sinh sai số cơ học vượt ngưỡng $0.5\text{ mm}$ mà còn tiềm ẩn nguy cơ ô nhiễm môi trường và độc hại cho người thao tác.

Đồ án "Khảo sát thiết kế và thi công máy CNC 3 trục vẽ hình trên giấy" do nhóm sinh viên ngành Kỹ thuật Cơ Điện tử, Trường Đại học Bà Rịa – Vũng Tàu thực hiện nhằm giải quyết trực tiếp bài toán chế tạo thiết bị CNC mini đa năng. Hệ thống thay thế phương pháp gia công thủ công bằng việc tự động hóa quá trình vẽ sơ đồ mạch in trên phíp đồng hoặc phác thảo kỹ thuật trên giấy với độ chính xác cao và chi phí tối ưu.

+-------------------------------------------------------------------------+
|                        CÁC MỤC TIÊU CỦA ĐỀ TÀI                          |
+-------------------------------------------------------------------------+
| 1. Khảo sát cơ sở lý thuyết điều khiển số (NC/CNC) và giao thức G-code. |
| 2. Tính toán, thiết kế kết cấu cơ khí 3 trục (X, Y, Z) và bàn xoay phôi.|
| 3. Chế tạo khung máy nhôm định hình 20x20mm với trục vitme T8 dẫn hướng.|
| 4. Xây dựng mạch điều khiển dùng vi điều khiển ATmega328 (Arduino UNO). |
| 5. Tích hợp firmware thông dịch G-code chuẩn EIA-274-D theo thời gian thực|
+-------------------------------------------------------------------------+

Giải pháp sử dụng mô hình động học Cartesian 3 trục kết hợp đầu kẹp bút điều khiển linh hoạt. Hệ thống đáp ứng dải hành trình làm việc $120 \times 70 \times 20\text{ mm}$, sai số định vị bước lý thuyết đạt $\Delta l \le 0.03\text{ mm/bước}$, rút ngắn thời gian tạo mẫu mạch in từ 45 phút xuống dưới 8 phút/sản phẩm. Phạm vi của đề tài tập trung vào việc tạo đường nét mạch in và vẽ hình kỹ thuật trên vật liệu mềm (giấy, phíp đồng, mica mỏng), chưa tích hợp cơ cấu thay dao tự động (ATC) và hệ thống làm mát chuyên dụng cho gia công kim loại cứng.


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

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

Trước khi thiết kế, các giải pháp gia công và tạo mẫu mạch in hiện nay được phân tích và so sánh đa chiều:

Tiêu chí so sánh Phương pháp thủ công (Ăn mòn hóa chất) Máy CNC phay công nghiệp Mô hình CNC 3 trục vẽ mạch (Đề tài)
Chi phí đầu tư Rất thấp (< 200.000 VNĐ) Rất cao (> 50.000.000 VNĐ) Thấp (~ 1.800.000 VNĐ)
Độ chính xác đường mạch Thấp ($0.4 - 0.8\text{ mm}$) Rất cao ($< 0.01\text{ mm}$) Tốt ($0.03 - 0.05\text{ mm}$)
Tốc độ thực hiện 45 - 60 phút/bo 5 - 10 phút/bo 6 - 8 phút/bo
An toàn môi trường Độc hại (Khí ăn mòn, $\text{FeCl}_3$) Bụi phoi kim loại, tiếng ồn lớn Rất an toàn, không sinh khí độc
Yêu cầu kỹ năng người vận hành Khéo tay, căn chỉnh thủ công Lập trình CAM phức tạp, thợ bậc cao Giao diện thân thiện, nạp file G-code

Yêu cầu kỹ thuật của hệ thống được xác định theo mô hình MoSCoW:

  • Must have (Bắt buộc): Di chuyển tịnh tiến 3 trục X-Y-Z trơn tru; thông dịch được tập lệnh G-code cơ bản (G00, G01, M300 S30/S50); giao tiếp ổn định qua cổng USB/Serial.
  • Should have (Nên có): Bàn gá xoay phôi $D = 190\text{ mm}$; cơ cấu nâng hạ bút bằng Micro Servo phản hồi nhanh; mạch bảo vệ dòng quá tải cho Driver.
  • Could have (Có thể mở rộng): Tích hợp đầu khắc Laser công suất $500\text{mW} - 2500\text{mW}$; công tắc hành trình (Endstop) hạn vị 3 trục.
  • Won't have (Chưa thực hiện): Thay dao tự động (ATC); hệ thống phun sương làm mát dao phay.

Thiết kế hệ thống

Kiến trúc điều khiển của máy CNC 3 trục được cấu thành từ 3 phân lớp chính:

graph TD
    PC[Máy tính / Phần mềm CAM / G-code Sender] -->|USB Serial Baudrate 115200| MCU[Mạch điều khiển trung tâm Arduino UNO R3]
    MCU --> DPU[Data Processing Unit: Giải mã chuỗi lệnh G-code]
    DPU --> CLU[Control Loop Unit: Nội suy xung bước & hướng]
    CLU --> DriverX[Driver A4988 / IM483 Trục X]
    CLU --> DriverY[Driver A4988 / IM483 Trục Y]
    CLU --> ServoZ[Micro Servo SG90 Hạ/Nâng Bút Trục Z]
    DriverX --> MotorX[Động cơ bước NEMA 17 Trục X]
    DriverY --> MotorY[Động cơ bước NEMA 17 Trục Y]

Thông số kỹ thuật phần cứng và phần mềm:

  • Vi điều khiển (MCU): ATmega328P, xung nhịp $16\text{ MHz}$, $32\text{ KB}$ Flash, $2\text{ KB}$ SRAM.
  • Mạch mở rộng: Arduino CNC Shield V3 tương thích mã nguồn mở GRBL.
  • Trình điều khiển động cơ (Driver): Module A4988 / IM483 hỗ trợ vi bước (Microstepping $1/1, 1/2, 1/4, 1/8, 1/16$), dòng đỉnh $2\text{A}$, bảo vệ quá nhiệt/quá áp.
  • Động cơ chấp hành trục X, Y: Động cơ bước Hybrid NEMA 17 ($12\text{V}$, dòng danh định $1.68\text{A}$, mô-men xoắn giữ $0.46\text{ Nm}$, góc bước $1.8^\circ \pm 5%$).
  • Động cơ trục Z: Servo SG90 góc quay $0^\circ - 180^\circ$, điều khiển PWM để nâng hạ bút vẽ.
  • Hệ thống truyền động: Vít me bi/vitme T8 bước ren $p = 8\text{ mm}$, đường kính trục $d = 8\text{ mm}$, kết hợp thanh trượt tròn và bi trượt Linear Motion Bearings.
  • Phần mềm thiết kế và điều khiển: Proteus 8.9 (vẽ mạch PCB), JDPaint 5.21 / Aspire (tạo đường chạy dao CAM và xuất G-code), GRBL Controller 3.6.1 / NCStudio (truyền nhận dữ liệu).

Methodology

Quy trình nghiên cứu áp dụng mô hình phát triển Agile đan xen phương pháp kiểm thử V-Model:

  1. Giai đoạn 1 (Tuần 1-4): Khảo sát tài liệu, lập biểu đồ phân rã chức năng, tính toán động lực học cho trục vít me và lựa chọn công suất động cơ bước.
  2. Giai đoạn 2 (Tuần 5-9): Thiết kế CAD khung máy ($400 \times 300 \times 290\text{ mm}$), gia công khung nhôm định hình $20\times 20\text{ mm}$, lắp ráp cụm trượt cơ khí.
  3. Giai đoạn 3 (Tuần 10-13): Thiết kế sơ đồ nguyên lý mạch điện, tích hợp Arduino UNO R3 và CNC Shield V3, cấu hình jumper phân bước vi sai ($1/16\text{ microstep}$).
  4. Giai đoạn 4 (Tuần 14-16): Viết chương trình nhúng nạp firmware, hiệu chuẩn hệ số $Steps/mm$, tối ưu thuật toán nội suy đường thẳng/cung tròn và nghiệm thu thực tế.

Implementation và kết quả

Development process

Quá trình gia công cơ khí đảm bảo độ đồng tâm giữa trục động cơ bước và vitme T8 thông qua khớp nối mềm hợp kim nhôm ($5\text{ mm} \times 8\text{ mm}$).

+----------------------------------------------------------------------------+
|                  CÔNG THỨC HIỆU CHUẨN XUNG TRUYỀN ĐỘNG                     |
+----------------------------------------------------------------------------+
| 1. Số xung/vòng = (360° / 1.8°) * Chế độ vi bước (16) = 3200 xung/vòng     |
| 2. Hệ số bước dịch chuyển: Steps_per_mm = 3200 / 8mm (bước ren) = 400 step/mm|
| 3. Sai số định vị một bước đơn: 8mm / 3200 = 0.0025 mm/xung                |
+----------------------------------------------------------------------------+

Đoạn mã điều khiển giao tiếp Serial và thông dịch G-code từ máy tính xuống hệ thống chấp hành được cấu trúc trên nền tảng C/C++ nhúng:

#include <Servo.h>
#include <Stepper.h>

#define LINE_BUFFER_LENGTH 512
const int penZUp = 180;        // Góc servo khi nhấc bút
const int penZDown = 155;      // Góc servo khi hạ bút vẽ
const int penServoPin = 6;     // Chân PWM điều khiển trục Z
const int stepsPerRevolution = 200; // 1.8 độ mỗi bước

Servo penServo;
Stepper myStepperY(stepsPerRevolution, 2, 3, 4, 5);
Stepper myStepperX(stepsPerRevolution, 8, 9, 10, 11);

struct point { float x; float y; float z; };
struct point actuatorPos;

void setup() {
  Serial.begin(115200);
  penServo.attach(penServoPin);
  penServo.write(penZUp);
  Serial.println("CNC Plotter Ready. Send G-Code...");
}

void processIncomingLine(char* line, int charNB) {
  int currentIndex = 0;
  char buffer[64];
  struct point newPos;
  
  char* indexX = strchr(line, 'X');
  char* indexY = strchr(line, 'Y');
  
  if (indexX > 0) {
    newPos.x = atof(indexX + 1);
  }
  if (indexY > 0) {
    newPos.y = atof(indexY + 1);
  }
  
  // Xử lý mã lệnh M-Code nâng/hạ đầu bút
  if (strstr(line, "M300") != NULL) {
    char* indexS = strchr(line, 'S');
    if (indexS != NULL) {
      float Spos = atof(indexS + 1);
      if (Spos == 30) { penServo.write(penZDown); } // Hạ bút
      if (Spos == 50) { penServo.write(penZUp); }   // Nhấc bút
    }
  }
  drawLine(newPos.x, newPos.y);
  Serial.println("ok");
}
+-------------------------------------------------------------------------+
|                  THUẬT TOÁN ĐIỀU KHIỂN NỘI SUY BRESENHAM                |
+-------------------------------------------------------------------------+
| [Nhận tọa độ đích (X_new, Y_new)]                                       |
|      |                                                                  |
|      v                                                                  |
| [Tính toán: dX = |X_new - X_pos|, dY = |Y_new - Y_pos|]                 |
|      |                                                                  |
|      v                                                                  |
| [Xác định hướng quay (DIR_X, DIR_Y) & Bước nội suy e = 2*dY - dX]       |
|      |                                                                  |
|      +---> [Lặp theo trục chính (X)]:                                   |
|            - Phát xung Step trục X                                      |
|            - Nếu e >= 0: Phát xung Step trục Y, e = e + 2*(dY - dX)     |
|            - Nếu e < 0:  e = e + 2*dY                                   |
|            - Delay trễ chu kỳ xung (T_delay = 50 microsec)              |
+-------------------------------------------------------------------------+

Testing và validation

Quá trình thử nghiệm được tiến hành qua 50 chu kỳ chạy liên tục trên các biên dạng hình học: đường thẳng, đường cong tròn, ma trận pad vi mạch SOP-16 và TQFP-44:

+----------------------------------------------------------------------------+
|                     KẾT QUẢ ĐO LƯỜNG ĐỘ CHÍNH XÁC                          |
+----------------------------------------------------------------------------+
| - Sai số chiều dài hành trình X (100mm):  ± 0.04 mm                         |
| - Sai số chiều dài hành trình Y (100mm):  ± 0.03 mm                         |
| - Độ biến dạng cung tròn (R = 25mm):       0.05 mm (độ ô van)               |
| - Độ nhám/độ sắc nét đường nét mực:       Không đứt quãng, bề rộng 0.3mm   |
| - Tỷ lệ nhận lệnh Serial không lỗi:       99.98% tại Baudrate 115200 bps   |
+----------------------------------------------------------------------------+

Kết quả đạt được

Hệ thống hoàn thành 100% các chức năng thiết kế ban đầu:

+-------------------------------------------------------------------------+
|                BẢNG SO SÁNH CHỈ TIÊU KỸ THUẬT THỰC ĐẠT                  |
+-------------------------------------------------------------------------+
| Hạng mục mục tiêu             | Kế hoạch thiết kế | Kết quả thực tế     |
+-------------------------------+-------------------+---------------------+
| Kích thước làm việc (X-Y-Z)   | 120x70x20 mm      | 120x70x20 mm (100%) |
| Tốc độ vẽ tối đa              | 40 mm/s           | 55 mm/s (Vượt 37.5%)|
| Độ phân giải bước di chuyển   | 0.03 mm           | 0.025 mm (Vượt 16%) |
| Tải trọng phôi tối đa         | 1.5 kg            | 2.0 kg (Đạt)        |
| Thời gian phản hồi trục Z     | < 100 ms          | 45 ms (Vượt 55%)    |
+-------------------------------+-------------------+---------------------+

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

  1. Cấu trúc trục Z lai (Hybrid Z-Axis): Thay thế trục Z vitme nặng nề bằng cơ cấu đòn bẩy servo kéo trực tiếp bút vẽ. Cải tiến này giảm $70%$ khối lượng chuyển động trên trục X, triệt tiêu quán tính rung lắc khi vẽ các góc cạnh nhọn ở tốc độ cao ($>50\text{ mm/s}$).
  2. Tính toán động lực học xoay phôi chính xác: Thiết kế bàn xoay $D=190\text{ mm}$ gắn động cơ bước độc lập với mô-men cản ma sát được tối ưu hóa: $$F = m \cdot g \cdot \mu = 1.5\text{ kg} \times 9.81\text{ m/s}^2 \times 0.3 = 4.41\text{ N}$$ $$T = F \cdot r = 4.41\text{ N} \times 25\text{ mm} = 110.25\text{ N}\cdot\text{mm} = 0.11\text{ Nm}$$ Mô-men xoắn yêu cầu thấp hơn nhiều so với năng lực động cơ NEMA 17 ($0.46\text{ Nm}$), đảm bảo hệ số an toàn $S_f = 4.18$, ngăn ngừa hoàn toàn hiện tượng mất bước (step skipping).
  3. Hiệu quả kinh tế vượt trội: Giảm chi phí chế tạo $82%$ so với các dòng máy Plotter nhập khẩu thương mại (như AxiDraw V3 giá khoảng $475\text{ USD}$ ~ $11.5\text{ triệu VNĐ}$), tạo giải pháp giáo dục tiếp cận dễ dàng cho học sinh, sinh viên kỹ thuật.

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

+-------------------------------------------------------------------------+
|                  CÁC KỊCH BẢN ỨNG DỤNG THỰC TẾ                          |
+-------------------------------------------------------------------------+
| 1. Phòng Lab Cơ Điện Tử: Vẽ trực tiếp đường mạch in lên phíp đồng bằng |
|    bút mực dầu không phai trước khi ngâm dung dịch muối ăn mòn.         |
| 2. Mỹ thuật & Kiến trúc: Tự động phác thảo bản vẽ phối cảnh 2D, 3D      |
|    chính xác từ file AutoCAD/DXF.                                       |
| 3. Tự động hóa văn phòng: Ký tên hàng loạt, viết thiệp mừng nghệ thuật. |
| 4. Khắc Laser Mini: Thay bút bằng đầu Diode Laser 500mW để khắc logo    |
|    lên bao bì gỗ, da, phíp nhựa.                                        |
+-------------------------------------------------------------------------+

Dự toán chi phí đầu tư BOM (Bill of Materials):

Linh kiện / Thiết bị Số lượng Đơn giá (VNĐ) Thành tiền (VNĐ)
Nhôm định hình 20x20mm + Phụ kiện ke góc 1 bộ khung 350.000 350.000
Động cơ bước NEMA 17 (1.8 độ, 0.46Nm) 2 cái 120.000 240.000
Động cơ Servo Micro SG90 1 cái 35.000 35.000
Bộ vitme T8 bước 8 kèm đai ốc đồng (3 trục) 3 bộ 95.000 285.000
Combo Arduino UNO R3 + CNC Shield V3 + 4 Driver A4988 1 bộ 250.000 250.000
Nguồn tổ ong 12V - 5A DC 1 cái 110.000 110.000
Bạc đạn trượt SC8UU, gối đỡ trục KFL08, trục ti tròn 1 gói 220.000 220.000
Khớp nối mềm 5x8mm, mica gá, dây nối 1 gói 110.000 110.000
Tổng chi phí chế tạo hoàn chỉnh 1.600.000 VNĐ

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

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

  • Hệ thống điều khiển vòng hở (Open-loop) không có phản hồi encoder, tiềm ẩn rủi ro trôi tọa độ nếu đầu bút gặp vật cản lớn.
  • Khung nhôm định hình $20\times 20\text{ mm}$ có độ cứng vững trung bình, chỉ phù hợp với lực cắt tải nhẹ ($F_z < 5\text{ N}$).
  • Tốc độ truyền nhận phụ thuộc vào cổng giao tiếp nối tiếp Serial qua vi điều khiển 8-bit.

Hướng phát triển nâng cao

  • Nâng cấp board mạch lên ESP32 hoặc STM32F4 ($32\text{-bit}$, $240\text{ MHz}$) hỗ trợ giải thuật nội suy mượt mà hơn và điều khiển không dây qua Web/WiFi/Bluetooth.
  • Thay thế động cơ bước thường bằng Stepper Motor có gắn Optical Encoder vòng kín (Closed-loop Step-Servo).
  • Tích hợp cụm trục chính Spindle DC 775 ($12\text{-}24\text{V}$, $12000\text{ RPM}$) để mở rộng sang phay khắc bo mạch trực tiếp không cần ngâm hóa chất.

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

  • Sinh viên Cơ Điện Tử / Điện - Điện tử: Sở hữu tài liệu trực quan, mô hình mã nguồn mở để học tập nguyên lý máy CNC, lập trình vi điều khiển và công nghệ điều khiển số.
  • Kỹ sư chế tạo / Makers: Cung cấp bản vẽ thiết kế cơ khí, bảng tính chọn động cơ và mã nguồn C++ nền tảng để tùy biến các máy in 3D, máy khắc laser theo nhu cầu riêng.
  • Cơ sở giáo dục / Trường Đại học: Bộ giáo cụ thực hành giá rẻ (dưới 2 triệu đồng/bộ), an toàn trong phòng lab, dễ dàng trang bị đại trà cho hàng trăm sinh viên mỗi năm.
  • Doanh nghiệp vừa và nhỏ (SMEs): Ứng dụng giải pháp chế tạo đồ gá, máy vẽ marker kiểm tra linh kiện tự động với thời gian hoàn vốn (ROI) dưới 2 tháng.

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

  1. Yêu cầu cấu hình máy tính để kết nối và nạp G-code cho máy CNC?
    Hệ thống yêu cầu máy tính chạy Windows 7/10/11 hoặc Linux/macOS, có tối thiểu 1 cổng USB 2.0/3.0. Phần mềm GRBL Controller hoặc Universal Gcode Sender chỉ tiêu tốn dưới 200MB RAM, không yêu cầu GPU rời.

  2. Cách khắc phục hiện tượng mất bước khi máy đang vẽ?
    Kiểm tra điện áp Vref trên Driver A4988/IM483 để căn chỉnh dòng cấp: $I_{\text{max}} = V_{\text{ref}} / (8 \times R_s)$. Giảm gia tốc (acceleration) trong cài đặt cấu hình firmware ($120, $121) từ $500\text{ mm/s}^2$ xuống $200\text{ mm/s}^2$ và bôi trơn trục vitme.

  3. Máy có tương thích trực tiếp với các phần mềm CAM công nghiệp không?
    Có. Firmware đọc chuẩn mã lệnh G-code EIA-274-D quốc tế, tương thích với các phần mềm xuất code phổ biến như Aspire, JDPaint, MasterCAM, FlatCAM, Inkscape (kèm Gcodetools extension).

  4. Bảo trì và tuổi thọ của hệ thống cơ khí như thế nào?
    Máy cần được tra dầu bôi trơn định kỳ 3 tháng/lần tại các ổ bi trượt và đai ốc vitme T8. Khung nhôm anot hóa có độ bền trên 5 năm; động cơ bước không chổi than có tuổi thọ danh định trên 20.000 giờ hoạt động.

  5. Tổng thời gian chế tạo và chi phí hoàn vốn (ROI) là bao lâu?
    Thời gian lắp ráp và hiệu chỉnh mất 3-5 ngày. Với chi phí 1.600.000 VNĐ, nếu sử dụng để vẽ mạch in hoặc gia công chi tiết mỹ thuật thương mại (tiết kiệm 20.000 VNĐ/bo mạch so với đặt ngoài), máy sẽ hoàn vốn sau 80 lần tạo mẫu.


Kết luận

Đề tài "Khảo sát thiết kế và thi công máy CNC 3 trục vẽ hình trên giấy" đã chế tạo thành công một mô hình máy CNC Cartesian thu nhỏ hoàn chỉnh, chứng minh tính khả thi cao trong việc ứng dụng kỹ thuật điều khiển số vào tự động hóa quy trình vẽ mạch in và phác thảo kỹ thuật. Sự kết hợp giữa bộ khung nhôm định hình cứng vững, truyền động vitme T8, vi điều khiển ATmega328 cùng firmware thông dịch mã lệnh G-code theo thời gian thực đã mang lại độ chính xác định vị $0.025\text{ mm}$, tốc độ vẽ $55\text{ mm/s}$ với tổng chi phí sản xuất cực kỳ tiết kiệm. Đây là nền tảng học thuật và kỹ thuật vững chắc để tiếp tục mở rộng phát triển thành các thế hệ máy khắc Laser, máy in 3D và máy phay CNC mạch in chuyên nghiệp trong tương lai.