Skocz do zawartości

Sterowanie silnikiem


Pomocna odpowiedź

Napisano

Witam Was bardzo serdecznie. Mam kilka pytań i nt. sterowania silnikami i nadzieją się krzepie, że pomożecie mi znaleźć odpowiedzi.

1. Który silnik będzie lepszy? Pololu z przekładnią, czy przerobione serwo? Niby oczywiste, ale zastanawiam się, czy zalety zrównoważą ponad 3-krotnie większą cenę. (rozważałem też zastosowanie krokówki, ale pomysł skreśliłem, bo ponoś tracą na momencie obr. przy większych prędkościach)

2. Jak steruje się prędkością takiego silnika?

Schematy niescalonych mostków H sugerują, że steruje się takowym mostkiem przy pomocy stanów; jednakże często słyszę o modulacji PWM. Wiem, że to głupie pytanie, ale nie mogę się w tym połapać.

3. Synchronizacja. Jeżeli mamy dwa silniki, to nigdy nie będą one identyczne, więc nie będą chciały jechać prosto. Dokładamy więc enkodery.

3a. Jak łatwo (i tanio) uzyskać sygnał cyfrowy z fototranzystora?

3b. Jak programowo rozwiązać synchronizację znając ilość obrotów/impulsów, które przebył silnik. Wybrać jeden silnik jako wodzący i gonić go drugim? Słyszałem coś o "zadaniu pozycji". Jak to zrobić?

3c. W pogoni za enkoderem na śmierć skazałem mysz kulkową. Czy taki "gryzoniowy" enkoder ma on szansę działać przy tych 625 rpm?

To by było w sumie na tyle. Myślałem, że będzie tego więcej 🙂 ... chociaż dalsze pytania pewnie wynikną z odpowiedzi na powyższe.

3. Synchronizacja. Jeżeli mamy dwa silniki, to nigdy nie będą one identyczne, więc nie będą chciały jechać prosto.

Bzdura. Będzie jechać prosto lub tak nieznacznie skręcać, że to będzie nie zauważalne. Jest masa LF'ów z Pololkami bez enkoderów i świetnie sobie radzą.

3. Synchronizacja. Jeżeli mamy dwa silniki, to nigdy nie będą one identyczne, więc nie będą chciały jechać prosto.

Bzdura. Będzie jechać prosto lub tak nieznacznie skręcać, że to będzie nie zauważalne. Jest masa LF'ów z Pololkami bez enkoderów i świetnie sobie radzą.

Bzdura 😋 Linefollowery jeżdżą prosto, bo mają sprzężenie zwrotne w postaci informacji o położeniu linii. Puść sobie robota tylko ustawiając stałe i jednakowe wypełnienie na oba silniki, a zobaczysz, że będzie skręcał.

Generalnie do regulacji prędkości obrotowej silników stosuje się regulatory PID (np. w lf można wtedy zastosować kaskadę - jeden regulator oblicza prędkość dla poszczególnych silników, która jest z kolei utrzymywana przez kolejny regulator). Myślę, że coś więcej na temat "jak zrobić, żeby robot jechał prosto" będzie mógł powiedzieć kolega Grabo, który ostatnio robił robota micromouse, w którym to dość istotne zagadnienie 🙂

Myślę że trzeba było zacząć od pytania co to za robot ?

Zupełnie przypadkowo, a całkiem trafnie, został tutaj wymieniony kolega Grabo, ze swoim Devilem, bo to właśnie Jego występ na tegorocznej Arenie zainspirował mnie do stworzenia własnej myszy.

Zależałoby mi na zachowaniu zdolności jazdy (względnie) prosto gdy robot jest "ślepy", bez wykorzystywania odczytów z czujników odległości. Te ostatnie chciałbym stosować tylko do korekty odległości od ścianek (czyt. ustawienia w osi trasy).

P.S. Jak to zwykle mi się zdarza, znalazłem odpowiedź na pytanie nr. 2 na krótko po utworzeniu tematu (mimo że szukam już od tygodnia). Oczywiście jeżeli ktoś napisze coś ciekawego o PWM to się nie obrażę, ale...

A czemu nie chcesz korzystać z czujników ?

Dwa po bokach mierzyły by odległość od ścianek i ustawiały robota na środku.

Tolo, kiedy korzystałem z Sharpów, pomiary zazwyczaj oscylowały +/-1 może 2cm wokół jakiejś wartości. O ile do wykrycia czy nie wpadnie się zaraz na ścianę nie ma to znaczenia, to do pozycjonowania się w labiryncie, który ma szerokość kilkunastu centymetrów, to takie błędy są niedopuszczalne.

Być może mój sposób myślenia jest błędny, ale wydaje mi się, że lepiej będzie kontrolować przyczynę, mierząc kąt obrotu obu osi i pilnując, by był on jednakowy dla obu kół, niż reagować na skutek, mierząc odległość od ścianek i pilnując by była ona równa.

Boczne czujniki założę również, a ich zadaniem (oczywiście poza "wypatrywaniem" ścianek) będzie trzymanie się środka, zaś enkodery chcę wykorzystać do takiego wysterowania silników, by jechać prosto. Chcę móc "narysować" linię na podłodze i jechać wzdłuż niej.

To by było tyle mojego biadolenia "co chcę". Powiedzcie mi proszę, czy jest to realne do osiągnięcia, a jeśli nie, to jaki kompromis dobrać.

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