Po ponad tygodniowej walce z konfiguracją są jakieś postępy, trochę się naczytałem, trochę eksperymentowałem ale wiem że jeszcze długa droga przede mną w temacie drukowania 3D. Były pierwsze wydruki więc jest motywacja. Po kolei postaram się przedstawić z jakimi problemami się spotkałem i co jeszcze mnie czeka.

endstop, home, pole robocze

Po złożeniu ramy i podłączeniu silników które już sprawdzałem w pierwszej części wszystko działało. W sensie mogłem z pronterface sterować silnikami. Sterowanie, sterowaniem ale dla wszystkich pozycji (X, Y, Z) trzeba określić punkt wyjściowy czyli HOME. Tą pozycje ustawia się endstop’ami czyli wyłącznikiem krańcowym. Po wybraniu przycisku HOME ALL wszystkie osie jadą tak długo w jedną stronę aż uderzą w endstopa. Co zdefiniuje własnie pozycję startową.

techfreak_pl_drukarka3d_endstop_MendelMax_1 techfreak_pl_drukarka3d_endstop_MendelMax_2 techfreak_pl_drukarka3d_endstop_MendelMax_3 techfreak_pl_drukarka3d_endstop_MendelMax_4 techfreak_pl_drukarka3d_endstop_MendelMax_5 techfreak_pl_drukarka3d_endstop_MendelMax_6

 

Wszystkie endstopy zamontowane trzeba pogrzebać w firmware aby teraz to wszystko razem działało. Jak widać powyżej ja użyłem krańcówek w trybie NC (Normal Closed). Co oznacza że jeśli osie nie są w pozycji HOME to maja stan** open** a jeśli są mają stan triggered. W pronterface aktualny stan endstopów można sprawdzić poprzez wydanie komendy M119. Co pomaga w zrozumieniu jaki mam teraz stan i jak go skonfigurować poprawnie. Ja użyłem sterowania masą w RAMPS 1.4 pin S i (minus). Czyli jak zero pojawi się na pinie S to mam stan triggered. Ok ale co w firmware? Tak naprawdę nie trzeba dużo zmieniać aby poprawnie ustalać pozycje home i maksymalną. Spróbuje omówić po kolei.

Pierwsza linią jaką można zobaczyć w sekcji ENDSTOPS jest:

 #define ENDSTOPPULLUPS

W procesorach Atmega jest coś takiego jak rezystory podciągające aby gdy pojawi się zero na pinie było ono utrzymane w tym stanie cały czas. Ja steruje zerem więc zostawiam tą opcje w spokoju. Można sterować też plusem za co odpowiada poniższy wpis i trzeba zmienić false na true:

const bool X_MIN_ENDSTOP_INVERTING = false

Pozycje maksymalną może wyliczać program lub możemy użyć do tego krańcówek. Ja wole aby pozycja maksymalna była wyliczana więc muszę wyłączyć endstopy. Domyślnie wpis jest wyłączony znakami **// **

#define DISABLE_MAX_ENDSTOPS

Ja ustawiłem dla osi X endstop po lewej stronie więc muszę też ustawić kierunek jazdy i czy po lewej mam home czy po prawej stronie. Kierunki ustawia się definiując INVERT_X_DIR a pozycje HOME** X_HOME_DIR. **

#define INVERT_X_DIR false // for Mendel set to false, for Orca set to true
#define INVERT_Y_DIR true // for Mendel set to true, for Orca set to false
#define INVERT_Z_DIR false // for Mendel set to false, for Orca set to true
#define INVERT_E0_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false
#define INVERT_E1_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false
#define INVERT_E2_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false

// ENDSTOP SETTINGS:
// Sets direction of endstops when homing; 1=MAX, -1=MIN
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1

Po takiej konfiguracji po naciśnięciu HOME ALL wszystkie osie powinny podjechać do krańcówek. Wypadało by tez ustawić pole robocze bo wcześniej ustawiłem że nie ma krańcówek dla maksymalnej pozycji więc skądś program musi wiedzieć gdzie jest koniec pola roboczego. Ja ustawiłem na początek pole po 200mm. I pewnie tu się nic nie zmieni bo ogranicza mnie konstrukcja.

