Skocz do zawartości

pawelsel

Użytkownicy
  • Zawartość

    6
  • Rejestracja

  • Ostatnio

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    Olsztyn
  • Programuję w
    Java, C++, Delphi
  • Zawód
    Informatyk projektant
  • Moje zainteresowania:
    Modelarstwo, elektronika, łucznictwo

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

Osiągnięcia użytkownika pawelsel

Odkrywca

Odkrywca (4/19)

  • Za 5 postów
  • To już rok!

Odznaki

3

Reputacja

  1. @Rafalekrav Cześć, Widzę, że wykorzystałeś kod z pliku zip, który załączyłem w jednym z postów. Musisz wiedzieć, że jest to kod, który automatycznie wykrywa jakie Arduino zostało wykorzystane i dopasowuje się do jednej z dwóch wersji płytek dla maszyn CNC: CNC Shield V3.0 (Uno) i CNC Shield V4.0 (Nano) i że jest to kod specjalnie przystosowany do potrzeb trzyosiowych maszyn CNC. Uniwersalna modyfikacja grbl-a zgodna z założeniami projektu znajduje się tu: https://github.com/pawelseledec/grbl.git W tej modyfikacji jest dodatkowa sekcja w cpu_map.h, która jest dedykowana dla płytki CNC Shield V4.0 (Nano). Opisałem to w moim ostatnim poście w tym wątku. Pozdrawiam.
  2. Właśnie wynikła kwestia wyjść D11 i D12 w maszynach dwuosiowych (grawerka laserowa). Wejścia/wyjścia cyfrowe z PWM w UNO opartym o procesor ATMEGA328P: D3, D5, D6, D9, D10, D11 NANO oparte o ten procesor ma tak samo. Zatem, żeby dostać się do sygnału PWM dla lasera trzeba skorzystać z D11. W pliku config.h jest następująca definicja: #define VARIABLE_SPINDLE // Default enabled. Comment to disable. W tej sytuacji krańcówka jest przepinana na D12 a na Z+/Z- mamy D11 czyli sygnał PWM. Zatem krańcówkę Z (jak ją mamy) wpinamy na D12, a sterowanie urządzeniem (PWM, np.laser o sterowanej mocy) do Z+/Z- Inaczej będzie, gdy zakomentujemy powyższą linię. Wtedy krańcówka Z jest tam, gdzie się spodziewamy , ale na D12 mamy tylko możliwość włączenia/wyłączenia urządzenia (bez sterowania PWM, np.frez o stałej prędkości obrotowej). W pliku cpu_map.h definicje dla pinów D11 i D12 nie powinny być zmieniane, wycofałem te zmiany. Jak jest potrzeba to lepiej sterować zmienną VARIABLE_SPINDLE i przełożyć kabelki. Kody ewaluowały od ostatniego razu i zamiast detekcji płytki jest w tej chwili osobna sekcja w cpu_map.h, co jest zgodne z intencjami twórców. Na branchu cnc_shield_4.0_nano od razu ustawiam ten shield w pliku config.h: //#define CPU_MAP_ATMEGA328P // Arduino Uno CPU #define CPU_MAP_ATMEGA328P_NANO_V4 // Arduino Nano CPU - shield v4 Wszystkie powyższe poprawki są dostępne na branchu cnc_shield_4.0_nano na moim forku https://github.com/pawelseledec/grbl.git
  3. Poszedłem jednak o krok dalej. Zrobiłem fork-a repozytorium grbl na GitHub-ie i już na moim repozytorium dokonałem odpowiednich zmian. Jakby ktoś potrzebował to na moim repozytorium https://github.com/pawelseledec/grbl.git kody grbl dla tego shielda są dostępne na branchu cnc_shield_4.0_nano.
  4. @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.
  5. 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
  6. Witam wszystkich, mam na imię Paweł, lat 51. Od jakiegoś czasu bawię się Arduino dlatego zawitałem na to forum.
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.