Thiết lập Firmware Marlin

Một phần của tài liệu Nghiên cứu thiết kế, chế tạo máy in 3D phục vụ chuyên ngành ô tô (0942909480) (Trang 76 - 81)

L ỜI CẢM ƠN

3.7 Thiết lập Firmware Marlin

Firmware Marlin là một chương trình được viết trên nền Arduino cho các mạch điều khiển máy in 3D sử dụng vi điều khiển họ AVR của hãng Atmel. Marlin còn có thể chỉnh sửa để sử dụng trên các máy CNC mini và được sử dụng rộng rãi bậc nhất trong số các máy dạng mã nguồn mở hiện nay.

Hình 3.22 Thiết lập firmware Marlin

3.7.2 Tốc độ truyền dữ liệu

#define BAUDRATE 250000

Đây là tốc độ truyền thông giữa board và máy tính. Có hai tốc độ thường được sử

dụng trong in 3D là 250000 và 115200.

3.7.3 Board điều khiển

Máy in sử dụng RAMPS 1.4, 1 đầu phun nên định nghĩa board như sau: #define MOTHERBOARD 33

3.7.4 Số đầu đùn

#define EXTRUDERS 1

Dùng để xác định sốđầu đùn của máy in (mặc định như trên là 1 đầu đùn). Sốđầu

đùn tối đa có thể thiết lập là 4, tuy nhiên chỉ nên để tối đa 2 đầu đùn khi sử dụng RAMPS 1.4.

3.7.5 Cảm biến nhiệt độ

Vì máy in chỉ sử dụng một cảm biến nhiệt độ tại đầu phun và không dùng bàn nhiệt nên ta thiết lập như sau:

#define TEMP_SENSOR_0 1 #define TEMP_SENSOR_1 0 #define TEMP_SENSOR_2 0 #define TEMP_SENSOR_BED 0

3.7.6 Nhiệt độ

Nhiệt độ tối thiểu được thiết lập như sau (máy chỉ cấp nguồn tới các đầu nung khi nhiệt độ nằm trên mức tối thiểu):

#define HEATER_0_MINTEMP 5 #define HEATER_1_MINTEMP 5 #define HEATER_2_MINTEMP 5 #define BED_MINTEMP 5 Tương tự với nhiệt độ tối đa: #define HEATER_0_MAXTEMP 230 #define HEATER_1_MAXTEMP 230 #define HEATER_2_MAXTEMP 230 #define BED_MAXTEMP 120

3.7.7 Kiểm tra ổn định nhiệt độ đầu đùn

#define TEMP_RESIDENCY_TIME 10 //sec #define TEMP_HYSTERESIS 3 //degC #define TEMP_WINDOW 1 //degC

Khi nhiệt độ đạt đến mức cài đặt ± TEMP_WINDOW, máy sẽ bắt đầu đếm một quãng thời gian TEMP_RESIDENCY_TIME, trong quãng thời gian này, nếu nhiệt

độ không dao động quá ± TEMP_HYSTERESIS thì nhiệt độđược xem là ổn định và máy sẽ bắt đầu in.

Ví dụ: Nhiệt độ cài đặt là 190ºC, khi đạt đến 189 – 191ºC, máy sẽ kiểm tra trong 10s tiếp theo nếu nhiệt độ giữở khoảng 187 – 193ºC thì mới bắt đầu in.

3.7.8 Thiết lập PID cho đầu nung

Giá trị nhiệt độ kích hoạt PID:

Máy chỉđiều khiển bằng phương pháp PID khi giá trị nhiệt độđo được nằm trong khoảng mức cài đặt ± PID_FUNCTIONAL_RANGE.

Nếu để PID_FUNCTIONAL_RANGE quá lớn, nhiệt độđầu đùn lâu đạt tới giá trị

yêu cầu. Nếu để PID_FUNCTIONAL_RANGE quá nhỏ, có thể xảy ra hiện tượng nhiệt độđầu đùn tăng, giảm vượt giá trị yêu cầu.

Các giá trị Kp, Ki, Kd thưởng để mặc định như sau: #define DEFAULT_Kp 22.2 #define DEFAULT_Ki 1.08 #define DEFAULT_Kd 114

Hoặc có thể chọn các hệ số Kp, Ki, Kd theo các bước như sau: - Đặt Ki =0, Kd =0, Kp thấp.

- Tăng dần Kp tới khi tốc độ tăng nhiệt độ chấp nhận được và nhiệt độ dao động quanh giá trị yêu cầu với biên độ ổn định. Ghi giá trị Kp lúc này lại, đặt tên là Ku. Đo thời gian (chu kỳ) dao động của nhiệt độ lúc này là Tu.

- Kp = Ku*0.6, Ki = 2*Kp/Tu, Kd = Kp*Tu/8.

- Thay đổi giá trị Ki và Kd từ từ tới khi nhiệt độ được điều khiển nhanh và ít dao động nhất. Nếu tăng Ki thì nhiệt độ đầu đùn nhanh đạt tới giá trị yêu cầu nhưng thời gian để ổn định kéo dài. Nếu tăng Kd thì nhiệt độ đầu đùn tăng chậm nhưng độ ổn định được cải thiện.

3.7.9 Nhiệt độ tối thiểu trước khi di chuyển đầu đùn