// Travel limits after homing
#define X_MAX_POS 200
#define X_MIN_POS 0
#define Y_MAX_POS 200
#define Y_MIN_POS 0
#define Z_MAX_POS 200
#define Z_MIN_POS 0

Tak skonfigurowane krańcówki, pozycja home i pole robocze pozwala iść dalej….

Filament

Niby wsadzenie filamentu to taka prosta sprawa a na początku są problemy. Na początku kiedy wkładałem kawałek drutu do extrudera wszystko działało. Kiedy obracałem kołem drut był wciągany. Problem pojawił się gdy już był hotend a drut się kończył. Okazało się że pierwszym problemem jest docisk który za lekko przykręcałem i radełko kręciło mi się na drucie robiąc wyżłobienie i nie wciągało go. Druga sprawa to po obcięciu drutu ostrymi końcami zahaczał o ścianki i nie chciał wchodzić do środka. Trzeba po prostu go przeszlifować przed włożeniem. Poniżej fotki jak czyściłem radełko i jak to wygląda z góry.

techfreak_pl_drukarka3d_radelko_MendelMax_0 techfreak_pl_drukarka3d_radelko_MendelMax_1

 

Kroki dla OSI X Y Z

Chyba najważniejszą sprawą jest wyliczenie poprawnych kroków dla silników. Ja zastosowałem się do instrukcji ze strony reprap.org. Dane jakie są potrzebne do wyliczeń to:

  • kroki silników = 200
  • mikro krok = 16 dla Y X, dla Z = 8
  • zęby dużej zębatki ekstrudera = 43
  • zęby małej zębatki ekstrudera = 10
  • radełko w najmniejszym punkcie styku = 6,58mm
  • szerokość pomiędzy zębami na pasku X Y E = 2mm
  • ilość zębów na rolce X Y E = 20

Ekstruder

Wzór z powyższej stronki:

 e_steps_per_mm = (motor_steps_per_rev * driver_microstep) * (big_gear_teeth / small_gear_teeth) / (hob_effective_diameter * pi)

Moje wyliczenie:

(200*16)*(43/10) / (3.14159*6,58) = 665,64

**oś Y X **

Wzór:

steps_per_mm = (motor_steps_per_rev * driver_microstep) / (belt_pitch * pulley_number_of_teeth)

Moje wyliczenie:

(200*16)/(2*20) = 80

oś Z

steps_per_mm = (motor_steps_per_rev * driver_microstep) / thread_pitch

Moje wyliczenie:

(200*8)/1,25 = 1280

Powyższe wyliczenia trzeba umieścić we wpisie:

#define DEFAULT_AXIS_STEPS_PER_UNIT   {80, 80, 1280, 665,64}

 W pierwszych wydrukach można zobaczyć że z osią Z jest coś nie tak więc pewnie trzeba w tych danych będzie coś poprawić.

Pierwsze wydruki

No to jest postęp, są jakieś wydruki. Jest jakiś kształt ale jak na razie wydruki przypominają makaron do zupki chińskiej. Wychodzi na to że mam jakieś problemy z kalibracją osi Z. Gdy drukarka zaczyna hotend ustawia się ok 3mm nad stołem i wydruki lecą w powietrzu. Przy okazji pisania tego wpisu okazało się że źle wyliczyłem kroki dla extrudera zamiast swojej wartości dałem inna co zmieniło dosyć mocno wynik końcowy.

techfreak_pl_drukarka3d_MendelMax_pierwsze_wydruki

MendelMax

Tak wygląda złożona drukarka ale w stanie jeszcze roboczym. Jak już zacznie drukować mam plan wydrukować mocowanie elektroniki na przód i zrobić porządki z przewodami.

techfreak_pl_drukarka3d_wersja_robocza_MendelMax_0 techfreak_pl_drukarka3d_wersja_robocza_MendelMax_1 techfreak_pl_drukarka3d_wersja_robocza_MendelMax_2 techfreak_pl_drukarka3d_wersja_robocza_MendelMax_3 techfreak_pl_drukarka3d_wersja_robocza_MendelMax_4

Co dalej…

Ciąg dalszy jak tylko uporam się z osią Z. Napisałem na forum mojreprap może coś ktoś mi podpowie.