Picproje 3 Boyutlu Yazıcı Yapımı Dökümantasyonu

Başlatan muhendisbey, 23 Eylül 2016, 18:41:27

muhendisbey

Dosyaların bulunduğu kısım

Google Drive
https://drive.google.com/folderview?id=0B9njZG_MYvAcVXhtMGVIUURrWkk&usp=sharing

Parça satın alma listesi

5 adet nema17 step motor (tercihen 1.7A ve daha aşağısı) hazır extruder kullanacaklar için 4 adet nema 17 motor. 4 kablolu-fazlı-uçlu
Şaftı 5mm çapında olacak.

Farklı boylarda M10 M8 M5 gijon (adetleri 1TL 2TL ve 3TL olarak rahatlıkla bulunabilir) ve somunları

Çerçeve (alüminyum olursa iyi olur, olmazsa pleksiglass veya ahşap kullanılabilir. Alüminyumu dik işlemde, pleksi ve ahşap lazerde kesilebilir)

Ramps 1.4

5 adet ve mikrostep sürücü (yedekli almanız yararınıza) DRV8825, yapışkanlı soğutuculu almanız yararınıza


Arduino Mega (Tercihen 100 de 100 klonlardan Atmega 16u2 kullanan versiyon)


Hotend takımı (anlatımımda bowden kullanmayacağım o nedenle short versiyon 1.75mm olarak satıcılardan isteyin.) (uzun tip yani long, bowden tüp için)

Extruder flaman dişlisi (Tam adını bilmiyorum) Delik çapı 5mm, dış çapı 13mm olacak.

Isıtıcı tabla (MK3 alın kurtulun)

100K NTC (yanmaz kablolu alın)

Farklı boyda rulmanlar  623 624 625 608

lineer rulman 8mm (lm8uu)

M3 vida ve somunlar

kaplin (5x5x25 lik)

3D yazıcıdan basılmış plastik parçalar
3 boyutlu yazıcısı olan arkadaşlardan rica edeceksiniz yada alacaksınız. En az yüzde 40 dolulukta olmalıdır.

