GRBL là gì: nạp GRBL cho Arduino, CNC shield, sơ đồ chân và nối động cơ

GRBL là firmware biến Arduino Uno, Nano thành bộ điều khiển máy CNC, laser: sơ đồ chân GRBL 1.1, CNC shield V3, năm bước nạp GRBL bằng Arduino IDE, kiểm tra và lỗi thường gặp.

GRBL là firmware mã nguồn mở biến một bo Arduino Uno (hoặc Nano) thành bộ điều khiển máy CNC. GRBL đọc G-code gửi qua cổng USB, tính toán đường đi có tăng tốc, giảm tốc, rồi phát xung STEP, DIR cho driver động cơ bước, bật tắt và chỉnh tốc độ spindle hoặc công suất laser. Phần lớn máy CNC mini cỡ 3018 và máy khắc laser diode giá rẻ đều chạy GRBL hoặc một firmware phát triển từ GRBL.

Bài này giải thích GRBL làm được gì, sơ đồ chân của GRBL 1.1 trên Arduino Uno, Nano, bố trí của CNC shield V3, cách nạp GRBL bằng Arduino IDE và cách kiểm tra sau khi nạp.

Bo mạch tương thích Arduino Uno màu xanh, CNC shield màu đỏ có ba driver động cơ bước gắn tản nhiệt và một động cơ bước NEMA 17
Bo tương thích Arduino Uno, CNC shield có ba driver và động cơ NEMA 17. Ảnh: DotEagle, Wikimedia Commons, CC BY-SA 4.0.

1. GRBL là gì, làm được gì

  • Chạy trên vi điều khiển ATmega328P (Arduino Uno, Nano). Phiên bản phổ biến hiện nay là GRBL 1.1.
  • Điều khiển 3 trục X, Y, Z bằng xung STEP, DIR; phát được khoảng 30 nghìn xung mỗi giây.
  • Hiểu G-code chuẩn: G0, G1, G2, G3, G90, G91, G54, G10, G38.2 (dò Z)…
  • Tăng tốc, giảm tốc và nhìn trước nhiều đoạn đường để chạy mượt qua các góc.
  • Spindle và laser: bật tắt, chỉnh tốc độ bằng PWM; có chế độ laser riêng (bài 12).
  • Về gốc, giới hạn mềm, giới hạn cứng với công tắc hành trình; nút tạm dừng, chạy tiếp, dừng.
  • GRBL không có giao diện: cần một phần mềm trên máy tính để gửi G-code (LaserGRBL, LightBurn, Candle, Universal Gcode Sender…, bài 14, 15).

2. Sơ đồ chân GRBL 1.1

Bảng chân GRBL 1.1 trên Arduino Uno: D2 D3 D4 STEP X Y Z, D5 D6 D7 DIR X Y Z, D8 EN chung, D9 D10 công tắc X Y, D11 PWM spindle laser, D12 công tắc Z, D13 chiều spindle, A0 reset, A1 feed hold, A2 cycle start, A3 coolant, A4 mist, A5 đầu dò Z
Sơ đồ chân GRBL 1.1 trên Arduino Uno, Nano (hình tự vẽ theo mã nguồn GRBL).

Bảng trên lấy theo mã nguồn GRBL 1.1 (tệp cpu_map.h). Chỗ hay nhầm nhất là D11 và D12:

  • GRBL 0.8 (bản cũ) đặt công tắc Z ở D11 và bật spindle ở D12. CNC shield V3 in nhãn theo bản cũ này.
  • GRBL 1.1 dùng PWM phần cứng để chỉnh tốc độ spindle, công suất laser, nên D11 thành chân PWM và công tắc Z chuyển sang D12.
  • Vì vậy trên CNC shield V3 chạy GRBL 1.1: công tắc Z cắm vào hàng chân có nhãn SpnEn, còn tín hiệu PWM của laser, spindle lấy ở hàng chân Z+ / Z−.

3. CNC shield V3

CNC shield V3 nhìn từ trên với bốn đế driver X Y Z A có chữ EN, jumper vi bước, giắc 4 chân nối động cơ, cọc nguồn 12 đến 36 V và hàng chân công tắc X Y Z SpnEn SpnDir
Bố trí của CNC shield V3 (hình tự vẽ, đã đơn giản hóa).
  • Cắm chồng lên Arduino Uno, có sẵn đế cho 4 driver kiểu StepStick (A4988, DRV8825…).
  • Cắm driver đúng chiều: chân EN của driver trùng với chữ EN trên shield.
  • Jumper vi bước: ba jumper dưới mỗi driver (bài 7).
  • Cọc nguồn: cấp 12–24 V cho driver; Arduino vẫn lấy nguồn qua USB. Không cấp ngược cực.
  • Trục A: có thể nhân bản tín hiệu của X hoặc Y bằng jumper để chạy hai động cơ cho một trục (máy có hai động cơ Y). GRBL 1.1 không điều khiển trục thứ tư độc lập.
  • Nối động cơ: giắc 4 chân cạnh mỗi đế driver, thứ tự 2B, 2A, 1A, 1B theo nhãn in trên shield; mỗi cặp là một cuộn (bài 6).

