How-to: USB zdalnego sterowania odbiornik

author
11 minutes, 14 seconds Read

Teraz, który słuchamy MP3, a także widok XVIDS lub X264S, komputer jest centrum przyjemności w co najmniej jednej przestrzeni wielu domów. Chyba że masz specjalny HTPC, jesteś jednak najprawdopodobniej utknął za pomocą klawiatury, aby wstrzymać, modyfikację objętości, jak również szybki do przodu za pomocą pokrewnych mitów podsumowujących. Odrębniki zdalnego sterowania PC Różnorodność od starożytnych projektów portu szeregowego (który ma jeden?) Do urządzeń USB, które nie są obsługiwane przez wybitne oprogramowanie. W tym celu stylujemy odbiornik podczerwieni USB, który naśladuje typowy protokół obsługiwany przez oprogramowanie dla systemu Windows, Linux, a także Mac. Mamy pełny przewodnik po schematach protokołu oraz listy części.

Przegląd projektu.

Zdalne sterowanie przesyłanie danych na modulowanej wiązce podczerwieni. Odbiornik na podczerwień IC oddziela modulowaną wiązkę w czystym strumieniu 0S, a także 1s. Strumień danych jest dekodowany przez mikrokontroler, a także wysłany do komputera przez połączenie USB. Oprogramowanie przetwarza kody oraz wyzwalacze działania na komputerze.

Tło

Odbiorniki na podczerwień komputera

Najstarszy styl odbiornika na podczerwieni PC wykorzystuje odbiornik IC, aby przełączyć pin Serial Port, zazwyczaj DCD. Ten styl najprawdopodobniej pochodzi z Usenet, a także jest to najważniejsze w sieci: Engadget, instrumentów itp. To nie są prawdziwymi urządzeniami szeregowymi, ponieważ nie wysyłają danych do komputera. Zamiast tego, komputer komputerowy razy impulsy na porcie szeregowym, a także demoduluje sygnał. Jest to bardzo łatwa konstrukcja, jednak zależy to od bezpośredniego dostępu do uzyskania dostępu, a także precyzyjność czasu, która nie jest już oferowana w systemie Windows. Użytkownicy Linux lub Mac mogą wypróbować tego odbiornika, jeśli nadal masz port szeregowy. Nie mogliśmy uzyskać tego typu odbiornika do pracy z portem szeregowym na współczesnym komputerze z systemem Windows XP, a także nie oczekuj dokładnego czasu do przeniesienia przez przetwornik szeregowy USB->.

Niektóre wiele bardziej zaawansowanych odbiorników na podczerwień są prawdziwymi urządzeniami portu szeregowego, które określają lub dekodowanie sygnałów na podczerwień przed wysłaniem danych do komputera. UIR / Irman, a także UIR2 zintegruje tradycyjny obraz 16f84, jednak nie dostarczaj oprogramowania układowego i / lub kodu źródłowego. Urządzenia te powinny pracować na nowoczesnym komputerze, w razie potrzeby, w razie potrzeby przez przetwornik szeregowy USB->. Umbój, a także USbiboy są natywnymi urządzeniami USB, jednak brak szerokiej obsługi.

Oprogramowanie odbiornika.

Niezależnie od typu odbiornika, komputer potrzebuje programu do słuchania poleceń zdalnych przychodzących, a także konwertować je do działań na komputerze. Linux, jak również użytkownicy MAC mają LIRC, który obsługuje wiele różnych typów odbiorników. Użytkownicy systemu Windows są nieco mniej szczęścia. WinLirc jest opuszczonym portem systemu Windows LIRR dla łatwego przerwanego odbiorników szeregowych odbiorników; Winlirc został ostatnio opracowany w 2003 roku. Głośnik został pierwotnie bezpłatny narzędzie do automatyzacji komputerów, jednak zakończyło się kosztowne oprogramowanie z 30-dniową próbą. Na szczęście ostatnia darmowa wersja dźwigara (3.2.9b) jest nadal oferowana do pobrania.

Praca z pilotem IR Protokoły

Dekodowanie sygnałów IR

Zdalne sterowanie kodowanie poleceń w odstępie lub rozrządu impulsu dostawcy 38KHz, [San Bergmans] ma wyjaśnienie zaangażowanych dyrektorów. Odbiornik podczerwieni IC oddziela strumień danych z nośnika. Naszym zadaniem jest dekodowanie strumienia danych za pomocą mikrokontrolera. Istnieją dziesiątki protokołów zdalnego sterowania, jednak RC5 Phillips jest szeroko rozpowszechnione, a zazwyczaj używane przez hobbystów.

RC5 jest strumieniem 14 równych bitów precyzyjnie 1,778m na bit. Puls w pierwszej połowie czasu przedstawia 0, puls w drugiej połowie reprezentuje 1. Ten plan nazywany jest kodowaniem Manchesterem.

