radioRelay. System sterowania bezprzewodowego

radioRelay. System sterowania bezprzewodowego
Pobierz PDF Download icon
Jak łatwo zauważyć, zdalnie sterowane, bezprzewodowe moduły przekaźników cieszą się niesłabnącą popularnością i stanowią temat wielu ciekawych projektów. W sumie nie powinno to dziwić, ponieważ urządzenia tego typu iejednokrotnie znacznie ułatwiają codzienną egzystencję lub zwyczajnie udostępniają nam nowe możliwości. Rekomendacje: moduł przyda się do wykonania zdalnego sterowania np. w inteligentnym budynku.

Rysunek 1. Schemat ideowy pilota systemu radioRelay

Projekty jak i urządzenia, z którymi się spotkałem "wertując" dziesiątki stron o tematyce elektronicznej nie wymagały do pracy nieprzerwanego dostępu do mediów, o które nie wszędzie łatwo (np. Internet lub zasięg sieci komórkowej). Biorąc to wszystko pod uwagę, postanowiłem zaprojektować i zbudować własne urządzenie o podobnej funkcjonalności, lecz pozbawione wad czy też wymagań, o których ogólnikowo wspomniałem. Główne założenia projektowe, które przyświecały mi w trakcie wspomnianych prac były następujące:

  • system ten ma zapewniać bezprzewodową, dwukierunkową transmisję danych na odległość (w terenie otwartym) do ok. 100 m,
  • urządzenie sterujące (pilot) musi mieć niewielkie wymiary oraz długi czas pracy na zasilaniu bateryjnym,
  • urządzenie sterujące (pilot) musi dostarczać informacji zwrotnej o wykonaniu lub odrzuceniu rozkazu sterującego (włączenia czy też wyłączenia przekaźnika),
  • system ma być prosty i tani w budowie.

Tak oto powstał system radioRelay. Składa się on z Mastera (pilota jako urządzenie sterujące) i modułu Slave (moduł z przekaźnikami jako urządzenie wykonawcze).

Nadajnik - Master

Rysunek 2. Kompletny algorytm programu obsługi pilota układu radioRelay

Schemat pilota sterującego, którego schemat pokazano na rysunku 1. Jest nieskomplikowany system mikroprocesorowy, którego sercem jest niewielki mikrokontroler ATtiny2313. Odpowiada on za obsługę prostej klawiatury złożonej z 8 przycisków oraz transmisję (kodowanie/dekodowanie) danych. W torze radiowym pracuje transceiver RTX-MID-3V produkcji firmy Aurel.

Wybór tego konkretnego układu transceivera nie był przypadkowy. Po pierwsze, moduł ten nie wymaga konfigurowania i innych czynności, poza obsługą wyprowadzeń sterujących. Moduł może również pracować (podobnie jak mikrokontroler sterujący) w specjalnym trybie PowerDown charakteryzującym się bardzo małym poborem prądu rzędu 8 mA, co jest ważne dla urządzenia zasilanego bateryjnie. Nie bez znaczenia są również niewielkie wymiary wspomnianego moduły radiowego.

Na schemacie naszego pilota uważny Czytelnik zauważy zapewne nietypową konfi gurację, jeśli chodzi o sposób włączenia przycisków, ponieważ, ich wspólne wyprowadzenia nie zostały (jak to zwykle bywa) dołączone do masy, tylko do wyprowadzenia INT0 mikrokontrolera sterującego. Dziwne? Otóż, nie! Wykorzystano tutaj możliwość pracy tegoż układu w trybie PowerDown, czyli w trybie o bardzo niskim (nawet sporo mniejszym, aniżeli transceiver) poborze mocy, z którego to możemy go wyprowadzić mikrokontroler właśnie dzięki wystąpieniu przerwania zewnętrznego INT0, zainicjowanego wciśnięciem któregokolwiek przycisku sterującego.

Rysunek 3. Ramka transmisji nadajnika

Zatem po uruchomieniu, program obsługi urządzenia ustawia port przycisków PORTB jako port wyjściowy oraz zeruje jego wyjścia, zaś pin INT0 jako pin wejściowy z podciąganiem do napięcia zasilania. Następnie konfiguruje kilku innych bloków peryferyjnych i wprowadza mikrokontroler oraz moduł transceivera w tryb obniżonego ponoru energii.

Od tej chwili każde naciśnięcie dowolnego przycisku powoduje wybudzenie procesora i realizację programu obsługi przerwania INT0, które jest odpowiedzialne za odczytanie stanu klawiszy, załączenie transceivera, wysłanie rozkazu sterującego, odbiór odpowiedzi z modułu przekaźników (jak i stosowną sygnalizację za pomocą dwubarwnej diody LED) i ponowne uśpienie transceivera oraz mikrokontrolera. Prawda, że proste?

