giovedì 13 dicembre 2007

Capaso Pc Remote Control

A volte, ascoltando dei gustosi brani MP3, ci sediamo in una comoda poltrona o ci spaparanziamo sul letto per poterci godere in completo relax la nostra musica preferita, allontanandoci inevitabilmente dalla "postazione" PC.Ogni volta che si rende necessario un cambio di brano, un avanzamento rapido o un' aggiustatina al volume è necessario quindi modificare la nostra comodissima posizione ed avvicinarci al PC per effettuare l'operazione (con relativo fastidio...).Per evitare ciò mi sono chiesto se non fosse semplice e poco costoso munire il mio PC di un telecomando a raggi infrarossi come per lo stereo o per la TV. Il problema è stato magistralmente risolto dal gruppo LIRC (Linux Infra-red Remote Control) che ha dato vita ad una serie di progetti per il controllo remoto del PC tramite infrarosso. Originariamente la piattaforma sulla quale è stato sviluppato il tutto è chiaramente LINUX, ma parallelamente si è lavorato anche per il mondo Windows, con il progetto WinLIRC. Scopo di queste righe è semplicemente quello di descrivere brevemente l' HW e il settaggio dei programmi per il funzionameto del controllo remoto.

Hardware

Per pilotare il PC tramite IR è indispensabile un sensore in grado di captare i segnali emessi dal fotodiodo dei telecomandi e di renderli leggibili dalla macchina, nella fattispecie renderli interpretabili dalla porta seriale (COM). Per far ciò è sufficiente assemblare il circuitino seguente:
Il "cuore" di tutto il circuito è l'integrato TSOP 1738 prodotto dalla Vishay Telefunken, che trasforma direttamante la sequenza IR prodotta dal telecomando nella rispettiva sequenza di bit, che verrà poi letta dalla seriale tramite il segnale DCD (carrier detect). Gli altri pochi componenti servono a fornire l'alimentazione all'integrato tramite la linea RTS. Infine la resistenza da 4k7 serve da pull-up per poter adattare il livello logico fornito dal sensore con lo standard RS232. Ricordo infatti che l'uscita del sensore è di tipo open collector e quindi tale resistenza è obbligatorio inserirla.

Il sensore TSOP1738 fa parte di una famiglia di integrati "ottici", e si può trovare sotto altre sigle: in particolare interessano le ultime due cifre della sigla in quanto identificano la frequenza della portante IR alla quale il dispositivo si trova a funzionare in modo ottimale. TSOP1738 indica infatti che la frequenza della portante è di 38 KHz. Si possono dunque trovare dispositivi progettati per funzionare a 30KHz (TSOP1730), a 36 KHz (TSOP1736) ecc. La maggior parte di telecomandi usa una portante a 38KHz. Per inviare il codice da un telecomando ad un dispositivo remoto si usa una modulazione ASK, ovvero una sorta di modulazione di ampiezza di una portante impulsiva.
Il codice da inviare va a modulare l'ampiezza di un treno di impulsi con una ben precisa frequenza (proprio quella stampigliata sul ricevitore) che il dispositivo remoto deve rivelare ed interpretare correttamente. Per eviatare false ricezioni o errori troppo frequenti nei dati inviati sono previsti dei filtri in ricezione centrati nella frequenza della portante scelta e con una larghezza di banda tale da limitare gli effetti di disturbi provocati ad esempio dalla luce solare, dalle lampada fluorescenti ecc. Questi filtri sono già integrati nei ricevitori IR ed è quindi molto importante conoscerne la frequenza centrale al fine di ottimizzare l'efficienza del sistema ed evitare malfunzionamenti dovuti alla scarsa sensibilità.
Il montaggio del rivelatore non presenta certo difficoltà e si presta bene ad essere assemblato direttamente su di un connettore DB9 femmina, il tutto poi richiuso con l'apposita colottina plastica. Come accennato precedentemente il circuito non richiede alimentazioni esterne e quindi una volta collegato alla porta seriale del PC è già pronto per funzionare: a questo punto basta settare correttamante il software.

Software

Dal sito http://winlirc.sourceforge.net/ è possibile scaricare il programma WinLIRC che permette di registrare i codici prodotti da un qualsiasi telecomando IR e di associare ad essi uno specifico evento (come "play", "stop", ecc).
La prima fase della configurazione consiste nell' "istruzione" del software (learn mode) ovvero nel registrare il codice prodotto dal telecomando ed assegnarlo ad un evento, che verrà poi associato ad uno o più comandi di Windows. Questo tipo di modalità di apprendimento viene detta "raw mode" e funziona con quasi tutti i tipi di telecomando.
Una volta terminata questa fase è necessario eseguire un programma che sia in grado di inviare dei comandi a delle applicazioni windows attive (come potrebbe essere Winamp) in funzione del codice rilevato dal driver WinLIRC.Software di questo tipo ne esistono molti, come ad esempio PC-Remote , uICE , Ir Assistant, quet'ultimo è personalmente quello che uso. Tali programmi hanno un funzionamento molto simile tra loro, che consiste nella registrazione dei macrocomandi e la relativa asociazione con un evento WinLIRC. A questo proposito ricordo che sono supportati molti altri rivelatori IR e che quindi è necessario specificare come rivelatore di default WinLIRC. Alcuni software consentono una ulteriore configurazione dell' hardware, che però nel caso in questione non sortisce alcun effetto, in quanto WinLIRC viene visto dalle applicazioni come un server TCP/IP e quindi non è possibile alcuna modifica "fisica" del riveltore.

Vedi articolo completo:

6 commenti:

jumpjack ha detto...

Ho trovato un sacco di pagine su internet su questo argomento.... ma nessuna che tratti l'opposto: una volta che ho campionato un telecomando, come posso riprodurne il segnale?

This site explains how to produce an IR signal using an audio card and two leds:
http://features.engadget.com/2004/07/27/how-to-turn-your-ipod-in-to-a-universal-infrared-remote-control/

But how do i recreate modulation to pilot the leds, once I suppressed the 38 KHz carrier while sampling?!?

Does it exist the "opposite" of TSOP 1738?

jumpjack ha detto...

cavolo... ho copiato il mio post in inglese....

Dicevo che è possibile riprodurre un segnale IR collegando due led IR alla scheda audio; pero' nel campionamento col TSOP1738 si perde la portante a 38 KHz, come la ricreo?!?

Anonimo ha detto...

A tutti coloro che non hanno ancora un telecomando e una porta infrarossi.
IRAssistant permette di settare anche un joystick o joypad come telecomando.
Magari a qualcuno basta questo.
Uso IRAssistant. Gran programma!

Anonimo ha detto...

Ciao e complimenti, ma se si volesse usare una porta USB invece di una seriale hai qualche suggerimento?

mysty ha detto...

scusa non volevo essere anonima

capaso ha detto...

C'è un gruppo di lavoro che ha sviluppato un bel progetto ir-usb compatibile con winlirc:

href="http://www.usbuirt.com/overview.htm

è una schedina molto più complicata di quella per la seriale standard, ma quando si vuole usare la usb bisogna sempre ricorrere a chip e circuiti un po' complessi. Una alternativa potrebbe essere quella di utilizzare un cavo usb-seriale e vedere se i programmi di apprendimento dei codici Ir funzionano lo stesso: io comunque non ho mai fatto prove in questa direzione.
Salutoni
Kso