Skocz do zawartości
szymonw

CNC Shield V4.0 czyli jak uruchomić trzyosiową maszynę

Pomocna odpowiedź

(edytowany)

Witam

@szymonw, naprawdę muszę powiedzieć fantastyczna robota z tym odszukaniem błędów dotyczących płytki w wersji 4.0.

Z powodzeniem zastosowałem poprawki na dwóch płytkach.

Jestem programistą i mam propozycję poprawki do kodów grbl. Nie spodobał mi się pomysł podmieniania numerów pin-ów na stałe w bibliotece grbl. Rozwiązanie jest super pod warunkiem, że mamy tylko płytki Nano i nie korzystamy z nakładki dla Uno. Jest rozwiązanie, które w takiej sytuacji można z powodzeniem zastosować. Otóż można wprowadzić dyrektywy warunkowe dla różnych płytek. Ja zrobiłem to tak:

Zamiast kodu:

  #define X_STEP_BIT      2  // Uno Digital Pin 2
  #define Y_STEP_BIT      3  // Uno Digital Pin 3
  #define Z_STEP_BIT      4  // Uno Digital Pin 4

wstawiłem:

  #ifdef ARDUINO_AVR_NANO
    #define X_STEP_BIT      5  // Nano Digital Pin 5
    #define Y_STEP_BIT      6  // Nano Digital Pin 6
    #define Z_STEP_BIT      7  // Nano Digital Pin 7
  #else
    #define X_STEP_BIT      2  // Uno Digital Pin 2
    #define Y_STEP_BIT      3  // Uno Digital Pin 3
    #define Z_STEP_BIT      4  // Uno Digital Pin 4
  #endif

Zamiast kodu:

  #define X_DIRECTION_BIT   5  // Uno Digital Pin 5
  #define Y_DIRECTION_BIT   6  // Uno Digital Pin 6
  #define Z_DIRECTION_BIT   7  // Uno Digital Pin 7

wstawiłem:

  #ifdef ARDUINO_AVR_NANO
    #define X_DIRECTION_BIT   2  // Nano Digital Pin 2
    #define Y_DIRECTION_BIT   3  // Nano Digital Pin 3
    #define Z_DIRECTION_BIT   4  // Nano Digital Pin 4
  #else
    #define X_DIRECTION_BIT   5  // Uno Digital Pin 5
    #define Y_DIRECTION_BIT   6  // Uno Digital Pin 6
    #define Z_DIRECTION_BIT   7  // Uno Digital Pin 7
  #endif

Zamiast kodu:

  #ifdef VARIABLE_SPINDLE // Z Limit pin and spindle enabled swapped to access hardware PWM on Pin 11.
    #define Z_LIMIT_BIT	   4 // Uno Digital Pin 12
  #else
    #define Z_LIMIT_BIT    3  // Uno Digital Pin 11
  #endif

wstawiłem:

  #ifdef VARIABLE_SPINDLE // Z Limit pin and spindle enabled swapped to access hardware PWM on Pin 11.
    #ifdef ARDUINO_AVR_NANO
      #define Z_LIMIT_BIT    3  // Nano Digital Pin 11
    #else
      #define Z_LIMIT_BIT    4 // Uno Digital Pin 12
    #endif
  #else
    #ifdef ARDUINO_AVR_NANO
      #define Z_LIMIT_BIT    4 // Nano Digital Pin 12
    #else
      #define Z_LIMIT_BIT    3  // Uno Digital Pin 11
    #endif
  #endif

Dzięki temu biblioteka będzie działała zarówno dla Nano jak i dla wspieranej przez grbl Uno.

Co ciekawe przeszukałem jeszcze na wszelki wypadek wystąpienia wszystkich pinów, które są zamienione, no i dla 11 i 12 znalazłem kilka innych wystąpień, z którymi postąpiłem podobnie. Kompletny kod biblioteki jest w pliku zip.

Przygotowałem swoją wersję biblioteki z powyższą poprawką na podstawie wersji 1.1h. Biblioteka ma strukturę odpowiednią do zaimportowana do najnowszej wersji Arduino IDE (1.8.13).

 

grbl-1.1h.zip

Edytowano przez pawelsel
Poprawka dla pinów 11 i 12
  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Dobra robota Pawelsel .Mam jednak propozycję by grbl-1.1h nazwać inaczej.Stworzyłeś nową wersję biblioteki,która jest pewnego rodzaju zawężeniem.Należy zadać pytanie :czy na rynku nie ma innych płytek do obsługi 3 osiowej maszyny cnc opartej na Arduino Nano pozbawionych wad takich jakie opisałem w artykule.Odpowiedź jest taka,że zapewne są takie płytki i są stosowane. Jeśli ktoś spróbuje zastosować Twoje oprogramowanie do tych drugich bez błędów płytek to polegnie.A zatem nazwanie Twojej biblioteki inaczej jest bardzo wskazane. Ponadto wprowadzenie do internetu   grbl-1.1h w Twojej wersji powoduje  bałagan i dezorientację.W moim przekonaniu powinieneś skontaktować się z twórcami oprogramowania i przedyskutować całą tę sytuację.Należy jednak podkreślić,że wykonałeś kawałek dobrej roboty.

Udostępnij ten post


Link to post
Share on other sites

@szymonw Nazwa pliku wynikła wyłącznie z tego, że z takiej wersji wyszedłem. W środku dalej jest to biblioteka grbl i tak zostanie zainstalowana. Warto wcześniej wypakować plik i zainstalować z katalogu. Z tego dokładnie powodu co opisałeś nie starałem się jej upublicznić na repozytorium. Bo może jest wersja płytki dla Nano, która ma prawidłowo podpięte piny. Natomiast moje poprawki spowodują, że wykorzystanie tej biblioteki zamiast oryginalnej dla wspieranych płytek dla Uno nie spowoduje wywalenia się ich.

 

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...