[CNC] Firmware GRBL - Phần 2: Configuration (Thay đổi thông số)

 Đối với mỗi máy CNC thì sẽ có các thông số kỹ thuật về kích thước các trục, các bước, kích thước,... khác nhau nên trong quá trình sử dụng chúng ta cần phải tinh chỉnh lại các thông số cho phù hợp với thiết bị và yêu cầu của bản thân.

Phần này thì mình sẽ đưa ra một số thông tin để các bạn tham khảo để có thể dễ dàng chỉnh sửa thiết bị của mình.
Đầu tiên tất nhiên cần 1 mạch có nạp firmware GRBL. Các bạn có thể tham khảo hướng dẫn nạp firmware: [CNC] Firmware GRBL - Phần 1: Compiling and Upload
Tiếp theo ta cần phần mềm để gửi các lệnh tinh chỉnh đến mạch. Ở đây ta dùng phần mềm Candle cũng là phần mềm đọc G-Code và điều khiển máy CNC:

{getToc} $title={Table of Contents}

KẾT NỐI

Sau khi kết nối mạch vào máy tính thông qua cổng USB
  • Mở phần mềm Candle
  • Xác định cổng mà mạch kết nối la COM bao nhiêu bằng cách: chuột phải vào icon Start > chọn Device Manager
  • Tại cửa sổ Candle > chọn Service > Settings > chọn Port đúng với cổng của mạch đã kết nối
  • Chọn OK