Listing 1. Treść procedury odpowiedzialnej za wysłanie kompletnej ramki transmisji.

Tylko jak możliwe jest odczytanie stanu klawiszy, skoro PORTB ustawiony był jako wyjściowy (by wciśnięcie jakiegokolwiek przycisku spowodowało wybudzenie procesora dzięki przerwaniu INT0)? To także proste! Tuż po wejściu do procedury obsługi przerwania INT0, PORTB zostaje skonfigurowany jako port wejściowy z podciąganiem do napięcia zasilania a pin INT0 jako pin wyjściowy z aktywnym stanem 0, dzięki czemu odczyt rejestru PINB daje nam odpowiedź na pytanie o numer wciśniętego klawisza.

Po wykonaniu, odpowiednich czynności i przed wyjściem z procedury obsługi przerwania INT0 zostaje przywrócona domyślna konfiguracja portu PORTB i pinu INT0 w celu umożliwienia dalszej pracy urządzenia. Z resztą najlepszą ilustracją funkcjonalności układu pilota niech będzie kompletny algorytm programu obsługi przedstawiony na rysunku 2.

Pozostaje pytanie, jak zabezpieczyć cały system przed potencjalną możliwością realizacji niezamierzonych rozkazów sterujących? To z pozoru trudne zadanie można zrealizować angażując do tego minimum środków, czyli mocy obliczeniowych mikrokontrolera mając na uwadze, iż nie wymagamy tu rozwiązań technologicznych klasy sprzętu wojskowego czy też medycznego.

Z pomocą przychodzi nam prosty standard kodowania transmisji danych stosowany powszechnie w pilotach podczerwieni tzw. Manchester oraz odpowiednia konstrukcja samej ramki danych zapewniająca eliminację błędów. Przypomnę krótko podstawowe informacje na temat kodowania typu Manchester. Otóż, kodowanie tego typu zakłada, iż każdy bit transmitowanej ramki danych transmitowany jest w postaci dwóch stanów logicznych, tzw. półbitów, a w środku czasu przeznaczonego na jego przesłanie następuje zmiana tychże stanów.

Listing 2. Treść procedury odpowiedzialnej za komunikację Master<->Slave.

I tak, wysoki poziom logiczny przesyłanego bitu danych kodowany jest poprzez przesłanie półbitu logicznej 1 a następnie logicznego 0, natomiast niski poziom logiczny jest kodowany poprzez przesłanie "półbitu" logicznego 0, a następnie logicznej 1. W przypadku naszego urządzenia przyjmiemy, iż długość trwania półbitu wynosi 200 ms, co daje prędkość transmisji równą 2500 b/s, więc z powodzeniem mieszczącą się w zakresie możliwości układu transceivera. Dodatkowo, przyjmujemy pewne założenia dotyczące konstrukcji ramki transmisji mające na celu eliminację błędnych danych. Pełną ramkę transmisji pokazano na rysunku 3.

Każda taka ramka składa się z:

  • 4 bitów synchronizacyjnych (0b0000), które są odrzucane przez procedurę dekodującą po stronie odbiornika i służą wyłącznie dopasowania się układu ARW odbiornika do parametrów odbieranego sygnału, zanim nadajnik sygnału wyemituje użyteczną informację,
  • krótkiej przerwy (3 razy 200 ms) w czasie której jest wysyłana nośna sygnału informująca procedurę dekodującą o nadchodzącym początku ramki transmisji,
  • nagłówka (0b1100), który służy przede wszystkim kontroli poprawności emitowanych danych, jak również podtrzymaniu optymalnych ustawień układu ARW odbiornika,
  • predefiniowanego rozkazu sterującego typu włącz/wyłącz przekaźnik (4 bity),
  • danych związanych z numerem przekaźnika podlegającego zmianie stanu,
  • zanegowanych danych jak wyżej (dla kontroli poprawności ramki transmisji).

Treść procedury odpowiedzialnej za wysłanie kompletnej, 24-bitowej ramki transmisji (plus bity synchro) przedstawiono na listingu 1.

Jak wspomniano wcześniej i co pokazano na algorytmie obsługi pilota systemu radioRelay, transmisji każdej ramki przeprowadzanej przez układ nadrzędny (pilota) towarzyszy natychmiastowa odpowiedź karty przekaźników, która to zawiera dane oczekiwane przez jednostkę sterującą (potwierdzenie wykonania rozkazu sterującego) jak i służy kontroli poprawności transmisji.

