Etkinlik: Picproje 3 boyutlu yazıcı yapımı

Başlatan muhendisbey, 04 Haziran 2016, 12:06:33

yolcu27

@muhendisbey hocam bu filament tutucu kaç cm uzun geliyordu alttan. bir modifiyeden bahsetmiştiniz neresi fazlaydı. baskı öncesi düzelteyim dedimde. . bu arada elimde 608 rulmanda var mil de var gijonda var basşka bir sistem varsa onuda yapabilirm.  ama sizinki hem kolay hem kullanışlı geliyor açıkcası.

muhendisbey

Ne kadar olduğunu hatırlamıyorum şu an. Değen kısım extruder taşıyıcısının olduğu x ekseni kısmı. Parça yükselince doğrudan değiyor. Ben bunu hesaba katmadan çizmişim, maket bıçağını ısıtarak kestim fazlalığı.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

yolcu27

#1352
Alıntı yapılan: muhendisbey - 27 Kasım 2016, 00:47:31
Ne kadar olduğunu hatırlamıyorum şu an. Değen kısım extruder taşıyıcısının olduğu x ekseni kısmı. Parça yükselince doğrudan değiyor. Ben bunu hesaba katmadan çizmişim, maket bıçağını ısıtarak kestim fazlalığı.


olduğu gibi bastım bakalım nasıl olacak . çok yüksek parçalar basmıyorum şimdilik. gerekirse sizin gibi bir taraftan kısaltırım.

bu arada otomatik hizalama hakkındaki görüşleriniz nelerdir? bu sensörler ile yapılan hakkında. sanırım z endstop yerine bağlanılarak yapılıyor bu sensör. baskıya başlamadan tablanın belli yerlerinden hizalama alarak kaydediyor. sonra sürekli tablanın eğimine göre z eksen motorlarını hareket ettiriyor. sizce baskıya bu hareket yansır mı? yada bu hareket baskı süresini uzatır mı? ben baskı kalitesini etkilemediği sürece takmayı planlıyorum süre çok sorun değil benim için?

birde bu wooble sorunu dedikleri(Türkçesi nedir bilmiyorum) sanırım benim makinamda da oluyor . yan yüzeylerde bazı bölgelerde dalgalanma oluyor çok rahatsız edici olmayak şekilde. bunun sebebi nedir? sigma yazıcılarda trapez mil ile düzeltiyorlar sanırım.

sizin fikirleriniz nelerdir ?

DaRt

Prusa i3 wooble konusunda sıkıntılı. Özellikle z eksen kılavuz millerini taşıyan parçaların eksen kaçıklıklarının olması bunun temel sebebi. Zaten alüminyum parçada deliklerde sorunlar vardı, bu sorunlar eksen kaçıklığına sebep oluyor ve z ekseni hareket ettiğinde çok az olmakla beraber extruder x ve y ekseninde de hareket ediyor. Bu durum yan yüzeylerde soruna sebep oluyor. Bunu önlemek çok mümkün değil.

muhendisbey

Tabla hizlamada endstopa bağlanmıyor, extruder'e bağlanıyor.
Ya indüktif sensör bağlayarak, ya servomotor ucuna limitswitch yada mikroswitch bağlayarak yada optik mesafe sensörüyle yapılabiliyor.

Dalgalanmaların sebebi çok.
Kayışın gevşek olması
Mekanik vidaların iyi sıkılmamış olması.
Rulmanların eskimiş, aşınmış, rulman bilyası kaybedilmiş olması
Millerin indüksiyonlu olmaması sonucu millerin aşınması.
Step sürücülerinin kaliteli olmaması (ramps ile kullanılanların hiçbiri kaliteli değildir)
Sistemin hızlı çalıştırılması

bunlar dalgalanmaları artıran etkiler.

Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

yolcu27

Ya indüktif sensör bağlayarak yapılan uygulamayı düşünüyorum bende. metal algılayarak çıkış veriyor z ekseni için sanırım. z eksen için kullanılan endstop pinlerinden bahsetmiştim ben aslında. bunlarında npn ve pnp tipleri varmış npn ile direk bağlantı yapılabildiğini söylediler 12v ile çalıştıgı için npn de direk gnd sinyali verecek rampsa zarar vermeden direk kullanım sağlıyormuş. Şimdilik araştırıyorum. aklıma takılan baskı kalitesi ve motorları yorup yormaması . z eksen motorları bende hala tek sürücüde bağlıda.

muhendisbey

Bilemiyorum, bu konuda bir çalışmam olmadı. İndüktif sensörleri anahtar gibi düşünmüştüm normalde açık yada normalde kapalı şeklinde. Galiba düşündüğümden biraz farklı.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

DEno_12







































Herkese tekrardan merhabalar.
Yazıcının yapım aşamasındaki ve bitmiş halinin fotoğraflarını paylaştım. Kalibrasyon piramidi makinenin ilk baskısı. Makineyi bugün tamamladım. Önceden deneyim olduğu için şansıma slicer ayarlarını da tutturmuş gibi gözüküyorum. Fakat tepe kısımda anlamsız bir bombelenme oldu. Sebebi ne olabilir?

DEno_12

Bu arada en güncel Marlin i kurdum. Kurmak isteyenlere yardımcı olabilirim.

muhendisbey

Tepedeki yığılma hatası
Filament katmanı yeterince katılaşmadan üzerine gelen yeni katmandan kaynaklanır.
Çözüm sisteme parça soğutma fanı takmaktan geçiyor.
Yok fan takmam derseniz. slicer ayarlarında filament sekmesinde cooling ayarlarına bakıp yavaşalaması için gerekli minimum süreyi uzatabilir, hızı azaltabilirsiniz. Filament sıcaklığını da düşürebilirsiniz ama katmanların yapışması azalacak, mekanik dayanım düşecektir.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

yolcu27

Alıntı yapılan: muhendisbey - 28 Kasım 2016, 01:40:59
Bilemiyorum, bu konuda bir çalışmam olmadı. İndüktif sensörleri anahtar gibi düşünmüştüm normalde açık yada normalde kapalı şeklinde. Galiba düşündüğümden biraz farklı.

sensör metali algılayınca gnd çıkışı veriyor. bu gnd cıkısı ile de z eksen endstop pin yerine baglanıyor gördügüm kadarıyla. nozzle ile sensorun hizalamasını yaptıktan sonra start g kod kısmına baskı öncesi tablanın belli bölgelerinden ölcum yapmasını istiyoruz . daha sonra bu olcumlere göre z ekseni tabla egri olsada sürekli haraket edererek bu eğriliği düz bir zeminmiş gibi kullanıyor.  ben deneyecegim siparişi verip. güzel birşey çıkarsa ortaya buradan ekleme yapabiliriz opsiyonel olarak.

muhendisbey

Önceki mesajlarımda belirtmiştim. Makineyi geliştirelim diye. Birlikte hareket etsek çok daha kolaylaşır işler.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

ErsinErce

Makineyi hala toplamaya çalışıyorum hocam bitirsem yaşadığım ve gördüğüm sıkıntıların listesini yapacağım.

bu arada başka arkadaşlarda kendi sıkıntılarını yazarlarsa üzerine gidilecek kısımlar oluşur.
sonra yazılımsal olarak geliştirmeler kısmına geçeriz.

EMP_Otto

@DEno_12 Hocam güncel marlin için hangi satırlari degistirmemiz gerektiğini liste seklinde yapabilirseniz herkes yararlanabilir diye düşünüyorum.muhendisbeyin https://www.picproje.org/index.php/topic,65668.0.html paylaştığı gibi olursa tadından yenmez.
Bu işler zordur,özveri ister...

DEno_12

#1364
Güncel Marlin 1.0.2-2 Firmware Ayarları
Değişiklikler önceki gibi Configuration.h dosyasında yapılacak. İleri düzey ayarlar için Configuration_adv.h header ı var. Fakat başlangıçta gerek duyulacak ayarlar ilk dosyada.

Yaptığınız değişiklikleri dosya başına not edebilirsiniz. Ayrıca değişiklik yapacağınız satırları yorum yaparak yeniden yazın. İlerde ne değişiklik yaptığınızı görmeniz kolaylaşır.

Baştan sona doğru gitmeye çalışacağım, karışırsa kusuruma bakmayın anahtar sözcüklerle arama yaparak ilgili yerleri değiştirebilirsiniz.

#define BAUDRATE 115200//250000

yapılması gerekiyor.

Motherboard kısmı gördüğünüz gibi 33 yapılacak. Bu ayar ramps 1.4 kullanarak 1 extruder, 1 fan, 1 de heatbed olarak ön tanım yapmak için. Yani D8 çıkışı extruder a D9 çıkışı kontrollü fana D10 çıkışı da heatbed e hükmedeceğini burda ön tanımlamış olduk.
#ifndef MOTHERBOARD
  #define MOTHERBOARD 33//BOARD_ULTIMAKER//for ramps
#endif


Aşağıdaki sensör tanımlama kısmı bir sonraki öbek gibi değiştirilecek. Herkesin aynı 100k 3950 termistörü kullandığını varsayarak 13 yapıyoruz. Kod öbeğinin biraz üstünde liste var. Farklı bir sensör kullandıysanız onu seçebilirsiniz. TEMP_SENSOR_0 extruder ı ifade ediyor. Extruder sayısı arttıkça 0 artıyor. Heatbed en alttaki tanımlama.

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


#define TEMP_SENSOR_0 13
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 13


Extruder kalibrasyonu yaparken hot end i ısıtmak istemiyorsanız aşağıdaki kısmı 0 yapabilirsiniz. Fakat işiniz bittikten sonra bu değişikliği geri almayı unutmayın.
#define EXTRUDE_MINTEMP 170


Aşağıdaki kısmın başındaki yorumları termal koruma için kaldırabilirsiniz. Koruma ile ilgili bende problem çıkmadı. Problem çıkarsa sıklığı arttırmanız işe yarayabilir. Denemedim.
// Parameters for all extruder heaters
//#define THERMAL_RUNAWAY_PROTECTION_PERIOD 40 //in seconds
//#define THERMAL_RUNAWAY_PROTECTION_HYSTERESIS 4 // in degree Celsius

// If you want to enable this feature for your bed heater,
// uncomment the 2 defines below:

// Parameters for the bed heater
//#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds
//#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius
//===========================================================================


// Parameters for all extruder heaters
#define THERMAL_RUNAWAY_PROTECTION_PERIOD 40 //in seconds
#define THERMAL_RUNAWAY_PROTECTION_HYSTERESIS 4 // in degree Celsius

// If you want to enable this feature for your bed heater,
// uncomment the 2 defines below:

// Parameters for the bed heater
#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds
#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius
//===========================================================================


şeklinde olacak.

Yazılımsal endstop kullanacaksanız yani endstop kullanmayacaksanız. Aşağıdaki kısımların yorumu kaldırılacak.
//#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS


#define DISABLE_MAX_ENDSTOPS
#define DISABLE_MIN_ENDSTOPS



Sisteminizde motorlardan ters yönde hareket eden varsa bu kısımdan tersleyebilirsiniz. E0 extruder.
#define INVERT_X_DIR true //false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR true
#define INVERT_E0_DIR false


Yazının önceki kısımlarının bazıları ve özellikle bu kısımdan sonrası bizi gaza getirerek hepimizi yazıcı sahibi yapan değerli @muhendisbey arkadaşımızın açıklamasından alıntılanmıştır.

Yine End stop kullanmayacaksanız aşağıdaki değişikliği yapmanız gerekiyor.

//#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
//#define max_software_endstops true  // If true, axis won't move to coordinates greater than the defined lengths below.


#define min_software_endstops false // If true, axis won't move to coordinates less than HOME_POS. //deniz false yapti
#define max_software_endstops true  // If true, axis won't move to coordinates greater than the defined lengths below.


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 X_MIN_POS 0
#define Y_MAX_POS 200
#define Y_MIN_POS 0
#define Z_MAX_POS 180
#define Z_MIN_POS 0

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. Ben bu ayarları(ivme ve feedrate) değiştirmeye gerek duymadım. DEno_12

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
  kısmının 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.