Skocz do zawartości

Problem z sterowaniem silnikami


Ksawery

Pomocna odpowiedź

No właśnie taki był sens moich pytań: czy "prostość" tej linii ma być niezależna od wszystkiego i jest warunkiem koniecznym działania robota (np. będzie coś rysował na wielkiej podłodze) czy raczej będzie wynikiem działania czujników np. ścian czy przeszkód?

Spróbuj opisać zadanie jakie ma Twoja konstrukcja spełniać a nie tylko wycinek pomysłu - chyba, że nie chcesz lub nie możesz. Wtedy dajesz nam szansę wspólnego poszukiwania rozwiązań, bo każdy jest dobry w czymś innym i często myśli "w poprzek" 🙂 Być może wcale nie trzeba sztucznie utrzymywać linii idealnie prostej jeżeli czujniki np. ścian czy przeszkód i odpowiednie algorytmy wystarczą do utrzymywania się "na kursie". Jeżeli natomiast kształt toru jest bardzo ważny z samej zasady, będziemy o tym myśleć właśnie w ten sposób. Rozumiesz? Pomóż nam zrozumieć a my pomożemy Tobie.

EDIT: Dopiero gdy już wiadomo jakie są cele, można myśleć o sposobach ich osiągnięcia: o czujnikach, napędach, algorytmach sterowania itp. Do wykrywania małych odchyleń od prostej trasy inklinometr lub jednoosiowy żyroskop wydaje się OK ale w warunkach rzeczywistych i tym konkretnym robocie być może jego sygnał utonie w szumach i drganiach podwozia. Jeśli Twoja maszynka będzie skręcała np. 0.5 stopnia/sekundę to bezbłędne wykrycie tego będzie trudne a odchylenie na końcu "linii" - być może już niedopuszczalne. Wszystko zależy od warunków pomiaru, szybkości no i Twoich założeń. Napisz czego oczekujesz - w liczbach.

Przy pomiarach liczby/kąta obrotów kół śliskie podłoże jest w stanie "wykosić" i tę metodę. Może więc magnetometr? Jego błędy nie nawarstwiają się w czasie - tak jak np. żyroskopu, więc w pewnych zastosowaniach może się sprawdzić. GPS też może być dobrym czujnikiem pod warunkiem, że robot ma np. do pokonania 2km. Wtedy twoja "linia" będzie również całkiem prosta - z lotu ptaka. Optyczne lub akustyczne czujniki położenia także mogą wyprostować tor pod warunkiem, że znasz kształt widzianych przedmiotów i wiesz dokąd jechać. Jest wiele metod ale każda ma swoje wady i zalety. Im więcej tu napiszesz, tym coś bardziej optymalnego wymyślimy.

Link do komentarza
Share on other sites

Głównym celem robota będzie omijanie przeszkód, ale także będzie mi służyć do testowania równych algorytmów np. jako micromouse czy minisumo. Nie zależy mi na dużej precyzji, robot będzie skręcać minimalnie o 45°. Jeśli chodzi o jazdę po linii to też nie musi perfekcyjnie trzymać się prostej, ale nie może też schodzić pod kątem powiedzmy 15°.

Z wymienionych powyżej wariantów najbardziej odpowiadałby mi jakiś czujnik niż bawienie się zakładaniem tarcz na silniki lub magnesu. Zastanawiam się tylko jak będzie trzeba obrabiać otrzymane wyniki.

Link do komentarza
Share on other sites

po Twoim opisie wziąłbym jednak transoptor jakiś i zamontował tarczę na kole. Najrozsądniejsza opcja, zarówno ze względu na koszt jak i prostotę rozwiązania.

Link do komentarza
Share on other sites

Jeśli ma to być platforma testowa i sam jeszcze nie wiesz co będziesz z nią robić, to przejrzyj Forum, poczytaj o konstrukcjach już istniejących (Nasze sukcesy), wypisz sobie wszystkie rozwiązania czujników jakie Ci się spodobają i.. wbuduj je. Skoro rozpiętość będzie od sumo do myszy (a być może LF i jeszcze coś), to jak się zapewne domyślasz nie ma jednego idealnego rozwiązania. Koledzy na Forum mają o niebo większe doświadczenie ode mnie i napisali o robotach już chyba wszystko 🙂 a ponieważ problem jest bardzo ogólny, to i odpowiedzi nie mogą być zbyt szczegółowe. Problem możesz mieć z wyborem napędu bo tutaj wóz albo przewóz. Użyjesz krokowych - nie musisz liczyć enkoderów ale sterowanie (chyba) trudniejsze żeby zachować duże momenty do dużych prędkości. Wstawisz silniki DC - musisz zrobić sprzężenie zwrotne od osi lub od otoczenia - ale to ostatnie zadziała tylko w bardzo szczególnych przypadkach. Chcesz jeździć szybko, z utratą przyczepności - akcelerometr+żyroskop. Pomału i po przygotowanym/płaskim podłożu - pomyśl o optycznym czujniku przesunięcia - jak w myszy itd, itd.. Ech, temat rzeka..

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