Rysunek 4. Schemat ideowy bezprzewodowej karty przekaźników systemu radioRelay

Przyjęto, iż przy braku odpowiedzi ze strony karty przekaźników lub w przypadku błędów transmisji, układ nadrzędny, czyli pilot sterujący ponawiał będzie wysyłanie rozkazu sterującego 15 razy. Na listingu 2 przed stawiono treść procedury odpowiedzialnej za utworzenie gotowej do przesłania ramki danych, jej przesłanie, odbiór odpowiedzi i kontrolę poprawności transmisji czyli procedury odpowiedzialnej za komunikację Master <-> Slave.

Z powyższych informacji wynika, iż przyjęte rozwiązanie programowe jest dość proste a jednocześnie, co potwierdzono w praktyce, pomimo dość dużej liczby zakłóceń w paśmie 433 MHz, zapewnia doskonałą stopę błędów oraz zmniejsza wymagania sprzętowe i programowe po stronie obu uczestników transmisji. Co prawda można by było zaprzęgnąć do pracy bardziej wyrafinowane algorytmy kontroli poprawności transmisji z mechanizmami CRC8 czy CRC16 włącznie, ale moim zdaniem, byłoby to rozwiązanie przewymiarowane i w żaden sposób nieuzasadnione.

Na koniec opisu urządzenia nadrzędnego (pilota) dodam, iż poprawnemu wykonaniu rozkazu sterującego towarzyszy krótkie mignięcie zielonej diody LED zaś błędom transmisji towarzyszy odpowiednie krótkie mignięcie czerwonej diody LED. W ten prosty sposób zapewniono realizację założenia projektowego mówiącego o konieczności posiadania informacji zwrotnej o wykonaniu lub odrzuceniu rozkazu sterującego, czyli de facto o stanie przekaźników bezprzewodowej karty wykonawczej. Dodać należy, iż krótkie przyciśnięcie każdego z przycisków powoduje wysłanie rozkazu na wyłączenie odpowiedniego przekaźnika zaś długie przyciśnięcie (ok. 500 ms) powoduje wysłanie rozkazu załączającego odpowiedni przekaźnik.

Odbiornik - moduł z przekaźnikami

Rysunek 5. Schemat montażowy pilota systemu radioRelay

Przejdźmy, zatem do schematu urządzenia wykonawczego, jakim jest bezprzewodowy moduł przekaźników pokazany na rysunku 4. Tym razem do czynienia mamy z nieco bardziej rozbudowanym systemem mikroprocesorowym, choć stopień jego komplikacji wynika wyłącznie z niezbędnej liczby elementów potrzebnej do sterowania 8 przekaźnikami mocy.

Jak poprzednio, sercem urządzenia jest mikrokontroler ATtiny2313 odpowiedzialny wyłącznie za obsługę wbudowanego transceivera, domyślnie pracującego w trybie odbiornika oraz sterowanie (za pomocą układu ULN2803) pracą wspomnianego zespołu 8 przekaźników wykonawczych. Zasada działania tego układu jest bardzo prosta: moduł ten pracujący domyślnie w trybie odbiornika oczekuje na ważną dla niego ramkę danych sterujących (zawierającą odpowiedni rozkaz jak i cechującą się odpowiednią budową) przesyłaną przez moduł sterujący (pilot).

Po otrzymaniu takiej ramki danych, program obsługi urządzenia przełącza transceiver w tryb nadajnika, następnie odsyła natychmiast potwierdzenie wykonania rozkazu sterującego służące jednocześnie kontroli poprawności transmisji, po czym przechodzi ponownie w tryb odbiornika. Tym razem, nie korzystamy z trybów obniżonego poboru mocy zarówno po stronie modułu transceivera jak i po stronie mikrokontrolera zwłaszcza, iż w projekcie urządzenia przewidziano zbudowanie kompletnego układu zasilanego napięciem sieciowym 230 VAC.

To zadanie byłoby trudne do realizacji, gdyż jak już wspomniano wcześniej, transceiver karty przekaźników pracuje domyślnie w trybie odbiornika nasłuchując czy nie są przesyłane dane. Na koniec, wspomnę tylko, iż równolegle do cewek przekaźników mocy dołączono diody LED sygnalizujące stan pracy wspomnianych elementów mocy.

Wykaz elementów

Moduł przekaźników:

Rezystory (1/8W):
R1: 22 kΩ
R2...R9: 1,5 kΩ

Kondensatory:
C1, C3, C5, C6: 100 nF (ceramiczny)
C2, C4: 100 µF/16 V (elektrolit., niski profil)

