Skocz do zawartości

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


Anonim

Pomocna odpowiedź

Ten artykuł  poświęcony jest CNC Shield V4.0.Ci,którzy kupili ten moduł musieli zmierzyć się z problemami na każdym etapie uruchamiania. Być może większość z Was porzuciła tę płytkę stwierdzając,że nic się nie da z tym zrobić.

Ten wpis brał udział konkursie na najlepszy artykuł o elektronice lub programowaniu. Sprawdź wyniki oraz listę wszystkich prac »
Partnerem tej edycji konkursu (marzec 2020) był popularny producent obwodów drukowanych, firma PCBWay.
PCBway_logotyp-350x233.png

Projektując swoją trzyosiową frezarkę postanowiłem,tak jak wielu z Was, użyć do sterowania modułu  Arduino NANO + CNC Shield V4.0+A4988.Niska cena, CNC Shield V4.0 firmy KUONGSHUN to specjalnie dedykowany do tych celów moduł. Ponieważ ten artykuł ma być poradnikiem dla wszystkich to zacznijmy zatem od początku.

IMG_0455.thumb.JPG.04dcd55649315dd5baee88d2380dd702.JPG

Najpierw instalujemy  najnowszą wersję Arduino IDE.Po czym otwieramy Arduino i klikamy w narzędzia->zarządzaj bibliotekami i wpisujemy w wyszukiwarkę GRBL.Po chwili wyświetli się wynik.Klikamy w grbl a następnie klikamy instaluj.

IMG_0375.thumb.JPG.ff8694f319d70b761b6e2b92fc40ca85.JPG

Drugim krokiem jest zainstalowanie  Grbl controller  3.6.1   

     IMG_0384.thumb.JPG.4fbd0e8cd82a2386b5ac1f3a1f47a68d.JPG                                     

https://grbl-controller.software.informer.com/3.6/

Ten program też instalujemy.Bez podłączania płytki możemy otworzyć program i zobaczymy ekran taki jak na poniższym zdjęciu.

IMG_0370.thumb.JPG.ed6c66a5b1e57d84afb12f6b914bf576.JPG

Czas uruchomień jest czasem weryfikacji, naszych założeń ,myśli technicznej. Po wykonaniu niezbędnych prac mechanicznych zawsze przychodzi czas na podłączenie elektroniki. Wgrałem GRBL i uruchomiłem. Pierwsze włączenie było bardzo rozczarowujące bo oprócz jakichś  dźwięków w momencie włączenia sugerujących, że silniki krokowe coś chcą zrobić nie działo się nic. Nie od razu uświadomiłem sobie, że program GRBL został napisany dla Arduino Uno.Analizując problem doszedłem do wniosku, że sygnały DIR i STEP są zamienione.Szukając jakiejś podpowiedzi na forach świata w zasadzie niczego nie znalazłem .Natknąłem się na niesamowity  post, którego autor proponował bezczelne  przecięcie ścieżek po czym wlutowanie odpowiednich mostków. Cóż, można się tylko uśmiechnąć . Nie znalazłem rozwiązania na forach. Najpierw sprawdziłem z którymi pinami w Arduino Nano łączą się wejścia DIR , STEP oraz ENABLE w A4988.Postanowiłem przetestować całą płytkę to jest Arduino Nano+ Shield V4.0+A4988.W tym celu wgrałem program testowy z właściwie przypisanymi portami do wejść A4988.Uruchomiłem i urządzenie, ku mojej radości  zaczęło działać zgodnie z tym co jest napisane w programie. Poniżej procedura i program testowy.

//Program obsługuje trzy silniki krokowe i jest przeznaczony do testowania Arduino NANO + CNC Shield V4.0+A4988 
#define EN        8       // włączanie silnika krokowego, aktywny niski poziom                 
#define X_DIR     2       // Oś X, kontrola kierunku silnika krokowego                             
#define Y_DIR     3       //Oś Y, kontrola kierunku silnika krokowego                               
#define Z_DIR     4       //Oś Z, kontrola kierunku silnika krokowego                                          
#define X_STP     5       //oś x, sterowanie silnikiem krokowym                                                  
#define Y_STP     6       //oś y, sterowanie silnikiem krokowym                                         
#define Z_STP     7       //oś z, sterowanie silnikiem krokowym                                                
void step(boolean dir, byte dirPin, byte stepperPin, int steps)                                                       
{                                                                                                                       
digitalWrite(dirPin, dir);                                                                                                        
delay(50);                                                                                                                                    
for (int i = 0; i < steps; i++)                                                                                                               
{                                                                                                                         
digitalWrite(stepperPin, HIGH);                                                                   
delayMicroseconds(800);                                                                                  
digitalWrite(stepperPin, LOW);                                                                   
delayMicroseconds(800);                                                                                                                   
      }                                                                                                                                                    
  }                                                                                                                                                        
