Skocz do zawartości

Robot balansujący - odwrócone wahadło


juras5

Pomocna odpowiedź

1. Termometrem się nie interesowałem. nawet nie wiedziałem że ma.

2. Nie przerabiałem. przepisałem tylko z C od bascoma

3. zrobiłem to zupełnie bezmyślnie skalując na oko sygnał z gyro i acc. jeśli sygnału z gyro był za duzo w porównaniu do acc to filtr przestrzeliwał przy szybkich ruchach zeby potem wrócić do poziomu prawdziwego kąta, jak za mało to powolutku narastał.

Link do komentarza
Share on other sites

Ciekawa wizualizacja, w czym zrobiona, jaka komunikacja i częstotliwość pracy filtra? U mnie Kalman też działa całkiem sprawnie. 500Hz BMA180 + ITG3200:

Link do komentarza
Share on other sites

1. Zamiast L293D zastosuj TB6612, Nie będziesz miał tak dużych spadków napięcia na mostku - http://robodudes.com/drivery/60-tb6612-ssop24.html

Mam ten mostek też jako moduł z wyprowadzeniami na listwę 2,54mm w cenie 26zł/szt

2. Takie silniki można bez problemu dostać w polsce - http://robodudes.com/silniki-dc/120-metalowy-mikro-silnik-pololu-50-1.html

3. Możesz zarówno zastosować przetwornicę jak i duży stabilizator liniowy (ale w tym drugim wypadku masz spore straty zamieniane na ciepło).

4. Komunikacja I2C jest na małe odległości - generalnie używana przy przesyłaniu danych w obrębie jednej płytki. Na większe odległości nie działa zbyt stabilnie, ale można na kilka sposobów to poprawić:

a) Masz dobrze odfiltrowane zasilanie po stronie płytki z I2C? Do zwykłego kondensatora 100nF dodałbym jeszcze jakiś większy typu 10uF

b) Rezystory podciągające można trochę zmniejszyć tak do 2,2k

c) dobry kabel z ekranowaniem

d) zmniejszyć prędkość przesyłu danych

e) dodać korekcję błędów (jak komunikat nie pójdzie to wysyłasz zapytanie ponownie)

Najlepiej jednak nie stosować i2C powyżej kilkunastu cm, chociaż sam mam w projekcie I2C na kablu ok. 1m i działa, ale piękne to to nie jest i nawet kilka procent (kilkunastobajtowych) komunikatów idzie w kosmos.

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

Po co stosować enkoder?

Czy nie wystarczy wykorzystać oś poziomą akcelerometru w celu obliczenia drogi z pomierzonego przyśpieszenia?

s+= v*dt + 1/2a *dt^2;

v += a*dt;

s - suma drogi od startu programu

a - pomiar przyśpieszenia osi poziomej

dt - czas trwania pętli

Link do komentarza
Share on other sites

kosalka88, teoretycznie wystarczy, ale tylko teoretycznie. W praktyce szumy akcelerometru są na tyle duże, że po podwójnym całkowaniu, już po kilku sekundach wyznaczona pozycja kompletnie "rozjedzie" Ci się ze stanem faktycznym.

Link do komentarza
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...

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.