grawerka na sterowniku drukarki - robi pasy

Awatar użytkownika
grzecho83
Posty: 110
Rejestracja: 09 lip 2013, 21:19
Lokalizacja: Krosno

grawerka na sterowniku drukarki - robi pasy

Postautor: grzecho83 » 01 wrz 2014, 11:50

Witam, zrobiłem sobie grawerkę do portretów w granicie (w skrócie dłuto diamentowe wystukuje w granicie pixele), wcześniej sterowałem przez mach3 ale chciałem spróbować sterownika reprap. Osie XY standardowo a dłuto zamontowałem do silnika Extrudera,
G1 E1 - uderzenie
G1 E0 - powrót.
Po przejściu na sterownik reprap w portretach zaczęły pojawiać się pasy pionowe w miejscach gdzie pixeli jest gęsto. Podejrzewam że to może być efekt zaokrąglania wartości przez sterownik, ale generuje G-kod na dwa miejsca po przecinku tak jak większość sliccerów. Macie może pomysły jaka może być przyczyna? Ewentualnie jak wyeliminować zaokrąglanie jeśli to jest przyczyną.
Firmware to repetier, płytka autorska ale na bazie sanguinololu 1.3a (wszystkie piny i wyjścia takie same)
Linki do zdjęć:
http://steko3d.pl/reprap/projekt.bmp plik wyjściowy na podstawie którego graweruje
http://steko3d.pl/reprap/portret.jpg grawerowane zdjęcie, po lewej mach3, po prawej repetier z widocznymi paskami
http://steko3d.pl/reprap/portret.gcode plik G-kode

Awatar użytkownika
syntetyczny
Posty: 2390
Rejestracja: 08 lut 2013, 23:26
Lokalizacja: Elbląg
Kontaktowanie:

Re: grawerka na sterowniku drukarki - robi pasy

Postautor: syntetyczny » 01 wrz 2014, 12:49

ja bym sprawdził rampę. I to z czujnikiem zegarowym. Bo może podczas przyśpieszeń dochodzi o dziwnych zaokrągleń?
Poza tym, to nie są 2 takie same gcody. Widać, chociażby po ilości szczegółów. Chyba, że w przypadku po prawej, dłuto wchodziło głębiej?
eppure si muove
sklep z akcesoriami RepRap http://www.byq3d.eu

Awatar użytkownika
grzecho83
Posty: 110
Rejestracja: 09 lip 2013, 21:19
Lokalizacja: Krosno

Re: grawerka na sterowniku drukarki - robi pasy

Postautor: grzecho83 » 03 wrz 2014, 16:20

syntetyczny pisze:ja bym sprawdził rampę. I to z czujnikiem zegarowym.

zielony trochę jestem i nie wiem co rozumiesz przez ramę.

Myślałem przez chwilę że to wina rozdzielczości grawerki, w osi X jest 18kroków na mm czyli minimalny odstęp między uderzeniami to 0,0555.. i przy odstępie w projekcie ustawionym na 0,2 może źle zaokrąglać ale po dopasowaniu też są problemy. Teraz zauważyłem że w czasie pracy zachowuje się dziwnie.
https://www.youtube.com/watch?v=rI7NREMhr5g
Na filmiku to widać, prawa strona grafiki jest szara a lewa biała, czyli po lewej uderzenia są bez przerw w odstępie 0,222. Ale widać różnice prędkości już na 1/4 długości, w połowie bez zmian gdzie powinno być przyśpieszenie a na 3/4 długości zaczynają się te dziwne wibracje.

Awatar użytkownika
syntetyczny
Posty: 2390
Rejestracja: 08 lut 2013, 23:26
Lokalizacja: Elbląg
Kontaktowanie:

Re: grawerka na sterowniku drukarki - robi pasy

Postautor: syntetyczny » 03 wrz 2014, 16:33