Użyliśmy analizatora logicznego, aby spojrzeć na wyjście zdalnego sterowania Happauge Wintv, znanego RC5 Remote. Schemat pokazuje dwa naciśnięcia przycisku 1, a także dwa naciśnięcia przycisku 2; Należy pamiętać, że wyjście jest odwrócone, a także kodowanie Manchesteru jest do tyłu z powyższego opisu.

Pierwsze dwa razy większe czasy są startami, a następnie bit przełącznikowy. Bit Przełącz odwraca się przy każdym naciśnięciu przycisku, dzięki czemu odbiornik może powiedzieć różnicę między utrzymaniem, a także powtarzającą prasę. Następne 5 bitów to adres (0B11110 = 0x1e), a następnie polecenie (0B000001 = 0x01, 0B000010 = 0x02). Kompatybilny wstecz do RC5 wykorzystuje drugi bit początkowy jako polecenie bit 7.

Reprezentujący kody zdalne do komputera

Patrząc na poprzednie projekty, widzieliśmy trzy ogólne metody przekazywania poleceń zdalnych do komputera:

Protocol poszczególnych odbiorników dekoduje jeden protokół, a także wysłać rzeczywiste polecenia dekodowane do komputera

Wiele bardziej ogólnego rodzaju odbiornika kroki czasowy, a także odstępy każdego pulsu, jak również wysyła pełny przebieg do komputera do analizy.

Niektóre odbiorniki wytwarzają odrębny hash dla sygnału, jednak nie obejmują wystarczającej ilości danych do całkowitego odtworzenia przebiegu.

Podczas gdy nasze preferencje dotyczy metody General Hash, nasze jedyne zdalne wykorzystuje RC5 jakowell as it was a lot more fascinating to develop an RC5 particular decoder. We explain modifications for a a lot more general version in the firmware section.

Computer interface protocol

We didn’t want to write our own receiver software or driver, so we looked for an existing, well recognized communication protocol to imitate. The UIR/IRMAN/IRA/CTInfra/Hollywood+ type receiver is supported by Girder as well as LIRC, as well as uses a easy serial protocol with handshake:

The gadget is initialized by the DTS as well as DTR pins of the serial port. We don’t have these as well as don’t care.

The computer sends “IR”, with an optional delay. The gadget replies “OK”. We’ll just send “OK” on every “R”

Remote control codes are sent as a distinct six byte hash. We’ll decode an RC5 signal as well as send the actual values, however a generic hash might be used instead.

This protocol is for a serial port device, however our USB receiver will appear as a virtual serial port as well as the program won’t understand the difference.

Sprzęt komputerowy

Click right here for a full size schematic (png). Our receiver is based on a USB enabled picture 18F2455 microcontroller, the smaller, less expensive version of the 18F2550. The 18F household is programmable with the hobbyist preferred JDM-style programmers if a diode is used to decrease VPP to a risk-free level. The picture gets one decoupling capacitor (C1), as well as a diode (D1) as well as resistor(R1) on the ICSP programming header. We exposed the serial port on a pin header for debugging or a mixed USB/serial port version using a MAX RS232 transceiver IC.

The USB peripheral requires a 20MHz outside clock (Q1, C5,6), as well as a .220uF capacitor. We faked the capacitor using 2 x .1uF decoupling capacitors (C2,3). A 3mm LED (LED1) as well as a 330ohm present limiting resistor (R2) show USB connection status.

We used a TSOP-1738 infrared receiver IC which calls for a 4.7uF decoupling capacitor (C4). If you can’t discover this specific IC, any type of receiver noted right here ought to work. The TSOP-1738 output is the inverse of the received signal, it pulls to ground when a pulse is detected, so a pull-up resistor (R3) holds the pin high when no signal is present. check if you use a different receiver, you may requirement to use a pull-down resistor as well as reverse the Manchester decoding routine in the firmware.

The circuit draws power from the USB bus, so we don’t requirement an extra power supply.

Lista części

Click right here for a full size placement diagram (png). The PCB style is 100% through-hole as well as single sided. The schematic as well as PCB were made with Cadsoft Eagle, freeware versions are offered for many platforms. All the files are included in the job archive (zip).

Część

Opis

IC1.

PIC 18F2455

28 pin .300 socket

C1,2,3

0.1uF capacitor

C4

4.7uF capacitor

C5,6

27pF capacitor (15pF may be better)

D1

1N4181 diode

Q1

20MHz crystal

R1,3

10K ohm resistor

R2

330 ohm resistor

TSOP

TSOP1738 (obsolete, try TSOP1138)

Usb.

USB ‘B’ plug, female

SER

.1″ pin header

ICSP

.1″ pin header

Oprogramowanie

The firmware is written in C using Microchip’s complimentary presentation C18 compiler. Firmware as well as source are included in the job archive (zip).

We used version 2.3 of Microchip’s USB stack to produce a USB serial port using the default chauffeurs already offered on many systems. The USB stack has easy functions to enumerate the USB gadget as well as transfer data between gadget as well as host. It only took a few pin changes to get the CDC presentation working on our custom-made hardware.

