GRBL obsługuje klasyczne 4-przewodowe bipolarne silniki krokowe. Oprogramowanie obsługuje ruch silników w 3 osiach X, Y i Z.
.hex
)..hex
programu GRBL, wybieramy odpowiednie urządzenie (w tym przypadku Arduino Nano - ATmega328) oraz port, do którego podłączono Arduino. Pozostawiamy domyślną prędkość transmisji 57600 bodów (Fig. 1).Ustawienie | wart. domyslna | opis (EN) | opis (PL) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
$0 |
10 | steps pulse usec | min. długość impulsu dla kroku w mikrosekundach (typowo 5-50) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$1 |
25 | steps idle delay, msec |
Czas po wykonaniu kroku [ms], w którym silnik może pozostawać jako włączony (enable ) lub wyłączony (disable ). Zmienna może przyjmować wartości: 255 - silniki zawsze włączone (enable ); 0 - silniki zawsze wyłączone (disable ); 1-244 [ms] - czas po każdym kroku na dokończenie zatrzymania.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$2 |
0 | steps port invert mask: 00000000 |
Odwrócenie sygnału kroku (step ) dla wszystkich osi. Zaawansowany paramater używany gdy sterowniki silników tego potrzebują lub dla małego oszustwa wprowadzającego sztuczną zwłokę pomiędzy wysłaniem 2 komunikatów STEP i DIR . Normalnie sygnały są wysyłane jako wysoki lub niski dla kierunku (DIR ) a następnie wysoki opadający na niski w ciągu kilku mikrosekund dla sygnału kroku. Wartości wprowadzamy jako liczbą dzisiętną na podstawie tabelki, z której program tłumaczy sobie to na zapis dwójkowy.
Jeśli więc chcemy odwrócić kierunek (DIRECTION) dla X i Y musimy wykonać przesunięcie bitowe:(1<<X_DIRECTION_BIT)|(1<<Y_DIRECTION_BIT) czego wynikiem jest 96 i taką liczbę wpisujemy: $6=96 co da nam 1 na bitach 5 i 6: $6=96 (step port invert mask. int:1100000) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$3 |
0 | dir port invert mask: 00000000 |
odwrócenie kierunku ruchu silnika wg. maski:
Jeśli chcemy odwrócić kierunek osi Y, musimy wysłać do maszyny |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$4 |
0 | step enable invert, bool | Zachowanie sygnału enable (domyślnie "0"). Jeśli ze względu na sterowniki silników potrzeba na odwrót, wpisz "1". |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$5 |
0 | limit pins invert, bool | Wyłączenie wewnętrznych rezystorów podciągających dla linii krańcówek. Żeby to zrobić wpisujemy: $5=1. UWAGA! jeżeli nie podłączymy zewnętrznych rezystorów mikrokontroler może ulec zniszczeniu. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$6 |
0 | probe pin invert, bool | Jak $5 , wyłącza wewnętrzne rezystory podciągające dla sondy na A5. Włączamy też podobnie: $6=1 . |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$10 |
3 | probe pin invert, bool | Ustawienie zmieniające co GRBL wysyła do użytkownika po wydaniu komendy: "?" sprawdzającej w czasie rzeczywistym status maszyny. W sumie oprogramowanie może raportować:
- status maszyny - nie może być wyłączony, możliwe statusy to: Idle, Queue, Run, Hold, Home, Alarm, Check
- pozycja maszyny
- pozycja pracy - czyli pozycja maszyny + wszystkie zastosowane offsety
- bufor pracy
- bufor interfejsu RX
Do wprowadzenia ustawień używamy maski
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$11 |
0.010 | junction deviation, mm | Wartość wykorzystywana przez algorytm zarządzający prędkością w czasie pokonywania zakrętów. Wzrost wartości parametru powoduje zwiększenie prędkości, jeżeli maszyna sobie nie radzi zmniejszamy wartość | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$12 |
0.002 | arc tolerance mm | Tolerancja dla łuków i kół. Jeśli łuki wyglądają po wycięciu dobrze to nie ruszamy tego 0.002 jeśli uważacie że nie to zmieńcie. Mniejsza wartość to dokładniejszy łuk ale i wolniejsza praca. Wyższe wartości na odwrót czyli jedziemy szybciej i mniej dokładnie. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$13 |
0 | report inches, bool | Jednostka pracy grbl "0" - milimetry (domyślne), "1" - cale. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$20 |
0 | soft limits, bool | Limit miękki gdy jest włączony będzie sprawdzał czy maszyna nie chce pojechać poza swoje wymiary. Wymaga włączenia opcji homing i ustawienia wymiarów maszyny w parametrach $130, $131, $132. Włączamy to wpisując 1. I warto mieć włączone. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$21 |
1 | hard limits, bool | Limit ostry używa krańcówek zamontowanych na końcach każdej osi. Uruchomienie krańcówki powoduje zatrzymanie działania maszyny i nie jest możliwe wznowienie pracy od tego momentu. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$22 |
0 | homing cycle, bool | Jeśli używamy fizycznych krańcówek możemy ich użyć do znajdowania pozycji początkowej dla maszyny włączając tą funkcję. Grbl zakłada że pozycja domowa jest w +X, +Y, +Z. Po jej uruchomieniu pierwsze przemieszcza oś Z w kierunku plusa, a następnie naraz X i Y. Ważne ustawienie to $27 Homing pull-off | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$23 |
0 | homing dir invert mask: 00000000 | Jeśli pozycję domową w naszej maszynie mamy po przeciwnej stronie czyli -X, -Y, -Z możemy za pomocą maski ją odwrócić, używamy starej znanej tabelki:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$24 | 25.000 | homing feed, mm/min | Prędkość dla posuwu homing w celu znalezienia krańcówki "limit" i ustawieniu maszyny na 0. Najpierw wykorzystuje się następne ustwienie homing seek a po znalezieniu krańcówki w celu dokłądnego ustawienia homing feed. Zazwyczaj feed($4) jest ustawiany mniejszy od seek($5). Program najpierw steruje w kierunku początku układu właśnie z prędkością seek($5) a następnie po znalezieniu krańcówki zwalnia do prędkości feed($4) dojeżdżając do zera (0,0) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$25 | 500.000 | homing seek, mm/min | Może być ustawiony szybszy niż nasza najwyższa prędkość dla G1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$26 | 250 | homing debounce, msec | Czas zwłoki dla ustania drgania styków krańcówek, zazwyczaj 5-25. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$27 | 1.000 | homing pull-off, mm | Odległość [mm], którą maszyna wyjedzie po zadziałaniu krańcówki homingu aby znaleźć punkt 0, od zadziałania krańcówki do tego miejsca użyje prędkości z $19 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$100 | 250.000 | x step/mm | Ilość kroków potrzebnych do wygenerowania przez silnika, aby przesunąć oś o 1 mm.
Do poprawnej konfiguracji parametru potrzebne:
steps_per_mm = (steps_per_revolution*microsteps)/mm_per_rev W przypadku typowych silników krokowych z napędów cd/dvd:20 kroków/obrót × 1 × 3mm/obrót = 60 Powyższe łatwiej się liczy dla śrub metrycznych (szpilek) - dla przykładu gwint M8 i M9 ma skok 1,25 weźmy do tego silnik ustawiony na półkrok (2) który normalnie robi 200 kroków na 1 obrót: (2 microsteps/step) × (200 steps/motor_rev) × (1 motor_rev/screw_turn) / (1.25 mm/screw_turn) = 320 microsteps/mm wpisujemy 320 i gotowe |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$101 | 250.000 | y step/mm | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$102 | 250.000 | z step/mm | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$110 | 500.000 | x max rate mm/min | Ustawienie wpływa na szybkość dla feed i seek. Ustawiamy doświadczalnie. Wpisujemy:
G0 X50 patrzymy jak maszyna jedzie w osi X. Jeśli za wolno zwiększamy $110 aż uzyskamy największą możliwą prędkość wtedy zmniejszamy tę wartość o 10-20%.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$111 | 500.000 | y max rate mm/min | j.w. dla osi Y | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$112 | 500.000 | z max rate mm/min | j.w. dla osi Z. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$120 | 10.000 | x accel. mm/sec2 | Przyspieszenie dla osi X. Najlepiej znaleźć doświadczalnie. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$121 | 10.000 | y accel. mm/sec2 | Przyspieszenie dla osi Y. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$122 | 10.000 | z accel. mm/sec2 | Przyspieszenie dla osi Z. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$130 | 200.000 | x max travel, mm | Maksymalny ruch w osi X [mm]. Wymaga włączenia $20 i $22. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$131 | 200.000 | y max travel, mm | Maksymalny ruch w osi Y [mm]. Wymaga włączenia $20 i $22. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$132 | 200.000 | z max travel, mm | Maksymalny ruch w osi Z [mm]. Wymaga włączenia $20 i $22. |