[3D PRINTER] Tự làm máy in 3D (phần 2 - Hiệu chỉnh phần mềm và sử dụng máy in) - link full - BeeLab

Thursday, May 18, 2017

[3D PRINTER] Tự làm máy in 3D (phần 2 - Hiệu chỉnh phần mềm và sử dụng máy in) - link full

I. GIỚI THIỆU

Trong phần 1 mình đã chia sẻ với các bạn về quá trình dựng máy in 3d của mình, trong phần thứ 2 này mình xin tiếp tục chia sẻ với các bạn về phần lập trình code, hiệu chỉnh phần mềm và sử dụng máy in 3d.

II. LẬP TRÌNH CODE

Mình xin nhắc lại một chút về firmware mình sử dụng trong dự án này là Marlin của Reprap. Các bạn có thể tải về theo đường link cuối bài hoặc bất kì link nào trên internet. Mình không nhắc lại cách thức cài đặt arduino (với các bạn mới làm quen xin hãy đi theo đúng tiến trình, đừng bắt tay ngay vào làm cái này).
Sau khi đã vào được file Marlin.ino các bạn tìm đến tab configuration. Tại tab này chúng ta sẽ tiến hành chỉnh sửa code cho máy in.

Bước 1: Cài đặt ngày giờ và tên tác giả 

(cái này thực sự thì không cần thiết nhưng các bạn cũng có thể chỉnh nếu thích ^^ )

#define STRING_VERSION_CONFIG_H __DATE__ "16/5/2016 1930h " __TIME__ // build date and time
#define STRING_CONFIG_H_AUTHOR "(none, default config)" // Who made the changes.

Bước 2: Cài đặt tốc độ giao tiếp qua cổng serial giữa máy in và máy tính

#define BAUDRATE 250000
Như dòng code trên là chúng ta đang để mức 250000, các bạn có thể chỉnh các con số khác như 230400, 115200, 74880 ... Nhưng các bạn lưu ý tốc độ bạn đặt trong code phải giống với tốc độ bạn đặt khi sử dụng phần mềm.

Bước 3: Cài đặt board mạch điều khiển (ví dụ  như mình sử dụng board mạch arduino mega+ramps 1.4)

#define MOTHERBOARD 33

Arduino mega+ramps 1.4 sử dụng 1 extruder+bed+fan thì được đặt là 33, sử dụng 2 extruder+bed là 34, sử dụng 1 extruder+ 2 fan là 35, sử dụng 2 extruder + fan là 36. Các board khác như Sanguino, GEN ... các bạn hãy tìm trong file boards.h trong thư mục Marlin.

Bước 4: Cài đặt cảm biến nhiệt độ

//// Temperature sensor settings:

// -2 is thermocouple with MAX6675 (only for sensor 0)
// -1 is thermocouple with AD595
// 0 is not used
// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)
// 2 is 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup)
// 3 is Mendel-parts thermistor (4.7k pullup)
// 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !!
// 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup)
// 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup)
// 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup)
// 71 is 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup)
// 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
// 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
// 10 is 100k RS thermistor 198-961 (4.7k pullup)
// 11 is 100k beta 3950 1% thermistor (4.7k pullup)
// 12 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed)
// 13 is 100k Hisens 3950 1% up to 300°C for hotend "Simple ONE " & "Hotend "All In ONE"
// 20 is the PT100 circuit found in the Ultimainboard V2.x
// 60 is 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
//
// 1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k
// (but gives greater accuracy and more stable PID)
// 51 is 100k thermistor - EPCOS (1k pullup)
// 52 is 200k thermistor - ATC Semitec 204GT-2 (1k pullup)
// 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (1k pullup)
//
// 1047 is Pt1000 with 4k7 pullup
// 1010 is Pt1000 with 1k pullup (non standard)
// 147 is Pt100 with 4k7 pullup
// 110 is Pt100 with 1k pullup (non standard)
#define TEMP_SENSOR_0 5
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0

#define TEMP_SENSOR_BED 5
Các bạn phải chọn loại cảm biến mà mình sử dụng là loại gì để điền kí tự cho đúng vào các dòng code bên dưới. Với mình thì mình sử dụng cảm biến nhiệt độ 100K như loại 5 cho cả extruder và bed nên mình để là 5 (cho TEMP_SENSOR_0 và TEMP_SENSOR_BED, 2 cái còn lại mình để là 0 vì mình không sử dụng). Nếu các bạn sử dụng các loại cảm biến khác thì hãy tìm trong danh sách ở bên trên và điền vào cho hợp lý. Nếu các bạn không sử dụng cảm biến thì để là 0. Đây cũng là một công đoạn quan trọng ảnh hưởng khá nhiều tới tốc độ làm việc, tuổi thọ của máy in, chất lượng sản phẩm và tiết kiệm nhựa in. Nếu các bạn chọn không đúng thì có thể dẫn tới máy đo không đúng nhiệt độ, quá cao hoặc quá thấp sẽ làm máy in không hoạt động và hoạt động không tốt.

Bước 5: Cài đặt nhiệt độ tối đa

#define HEATER_0_MAXTEMP 280   #define BED_MAXTEMP 100
Mình để nhiệt độ tối đa cho extruder của mình là 280 độ C và cho bàn in là 100 độ C. Các bạn hãy căn cứ vào chất lượng linh kiện làm máy và công suất nguồn để đặt cho hợp lý. Ví dụ nguồn của các bạn hơi yếu thì không nên để nhiệt độ bàn cao quá. Ngoài ra bạn còn phải chú ý tới loại nhựa bạn sử dụng: PLA thì nhiệt độ in nên để 200-230, ABS thì là 230-250 độ C vì thế đừng để nhiệt độ tối đa thấp quá. Tất cả những mục này bạn hoàn toàn có thể đặt lại khi sử dụng phần mềm điều khiển.

Bước 6: Cài đặt kích thước tối đa của không gian in (cài đặt khoảng tọa độ cho các trục XYZ).

#define X_MAX_POS 170#define X_MIN_POS 0#define Y_MAX_POS 130#define Y_MIN_POS 0#define Z_MAX_POS 150#define Z_MIN_POS 0
Với máy của mình hiện mình đang để là trục X 170mm, Y 130mm, Z 150mm. Các bạn có thể chỉnh lại theo kích thước mà máy của bạn cho phép, tuy nhiên bạn không thể để tọa độ âm.

Bước 7: Cài đặt số bước của động cơ trên mỗi đơn vị chiều dài (mm).

Cái này thì mình cũng đã nói ở phần 1, xin được nhắc lại như sau:

#define DEFAULT_AXIS_STEPS_PER_UNIT {100,100,4000,84}
Đây là dòng chúng ta sẽ chỉnh số bước của động cơ trên 1 mm. Công thức tính cho trục X và Y là: số step*16/(số răng của puli*2). Động cơ của mình là 200 step*16/(16 răng*2) =100. Với trục Z, ta tính theo bước ren của trục bạn sử dụng. Mình dùng trục 5mm với bước ren 0,8mm nên sẽ có 200*16/0,8 = 4000. Với extruder bạn phải căn cứ vào tỉ lệ các bánh răng mà extruder sử dụng, của mình là loại 38 răng, mỗi răng 1mm nên sẽ có 200*16/38= xấp xỉ 84.

Bước 8: Cài đặt tốc độ, gia tốc

#define DEFAULT_MAX_FEEDRATE {500, 500, 1, 25} // (mm/sec)
#define DEFAULT_MAX_ACCELERATION {500,500,40,10000}
Các mục này các bạn có thể chỉnh sửa tùy thuộc vào công suất động cơ và kích thước máy của các bạn. Tuy nhiên, không nên để cao quá để tránh việc rung!
Sau khi đã chỉnh sửa xong các bạn hãy upload vào board arduino của mình sau đó kết nối các linh kiện còn lại (extruder, cảm biến nhiệt độ, bàn đốt ...) vào mạch nhé.

III. CÀI ĐẶT, HIỆU CHỈNH PHẦN MỀM BIÊN DỊCH G-CODE

Mời các bạn xem video.

IV. SỬ DỤNG MÁY IN VÀ MỘT SỐ KINH NGHIỆM CỦA MÌNH
Sau khi các bạn đã làm quen với phần mềm điều khiển máy in 3d (phần mềm biên dịch G-code) chúng ta bắt đầu test và sử dụng máy in nhé.
  • Việc đầu tiên các bạn cần có file hình cho máy in (thường là file .stl). Bạn có thể sử dụng phần mềm vẽ 3d bất kì (autocad, solider, google sketch up,...) để tạo hình sau đó export thành file .stl.
  • Cắm nguồn cho máy in, kết nối máy in với máy tính.
  • Chọn file .stl, sau đó chọn vị trí muốn in ra.
  • Chọn độ dày mỗi lớp, chọn độ đặc của sản phẩm.
  • Ấn nút bắt đầu in.

Chia sẻ kinh nghiệm

  • Các bạn hãy mua 1 chai cồn axeton sau đó lấy ít nhựa in (loại ABS) bỏ vào đó. Sau một thời gian nó sẽ bị axeton hòa tan, ta có một dung dịch lỏng. Trước mỗi lần in hãy bôi một lớp mỏng dung dịch này lên bề mặt của bàn in. Làm như vậy thì sản phẩm của chúng ta sẽ bám bàn in rất tốt, và phương pháp này rẻ hơn nhiều so với việc sử dụng loại băng dính chuyên dụng - băng keo chịu nhiệt màu vàng to bảng(các bạn có thể sẽ thấy trên internet).
  • Các bạn dùng 1 tấm kính mỏng 2-3mm đặt lên bên trên bàn in. Lấy mấy cái kẹp giấy kẹp chặt vào bàn in. Làm vậy ta có thể bảo vệ được bàn in không bị bẩn và lâu hỏng, cũng như là tăng độ nhẵn cho bàn (vì mặt của bàn in hơi mấp mô (có hàng chữ in nổi).
  • Phải căng chỉnh thật cân bàn in và độ cao giữa 2 trục Z. Đây là một trong những yếu tố quan trọng nhất ảnh hưởng đến chất lượng sản phẩm.
  • Nhiệt độ đối với nhựa ABS: extruder là 250, bed là 90. Nhiệt độ đối với nhựa PLA: extruder là 230, bed là 70.
  • Sử dụng phần mềm điều khiển Cura sẽ giảm thời gian in rất nhiều (thường là giảm 50-90 % thời gian in so với Repetier-Host). Tuy nhiên phần mềm này lại không cho phép các bạn Pause.
  • Motor đẩy nhựa của extruder càng để gần với đầu in của máy thì sẽ cho chất lượng in càng cao và càng làm giảm khả năng bị tắc nhựa. Mình cũng đã thay đổi kết cấu máy của mình để phù hợp hơn.
  • Phải làm giảm tối đa độ rung của các trục (đặc biệt là trục Z khi mà đặt motor extruder vào gần đầu phun).
    link download các thành phần của máy (trong link có 2 loại máy)