Zastosowanie transoptora i tarczy w tym przypadku nie będzie aż takim tanim rozwiązaniem, bo będę musiał kupić silniki z wydłużoną osią. Kolejnym problemem będzie dorwanie takich tarcz i zamontowanie ich – nie chciałbym przyklejać ich ani stosować podobnych metod gdyż mam niemiłe doświadczenie. Interesuje mnie bardziej zastosowanie akcelerometru bądź żyroskopu, ponieważ w kolejnych konstrukcjach i tak będzie to przydatne. Najlepiej gdyby ktoś napisał, co byłoby potrzebne i jak mniej więcej by się to odbywało.

Link do komentarza
Share on other sites

Najlepiej gdyby ktoś napisał, co byłoby potrzebne i jak mniej więcej by się to odbywało.

😃😃😃

Przepraszam, nie mogłem się powstrzymać.

Potrzebne Ci będzie dużo czasu na czytanie i przeglądanie forum takich jak to, ustalenie szczegółowych założeń, pogłówkowanie "jak mniej więcej to by się odbywało", narysowanie schematu, zrobienie projektu mechaniki i płytki drukowanej, zbudowanie samego robota, napisanie opogramowania, trochę gotówki na sam akcelerometr/żyroskop + 5 minut na jego podłączenie, a potem to już tylko uruchamianie, testowanie i.. być może kilka nawrotów do etapu główkowania.

Czy rozumiesz co to jest akcelerometr? A co to jest inklinometr lub żyroskop? Jeżeli tak, to jaki masz problem w wymyśleniu sposobu wykorzystania danych z tych czujników do określania położenia i orientacji robota? Stąd już prosta droga do określenia algorytmu sterowania silnikami w założonym systemie napędu. O co chodzi?

Link do komentarza
Share on other sites

Z powyższych wypowiedzi nie jest do końca jasne czy będzie trzeba zastosować sam akcelerometr czy z żyroskopem. Sam robot jest właściwie skończony jedyny problem to sterowanie bez jakichkolwiek czujników. Z takimi czujnikami, jakie kolega wyżej wymienił nie miałem nigdy do czynienia, a co więcej w dalszym ciągu waham się jak rozwiązać ten problem, dlatego prosiłem o krótkie wyjaśnienie. Pomyślałem także o silnikach krokowych czy może ktoś z was mógłby mi polecić jakieś modele wymiarowo podobne do HP 30:1. Robot nie musi być szybki jednak nie może być zbyt wolny.

Link do komentarza
Share on other sites

Zapytam się tutaj, bo nie mogę znaleźć informacji.

Akcelerometr pozwala obliczyć przemieszczenie liniowe,

Czytałem że akcelerometr mierzy przyspieszenie liniowe. W jakich jednostkach wychodzą dane z akcelerometru (m/s^2?) Żeby otrzymać przemieszczenie to co z tym trzeba zrobić? (całkować?)

żyroskop zmianę orientacji.

Czytałem że prędkość kątową. I znowu: w jakich jednostkach wychodzą dane (rad/s?) Żeby otrzymać zmianę orientacji to trzeba całkować czy co z tym zrobić?

Proszę o rozwianie moich wątpliwości 😐

Link do komentarza
Share on other sites

bartek1333, wszystko zależy od konkretnego modelu, zazwyczaj w nocie katalogowej masz podaną wartość przypadająca na zmianę napięcia wyjściowego o 1mV (w przypadku czujników z wyjściem analogowym).

Żeby z przyspieszenia otrzymać przemieszczenie trzeba podwójnie całkować, ponieważ prędkość jest pochodną położenia w czasie, a przyspieszenie pochodną prędkości. Tak samo żeby z żyroskopu otrzymać informację o obrocie należy wykonać całkowanie.

  • Lubię! 1
Link do komentarza
Share on other sites

grabo, dzięki 😉

Jeszcze mam taką sprawę: żeby zrobić całkę potrzeba chyba (?) wzoru funkcji; więc skąd ten wzór wziąć, jak go wyliczyć?

I jak np. przyspieszenie wychodzi mi liniowe, to wtedy żeby otrzymać prędkość to mogę policzyć tylko pole pod wykresem (trójkąt jeżeli narastało od zera). Bo wtedy wychodzi: a*t = m/s^2 * s = m/s = v

Dobrze kombinuje czy coś źle? 😉

Link do komentarza
Share on other sites

bartek1333, dokładnie tak się to realizuje w praktyce 🙂 Jest kilka metod całkowania numerycznego, a to najprostsza z nich (metoda prostokątów).

  • Lubię! 1
Link do komentarza
Share on other sites

Ok, jeszcze raz dzięki 😉

Czyli jak a jest liniowe i zaczyna się od zera, to s liczę: s = a * t^2 / 2

Tylko jak poznać że f(a) jest liniowa?

Czy po prostu "olać to" i liczyć bardzo często, potem uśredniać wynik, żeby wyglądało to jak liniowa?

W sumie to fajnie że tak prosto się liczy, bo mogę bez krępowania powiedzieć że scałkowałem funkcje w I liceum 😋

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.