Skocz do zawartości

Serowanie 7 silnikami krokowymi przez Arduino - Manipulator


maxpane5

Pomocna odpowiedź

Witam. Wraz z kolegą robimy projekt manipulatora, a jako że nie jesteśmy elektronikami mamy kłopoty z dobraniem silników i sterowania nimi.

Domyślnym mózgiem manipulatora czyli ramienia robota ma być Arduino MEGA2560 R3.

Dodam że chcę aby ramieniem można było sterować joystickiem i za pomocą programu w którym mogę zaprogramować co ma robić.

Szukałem w Internecie poradników, lecz w każdym sterowny jest jeden silnik krokowy. A ja chcę sterować aż siedmioma ponieważ manipulator w założeniu ma obracać się o 360 stopni i obracać chwytakiem o 360 stopni. Poza tym ma mieć 5 ramion.

Znalazłem na Internecie "Adafruit sterownik serw 16-kanałowy, 12-bitowy PWM I2C Shield dla Arduino" który sterował ponad 7 serwami(ja potrzebuję sterować silnikami krokowymi). Lecz na wykonywał cały czas to samo czyli obracał silnikami o dany kąt i cofał je o ten sam kąt. I nie wiem czy mogę dołączyć do tego Joystick a dokładnie dwa i przyciski które zmienią funkcję jaką ma wykonać ramie gdy będzie wciśnięty przycisk(czyli bez wciśniętego, analog w górę pozwoli podnieść ramię główne, a z wciśniętym, analog w górę pozwoli na zamykanie szczęk inaczej musiałby zastosować ze 3 joysticki ale może i tak zrobię).

Najważniejsza kwestia to czy ten Adafruit podoła zadaniu i czy będę mógł do tego podpiąć jeszcze joystick i sterować ramieniem przez program.

Druga kwestia to dobór silników krokowych bipolarnych czteroprzewodowych. Jakie wybrać jeśli na każdym będzie przekładnia ślimakowa?? Dodam że Adafruit ma maksymalne napięcie zasilania silników 6V i pytanie czy dobiorę takie silniki pod Adafruit (czyli ok. 6V) aby miały siłę ruszać ramieniem. Jeśli nie to proszę o podanie czegoś innego zamiast Adafruit.

Silniki muszą obracać się o 360 stopni czyli nie mogą być to serwa.

Bardzo proszę o odpowiedź gdyż nie mogę znaleźć nic w Internecie.

Jeśli czegoś nie wyjaśniłem to proszę o pytania.

Pozdrawiam i życzę Wesołych Świąt 😃

Link do komentarza
Share on other sites

Jakbyś ograniczył się do 5 silników krokowych to ramps 1.4 mógłby się wtedy nadać. Do tego masz tam dwa tranzystory większej mocy, wejście na 6 endstopów, 3 termistory i parę innych bajerów

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Dzięki za odp.

A gdybym wykorzystał serwa?? Miałbym tylko 180 stopni ale chyba Adafruit by pasował??.

Czy serwo da się zatrzymać w danym położeniu jak zwykły silnik krokowy?

A jak ma się sprawa Joysticka?? z Adafruit mogę go włączyć do układu bez problemu??

@edit

Znalazłem też fajny sterownik silników: EasyDriver V4.4 A3967

Teoretycznie wykorzystałbym siedem takich sterowników, czyli po jednym na silnik, ale czy Arduino mega ma tyle wyjść PWM?? Widziałem że na 1 sterownik są używane 2 PWM'y.

czyli potrzebowałbym 14 na 7 silników. W opisach Arduino Mega ma 15 prawda?

Dałoby się tak??

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

Są serwa które obracają się o 360 stopni, a nawet i więcej:P Nie wiem czy ten shield się będzie nadawać, jest to w sumie 16-kanałowy, 12-bitowy PWM sterowany przez I2C. Został stworzony z myślą o sterowaniu serwami. Ten moduł wpinasz do Arduino, i to ono nim steruje. Więc żaden problem dołączyć joystick.

Link do komentarza
Share on other sites

Sterowniki silników krokowych raczej sterujesz sygnałami Kierunek i Krok więc potrzebujesz tylko jedno wyjście impulsowe na każdy silnik. To oczywiście nie ma nic wspólnego z PWM, to raczej generacja przebiegów o ściśle kontrolowanym i regulowanym w szerokich granicach okresie. O ile jednoczesny ruch jednego, może dwóch silników krokowych daje się jeszcze w ATmegach opanować, o tyle więcej może być problematyczne. Te procesory nie mają żadnego wsparcia sprzętowego do generacji takich przebiegów. Jednie timer 1 (lub 3) ze swoim Output Compare mogą coś pomóc, ale to i tak wymaga wielu obliczeń i po prostu brakuje mocy. Do sterowania N silnikami musisz wygenerować N przebiegów o zmiennym okresie, kontrolowanych przyśpieszeniach i opóźnieniach wg zadanej rampy. To przy prędkościach rzędu 1000 kroków/s daje wiele tysięcy przerwań w których musisz liczyć (lub tablicować) długości kolejnych kroków.

Z Twoją znajomością tematu szukałbym gotowych sterowników. I to nie prostych, scalonych driverów napędzanych sygnałami Kroków i Kierunku, ale układów generujących rampy wg zadanych parametrów. Są takie i do nich się przymierz. Podłączenie wielu takich nawet do jednej ATmegi nie stanowi problemu a zadania czasochłonnej generacji sygnałów będą przeniesione niżej.

Poza tym nie wiem, czy krokowce do manipulatora do dobry pomysł. Żeby wykorzystać zalety tych silników (czyli głównie dokładność pozycjonowania) będziesz musiał zrobić bardzo duże nadmiary momentu by nigdy nic nie zgubiło ani kroku. To oznacza wielkie (a więc i niewiarygodnie ciężkie) i wciąż grzejące się silniki. A jeśli dla pewności będziesz chciał wstawić enkodery lub inne sprzężenie zwrotne od pozycji, to równie dobrze możesz dać zwykłe silniki DC. Z tego co widzę, niezmiernie rzadko - jeśli w ogóle - silniki krokowe używane są w takich aplikacjach. Moim zdaniem królują tu dobre szczotkowce lub napędy BLDC z przekładniami ślimakowymi lub planetarnymi.

Serwa modelarskie to amatorka. Kiepska powtarzalność, duże luzy. Poszukaj wśród specjalnych, programowanych typów "robotycznych", ale za jakość trzeba zapłacić. Nie ma tu dróg na skróty.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.