#define PREVENT_DANGEROUS_EXTRUDE #define EXTRUDE_MINTEMP 170

Khi nhiệt độ đầu đùn thấp hơn giá trị EXTRUDE_MINTEMP, máy sẽ không cho phép di chuyển đầu đùn hoặc đùn nhựa in.

Trong trường hợp muốn kiểm tra hoạt động của các động cơ bước, có thể tắt tính năng này.

3.7.10 Kiểm tra sự cố cảm biến nhiệt độ

#define THERMAL_RUNAWAY_PROTECTION_PERIOD 40 //sec #define THERMAL_RUNAWAY_PROTECTION_HYSTERESIS 4 //degC Trong trường hợp này, nếu quá thời gian 40s mà nhiệt độ không tăng đến (mức cài

đặt – 4)°C, máy sẽ dừng hoàn toàn.

3.7.11Tín hiệu kích hoạt Endstop

const bool X_MIN_ENDSTOP_INVERTING = true; const bool Y_MIN_ENDSTOP_INVERTING = true; const bool Z_MIN_ENDSTOP_INVERTING = true; const bool X_MAX_ENDSTOP_INVERTING = true; const bool Y_MAX_ENDSTOP_INVERTING = true;

const bool Z_MAX_ENDSTOP_INVERTING = true;

Mỗi trục mặc định có 2 Endstop max và min, tuy nhiên ta chỉ cần sử dụng 3 Endstop max hoặc min.

Thông thường Endstop kích hoạt khi được nhấn, trong quá trình chạy máy nếu Endstop hoạt động ngược lại (kích hoạt khi nhả do mắc sai dây hoặc tùy loại Endstop) thì thay giá trị ‘true’ thành ‘false’.

3.7.12Kích thước in (mm) #define X_MAX_POS 200 #define X_MIN_POS 0 #define Y_MAX_POS 200 #define Y_MIN_POS 0 #define Z_MAX_POS 150 #define Z_MIN_POS 0

Thông thường, các giá trị max được thiết lập nhỏ hơn kích thước in tối đa của máy (độ dài tối đa mà đầu phun có thể di chuyển trên các trục).

5.3.3Đảo hướng các trục tọa độ

#define INVERT_X_DIR true #define INVERT_Y_DIR false #define INVERT_Z_DIR true #define INVERT_E0_DIR false #define INVERT_E1_DIR false #define INVERT_E2_DIR false

Firmware mặc định gốc tọa độ nằm ở góc trái phía trước bàn nhiệt, hướng dương các trục ứng với hướng đầu phun ra xa gốc tọa độ. Tuy nhiên, trong quá trình lắp máy, tùy cách bố trí, lắp đặt động cơ mà ta có thểđảo hướng các trục bằng cách thay giá trị ‘true’ thành ‘false’ và ngược lại.

3.7.13Vị trí Home

Đểđầu phun di chuyển về Home trùng với gốc tọa độ, ta thiết lập như sau: #define X_HOME_DIR -1

#define Y_HOME_DIR -1 #define Z_HOME_DIR -1

Nếu muốn đầu phun di chuyển về Home trùng với vị trí xa nhất (phụ thuộc vào kích thước in được thiết lập) ta thay giá trị ‘-1’ thành ‘1’.

3.7.14Số trục máy in

Máy có 3 trục X, Y, Z và sử dụng một đầu đùn E, do đó ta thiết lập như sau: #define NUM_AXIS 4

Nếu sử dụng 2 đầu đùn thì tăng giá trị ‘4’ thành ‘5’.

#define DEFAULT_AXIS_STEPS_PER_UNIT {X, Y, Z, E}

Trong đó X, Y, Z lần lượt là số bước động cơ trên trục X, Y, Z phải thực hiện để đầu phun di chuyển theo trục đó 1 mm. E là số bước động cơ phải thực hiện để nhựa

được đùn ra 1mm.

Từ các thông sốđã biết:

- Góc quay mỗi bước của động cơ: A = 1.8 độ

- Chếđộ điều khiển của A4988: B = 1/16 - Số răng của puli: C = 20

- Khoảng cách mỗi răng của dây đai: D = 2mm

- Bước ren của vitme: E = 8 (vitme quay đủ 1 vòng thì tịnh tiến được 8mm) - Đường kính puli đùn nhựa: F = 6.5 mm

Ta tính toán như sau:

a. Trục X và Y

Với cơ cấu truyền động dây đai trên trục X, Y, số bước cần thiết lập: X = Y = !"#

$ ×'×(×) = +.-×.#×.!"#×+" = 80 (bước/mm) (3.1)

b. Trục Z

Với cơ cấu truyền động vitme trên trục Z, số bước cần tính:

Z = !"#

$×'×/ = !"#×+"+.-×- = 400 (bước/mm) (3.2)

c. Đùn nhựa

Chu vi của puli đùn nhựa chính là độ dài nhựa được đùn ra khi puli quay được 1 vòng, từđó:

E = !"#

$×'×0×1 = +.-×!.+2×".3!"#×+" = 156.78 (bước/mm) (3.3)

Một phần của tài liệu Nghiên cứu thiết kế, chế tạo máy in 3D phục vụ chuyên ngành ô tô (0942909480) (Trang 76 - 81)

Tải bản đầy đủ (PDF)

(117 trang)