Sterowanie TV

0

Witam,

piszę sobie programik do zdalnego sterowania telewizorem (jak w temacie, poprzez IrDA). Pogram ma sterować diodą IrDA podłączoną do portu COM1 zgodnie ze standardem RC 5. I teraz tak, do obsługi portu używam komponentu CPortLib (TComPort). W jaki sposób można tworzyć odpowiednie paczki do wysłania na port, znając kody poszczególnych klawiszy pilota?

Pozdrawiam.

0

Twoje pytanie jest jednoczesnie stwierdzeniem, ze albo o RC5, albo IrDA i roznicach miedzy tymi standardami nie masz pojecia.

0

Bardzo mi pomogłeś...

Może sprecyzuje pytanie:

  1. W jaki sposób tworzyć paczkę do wysłania, mając adres i komendę danego przycisku na pilocie?
  2. Czy wystarczy to wysłać na port, do którego podłączona jest dioda Ir, czy trzeba to jeszcze jakoś modyfikować?
  3. Jakie byłyby najlepsze ustawienia portu?
0

Chyba niemożliwym jest sterować układami RC5 przez urządzenia IrDA bo się różnią bodaj długością fali i częstotliwością. Żeby to robić trzeba sobie zmontować albo kupić nadajnik podczerwieni w standardzie RC5. A co do programu to możesz poszukać jakiś dokumentacji do Lirc'a bo to jest programik, który umożliwia sterowanie poprzez pilot - komputerem i poprzez komputer - urządzeniami z RC5.

0

Tzn nadajnik jest zrobiony z diody wyciągniętej ze starego pilota, a cała reszta wykonana wg odpowiedniego schematu. Urządzenie ogólnie działa na innym programie, również stworzonym w delphi, ale niestety nie mam jego źródeł.

EDIT: Długość fali jest raczej taka sama, bo bez problemu można używać np telefonu do sterowania telewizorem, więc nie powinno być kłopotu bez względu na typ nadajnika/odbiornika. Poza tym, na schemacie użyta jest normalna dioda Ir, taka sama jest w pilotach do TV.

0

Skoro nadajnik zrobiles z diody z pilota, to na pewno nie jest to standard IrDA, tylko zwykle zlacze podczerwieni.

Poniewaz nie podzieliles sie z nami nawet kluczowa informacja, jaka jest owa budowa wg. "odpowiedniego schematu" [czymkolwiek on jest] i nie wiadomo, czy diode wpiales pod port RS232 czy jakikolwiek inny (COM to tylko standard logiczny, a nie warstwa fizyczna polaczenia komunikacyjnego; RS232 tak samo jak USB czy nawet FireWire potrafia pracowac w trybie zgodnosci z nim), ani w jaki sposob (zakladam, ze jest to RS232, wiec do dyspozycji masz tak zlacza szeregowe (TX), jak piny rownolegle (linie modemowe)), niewiele osob bedzie Ci w stanie pomoc.

Jesli skorzystales ze schematu, ktory lata temu przedstawil Igor Cesko, w Winapi potrzebujesz jedynie funkcje CreateFile, SetCommState, GetCommState, CloseHandle i nie wymaga to zadnych komponentow w stylu CPortLib... i nie ma to nic wspolnego z klasa urzadzen IrDA.

Czestotliwosc nosna nie jest taka sama miedzy IrDA a RC-5, a tym bardziej roznymi jego implementacjami, bo standard wymaga 36kHz, ale ze wzgledu na jego bledne tlumaczenia w latach 90-tych, wiele urzadzan dziala na sygnalne nosnym 38 lub 40kHz. Dla IrDA to zdecydowanie zbyt mala czestotliwosc dla trybow innych niz podstawowe 9600 baud'ow. Podstawowa roznica w diodach jest taka, ze piloty telweizyjne maja diody wiekszej mocy, bo ich zasieg musi byc do kilku metrow; diody IrDA sa diodami malej mocy, bo dzialaja w podstawowej wersji do 1m i przy bezposredniej bliskosci nie moga powodowac w odbiorniu efektu oslepienia. Diody w telefonach, sa drozszym typem, celowo przygotowanym do pracy w obu trybach, diody w pilotach nie. Cos mi sie wydaje, ze jestes w blednym mniemaniu, ze kazde polaczenie podczerwone to IrDA.

