Spisu treści:
- Krok 1: Trochę informacji o protokole podczerwieni NEC
- Krok 2: Wymagane składniki
- Krok 3: Oprogramowanie i działanie urządzenia
- Krok 4:
Wideo: Nadajnik i odbiornik podczerwieni USB NEC: 4 kroki (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
Ten projekt jest spin-offem innego projektu, nad którym pracuję, a ponieważ jest konkurs Remote Control 2017 na Instructables, pomyślałem, że opublikuję ten projekt. Więc jeśli podoba Ci się ten projekt, zagłosuj na niego. Dziękuję.
Jak być może wiesz, jestem wielkim fanem 8-bitowych kontrolerów PIC firmy Microchip, patrz:
Używam języka programowania JAL, ponieważ wygląda jak Pascal (który też lubię). Kompilator JAL i biblioteki można pobrać ze strony: https://www.justanotherlanguage.org/downloads (przewiń w dół, aby zobaczyć najnowszą wydaną wersję).
Zwykle sam piszę cały kod, aby całkowicie zrozumieć, co robię, ale do tego projektu musiałem podłączyć PIC do portu USB komputera, więc potrzebowałem sterownika szeregowego JAL USB dla tego kontrolera PIC. Użyłem sterownika szeregowego USB w pakiecie do pobrania JAL, który wydaje się działać poprawnie. Ponieważ ten sterownik szeregowy USB został napisany dla jednego konkretnego PIC, użyłem tego PIC, który jest PIC18F14K50. Ten kontroler ma znacznie więcej funkcji niż potrzebuję do tego projektu, więc obecnie jestem w trakcie pracy nad tym sterownikiem USB na prostszej wersji PIC, PIC16F1455, która jest również tańsza.
Więc o co chodzi w tym projekcie? Za pomocą urządzenia wymienionego w tej instrukcji możesz wysyłać i odbierać polecenia pilota na podczerwień zi do komputera przez port USB przy użyciu popularnego protokołu NEC Infra-Red. W ten sposób można monitorować polecenia podczerwieni i sterować dowolnym urządzeniem korzystającym z protokołu NEC Infra-Red Remote Control. Projekt dekoduje i tłumaczy wiadomości w podczerwieni na bajt adresu i bajt polecenia lub na wiadomość powtarzaną. Adres jest oczywiście używany do adresowania określonego urządzenia, takiego jak telewizor lub radio, gdzie bajt polecenia wskazuje funkcję, którą należy wykonać, np. Zwiększanie głośności, Zmniejszanie głośności. Oprócz dekodowania tych wiadomości, mogą one być również przesyłane w podczerwieni za pomocą tego urządzenia.
Krok 1: Trochę informacji o protokole podczerwieni NEC
Krótkie wprowadzenie do tego protokołu. Protokół NEC Infra Red Remote Control jest używany w wielu urządzeniach i pilotach, które można kupić. Moduluje sygnał podczerwieni na nośnej 38 kHz i wykorzystuje kodowanie odległości impulsów do kodowania logicznego „1” i logicznego „0”. Protokół wykorzystuje proste sprawdzenie, czy wiadomość jest w porządku, wysyłając zarówno adres, jak i bajt polecenia oraz odwróconą wersję obu w tej samej wiadomości i sprawdzając, czy są takie same po odebraniu. Po naciśnięciu przycisku na pilocie zdalnego sterowania wysyła pełną wiadomość w podczerwieni z adresem i poleceniem jeden raz. Przytrzymanie wciśniętego przycisku spowoduje wysłanie krótszej wiadomości powtórzonej bez adresu i informacji o poleceniu. Czas powtarzania przesyłanych komunikatów przy wciśniętym przycisku jest stały.
Więcej informacji na temat protokołu NEC Infra Red można znaleźć na przykład na:
Krok 2: Wymagane składniki
Do tego projektu potrzebne są następujące komponenty:
- Mikrokontroler PIC PIC18F14K50, patrz:
- Kryształ 12 MHz
- Kondensator ceramiczny: 2*100nF, 1*220 nF, 2*18pF
- Kondensator elektrolityczny 47 uF/16V
- Odbiornik podczerwieni TSOP4838, patrz:
- Rezystory: 2*33k, 1*4k7, 1*1k, 3*330 Ohm, 1*22 Ohm
- Diody LED: 2 * podczerwień, 1 bursztynowa, 1 zielona, 1 czerwona
- Tranzystor BC640, patrz:
- Zworka (opcjonalnie)
- Złącze USB
Zobacz schemat ideowy, jak połączyć komponenty. Do tego projektu użyłem płytki stykowej, jak widać na zdjęciu i filmie. Obwód jest zasilany z portu USB komputera.
Krok 3: Oprogramowanie i działanie urządzenia
Jak już wspomniano, oprogramowanie jest napisane dla PIC18F14K50. Został napisany w JAL. Załączony jest plik Intel Hex do programowania Twojego PIC. Oprogramowanie realizuje następujące funkcje:
- Dekodowanie wiadomości NEC Infra-Red i wysyłanie ich do komputera przez USB. Komunikat jest dekodowany ze strumienia bitów, który jest generowany przez odbiornik podczerwieni i tłumaczony na adres + komunikat polecenia lub komunikat powtarzania.
- Wysyłanie wiadomości NEC Infra Red otrzymanych z komputera przez USB. Zauważ, że oprogramowanie tworzy również częstotliwość nośną 38 kHz, która bezpośrednio steruje diodami podczerwieni. Równolegle do diody podczerwieni podłączona jest dioda bursztynowa, aby transmisja komunikatu była widoczna.
Domyślnie obwód ten wycisza odbiornik podczerwieni podczas transmisji wiadomości w podczerwieni. Jeśli zworka znajduje się w pozycji „Wyłącz wyciszenie”, wyłączy to funkcję wyciszania. W takim przypadku transmitowana wiadomość w podczerwieni będzie również dekodowana równolegle z transmisją i po całkowitym odebraniu jest wysyłana jako odebrana wiadomość w podczerwieni do komputera. Jeśli odebrany zostanie prawidłowy komunikat NEC Infra-Red, zaświeci się czerwona dioda „IR OK”.
Aby obsługiwać to urządzenie, musisz mieć program Emulator terminala na swoim komputerze. Do tego celu użyłem „Termitu”. Gdy urządzenie jest podłączone do komputera, zostanie ono automatycznie rozpoznane jako dodatkowy port COM przez system Windows 10, ponieważ wydaje się, że sterownik Microchip dla tego urządzenia jest wstępnie zainstalowany w systemie Windows 10. Ustawienie dla tego portu COM powinno wynosić: 19200 bodów 8 bitów, 1 bit stopu, brak parzystości i sterowanie przepływem RTS/CTS. W razie potrzeby szybkość transmisji można ustawić na dowolną inną wartość, więc będzie działać również szybkość transmisji 115200. Gdy urządzenie zostanie skonfigurowane przez port USB, łącząc się z nim za pomocą programu Terminal Emulator, zaświeci się zielona dioda „Konfiguracja”.
Odbieranie wiadomości w podczerwieni
Po odebraniu wiadomości w podczerwieni w programie Terminal Emulator zostanie wyświetlony następujący komunikat:
- ‘A:xx C:xx’ w przypadku kompletnej wiadomości, gdzie xx jest liczbą szesnastkową adresu (A) i polecenia (C). Wartości dla obu mogą mieścić się w zakresie od 0x00 (0) do 0xFF (255).
- „Powtórz” w przypadku powtarzającej się wiadomości.
Wysyłanie wiadomości w podczerwieni
W tym celu musiałem zdefiniować protokół, który mówi urządzeniu, co ma robić. Ponieważ używamy emulatora terminala, do zdefiniowania wiadomości użyłem znaków ASCII. Protokół do wysłania polecenia do urządzenia używa następującego formatu: „!AACCRR#”, gdzie (wszystkie znaki nie uwzględniają wielkości liter):
- „!” oznacza początek wiadomości.
- „AA” to wartość adresu w notacji szesnastkowej, czyli „0” do „9” i „A” do „F”,
- „CC” to wartość polecenia w notacji szesnastkowej, więc „0” do „9” i „A” do „F”
- „RR” to liczba powtórzonych wiadomości, które muszą być przesłane w notacji szesnastkowej, czyli „0” do „9” i „A” do „F”. Wartość „00” oznacza, że nie jest wysyłana wiadomość powtórna.
Przykładowy komunikat o adresie 0x07, komendzie 0x05 i 3 powtórzeniach należy następnie wpisać w programie Terminal Emulator: !070503#
Urządzenie ma różne odpowiedzi po wysłaniu polecenia z komputera:
- „Y” oznacza, że wiadomość została przesłana. Należy zauważyć, że ta odpowiedź jest udzielana po przesłaniu wszystkich wiadomości - w tym wszystkich powtórzeń - więc może upłynąć trochę czasu, zanim ta odpowiedź zostanie udzielona, gdy trzeba przesłać wiele powtarzających się wiadomości.
- „N” oznacza, że wiadomość wysłana do komputera zawierała nieprawidłowy znak.
- „B” oznacza, że transmisja w podczerwieni była nadal zajęta, gdy wydano polecenie.
- „?” oznacza, że urządzenie oczekiwało „!”, ale otrzymało coś innego.
Krok 4:
Zrobiłem krótki filmik z urządzenia w akcji. W tym filmie użyłem komercyjnej lampy LED z pilotem, aby zobaczyć, że zarówno transmisja, jak i odbiór działają. Film przedstawia następujące elementy:
- Konfiguracja urządzenia USB z programu Terminal Emulacja. Po skonfigurowaniu urządzenie odpowiada komunikatem „USB NEC Infra Red Transmitter and Receiver”. Na urządzeniu zapala się zielona dioda LED wskazując, że urządzenie zostało skonfigurowane przez komputer.
- Lampa jest włączana za pomocą pilota. W tym celu pilot używa adresu 0x00 i polecenia 0x07, które jest dekodowane przez urządzenie i wyświetlane na komputerze.
- Lampa jest wyłączana za pomocą pilota. W tym celu pilot używa adresu 0x00 i polecenia 0x06, które jest dekodowane przez urządzenie i wyświetlane na komputerze.
- Lampę włącza się, wpisując to samo polecenie zdalnego sterowania na komputerze z wartością powtarzania 0 (bez powtarzania), a więc wpisując „!000700#”. Lampa włącza się.
- Zmiana koloru lampy na niebieski za pomocą adresu 0x00 i komendy 0x0A oraz powtórzeń 0x30. Pomarańczowa dioda LED, połączona równolegle z diodami podczerwieni na podczerwień, miga, sygnalizując transmisję powtarzanego komunikatu przez podczerwień. Wpisana wiadomość to „!000A30#”.
Zwróć uwagę, że podczas nagrywania tego filmu połączenie zworki „Unmute” było aktywne, więc można było również zobaczyć przesłany komunikat „!000700#”, odbierany jako „A:00 C:07” w programie emulacji terminala. W demie koloru lampki na niebiesko widać również, że czerwona dioda LED świeci tak długo, jak długo ważne – powtarzane – komunikaty są przesyłane, ponieważ są odbierane i dekodowane równolegle z transmisją powtarzanych komunikatów.
Baw się dobrze, budując własny projekt i czekając na Twoje reakcje. Nie zapomnij zagłosować na ten projekt w konkursie Remote Control 2017, jeśli Ci się spodoba. Dzięki jeszcze raz.
Zalecana:
Zdalny analizator / odbiornik podczerwieni z Arduino: 3 kroki
Zdalny analizator / odbiornik podczerwieni z Arduino: Ten analizator odbiera jednocześnie 40 różnych protokołów IR i pokazuje adres i kod odebranego sygnału. Wykorzystuje bibliotekę Arduino IRMP, która zawiera tę aplikację jako przykład, a także inne przydatne aplikacje! chcieć
Bezprzewodowy pilot za pomocą modułu 2,4 Ghz NRF24L01 z Arduino - Nrf24l01 4-kanałowy / 6-kanałowy nadajnik-odbiornik do quadkoptera - Helikopter RC - Samolot zdalnie sterowany za pomocą Arduino: 5 kroków (ze zdjęciami)
Bezprzewodowy pilot za pomocą modułu 2,4 Ghz NRF24L01 z Arduino | Nrf24l01 4-kanałowy / 6-kanałowy nadajnik-odbiornik do quadkoptera | Helikopter RC | Samolot RC przy użyciu Arduino: obsługa samochodu RC | Quadkopter | Dron | Samolot RC | Łódź RC, zawsze potrzebujemy odbiornika i nadajnika, załóżmy, że do RC QUADCOPTER potrzebujemy 6-kanałowy nadajnik i odbiornik, a ten typ TX i RX jest zbyt drogi, więc zrobimy go na naszym
Nadajnik i odbiornik RF: 8 kroków (ze zdjęciami)
Nadajnik i odbiornik RF: W tym projekcie użyję modułów RF ze zdjęciem 16f628a. Będzie to krótki tutorial o rf. Gdy nauczysz się komunikować ze sobą moduły ho rf, możesz używać tych modułów z mikrokontrolerem pic, ardunio lub dowolnym mikrokontrolerem. Kontrolowałem
Ruchomy sterowany gestami za pomocą akcelerometru i pary nadajnik-odbiornik RF: 4 kroki
Łazik sterowany gestami za pomocą akcelerometru i pary nadajnik-odbiornik RF: Cześć, kiedykolwiek chciałeś zbudować łazik, którym można sterować za pomocą prostych gestów, ale nigdy nie odważysz się zagłębić w zawiłości przetwarzania obrazu i połączenia kamery internetowej ze swoim mikrokontroler, nie mówiąc już o podjeździe
4-kanałowy nadajnik-odbiornik DMX: 24 kroki
4-kanałowy nadajnik-odbiornik DMX: Moduł platformy DMX IO to 4-kanałowy nadajnik-odbiornik DMX. W trybie odbioru może sterować do czterech kanałów wyjścia niskoprądowego TTL (3,3V np. dla serw i małych diod LED) lub wysokoprądowego (12V np. lampy, przekaźniki, elektrozawory, silnik krokowy, itp.)