void setup(){                                                                                                       
pinMode(X_DIR, OUTPUT);                                                                                     
pinMode(X_STP, OUTPUT);                                                                                   
pinMode(Y_DIR, OUTPUT);                                                                                   
pinMode(Y_STP, OUTPUT);                                                                                   
pinMode(Z_DIR, OUTPUT);                                                                                     
pinMode(Z_STP, OUTPUT);
pinMode(EN, OUTPUT);                                                                                           
digitalWrite(EN, LOW);                                                                                                                  
}                                                                                                                                               

void loop()

{
                                                                                                                      
step(false, X_DIR, X_STP, 200);                                                                                  
step(false, Y_DIR, Y_STP, 200);                                                                                              
step(false, Z_DIR, Z_STP, 200);                                                                                     
delay(1000);                                                                                                                     
step(true, X_DIR, X_STP, 200);                                                                                           
step(true, Y_DIR, Y_STP, 200) ;                                                                                       
step(true, Z_DIR, Z_STP, 200);                                                                                 

delay(1000);                                                                                                                                 

}

Proszę  ustawić głowicę maszyny na środku tak by była daleko do brzegów i włączyć.Śruby trapezowe powinny wykonać dokładnie jeden obrót w prawo a później jeden obrót w lewo i tak w kółko.W ten oto sposób Wasza maszyna stała się pierwszą prostą maszyną CNC. Następnym krokiem było odnalezienie właściwej biblioteki w GRBL i muszę powiedzieć, że się trochę naszukałem ale w końcu znalazłem. Od tego momentu wszystko potoczyło się szybko.Ta biblioteka jest umieszczona w dokumentach na dysku c,  u mnie c:\Documents\Arduino\libraries\grbl\cpu_map\cpu_map_atmega328p.h  którą należy otworzyć za pomocą notatnika(dla Windows10) i zmienić . Zanim zaczniesz zmieniać zrób sobie kopię tej biblioteki tak na wszelki wypadek, może się przyda do innych projektów z inną płytką ale tym samym mikrokontrolerem. GRBL w Arduino został napisany pod Arduino Uno a producent płytki  Shield V4.0 nie zastosował ustawień portów Arduino Uno w Arduino Nano. Zmiany, których dokonałem są uwidocznione tłustym drukiem.Należy zmienić tylko cyferki !

// Define step pulse output pins. NOTE: All step bit pins must be on the same port.

#define STEP_DDR     DDRD

 #define STEP_PORT       PORTD

#define X_STEP_BIT      5  // Uno Digital Pin 2, dla Nano D5

 #define Y_STEP_BIT      6  // Uno Digital Pin 3, dla Nano D6

#define Z_STEP_BIT      7  // Uno Digital Pin 4, dla Nano D7

#define STEP_MASK       ((1<<X_STEP_BIT)|(1<<Y_STEP_BIT)|(1<<Z_STEP_BIT)) // All step bit

// Define step direction output pins. NOTE: All direction pins must be on the same port

#define DIRECTION_DDR     DDRD

#define DIRECTION_PORT    PORTD 

#define X_DIRECTION_BIT   2  // Uno Digital Pin  5 dla Nano D2

#define Y_DIRECTION_BIT   3  // Uno Digital Pin 6, dla Nano D3 

#define Z_DIRECTION_BIT   4  // Uno Digital Pin 7, dla Nano D4

Niestety nie są to wszystkie zmiany w oprogramowaniu bo po włączeniu będą chodzić tylko dwie osie X i Y.Oś Z nie wystartuje. Należy dokonać kolejnej zmiany w tym samym pliku trochę poniżej:

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

#else  

                                                                                                                                                                                                                                                                                                                                                      #define Z_LIMIT_BIT    4  // Uno Digital Pin 12, w oryginale 3

Zapisujemy zmiany i zamykamy plik.Następnym krokiem jest wyczyszczenie pamięci EEPROM za pomocą programu eeprom_clear,który jest umieszczony w przykładach dla Arduino.Jeśli nie ma wchodzimy do  zarządzaj bibliotekami ,odnajdujemy i instalujemy a następnie wracamy do przykładów, odnajdujemy i wgrywamy do  mikrokontrolera. Następnie wyszukujemy w przykładach Grbl kompilujemy a następnie wgrywamy.Następnie uruchamiamy Grbl controller i wyszukujemy port com  klikając w port name

 

IMG_0376.thumb.JPG.700d495388f75a8b6de9bf401f405998.JPG

Ustawiamy głowicę maszyny na środku tak by była daleko do brzegów. Klikamy dwa razy w start/reset.Czekamy cierpliwie aż  wszystko  się uruchomi.Ustawiamy step size na 1 i sprawdzamy najpierw oś Z a następnie pozostałe.Apeluję o ostrożność w klikaniu w strzałki na pulpicie.Jedno kliknięcie to jeden step size czyli np.200 kroków silnika.Osie X i Y nie wystartują dopóki nie ruszysz osi Z.Controller Grbl został tak napisny,że najpierw musi zostać wykonany ruch osi Z do góry a dopiero później dostępne są osie X,Y i jest to naturalne bo trzeba chronić narzędzie i materiał przed niepotrzebnym zniszczeniem.

IMG_0377.thumb.JPG.d28ec062dedcf8c5e755fd1f2b526b49.JPG

Wydawać by się mogło, że to już koniec zmian ale niestety twórca CNC Shield V4.0 zapomniał o jeszcze jednym jak się okazuje kluczowym drobiazgu a mianowicie o sterowaniu  silnikami krokowymi zworkami M0,M1,M2.W tym stanie w jakim jest płytka zapomnijcie o 1/2,1/4 ,1/8,1/16 kroku. Otóż w A4988 M0,M1,M2 są na potencjale 0V(gdzieś w środku A4988 M0,M1,M2 są połączone przez rezystory M0 i M2 100k a M1 50k do GND) i by sterować musimy na nie podać 5V albo 0V.Zworka z jednej strony łączy pin z M0,M1,M2 a z drugiej powinna łączyć do +5V.W płytce CNC Shield V4.0 łączy do masy czyli 0V. Sytuacja którą zastałem jest ewidentnym błędem projektanta płytki,który pogubił się bo czy zworki będą zainstalowane czy też nie, zawsze będziemy mieć 200 kroków/obrót(patrz tabelka poniżej) co przy śrubie trapezowej o skoku 8mm  oznacza  25 kroków na milimetr a to nie jest najlepszą opcją. Co zrobić w tej dramatycznej sytuacji?Są dwa wyjścia zwrócić sprzedawcy płytkę lub zainwestować w trzy druciki i 9 rezystorów SMD co jest kosztem rzędu 0,1-0,2 zł. Zastosowałem rezystory podciągające na M0,M1,M2 do potencjału 5V. W moim CNC Shield V4.0 wlutowałem 9 rezystorów smd o wartości 10k(takie miałem pod ręką) tak jak to widać na zdjęciu.Lutowanie należy przeprowadzić ostrożnie by nie naruszyć  solder maski, która jest doskonałym izolatorem.

IMG_0454.thumb.JPG.d82361e1a68fa1af0e1a80c93aea4272.JPG

Z jednej strony podłączone są do M0,M1,M2 a z drugiej strony rezystory są zwarte razem i podłączone do VDD(5V) A4988(jak sobie powiększycie obrazek to zobaczycie drucik łączący VDD A4988 z rezystorami) . Po tej zmianie wszystko  działa tak jak należy. Gdyby komuś przyszło do głowy nie wlutowywać rezystorów a bezpośrednio podłączyć do  5V to przy zainstalowaniu zworki nastąpi zwarcie i układ zasilający powinien się uszkodzić a może coś więcej.

IMG_0385.thumb.JPG.1ef0f707ee36e4d69a6052ed203a65d6.JPG

W płytce CNC Shield V4.0  M0 to MS1, M1 to MS2,M2 to MS3

IMG_0386.thumb.JPG.58375fb8f003f4bb3a43e9e579b13ffb.JPG

Poniższe zdjęcie pokazuje jak wygląda ekran  controllera GRBL podczas pracy frezarki CNC.

IMG_0453.thumb.JPG.a66e4d8aa1a5e954b8657c6f18c7af0c.JPG

I to już wszystko.Nie poruszam tematu sterowania wrzecionem i pompą tłoczącą chłodziwo w przypadku wycinania w metalu.Jak widać nie wszystko stracone bo moduł można poprawić,program  można przystosować.Nie poruszam tematu ustawień controllera grbl bo to znajdziedzie gdzieś na forum.

Link do komentarza
Share on other sites

Gdybym miał zrobić kolejną maszynę trzyosiową to bym kupił arduino nano i ten shield V4.0.Dlaczego?Bo już wiem jak uruchomić urządzenie.Nie wiem ile kosztuje shield do arduino uno,nie wiem ile kosztuje arduino uno wiem ile kosztuje arduino nano.Tnij koszty. O ile się orientuję to budowniczowie frezarek trzyosiowychopartych na Arduino uno mieli problem z osią Z .Arduino uno i arduino nano mają ten sam procesor.Rozwiązanie masz na tacy podane.Nie zapomnij o rezystorach.Uruchomienie maszyny zajęło mi ok.10 godzin z czego 9 godzin to znalezienie wszystkich błędów .Jedna godzina to wszystkie przeróbki.Tobie zajmie to 20minut.Bardzo ważne jest jak zrobisz układ mechaniczny.Bez zainstalowanych  silników i śrub trapezowych to  ruch w poszczególnych osiach ma odbywać się prawie bez oporu.Jak pochylisz maszynę to kąt 20-30 stopni musi być wystarczający do zainicjowania ruchu.W mojej maszynie prowadnice są z prętów stalowych fi12 przeciąganych zdaje się na zimno.Dokładność(tolerancja) H7 zdaje się.Takie pręty sprzedawane są w odcinkach 6m (60-80zł).W mojej maszynie zużyłem 2m prętów to oznacza ,że materiał mam na jeszcze dwie tego typu maszyny.Łożyska liniowe fi12 a uchwyty na nie  kupisz za grosze w sklepie elektrycznym UZU20(uchwyty na rury) produkowane przez AKS Zielonka.Na jedno łożysko 2 uchwyty w sumie 24 bo jest 12 łożysk.Na każdą oś 4 łożyska.Rysunki wykonałem w Eaglu.Istota wykonania tkwi w dokładności.Pamiętaj,że pręty na osie na swych końcach nie mogą być ostre. Najtrudniejszym elementem montażowym jest wyśrodkowanie nakrętki śruby trapezowej.Po zamontowaniu śruby trapezowej,nakrętki trapezowej i silnika ruch na osiach mimo śruby i silnika powinien odbywać się po przyłożeniu średniej siły.U mnie w kierunku osi x wystarczyło przechylenie maszyny pod kątem 60 stopni .Powodzenia

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dzięki za porady😀. Mam jeszcze jedno pytanie . Jeśli chciałbym zamontować 2 silniki na 1 oś to dało by rade na jednym sterowniku 2 silniki? 

Link do komentarza
Share on other sites

Nie. A4988 ma następujące maksymalne parametry

Absolute Maximum Ratings
Characteristic Symbol Notes Rating Units
Load Supply Voltage VBB 35 V
Output Current IOUT ±2 A
Logic Input Voltage VIN –0.3 to 5.5 V
Logic Supply Voltage VDD –0.3 to 5.5 V
Motor Outputs Voltage –2.0 to 37 V
Sense Voltage VSENSE –0.5 to 0.5 V
Reference Voltage VREF 5.5 V
Operating Ambient Temperature TA Range S –20 to 85 ºC
Maximum Junction TJ(max) 150 ºC
Storage Temperature Tstg –55 to 150 ºC

Zadaj sobie pytanie jaki ciężar chcesz przemieszczać.Siłę jaką musisz przyłożyć by wprawić w ruch ciężar to F=m*g*f  gdzie f to współczynnik tarcia statycznego.To generuje drugie pytanie o zasadność drugiego silnika.Łożyska są po to by zminimalizować tarcie.W tego typu maszynach dąży się do tego by głowica była lekka.W mojej maszynie materiał jest nieruchomy a przemieszcza się głowica z wirującym narzędziem tnącym.W mojej maszynie są silniki nema 17  1,5A  0,45Nm i są nie do zatrzymania.Przy doborze silnika kieruj się momentem trzymającym.Największy ciężar głowicy to silnik wrzeciona u mnie silnik klasy 775(12-24V). Gdybym miał robić drugą maszynę to zamiast dużego ciężkiego silnika użyłbym silnika BLDC do samolotów i kto wie czy nie wymienię.Moc taka sama albo  dużo większa a ciężar mały.Silnik BLDC jest silnikiem bez szczotek (trzyfazowy) co jest ogromną zaletą.O sterowaniu takim silnikiem to gdzieś poczytaj.Zamiast bajeranckich łańcuchów na przewody użyłem dobrej jakości peszel(taka rurka giętka karbowana,elektrycy używają robiąc instalacje elektryczne).

Link do komentarza
Share on other sites

Zawsze zastanawiałem się nad działaniem i obsługą tego modułu oraz jego rodziny. Jednym z planowanych przeze mnie projektów na przyszłość jest właśnie mała frezarka. Wielkie dzięki za ten artykuł, bardzo dobrze wyjaśnił mi moje wątpliwości i odpowiedział na pytania związane z obsługą tego modułu 🙂

Link do komentarza
Share on other sites

Witam . Postanowiłem rozpocząć przygodę z CNC na przykładzie Arduino NANO . Pytanie moje : czy po wyczyszczeniu pamięci w Arduino NANO zgodnie z opisem wyżej , mogę wgrać plik GRBL(najnowszy jaki znalazłem czyli grbl_v1,1h.20190825.hex) . Podawane są dwa sposoby wgrywania : pierwsza jak wyżej , czyli wgranie do arduino biblioteki GRBL i wgranie właściwego pliku x.hex . Druga możliwość wgrywanie właściwego pliku x.hex poprzez program Xloader . Proszę o podpowiedz jak jest różnica . Czy wgrany plik x.hex jest jakoś inaczej wpisywany do nano , inną dostaje lokację . Proszę jeszcze o wiadomość zmiany jaką autor wskazał odnośnie :

Niestety nie są to wszystkie zmiany w oprogramowaniu bo po włączeniu będą chodzić tylko dwie osie X i Y.Oś Z nie wystartuje. Należy dokonać kolejnej zmiany w tym samym pliku trochę poniżej:

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

#else  

                                                                                                                                                                                                                                                                                                                                                      #define Z_LIMIT_BIT    4  // Uno Digital Pin 12, w oryginale 3

Czyli jak mam wpisać jeżeli mam NANO bo nie bardzo rozumiem .

A które wejścia w NANO do krańcówek i dodatkowych przycisków . 

Link do komentarza
Share on other sites

Anonim

Zastosuj się do tego co napisałem w artykule a maszyna ruszy.Jeśli otworzyłeś c:\Documents\Arduino\libraries\grbl\cpu_map\cpu_map_atmega328p.h  to dokonaj zmian. Pliki hex,bin są plikami wsadowymi  a nie źródłowymi.Pliku wsadowego się nie zmienia  a jeśli go otworzysz i cokolwiek zmienisz to plik będzie uszkodzony i nie zostanie załadowany do kontrolera. W moim artykule jest opis tego co należy zmienić w jednym pliku źródłowym.Nie używam X-loadera bo  jest mi niepotrzebny.Do załadowania GRBL użyj Arduino IDE.W linijce procesor zaznacz Old  Bootloader.

Link do komentarza
Share on other sites

                                                                                               UZUPEŁNIENIE lub  jak kto woli SUPLEMENT

Moja frezarka w której zastosowałem do sterowania moduł CNC shield V4.0 ma się dobrze i podczas pracy, szczególnie z  bardzo twardymi materiałami, nieźle hałasuje. Jednakże po ostatnich nowelizacjach Windows 10 niektóre elementy  controller grbl 361 przestały prawidłowo działać. Jeszcze  controller grbl  361 prawidłowo wysyła rozkazy do maszyny ale widać koniec tej wersji programu co powoduje, że trzeba zainstalować coś innego. Mój wybór padł na UGSplatform, który jest zalecany przez producenta nowej wersji GRBL czyli  grbl 1.1g.Po ściągnięciu grbl 1.1g ze strony GitHub instalacja w Arduino przebiega w sposób następujący :jeśli mamy już zainstalowany grbl  wchodzimy do: Dokumenty  -> Arduino -> librares odnajdujemy grbl  i usuwamy a w to miejsce instalujemy wcześniej przygotowaną nową wersję grbl w wersji grbl 1.1 a następnie postępujemy tak a jak to opisałem w artykule w części dotyczącej zmiany przyporządkowania do pinów sygnałów DIR i STEP i LIMIT Z czyli po zmianie wyglądać będzie to tak:

// Define step pulse output pins. NOTE: All step bit pins must be on the same port.      

#define STEP_DDR        DDRD                                                                                        

#define STEP_PORT       PORTD                                                                                             

#define X_STEP_BIT      5  // Uno Digital Pin 2, dla Nano D5                                    

#define Y_STEP_BIT      6  // Uno Digital Pin 3, dla Nano D6                                      

#define Z_STEP_BIT      7  // Uno Digital Pin 4, dla Nano D7                                     

#define STEP_MASK       ((1<<X_STEP_BIT)|(1<<Y_STEP_BIT)|(1<<Z_STEP_BIT)) // All step bits                                                                                                                                 

// Define step direction output pins. NOTE: All direction pins must be on the same port. #define DIRECTION_DDR     DDRD                                                                                     

#define DIRECTION_PORT    PORTD                                                                                  

#define X_DIRECTION_BIT   2  // Uno Digital Pin  5 dla Nano D2                                          

#define Y_DIRECTION_BIT   3  // Uno Digital Pin 6, dla Nano D3                                 

#define Z_DIRECTION_BIT   4  // Uno Digital Pin 7, dla Nano D4                         

#ifdef VARIABLE_SPINDLE // Z Limit pin and spindle enabled swapped to access hardware PWM on Pin 11.                                                                                                                

#define Z_LIMIT_BIT           3 // Uno Digital Pin 11 ,w oryginale 4                                

#else                                                                                                                                 

#define Z_LIMIT_BIT    4  // Uno Digital Pin 12,w oryginale 3

Jeśli nie masz zainstalowanego grbl w Arduino IDE(najnowsza wersja Arduino IDE nie ma grbl w bibliotece) to w celu zainstalowania grbl musisz postąpić w sposób następujący: otwieramy Arduino IDE  klikamy w zakładkę szkic -> dołącz bibliotekę -> Dodaj bibliotekę .ZIP… a następnie  zmieniamy na dole w files of type  z ZIP na All Files  i odnajdujemy ściągnięty folder grbl   a w nim odnajdujemy w nim bibliotekę grbl.h a następnie klikamy open . Następnym krokiem jest zmiana  przyporządkowania do pinów sygnałów DIR i STEP  oraz  LIMIT Z opisana powyżej lub w artykule głównym. Warto zauważyć ,że grbi1.1g  jest dobrze rozwiązana kwestia sterowania mocą lasera. Sterowanie mocą lasera jest przypisane do pinu D11. Należy zauważyć, że D11 jest pinem wielofunkcyjnym i należy być bardzo ostrożnym przy korzystaniu z tego bolca. Dla lasera D11 to wyjście w związku z tym nie może być podpięta krańcówka osi  Z !. Autorzy oprogramowania sugerują by wszystkie krańcówki były podpięte do jednego pinu odpowiedzialnego za krańcówki osi x lub osi y.By włączyć funkcję  sterowania mocą lasera należy, przed zaprogramowaniem Arduino Nano,Uno programem grbl ,  wejść w folderze grbl  do pliku config.h i odkomentować dwie linie.

// #define SPINDLE_PWM_MIN_VALUE 5 // Default disabled. Uncomment to enable. Must be greater than zero. Integer (1-255).

// #define USE_SPINDLE_DIR_AS_ENABLE_PIN // Default disabled. Uncomment to enable.

Czyli po odkomentowaniu te linie będą wyglądały tak:

#define SPINDLE_PWM_MIN_VALUE 5 // Default disabled. Uncomment to enable. Must be greater than zero. Integer (1-255).

 #define USE_SPINDLE_DIR_AS_ENABLE_PIN // Default disabled. Uncomment to enable.

Teraz możemy już wgrać do kontrolera Nano grbl  postępując tak jak to opisałem w artykule głównym. Po wgraniu grbl(cały czas jesteśmy w Arduino IDE)  przechodzimy do zakładki narzędzia i klikamy monitor portu szeregowego a w nim ustawiamy prędkość transmisji na 115200baud .Powinien pokazać się komunikat Grbl1,1g.Kolejnym krokiem jest wpisanie $$ i klikamy wyślij. Powinniśmy zobaczyć listę funkcji przygotowawczych G. Jak się przyjrzymy to zobaczymy, że pojawiły się trzy dodatkowe funkcje $30,$31,$32. $30 max.  obroty wrzeciona,$31 min. obroty wrzeciona,$32 tryb lasera wyłączony jeśli $32=0, jeśli $32=1 włączony. Następnym krokiem jest zainstalowanie UGSplatform. Ściągamy ze strony GitHub i instalujemy. UGSplatform ma szereg zalet. Pierwszą z nich jest to, że jeśli klikniemy stop to rzeczywiście maszyna zatrzymuje się. Drugą zaletą jest to, że obiekt,który ma być wycięty można oglądać w dowolnym rzucie. Trzecią zaletą jest to, że jest szybszy od controller 361.

Uwaga:Warto zapoznać się z plikiem config.h w folderze grbl w którym wszystko jest opisane.

By obsłużyć laser ściągamy Program grbllaser i instalujemy a następnie konfigurujemy. Sterowanie mocą lasera :klikamy połączenie następnie klikamy zakładkę grbl a następnie  odblokowanie ,następnie konfiguracja grbl,  ustawiamy $32=1, $30 zmieniamy z wartości domyślnej 1000 na 255.Klikamy zapisz a następnie zamknij. Kolejnym krokiem jest wejście(nadal jesteśmy w grbllaser) grbl ->ustawienia->import rastrowy  i zaznaczamy  wsparcie PWM po czym klikamy zapisz.Po wprowadzeniu jakiegoś obiektu do wypalania laserem klikamy start i na pinie D11 można zobaczyć co się dzieje.Załączam krótki filmik.Przerobienie frezarki cnc na wycinarkę laserową jest bajecznie proste.Wystarczy zdemontować moduł wrzeciona a w to miejsce przykręcić laser.W zależności od typu lasera albo trzeba będzie poprowadzić dwa dodatkowe przewody sterujące do lasera a jeśli laser nie jest wyposażony w sterowanie mocą(np.TTL) to należy takie sterowanie wykonać we własnym zakresie.Układ będzie się składał z płytki PCB, dwóch kołków na wejściu,dwóch kołków wyjściowych, tranzystora MOSFET i rezystora 100-200Ω  podłączonego pomiędzy D11 i nóżką G tranzystora MOSFET.

Podczas pracy z laserem należy zachować szczególną ostrożność. Obowiązkowo należy założyć okulary ochronne! Oczy macie tylko jedne na całe życie!

IMG_0523.zip

Edytowano przez Gieneq
Zachęcam do używania bloku kodu
Link do komentarza
Share on other sites

W linijce procesor zaznacz Old  Bootloader . Proszę o rozjaśnienie tego tematu . Czy przy każdym NANO ?  . Chciałbym się pochwalić że GRBL1.1h wgrałem do PRO MINI .

Połączone mam z przejściówką CH340G i po testach działa !!! . Tu miałem bootloader wgrany przez Arduino NANO ISP

Link do komentarza
Share on other sites

1 minutę temu, WALEKCNC napisał:

W linijce procesor zaznacz Old  Bootloader . Proszę o rozjaśnienie tego tematu . Czy przy każdym NANO ? 

Nie - jak na jednym nie zadziała to zadziała na drugim. Po prostu są dwie wersje bootloadera, a chińczyki mają na pokładzie starą.

Link do komentarza
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...

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.