Slic3r cung cấp khá nhiều đường chạy nhựa khác nhau để có thể lựa chọn đường chạy nhựa tối ưu cho từng loại mẫu in khác nhau.
- Kiểu rectilinear và kiểu line về cơ bản là giống nhay về kiểu chạy tuy nhiên kiểu line giữa các đường chạy nhựa có liên kết với nhau do đó có giảm thời gian các đường chạy không khác với kiểu rectilinear không có sự liên kết với nhau do đó tốn thêm thời gian cho khoảng chạy không in.
- Kiểu hilbertcure các đường chạy nhựa có nhiều đường gấp khúc do đó không nên chạy với tốc độ cao do quán tính và gia tốc tại những vị trí này là khá lớn sẽ là ảnh hưởng đến máy và chất lượng mẫu in.
- Kiểu honeycomb, archimedeanchords, 3dhoneycomb là các kiểu chạy nhựa tượng đối phù hợp với lớp ở phía trong khi với những kiểu chạy nhựa này có thể in với tốc độ cao hơn.
- Kiểu rectilinear, linear, concentric thường dùng cho những lớp đáy và lớp phía trên của mẫu in do đạt được thẩm mĩ cao hơn mặt khác những lớp này không yêu cầu chạy tốc độ cao nên có thể sử dụng được những kiểu này. 3.4.3 Thiết lập Firmware
Do firmware được tải về là firmware mã nguồn mở, được sử dụng cho tất cả các máy in 3D khác nhau, do đó ta phải thiết lập firmware sao cho phù hợp với máy in được thiết kế về các chức năng sử dụng, kích thước vùng in, các chức năng bảo vệ và tốc độ.
Firmware tải về là file Marlin-1.1.x.zip, giải nén ra tìm vào folder Marlin- 1.1.x\Marlin, tìm đến file Marlin.ino mở bằng Arduino IDE. Firmware Marlin 1.1.8 có rất nhiều tab, nhưng để thiết lập cho phù hợp với máy in, mình chỉ cần xét 2 tab: Configuration.h và Configuration_adv.h.
Tab Configuration.h:
Trong tab này, ta cài đặt các thông số chức năng như sau:
#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75 Đường kính sợi nhựa in là 1.75mm
#define TEMP_SENSOR_0 1 #define TEMP_SENSOR_1 0 #define TEMP_SENSOR_2 0 #define TEMP_SENSOR_3 0 #define TEMP_SENSOR_4 0 #define TEMP_SENSOR_BED 1
Lựa chọn cảm biến nhiệt sử dụng, trong trường hợp này, 1 là cảm biến nhiệt trở 100k, được sử dụng cho cả đầu đùn và bàn nhiệt.
#define HEATER_0_MINTEMP 5 #define HEATER_1_MINTEMP 5 #define HEATER_2_MINTEMP 5 #define HEATER_3_MINTEMP 5 #define HEATER_4_MINTEMP 5 #define BED_MINTEMP 5
Cài đặt nhiệt độ tối thiểu cho đầu đùn và bàn in, đây là một chức năng bảo vệ kiểm tra cảm biến nhiệt có bị lỗi hay không.
Nhiệt độ này được cài đặt thấp hơn tầm 5oC so với nhiệt độ thấp nhất của môi trường tại nơi mình ở.
#define HEATER_0_MAXTEMP 250 #define HEATER_1_MAXTEMP 275 #define HEATER_2_MAXTEMP 275 #define HEATER_3_MAXTEMP 275 #define HEATER_4_MAXTEMP 275 #define BED_MAXTEMP 120
Cài đặt nhiệt độ tối đa cho đầu đùn và bàn in, đây là một chức năng bảo vệ kiểm tra cảm biến nhiệt có bị lỗi hay không.
Nhiệt độ này được cài đặt bằng với nhiệt độ tối đa mà mình sử dụng, đối với những máy có họng chặn nhiệt sử dụng ống PTFE, cài đặt nhiệt độ này là 250oC. Bàn in cài đặt là 120oC do không có loại nhựa nào thực sự cần sử dụng bàn in quá nhiệt độ này.
#define DEFAULT_Kp 22.2 #define DEFAULT_Ki 1.08 #define DEFAULT_Kd 114
Cài đặt thông số PID cho đầu nhiệt.
#define PREVENT_COLD_EXTRUSION #define EXTRUDE_MINTEMP 170
Cài đặt chống đùn nguội, khi chức năng này được kích hoạt, nếu nhiệt độ đầu đùn dưới 170oC thì động cơ đùn sẽ không quay, tránh cho tình trạng bánh răng đẩy nhựa mài mòn nhựa in do nhựa ko đùn đc.
#define THERMAL_PROTECTION_HOTENDS // Enable thermal protection for all extruders
#define THERMAL_PROTECTION_BED // Enable thermal protection for the heated bed
Cài đặt bảo vệ mất nhiệt cho máy in.
#define COREXY //#define COREXZ //#define COREYZ //#define COREYX //#define COREZX //#define COREZY
Lựa chọn cơ cấu máy in, trong trường hợp này, lựa chọn COREXY
#define USE_XMIN_PLUG #define USE_YMIN_PLUG #define USE_ZMIN_PLUG //#define USE_XMAX_PLUG //#define USE_YMAX_PLUG //#define USE_ZMAX_PLUG
#define X_MIN_ENDSTOP_INVERTING false #define Y_MIN_ENDSTOP_INVERTING false #define Z_MIN_ENDSTOP_INVERTING true #define X_MAX_ENDSTOP_INVERTING false #define Y_MAX_ENDSTOP_INVERTING false #define Z_MAX_ENDSTOP_INVERTING false
#define Z_MIN_PROBE_ENDSTOP_INVERTING true
Cài đặt endstop, trong trường hợp này, máy in sử dụng 3 endstop X Min, Y Min, Z Min, đối với X, Y, endstop sử dụng công tắc hành trình nên xài đặt logic là false (khi bấm endstop tín hiệu lên 1), còn đối với Z, endstop sử dụng cảm biến tiệm cận từ NPN, nên cài đặt logic là true (khi có endstop tín hiệu xuống mức 0). Do Z_MIN_PROBE với Z_MIN_ENDSTOP trong trường hợp này là một nên cài đặt logic cho cả 2 phải giống nhau và đều là true.
#define DEFAULT_AXIS_STEPS_PER_UNIT{ 80, 80, 400, 500 } #define DEFAULT_MAX_FEEDRATE{300, 300, 5, 25 } #define DEFAULT_MAX_ACCELERATION{3000, 3000, 100, 10000} #define DEFAULT_ACCELERATION 3000 #define DEFAULT_RETRACT_ACCELERATION 3000 #define DEFAULT_TRAVEL_ACCELERATION 3000 #define DEFAULT_XJERK 10.0 #define DEFAULT_YJERK 10.0 #define DEFAULT_ZJERK 0.3 #define DEFAULT_EJERK 5.0 Các cài đặt về chuyển động:
- Dòng đầu tiên cài đặt về số bước của động cơ (đơn vị step/mm)
Động cơ lựa chọn là loại động cơ bước xung 1.8 độ/step, vi bước cài đặt cho driver là 1/16, từ đó tính ra số bước trên một vòng quay là ����/��� 66
Pulley gắn ở động cơ là loại pulley 16 răng, đai răng GT2 (2mm/bước răng)
một vòng quay của pulley là 40mm.
Sử dụng công thức ở Chương 2, phần 1.c, tính tọa độ X, Y theo di chuyển của 2 động cơ, ta thấy để đầu đùn chỉ di chuyển theo trục X, A và B phải ngược dấu, tức động cơ quay cùng chiều. Giả sử cho động cơ A và động cơ B quay cùng chiều 1 vòng ngược chiều kim đồng hồ, A = 32mm và B = - 32mm, thay vào công thức ta thu được X = -32mm để X đi 1mm, động cơ phải quay 1/32 vòng, và với 3200 step một vòng, ta thu được thông số step/mm của X là 100 step/mm. Tương tự với Y.
Với Z, ta sử dụng động cơ giống X và Y, và dùng vít me bước 8mm, tức là với một vòng quay của vít me, trục Z đi lên (xuống) 8mm, do đó thông số step/mm của Z là 3200/8=400 step/mm.
Với động cơ đùn, thông số được đưa ra bởi nhà sản xuất.
Do các thông số được tính toán ở điều kiện chuẩn, ở thực tế, một số sai số kĩ thuật có thể khiến cho các thông số này không còn chính xác, dẫn đến sai số, do đó thực tế các thông số này sẽ được tính lại ở bước căn chỉnh.
- Dòng thứ hai cài đặt về tốc độ di chuyển tối đa của đầu đùn và bàn in (đơn vị mm/s)
- Dòng thứ ba cài đặt về gia tốc tối đa của đầu đùn và bàn in (đơn vị mm/s2 ) - Dòng thứ 4, 5, 6 cài đặt về gia tốc mặc định của đầu đùn và bàn in (đơn vị mm/s2 )
- Dòng thứ 7, 8, 9, 10 cài đặt về chỉ số Jerk của đầu đùn và bàn in (đơn vị mm/s2 )
Chỉ số Jerk là chỉ số tốc độ mà đầu đùn hoặc bàn in bắt đầu di chuyển từ vị trí tốc độ bằng 0.
//#define PROBE_MANUALLY #define FIX_MOUNTED_PROBE
//#define Z_ENDSTOP_SERVO_NR 0 // Defaults to SERVO 0 connector. //#define Z_SERVO_ANGLES {70,0} // Z Servo Deploy and Stow angles //#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed #endif
Lựa chọn loại Z Probe sử dụng cho máy in. Trong trường hợp này sử dụng loại FIX_MOUNTED_PROBE, sử dụng cho các loại cảm biến như cảm biến tiệm cận hoặc cảm biến bằng kim phun.
#define X_PROBE_OFFSET_FROM_EXTRUDER 34 #define Y_PROBE_OFFSET_FROM_EXTRUDER 0 #define Z_PROBE_OFFSET_FROM_EXTRUDER 0
Cài đặt về vị trí tương ứng của Probe so với vị trí kim phun. Giá trị X Y offset được lấy từ thiết kế cơ khí của máy.
Nếu cảm biến ở bên trái kim phun, X mang dấu -, nếu ở bên phải thì mang dấu +. Nếu cảm biến ở phía trước kim phun, Y mang dấu -, nếu ở đằng sau thì mang dấu +.
Thông số Z Offset tạm để mặc định là 0, sẽ được tìm chính xác sau bước căn chính máy.
Nếu cảm biến ở bên dưới kim phun, Z mang dấu -, nếu ở bên trên thì mang dấu +. #define XY_PROBE_SPEED 8000 #define MULTIPLE_PROBING 2 #define Z_CLEARANCE_DEPLOY_PROBE 10 #define Z_CLEARANCE_BETWEEN_PROBES 5 Cài đặt về chuyển động của probe.
- Dòng thứ nhất là cài đặt về tốc độ di chuyển của đầu đùn khi probe (đơn vị mm/phút).
- Dòng thứ hai là cài đặt về số lần probe tại một điểm, đảm bảo về độ chính xác. - Dòng thứ 3 là cài đặt về khoảng cách bàn in di chuyển lên xuống sau mỗi điểm probe.
- Dòng thứ 4 là cài đặt về khoảng cách bàn in di chuyển lên xuống sau mỗi lần probe tại 1 điểm probe.
#define INVERT_X_DIR false #define INVERT_Y_DIR true #define INVERT_Z_DIR false #define INVERT_E0_DIR false #define INVERT_E1_DIR false #define INVERT_E2_DIR false #define INVERT_E3_DIR false #define INVERT_E4_DIR false
Cài đặt về chiều chuyển động của các động cơ, có thể thay đổi ở firmware hoặc thay đổi ở ngay trên phần cứng bằng cách đảo chiều dây cắm.
#define X_HOME_DIR -1 #define Y_HOME_DIR -1 #define Z_HOME_DIR -1
Cài đặt về chiều home. “-1” thể hiện cho việc gốc HOME lấy ở điểm (X, Y, Z) = (0, 0, 0)
#define X_BED_SIZE 200 #define Y_BED_SIZE 200
#define X_MIN_POS 0 #define Y_MIN_POS 0 #define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE #define Y_MAX_POS Y_BED_SIZE #define Z_MAX_POS 200
Cài đặt về kích thước vùng in:
- Dòng 1, 2 cài đặt về kích thước bàn in theo hướng X và Y. - Dòng 3, 4, 5 cài đặt về vị trí nhỏ nhất mà đầu đùn có thể đi tới. - Dòng 6, 7 cài đặt về vị trí lớn nhất mà đầu đùn có thể đi tới. - Dòng 8 cài đặt về độ cao tối đa của vùng in.
//#define AUTO_BED_LEVELING_3POINT #define AUTO_BED_LEVELING_LINEAR //#define AUTO_BED_LEVELING_BILINEAR //#define AUTO_BED_LEVELING_UBL
//#define MESH_BED_LEVELING Cài đặt về kiểu cân bàn in tự động:
- AUTO_BED_LEVELING_3POINT: Tự động cân bàn in tại 3 điểm.
- AUTO_BED_LEVELING_LINEAR: Tự động cân bàn in đối với bàn in phẳng.
- AUTO_BED_LEVELING_BILINEAR: Tự động cân bàn in đối với bàn in cong.
- AUTO_BED_LEVELING_UBL: Tự động cân bàn in đối với bàn in không đều.
- MESH_BED_LEVELING: Cân bàn in thủ công đối với bàn in không đều. Máy sẽ đưa kim phun đến những điểm cụ thể trên bàn in để người dùng có thể tự điều chỉnh vị trí Z thích hợp cho từng điểm, áp dụng cho máy không có cảm biến cân bàn in.
#define LEFT_PROBE_BED_POSITION 45 #define RIGHT_PROBE_BED_POSITION 180 #define FRONT_PROBE_BED_POSITION 30
#define BACK_PROBE_BED_POSITION 180
Cài đặt khung mà các điểm probe sẽ được thực hiện, chú ý là các điểm ở đây được tính là tọa độ của cảm biến, không phải của kim phun, tọa độ của cảm biến được tính bằng tọa độ kim phun theo công thức sau:
�� = �� + ������� �� = �� + �������
Trong đó: Xs, Ys là tọa độ của cảm biến Xn, Yn là tọa độ của kim phun
�������,� là vị trí tương đối của đầu phun và kim phun.
Hình trên thể hiện sơ đồ tọa độ của bàn in, gốc HOME nằm ở góc trái phía trước.
#define MANUAL_X_HOME_POS -21 #define MANUAL_Y_HOME_POS -20 #define MANUAL_Z_HOME_POS 0
Xác định tọa độ tương đối của điểm HOME so với vị trí của endstop, nhiều máy in đặt vị trí của endstop nằm ngoài vị trí gốc của bàn in, do đó giá trị này để đặt điểm HOME về đúng vị trí thực của nó. Chú ý: nếu điểm home nằm ở phía dương của điểm endstop, thì giá trị đưa vào đây là giá trị âm.
//#define Z_SAFE_HOMING #if ENABLED(Z_SAFE_HOMING)
#define Z_SAFE_HOMING_X_POINT ((X_BED_SIZE) / 2) 70 #define Z_SAFE_HOMING_Y_POINT ((Y_BED_SIZE) / 2) #endif
Chức năng này nếu được kích hoạt, khi HOME sẽ HOME trục X rồi trục Y, xong đưa đầu đùn về vị trí giữa bàn in rồi mới HOME Z, để đảm bảo cho Z Probe nằm trong bàn in khi HOME.
// Homing speeds (mm/m)
#define HOMING_FEEDRATE_XY (50*60) #define HOMING_FEEDRATE_Z (4*60)
Cài đặt tốc độ HOME (đơn vị mm/phút), nếu giá trị này lớn hơn giá trị tốc độ tối đa, thì sẽ lấy theo tốc độ tối đa.
#define SKEW_CORRECTION
Cài đặt chỉnh vuông góc XY, do chế tạo cơ khí rất khó đạt được sự vuông góc X và Y, do đó chức năng này sẽ làm nhiệm vụ chỉnh lại sao cho X và Y vuông góc với nhau, tính toán cho phần này sẽ được trình bày kĩ hơn ở bên dưới phần căn chỉnh.
#define SKEW_CORRECTION_FOR_Z
Tương tự căn chỉnh vuông góc XY, ở đây dành cho XZ và YZ.
#define PREHEAT_1_TEMP_HOTEND 200 #define PREHEAT_1_TEMP_BED 60 #define PREHEAT_1_FAN_SPEED 0 #define PREHEAT_2_TEMP_HOTEND 240 #define PREHEAT_2_TEMP_BED 110 #define PREHEAT_2_FAN_SPEED 0
Cài đặt thông số cho chức năng cho quá trình preheat, Preheat 1 là dành cho PLA, Preheat 2 là dành cho ABS.
#define SDSUPPORT Cho phép sử dụng thẻ nhớ
#define SD_CHECK_AND_RETRY
Kiểm tra có thẻ nhớ hay không trong lúc máy đang bận. Nếu không kích hoạt chức năng này thì máy sẽ chỉ nhận thẻ nhớ đã cắm lúc khởi động máy.
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER Cài đặt lựa chọn loại LCD cho máy in, trong trường hợp này sử dụng màn hình LCD Full Graphic Smart Controller.
Tab Configuration_adv.h:
Trong tab này, ta cài đặt các thông số chức năng như sau:
#if ENABLED(THERMAL_PROTECTION_HOTENDS) #define THERMAL_PROTECTION_PERIOD 40
#define THERMAL_PROTECTION_HYSTERESIS 4 Cài đặt thông số cho bảo vệ mất nhiệt cho đầu đùn. Dòng 2 là thông số thời gian, dòng 3 là thông số nhiệt độ.
#define WATCH_TEMP_PERIOD 20 #define WATCH_TEMP_INCREASE 2
#endif
Cài đặt thông số cho bảo vệ gia nhiệt lỗi của đầu đùn. Dòng 1 là thông số thời gian, dòng 2 là thông số nhiệt độ.
#if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 #define THERMAL_PROTECTION_BED_HYSTERESIS 2 Cài đặt thông số cho bảo vệ mất nhiệt cho bàn in.
Dòng 2 là thông số thời gian, dòng 3 là thông số nhiệt độ.
#define WATCH_BED_TEMP_PERIOD 60 #define WATCH_BED_TEMP_INCREASE 2 #endif
Cài đặt thông số cho bảo vệ gia nhiệt lỗi của bàn in, Dòng 1 là thông số thời gian, dòng 2 là thông số nhiệt độ.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI
Đề tài “Thiết kế, nghiên cứu máy in 3D Corexy” là một đề tài khá thú vị và rất có tiềm năng phát triển mạnh mẽ trong tương lai. Sau quá trình nghiến cứu, tính toán và thiết kế, chúng em đã chế tạo thành công mô hình máy in 3D, dung sai chi tiết dao động từ 0,1 đến 0,2 mm, vật liệu được sử dụng là nhựa PLA. Trước khi vận hành máy nên bôi một lớp keo dán lên bề mặt bàn in để có thể tăng độ kết dính các lớp in đầu tiên. Trước khi bắt đầu in cần di chuyển đầu phun ra vị trí an toàn sau đó dùng các lệnh thủ công cho đùn sợi nhựa ra khoảng 10 mm sau đó lau sạch vết nhựa để đảm bảo đầu phun không bị tắc nhựa. Đến thời điểm hiện tại máy con một số nhược điểm như độ ổn định của hệ thống chưa tốt, dung sai sản phẩm chưa ổn định, đối với chiều dày một lớp in càng nhỏ thì dung sai càng thấp.
Bảng 4. 1 Một số kết quả của máy in 3D trong đồ án
Thông số kỹ thuật Giá trị
Kích thước máy 350x350x400 mm
Không gian in tối ưu 200x200x200 mm
Tốc độ in tối đa 150 mm/s
Tốc độ in tối ưu 90120 mm/s
Nguồn điện 220V
Hi vọng một ngày nào đó mô hình của chúng em sẽ được đưa vào ứng dụng thực tế với hướng phát triển của máy như khắc phục các lỗi còn tồn tại trên máy, xây dựng máy in có thể in được nhiều màu sắc, cải thiện tốc độ in cao hơn, nghiên cứu vật liệu in khác có chất lượng cao hơn.
Trong quá trình thực hiện đồ án chúng em đã gặp không ít khó khăn trong việc tìm kiếm thiết bị, lên ý tưởng thực hiện…nhưng với sự nhiệt tình giúp đỡ sinh viên của thầy …, chúng em đã có thể hoàn thành đồ án tốt nghiệp này. Chúng em xin gửi lời cảm ơn chân thành nhất đến thầy và các thầy cô trong ban hội đồng đã hướng dẫn và tạo điều kiện cho chúng em hoàn thiện đồ án này một cách tốt nhất.
TÀI LIỆU THAM KHẢO
1. Trần Quốc Hùng, “Thiết kế máy cắt kim loại”, Đại học Sư phạm kỹ thuật TP. Hồ Chí Minh
2. Trịnh Chất – Lê Văn Uyển, "Tính toán thiết kế hệ dẫn động cơ khí", NXB Giáo dục Việt Nam, 2010
3. Trần Quốc Hùng, "Giáo trình dung sai kỹ thuật đo", NXB Đại học Quốc gia TP.