Bilgisayar güç kaynağı yada SMPS (Tercihen 20A ve 20A'den fazla 12V çıkışlı olması gerekmekte)
Çıkma bulabilirsiniz.

GT2 kayış ve kasnak (kasnak iç çapı 5mm olmasına dikkat edin)

fan
12V fan, doğrudan güç kaynağına bağlanacak ve hotend'in soğutulmasında kullanılacak.

dişi dupont kablo (konnektör yapmak için lazım olacak)

Kapton bant. Özellikle hot end arızasında kullanabileceğiniz bir bant. 400 dereceye dayanıklıdır. Polyamide bant olarak da geçer. (Aynı zamanda hot bed üzerine ntc'yi sabitlerken lazım olacak.)

Yay (1.2mm'den daha ince alırsanız iyi olur. 1.2mm'lik yay çok sert)

Dilerseniz extruder yapmak yerine hazır olan mk8'i kullanabilirsiniz.

Hazır extruder alırsanız, aşağıdakileri almanıza gerek yoktur.
Hot end
Fan
625 rulman
extruder flaman dişlisi





Gijonlar

M5 320mm (2 adet)
M8 205mm (4 adet)
M10 370mm (2 adet)- Eğer extruder kafasını dışarı park etmek istiyorsanız, limit switch kullanmayacaksanız 40mm kadar uzun alabilirsiniz. Almasanız da olur.


Gijonları çapak durumlarına karşı bir miktar uzun alabilirsiniz. Gijonları uzun almanız yazıcı yapmanıza engel teşkil etmemektedir. Sadece somunlardan dışarı taşarlar hepsi bu.

İndüksiyonlu Mil
Tamamı 8mm çapında olmak üzere
340mm (2 adet) (Gijonu kaç mm uzun aldıysanız üzerine eklemelisiniz.)
370mm (2 adet)
320mm (2 adet)

İndüksiyonlu milleri kesinlikle uzun yada kısa almayınız. Millerin uçlarında çapak kalmadığından emin olunuz aksi takdirse aldığınız lineer rulmanları takarken bilyelerini dağıtabilir ve rulmanları bozabilirsiniz. Bu millerin üzerine yapışılı demir tozu, çapak kesinlikle olmamalıdır. Eğer üzerinde kir varsa millerinizi çok hızlı olarak suyunu emdirerek kurutmak şartıyla (su üzerinde kurumamalıdır) sabunlu su ile yıkayıp ardından yağlamalısınız. Bu milleri yağlamada gres yağı kullanmalısınız.


Extruder alan arkadaşlar dikkat:
Gijon kestirmeniz gerekmemektedir. M5 70mm civata alırsanız işinizi görür.
Bastırma rulmanını sabitlemek için 8mm çapında yani M8 Civata kullanabilir veya indüksiyonlu milden ufak bir parça kullanabilirsiniz. Çok kritik bir konumda olmadığı için belki ortasından kalem bile geçirebilir fazlasını kesebilirsiniz.





Firmware Ayarları
Yaptığınız değişiklikleri yorum satırı koyarak default değerlerini not almayı unutmayın.

Sistemin daha kararlı çalışması için:

#define BAUDRATE 115200
yapılacak

Sisteminizde motorlardan ters yönde hareket eden varsa:
#define INVERT_X_DIR true //false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR true

Bu kodlardan hangi eksen ters hareket ediyorsa true ise false, false ise true yapılmalıdır.


End stop kullanmayacak olan arkadaşlar için:

#define DISABLE_MAX_ENDSTOPS önlerindeki yorum kaldırıldı (yorum= //)
#define DISABLE_MIN_ENDSTOPS önlerindeki yorum kaldırıldı

#define min_software_endstops false
#define max_software_endstops true 

yapılmalıdır. Minimum olanın  false yapılmasının sebebi herhangi bir şekilde çalışma sırasında elektrik kesintisi olursa z eksenini aşağı indiremezsiniz. Bunun için sadece üstten sınırlama yapılmalıdır. El ile indirmek eksen ayarlarının kaymasına neden olur, kalibrasyonunuz bozulur.

Sisteminizin maksimum ve minimum konumları firmware içerisinden yazılımsal olarak ayarlanacak. Bunun için:
#define X_MAX_POS 200
#define Y_MAX_POS 200
#define Z_MAX_POS 180
buradaki ölçüler milimetre cinsinden olup büyük parça geldiğinde çarpma, çarpmaya bağlı kırılma olmaması içindir.


Gelelim kalibrasyona:
#define DEFAULT_AXIS_STEPS_PER_UNIT   {200,100,8000,575}  //X, Y, Z, E
buradaki sayılar sıralıdır. Anlamı 1mm için gidilmesi gereken step motor adım miktarıdır. Sistemden sisteme farklılık gösterebilir.
Nasıl yapmalıyız?
Elimize cetveli alıyoruz, hangi ekseni ölçeceksek öncelikle cetveli düz olarak yaslıyoruz.
repetier host üzerinden öncelikle baud rate'imizi ayarlıyoruz tekrardan ve sonra bağlan'a tıklıyoruz.
manuel control sekmesine gelip öncelikle home butonuna basıyoruz.
ilgili eksenin 1mm gitmesi için 1'i seçiyor ve basıyoruz. Eğer eksenimiz 1mm yada yakın gitmişse ayarların düzgün olma ihtimali var.
Aynı işi 10mm ve 20mm için de gerçekleştiriyoruz. 10mm varsayıyorum 5mm gitsin.
Bu demektir ki gerekli step sayısı az ve yarı yarıya. Oran orantı uygulayarak örneğin 200 adım olan hareket ettirdiğimiz X ekseninin step sayısını 400 yapıyoruz.
10mm dedik 20mm gitti ise bu sefer de oran orantıya göre 200'ü 100 yapıyoruz. (formülüze edersek: (gidilmesi gereken/ölçülen)x(mevcut step sayısı))

Extruder sadece sıcak iken çalışır bu nedenle öncesinde en az 190 dereceye kadar extruderi ısıtmayı unutmayın.
Filament için filamenti extruder'e takıyoruz, ucundan bir miktar filament çıkmasını sağlıyoruz.
Filamenti kalem ile 10cm'den işaretliyoruz.
10mm filament ittirilmesini repetier üzerinden gönderiyoruz.  10mm yani 1cm çekilirse testimizi 20mm, 100mm için tekrarlıyoruz.
Yukarıdaki hesabı kullanarak yine adım sayısını buluyoruz.

Marlini derleyip karta yükletiyoruz. Yükletmeden önce repetier ile olan bağlantısını kesmelisiniz.

Tekrardan: yukarıdaki ölçümleri tekrar alıyoruz, gitmişse problem yok, yoksa adımları tekrar ediyoruz.

Eksen hiç hareket etmiyor ve titriyorsa yada motorunuzun adım atladığını hissediyorsanız (sarsıntılı bir hareket varsa):
Bu durumda feedrate ve ivme ayarlarınız çok yüksektir. Yani motorunuz belirlenen hızda hareket edemez demektir bu.
bunun için:
#define DEFAULT_MAX_ACCELERATION      {3000,3000,100,3000}
#define DEFAULT_MAX_FEEDRATE          {100, 50, 1, 15}
#define DEFAULT_ACCELERATION          3000
#define DEFAULT_RETRACT_ACCELERATION  3000
#define DEFAULT_TRAVEL_ACCELERATION   3000

Bu değerleri düşürmelisiniz. Maalesef bunun için bir hesap kitap metodu yok. Ara değer vermeden (2987) bu ayarları ayarlamalısınız. Ta ki makineniz düz bir hareket yakalayıncaya kadar.

Motor yine de hareket etmezse?
O zaman bağlantılarınızı ve sürücülerinizi kontrol etmelisiniz. Sürücü üzerinde bulunan potansiyometre akım ayarlaması içindir. Akım düşük ayarlanmış ve motorunuza yetmiyor olabilir.

Gelişmiş ayarlar:
SD karttan yazdırma yapabilmek için:
#define SDSUPPORT  yorumu kaldırıldı

20x4 LCD kullananlar için
#define REPRAP_DISCOUNT_SMART_CONTROLLER yorumu kaldırıldı
Başka kontrol üniteleri için de aynı şeyleri yapabilirsiniz. Grafik lcd kullananlar ekstra kütüphane indirmesi gerekebilir.

Isıtıcı tabla kullanmak için:
#define TEMP_SENSOR_BED 0 iken 1 yapıldı

Yazıcının extruder termal korumasını kaldırmak için (tavsiye edilmez, yangın çıkartabilir, sadece test ederken kullanabilirsiniz)
#define THERMAL_PROTECTION_HOTENDS yorum yapıldı

Aynı şekilde ısıtıcı tabla korumasını kapatmak için  (yine tavsiye edilmez)
#define THERMAL_PROTECTION_BED yorum yapıldı

Sistem sürekli ısıl olarak hata veriyorsa asıl yapmanız gereken:

  Configuration_adv.h üzerinde

  #define THERMAL_PROTECTION_PERIOD 60        // Seconds default degeri 40
  #define THERMAL_PROTECTION_HYSTERESIS 10     // Degrees Celsius default degeri 4
 
  #define WATCH_TEMP_PERIOD 40                // Seconds default degeri 16
  #define WATCH_TEMP_INCREASE 1               // Degrees Celsius default degeri 4
 
  #define THERMAL_PROTECTION_BED_PERIOD 60    // Seconds Default degeri 20
  #define THERMAL_PROTECTION_BED_HYSTERESIS 10 // Degrees Celsius default degeri 2

Bu değerleri kullanın diye vermiyorum! Kendinize göre yazıcınıza göre ayarlamalısınız. Çokta bilinçli yaptığım ayarlar değil.

Unuttuğum gözden kaçırdığım ayarlar olabilir. Dikkat edin forum üzerinde hatırlatın tartışalım
 




Kalibrasyon için bu siteyi kullanabilirsiniz. Özellikle z ekseni için kullanmalısınız da
http://prusaprinters.org/calculator/





Slicer Ayarları
Slicer ayarlarına repetier host üzerinden dilimleyici>configuration üzerinden ulaşılabilir.

Ekanı ilk açtığımızda bizi karşılayan ekran print settings'in bulunduğu kısım.
Slicer üzerinde yapılan ayarlar profil olarak kaydedilebilir. Bu sayede farklı uçlar yada farklı filament için her değişimde ayar yapmanıza gerek yoktur.

Print Settings

Layers and Perimeters
Katmanların ve kabuğun ayarlandığı kısımdır. Kabuk içerisi doldurulmadan önce dış kısma yapmış olduğu dolanmadır. Yani sistem önce doldurulacak alanın etrafını oluşturup sonra içerisini doldurur. Bunu her katmanda yapar.
Elinizdeki şeklin üst ve alt kabuğunu kalın yapabilirsiniz. Kabuk malzemenizin daha sağlam olmasını sağlar. İç kısımları destek amaçlı olarak düşünebilirsiniz. Yani 5 kabuklu bir cisim 3 kabuklu çizimden aynı doluluk oranına göre (yüzde yüz doluluk hariç) daha sağlamdır. Çünkü kabuk miktarınca yüzdeyüz doluluk kullanılmış olur.
Vertical shells: dikey kabuk miktarıdır. Alt ve üst katmanda kaç katman kabuk olacak bunun miktarını belirtir.
Horizontal shells: yatay kabuk miktarıdır. Yan kısımlardaki kabuk miktarıdır. Örneğin bir vazonun et kalınlığı
Layer Height: ilk katman diğer katmanlardan daha yukarıda olmalıdır. Çünkü alt kısımda sıkıştırabileceği yada yapıştırabileceği bir plastik katman yoktur. Bunun için genellikle nozzle kalınlığına yakın ve az miktarda küçük değer seçilmelidir. Örneğin 0.3mm nozzle için 0.28mm yada 0.27mm gibi bir değer seçebilirsiniz.

Infill
Infill malzemenin doluluk miktarını seçer. Örneğin bir vazonun doluluk oranı 0 dır. Yada darbeye maruz kalacak, esneme yapmayacak bir malzemenin doluluk oranı yüzde yüz seçilir.

Burada doldurmak için algoritmalar da mevcut. Mekanik dayanımı en yüksek olan honeycomb'dur ancak yazıcıyı aşırı miktarda gelgitler sarsar ve yorar. Makineniz çok daha kısa sürede ömrünü tamamlar. Bal peteği şeklinde  içerisini doldurur. (altıgen)

Makine açısından en ideali rectilinear'dır. katmanları birbirine dik olacak şekilde çizgilerle doldurur, yani karesel bir doldurmadan bahsedebiliriz. Ben bu ikisini kullandım genel olarak. Rectilinear  mekanik dayanım açısından kötü değildir.

Skirt and Brim

En önemli ayarlardan birtanesi. Özellikle malzemenin yüzeye yapışmasında problem yaşıyorsanız tam size göre
Skirt malzeme basılırken malzemenin etrafında dolanmasını sağlar. Bu seçeneği genel olarak baskıdan önce nozzle'ı temizlemek ve baskı alanını kalibre etmek amacıyla kullanıyorum.
Örneğin dolandığı sırada bir köşeye basmadığını fark edersem feedrate'i düşürüp o köşeyi kaldırarak, macun gibi aşırı ezerek bastığını görürsem o köşeleri indirerek tablamı ayarlarım.

Brim ise yapışma kalkma kavlama problemleri çekenler için yardımcı. Yaptığı şey çok basit olmasına rağmen çokta işe yarıyor.
Malzemenize ilk katmanda tablada tutunsun diye belirlediğiniz ölçüde uzanan alansal çerçeve  oluşturur. yani bastığı yer 1mm^2 olsa da tablada tutunması için ilk bastığı yeri 4mm^2 yapabilirsiniz.
Baskı sonrasında makasla, yada maket bıçağıyla kolaylıkla çıkarabiliyorsunuz.


Support material
Bastırmak istediğiniz parça düz yüzeyi olmayan yada çok az olan, çok köprü kullanılması gereken bir parça olabilir. Support material ile çok ince destekler oluşturarak yazdırma sonrasında kırılabilir destekler kullanabilirsiniz. Bu sayede daha düzgün yüzeyler elde edebilmeniz mümkündür. Ancak destek malzemesi aslında bu kadar kolay kullanılabilen bir yapıda maalesef değil. Destek malzemesi parçanıza çok sabit bir şekilde kaynaşmış olabilir bu durumda destek malzemesini çıkarırken malzemeyi bozma yada kırmanız da muhtemeldir.

Raft ise malzemenin yine tablaya yapışmaması yada malzemenin bir ucunun kıvrılmasını önlemeye yöneliktir. Tıpkı brim gibi. Brimden farkı çok daha fazla katmandan meydana gelebilmesidir. Bir diğer farkı ise brim boşluksuz olarak yapılırken, raft elek gibi çok ince çıtalar üzerine malzemenizi basar.

Speed
Yapılması gereken en önemli ayarlamalardan birisi de hızıdır. Tercihen ilk katmanın çok yavaş oluşturulması gereklidir. Dolgu malzemesinin hızından tutun en dış katmana kadar olan hız ayarları burada yapılır. Hız aynı zamanda aldığınız filamentin kalitesine göre de ayarlanmalıdır. Genelde bu ayarlar filament üreticinizin sitesinde yer almaktadır.
Örneğin: http://www.esun3d.net/products/142.html
Sıcaklıktan tutun fan hızına kadar belirtilmiştir.
Slicer hız olarak mm/s (saniyedeki milimetre sayısı) olarak belirtilir. Örneğin 9mm/s bir saniyede 9mm yol kat edecek anlamına gelir.

multiple extruder
Çok kafalı extruder varsa yazıcınızda nerede hangi extruderi kullanacağınızı seçtiğiniz bir ayar. Hiç kullanmadım, bilemiyorum.

advanced
Gelişmiş ayar seçenekleridir. İlerleyen aşamalarda kullanılabilir. Burada kullanmamız gereken tek ayar bridge flow ratio. Bu ayar köprüde ne kadar filament kullanacağını gösterir. Default ayarı 1 dir ancak 1 olması durumunda köprülerde sehim olması olasılığı çok yüksek. Bridge işleminde en önemli faktör filamentin kopmayacak kadar verilerek çekilmesidir. Yani mümkün mertebe gergin ve kopmamış köprü oluşturmak gerekli.
Ben en uygun köprü değerini kendi yazıcımda 0.85 olarak test ettim.

output options
Hiç kullanmadım

notes
profille alakalı notlar almak için kullanabilirsiniz. bir önemi yoktur.

Filament Settings
Kullandığınız filamente göre yaptığınız ayarlar bu kısımdadır. Filamentin çapından tutun, filamentin donması için gerekli ayarlar buradadır.

Filament
Filamet için extruder sıcaklığı, tabla sıcaklığı burada yapılır.
İlk katman için extruder sıcaklığı biraz daha yüksek, sonraki katmanlar için daha soğuk olmalıdır. Filamentin tablaya yapışması için yapış yapış olabileceği bir sıcaklıkta basım yapılmalı. Sonraki katmanlar biraz daha soğuk olabilir. Ben esun pla için 230 derece ilk katman 220 derece sonraki katmanlarda baskı alıyorum. Feedrate ayarlarınız önemlidir yoksa bu sıcaklıklar filamenti yakabilecek sıcaklıklardır.
Tabla sıcaklığı ise asla değişmemelidir. Tabla sıcaklığının artması yada azalması malzemenin yüzeyi bırakmasına neden olur. Genel olarak PLA için 65 derecede baskı alıyorum ABS için normalde 110 derecede olması gerekli ancak birçok ısıtıcı tabla bu sıcaklıkları görememekte. Brim kullanarak ABS 90 derece ve yukarısında basılabilmektedir.

Cooling
Katmanlar arası geçişler çok kısa olursa katman donmadan üzerine konulan katman yüzünden yığılmalar meydana gelebilmektedir. Bunun için gerekli ayarlamalar bu kısımdan yapılır. 20 saniye altında katman biterse hızını 2mm/s'ye düşür şeklinde ayar yapabilirsiniz. Benim ayarım en azından bu şekilde.

Eğer parça soğutma için fan kullandıysanız parça soğutma fanı ayarları da bu kısımdan yapılabilmektedir.

Printer Settings
Buradaki ayarlar yazıcınızla alakalı olan ayarlardır. Kullandığınız nozzle'ın çapı bu ayarlar ile ayarlanır. Sadece nozzle çapı için değiştirirsiniz. Yazıcı mekaniğiniz değişmedikçe yada firmware değiştirmedikçe bu ayarlara dokunmayınız.

General
Adı üzerinde genel ayarlardır. Farklı firmware kullanıyorsanız firmwarenizi seçebilir, tablanızın biçimini ayarlayabilirsiniz.

Custom G-Code
Burası da yine önemli ayarlar içerir.
Start G Code: Başlangıçta nozzle temizlemek isteyen arkadaş vardı ismini hatırlayamadım, işte bu senin için. Parça kodları işlemeden önce ne yapmak istiyorsan buraya G kodunu yazıyorsun, makine ona göre hareket ediyor. Ürettiğiniz her kodun başına bu yazdığınız G kodunu ekler.

Benim Start G Kodum
G1 Z5 F5000 ; lift nozzle


End G Code: Yazdırma sonunda yapılacak işlem neyse onun kodunu burada G kodu olarak yazıyorsunuz. Ürettiğiniz her G kodunun sonuna bu kodları ekler.

Benim End G Kodum
M104 S0 ; turn off temperature
G91
G1 E-2.00000 F2400.00000
G1 Z10
G90
G1 X0
G1 Y-30
G1 Z0
M84     ; disable motors

Ne yapıyor burada? Parça bittikten sonra extruder parçaya değip öyle kalmıyor. Önce extruder damlatmasın diye bir miktar geri sarıyor. Sonrasında 10mm Z eksenini kaldırıyor, X'in başlangıç konumuna yani sıfıra gidiyor, Tabla 30mm dışarıda kalacak şekilde kaydırıyor ve Z ekseni 0 olana kadar iniyor.

Katman değiştirmeden önce (before layer change G code), katman değiştirdikten sonra (after layer change g code) yada takım değiştirmek için (örneğin 2. extruder'e geçiş için) (tool change g code) g kodları yazabilirsiniz. Mantığı basittir. G90 dedikten sonra verdiğiniz konumlar kesin konumlardır. Yani X, Y, Z ekseni içeren koordinatta nereyi söylerseniz oraya gider. G91'de ise bulunduğu konuma göre ekler yada çıkartır.

Extruder 1
Nozzle'ın çapını nozzle diameter kısmından ayarlayabilirsiniz.
Retraction extruder'in damlatmaması için gereken hızlı geri çekme ayarlarını içerir.
Alakasız olarak burada lift z ayarı bulunmaktadır. lift z, yazıdırmadan gidileceğinde parçayı çizmemesi çarpmaması için z eksenini kaldırarak gitmesi için gerekli ayardır. Kaç mm derseniz gideceği mesafeye o kadar kalkarak gider ve iner ve yazar. Yazıcıda daha kaliteli baskı olur ancak yazma süresi uzar. Ben 0.2mm kullanıyorum parçalara çarpmadan gidiyor.





Dikkat Bu Başlık Döküman Toplamak İçindir Lütfen Ana Başlık Üzerinden Sorularınızı Sorunuz
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.