4. Nạp GRBL cho Arduino

Năm bước nạp GRBL: tải mã nguồn từ trang dự án và lấy thư mục grbl, thêm thư viện bằng Add ZIP Library, mở ví dụ grblUpload, chọn bo Uno hoặc Nano và cổng COM, bấm Upload rồi mở Serial Monitor 115200
Năm bước nạp GRBL bằng Arduino IDE (hình tự vẽ).
  1. Vào trang dự án GRBL (kho mã nguồn gnea/grbl), tải mã nguồn dạng file nén và giải nén. Bên trong có thư mục tên grbl: đây là thư mục cần dùng.
  2. Mở Arduino IDE, chọn Sketch > Include Library > Add .ZIP Library… rồi chọn thư mục grbl vừa giải nén.
  3. Mở File > Examples > grbl > grblUpload. Không cần sửa gì trong ví dụ này.
  4. Chọn Tools > Board là Arduino Uno (hoặc Arduino Nano) và Tools > Port là cổng COM của bo. Nano đời cũ có thể cần chọn Processor: ATmega328P (Old Bootloader).
  5. Bấm Upload. Arduino IDE báo "Sketch uses … bytes" và một cảnh báo bộ nhớ thấp là bình thường với GRBL.

Arduino Nano dùng chip nạp CH340 cần cài driver trên Windows; cách làm ở bài bắt đầu với Arduino Nano CH340 (link ở cuối bài).

5. Kiểm tra sau khi nạp

Khung Serial Monitor 115200 baud: dòng Grbl 1.1h dollar for help, lệnh dollar I trả về VER 1.1h.20190825 và OPT, dấu hỏi trả về trạng thái Idle MPos 0,0,0, lệnh dollar X mở khóa và trả về ok
GRBL trả lời trong Serial Monitor (hình minh họa).
  1. Mở Tools > Serial Monitor, chọn tốc độ 115200 baud và kiểu xuống dòng Both NL & CR.
  2. Bấm nút reset trên bo: phải thấy dòng Grbl 1.1h ['$' for help] (chữ cái cuối có thể khác tùy phiên bản).
  3. Gõ $I để xem phiên bản, $$ để xem toàn bộ thông số cấu hình, ? để xem trạng thái.
  4. Nếu trạng thái là Alarm, gõ $X để mở khóa (bài 12 giải thích các mã ALARM).
  5. Đóng Serial Monitor trước khi mở phần mềm gửi G-code; một cổng COM chỉ một chương trình dùng được tại một thời điểm.

Lần đầu cho động cơ chạy, gửi lệnh nhỏ như G91 G0 X5 (đi tới 5 mm theo X, tọa độ tương đối) và xem trục đi đúng chiều, đúng quãng đường chưa. Sai chiều thì đảo hai dây một cuộn hoặc sửa $3; sai quãng đường thì sửa $100–$102 (bài 12).

6. Dùng Arduino Nano thay cho Uno

Arduino Nano nối tới ba driver X Y Z: D2 D3 D4 là STEP màu cam, D5 D6 D7 là DIR màu tím, D8 là EN chung màu xanh lá; ghi chú công tắc X D9, Y D10, Z D12, PWM laser D11
Arduino Nano chạy GRBL nối tới ba driver (hình tự vẽ, rút gọn).
  • Nano dùng cùng chip ATmega328P nên nạp đúng bản GRBL như Uno và dùng đúng sơ đồ chân ở mục 2.
  • Nano không cắm được CNC shield V3. Có thể nối tới driver qua breadboard, qua đế ra chân cọc vít cho Nano, hoặc dùng loại shield làm riêng cho Nano.
  • Nối GND của Nano với GND của nguồn 24 V và của các driver.

7. Lỗi thường gặp

Hiện tượngNguyên nhân hay gặp
Không thấy cổng COMcáp USB chỉ có dây sạc, thiếu driver CH340
Upload báo lỗi đồng bộ (not in sync)sai bo, sai Processor (Nano Old Bootloader), cổng đang mở ở chương trình khác
Serial Monitor ra ký tự lạchưa chọn 115200 baud
Động cơ không quay, không giữ trụcchưa cấp nguồn vào cọc xanh của shield, driver cắm ngược, chưa cắm jumper EN trên một số shield
Máy báo ALARM ngay khi bậtcông tắc Z nối vào D11 thay vì D12, công tắc NC mà $5=0, nhiễu ở dây công tắc
Laser không chỉnh được công suấtlấy tín hiệu ở chân SpnEn (D12) thay vì Z+ / Z− (D11)

