CNC Mini sử dụng thư viện GRBL
2016-11-30 20:07
Chào các bạn!
Để không tốn thời gian tìm kiếm và mua linh kiện, mình xin hướng dẫn các bạn những thứ rẻ nhất để chế cháo 1 cái máy cnc mini sử dụng thư viện GRBL.
I. Chuẩn bị:
1 board arduino UNO R3.
1 board CNC Shield v3.
3 board A4988.
2m ty ren M8 (Giá chỗ mình 20k/1cây/1m)
3 đai ốc M8.
3 stepper motor size 42.
1 nguồn tổ ong 12v 5A.
3 giá gắn stepper motor size 42.
3 khớp nối mềm 5mm - 8mm.
1 lọ keo 502.
1 lạng ốc vít đen 1,5cm, 1 lạng ốc đen 3cm.
3 dây 4P dài 70cm
2 thanh trượt tủ 3 khúc
1 thanh trượt tủ 2 khúc làm trục Z.
Khoan, mũi khoan gỗ 3mm, máy cắt cầm tay, cờ lê, tua vít, lục lăng, Thước nước cân bằng
Và tất nhiên phải có 1 máy tính không thì ra tiệm net cũng đc =)).
II. Mua ở đâu.
- board arduino UNO R3, board CNC Shield v3, board A4988, giá gắn stepper motor size 42, khớp nối mềm 5mm - 8mm có thể mua luôn tại mme.vn/
-ty ren M8, đai ốc M8, ốc vít mua ở của hàng vật tư. Các bạn vào hỏi có thanh ren (ty ren) M8 không, thanh ren đường kính 8mm.
Vì sao chọn thanh ren M8? - Bởi vì động cơ bước mình chọn là size 42 thường là 1,8 độ, 1 vòng quay cần 200 bước. Thanh ren M8 có số bước ren là 1,25mm thế nên 200/1,25=160 bước đi được 1mm (Chẵn số).
- stepper motor size 42, các bạn có thể ra chợ trời tìm mua nhưng phải để ý thông số, hoặc có thể đặt mua tại trang web trên.
-Thanh trượt tủ ra cửa hàng nhôm hỏi mua, hình ảnh cho dễ tìm nhé:
III. Cách sử dụng board điều khiển:
- Cách kết nối board các bạn xem ở video của trang mme.vn.
- Chỉnh dòng cấp cho motor trên A4988 như sau:
Driver động cơ bước A4988 điều chỉnh dòng cấp cho cuộn dây bằng cách điều chỉnh biến trở, nên nếu không điều chỉnh biến trở không đúng thì khi điều khiển sẽ khiến động cơ không chạy (do dòng quá nhỏ) hoặc động cơ chạy nhưng quá nóng (do dòng qua cuộn dây quá lớn).
Dòng của cuộn dây được tính thông qua điện áp của biến trở là V. Công thức tính cường độ dòng điện cấp cho động cơ:
I = V/(8*Rs)
Điện trở Rs có thể quan sát ngay trên board A4988:
Nguồn ảnh: mme.vn
Tùy vào từng nhà sản suất mà giá trị điện trở Rs sẽ khác nhau, nhưng có 3 giá trị trở chủ yếu là :
- 0,05 Ohm (ký hiệu R50)
- 0,1 Ohm (ký hiệu R100)
- 0,2 Ohm (ký hiệu R200)
Từ trên ta có thể suy ra cách tính nhanh dòng với các giá trị Rs:
- Với Rs=0,05 Ohm : I = V/0,4.
- Với Rs=0,1 Ohm : I = V/0,8.
- Với Rs=0,2 Ohm : I = V/1,6.
Khi điều chỉnh dòng cấp cho động cơ, cần điều chỉnh biến trở sao so khi tính ra giá trị cường độ dòng điện I, thì I bằng hoặc nhỏ hơn một chút so với giá trị cường độ dòng điện định mức của động cơ.
Cách đo như sau: Dùng đồng hồ đo điện tử, để chế độ đo DC 20V, que đỏ cắm thẳng vào biến trở của board A4988, que đen cắm vào GND của nguồn (cực âm nguồn).
Lấy số điện áp đo được thay giá trị vào công thức trên.
Để thiết lập vi bước tra bảng sau:
*Xong phần chỉnh và kết nối, tiếp phần kết nối với phần mềm.
Để sử kết nối được cần phải có driver, cái này các bạn tự làm nhé.
Khi có driver đầy đủ xem cổng kết nối của nó là bao nhiêu VD: COM3
Kết nối xong đến nạp firmware: các bạn có thể tải tại đây drive.google.com/file/d/0B-YT7Rwqt2AycnZaLXhxdlZkSDQ/view?usp=sharing
Đã có đầy đủ cả rồi. Giải nén ra mở thư mục Xloader chạy file Xloader.exe
Chọn file grbl_v0_9j_atmega328p_16mhz_115200.hex
Cài thông số như hình, chọn cổng com của arduino nhấn Upload và chờ 1 lát.
Sau khi nạp firmware xong mở thư mục GRBL lên chạy file UniversalGcodeSender, giao diện như hình:
- Port: tên cổng COM của kết nối giữa board Arduino UNO với máy tính.
- Baud: chọn 115200
Vào settings -> firmware settings -> GRBL (Tinh chỉnh thông số máy)
Các giá trị có ý nghĩa sau:
- $0: thời gian mỗi xung cấp tới động cơ bước, tính bằng micro giây. Mỗi một động cơ có đặc tính thông số thời gian kéo dài của xung điện áp khác nhau. Quy tắc điều chỉnh là giảm thời gian mỗi xung xuống càng thấp càng tốt miễn là động cơ chạy ổn định. Giá trị mặc định là 10 us.
- $1: thời gian đợi để tắt động cơ, tính bằng mili giây. Sau khi động cơ hoàn thành xong một chuyển động hoặc dừng hẳn, mạch điều khiển vẫn tiếp tục cấp điện cho động cơ trong thời gian ứng với giá trị $1. Nếu muốn để mạch điều khiển luôn luôn cấp nguồn cho động cơ (động cơ luôn ở chế độ được cấp điện), đặt giá trị $1 = 255. Thông thường với những máy sử dụng đai GT2, có thể đặt giá trị $1 = 255, tuy nhiên khi đó động cơ có thể nóng hơn bình thường một chút.
- $2: thiết lập đảo mức điện áp tín hiệu điều khiển động cơ bước. Chức năng này sử dụng để đảo ngược mức tín hiệu (5V <-> 0V) của tín hiệu điều khiển động cơ. Thông thường thiết lập này không cần sử dụng tới trừ trường hợp với một vài driver đặc biệt.
Ảnh: mme.vn
Cách sử dụng $2 như bảng trên: ví dụ khi muốn đảo mức tín hiệu điều khiển động cơ bước của trục Z, các trục X và Y không thay đổi, ta thiết lập: $2 = 4.
- $3: thiết lập đảo mức tín hiệu điều khiển hướng động cơ của mỗi trục. Thiết lập này tương đương với đảo thứ tự toàn bộ chân các dây điều khiển của động cơ bước và dùng để đảo chiều chuyển động ( âm hoặc dương) của động cơ. Cách thiết lập trục nào sẽ bị đảo hướng chuyển động cũng giống như đối với $2. Ví dụ muốn đảo hướng chuyển động của trục Y, ta sửa giá trị $3 = 2.
- $4: thiết lập dảo ngược tín hiệu kích hoạt động cơ cho tất cả các trục. Thông thường thiết lập này không cần sử dụng và có thể để mặc định $4 = 0.
- $5: thiết lập đảo ngược tín hiệu kích hoạt Endstop (cảm biến giới hạn hành trình máy) cho tất cả các trục. Nếu $5 = 0, mạch điều khiển sẽ xem tín hiệu kích hoạt Endstop là mức 0 (0V). Nếu $5 = 1, mạch điều khiển sẽ xem tín hiệu kích hoạt Endstop là mức 1 (+5V).
- $6: thiết lập đảo ngược tín hiệu kích hoạt cảm biến dò bề mặt phôi. Khi sử dụng chức năng dò bề mặt phôi (kiểm tra độ cao các điểm trên bề mặt phôi để bù lại khi gia công), nếu $6 = 0 mạch điều khiển sẽ xem tín hiệu kích hoạt đầu dò là mức 0 (0V). Nếu $6 = 1 mạch điều khiển sẽ xem tín hiệu kích hoạt đầu dò là mức 1 (+5V). Lưu ý, khi đặt $6 = 1, cần phải bổ sung thêm một trở nối đất cho chân tín hiệu đầu dò.
- $10: thiết lập phản hồi trạng thái của máy khi đang chạy:
Ảnh: mme.vn
Mục đích của thiết lập là cho phép người dùng chọn lựa/loại bỏ một số thông tin trạng thái của máy cần theo dõi. Thông thường càng ít thông số cần theo dõi càng tiết kiệm được tài nguyên của mạch điều khiển. Các thông số có thể chọn/loại bỏ trình bày như trong hình trên gồm có: Machine Position (vị trí máy); Work Position (vị trí gia công); Planner Buffer (bộ nhớ đệm lưu các bước gia công tiếp theo); RX Buffer (bộ nhớ đệm nhận tín hiệu); Limit Pins (trạng thái các chân tín hiệu Endstop).
Cách sử dụng: ví dụ nếu muốn mạch điều khiển chỉ gửi về thông số Machine Position và Work Position, đặt giá trị: $10 = 1+2 = 3.
- $11: thiết lập giá trị gia tốc của dao khi di chuyển qua các điểm nối giữa các cạnh cần gia công. Giá trị gia tốc này càng cao, máy chạy càng nhanh nhưng khả năng xảy ra sai lệch kích thước càng lớn và ngược lại.
- $12: thiết lập độ chính xác gia công các cung tròn/đoạn cong, tính theo milimét. Thông thường giá trị này không cần phải thay đổi trừ khi cần giá trị khác. Nếu muốn gia công các cung tròn nhanh hơn, có thể tăng giá trị $12 lên một chút.
- $13: thiết lập thông báo trạng thái làm việc của máy theo đơn vị Inch hay không. Nếu $13 = 0, máy sẽ báo trạng thái làm việc theo đơn vị mm. Nếu $13 = 1, máy sẽ báo trạng thái làm việc theo đơn vị inch.
- $20: thiết lập chức năng giới hạn hành trình bằng phần mềm. Khi kích hoạt tính năng này (bằng cách đặt giá trị $20 = 1), mạch điều khiển sẽ chỉ cho phép dao di chuyển trong giới hạn cho phép (xem $130; $131; $132) tính từ gốc tọa độ. Khi muốn dùng tính năng này bắt buộc phải bật tính năng về gốc tọa độ ($22) trước.
- $21: thiết lập chức năng giới hạn hành trình bằng Endstop. Khi kích hoạt tính năng này (bằng cách đặt giá trị $21 = 1), mạch điều khiển sẽ tự động dừng toàn bộ máy khi có bất kỳ Endstop nào kích hoạt. Thông thường tính năng này không cần dùng đến, trừ một số trường hợp đặc biệt.
- $22: thiết lập chức năng về gốc tọa độ. Khi kích hoạt tính năng này (bằng cách đặt giá trị $22 = 1), mỗi lần khởi động máy, dao sẽ được tự động di chuyển về gốc tọa độ (được xác định bằng 3 Endstop ứng với trục X; Y; Z). Trong quá trình di chuyển về gốc tọa độ, mạch điều khiển sẽ không thực hiện bất cứ một lệnh nào khác cho tới khi về tới vị trí của 3 Endstop.
- $23: thiết lập hướng di chuyển về gốc tọa độ (sử dụng khi đảo ngược hướnglắp Endstop trên trục). Cách sử dụng giống như với $2.
- $24: tốc độ về gốc tọa độ chậm (mm/phút). Khi về gốc tọa độ, đầu tiên dao sẽ di chuyển nhanh (tốc độ về gốc tọa độ nhanh $25) từ vị tri hiện tại. Khi gặp Endstop, dao sẽ được di chuyển ngược lại và sau đó di chuyển chậm (tốc độ về gốc tọa độ chậm $24) để đảm bảo độ chính xác. Giá trị $24 càng nhỏ thì vị trí xác định khi gặp Endstop càng chính xác, tuy nhiên càng mất thời gian hơn.
- $25: tốc độ về gốc tọa độ nhanh (mm/phút). Xem giải thích tại $24.
- $26: thiết lập độ trễ (delay, mili giây) khi kiểm tra tín hiệu Endstop khi về gốc tọa độ. Để giảm ảnh hưởng do nhiễu tín hiệu điện, mạch điều khiển sẽ tạo một thời gian trễ khi nhận được tín hiệu kích hoạt từ Endstop. Thông thường giá trị này nằm trong khoảng 5 – 25 ms.
- $27: thiết lập di chuyển sau khi đã về gốc tọa độ (mm). Sau khi đã về gốc tọa độ, dao sẽ được di chuyển theo chiều ngược lại một quãng bằng giá trị $27 theo tất cả các trục.
- $100; $101; $102: thiết lập số bước của động cơ ứng với 1mm theo các trục X; Y; Z tương ứng.
- $110; $111; $112: thiết lập tốc độ di chuyển cực đại của dao theo mỗi trục X; Y; Z tương ứng (mm/phút). Khi kiểm tra máy, ban đầu có thể đặt giá trị này thật thấp, sau đó tăng dần tới khi động cơ hoạt động mượt nhất.
- $120; $121; $122: thiết lập gia tốc di chuyển dao ứng với mỗi trục X; Y; Z tương đương (mm/s2). Nếu đặt giá trị gia tốc quá thấp, dao có thể không bao giờ tăng tới vận tốc cao nhất được. Tuy nhiên nếu để gia tốc quá cao, động cơ có thể bị mất mốt số bước khi hoạt động.
- $130; $131; $132: thiết lập hành trình tối đa (kích thước gia công tối đa) theo các trục X; Y; Z tương ứng (mm). Các thiết lập này chỉ cần thiết khi đã kích hoạt tính năng $20.
Tab: Commands dùng để gõ lệnh.
Tab: File Mode dùng để đưa file Gcode vào phần mềm, phần Visualize để xem mô phỏng.
Tab: Machine control dùng để điều khiển các trục.
-Reset zero: chuyển vị trí hiện tại tất cả các trục bằng 0.
-Return to zero: di chuyển các trục về vị trí 0
-Reset X - Y - Z: chuyển vị trí hiện tại của trục tương ứng bằng 0.
2. Để đo nhiệt độ motor khoan và bật máy bơm nước làm mát hoặc đại khái làm mát cho nó. :D
3. Các chân này sẽ nối với nhau thông qua công tắc nhấn nhả hoặc nút nhấn.
E-STOP: Dừng máy khẩn cấp.
Resume: tiếp tục
Hold: Tạm dừng giữ vị trí ( Máy sẽ cố định vị trí hiện tại bằng cách ghì động cơ)
4. Khi cắm jump tại trục nào thì tại trục A sẽ chạy theo trục đó, hoặc có thể chạy riêng biệt như 1 trục thứ 4.
5. Các Jump cắm điều khiển vi bước. (Xem bảng điều khiển ở trên).
Chọn gỗ dày 1cm.
Kích thước:
50x5 (2 thanh) - làm khung bên dưới trục Y
30x5 (4 thanh) - 2 thanh làm khung dưới trục Y, 2 thanh làm khung trên gắn thanh trượt trục X.
25x5 (2 thanh) - liên kết trụ Y với X
10x20 (1 thanh) - làm khung trượt trục Z
10x10 (1 miếng) - mặt trượt trục Z
25x25 (1 miếng) - mặt bàn của trục Y
Tạo khung như bản vẽ:
Vì thanh ren có độ cong nên nếu cố định 2 đầu sẽ có chỗ quay êm có chỗ hơi cứng gây hiện tượng di chuyển đứt quãng nhưng k bị mất bước. Nên mình chỉ gắn 1 đầu vào khớp nối mềm của stepper, đầu còn lại mình để di chuyển tự do. Các bạn đừng lo khớp nối khá cứng nên chịu lực tốt.
Các trục chế cháo đủ kiểu để nó di chuyển là được.
Một số hình ảnh gắn thanh ren:
Đã chạy ok và mượt khi để 1/4 bước.