Półprzewodniki:
U1: 7805
U2: ATtiny2313 (obudowa DIL20)
U3: ULN2803 (obudowa DIL18)
B1: mostek prostowniczy 1A
CHN1...CHN8: dioda LED 3 mm (czerwona)

Inne:
TSC – transceiver Aurel RTX-MID-5V
AC: złącze śrubowe ARK500/2
OUT1, OUT2: złącze śrubowe ARK500/8
K1...K8: przekaźnik JZC-49F/12
TR1: transformator TEZ2.5/D/9V
L1: dławik 10 µH
ANTENNA: opis w tekście

Pilot zdalnego sterowania:

Rezystory: (SMD1206)
R1: 22 kΩ
R2: 750 Ω

Kondensatory: (SMD1206):
C1, C2: 100 nF

Półprzewodniki:
U1: ATtiny2313 (SO-20)
ACK: dioda LED 3 mm, czerwono-zielona ze wspólną katodą

Inne:
TSC: transceiver Aurel RTX-MID-3V
S1...S8: przycisk DTSM31
BATT: metalowy koszyk na baterie CR2450
typu KEYS3009 (Keystone)
ANTENNA: opis w tekście

Montaż

Rysunek 6. Schemat montażowy bezprzewodowej karty przekaźników systemu radioRelay

Schemat montażowy pilota zdalnego sterowania systemu radioRelay pokazano na na rysunku 5. Jego montaż rozpoczynamy od przylutowania mikrokontrolera. Do jego zamontowania wystarczy zwykła stacja lutownicza. Następnie lutujemy pozostałe elementy SMD (mając na uwadze odpowiednią stronę montażu), a na końcu przyciski, moduł transceivera, gniazdo baterii CR2450 oraz dwubarwną diodę LED. Jako anteny można użyć zwykłego kawałka drutu miedzianego o przekroju 0,5 mm² i długości około 17,2 cm.

Co ciekawe, testy praktyczne pokazały, że czasami zastosowanie zwykłego kawałka drutu daje lepszy efekt, niż użycie anten SMD (oczywiście zależy to w dużym stopniu od projektu samej płytki drukowanej). Długość takiej anteny można zmniejszyć do około 8,3 cm poprzez uformowanie cewki powietrznej położonej u podstawy anteny. Należy jednak pamiętać, iż anteny nadajnika i odbiornika powinny być tego samego rodzaju oraz znajdować się w położeniu prostopadłym do powierzchni masy poszczególnych płytek drukowanych (w przypadku anten wykonanych z kawałka drutu). Ich wzajemne położenie wpływa zdecydowanie na zasięg kompletu urządzeń.

Na rysunku 6 pokazano schemat montażowy modułu wykonawczego, tj. modułu z przekaźnikami. Tym razem do czynienia mamy z jednowarstwową płytką drukowaną o dość prostej strukturze przeznaczoną wyłącznie do montażu przewlekanego. Montaż ten rozpoczynamy od wlutowania wszystkich zworek (uwaga: jedna z nich znajduje się pod mikrokontrolerem). Następnie, lutujemy elementy bierne, złącza, półprzewodniki (mikrokontroler najlepiej włożyć w podstawkę), a na końcu transformator zasilający, przekaźniki oraz moduł transceivera.

Należy także zwrócić szczególną uwagę na konieczność pocynowania grubą warstwą cyny ścieżek przewodzących duże prądy tj. ścieżek pomiędzy złączami śrubowymi OUT1...OUT2 a przekaźnikami K1...K8 (dla tych ścieżek nie stosowano solder-maski). Antenę wykonujemy według tych samych zasad jak dla modułu pilota sterującego. Poprawnie zmontowany układ powinien działać tuż po podłączeniu zasilania.

Uwaga! Na płytce karty przekaźników zamontowano kompletny zasilacz sieciowy, łącznie z transformatorem zasilanym napięciem sieciowym 230 VAC oraz zamontowano elementy będące na potencjale tegoż napięcia. Istnieje niebezpieczeństwo porażenia elektrycznego, które stanowi zagrożenie dla życia i zdrowia użytkowników. W związku z tym, montaż układu w tym zakresie powierzyć należy osobie posiadającej uprawnienia elektryczne w zakresie eksploatacji urządzeń o napięciu do 1 kV oraz niezbędną wiedzę i doświadczenie.

Robert Wołgajew, EP

Dodatkowe materiały znajdziesz na FTP
user: 32858, pass: 4285avne

Artykuł ukazał się w
Elektronika Praktyczna
luty 2013
DO POBRANIA
Pobierz PDF Download icon
Materiały dodatkowe

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik kwiecień 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio marzec - kwiecień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje marzec 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna kwiecień 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich kwiecień 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów