Phần mềm cho máy khắc laser: LaserGRBL, LightBurn, khắc ảnh, cắt theo nét và bảng thông số vật liệu
So sánh LaserGRBL và LightBurn, cách kết nối máy laser GRBL, khắc ảnh bằng dithering, cắt theo nét, tự tìm thông số bằng ma trận thử tạo bằng Python và bảng thông số khởi đầu.
Máy khắc laser chạy GRBL hay FluidNC chỉ hiểu G-code. Muốn khắc một tấm ảnh, một logo hay cắt một hộp gỗ thì cần phần mềm laser: chuyển ảnh thành các đường quét, chuyển nét vẽ thành đường cắt, đặt công suất và tốc độ, gửi lệnh tới máy và theo dõi máy chạy. Hai phần mềm phổ biến nhất cho máy laser diode là LaserGRBL (miễn phí) và LightBurn (trả phí).
Bài này so sánh hai phần mềm, cách kết nối máy, cách khắc ảnh bằng dithering, cách cắt theo nét, và cách tự tìm thông số cho từng vật liệu bằng một ma trận thử tạo bằng chương trình Python ngắn.
1. Phần mềm laser làm những gì

- Nhập file: ảnh (JPG, PNG) để khắc; nét vector (SVG, DXF) để cắt hoặc khắc nét.
- Chuẩn bị: đổi kích thước, đặt vị trí, chuyển ảnh sang đen trắng, chọn khắc hay cắt cho từng phần.
- Tạo G-code với công suất (S), tốc độ (F), số lượt.
- Điều khiển máy: đưa đầu laser tới vị trí, chạy khung để xem vùng khắc, gửi G-code, tạm dừng, dừng.
2. LaserGRBL hay LightBurn

- LaserGRBL: miễn phí, mã nguồn mở, chạy trên Windows, làm tốt việc khắc ảnh và khắc, cắt file SVG đơn giản. Hợp để bắt đầu.
- LightBurn: trả phí bản quyền, có bản dùng thử miễn phí. Có công cụ vẽ, sửa nét, sắp xếp chi tiết, nhiều lớp thông số theo màu nét, xem trước đường chạy, hỗ trợ cả máy CO2. Hợp khi làm sản phẩm thường xuyên.
- Chỉ tải phần mềm từ trang chính thức của nhà phát triển. Không dùng bản bẻ khóa hay "key miễn phí" lan truyền trên mạng: vừa vi phạm bản quyền vừa dễ chứa mã độc.
3. Kết nối máy
- Cắm cáp USB, cài driver cho chip USB của bo (CH340 hoặc CP2102) nếu máy tính chưa nhận.
- Trong phần mềm, chọn cổng COM của máy và tốc độ 115200; với LightBurn, thêm thiết bị kiểu GRBL.
- Đặt S max = 1000 cho khớp với
$30của GRBL (hoặcspeed_mapcủa FluidNC); hai bên lệch nhau thì công suất thật sai theo. - Kiểm tra máy đang bật chế độ laser
$32=1(bài 12 của loạt): nếu không, laser vẫn sáng khi đầu laser chạy giữa các chi tiết và để lại vệt cháy. - Chọn điểm bắt đầu: theo tọa độ tuyệt đối (máy có công tắc về gốc) hoặc theo vị trí hiện tại của đầu laser (máy không có công tắc).
- Dùng nút chạy khung (frame) để đầu laser chạy quanh vùng sẽ khắc mà không bật laser (hoặc bật rất yếu), kiểm tra vị trí trên vật liệu.
4. Khắc ảnh

Phần lớn máy laser diode khắc ảnh bằng cách bật tắt laser ở từng điểm. Ảnh xám phải được chuyển thành ảnh chỉ có đen và trắng:
- Cắt ngưỡng (threshold): điểm tối hơn 50 % thì khắc, sáng hơn thì bỏ. Hợp với logo, chữ, hình hai màu; ảnh chân dung sẽ mất hết chi tiết.
- Dithering (ví dụ Floyd–Steinberg, Jarvis, Stucki): rải chấm đen dày ở vùng tối, thưa ở vùng sáng. Nhìn từ xa, mắt thấy được các mức xám. Dùng cho ảnh chụp.
- Khắc thang xám (grayscale): đổi công suất theo độ tối từng điểm. Có hiệu quả với một số vật liệu, nhưng khó đều màu trên gỗ hơn dithering.
Mẹo khắc ảnh lên gỗ:
- Chọn ảnh rõ, tương phản tốt; tăng độ tương phản, làm sáng nền trước khi chuyển.
- Khoảng cách dòng khoảng 0,1 mm (10 dòng mỗi mm) là điểm bắt đầu cho module laser diode thường gặp; điểm sáng to hơn thì tăng khoảng cách.
- Gỗ màu sáng, vân mịn (gỗ phong, ván ép bạch dương) cho ảnh đẹp hơn gỗ vân to.
- Dùng chế độ M4 (công suất động) để hai đầu mỗi dòng không bị đậm hơn giữa dòng.
5. Cắt và khắc theo nét

- Vẽ hoặc nhập nét vector (SVG, DXF). Mỗi màu nét một lớp: ví dụ đỏ là cắt, xanh là khắc nét, đen là khắc tô.
- Thứ tự: khắc trước, cắt sau; trong các đường cắt, cắt lỗ bên trong trước, viền ngoài sau cùng, để chi tiết không rơi lệch trước khi xong.
- Nhiều lượt: laser diode cắt vật liệu dày bằng nhiều lượt với tốc độ vừa phải tốt hơn một lượt thật chậm (ít cháy xém mép hơn). Có thể hạ tiêu điểm vào trong vật liệu ở các lượt sau.
- Thổi khí khi cắt: đường cắt sạch, ít lửa.
- Độ rộng đường cắt khoảng 0,1–0,3 mm: chi tiết lắp ghép (hộp mộng, khớp gài) cần bù phần này trong bản vẽ hoặc trong phần mềm.
- Đặt tấm kê (lưới tổ ong, thanh kim loại) để tia đi xuyên qua không làm cháy mặt bàn và khói thoát được.
6. Tự tìm thông số bằng ma trận thử
Không có bảng thông số nào đúng cho mọi máy: công suất thật của module, độ nét, loại gỗ, độ ẩm đều khác nhau. Cách nhanh nhất là khắc một ma trận thử trên mẩu vật liệu thừa: mỗi hàng một mức công suất, mỗi cột một tốc độ, rồi chọn ô đẹp nhất. LightBurn có sẵn công cụ này; với LaserGRBL hoặc khi muốn hiểu G-code, có thể tự tạo bằng chương trình Python dưới đây.
# PYWORLD.VN - Sinh G-code ma trận thử công suất × tốc độ cho máy khắc laser chạy GRBL (chế độ laser $32=1)
# 5 mức công suất (hàng) × 5 tốc độ (cột), mỗi ô 8 × 8 mm tô kín bằng các đường ngang cách nhau 0,25 mm.
# Chạy: python ma_tran_thu.py > ma_tran_thu.nc Đặt gốc phôi ở góc trái dưới vùng khắc và lấy nét trước khi chạy.
CONG_SUAT = [200, 400, 600, 800, 1000] # giá trị S; với S max ($30) = 1000 là 20 %, 40 %, … 100 %
TOC_DO = [500, 1000, 1500, 2000, 3000] # giá trị F (mm/phút)
CANH = 8.0 # cạnh mỗi ô (mm)
KHE = 3.0 # khoảng trống giữa hai ô (mm)
BUOC_DONG = 0.25 # khoảng cách giữa hai đường tô (mm)
def so(v):
"""Số gọn: 8.0 -> 8, 0.250 -> 0.25"""
return f"{v:.3f}".rstrip("0").rstrip(".")
def o_vuong(x0, y0, s, f):
"""Tô kín một ô bằng đường zigzag; đoạn nối giữa hai đường chạy với S0 (laser tắt) mà không phải dừng máy."""
dong = [f"(o cong suat S{s}, toc do F{f})", f"G0 X{so(x0)} Y{so(y0)}"]
so_duong = int(round(CANH / BUOC_DONG)) + 1
for i in range(so_duong):
y = y0 + i * BUOC_DONG
x_cuoi = x0 + CANH if i % 2 == 0 else x0
if i > 0:
dong.append(f"G1 Y{so(y)} S0 F{f}") # bước lên đường kế tiếp, laser tắt
dong.append(f"G1 X{so(x_cuoi)} S{s} F{f}") # đường tô, laser bật
return dong
def chuong_trinh():
dong = ["(PYWORLD.VN - ma tran thu cong suat x toc do)",
"G21 G90",
"M4 S0 (laser dong: cong suat tu giam khi may cham lai)"]
for hang, s in enumerate(CONG_SUAT):
for cot, f in enumerate(TOC_DO):
dong += o_vuong(cot * (CANH + KHE), hang * (CANH + KHE), s, f)
dong += ["M5", "G0 X0 Y0", "M2"]
return "\n".join(dong)
if __name__ == "__main__":
print(chuong_trinh())
Chạy python ma_tran_thu.py > ma_tran_thu.nc, mở file ma_tran_thu.nc trong phần mềm laser, kiểm tra khung rồi chạy. 30 dòng đầu của file:
(PYWORLD.VN - ma tran thu cong suat x toc do)
G21 G90
M4 S0 (laser dong: cong suat tu giam khi may cham lai)
(o cong suat S200, toc do F500)
G0 X0 Y0
G1 X8 S200 F500
G1 Y0.25 S0 F500
G1 X0 S200 F500
G1 Y0.5 S0 F500
G1 X8 S200 F500
G1 Y0.75 S0 F500
G1 X0 S200 F500
G1 Y1 S0 F500
G1 X8 S200 F500
G1 Y1.25 S0 F500
G1 X0 S200 F500
G1 Y1.5 S0 F500
G1 X8 S200 F500
G1 Y1.75 S0 F500
G1 X0 S200 F500
G1 Y2 S0 F500
G1 X8 S200 F500
G1 Y2.25 S0 F500
G1 X0 S200 F500
G1 Y2.5 S0 F500
G1 X8 S200 F500
G1 Y2.75 S0 F500
G1 X0 S200 F500
G1 Y3 S0 F500
G1 X8 S200 F500

