Skocz do zawartości

Mindstorms, silnik działający jak serwo, jak?


s_13

Pomocna odpowiedź

Jako, że to mój pierwszy post, wypada się przywitać, więc witam się 🙂

A teraz do sedna. Nie wiem jak to zrobić, aby silnik zachowywał się jak serwo (które w mindstormie nie występuje). Czyli ramię przymocowane do osi wychylało się o zadany kąt, odczytywany na bieżąco, ot choćby z czujnika światła. Silnikiem można sterować zadając mu obrót o okreslony kąt, ale to nie to. Nadmienię, że ogarniam tylko ( aż... i to z ogromnym wysilkiem) domyslny program bloczkowy do ev3, żadne tam pisanie kodu 🙂, chociaż z funkcją liniową (podobno tutaj niezbędną) już sobie daję radę 🙂). Pomóżcie "zielonemu" i "humaniście" wybrnąć z twarzą przed synem 8-mio letnim "programistą. "

Link do komentarza
Share on other sites

Zgadza się, tylko ten tryb to jest sterowanie obrotami: w zadanym czasie, w zadanej liczbie obrotów, albo o zadany kąt. Nie da się po prostu przełączyć silnika w tryb serwa, który odczytuje aktualny odchył względem ustalonej pozycji "0". Próbowałem ożenić bloczek mierzący obroty silnika (w stopniach obrotu) z bloczkiem sterowania silnikiem, wsadzając po drodze czujnik światła. Teoretyzowałem, że jak od odczytu ilości światła (0-100) odejmę aktualny odczyt miernika obrotu kątowego (po wcześniejszym zresetowaniu w pozycji "0"), i przeniesieniu wyniku na wejście sterujące obrotem kątowym silnika, otrzymam ładnie działający algorytm odchylający ramię od 0 do 100 stopni... niestety, w praktyce ramię "silnikoserwa" buja się niestabilnie w te i we wte, aż w końcu "rzuca się" w skrajną pozycję i blokuje 🙁

załączam printscrena moich prób.

Link do komentarza
Share on other sites

s_13, bujanie się niestabilnie to z mojego doświadczenia ulubione zachowanie Lego Mindstorms. Z tego co wiem obrót o kąt to najbliżej serwa jak to potrafi niestety.

Szczerze nie lubię tego zestawu. Tyle zmarnowanego potencjału.

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

No i wspólnymi siłami (ja i potomek) udało się coś tam zdziałać🙂. Nie wkleję teraz screena, ale opiszę (sorry, że zbyt łopatologicznie i niefachowymi terminami się posługuję):

Najpierw kalibruję czujnik, czyli ustawiam nad czarnym tłem i zapisuję wartość jako minimum, potem białe tło i maximum. Wychodzi, że czarne to 0, białe to 100. Tworzę zmienne "odczyt" i "ostatni_odczyt" ustawiam je wstępnie na 50, teraz w pętli: odczyt czujnika, zapis do "odczyt", odejmuję "ostatni_odczyt", wynik wychodzi do sterowania silnika, jako obrót o x stopni (wychył w stopniach od -50 do 50, jeśli nie pasi, to dodać mnożnik). Odczyt z czujnika zapisuję do "ostatni_odczyt" do użycia w następnym przebiegu pętli. Dodaję jeszcze "delay", żeby silnik zdążył się obrócić, wartość jest proporcjonalna do wielkości obrotu w aktualnej pętli, oczywiście wartość bezwzględna i mnożnik, bo to jakieś milisekundy będą. Teraz doświadczalnie dostrajam wszystko za pomocą zmiany dwóch parametrów: mocy silnika i mnożnika "delay". Wszystko chodzi w miarę płynnie, oczywiście bezwładność jakaś tam jest, i to płynna, ale dla moich potrzeb akceptowalna. Da się wyregulować, żeby nie było bujania w te i we wte i przede wszystkim nie rozregulowuje się, czyli "zero" jest zawsze w tym samym położeniu. Dziękuję i polecam się 🙂

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!

Gość
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.