Rampę, czyli przyśpieszenia i prędkości maksymalne. W machu jest taki trapez, którym regulujesz przyśpieszanie/hamowanie Vmax, w RepRap masz wartości acceleration itd. Tutaj doszukiwałbym się problemów.
eppure si muove
sklep z akcesoriami RepRap http://www.byq3d.eu

Awatar użytkownika
grzecho83
Posty: 110
Rejestracja: 09 lip 2013, 21:19
Lokalizacja: Krosno

Re: grawerka na sterowniku drukarki - robi pasy

Postautor: grzecho83 » 03 wrz 2014, 19:43

może być faktycznie zbyt duże przyśpieszenie, przy ciągłych ruchach sobie radzi ale jak są takie synchroniczne to może wpadać w rezonans przy odpowiednim zagęszczeniu kropek. Mam napęd na pasku, niezbyt napiętym, pokombinuje trochę z przyśpieszeniem.
I jeszcze mi się nasunął temat powiązany, czy jest jakaś możliwość łatwego zmodyfikowania firmware tak aby nie zwalniało przy każdej kropce tylko na końcu linii? głowica jak widać idzie w linii ciągłej i nie ma potrzeby aby się zatrzymywała przed uderzeniem, zaoszczędziło by to sporo czasu, prędkość ustawiłbym taką żeby głowica nadążała uderzać. Co nieco na temat kodowania wiem, jeśli to nie będzie skomplikowane to powinienem sobie poradzić. W planach mam napisanie prostego programu który będzie sterował właśnie tą grawerką bez zbędnych przyśpieszeń ale może modyfikacja repetiera będzie prostsza.
Kiedy testowałem grawerkę to głowica chodziła bez przestanków jeśli kolejna współrzędna w g-kodzie była w linii prostej

Kod: Zaznacz cały

G1 X-78.61 Y5.20
G1 X-79.99 Y5.20
G1 X-80.00 Y5.20
G1 X-80.01 Y5.20
G1 X-81.79 Y5.20
G1 X-81.80 Y5.20

niestety jeśli do pozycji dodawałem uderzenie:

Kod: Zaznacz cały

G1 X-78.61 Y5.20
G1 X-79.99 Y5.20
G1 X-80.00 Y5.20 E1
G1 X-80.01 Y5.20 E0
G1 X-81.79 Y5.20
G1 X-81.80 Y5.20 E1 F2500

głowica zatrzymuje się przy każdej kropce.

Awatar użytkownika
SWJ
Posty: 2868
Rejestracja: 19 sie 2013, 21:40
Lokalizacja: Poznań

Re: grawerka na sterowniku drukarki - robi pasy

Postautor: SWJ » 03 wrz 2014, 21:16

może Repetier ma gdzieś też zakopany podobny "fjuczer" jak Marlin

on ma coś takiego - jak ma zrobić mniej niż 5 kroków nie robi ruchu - dokłada te kroki w następnym większym ruchu - suma się zgadza - a zniekształcenia są niewidoczne...

/ Arc interpretation settings:
#define MM_PER_ARC_SEGMENT 1
#define N_ARC_CORRECTION 25

const int dropsegments=5; //everything with less than this number of steps will be ignored as move and joined with the next movement


co może dawać efekt MORY ....
// Jarek

=========

... nie tylko drukowanie..

Awatar użytkownika
grzecho83
Posty: 110
Rejestracja: 09 lip 2013, 21:19
Lokalizacja: Krosno

Re: grawerka na sterowniku drukarki - robi pasy

Postautor: grzecho83 » 03 wrz 2014, 21:38

Możesz mieć rację, znalazłem taki kawałek kodu, na końcu komentarz sugerujący że ignoruje małe ruchy:

Kod: Zaznacz cały

byte get_coordinates(GCode *com)
{
  register long p;
  register byte r=0;
  if(lines_count==0) {
    UI_STATUS(UI_TEXT_PRINTING);
  }
  if(GCODE_HAS_X(com)) {
    r = 1;
    if(unit_inches)
      p = com->X*25.4*axis_steps_per_unit[0];
    else
      p = com->X*axis_steps_per_unit[0];
    if(relative_mode)
        printer_state.destinationSteps[0] = printer_state.currentPositionSteps[0]+p;
    else
        printer_state.destinationSteps[0] = p+printer_state.offsetX;
  } else printer_state.destinationSteps[0] = printer_state.currentPositionSteps[0];
  if(GCODE_HAS_Y(com)) {
    r = 1;
    if(unit_inches)
      p = com->Y*25.4*axis_steps_per_unit[1];
    else
      p = com->Y*axis_steps_per_unit[1];
    if(relative_mode)
        printer_state.destinationSteps[1] = printer_state.currentPositionSteps[1]+p;
    else
        printer_state.destinationSteps[1] = p+printer_state.offsetY;
  } else printer_state.destinationSteps[1] = printer_state.currentPositionSteps[1];
  if(GCODE_HAS_Z(com)) {
    r = 1;
    if(unit_inches)
      p = com->Z*25.4*axis_steps_per_unit[2];
    else
      p = com->Z*axis_steps_per_unit[2];
    if(relative_mode) {
        printer_state.destinationSteps[2] = printer_state.currentPositionSteps[2]+p;
    } else {
        printer_state.destinationSteps[2] = p;
    }
  } else printer_state.destinationSteps[2] = printer_state.currentPositionSteps[2];
  if(GCODE_HAS_E(com) && !DEBUG_DRYRUN) {
    if(unit_inches)
      p = com->E*25.4*axis_steps_per_unit[3];
    else
      p = com->E*axis_steps_per_unit[3];
    if(relative_mode || relative_mode_e)
        printer_state.destinationSteps[3] = printer_state.currentPositionSteps[3]+p;
    else
        printer_state.destinationSteps[3] = p;
  } else printer_state.destinationSteps[3] = printer_state.currentPositionSteps[3];
  if(GCODE_HAS_F(com)) {
    if(com->F < 1)
      printer_state.feedrate = 1;
    else
      if(unit_inches)
        printer_state.feedrate = com->F*0.0042333f*(float)printer_state.feedrateMultiply;  // Factor is 25.5/60/100
      else
        printer_state.feedrate = com->F*(float)printer_state.feedrateMultiply*0.00016666666f;
  }
  return r || (GCODE_HAS_E(com) && printer_state.destinationSteps[3]!=printer_state.currentPositionSteps[3]); // ignore unproductive moves
}


trudno na pierwszy rzut oka stwierdzić bo za mało mam doświadczenia w kodowaniu, cały plik jest tutaj:http://steko3d.pl/reprap/Repetier.ino

Awatar użytkownika
syntetyczny
Posty: 2390
Rejestracja: 08 lut 2013, 23:26
Lokalizacja: Elbląg
Kontaktowanie:

Re: grawerka na sterowniku drukarki - robi pasy

Postautor: syntetyczny » 04 wrz 2014, 9:45

może lepiej zamiast tego grbl zastosować?
eppure si muove
sklep z akcesoriami RepRap http://www.byq3d.eu

Awatar użytkownika
SWJ
Posty: 2868
Rejestracja: 19 sie 2013, 21:40
Lokalizacja: Poznań

Re: grawerka na sterowniku drukarki - robi pasy

Postautor: SWJ » 04 wrz 2014, 10:50

http://reprap.org/wiki/List_of_Firmware#Grbl


o widze pojawiły sie NOWE firmware :-)
// Jarek

=========

... nie tylko drukowanie..

Awatar użytkownika
grzecho83
Posty: 110
Rejestracja: 09 lip 2013, 21:19
Lokalizacja: Krosno

Re: grawerka na sterowniku drukarki - robi pasy

Postautor: grzecho83 » 04 wrz 2014, 11:43

Nowy firmware zajmie mi za dużo czasu, sezon w pełni, już szybciej wrócę do mach3


Wróć do „Ogólnie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 2 gości