- Đường tô đi zigzag; đoạn bước lên dòng kế tiếp chạy với
S0nên laser tắt mà máy không phải dừng. - Chương trình dùng
M4(công suất động); máy cần$32=1. - Đọc kết quả: ô khắc đủ đậm mà mặt vẫn mịn, không cháy đen, không lõm sâu là thông số khắc tốt. Muốn tìm thông số cắt, đổi chương trình để vẽ các đường thẳng ngắn với tốc độ chậm hơn và số lượt khác nhau.
- Sửa các danh sách
CONG_SUAT,TOC_DOđể thử dải khác, ví dụ tập trung quanh ô đẹp nhất của lần đầu.
7. Thông số khởi đầu theo vật liệu

Các con số trong bảng là điểm bắt đầu cho máy laser diode có lấy nét đúng và có thổi khí khi cắt. Hãy chạy ma trận thử quanh các giá trị này rồi ghi lại thông số tốt nhất của từng vật liệu cho máy của mình.
8. Lỗi thường gặp
| Hiện tượng | Nguyên nhân hay gặp | Cách xử lý |
|---|---|---|
| Không kết nối được máy | sai cổng COM, chưa có driver USB, Serial Monitor đang mở | đóng chương trình khác dùng cổng, cài driver |
| Có vệt cháy nối giữa các chữ | chưa bật $32=1 | bật chế độ laser |
| Hình bị lật gương, khắc ngược | sai vị trí gốc máy trong phần mềm | chọn đúng góc gốc (thường là trái trước) |
| Hai đầu dòng khắc đậm hơn | dùng M3, gia tốc thấp | dùng M4, thêm vùng chạy đà (overscan) |
| Ảnh khắc bị sọc, lệch từng dòng | dây đai lỏng, khe hở, tốc độ quá cao | căng đai, giảm tốc độ khắc ảnh |
| Cắt không đứt | lệch tiêu điểm, thấu kính bẩn, quá nhanh | lấy nét lại, lau thấu kính, thêm lượt |
| Công suất thật thấp hơn đặt | S max của phần mềm khác $30 | đặt hai bên cùng 1000 |
9. Xem thêm
- Bài trước trong loạt: ESP32 điều khiển máy CNC, máy laser với FluidNC. Bài sau: Phần mềm cho máy CNC.
- Bài 2 (các loại laser và vật liệu), bài 3 (an toàn), bài 12 (cấu hình GRBL, chế độ laser) của loạt.
- ESP32 DevKit V1 và Arduino Nano tại PYWORLD làm bo điều khiển máy laser.
Xem thêm