Radiowy sterownik serwomechanizmów

Radiowy sterownik serwomechanizmów

Serwomechanizmy mogą ustawić oś w ściśle określonym położeniu. Prezentowany układ, umożliwia wybranie jednego z trzech wcześniej ustalonych wychyleń za pomocą przełącznika. Jednak informacja o ustawieniu jest przesyłana drogą radiową, od nadajnika z przełącznikiem do odbiornika połączonego z serwem. Urządzenie można zastosować np. do zamykania, uchylania i pełnego otwierania wywietrznika.

Układ składa się z dwóch modułów: nadajnika i odbiornika. Nadajnik posiada trójpozycyjny przełącznik oraz transceiver, który wysyła informację o położeniu przełącznika. Odbiornik posiada taki sam transceiver, który odbiera sygnał, dekoduje go i seruje serwomechanizmem. Ustawienie osi serwomechanizmu ustalają potencjometry montażowe, umieszczone na płytce odbiornika. Za pomocą przełącznika wybierany jest potencjometr, który odpowiada za położenie osi serwomechanizmu w danej chwili.
Budowa i działanie
Schemat ideowy układu nadajnika pokazano na rysunku 1. Jako transceiver zastosowano gotowy moduł typu RFM12B firmy HopeRF, który pracuje w nielicencjonowanym paśmie 868 MHz. Nie posiada wbudowanej anteny, należy dołączyć zewnętrzną, np. w postaci odcinka przewodu. Dane oraz parametry pracy modułu radiowego przesyłane są interfejsem ISP.
Pracą toru radiowego zarządza niewielki i tani mikrokontroler typu Attiny24A. Źródłem zegara taktującego dla mikrokontrolera jest jego wewnętrzny oscylator RC, o nominalnej częstotliwości pracy 8 MHz (po wyłączeniu preskalera). Układ nie wykonuje żadnych zadań krytycznych czasowo, wobec czego stabilizacja tej częstotliwości przy użyciu rezonatora kwarcowego jest zbyteczna. O stanie układu sygnalizuje mała dioda LED, jej każdorazowy błysk oznacza nadanie odpowiednio zakodowanej informacji o położeniu przełącznika.
Przełącznik dźwigniowy typu MTS103 posiada trzy pozycje stabilne: dwie skrajne, kiedy styk wspólny jest zwarty z jednym ze styków skrajnych oraz trzecią, kiedy dźwignia znajduje się w środkowym położeniu i obie pary styków są rozwarte. Wykrycie przez mikrokontroler zwartej pary styków polega na sprawdzeniu stanów logicznych na liniach SW1 i SW2. Stan wysoki po rozwarciu zapewniają rezystory R4 i R5.
Wszystkie podzespoły zasilane są napięciem stałym o wartości 3,3 V, dostarczanym ze stabilizatora liniowego typu LD1117AS33TR, typu LDO. Minimalne napięcie wejściowe wynosi ok. 4,4 V (dropout wynosi około 1,1 V), co w połączeniu ze spadkiem na diodzie Schottky’ego, determinuje minimalne napięcie zasilające na poziomie 5 V. Maksymalne napięcie zostało określone przez producenta stabilizatora i wynosi 15 V.
Na płytce umieszczono złącze IDC do programowania mikrokontrolera, w którym styki są ułożone zgodnie ze standardem KANDA ISP. Programowanie odbywa się przy użyciu tych samych wyprowadzeń, co komunikacja z modułem radiowym. Aby nie dochodziło do konfliktów, trzeba zablokować interfejs SPI w module radiowym. Służy do tego rezystor R2, który podciąga wyprowadzenie NSEL do stanu wysokiego. Mikrokontroler, w czasie prawidłowej pracy, nadaje temu wyprowadzeniu stan niski, co aktywuje układ RFM12B.
Trzy wyprowadzenia mikrokontrolera nie są używane. Zostały spolaryzowane potencjałem masy za pomocą rezystorów R6…R8, aby nie gromadziły się na nich ładunki elektrostatyczne.
Odbiornik jest bardziej złożony, a jego schemat pokazuje rysunek 2. Użyty w nim moduł radiowy oraz mikrokontroler są takie same jak w nadajniku, zatem ten fragment układu jest niemal identyczny. Również stabilizator napięcia 3,3 V nie uległ zmianie. Ustalenie pozycji serwomechanizmu odbywa się za pomocą potencjometrów montażowych POT1…POT3. Pierwsze dwa zostały dołączone bezpośrednio między linię zasilającą a masę, więc potencjał ich ślizgacza może zmieniać się w pełnym zakresie. Ścieżka oporowa potencjometru POT3 została wpięta szeregowo z rezystorem R4, więc minimalny potencjał na jego ślizgaczu wynosi ok. 0,15 V. Takie rozwiązanie służy do wykrywania czy w pozycji neutralnej przełącznika zasilanie serwomechanizmu będzie wyłączone (zworka JP1 zdjęta) czy załączone, a kąt jego wychylenia zgodny z tym, który został zadany potencjometrem POT3 (zworka JP1 nałożona).
Pomiar napięć odbywa się przy użyciu wbudowanego w mikrokontroler przetwornika analogowo-cyfrowego, którego napięciem referencyjnym jest napięcie zasilające układ. Wynikiem przetwarzania napięcia z potencjometrów POT1 i POT2 jest liczba z zakresu 0…1023. W przypadku potencjometru POT3, przetwornik wskaże 0, jeżeli zworka jest zdjęta lub 46…1023 po jej zwarciu. Te wartości są przeskalowywane na czas trwania impulsu sterującego serwomechanizmem.
Zasilanie serwomechanizmu jest odcinane przy użyciu tranzystora MOSFET P typu AO4407. Został włączony w konfiguracji wspólnego źródła, a obciążenie w postaci serwomechanizmu jest podłączone od strony drenu. Dużą zaletą tego tranzystora jest niska rezystancja otwartego kanału, ponieważ nie przekracza 30 mV przy UGS=–5 V. Maksymalny prąd pobierany przez serwomechanizm zależy wyłącznie od wytrzymałości tranzystora (ok. 6,3 A – przyjmując maksymalną moc traconą na poziomie 1,2 W) oraz ścieżek na płytce. Otwarcie tranzystora jest możliwe po obniżeniu potencjału bramki poniżej potencjału źródła, co umożliwia tranzystor T2. Diody Zenera D2 i D3 chronią izolator podbramkowy tranzystora T1 przed przebiciem w wypadku przekroczenia maksymalnego napięcia bramka-źródło, a rezystor R6 ogranicza ich prąd. Rezystor R5 rozładowuje pojemność bramka-źródło po zatkaniu tranzystora T2. Kondensatory C11 i C12 obniżają impedancję wewnętrzną takiego źródła zasilania (napięcie będzie „przysiadało” w mniejszym stopniu).
Napięcie zasilające mikrokontroler wynosi 3,3 V, a serwomechanizm jest zasilany wyższym napięciem, toteż zachodzi konieczność dopasowania poziomów napięć dla wygenerowanych przez mikrokontroler impulsów. Służy do tego tranzystor T3 z rezystorem R9. Ponieważ rezystancja wyjściowa takiego układu jest wysoka, do układu został dodany wtórnik komplementarny, składający się z tranzystorów T4 i T5, który zapewnia prawidłowe wysterowanie linii sygnałowej serwomechanizmu. Za polaryzację emiterów odpowiada rezystor R10, a prąd wyjściowy został ograniczony rezystorem R11.
Montaż i uruchomienie
Układ nadajnika został zmontowany na dwustronnej płytce drukowanej o wymiarach 65×30 mm, której schemat montażowy oraz wzór ścieżek pokazuje rysunek 3. Płytka odbiornika jest większa, jej wymiary to 65×45 mm i została pokazana na rysunku 4. Otwory montażowe na obu płytkach znajdują się w odległości 3 mm od krawędzi płytki.
Przebieg montażu elementów na obu płytkach nie wymaga szczegółowego komentarza. Należy tylko pamiętać, by wlutować obu modułom anteny, chociażby w postaci kawałków cienkiego przewodu o długości 17,5 cm.
Zasilanie obu modułów może pochodzić ze źródła o napięciu stałym z przedziału 5…15 V. Jednak należy pamiętać, że napięcie zasilające odbiornik musi być dostosowane do wymagań serwomechanizmu (typowo, jest to ok. 5…6 V), ponieważ jest dołączony bezpośrednio do tego napięcia.
Po włączeniu zasilania, oba moduły (nadawczy i odbiorczy) muszą zostać zaprogramowane wsadami pamięci Flash. Należy również zmienić wartości fuse-bitów: Low Fuse=0xE2, High Fuse=0xDD. Dzięki temu, mikrokontroler będzie taktowany z wewnętrznego oscylatora RC z pominięciem preskalera, a dodatkowo, wbudowany układ Brown-Out Detector zapewni jego wyzerowanie, jeżeli napięcie zasilania spadnie poniżej 2,7 V. Szczegółowe ustawienia zostały pokazane na rysunku 5, który zawierza zrzut z okna programu BitBurner. Dla obu mikrokontrolerów wartości tych bitów są takie same.
Pobór prądu przez układ nadajnika jest stosunkowo stały i wynosi ok. 30 mA. W przypadku odbiornika, pobór prądu jest zróżnicowany: 20 mA przy wyłączonym serwomechanizmie, 30 mA po włączeniu serwomechanizmu (po ustaleniu pozycji) i wielokrotnie więcej w czasie poruszania osią – zależy od konkretnego serwomechanizmu oraz obciążenia osi. Zmontowane płytki nadajnika i odbiornika pokazują fotografie 6 i 7.
Eksploatacja
Po włączeniu zasilania nadajnika, dioda LED1 umieszczona na jego płytce powinna błyskać z częstotliwością 20 Hz, ponieważ informacje o stanie przełącznika wysyłane są do odbiornika co 50 ms. Wychylenie dźwigni w stronę rezystora R4 to „1”, w stronę R5 to „2”, a ustawienie jej na środku to „3”. Zwarcie obu styków jednocześnie również zostanie zinterpretowane jako „3”.
Odbiornik nie potwierdza w żaden sposób odebrania prawidłowych danych, dlatego są one tak często retransmitowane. Zaświecenie diody LED następuje, kiedy przez co najmniej 1,5 s nie został odebrany poprawny pakiet danych z nadajnika. Wtedy też zostaje wyłączone zasilanie serwomechanizmu.
Informacje o wychyleniu serwomechanizmu są pobierane ze wskazanego przełącznikiem potencjometru. Ustawienie potencjometru w połowie zakresu powoduje ustawienie osi w połowie dostępnego zakresu ruchu. Opis na płytce (MIN i MAX) wskazuje położenie ślizgacza potencjometru dla uzyskania minimalnej i maksymalnej długości impulsu sterującego serwem.
Wyłączenie zasilania serwomechanizmu jest możliwe również w pozycji „3” przełącznika, po zdjęciu zworki JP1. Kiedy jest ona nałożona, serwomechanizm odwzorowuje położenie ślizgacza POT3.
Dla dociekliwych
Do sterowania serwomechanizmami analogowymi konieczne jest wytworzenie ciągu impulsów o odpowiednich parametrach. Powinien to być sygnał prostokątny, którego stan niski jest zbliżony do potencjału masy, a stan wysoki do napięcia zasilającego serwomechanizm. Impulsy powinny być powtarzane cyklicznie co 20 ms (z częstotliwością 50 Hz). Na listingu 1 pokazany jest fragment kodu odpowiedzialny za wytwarzanie impulsów o takich parametrach. Licznik Timer1 jest taktowany sygnałem o częstotliwości 1 MHz, więc możliwa do uzyskania rozdzielczość czasowa wynosi 1 ms. Licznik Timer0 generuje przerwanie co 20 ms, czym zapoczątkowuje generację impulsu. o ile program w danej chwili na to pozwala. Czas trwania impulsu musi wynosić od 1 do 2 ms, więc cały ten zakres jest pokrywany przez wartość pobraną z 10-bitowego przetwornika A/D. W przypadku potencjometru POT3 zachodzi konieczność przeskalowania, co nieznacznie zmniejsza rozdzielczość regulacji wychylenia serwomechanizmu. Położenie środkowe serwomechanizmu odpowiada impulsom o czasie ok. 1,5 ms.
Wymagany zakres regulacji czasu trwania impulsu to 1 ms (czas trwania 1…2 ms), a zmienna pulse_len przyjmuje wartości 0…1023. Jednak nie ograniczano tej wartości, a zastosowano niewielki margines (po 12 ms) dla najkrótszego i najdłuższego impulsu, wobec czego impuls sterujący zmienia się w przedziale od 988 do 2012 ms.
Michał Kurzela, EP

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik październik 2020

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio październik 2020

Świat Radio

Magazyn użytkowników eteru

Automatyka Podzespoły Aplikacje październik 2020

Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna październik 2020

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Praktyczny Kurs Elektroniki 2018

Praktyczny Kurs Elektroniki

24 pasjonujące projekty elektroniczne

Elektronika dla Wszystkich wrzesień 2020

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów