..:: Mirosław Skonieczny - Blog ::..
Pilot od N-Box do sterowania komputerem Media Center

Oto kolejny projekt z cyklu jak zrobić z komputera multimedialne centrum :)

Początkowo do obsługi zdalnej mojego media center używałem pilota od tunera ferguson.

Jednak idąc krok dalej wyposażyłem pc w kartę DVB-S dzięki czemu mogłem zrezygnować ze stacjonarnego tunera, co za tym idzie mogłem zmienić pilot na inny.

W poltroniku wypatrzyłem sobie niedrogo pilot od N-BOX'a. Posiadał wiele fajnych klawiszy, których brakowało staremu, np. PLAY, PAUSE, RECORD.

Okazało się jednak, że igorplug nie potrafi prawidłowo rozpoznawać klawiszy pilota, ponieważ firma ADB - producent, zastosowała odmienny od innych standardowych format przesyłania danych ir.

Postanowiłem podjąć się wyzwania i samemu rozpoznać jak to działa.

Kilka dni walki i udało się. Podglądanie na oscyloskopie i pomiary mikroprocesorem dały jednoznaczną odpowiedź jak działa pilot.

W standardowym systemie transmisji ir od pilota występują trzy odstępy czasowe pomiędzy stanami niskimi, krótki - logiczne 0, długi - logiczne 1 i bardzo długi - start ramki. Pilot wówczas wysyła taki kod podając każdy bit oddzielnie.

Nowy pilot działał zupełnie inaczej. Odstępów czasowych jest wiele. Każde przyciśnięcie pilota powoduje wysłanie 2x 2x 8 odstępów.

Tu widać pierwsze 2.

Pierwsze 8 - standardowy start - zawsze taki sam przy każdym klawiszu

Drugie 8 - zawierające różne odstępy 2, 5 i 6 w zależności od klawisza

Trzecie 8 - standardowy start - zawsze taki sam przy każdym klawiszu

Czwarte 8 - zawierające różne odstępy [2 jeśli jest równe wartości z drugiej 8 to klawisz trzymany, jeśli nie to pojedyncze wciśnięcie], [5 i 6 - takie same czasy jak przy drugiej 8 - bezpośrednio kombinacja wskazuje na klawisz]

Przykładowe pomierzone czasy odstępów przedstawiam poniżej:

Klawisz x:

17 35 21 48 23 24 19 38 205 17 |16| 15 |22| |15| 40 16 15 227 18 34 22 47 24 23 20 37 205 17 32 32 21 16 40 16 15

Klawisz y:

18 34 22 47 24 23 20 37 204 17 |17| 15 |22| |21| 32 15 15 231 17 34 22 47 24 24 19 37 205 17 34 32 22 22 32 15 15

Tą metodą udało mi się rozpracować każdy z klawiszy.

Urządzenie odbiorcze wyposażone jest w TSOP1736, na kablu wyprowadzonym na zewnątrz obudowy. Sygnał ir przetworzony na ttl jest podawany na int0 attiny2313, ten za pomocą pomiaru czasu pomiędzy przerwaniami jest w stanie rozpoznać klawisz i wysłać jego kod na rs232. Na komputerze jest zainstalowany darmowy girder z uruchomioną wtyczką Silitek, który odbiera dane z naszego odbiornika.

Urządzenie ma jeden klawisz programowalny. Podłączamy Pinb.0 do masy i wciskamy klawisz pilota. Po tej operacji wciśnięcie zaprogramowanego klawisza powoduje pojawienie się stanu niskiego na Pind.4. Rozpoznawane jest długie przyciśnięcie, tzn. stan niski będzie na wyjściu do momentu puszczenia klawisza na pilocie.

U mnie wyjście jest podłączone do przycisku power na płycie głównej, dzięki czemu nawet jak komputer się zawiesi, mogę go wyłączyć bez wstawania z łóżka. Zwyczajnie trzymam klawisz na pilocie, aż do momentu twardego wyłączenia.

Początkowo urządzenie nie miało zewnętrznego kwarcu. Podgrzewanie atmela w komputerze powodowało, że odbiornik wariował. Po zamontowaniu rezonatora 4MHz problem zniknął.

Załączam wzór płytki, wsad do procesora oraz przykładowy plik girdera. Schematu nie ma. W razie pytań i problemów pomogę.