Check của sổ Console tại góc dưới bên phải (theo mặc định).
Lần đầu kết nối thì sẽ hiển thị như sau:
Grbl 1.1f ['$' for help]
Gõ $ và nhấn Enter
Nếu không hiển thị 1 dãy dài ký tự $ hoặc Enter liên tục thì kết nối thành công.
Và dòng này sẽ được hiển thị:
[HLP:$$ $# $G $I $N $x=val $Nx=line $J=line $SLP $C $X $H ~ ! ? ctrl-x]

CÀI ĐẶT

$$ - Kiểm tra cài đặt Grbl
Dùng lệnh này để kiểm tra cài đặt của Grbl sau khi kết nối. Sau đó ta sẽ thấy danh sách các cài đặt trước đó. Cài đặt này sẽ được lưu vào EEPROM nên khi tắt nguồn mạch điều khiển thì sau khi bật lại thì cài đặt không bị mất.
Tổng hợp các lệnh
Các lệnh đều có cùng cấu trúc như sau:
$x=val
Trong đó:
x - số tương ứng với cài đặt cần thay đổi
val - giá trị trị mới cho cài đặt

VÍ DỤGHI CHÚ
$0=10Step pulse, microseconds
$1=25Step idle delay, milliseconds
$2=0Step port invert, mask
$3=0Direction port invert, mask
$4=0Step enable invert, boolean
$5=0Limit pins invert, boolean
$6=0Probe pin invert, boolean
$10=1Status report, mask
$11=0.010Junction deviation, mm
$12=0.002Arc tolerance, mm
$13=0Report inches, boolean
$20=0Soft limits, boolean
$21=0Hard limits, boolean
$22=1Homing cycle, boolean
$23=0Homing dir invert, mask
$24=25.000Homing feed, mm/min
$25=500.000Homing seek, mm/min
$26=250Homing debounce, milliseconds
$27=1.000Homing pull-off, mm
$30=1000.Max spindle speed, RPM
$31=0.Min spindle speed, RPM
$32=0Laser mode, boolean
$100=250.000X steps/mm
$101=250.000Y steps/mm
$102=250.000Z steps/mm
$110=500.000X Max rate, mm/min
$111=500.000Y Max rate, mm/min
$112=500.000Z Max rate, mm/min
$120=10.000X Acceleration, mm/sec^2
$121=10.000Y Acceleration, mm/sec^2
$122=10.000Z Acceleration, mm/sec^2
$130=200.000X Max travel, mm
$131=200.000Y Max travel, mm
$132=200.000Z Max travel, mm

Nhập các lệnh bên trên theo đúng cấu trúc $x=val
Dữ liệu cài đặt sẽ được lự vào bộ nhớ EEPROM, để kiểm tra lại các thiết lập hệ thống, hãy dùng lệnh $$

Lưu ý: Một số cài đặt ( $100, $101, $102) yêu cầu khởi động lại mạch điều khiển thi thay đổi thông số cài đặt của nó. Nếu không, lệnh di chuyển các trục có thể độ sẽ bị lỗi dẫn tới sai tọa độ gây hỏng máy.

Ý NGHĨA CỦA CÁC LỆNH

Lưu ý: Các lệnh $10, $30, $31, $32 chỉ được thêm ở các bản Grbl v0.9 trở đi, những lệnh khách thì như nhau

$0 – Step pulse, microseconds - Bước xung, micro giây

Mỗi loại Module điều khiển động cơ bước sẽ có thông số độ dài bước xung nhỏ nhất khác nhau. Kiểm tra trong Bảng thông số của module, hoặc thử đặt 1 số bất kỳ. Bạn nên đặt độ dài bước xung ngắn nhất có thể theo chỉ định để module có hoặt động tốt. Nếu bước xung quá dài, bạn có thể gặp rắc rối khi máy chạy vói tốc độ và bước xung quá cao, vì các bước xung có thể bị chống chéo lên nhau.
Gợi ý đặt giá trị xung quanh giá trị mặc đinh là 10 micro giây

$1 - Step idle delay, milliseconds

Mỗi khi hoàn thành các bước di chuyển và chuẩn bị dường lại, Grbl sẽ có thời gian trễ trước khi chuyển sang hoạt động tiếp theo

$2 – Step port invert, mask

Nên để mặc định: $2=0

Giá trị cài đặtMaskĐảo XĐảo YĐảo Z
000000000NNN
100000001YNN
200000010NYN
300000011YYN
400000100NNY
500000101YNY
600000110NYY
700000111YYY

$3 – Direction port invert, mask - Đảo ngược hướng trục

Thông thường các trục di chuyển theo hướng tích khi tín hiệu là Low, và hướng tiêu cực khi tín hiệu là High. Cài đặt này sẽ đảo ngược lại điều này.
Có thể cài đặt đảo ngược cho từng trục bằng cách sử dụng các Mask khác nhau (them khảo các Mask ở bảng trên)
Ví dụ muốn đảo riêng trục Y ta dùng lệnh: $3=2 (dir port invert mask: 00000010)

$4 - Step enable invert, boolean - Đảo tín hiệu kích hoạt

Theo mặc đinh, chân kích hoạt động cơ bước (enable pin) sẽ là trạng thái High để tắt, và Low để bật. Nếu bạn muốn đảo ngược ngược lại thì bạn có thể dùng lệnh $4=1. Và tắt đảo ngược bằng lệnh $4=0 (Cần ngắt nguồn và cắm lại để thay đổi được kích hoạt)

$5 - Limit pins invert, boolean - Đảo tín hiệu chân giới hạn (Endstop, Limit switch...)

Theo mặc định, Endstop hoặc Limit switch... là loại được cấu tạo theo cấu trúc Pull-up Resistor, thì trong trạng thái thông thường tín hiệu tới Limit pins sẽ là High. Khi nhấn Button thì tín hiệu sẽ là Low,  Grbl sẽ xác đinh là chân này được kích hoạt. Nếu bạn muốn ngược lại thì dùng code $5=1. Tắt đi bằng code $5=0 (Cần ngắt nguồn và cắm lại để thay đổi được kích hoạt)

$6 - Probe pin invert, boolean - Đảo tín hiệu đầu dò

Theo mặc định, đầu dò cũng được cấu tọa theo cấu trúc Pull-up Resistor như trên, trong trạng thái thông thường thì tín hiệu sẽ là High. Khi đầu dò chạm vào bề mặt dò thì tín hiệu sẽ là Low. Grbl sẽ xác định chân này được kích hoạt. Nếu bạn muốn ngược lại thì dùng code $6=1. Tắt đi bằng code $6=0 (Cần ngắt nguồn và cắm lại để thay đổi được kích hoạt)

$10 - Status report, mask - Báo cáo trạng thái

Cài đặt này xác định thời gian thực của Grbl mà nó báo lại cho người dùng khi dấu '?' báo cáo trạng thái được gửi. Dữ liệu bao gồm trạng thái chạy hiện tại, vị trí theo thời gian thực, tốc độ nguồn cấp dữ liện thời gian thực, trạng thái các chân ra tín hiệu, trạng thái bộ đệm, số dòng G-code đang thực hiện.
Trong các bản firmware mói v1.1+ thì báo cáo chỉ gồm các báo cáo chuẩn, ngắn gọn đầy đủ các thông tin cần thiết, những thông tin còn lại sẽ được ẩn đi, nhưng có thể hiển thị nếu bạn là người tò mò. 
Để mọi thứ tối giản và đơn giản nhất, Grbl chỉ còn 2 tùy chọn báo báo:
- Lựa chọn hiển thị vị trí máy(MPos:) hoặc vị trí làm việc (WPos:), không thể hiển thị cả 2 cùng 1 lúc. Theo mặc định vị trí máy sẽ được hiển thị, còn vị trí làm việc chỉ có ích cho 1 vài trường hợp
- Hiển thị báo cáo số lượng khối hoặc byte có sẵn trong cá bộ nhớ đệm tương ứng. Điều này thường được dùng để xác đinh Grbl đang hoạt động thế nào khi thử nghiệm
Sử dụng bảo dưới đây để lực chọn các tùy chọn cho Báo cáo.
Loại báo cáoGiá trịMô tả
Vị trí0Hiển thị WPos, Tắt MPos:
Vị trí1Hiển thị MPos, Tắt WPos
Dữ liệu đệm2Số lượng khối hoặc byte

$11 - Junction deviation, mm - Độ lệch đường giao nhau

Độ lệch đường giao nhau được trình quản lý gia tốc sử dụng để xác định tốc độ nó thể thể di chuyển qua các điểm giao nhau giữa các đoạn thẳng xuất hiệu trong chương trình G-code.
Ví dụ: Nếu đường G-code sắp tới 1 góc gấp khúc 10 độ và máy đang di chuyển với tốc độ tối đa, cài đặt này nhằm xác định máy cần giảm tốc độ bao nhiêu để đi qua chỗ gấp khúc an toàn, và không bị mất bước.
Cách tính toán khá phức tạp, nhưng hiểu 1 cách đơn giản, nếu giá trị này cao thì tốc độ đi qua các góc sẽ nhanh hơn, nên sẽ làm tăng nguy cơ mất bước hoặc lệch vị trí. Giá trị này thấp sẽ làm việc quản lý gia tốc cẩn thận hơn, máy đi vào các góc cẩn thận hơn và chậm hơn.
Vì vậy, nếu bạn gặp bất kỳ lỗi nào liên quan tới việc máy đi qua các góc quá nhanh hãy giảm giá trị này để máy chậm hơn khi vào các góc, hoặc muốn máy đi qua các điểm giao nhau nhanh hơn thì tăng giá trị này.

$12 – Arc tolerance, mm - Dung sai cung tròn, mm

Grbl chia nhỏ các cung, vòng tròn và xoắn G2/G3 thành nhiều đường thường nhỏ, sao cho độ chính xác độ chính xác của cung tròn không bao giờ thấp hơn giá trị này.
Bạn có thể không cần điều chỉnh giá trị này, vì giá chị 0.02mm là độ chính xác rất cao, áp dụng trên hầu hết tất cả các mấy CNC hiện tại.
Nhưng nếu bạn thấy đường tròn quá thô, hoặc muốn chính xác hơn thì có thể giảm giá trị, khi đó độ chính xác của các cung tròn sẽ cao hơn. Đồng thời khi đó có thể dẫn tới các vấn đề về hiệu suất vì làm quá tải Grbl vì phải xử lý quá nhiều đường nhỏ.

$13 - Report inches, boolean 

Grbl có tính năng gửi dữ liệu tọa độ đang làm việc, hoặc đang dò theo thời gian thực, giúp ta theo dõi vị trí, thông tin... Theo mặc định giá trị tọa độ sẽ được gửi dưới đơn vị mm, nhưng nếu dùng lệnh $13=1, bạn sẽ kích hoạt cài đặt này và khi đó tọa độ sẽ được gửi dưới đơn vị inch.
Dùng lệnh $13=0 để quay lại mm.

$20 - Soft limits, boolean - Giới hạn phần mềm

Giới hạn phần mềm - tính năng an toàn để giúp ngăn máy di chuyển quá xa và vượt quá giới hạn di chuyển, gây va chạm. hư hỏng. Nguyên lý hoạt động bằng cách biết giới hạn hành trình cho mỗi trục và vị trí của tọa độ máy. Khi có mã G-code được gửi tới Grbl, nó sẽ kiểm tra xem tọa độ này có vượt quá giới hạn của máy hay không. Nếu vượt quá thì Grbl sẽ đưa ra lệnh giữ không chạy code đó nữa, và tắt trục chính, chất làm mát, sau đó gửi thông báo cảng báo hệ thống. Vịt trí hoạt động của máy sẽ được giữ lại, vì nó không phải là buộc dừng bởi các giới hạn cứng.
Lưu ý: Giới hạn mềm yêu cầu phải bật Homing (cần có đủ Endstop hoặc Limit switch) và cài đặt hành trình tối đa của các trục, vì Grbl cần biết vị trí của nó.
$20=1 để bật, $20=0 để tắt

$21 - Hard limits, boolean - Giới hạn phần cứng

Nguyên tắc hoạt động tương tự giới hạn phần mềm, nhưng thay bằng việc Grbl nhớ vị trí của máy, thì sẽ dùng các công tắc vật lý. Cơ bản là bạn kết nối một số công tắc (cơ học, từ tính, quang học) được đặt tại các điểm cuối hành của mỗi trục, hoặc bất cứ vị trí nào bạn không muốn các trục di chuyển quá vị trí đó.
Khi công tắc kích hoạt, máy sẽ ngay lập tức tạm dừng mọi chuyển động, tắt chất làm mát và trục chính, và máy sẽ báo lỗi, để khác phục bạn cần kiểm tra máy và đặt lại mọi thứ.
Các công tắc giới hạn nên được cấu tạo theo cấu trúc Pull-up Resistor.
Các giới hạn cứng được bật khi dừng lệnh $21=1, tắt khi dùng lệnh $21=0.
Đặc biệt cần phải có biện pháp chống nhiễu tín hiệu khi gửi từ công tắc tới mạch, các bạn có thể tham khảo mạch chống nhiễu tín hiệu mình đã chia sẻ tại đây: Mạch chống nhiễu cho Endstop - Limit Switch - Máy in 3D & CNC
Khi máy chạm tới giới hạn cứng, là sự kiện quan trọng, các bước chạy ngay lập tức dừng lại và có thể bị mất các bước chạy. Grbl không có phản hồi về vị trí, vì vậy nó không còn dữ liệu về vị trí. Vì vậy, nếu chạm với giới hạn cứng thì Grbl sẽ chuyển sang chế độ ALARM, để bạn kiểm tra máy của mình và buộc phải đặt lại Grbl. Đó chỉ là tính năng an toàn cho máy.

$22 - Homing cycle, boolean - Chu trình Homing

Xác định gốc tọa độ môi khi bắt đầu chạy máy hoặc bắt đầu chạy chương trình gia công, giúp Grbl xác định được điểm gốc từ đó có tham chiếu để biết vị trí của máy trong quá trình chạy.
Để thiết lập chu trình Homing, cần có công tắc hành trình ở các vị trí cố định, để không bị va chạm hoặc di chuyển, nếu không điểm tham chiếu sẽ bị xáo trộn. Thông thường chúng được thiết lập ở điểm xa nhất trong + x, + y, + z của mỗi trục.

$23 - Homing dir invert, mask - Đảo chiều xác định Homing

Theo mặc định Grbl giả định các công tắc giới hạn Homing theo hướng dương, trước tiên di chuyển trục Z theo chiều dương, sau đó chuyển động theo trục X, Y trước khi cố gắng xác định vị trí chính xác của máy bằng cách di chuyển tới lui từ từ quang công tắc giới hạn.
Nếu bạn có công tắc giới hạn ở chiều ngược lại thì có thể dùng lệnh $23=1 để đảo chiều xác định Homing

$24 - Homing feed, mm/min - Tốc độ Homing, mm/min

Trong chu trình Homing, lần đầu khi di chuyển tìm các công tắc giới hạn sẽ di chuyển với tốc độ cao hơn, sau khi chạm tới các công tắc giới hạn máy sẽ chạy ngược lại vài milimet, sau đó di chuyển chậm hơn để xác định được chính xác điểm chạm tới công tắc giới hạn (gốc 0). Tốc độ chậm hơn là tốc độ Homing.

$25 - Homing seek, mm/min - Tốc độ tìm Hominng, mm/min

Tốc độ máy di chuyển lần đầu trong chu trình Homing. Điều chỉnh tốc độ bất kỳ để đảm bảo máy không đâm đột ngột vào công tắc giới hạn.

$26 - Homing debounce, milliseconds - Khử rung Homing. mili giây

Khi máy chạm tới công tắc giới hạn có thể gây ra nhiễu tín hiệu, hoặc rung lắc khiến tiếp xúc cơ học bên trong công tắc không ổn định trong khoảng vài mili giây. Nên để loại bỏ vấn đề này ta cần loại bỏ tín hiệu bằng phần cứng với một số loại điều hòa tín hiệu hoặc bằng phần mềm có độ trễ nhất định để cho tín hiệu ổn định lại. Grbl sễ trễ lại một thời gian, chỉ di chuyển khi máy đã xác định được vị trí 0. Đặt giá trị độ trễ bất kỳ mà bạn cảm thấy đủ để khử hết rung của công tắc giới hạn để chu trình Homing có thể lặp lại. Thường từ 5-25 mili giây.

$27 - Homing pull-off, mm - 

Sau khi máy chạm vào công tắc giới hạn thì máy sẽ di chuyển quay lại 1 khoảng nhất định, đảm bảo khoảng cách này đủ xa để không còn chạm vào công tắc giới hạn. Điểm này được coi là điểm gốc 0. Nó giúp ngăn chặn việc vô tình chạm vào giời hạn cứng trong quá trình máy di chuyển.

$30 - Max spindle speed, RPM - Tốc độ tối đa của Trục quay, vòng/phút

Đặt tốc độ lớn nhất với chân tín hiệu ra PWM hiệu điện thế lớn nhất là 5V. Ví dụ bạn muốn đặt tốc độ 10.000rpm với động cơ 5V, dùng lệnh: $30=10000.
Trong trường hợp muốn tốc độ lớn hơn hoặc dùng Trục quay dùng hiệu điện thế 5V thì bạn cần kết nối chân tín hiệu ra PWM tới Dimmer và điều khiển tốc độ thông quan Dimmer, như mình có đề cập tới ở bài này: [CNC] Hướng dẫn kết nối, cài đặt KIT Arduino Uno và CNC Shield v3 - Pinout & Wiring 

$31 - Min spindle speed, RPM - Tốc độ nhỏ nhất của Trục quay, vòng/phút

Grbl có thể đặt nhỏ nhất cho chân ra tín hiệu PWM là 0.02V. Có đặt dưới 0.02V cụ thể là 0 khi đó là lệnh tắt Trục chính.

$32 - Laser mode, boolean - Chế độ máy cắt Laser

Khi kích hoạt ($32=1) thì Grbl sẽ chuyển qua hoạt động như 1 máy cắt Laser. Khi đó các lệnh di chuyển sẽ không đổi, và lệnh "S" tốc độ Trục chính sẽ chuyển thành công suất Laser. Và tín hiệu điều khiểm PWM sẽ được cập nhật ngay lập tức và liên tục trong quá trình chuyển động, mà không cần dừng lại để thay đổi như máy CNC thông thường.
Lưu ý: Laser rất nguy hiểu khi tiếp xúc trực tiếp với các bộ phận nhạy cảm đặc biệt là mắt, có thể gây mù ngay lập tức. Nên chú ý cẩn thận khi sử dụng.

$100$101 and $102 – [X,Y,Z] steps/mm - Cài đặt Bước cho các trục, bước/mm

Con số thể hiện số bước mà động cơ bước cần thực hiện để trục di chuyển 1 khoảng là 1mm.
Có thể tham khảm cách tính chi tiết và đầy đủ cho cả dây đai và trục vít me tại bài này: Động cơ bước và cách tính bước cho trục vitme và dây đai

$110$111 and $112 – [X,Y,Z] Max rate, mm/min - Tốc độ tối đa, mm/phút

Cài đặt tốc độ lớn nhất mỗi trục có thể di chuyển. Bất cứ khi nào Grbl muốn di chuyển thì trươc tiên nó sẽ đối chiếu với các thông số này xem có tốc độ nào vượt quá tốc độ đã được đặt này không, nếu có thì sẽ tự chậm lại về tốc độ đã giới hạn này.

$120$121$122 – [X,Y,Z] Acceleration, mm/sec^2 - Gia tốc, mm/giây^2

Gia tốc càng cao thì thời gian đáp ứng của trục khi thay đổi tốc độ càng nhanh. Ví dụ gia tốc càng cao thì thời gian từ tốc độ thấp lên tốc đọ cao càng ngắn. 

$130$131$132 – [X,Y,Z] Max travel, mm - Hành trình tối đa của các trục, mm

Cài đặt hành trình tối đa từ điểm đầu tới điểm cuối các trục. Cài đặt này có ích khi bạn bật giới hạn phần mềm, khi đó Grbl sẽ có giá trị tham chiếu để cho giới hạn mềm hoạt động.


Xin lỗi vì để các bạn đợi phần 2 này hơi lâu. Mong là vẫn còn có ích với những ai đang cần thiết hoặc vướng mắc ở đâu đó.

______________________________

Các bạn có thắc mắc, cần tư vấn thêm thì có thể liên hệ mình qua các thông tin sau:

NGUYEN VAN CUONG
2711091095
Ngân hàng VP Bank

Post a Comment

Previous Post Next Post

Contact Form