Skocz do zawartości
Nawyk

[Mechanika] Serwa modelarskie w robotyce amatorskiej - Kompendium

Pomocna odpowiedź

Tak, na pewno optymalniej i bardziej elegancko niż na for 🙂 A w powyższym pseudokodzie znalazłem niekoniecznie poprawną rzecz teraz - najlepiej zrobić tak, że serwo będzie zawsze obracane o 1stopień (czy tam jakiś najmniejszy krok), a częstotliwość wywoływania tego (częstotliwość przerwania od timera lub wartość czekaj()) będzie warunkować prędkość obrotu. Jeszcze ilość wykonanych przerwań/powtórzeń pętli = kąt obrotu (końcowy) serwa. Robiąc w ten sposób (jak najmniejszy jednorazowy kąt obrotu serwa) będziemy mieli najwyższą rozdzielczość - im większy kąt jednorazowego obrotu, tym rozdzielczość mniejsza.

Udostępnij ten post


Link to post
Share on other sites

Dzięki wielkie za wyjaśnienie serwo już zamówione i zacznę coś z tym kombinować i dostosowywać do swoich potrzeb jak sobie nie będę radził mam nadzieję że można liczyć na Twoją pomoc 🙂

Udostępnij ten post


Link to post
Share on other sites

Zaproponowałbym tak:

- w pętli głównej programu czekamy aż upłynie 20ms od poprzedniego ustawienia timera

- ustawiamy timer na 20ms

- obliczamy aktualną pozycję. Aby określać prędkość mozemy np. trzymać zmienną kat i co te 20ms robić:

kat = kat + predkosc;

i wprowadzić ograniczenia na krańcowe wartości czy wartość docelową położenia.

- dawać sygnał do serwa

I to właściwie wszystko. W przypadku serw analogowych dość istotne jest zachowanie częstotliwości sterowania z zakresu 40-60Hz.

Tak, na pewno optymalniej

To da sie lepiej niż optymalnie? 😉

Udostępnij ten post


Link to post
Share on other sites

Zależy do czego to ma być stosowane, ale warto tak z 10..20% na początku i na końcu ruchu płynnie regulować prędkość, by zachować tak zwany "miękki start" i to samo na końcu - eliminuje się dość mocno drgania i szarpania pewnym kosztem czasu ruchu.

Udostępnij ten post


Link to post
Share on other sites

Z tymi serwami powiem Wam różnie bywa. Przykładowo miałem 2 takie same mikroserwa firmy HEXTRONIK i po przerobieniu każdego na zwykły silniczek dc z przekładnią okazało się po zamocowaniu orczyków że jedno serwo obracało orczyk wolniej (prawdopodobnie wina zębatek). W line followerach nie robi to wielkiej różnicy ale np. w waldkach światłolubach już tak 🙄

Udostępnij ten post


Link to post
Share on other sites

W lfr'ach robi różnicę. Nie można wtedy jeździć optymalnie i na max szybkości.

Udostępnij ten post


Link to post
Share on other sites

Tak ale lfr zawsze będzie się trzymał linii a o to przede wszystkim chodzi 😋

Udostępnij ten post


Link to post
Share on other sites
Tak ale lfr zawsze będzie się trzymał linii a o to przede wszystkim chodzi 😋

Tak, ale będzie co chwila z niej zjeżdżał i musiał korygować, przez co jazda będzie wolniejsza, a chyba nie o to chodzi 😉 Zresztą serwa nie nadają się zbytnio do robotów line follower przy obecnych ofertach silników. Chyba że taki stricte edukacyjny.

Udostępnij ten post


Link to post
Share on other sites

Gdyby tak podliczyć koszta takiego silniczka + przekładnia to przypuszczam że trochę więcej trzeba kasy 🙄 Za 2 mikroserwa dałem 22zł + przesyłka, a zawsze można w programie zmienić z 255 na wartość niższą, doświadczalnie dla szybszego serwa :->

Udostępnij ten post


Link to post
Share on other sites

bluehais, nie, to nie działa, nie da się łatwo tego zrobić, i to MA znaczenie w LFRach.

Zwłaszcza kiedy chce się użyć czegoś bardziej ambitnego od 3 IF'ów jest to bardzo frustrujące i nieefektywne. A to dlatego, że oprócz rożnych prędkości na maksie, mamy różne zachowanie dla różnego wypełnienia PWM, co znacząco utrudnia płynną i skuteczną jazdę po linii.

Udostępnij ten post


Link to post
Share on other sites

No tak, ale szkoda wyrzucać serwa na które czekałem 11 dni zanim przesyłka dotarła :->

Gdy załączam jeden z nich (ten wolniejszy) słychać taki "pisk" jakby coś ocierało. Rozkręciłem drugi raz i porównałem z tym szybszym - wszystko tak samo. Załączyłem i dalej to samo. Pewnie je do czegoś wykorzystam, ale następnym razem muszę pomyśleć nad silnikami 🙄

Udostępnij ten post


Link to post
Share on other sites

Próbowałeś nasmarować mechanizm? Może wytarłeś to co tam było podczas przeróbki.

Udostępnij ten post


Link to post
Share on other sites

bluehais, to mikroserwa, tak? Ja miałem taki efekt gdy za mocno skręciłem śruby. Spróbuj poluźnić lekko, odciągnij górną pokrywę (ta która osłania zębatki) i sprawdź czy dalej piszczy i jest wolniejsze. Popróbuj troche i jeśli to nic nie da to szukamy problemu dalej.

Udostępnij ten post


Link to post
Share on other sites

Smarować próbowałem, wykręciłem wszystkie śrubki tylko założyłem pokrywę ale dalej to samo. Sprawdziłem też czy ta zębatka która daje ostateczny moment obrotowy obraca się swobodnie razem z wałkiem potencjometru, wszystko ok tylko dalej ten pisk (nie jest taki głośny jak pierwszy raz, ale serwo dalej wolniejsze) . Przy pierwszym skręcaniu przed założeniem pokrywy potencjometr był dość mocno zginany przez zębatkę między silnikiem a wałkiem napędzanym. Wydaje mi się, że to wszystko siedzi za ciasno 🙄

Udostępnij ten post


Link to post
Share on other sites

A sprawdzałeś czy któraś z wcześniejszych zębatek nie wyskoczyła?

Udostępnij ten post


Link to post
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...