Nội Dung Bài Viết
Cần downloand
Thư viện grbl link tại đây
Phần mềm Universal G Code Sender
Sơ đồ kết nối
Arduino uno
Step Pulse X-Axis/ Step Pulse Y-Axis/ Step Pulse Z-Axis: chân cấp xung cho driver động cơ bước (tương ứng với trục X, Y và Z)
Direction Pulse X-Axis/Direction Pulse Y-Axis/Direction Pulse Z-Axis: chân chiều quay cho driver động cơ bước (tương ứng với trục X, Y và Z)
Stepper Enable/Disable: chân cho phép/không cho phép chạy động cơ bước
Direction Pulse X-Axis/Direction Pulse Y-Axis/Direction Pulse Z-Axis: chân chiều quay cho driver động cơ bước (tương ứng với trục X, Y và Z)
Limit X-Axis/Limit Y-Axis/Limit Z-Axis: chân kết nối công tắc hành trình
Variable Spindle PWM (*): chân cấp PWM cho spindle (điều khiển tốc độ động cơ phay cho máy CNC, cường độ laser cho máy khắc laser hoặc RC servo cho máy vẽ/viết chữ)
Spindle Direction: chân chiều quay cho động cơ spindle
Shield cnc v3
Chú ý: Đối với grbl v0.8 và v0.9 chân Variable Spindle PWM và chân Limit Z-Axis đổi chổ cho nhau, tức chân PWM bây giờ là chân 12 và ngược lại Limit Z là chân 11
Nạp và cấu hình grbl
Sau khi kết nối dây xong, các bạn tiếp tục add thư viện grbl vào arduino. Xem cách add thư viện tại bài viết
Tiếp theo upload FW cho arduino
Mở Arduino IDE lên, vào menu File -> Examples -> grbl -> grblUpload, sau đó upload code xuống
Tiếp mở phần mềm Universal G Code Sender lên và cắm arduino kết nối với máy tính, chọn cổng com arduino (baund 115200) và nhấn open.
Nếu ở màn hình Console hiện lên dòng bên dưới thì coi như cài FW đã thành công
Giao diện phần mềm
Vùng Connection: Chọn cổng COM (tùy máy mà khi cắm Arduino vào sẽ tạo ra, nhấn vào mũi tên hướng xuống để chọn cổng đúng), baud (mặc định 115200), nút Open/Close để tắt/mở cổng
Vùng Machine status: Thông báo trạng thái (Active Status) và vị trí máy, vị trí làm việc
Màn hình Console: Hiển thị các lệnh đã nạp và các thông báo
Màn hình Command Table: Hiển thị danh sách các lệnh và tình trạng các lệnh đó
Tab Command: Nhập các lệnh G-Code thủ công
Tab File Mode: Nhập các lệnh G-code từ phần mềm xuất file G-code (nhằm gia công tự động)
Tab Machine Control: Điều khiển máy di chuyển thủ công (thường dùng cân chỉnh máy, dò phôi), nhập khoảng cách cần di chuyển vào Step size và nhấn vào trục cần di chuyển, nhớ chọn đơn vị milimetters
Thiết lập Grbl phù hợp với máy cnc mini
Vào Settings -> Firmware Settings -> GRBL
Bảng thiết lập thông số hiện ra: thứ tự các thông số để cấu hình sẽ bắt đầu bằng $, chúng ta sẽ nhập giá trị lựa chọn vào Value, phần Description là phần diễn giải
Các thông số trong Description là bool là nhập vào 0 hoặc 1, còn giá trị nhập vào kiểu mask là kiểu nhị phân 0b00000[thong so 3][thong so 2][thong so 1] (nhớ chuyển giá trị nhị phân này qua số thập phân rồi nhập vô), [thong so 1/2/3] tương ứng là của trục X/Y/Z
Ví dụ: lựa chọn có sự tác động lên X và Z: 0b00000101, vậy giá trị nhập vào là 5
$0 Thời gian mỗi xung cấp cho driver để chạy động cơ, mặc định là 10uS
$1 Thời gian giữ động cơ sau mỗi loạt chuyển động, muốn động cơ luôn được giữ cho thông số bằng 255, giá trị mặc định 25mS
$2 Chọn mức tín hiệu xung ra cho driver điều khiển, chỉ chỉnh khi sử dụng driver có opto cho phép ngõ vào cao hoặc thấp (như driver TB6560/6600..)
$3 Chọn hướng chuyển động cho động cơ mỗi trục.Ví dụ sau khi ráp ta thấy trục Z chạy ngược với mong muốn (nhấn Z+ nó đi xuống và Z- nó đi lên), ta thiết lập lại: $3=4 (0b00000100), hoặc đổi trục X và Z: $3=5 (0b00000101)
$4 Chọn đảo mức tín hiệu cho cho phép chạy động cơ (tương tự $2 và $3)
$5 Chọn đảo mức tín hiệu cho Endstop (công tắc hành trình – các chân Limit), mặc định $5=0, endstop sẽ bị kích hoạt khi chân endstop tương ứng bị tác động mức thấp (0V), nếu chọn $5=1, endstop sẽ bị kích hoạt khi chân endstop tương ứng bị tác động mức cao (5V)
$6 Chọn đảo mức tín hiệu cho cảm biến dò bề mặt phôi
$10 Chọn chế độ phản hồi thông tin khi máy chạy, mặc đinh: $10=3 (chỉ phản hồi vị trí máy và vị trí gia công)
$11 Chọn gia tốc của dao khi gia công, thông số càng lớn dao đi càng nhanh nhưng dễ bị sai số, giá trị mặc định 0.01mm
$12 Chọn sai số khi đi cung tròn, số càng nhỏ đi càng mịn, giá trị mặc định 0.002mm
$13 Chọn chế độ thông báo trạng thái làm việc theo đơn vị Inch, giá trị mặc định là 0 (không chọn Inch, máy sẽ báo về đơn vị mm)
$20 Chọn chế độ giới hạn hành trình bằng phần mềm, sau khi chọn hành trình gia công (thiết lập hành trình gia công này ở $130, $131, $132), máy chỉ cho phép dao chạy trong hành trình này tính từ gốc tọa độ, do đó để chức năng này hoạt động được phải bật cho phép về gốc tọa độ ở $22 (đương nhiên máy phải có endstop)
$21 Chọn chế độ giới hạn hành trình bằng bằng công tắc endstop, bất kỳ công tắc endstop nào bị tác động máy sẽ dừng lại, để máy tiếp tục di chuyển bạn vào Tab Machine Control yêu cầu trục đó di chuyển ra khỏi endstop, khi di chuyển ra khỏi endstop sẽ gặp hiện tượng nhả endstop thì máy lại dừng, bạn làm thêm lần nữa thì nó sẽ ra được.
$22 Chọn cho phép về gốc tọa độ nếu $22=1, sau khi chọn chức năng này, máy sẽ báo Alarm mỗi lần Open, bạn phải nhấn vào nút $H và $X để tiếp tục (trước khi nhấn nhớ kiểm tra dao có bị vướn phôi không, vì sau khi nhấn máy sẽ tự động di chuyển về gốc tọa độ)
$23 Chọn hướng di chuyển về gốc tọa độ (giống như $3)
$24 Chọn tốc độ di chuyển trước khi chạm endstop lần 2, giá trị mặc định 20mm/min
$25 Chọn tốc độ di chuyển trước khi chạm endstop lần 1, giá trị mặc định 100mm/min
$26 Chọn thời gian chờ endstop, giá trị mặc định 250mS
$27 Chọn khoảng di chuyển ngược endstop để chạm lần 2, giá trị mặc định 5mm
Các thông số $20..$27 này khá khó cho các bạn mới làm quen với CNC hoặc gắn endstop chưa phù hợp, do đó không nên thiết lập các thông số này khi chưa quen (dù các thông số này rất hay)
Kinh nghiệp như sau:
Trước hết chọn $21=1 và kiểm tra thử, nếu điều khiển từ Tab Machine Control, trục nào đó đang di chuyển và cố ý chạm công tắc hành trình, nếu trục dừng lại tức là gắn công tắc endstop đã đúng, làm tương tự với các trục còn lại
Sau khi giới hạn hành trình bằng bằng công tắc endstop ở $21 đã được rồi, thử chọn $22=1 và nhấn $H $X, máy tự chạy về gốc tọa độ (nếu hướng chạy về gốc ngược với mong muốn thì chỉnh lại $23)
Các giá trị $24, $25, $26, $27 là nhằm đảm bảo xác định gốc tọa độ chính xác.Giá trị $25 nhỏ sẽ rất tốn thời gian về gốc tọa độ, nhưng nếu giá trị cao sẽ nhanh làm hỏng endstop (và nếu không coi kỹ sẽ bị gãy dao khi dao bị vướn), giá trị $26 là đảm bảo tránh hiện tượng endstop bị nhiễu (giá trị càng cao càng tốt nhưng tốn thời gian), sau khi chạm endstop nó sẽ không gọi ngay điểm đó là gốc mà nó sẽ di chuyển ngược lại 1 đoạn như đã chọn ở $27, sau đó lại chạy vào gốc với tốc độ của $24 (coi như nó chỉ gọi điểm đó là gốc nếu 2 lần chạm giống nhau, điều này giúp tránh hiện tượng endstop tự nhảy do rung động hoặc nhiễu)
$100, $101, $102: chọn số xung cấp cho động cơ tương ứng với di chuyển thẳng 1mm
Do động cơ bước chuyển động xoay (mỗi xung cấp cho động cơ sẽ xoay 1 góc – gọi là 1 bước), chúng ta sẽ dùng các cơ cấu như chuyển động đai kéo, vít-me..để chuyển đổi chuyển động xoay này thành chuyển động thẳng, các thông số này là trung gian cho các chuyển đổi đó.
Cách tính thông số:
Số xung = [(số vi bước) x (số xung động cơ xoay 1 vòng) / (kiểu chuyển động)] x bộ giảm tốc (nếu có)
Trong đó:
Số vi bước: là khả năng chạy vi bước của động cơ mà bạn thiết lập (với DRV8825 cao nhất là vi bước 32, với A4988 và TB6560 cao nhất là 16)
Số xung động cơ xoay 1 vòng: với động cơ có bước là 1.8 độ thì để xoay được 1 vòng (360 độ) nó cần số xung là: 3600/1.80 = 200 xung
Kiểu chuyển động:
Với chuyển động sử dụng bánh đai – dây đai GT2 = số răng trên Puli x 2
Với chuyển động sử dụng vít-me = bước vít-me
Bộ giảm tốc: nếu động cơ gắn trực tiếp vào cơ cấu chuyển động thằng thì giá trị này không cần quan tâm (bằng 1), nếu bạn sử dụng bộ giảm tốc với độ giảm bao nhiêu lần thì số xung sẽ phải nhân lênbấy nhiêu lần.
Ví dụ:
Máy sử dụng động cơ bước 1.8 độ, driver DRV8825, chọn vi bước 32 và không sử dụng giảm tốc
Chuyển động gắn với puli 16 răng và đai GT2: số xung = 32 x 200 / (16 x 2) = 200
Chuyển động gắn với vít-me T8: số xung = 32 x 200 / 8 = 800
$110, $111, $112: chọn tốc độ di chuyển lớn nhất cho các trục X, Y, Z tương ứng.Nên chọn sao cho động cơ chạy mượt (riêng trục Z không nên chọn chạy quá nhanh)
$120, $121, $122: chọn gia tốc di chuyển lớn nhất cho các trục X, Y, Z tương ứng.Nếu chọn gia tốc nhỏ sẽ khó đạt tốc độ tối đa, nhưng chọn cao quá khi chạy động cơ dễ bị sốc hoặc trượt bước
$130, $131, $132: chọn hành trình gia công (vùng không gian cho phép làm việc)
Sau khi thiết lập xong nhấn vào Save để lưu lại.Mở Tab Machine Control lên, nhập vài Step size khoảng cách cần đi thử (ví dụ như 10mm) nhấn vào X+, X-, Y+, Y-, Z+, Z- để xem kết quả, nếu sai kiểm tra lại các thông số $100, $101, $102
Lưu ý: các thông số này được lưu trong eeprom của Arduino, nó sẽ không bị mất đi khi tắt điện hoặc cài lại firmware, do đó sau khi cài firmware phải vào kiểm tra và thiết lập lại cho đúng vì nếu mạch Arduino đã từng được cài GRBL nó sẽ vào lấy các thông số cũ ra để chạy tiếp.
Tham khảo tại trang: https://github.com/grbl/grbl/wiki/Connecting-Grbl