8. Xem thêm


Tin tức liên quan

Học lập trình có lợi gì cho trẻ? Lợi ích thật và những hiểu lầm thường gặp
Học lập trình có lợi gì cho trẻ? Lợi ích thật và những hiểu lầm thường gặp

Học lập trình có lợi gì cho trẻ: sáu lợi ích có cơ sở, nghiên cứu nói gì, sáu hiểu lầm thường gặp và cách phụ huynh nhìn ra tiến bộ thật của con qua năm bậc.

Thực hành hiệu chuẩn load cell bằng quả cân với HX711 và ESP32: khớp đa thức và độ không đảm bảo
Thực hành hiệu chuẩn load cell bằng quả cân với HX711 và ESP32: khớp đa thức và độ không đảm bảo

Tự hiệu chuẩn load cell 5 kg bằng quả cân với HX711, ESP32: ghi điểm kèm độ lệch chuẩn, khớp đa thức bậc 1, bậc 2, lưu hệ số, kiểm tra lại và ước lượng độ không đảm bảo.

Tổng quan các chuẩn giao tiếp cho vi điều khiển: UART, I2C, SPI, RS-485, CAN và cách chọn
Tổng quan các chuẩn giao tiếp cho vi điều khiển: UART, I2C, SPI, RS-485, CAN và cách chọn

So sánh các chuẩn giao tiếp thường gặp với vi điều khiển: UART, I2C, SPI, 1-Wire, RS-485, CAN, Ethernet và không dây. Giải thích tín hiệu vi sai, ba lớp của một hệ giao tiếp và cách chọn chuẩn theo nhu cầu.

Cảm biến gia tốc: cấu tạo MEMS răng lược, áp điện, cách chế tạo và đo góc nghiêng bằng ESP32
Cảm biến gia tốc: cấu tạo MEMS răng lược, áp điện, cách chế tạo và đo góc nghiêng bằng ESP32

Cảm biến gia tốc hoạt động thế nào: mô hình khối lượng – lò xo, MEMS răng lược điện dung vi sai, chế tạo vi cơ bề mặt, áp điện, servo, đo góc nghiêng và đọc MPU-6050 bằng ESP32.

Thực hành hiệu chuẩn cảm biến áp suất với áp kế chuẩn, ADS1115, ESP32: khớp đa thức, chỉnh điểm 0
Thực hành hiệu chuẩn cảm biến áp suất với áp kế chuẩn, ADS1115, ESP32: khớp đa thức, chỉnh điểm 0

Hiệu chuẩn cảm biến áp suất 0,5–4,5 V bằng áp kế chuẩn: ADS1115 đo tỉ lệ qua cầu chia, ESP32 ghi điểm tăng giảm áp, khớp đa thức, chỉnh điểm 0 tại chỗ và ước lượng độ không đảm bảo.

Cấu hình GRBL: các thông số $, steps/mm, tốc độ, gia tốc, homing và chế độ laser
Cấu hình GRBL: các thông số $, steps/mm, tốc độ, gia tốc, homing và chế độ laser

Giải thích các thông số $ của GRBL 1.1: steps/mm, tốc độ, gia tốc, đảo chiều bằng mặt nạ trục, về gốc homing, giới hạn mềm, giới hạn cứng, chế độ laser $32 với M3, M4 và các mã ALARM.

Xốp ô li trong vali: cách bóc xốp vừa khít thiết bị, không rách
Xốp ô li trong vali: cách bóc xốp vừa khít thiết bị, không rách

Xốp ô li là tấm xốp chống sốc cắt sẵn thành ô vuông, bóc theo dáng thiết bị bằng tay. Bài hướng dẫn bốn bước bóc vừa khít, các lỗi thường gặp và khi nào nên chuyển sang xốp cắt theo biên dạng.

Vẽ đa giác và hoa văn bằng lập trình: học góc trong môn Toán với Scratch
Vẽ đa giác và hoa văn bằng lập trình: học góc trong môn Toán với Scratch

Dùng nhóm lệnh Bút vẽ của Scratch để vẽ đa giác đều, ngôi sao, hoa văn, xoắn ốc; hiểu vì sao xoay góc ngoài 360 : n, góc trong, và liên hệ với môn Toán ở tiểu học.


Bình luận
Đã thêm vào giỏ hàng