Skocz do zawartości

[Mechanika] Serwa modelarskie w robotyce amatorskiej - Kompendium


Pomocna odpowiedź

Takimi cążkami:

IMG_4cefde1aba8bf7299.jpg

(cążki boczne, np. firmy xytronic - nie polecam popularnych kompletów całych za ~10zł)

Najpierw musiałem je nieco odgiąć małym śrubokrętem.

Link to post
Share on other sites

Nie martw się, tak łatwo go nie uszkodzisz. Zawsze możesz skorzystać z lutownicy (wał potencjometru można chyba lutować) czy super glue. Poza tym te serwa są tanie - <10zł.

Link to post
Share on other sites

czyli wystarczy że w kodzie zmienię port Servo1 = Portd.1 na inny? czy musi być to któryś z portów obsługujących pwm (np. dla atmegi8 porty pb1 pb2 pb3) ?

Link to post
Share on other sites

Mam pytanie odnośnie serw ale nie przerobionych, dokładnie chodzi o sterowanie tych micro. Czy jest taka możliwość aby zaprogramować w bascomie prędkość obrotu serwa?? Bo widzę że wychylenie spokojnie można sobie ustawiać ale prędkość z jaką ono się wychyla?? Jeżeli tak to jak to będzie wyglądać w bascomie??

Z góry dziękuję za odpowiedź!

Pozdrawiam!

Link to post
Share on other sites

Chester11-86, najprościej chyba zrobić pętlę for, ilość jej wykonań = kąt obrotu serwa, a w niej obracasz serwo o 1 stopień i robisz pauzę (od jej wartości będzie zależna prędkość, dla pauzy=0 prędkość kątowa = max). Pseudokod:

steruj_serwo(int kat, int predkosc)
{
int kat1 = kat
predkosc = 255 - predkosc;
for(kat; kat>0; kat--)
{
zadaj_pozycję_serwu(kat1);
czekaj(predkosc);
}
return;
}

jest to bardzo pseudokod, ale tylko tyle teraz jestem w stanie napisać, mam nadzieję, że jest toto zrozumiałe. Prędkość w zakresie 0-255 (0 też jest, pauza będzie wynosić 255, można by jeszcze dać warunek, że jeżeli prędkość == 0, to niech w ogóle nie wykonuje tego fora, tylko od razu return - oczywiście, jeśli przez prędkość = 0 rozumiemy zatrzymanie serwa (nie będzie wykonywać żadnego ruchu). No, mam nadzieję, że żadnego byka nie zrobiłem. W sumie, to można by to sprytnie porobić w przerwaniach + timer, żeby odciążyć jak najbardziej uC (bo teraz jest w trakcie zupełnej bezczynności podczas ustawiania pozycji serwa funkcją steruj_serwo(), chociaż to zależy od tego, w jaki sposób czekaj() odmierza czas, ale jeśli użyć by waitów, to jest tak jak mówię), ale teraz nie chce mi się tego kminić 😋 No i to jest chyba najprostsze rozwiązanie.

Link to post
Share on other sites

Czyli z tego co zrozumiałem to najlepiej zrobić to w timerze. Napisać prosty program o jaki kąt ma się obrócić serwo i umieścić to w timerze który będzie wykonywał to w odpowiednich odstępach czasu?

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

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.