Our implementation of the UIR/IRMAN/IRA/CTInfra/Hollywood+ protocol simply responds to the letter ‘R’ with ‘OK’. This ought to satisfy the handshake requirements of any type of implementation of this protocol.

We chose to specifically decode RC5 (and RC5x) since it’s a widely used protocol, as well as the only type of remote we have to work with. many of the decoding is done in the interrupt handler:

The very first signal modification triggers an interrupt that starts a 889us (one-half bit period) timer.

On each timer interrupt, one-half of a Manchester coded bit is sampled.

Every other interrupt the measurements are compared, as well as the bit value is calculated to be 0, 1, or an error. Errors reset the decoding routing.

At the end of each transmission the address as well as command bytes are decoded, as well as sent to the host with 4 buffer bytes(0). We discard the toggle bit since it would confuse the PC software into thinking every other press was a distinct code. We append the second start bit to the command bit for RC5x compliance; this just adds 0x40 to non RC5x remote codes.

A a lot more general version can be made by removing the Manchester coding step (3), as well as sending 48 sample bits (all 6 bytes) to the computer.

Installing the USB infrared receiver

Most operating systems already have chauffeurs that support aWirtualny gadżet portu szeregowego jak odbiornik. Windows XP ma wymagane sterowniki, jednak potrzebuje pomocy danych z danych .inf, aby odpowiednio kojarzyć je z naszym urządzeniem.

Windows pokaże nowe okno dialogowe sprzętowe po raz pierwszy podłączyć odbiorcę. Wybierz, aby użyć autostrady wykonanej na zamówienie, a także wskazać na dane .inf dołączony do archiwum pracy (ZIP). To łączy gadżet do kierowcy już zawartych w systemie Windows, a także dodaje odbiornik jako port COM. Możesz sprawdzić numer portu COM w panelu sterowania.

Mac, a także użytkownicy Linuksa mogą korzystać z odbiornika z LIRC, jednak użytkownicy systemu Windows będą miały obliczeni z opcją starego, darmowego dźwigara lub nowej, 30-dniowej wersji Shareware. Użyliśmy darmowej wersji dźwigara, jednak nadzieję, że mężczyźni mogliby zasugerować wspaniały, otwarty alternatywny alternatywny, który przeoczyliśmy.

Niezależnie od oprogramowania sterującego komputera, którego używasz, skonfiguruj go do odbiornika UIR / IRAMAN / IRA / CTINFRA / HOLLYWOD +, a także przejść do przypisanego adresu COM lub adresu szeregowego. Nasz odbiornik jest również kompatybilny z dowolnym typem opcji protokołu, takich jak “Szybki UIR init”, a także “Skip UIR init Check”, który skrócić lub pozbycie się “IR” -> “OK” uścisk dłoni. Teraz przetestuj odbiornik, a także dodać pilota zgodnie z dokumentacją oprogramowania.

Ręczny interfejs terminali, a także debugowanie

Jeśli masz problem z odbiornikiem, albo jesteś po prostu ciekawy, spróbuj połączyć go z terminala szeregowego. Naprawdę lubimy terminal seryjny na Hercules. Ustaw odpowiedni port COM, jednak prędkość, jak i ustawienia konfiguracji są ignorowane przez sterownik portu szeregowego USB.

Finansowanie “R” będzie aktualizować odbiornik do odpowiedzi “OK”. Kody RC5 są zwracane jako surowe bajty, więc pamiętaj, aby ustawić terminal, aby pokazać wartości sześciokątne, a nie tłumaczyć go jako tekst ASCII. Pierwszym bajtem jest bajt adresu RC5 (0x1e), a następnie bajt polecenia (0x41), a następnie cztery bufor 0S, aby przestrzegać protokołu UIR / Irman. Zdjęcie przedstawia uścisk dłoni, a także wyjście krótkiej prasy na 1,2, a także 3 przyciski.

Bezpłatne narzędzie o nazwie Portmon Logs Com Port Activity do recenzji. Jest to przydatne do szpiegowania istniejących protokołów odbiorców, a także debugowanie interakcji naszego sprzętu na zamówienie, jak również oprogramowanie zamknięte / zastrzeżone. Obraz przedstawia dźwigarka wysyła ciąg inicjalizacji “IR” (0x49,0x52), a także odpowiadać odbiornik “OK” (0x4F, 0x4b).

Biorąc to dalej

Nasz odbiornik zgodny z RC5X podąża za szeroko stosowanym protokołem interfejsu. Jest mnóstwo możliwości dla dodatkowych funkcji w otwartym odbiorniku na podczerwień:

Obsługa wszystkich pilotów przez generyczny generator Hash, podobnie jak oryginalny sprzęt UIR / Irman.

Dodaj dodatkowe zdalne dekodery protokołu, takie jak RC6.

Obsługa wielu, konfigurowalnych protokołów interfejsu.

Wdrożyć port szeregowy I / O.

Przechowuj opcje konfiguracji w EEPROM, w tym protokół, tryb interfejsu, opcje rozrządu, port szeregowy itp.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *