Chào mừng tới học viện STEM

Làm cách nào để cài đặt GRBL và điều khiển máy CNC bằng Arduino

Nếu bạn nghĩ bạn đang trong quá trình muốn tạo ra một chiếc máy CNC cho bản thân, thì điều kế tiếp mà bạn sẽ gặp đó là khai niệm về GRBL.        Do đó trong bài học lần này chúng ta sẽ biết được GRBL là gì, làm sao để cài đặt và làm sao để sử dụng nó để điều khiển một máy CNC dựa vào  Arduino.

Cũng như vậy, chúng ta sẽ học cách sử dụng Universal G-code Sender, một phần mềm điều khiển GRBL sử dụng mã nguồn mở phổ biến.

GRBL là gì ?

GRBL là một phần mềm mã nguồn mở hoặc chương trình có thể kích hoạt điều khiển các chuyển động của máy CNC. Chúng ta có thể cài đặt dễ dàng cài đặt chương trình GRBL cho Arduino và vì thế chúng ta có thể có ngay một bộ điều khiển CNC với giá thành rẻ và hiệu suất cao. GRBL sử dụng G-code làm tín hiệu vào, và tín hiệu ra dùng để điều khiển chuyển động thông qua Arduino.

Để hiểu rõ hơn chúng ta cần nhìn xuống sơ đồ bên dưới này.

Từ sơ đồ , chúng ta có thể thấy từ đâu GRBL được sử dụng trong một “bức tranh lớn” về nguyên lý vận hành của máy CNC. Nó là một chương trình chúng ta cần để cài đặt hoặc tải lên cho Arduino do đó nó có thể điều khiển động cơ bước của máy CNC. Nói một cách khác thì vai trò của chương trình GRBL là chuyển đổi G-code thành chuyển động của động cơ.

Yêu cầu phần cứng

  • Arduino – như đã nêu trên, chúng ta cần có một Arduino để cài đặt GRBL. Một cách cụ thể, chúng ta cần một board Arduino dùng chip Atmega 328, nghĩa là chúng ta có thể dùng Arduino Uno hay Nano đều được.
  • Động cơ bước – Động cơ bước cung cấp các chuyển động cho máy
  • Bộ điều khiển (driver) – để điều khiển động cơ bước chúng ta cần có một bộ điều khiển và một lựa chọn phổ biến đó là A4988 hoặc DRV 8825
  • Shield Arduino CNC – để kết nối bộ điều khiển động cơ bước với Arduino, cách đơn giản nhất là sử dụng Arduino CNC shield. Chúng sử dụng tất cả chân của Arduino và cung cấp một cách đễ nhất khi kết nối với tất cả mọi thứ, động cơ bước, trục xoay, công tắc hành trình, quạt tản nhiệt

Hãy lưu ý ghi lại các thành phần điện tử cơ bản này chúng ta cần hiểu được một máy CNC vận hành như thế nào

Thật ra để biết tất cả những thứ cần được kết nối như thế nào thì chúng ta có thể nhìn vào máy cắt DIY CNC dưới đây

Công cụ chính của máy CNC này là dây nhiệt, là thứ có thể dễ dàng bị nóng chảy hoặc bị cắt xuyên bởi Styrofoam và tạo ra bất cứ hình dạng nào mà bạn muốn. Để biết thêm chi tiết làm thế nào để làm máy CNC và làm thế nào để mọi thứ hoạt động được, bạn có thể xem kỹ lại bài học.

Tuy nhiên, chúng ta sẽ sử dụng máy CNC này như một ví dụ thông qua tiêu đề này, bởi vì nguyên lý làm việc tương tự được áp dụng cho bất cứ loại máy CNC, cho dù là nó máy khắc hoặc máy laser.

Làm cách nào để cài đặt GRBL

Đầu tiên, để có thể cài đặt hoặc tải GRBL lên Arduino thì chúng ta cần phần mềm Arduino IDE.

Sau đó chúng ta có thể tải GRBL về từ github.com

Tải ở dạng .ZIP file và thực theo các bước sau:

  • Mở grbl-master.zip và giải nén
  • Mở Arduino IDE, chọn Sketch > Include Library > Add .ZIP Library…
  • Chọn thư mục đã giải nén grbl-master, chọn thư mục grbl và mở thư mục. Bây giờ chúng ta đã có GRBL trong thư viện Arduino
  • Kế tiếp, chọn File > Examples > grbl > grblUpload . Một bảng mới sẽ mở ra và chúng ta cần nạp chương trình đó cho Arduino. Code có thể sẽ hơi lạ vì nó chỉ có một dòng nhưng đừng lo, mọi thứ đều được chạy nền trong thư viện. Vì vậy, chúng ta chọn board Arduino, chọn cổng COM và upload chương trình lên là xong.

