Skocz do zawartości

Pomocna odpowiedź

Napisano

Halo halo,

buduje robota czterokołówego 4x4 i potrzebuję czyjeś opinii, żeby dobrać mikrokontroler (najlepiej AVR). Chcę obsłużyć 4 enkodery magnetyczne pololu - te o 12 impulsach na obrót. Na początku myślałem, żeby wziąć Atmega328P i je obsłużyć przerwaniami od portów PCINT, bo zewnętrznych INT jest za mało ( 2 ). No i pytanie, czy 4 enkodery to już za dużo jak na tą rodzinę uC, czy przez przypadek nie porywam się z motyką na słońce? Znacie jakieś Atmegi z większą liczbą przerwań zewnętrznych?? Z góry dzięki.

Wg mojej najlepsze wiedzy, najlepszą metodą na obsługę enkoderów na procesowy AVR (domyślam się, że chodzi o ATMega) jest obsługa w przerwaniach od timera.

W takim to przerwaniu można więcej niż jeden enkoder obsługiwać, wszystko zależy od szybkości sprawdzania stanów na pinach enkoderów tj. od częstotliwości przerwań od licznika.

Polecam szczególnie ten wątek:

https://forum.atnel.pl/topic18208.html

Mamy tam gotową bibliotekę do obsługę enkoderów w kilku rodzajach. Bibliotekę sam z powodzeniem stosuję w swoich projektach i jeszcze mnie nie zawiodła 🙂

Taka implementacja obsługi nie potrzebuje żadnych dodatkowych filtrów (kondensatorów i rezystorów),  jest odporna na drgania styków,.

Jeśli w grę mogą wchodzić mikrokontrolery z innych rodzin, to te od ST mają zwykle sprzętowa obsługę enkoderów, właściwe dla większości liczników i można obsługiwać co najmniej kilka enkoderów. Osobiście jeszcze tego nie stosowałem, bo wyżej zaprezentowana biblioteka jest naprawdę niezła.

 

  • Lubię! 1
(edytowany)

12 ppr to niedużo, nawet przed przekładnią. Tak z ciekawości - do czego chcesz użyć tych enkoderów?

Edytowano przez Nawyk

Fajnie byłoby porządnie do tego podejść. Jestem ciekaw czy na Atmedze bym zainplementował te regulatory. Nie chciał bym wchodzić w np. Stm'y, bo mogę nie zdążyć, żeby to ogarnąć. No chyba, że mnie ktoś przekona i powie "Hej, przecież to łatwe" 🙂

Jaką rozdzielczość byś sugerował Treker?

1 godzinę temu, DaveV13 napisał:

Jestem ciekaw czy na Atmedze bym zainplementował te regulatory.

No właśnie w tym kontekście Cię pytałem o zastosowanie. Chcesz robić regulator pozycji, czy tylko mniej-więcej wiedzieć ile przejechało dane koło (zakładając brak poślizgu)? Możesz dać link do tych konkretnych enkoderów?

Moje zastosowanie niech narazie dąży do przejechania przez robota trasy w postaci figur geometrycznych przeze mnie zadanych - pewnie łatwe do osiągnięcia, chociaż intryguje mnie ten artykuł o sterowaniu 2.0 i chyba pójdę w tą stronę. Tylko nie chciałbym ograniczyć się platformą. 

Enkoder: https://www.pololu.com/product/3081

Zakładając, że wybrałbym silnik z przekładnią 50:1 wyszło by z 600 impulsów na obrót koła. 

16 godzin temu, DaveV13 napisał:

Moje zastosowanie niech narazie dąży do przejechania przez robota trasy w postaci figur geometrycznych przeze mnie zadanych - pewnie łatwe do osiągnięcia

To jest najtrudniejsze, co się da wymyślić, szczególnie jeśli chcesz, żeby na koniec linie się spotykały dokładnie w miejscu startu.

To zbuduje sobie narazie prototyp - dwukolowy na 2 takich enkoderach, arduino i zobaczę jakie będą efekty, czy mnie zadowolą czy nie. Myślę, że na tą chwilę najlepszy pomysł, a przy okazji zbiorę trochę informacji i wyciągnę odpowiednie wnioski. Ktoś za? 🙂

A może silniki krokowe? Odpadają enkodery i słaba kontrola położenia silników DC. No i podwozie 4-kołowe do tego celu to zły pomysł. Nigdy nie wiesz jak ono zakręci, bo ostateczne położenie jego geometrycznego środka i orientacja po wykonaniu manewru będą zależały od stosunku współczynników tarcia opon. A przecież nigdy równe nie będą. Poza tym takie coś bierze zakręty z definicji na poślizgu - przemyśl to sobie. Do rysowania dobrze nadaje się podwozie 2-kołowe, bo jeśli nie zrobisz czegoś głupiego żadna z dwóch opon nie przesuwa się tu w bok ani nie musi ślizgać. Wyznaczasz położenia czasowe impulsów kroków do dwóch sterowników i masz prawie że wprost zadane krzywe na płaszczyźnie. Błędy oczywiście zawsze jakieś będą, ale tutaj nie są wbudowane w metodę a zależą jedynie od dynamiki pojazdu (algorytm łagodnej jazdy, żadnych gwałtownych przyspieszeń) i szerokości opon  a te powinny być jak najwęższe, np z gumowych oringów.

Dnia 31.08.2018 o 22:06, DaveV13 napisał:

Zakładając, że wybrałbym silnik z przekładnią 50:1 wyszło by z 600 impulsów na obrót koła. 

Silniki 50:1 pozwalają na dość szybką jazdę, będziesz wykorzystywał ich maksymalne możliwości? Im szybsza jazda tym większe poślizgi itd. Jeśli nie zależy Ci na prędkości wybierz jeszcze większe przełożenie - może nawet 150:1. Wtedy będziesz miał bardzo fajne sprzężenie zwrotne z enkoderów 🙂

  • Lubię! 1

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