[PRZYKŁAD] Sterowanie wieloma serwomechanizmami – 16-kanałowy sterownik serwomechanizmów oraz KAmduino UNO

Aby ułatwić korzystanie z modułu sterownika, można zainstalować bibliotekę przygotowaną przez producenta. Znajduje się ona pod linkiem: LINK, oraz w repozytorium bibliotek (Szkic >> Zarządzaj bibliotekami). Dokumentacja biblioteki znajduje się pod linkiem: DOKUMENTACJA.

Teraz zaprezentuję kod programu, który ma za zadanie sterowanie serwami (pełen kod znajduje się sekcji Do pobrania). Najpierw wszystkie osiągają minimalne, a następnie maksymalne wychylenie. Po tym ta sekwencja zostaje przedstawiona kolejno na każdym serwomechanizmie.

Na początku programu należy dołączyć niezbędne biblioteki, zainicjalizować ich działanie oraz zadeklarować stałe długości impulsu dla skrajnych położeń serwa.

Następnie w funkcji konfiguracyjnej należy uruchomić bibliotekę, ustawić częstotliwość sygnałów PWM, oraz ustawić serwomechanizmy w określonej skrajnej pozycji.

Aby poruszyć serwomechanizmem należy wywołać funkcję pwm.setPWM(A,B,C). Przyjmuje ona 3 parametry: pierwszy z nich (A) definiuje, na którym kanale (0-15) ma być generowany sygnał PWM, drugi (B) określa czas przejścia ze stanu niskiego na wysoki, oraz parametr (C), określa czas przejścia sygnału ze stanu wysokiego na niski. W tym przypadku będę korzystać tylko z parametru C. Aby w ten sposób ustawić ramię serwomechanizmu 1 w pozycji skrajnej minimum należy wywołać następujący kod:

Natomiast dla skrajnej maksymalnej pozycji następujący kod:

Płynne poruszanie między tymi dwoma skrajnymi położeniami zrealizowano za pomocą pętli For, która odlicza kolejne wartości od ustawienia minimalnego (SERVOMIN) do wartości maksymalnej (SERVOMAX).

W pętli głównej programu – loop(), zaimplementowano różne wariacje sterowania. Najpierw serwa osiągają skrajne położenia, po kolei (od 1 do 4 serwa). Następnie wszystkie serwa kolejno osiągają jedno skrajne położenie, a następnie drugie skrajne położenie. W ostatnim wariancie wszystkie serwa wykonują ten sam ruch jednocześnie.

Kod programu do poruszania serwami po kolei z jednej pozycji skrajnej w drugą wygląda następująco:

Następnie w pętli głównej programu umieszczony jest kod, który porusza po kolei serwa jedno po drugim:

I na końcu kod do poruszania wszystkimi serwami jednocześnie:

Działanie powyższego programu zaprezentowano na poniższym filmie:

Do pobrania

O autorze