W poniższym artykule opisano, jak wykorzystać generyczny moduł RF bez konieczności implementowania mikrokontrolera. Całość wykorzystana jest do przeróbki pilota na podczerwień do układu kontrolującego dowolny system drogą radiową. Podstawową zaletą wykorzystania sterowania radiowego jest to, że korzystając z takiego pilota nie musimy celować nim bezpośrednio w odbiornik. Dodatkowo, zazwyczaj fale radiowe mają większy zasięg niż podczerwień, więc nie będziemy mieli problemu z wykorzystaniem pilota z rogu pokoju.
Krok 1: Wstęp - wideo
Na powyższym filmie pokazano i wyjaśniono wszystkie kroki, które są opisane poniżej. Przejdźmy zatem do kompletowania elementów układu.
Krok 2: Lista elementów
Poniżej znajdziemy listę elementów, jakie wykorzystane są w projekcie, wraz z linkami do sklepu Amazona, gdzie możemy je nabyć.
* Moduł RF - https://amzn.to/2EOiMmm
* Arduino - http://amzn.to/2FAOfxM
* Układy scalone enkodera - https://amzn.to/2HpNsQd i dekodera - https://amzn.to/2HpNsQd
* Odbiornik podczerwieni i dioda IR - https://amzn.to/2H0Bdu6
Krok 3: Enkoder i dekoder
Aby zbudować układ bez mikrokontrolera, potrzebować będziemy dwóch układów scalonych - enkodera i dekodera. To podstawowe układy logiczne, więc są szeroko dostępne i zrozumienie ich działania jest dosyć proste.
Enkoder ma więcej wejść niż wyjść. Jeśli spojrzymy na tabelę logiczną tego układu, to widzimy, że dla różnych załączonych pinów (w stanie "1") na wejściu otrzymamy różną kombinację na wyjściu. Zasadniczo układ ten realizuje konwersję z 2^n wejść na n wyjść, gdzie n to liczba bitów. Dekoder jest odwrotnością enkodera i realizuje konwersję z n na 2^n.
Jeśli interesuje Was, co się stanie, gdy na wejściu załączonych będzie więcej niż jeden pin, to zachęcam do zajrzenia do kart katalogowych tych układów. W poniższym projekcie nie będziemy z tego korzystać. Układy z których korzystamy do HT12E (enkoder) i HT12D (dekoder). Przyjrzyjmy się wyprowadzeniom układów:
Dla HT12E piny 12, 11, 12 i 13 to wejścia danych, a pin 17 jest pinem wyjściowym, który będziemy modulować. Piny 16 i 17 połączone są z wewnętrznym oscylatorem RC, do którego podłączamy opornik o rezystancji od 500 kΩ do 1 MΩ - autor projektu wykorzystał 680 kΩ. Opornik ten stanie się częścią układu RC. Pin 14 to załączanie nadawania, aktywny jest w stanie niskim - układ transmitować będzie dane tylko, gdy pin ten będzie w stanie zero. Piny 18 i 9 to, odpowiednio, zasilanie i masa. Pozostałe piny omówimy za chwilę.
Analogicznie dla dekodera HT12D - piny 18 i 9 to zasilanie i 15 i 16 to wewnętrzny oscylator (tutaj podłączamy opornik 33 kΩ). Pin 17 tego układu to potwierdzenie odebrania transmisji - przechodzi w stan wysoki, po odebraniu poprawnych danych. Wejście zmodulowanych danych znajduje się na pinie 15 a zdekodowane dane równolegle na pinach 10, 11, 12 oraz 13. Układ ten także ma kilka dodatkowych pinów, które widzimy w enkoderze. Są one ważne dla bezpieczeństwa naszej transmisji - ustalają adres obu układów.
Adresy dekodera i enkodera muszą być takie same, inaczej układy nie będą się ze sobą komunikowały. Dla uproszczenia podłączmy wszystkie piny adresowe do masy w obu układach, ale zasadniczo nic nie stoi na przeszkodzie, by ustawić dowolną inną kombinację lub podłączyć tutaj DIP-switch (taki jak pokazano na zdjęciu powyżej) i konfigurować w dowolny sposób nasz system.
Krok 4: Prototypowanie
Okej - tyle teoria, teraz czas przejść do praktyki.
Potrzebne nam będą dwie płytki stykowe, do wykonania dwóch układów. Łączymy układy tak, jak pokazano na schematach obok. Na razie moduł Arduino zastąpić możemy diodami LED, a zamiast przełączników wykorzystać możemy zwykłe przyciski z opornikami ściągającymi (ok 10 kΩ) je do masy. Oba układy wymagają zasilenia, najlepiej zasilić je dwoma osobnymi zasilaczami.
W momencie, gdy podłączymy oba moduły do zasilania widzimy, że dioda podłączona do wyjścia VT zapali się, co oznacza, że układ odbiorczy poprawnie odebrał dane i nawiązał komunikację z nadajnikiem. W momencie, w którym naciśniemy dowolny przycisk po stronie nadajnika, to zapali się odpowiadająca mu dioda po stronie odbiornika i dodatkowo dioda VT mrugnie, informując o poprawnie odebranej transmisji. Wyjście informujące o poprawności transmisji będzie nam później bardzo pomocne.
Debugowanie układu nie jest trudne. Jeśli układ przedstawiony tutaj nie działa, to zacznijmy od sprawdzenia wszystkich połączeń. Jeśli nie to było przyczyną, to możemy bezpośrednio połączyć ze sobą enkoder i dekoder z pominięciem modułów radiowych, aby upewnić się, że przynajmniej te moduły działają poprawnie.
Jeśli zmienimy adresy na różne w układach, to transmisja przestanie działać. Oba adresy muszą być takie same, aby transmisja działała poprawnie.
Krok 5: Podczerwień
Pomówmy teraz o komunikacji z wykorzystaniem podczerwieni. Każdy pilot tego rodzaju posiada na froncie diodę podczerwoną, która zapala się gdy naciskamy przycisk. Nie widać tego gołym okiem, ale można dojrzeć to światło z pomocą np. aparatu w telefonie komórkowym. Jednakże, aby możliwe było sterowanie, odbiornik musi rozróżniać różne impulsy nadawane przez diodę IR w pilocie. Realizuje się to modulując światło diody.
Istnieje wiele protokołów, które modulują różne parametry sygnału świetlnego. Wszystko w zasadzie zależy od producenta. Jeśli chcemy dowiedzieć się więcej na temat działania pilota na podczerwień, informacji poszukać możemy tutaj lub tutaj.
W dalszej części projektu spróbujemy naśladować te impulsy z pomocą modułu Arduino. Na początek jednak potrzebujemy odbiornika IR, na przykładu układu TSOP1338 oraz modułu Arduino. Wykorzystamy je, aby analizować i przekształcać kody w układzie, tak że po stronie wyjściowej będą inne niż na wejściu.
Aby oprogramować moduł Arduino potrzebować będziemy dwóch bibliotek [urhttps://github.com/cyborg5/IRLib
l=]IRrecvdump z projektu IRLib[/url]. Na stronie znajdziemy program do załadowania do Arduino oraz opis, jak je podłączyć. Wystarczy podłączyć zasilanie i wyjście do pinu 11, a następnie otworzyć monitor portu szeregowego. Po wycelowaniu pilota w odbiornik możemy nacisnąć przycisk, a poprzez port szeregowy system wyśle nam dane dotyczące kodów poszczególnych przycisków.
Informacje z portu szeregowego mogą być dosyć zaśmiecone - odbiornik jest bardzo czuły, więc potrafi łapać także przypadkowe odbłyski światła etc. Jeśli chodzi o informacje na temat transmisji z pilota, program podaje kod naciśniętego przycisku i wykorzystany protokół - dokładnie tego potrzebujemy. Zapiszmy sobie zebrane informacje na później.
Krok 6: Co właściwie chcemy zrobić?
Mamy już zapisane i rozpoznane kody z pilota IR. Teraz będziemy montować dwie proste płytki, na jednej znajdzie się transmiter RF z czterema przyciskami, co da nam 16 kombinacji. Na drugiej płytce umieścimy odbiornik oraz mikrokontroler - w naszym przypadku Arduino - który interpretować będzie zdekodowane kody i kontrolować diodę podczerwoną, sterującą docelowym urządzeniem jak pilotem. Jako że mamy 16 kombinacji to dokładnie tyle przycisków pilota jesteśmy w stanie emulować naszym urządzeniem.
Krok 7: Zlokalizuj odbiornik w swoim urządzeniu
Jeśli nie wiesz, gdzie znajduje się odbiornik podczerwieni w urządzeniu, którym chcesz sterować możesz skorzystać z szkicu IRSendDemo w linkowanej powyżej biblioteki. W szkicu trzeba jedynie skonfigurować protokół i kod do wysłania - autor wykorzystał kod przycisku zasilania. Teraz podłączamy na pin 3 Arduino diodę podczerwoną przez opornik 1 kΩ. W tym momencie, po podaniu dowolnego znaku na port szeregowy i wysłaniu go enterem Układ wyśle ustawiony komunikat przez podczerwień. Powinno to uruchomić sterowane urządzenie. Wykorzystajmy to demo do zlokalizowania odbiornika w urządzeniu docelowym. Na filmie powyżej jest to dokładnie zaprezentowane.
Krok 8: Lutowanie
Korzystając z diagramu połączeń wykonajmy oba układy. Autor wykorzystał zwykłe Arduino, zamiast pokazanego Pro Mini, ale nie zmienia to nic w samym systemie.
Przed podłączeniem mikrokontrolera sprawdźmy wszystkie połączenia oraz działanie nadajnika i odbiornika z pomocą diod LED. Następnie możemy podłączyć Arduino i wgrać do niego szkic.
Opornik 1 kΩ przylutowany jest bezpośrednio do katody diody LED. Dobrze jest zaizolować całość z pomocą rurki termokurczliwej. Dioda umieszczona musi być na wprost odbiornika w sterowanym urządzeniu, ale pozostała część układu może znajdować się gdzieś dalej - możemy przylutować diodę z opornikiem dłuższymi kablami, aby schować gdzieś układ.
Poniżej zaprezentowano szkic projektu, jaki wgrać należy do Arduino. W przypadku naszego systemu konieczne może być zmienienie kodów poszczególnych funkcji, ale te znać będziemy z wcześniejszych prób.
Najlepszą rzeczą w wykorzystaniu fal radiowych, zamiast podczerwieni, jest to, że nie trzeba celować pilotem bezpośrednio w odbiornik. Zależnie od wykorzystanego modułu RF możemy sterować układem nawet z sąsiedniego pokoju.Wystarczy że odbiornik i nadajnik będą w swoim zasięgu.
Finalnie, możemy wykonać obudowę do układu, na przykład w technologii druku 3D.
Źródło: http://www.instructables.com/id/Convert-Your-IR-Remote-to-RF-Remote/
Krok 1: Wstęp - wideo
Na powyższym filmie pokazano i wyjaśniono wszystkie kroki, które są opisane poniżej. Przejdźmy zatem do kompletowania elementów układu.
Krok 2: Lista elementów
Poniżej znajdziemy listę elementów, jakie wykorzystane są w projekcie, wraz z linkami do sklepu Amazona, gdzie możemy je nabyć.
* Moduł RF - https://amzn.to/2EOiMmm
* Arduino - http://amzn.to/2FAOfxM
* Układy scalone enkodera - https://amzn.to/2HpNsQd i dekodera - https://amzn.to/2HpNsQd
* Odbiornik podczerwieni i dioda IR - https://amzn.to/2H0Bdu6
Krok 3: Enkoder i dekoder
Aby zbudować układ bez mikrokontrolera, potrzebować będziemy dwóch układów scalonych - enkodera i dekodera. To podstawowe układy logiczne, więc są szeroko dostępne i zrozumienie ich działania jest dosyć proste.
Enkoder ma więcej wejść niż wyjść. Jeśli spojrzymy na tabelę logiczną tego układu, to widzimy, że dla różnych załączonych pinów (w stanie "1") na wejściu otrzymamy różną kombinację na wyjściu. Zasadniczo układ ten realizuje konwersję z 2^n wejść na n wyjść, gdzie n to liczba bitów. Dekoder jest odwrotnością enkodera i realizuje konwersję z n na 2^n.
Jeśli interesuje Was, co się stanie, gdy na wejściu załączonych będzie więcej niż jeden pin, to zachęcam do zajrzenia do kart katalogowych tych układów. W poniższym projekcie nie będziemy z tego korzystać. Układy z których korzystamy do HT12E (enkoder) i HT12D (dekoder). Przyjrzyjmy się wyprowadzeniom układów:
Dla HT12E piny 12, 11, 12 i 13 to wejścia danych, a pin 17 jest pinem wyjściowym, który będziemy modulować. Piny 16 i 17 połączone są z wewnętrznym oscylatorem RC, do którego podłączamy opornik o rezystancji od 500 kΩ do 1 MΩ - autor projektu wykorzystał 680 kΩ. Opornik ten stanie się częścią układu RC. Pin 14 to załączanie nadawania, aktywny jest w stanie niskim - układ transmitować będzie dane tylko, gdy pin ten będzie w stanie zero. Piny 18 i 9 to, odpowiednio, zasilanie i masa. Pozostałe piny omówimy za chwilę.
Analogicznie dla dekodera HT12D - piny 18 i 9 to zasilanie i 15 i 16 to wewnętrzny oscylator (tutaj podłączamy opornik 33 kΩ). Pin 17 tego układu to potwierdzenie odebrania transmisji - przechodzi w stan wysoki, po odebraniu poprawnych danych. Wejście zmodulowanych danych znajduje się na pinie 15 a zdekodowane dane równolegle na pinach 10, 11, 12 oraz 13. Układ ten także ma kilka dodatkowych pinów, które widzimy w enkoderze. Są one ważne dla bezpieczeństwa naszej transmisji - ustalają adres obu układów.
Adresy dekodera i enkodera muszą być takie same, inaczej układy nie będą się ze sobą komunikowały. Dla uproszczenia podłączmy wszystkie piny adresowe do masy w obu układach, ale zasadniczo nic nie stoi na przeszkodzie, by ustawić dowolną inną kombinację lub podłączyć tutaj DIP-switch (taki jak pokazano na zdjęciu powyżej) i konfigurować w dowolny sposób nasz system.
Krok 4: Prototypowanie
Okej - tyle teoria, teraz czas przejść do praktyki.
Potrzebne nam będą dwie płytki stykowe, do wykonania dwóch układów. Łączymy układy tak, jak pokazano na schematach obok. Na razie moduł Arduino zastąpić możemy diodami LED, a zamiast przełączników wykorzystać możemy zwykłe przyciski z opornikami ściągającymi (ok 10 kΩ) je do masy. Oba układy wymagają zasilenia, najlepiej zasilić je dwoma osobnymi zasilaczami.
W momencie, gdy podłączymy oba moduły do zasilania widzimy, że dioda podłączona do wyjścia VT zapali się, co oznacza, że układ odbiorczy poprawnie odebrał dane i nawiązał komunikację z nadajnikiem. W momencie, w którym naciśniemy dowolny przycisk po stronie nadajnika, to zapali się odpowiadająca mu dioda po stronie odbiornika i dodatkowo dioda VT mrugnie, informując o poprawnie odebranej transmisji. Wyjście informujące o poprawności transmisji będzie nam później bardzo pomocne.
Debugowanie układu nie jest trudne. Jeśli układ przedstawiony tutaj nie działa, to zacznijmy od sprawdzenia wszystkich połączeń. Jeśli nie to było przyczyną, to możemy bezpośrednio połączyć ze sobą enkoder i dekoder z pominięciem modułów radiowych, aby upewnić się, że przynajmniej te moduły działają poprawnie.
Jeśli zmienimy adresy na różne w układach, to transmisja przestanie działać. Oba adresy muszą być takie same, aby transmisja działała poprawnie.
Krok 5: Podczerwień
Pomówmy teraz o komunikacji z wykorzystaniem podczerwieni. Każdy pilot tego rodzaju posiada na froncie diodę podczerwoną, która zapala się gdy naciskamy przycisk. Nie widać tego gołym okiem, ale można dojrzeć to światło z pomocą np. aparatu w telefonie komórkowym. Jednakże, aby możliwe było sterowanie, odbiornik musi rozróżniać różne impulsy nadawane przez diodę IR w pilocie. Realizuje się to modulując światło diody.
Istnieje wiele protokołów, które modulują różne parametry sygnału świetlnego. Wszystko w zasadzie zależy od producenta. Jeśli chcemy dowiedzieć się więcej na temat działania pilota na podczerwień, informacji poszukać możemy tutaj lub tutaj.
W dalszej części projektu spróbujemy naśladować te impulsy z pomocą modułu Arduino. Na początek jednak potrzebujemy odbiornika IR, na przykładu układu TSOP1338 oraz modułu Arduino. Wykorzystamy je, aby analizować i przekształcać kody w układzie, tak że po stronie wyjściowej będą inne niż na wejściu.
Aby oprogramować moduł Arduino potrzebować będziemy dwóch bibliotek [urhttps://github.com/cyborg5/IRLib
l=]IRrecvdump z projektu IRLib[/url]. Na stronie znajdziemy program do załadowania do Arduino oraz opis, jak je podłączyć. Wystarczy podłączyć zasilanie i wyjście do pinu 11, a następnie otworzyć monitor portu szeregowego. Po wycelowaniu pilota w odbiornik możemy nacisnąć przycisk, a poprzez port szeregowy system wyśle nam dane dotyczące kodów poszczególnych przycisków.
Informacje z portu szeregowego mogą być dosyć zaśmiecone - odbiornik jest bardzo czuły, więc potrafi łapać także przypadkowe odbłyski światła etc. Jeśli chodzi o informacje na temat transmisji z pilota, program podaje kod naciśniętego przycisku i wykorzystany protokół - dokładnie tego potrzebujemy. Zapiszmy sobie zebrane informacje na później.
Krok 6: Co właściwie chcemy zrobić?
Mamy już zapisane i rozpoznane kody z pilota IR. Teraz będziemy montować dwie proste płytki, na jednej znajdzie się transmiter RF z czterema przyciskami, co da nam 16 kombinacji. Na drugiej płytce umieścimy odbiornik oraz mikrokontroler - w naszym przypadku Arduino - który interpretować będzie zdekodowane kody i kontrolować diodę podczerwoną, sterującą docelowym urządzeniem jak pilotem. Jako że mamy 16 kombinacji to dokładnie tyle przycisków pilota jesteśmy w stanie emulować naszym urządzeniem.
Krok 7: Zlokalizuj odbiornik w swoim urządzeniu
Jeśli nie wiesz, gdzie znajduje się odbiornik podczerwieni w urządzeniu, którym chcesz sterować możesz skorzystać z szkicu IRSendDemo w linkowanej powyżej biblioteki. W szkicu trzeba jedynie skonfigurować protokół i kod do wysłania - autor wykorzystał kod przycisku zasilania. Teraz podłączamy na pin 3 Arduino diodę podczerwoną przez opornik 1 kΩ. W tym momencie, po podaniu dowolnego znaku na port szeregowy i wysłaniu go enterem Układ wyśle ustawiony komunikat przez podczerwień. Powinno to uruchomić sterowane urządzenie. Wykorzystajmy to demo do zlokalizowania odbiornika w urządzeniu docelowym. Na filmie powyżej jest to dokładnie zaprezentowane.
Krok 8: Lutowanie
Korzystając z diagramu połączeń wykonajmy oba układy. Autor wykorzystał zwykłe Arduino, zamiast pokazanego Pro Mini, ale nie zmienia to nic w samym systemie.
Przed podłączeniem mikrokontrolera sprawdźmy wszystkie połączenia oraz działanie nadajnika i odbiornika z pomocą diod LED. Następnie możemy podłączyć Arduino i wgrać do niego szkic.
Opornik 1 kΩ przylutowany jest bezpośrednio do katody diody LED. Dobrze jest zaizolować całość z pomocą rurki termokurczliwej. Dioda umieszczona musi być na wprost odbiornika w sterowanym urządzeniu, ale pozostała część układu może znajdować się gdzieś dalej - możemy przylutować diodę z opornikiem dłuższymi kablami, aby schować gdzieś układ.
Poniżej zaprezentowano szkic projektu, jaki wgrać należy do Arduino. W przypadku naszego systemu konieczne może być zmienienie kodów poszczególnych funkcji, ale te znać będziemy z wcześniejszych prób.
Code: c
Najlepszą rzeczą w wykorzystaniu fal radiowych, zamiast podczerwieni, jest to, że nie trzeba celować pilotem bezpośrednio w odbiornik. Zależnie od wykorzystanego modułu RF możemy sterować układem nawet z sąsiedniego pokoju.Wystarczy że odbiornik i nadajnik będą w swoim zasięgu.
Finalnie, możemy wykonać obudowę do układu, na przykład w technologii druku 3D.
Źródło: http://www.instructables.com/id/Convert-Your-IR-Remote-to-RF-Remote/
Cool? Ranking DIY