Để máy hoạt động cần phải có vi điều khiển để điều khiển hoạt động của máy, để điều khiển có thể điều khiển chính xác các thiết bị phần cứng trong máy cần phải có firmware phù hợp với các thông số phù hợp tương thích với phần cứng của máy. Đối với mô hình máy in 3D, sử dụng firmware Marlin là firmware phổ biến nhất dễ dàng tùy biến các thông số để phù hợp với các cấu hình phần cứng của các loại máy in 3D khác nhau. Các thông số cần thiết lập cho firmware bao gồm: thiết lập thông số board mạch, cảm biến nhiệt, các thông số cho động cơ bước, bộ đùn nhựa, đầu dò (nếu có), thông số bộ PID điều khiển tốc độ động cơ,
Thiết lập thông số baudrate: Để việc truyền và nhận giữ liệu được đồng bộ thì giữa vi điều khiển và phần mềm giao tiếp phải cùng một thông số baudrate. Baudrate là thông số chỉ số bit truyền trong 1s. Để thiết lập thông số baudrate, thay đổi chỉ số của dòng lệnh thành thông số baudrate cần thiết lập. Một số thông số có thể sử dụng như 9600, 11250, 25000, …
#define BAUDRATE 115200 //Arduino mega 2560
Thiết lập thông số về board mạch: Có nhiều board mạch có thể sử dụng để điều khiển máy in 3D như RAMPS, MELZI, … mỗi board mạch sẽ có thông số thiết lập khác nhau để tương thích với firmware. Thiết lập thông số board mạch trong dòng lệnh dưới:
#ifndef MOTHERBOARD //Chọn board
#define MOTHERBOARD BOARD_RAMPS_14_EFB
#endif
Thiết lập số lượng đầu phun: Thay đổi số lượng đầu phun trong dòng lệnh sau: #define EXTRUDERS 1
Thiết lập dây nhựa:
#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75
Thiết lập giá trị cảm biến nhiệt: tương tự như thiết lập thông số board mạch thì mỗi loại cảm biến nhiệt có 1 giá trị khác nhau, firmware marlin hỗ trợ tối đa 3 cảm biến nhiệt cho đầu phun nhựa và 1 cảm biến nhiệt cho bàn nhiệt.
Sinh viên thực hiện: Trần Văn Mới Người hướng dẫn: ThS. Dương Quang Thiện
#define TEMP_SENSOR_0 60
Thiết lập tọa độ di chuyển cho máy: để máy motor quay đúng chiều theo hệ tọa độ thì ta cần phải thiết lập thông số trong firmware. Dùng phương pháp thử sai để thiết lập các thông số này. Cho các trục tọa độ di chuyển theo một phương nhất định, nếu trục tọa độ di chuyển ngược hướng thì thay đổi câu lệnh từ True thành False hoặc ngược lại. Thiết lập tọa độ máy trong các câu lệnh ở dưới:
#define INVERT_X_DIR false #define INVERT_Y_DIR false #define INVERT_Z_DIR true #define INVERT_E0_DIR false
Thay đổi hướng về home của 3 trục tọa độ: Trước khi máy bắt đầu in thì các trục tọa độ phải về gốc tọa độ để gia nhiệt cho đầu phun, bàn nhiệt, … Để các trục di chuyển về gốc tọa độ phù hợp ta cần thiết lập hướng di chuyển cho các trục. Phương pháp thiết lập tương tự như thiết lập tọa độ di chuyển cho máy, nếu hướng về home không mong muốn thì đổi giá trị từ -1 thành 1 hoặc ngược lại. Các thông số được thiết lập trong các câu lệnh sau:
#define X_HOME_DIR 1 #define Y_HOME_DIR -1 #define Z_HOME_DIR -1
Thiết lập không gian làm việc cho máy: Cần phải giới hạn không gian làm việc của máy theo như phần cứng đã thiết kế là lắp đặt. Các thiết lập về không gian làm việc của máy được thay đổi ở những câu lệnh dưới đây:
#define X_MAX_POS 300 #define X_MIN_POS 0 #define Y_MAX_POS 300 #define Y_MIN_POS 0 #define Z_MAX_POS 250 #define Z_MIN_POS 0
Thiết lập tốc độ về home: Thông số thiết lập tốc độ khi đưa các trục về gốc tọa độ, thay đổi các thông số trong câu lệnh:
#define HOMING_FEEDRATE_XY (50*60) #define HOMING_FEEDRATE_Z (4*60)
Thiết lập các thông số về tốc độ tối đa và gia tốc tối đa của các trục trong các câu lệnh sau:
#define DEFAULT_MAX_FEEDRATE { 300, 300, 5, 25 } //
(mm/sec)
#define DEFAULT_MAX_ACCELERATION { 2000, 2000, 100, 8000 } Thiết lập module LCD: Nếu sử dụng LCD để giao tiếp điều khiển máy in ta thay đổi thiết lập trong firmware bằng cách thêm dòng lệnh sau trong firmware:
#define REPRAP_DISCOUNT_SMART_CONTROLLER
Thiết lập thông số step/mm: Đây là thông số quan trọng nhất khi điều khiển, nó xác định giá trị số vòng quay cần thiết của động cơ để vít me hoặc đai dịch chuyển được 1mm. Để thiết lập các thông số này cần thực hiện qua 2 bước:
Bước 1: Tính toán sơ bộ giá trị step/mm. Bước 2: Tinh chỉnh lại các thông số. Tính bước với trục Vitme:
A4988 thì m = 1/16
Từ tất cả các thông số trên α, λ, m ta có thể tính được bước B (bước/mm) (steps/mm)
B = 360/(α*λ*m) (4.1)
Động cơ bước có α = 1.8°; trục vitme bước ren 8mm; và dùng module điều khiển là A4988 thì ta tính được bước là:
B = 360/{1.8*8*(1/16)} = 400 (steps/mm) (4.2)
Tính bước với dây đai: Để tính toán ta cần biết:
Thông số bước răng λ (mm) của dây đai Số răng của puly R (răng)
Từ tất cả các thông số trên α, λ, R, m ta có thể tính được bước B (bước/mm) (steps/mm)
Sinh viên thực hiện: Trần Văn Mới Người hướng dẫn: ThS. Dương Quang Thiện
B = 360/(α*λ*R*m) (4.3)
Động cơ bước có α = 1.8°; đai GT2 bước răng 2mm; Puly GT2 20 răng; module điều khiển là A4988.
B = 360/(1.8*2*20*(1/16)) = 80 (steps/mm) (4.4)
Số bước/mm lý thuyết đối với bộ đùn nhựa. Số bước/mm lý thuyết: LT = (360/(A*B*E))/(pi*G) = (360/(1.8*1/16*1)/(3.14*11) = 92.6 (steps/mm) (4.5) Trong đó: A là 1.8 B là 1/16 với A4988
E là tỉ số truyền của truyền động bánh răng, tính theo công thức E = Số răng bánh răng to/Số răng bánh răng nhỏ.
Trên các bộ đùn nhựa không sử dụng bánh răng truyền động thì E = 1. Pi = 3.14 (số pi).
G: đường kính puli hoặc bulông tời nhựa, được ghi rõ trong link sản phẩm hoặc bạn đọc có thể đo trực tiếp bằng thước kẹp, G = 11.
Sau khi có các giá trị cần thiết, thiết lập lại các thông số trong các dòng lệnh sau: #define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 92.6 }