Skocz do zawartości

Robot balansujący - odwrócone wahadło


Pomocna odpowiedź

Enkodery te miał w ofercie któryś ze sklepów reklamujących się na forum(na pewno któryś może ściągnąć)

Te silniki mam na magazynie (nie ma ich jeszcze na stronie, cena 50zł/szt).

Mam też w przygotowaniu enkodery magnetyczne - moduły są już wytestowane i działają, muszę tylko dograć kilka drobiazgów i wyprodukować większą serię. W kwietniu moduły enkoderów też będą w sklepie.

Tak na szybko:

1.Brak dużego kondensatora przy L298 od strony zasilania silników (low-esr)

2.Od strony procesora na liniach I2C nie ma rezystorów podciągających.

3. W sumie obyłoby się pewnie bez tranzystora na tych liniach, bo atmega168P rozpoznaje stan wysoki od 0,6VCC->3V, więc miałbyś 0,3V zapasu co powinno starczyć o ile nie masz długich kabli, albo innych dziwnych kombinacji.

4.AREF i AVCC nie powinny być podłączone na stałe. AREF powinien mieć tylko kondensator 100nF do GND i nic więcej.

  • 4 tygodnie później...

Hej.

Jak sprawa z projektem??

Zbudowałem prototyp czegoś takiego i utknąłem na sofcie.

Filtr kalmana to dla mnie zbyt trudna sprawa. chciałbym to jakoś prościej zrobić.

Ja mam zyro ITG3200 oraz acc do wyboru ADXL345 lub LIS3LV02, proc Mega328P

Próbowałem całkować ale po kilku ruchach całka się rozjeżdża, próbowałem nie całkowiac tylko sygnał prędkości z żyr zmiksować z sygnałem acc i bezpośrednio na regulator dać. za każdym razem porażka.

Na elce ktoś pisał ze sam segwaya zrobił i sygnał bierze z żyr a acc stosuje tylko w celu kompensacji dryftu tylko nie wiadomo jak to zrobił.

Jak mógłby ktoś coś podpowiedzieć jak się za to zabrać z właściwej strony to byłbym bardzo wdzięczny.

Pozdrawiam

Sławek

WESOŁYCH ŚWIAT

Hej.

Ten dokument już dawno widziałem.

Przeklepałem nawet do bascoma ten kod filtra kalmana.

Niby działało ale z tego co pamiętam to kąt był w miarę OK tylko prędkość jego zmian coś nie tak (nigdy do 0 nie schodziła mimo ze czujniki były nieruchome) ale w dalszym programie nie jest ona nawet chyba wykorzystywana.

Będę jeszcze kombinował.

EDIT:

No i zakombinowałem. Po zmianie parametrów FK oraz regulatora PID sterującego zwykłym silnikiem bez enkodera poprzez pwm moja platforma zaczęła stać. Może stać praktycznie w nieskończoność wykonując delikatne ruchy.

Jutro wstawię filmik.

Musze podłączyć inny akcelerator bo w tej chwili mam LIS35De za 6zł to efekty powinny być lepsze

EDIT:

Dziś nagrałem filmik.

Wyszedł kolejny problemik bo wczoraj ustawiłem jako tako parametry regulatora jak już bateria prawie pusta była a dziś po naładowani baterii zachowuje się trochę gorzej (więcej oscyluje)

Ten napęd od lego jest stary i ma straszne luzy. Myslę że jakby jego zmienić na coś bez luzów oraz dać lepszy ACC (to akurat mogę zrobić bo mam inne) toefekty byłyby znacznie lepsze.

A jakby dać enkoder i osobny regulator do prędkości kół zrobić to już miodzio by było. Będę nad tym pracował

  • Lubię! 2

Wow jestem pod wrażeniem działającej konstrukcji!

Wydaje mi się, że bez usunięcia luzów z przekładni i regulacji prędkości silnika ze sprzężeniem zwrotnym nie uda się wyeliminować oscylacji.

Mam takie pytanie, jeżeli cały kod napisany jest w bascomie masz kontrolę nad czasem trwania jednego cyklu regulacji i filtracji kalmana, ile on wynosi?

Przy takiej konstrukcji warto by było chyba zainteresować się stabilizacją napięcia dla silników - właśnie po to aby między innymi PID się nie rozwalał.

Napięcie zasilania silnika nie powinno mieć dużego wpływu na działanie układu regulacji prędkości obrotowej silnika ze sprzężeniem zwrotnym od prędkości.

EDIT:

Regulator PID czy sam PI powinien poradzić sobie ze zmianami napięcia zasilania. Zmiana napięcia zasilania może mieć duży wpływ jedynie przy maksymalnych wartościach prędkości czy momentu osiąganego przez silnik w układzie regulacji.

No ze stabilizacją obrotów powinien sie troche uniezależnić od rozładowywania baterii ale jakaś minimalna różnica może zostać bo przecież odpowiedź silnika będzie inna z innym napięciem. Owszem osiągnie obroty ale może to więcej czasu zająć.

Filtr + regulator robię w przerwaniu obecnie z częstotliwością 100Hz.

Sam kalman trwa 1,5ms bo obliczeń jest dużo, regulator to kilka linijek.

Procek M328 16MHz

Kod przepisałem z tego dokumentu konaru. nie znam się zupełnie na C. było tam float więc w bascomie dałem single i wszystkie operacje na nim wykonuje. PID również. Tylko wiadomo ze w bascomie mozna tylko jedno działanie zrobić w operacji przypisania wiec musiałem na kilak linijek nieraz rozbijać i ze 3 temp'y uzyć.

Nic nie skracałem ani nie wydłużałem bo i tak ten KF nie chciał dobrze działac z tymi parametrami które były podane w dokumencie.

Hmm, tam na pokłądzie masz arduino? To nie lepiej pisać w arduino a nie w bascomie? 😉 Przynajmniej mi język arduinowy bardziej odpowiada, chociaż strasznie denerwuje mnie niemożność korzystania z timerów inaczej niż PWM.

W arduino siedzi zwykłą atmega wiec pisze w tym w czym lubię i umię.

W bascomie skonfigurowałem programator na bootloader arduno, naciskam F4 i jest git.

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