0

Więc tak, mam na myśli oczywiście RS232 (port COM1, $378). Schemat jest tutaj:
user image

0

a mi sie zdaje ze ta dioda miga bardziej w okresolnym przedziale czasu zmiennie i to jest interpretowane przez tv,jedyne co potrzebne to babel COM -> dioda na dwa kable???

0

no ona "wymruguje" to co wpisujesz na port :P cos typu wizualizacja pinu Tx portu
problemem jest co trzeba nadac i tego chcialbym sie dowiedziec

0

Pozwolę sobie odświeżyć temat, ponieważ w dalszym ciągu nie znalazłem odpowiedzi.

0

Twoj problem polega na tym, ze ta linia RS232 jest zalaczem szeregowym, co oznacza, ze ramka zawsze trwa tyle samo czasu (zaleznie od taktowania).

Podstawowe pytanie: skad masz ten uklad? Z tego co widze, w tej konfiguracji NE555, impuls zawsze bedzie trwal tyle samo czasu, co rozladowanie generatora monostabilnego + czas 1 do 8 bitow danych + czas bitow startu i stopu. Pomijajac fakt, ze daje Ci 8 stanow (do 11 jak bedziesz manipulowal nie tylko zawartoscia ale i formatem ramki), nigdy nie da Ci to regulacji czasu wypelnienia dla RC5.

Wyslanie bitow 1000 0000 spowoduje, ze NE555 zacznie odliczanie po (ewentualnym bicie startu plus) pierwszym bicie. Wyslanie 1110 0000 spowoduje odliczanie po trzecim bicie, ale wyslanie 1010 0000 da Ci rowniez odliczanie po trzecim bicie, bo zanim NE555 sie rozladuje po pierwszym (w czasie trwania drugiego), znow sie zresetuje po trzecim i zacznie odliczac od nowa.

O wiele latwiej (choc mniej dokladniej) mozna sterowac liniami rownoleglymi ("modemowymi") portu RS232: wlasciwie powinna wystarczyc odpowiednia fotodioda (chocby ta wymontowana z pilota) i jeden rezystor.

Najlepszy efekt osiagnalbys programujac jakis mikrokomputer (AVR, 8051) - PC wysle kod klawisza do ukladu, a ten - jako uklad czasu rzeczywistego - zajmie sie wysterowaniem diody podczerwonej.

0

Do tego schematu był dołączony program, który ma "nadawać" te kody. Podłączyłem samą diode do portu, i używając telefonu sprawdziłem czy działa. W porównianiu z normalnym pilotem jedyna różnica to taka, że bez dodatkowego zasilania dioda za słabo świeci, żeby odbiornik ją w ogóle "zauważył". Jeśli chodzi o mikrokontrolery, to można by to zrobić pisząc program w Bascom'ie, gdzie obsługa RC5 sprowadza się do jednej linii kodu.

EDIT: No ten schemat nadajnika jak i odbiornika (którego tu nie zamieściłem) znalazłem w necie, tylko niestety nie pamiętam linku do strony, gdzie to było opisane.

EDIT2: Taki schemat podłączenia diody Ir do mikrokontrolera AVR ATmega 8 jest w książce "Programowanie mikrokontrolerów AVR w języku Bascom" (Marcin Wiązania):
user image
Wtedy wystarczyłoby dodać (zgodnie z schematem z tej samej książki) komunikację po RS232 i tak jak mówisz, jest to chyba najlepsze rozwiązanie.

0

Z tego co się orientuje to nic specjalnego nie trzeba nadawać, wystarczy podawać np.: Napięcie-Brak Napięcia-Napięcie-Brak Napięcia lub 1-0-0-1-0-1-1 (jak kto woli)
Kiedyś programowałem mikro kontroler w Bascom-ie, gdzie po prostu tworzyło się pętle "for" i w niej ustalało się czas (w "ms") co jaki układ miał podawać napięcie. Myślę, że podobnie będzie wyglądać to i tu. Poczytaj na elektrodzie, tam to było opisane.

P.S. Przeczytałem pierwszą stronę, napisałem posta, a tu patrze druga strona. :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1