Skocz do zawartości
szymonw

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

Pomocna odpowiedź

Artykuł został opublikowany, więc podbijam, aby wszyscy widzieli jako nowy temat 🙂

Udostępnij ten post


Link to post
Share on other sites

Fajny artykuł . Z shieldem na arduino uno też jest tyle zabawy ? Bo nie mogę się zdecydować co kupić . 

Udostępnij ten post


Link to post
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

  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites

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? 

Udostępnij ten post


Link to post
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).

  • Pomogłeś! 1

Udostępnij ten post


Link to post
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 🙂

Udostępnij ten post


Link to post
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 . 

Udostępnij ten post


Link to post
Share on other sites

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.

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

                                                                                               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
  • Lubię! 1

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...