Thông số GRBL
Ở điểm này, chúng ta nên hiệu chỉnh GRBL theo máy của chúng ta, chúng ta có thể làm thông qua Serical Monitor của Arduino IDE. Mỗi lần mở Serdial Monitor chúng ta lại có một dòng nhắn như Grbl 1.1h [‘$’ for help]. Nếu bạn không thấy dòng nhắn này, cần phải kiểm tra lại bạn đã đổi baurate sang 115200 chưa.

Nếu chúng ta gõ $$ chúng ta sẽ nhận được một danh sách các lệnh cài đặt và đơn vị cài đặt, chúng sẽ xuất hiện giống như bên dưới:

$100=250.000 (x, step/mm)
$101=250.000 (y, step/mm)
$102=3200.000 (z, step/mm)
$110=500.000 (x max rate, mm/min)
$111=500.000 (y max rate, mm/min)
$112=500.000 (z max rate, mm/min)
$120=10.000 (x accel, mm/sec^2)
$121=10.000 (y accel, mm/sec^2)
$122=10.000 (z accel, mm/sec^2)

Tất cả những lệnh điều khiển có thể được hiệu chỉnh dựa theo máy CNC của chúng ta. Ví dụ như với lệnh điều khiển đầu tiên, $100=250.000 (x, step/mm), chúng ta có thể điều chỉnh bước theo đơn vị mm của máy, hoặc chúng ta có thể xác định rõ bao nhiêu bước để động cơ có thể di chuyển trên trục X được 1mm .

Tuy nhiên, tôi khuyên bạn nên giữ các cài đặt như đã có. Đó là cách đơn giản nhất để hiệu chỉnh chúng dựa theo máy thông qua phần mềm điều khiển

Bộ điều khiển GRBL

Mỗi khi chúng ta cài đặt phần mềm GRBL, thì Arduino của chúng ta sẽ biết đọc được G-code và làm cách nào để điều khiển máy CNC dựa theo nó. Tuy nhiên, để gửi G-code cho Arduino chúng ta cần phải có một giao diện hoặc chương trình điều khiển để Arduin biết phải làm gì. Thật ra, có cả mã nguồn mở hoặc các phần mềm thương mại để phục vụ cho vấn đề đó. Và tất nhiên, chúng ta sẽ sử dụng mã nguồn mở, và đây là ví dụ chúng ta sẽ sử dụng Univarsal G-code Sender.

Làm cách nào để sử dụng  Univarsal G-code Sender

Đối với ví dụ này, tôi sẽ sử dụng phiên bản 2.0 Platform. Mỗi khi chúng ta tải nó về, chúng ta cần phải giải nén, vào mục Bin folder và mở bất cứ          “ugsplatfrom” files nào có thể thực hiện được. Đây thật ra là một phần mềm JAVA, do đó để mở đươc phần mềm này, chúng ta cần phải cài đặt  JAVA Runtime Environment.

Khi chúng ta mở Univarsal G-code Sender, đầu tiên chúng ta cần nhập thông số máy, hoặc thông số đo đạc cho GRBL. Cho mục đích đó chúng ta sẽ sử dụng UGS Setup Wizard sẽ tiện lợi hơn, kế tiếp sẽ nhập lệnh thủ công thông qua Serial Monitor của Arduino IDE.

Bước đầu tiên ở đây là chọn baurate là 115200, và cổng port được kết nối với Arduino. Khi chúng ta kết nối Universal G-code sender với Arduino , bước kế tiếp là chúng ta sẽ kiểm tra hướng chuyển động của động cơ.

Nếu cần, chúng ta có thể đổi chiều thông qua wizard, hoặc đảo chân kết nối của động cơ với Arduino CNC shield.

Bước kế tiếp chúng ta sẽ hiệu chỉnh thông số step/mm như đã đề cập bên trên. Đến đây chúng sẽ dễ dàng hiểu được làm thế nào để điều chỉnh bởi vì cài đặt wizard sẽ tính toán và báo cho ta biết giá trị nào cần phải được cập nhật thông số.

Giá trị mặc định là 250 steps/mm. Điều đó có nghĩa là nếu chúng ta chọn vào nút X+, thì động cơ sẽ di chuyển 250mm. Bây giờ thì tùy thuộc vào các bước cứng mà động cơ có, để lựa chọn độ phân giải về bước và kiểu phát, máy CNC sẽ di chuyển thêm một khoảng. Sử dụng thước để đo chuyển động của cơ cấu chấp hành do máy thực hiện và nhập giá trị vào ô Actual movement. Dựa vào đây, wizard sẽ tính toán và báo cho chúng ta biết giá trị nào chúng ta cần thay đổi thông số Steppers/mm.

Trong trường hợp của tôi, máy CNC mà tôi làm đã di chuyển 3mm. Theo đó, wizard đã đề nghị để cập nhật thông số steppers/mm thành giá trị 83

Với giá trị được cập nhật cho máy , thì máy sẽ di chuyển chính xác , 1mm trong phần mềm tương đương 1mm cho máy CNC.

Trên bảng điều khiển UGS, như chúng ta làm mỗi tác động , chúng ta có thể nhìn thấy các lệnh điều khiển được thực hiện. Chúng ta cần lưu ý rằng cập nhật thông số steps/mm trong phần mềm UGS thật ra là gửi qua cho Arduino , hoặc chương trình điều khiển GRBL như chúng ta đã đè cập bên trên.Giá trị mặc định là : $100=250.000 (x, step/mm), và bây giờ chúng ta đã cập nhật giá trị 83 steps per mm: $100=83.

Bước kế tiếp chúng ta có thể kích hoạt công tắc hành trình và kiểm tra xem chúng có có hoạt động chính xác hay không.

Tùy thuộc vào chúng là dạng thường mở hay thường đóng được kết nối, chúng ta cũng có thể đảo ngược chúng ở đây.

Đây là nhưng ghi chú đáng giá, đó là đôi khi chúng ta cần vô hiệu hóa công tắc hành trình trục Z. Đó là trường hợp với máy          cắt CNC của tôi, vì máy của tôi không cần đến công tắc hành trình trục Z và tôi đã vô hiệu hóa nó để có thể trở về điểm home của máy. Do đó, để làm được điều này chúng ta cần điều chỉnh lại config.h file, là file trong thư viện của Arduino

Ở đây chúng ta cần tìm dòng homing cycle và viết vào cài đặt mặc định 3 trục của máy và không viết vào phần cài đặt cho máy 2 trục. Để các thay đổi để có hiệu lực, chúng ta cần phải lưu file lại và tải lại grblUpload sketch lên Arduino.

Tuy nhiên, bước  kế tiếp chúng ta có thể kích hoạt hoặc vô hiệu hóa việc về home của máy CNC.

Sử dụng nút Try homing trên máy sẽ bắt đầu di chuyển về phía cuối của công tắc giới hạn. Trong trường hợp máy di chuyển hướng ngược lại chúng ta có thể đổi lại hướng một cách dễ dàng.

Cuối cùng , trong bước cuối của phần Setup Wizard chúng ta có thể kích hoạt các giới hạn cho máy CNC

Các giới hạn giúp cho máy CNC không hoạt động ngoài khu vực được phép .

Kết luận

Nhờ vào  chương trình GRBL và Arduino, chúng ta có thể dễ dàng cài đặt và vận hành máy DIY CNC của chúng ta. Tất nhiên, chúng tôi chỉ hỗ trợ một bài học cơ bản, nhưng tôi nghĩ nó cũng đủ để hiểu làm thế nào để một máy CNC có thể hoạt động và cài đặt chúng.

Tất nhiên còn rất nhiều chế độ cài đặt và tính năng khác, vì phần mềm điều khiển GRBL thực sự có khả năng chạy máy CNC. Tài liệu về GRBL giải thích tất cả một cách chi tiết, nên bạn có thể tìm đọc chúng trên trang wiki của github.com

Cũng như vậy, còn có nhiều phần mềm điều khiển GRBL mã nguồn mở như Universal G-code Sender, và đây là một vài trong số chúng:  GRBLweb (Web Browser), GrblPanel (Windows GUI), grblControl (Windows/Linux GUI), Easel (Browser based) etc. Bạn nên tìm hiểu chúng và tìm xem đâu là thứ phù hợp cho bạn nhất.   

Nguồn: https://howtomechatronics.com/tutorials/how-to-setup-grbl-control-cnc-machine-with-arduino/