Trasformare il cellulare in telecomando
e programmare il videoregistratore tramite SMS
di Luca Cassioli
Ultimo aggiornamento 9 giugno 2008

PAGINA IN LAVORAZIONE

Panoramica
Questo progetto è ancora in fase di sviluppo. Ne è stata verificata la fattibilità in ogni sua parte, ma alcune delle "parti" devono essere ancora sviluppate, e infine vanno ovviamente unite tutte insieme per ottenere il prodotto finale. Che sarà,  è bene precisarlo, freeware, cioè del tutto gratuito.

Scopo
Scopo del progetto è realizzare in modo economico (intorno ai 50 euro) un dispositivo che permetta di programmare il videoregistratore anche quando si è lontani da casa, utilizzando un SMS inviato con un comune telefono.

Gli ingredienti
Per realizzare un dispositivo in grado di comandare un registratore tramite infrarossi alla ricezione di un SMS, servono fondamentalmente due semplici cose:
1 - un telefono GSM in grado di trasmettere raggi infrarossi [incorporati, aggiunti]
2 - che il telefono sia programmabile in modo da poter interpretare il messaggio SMS in arrivo e comandare l'emissione degli infrarossi [python]

In realtà  risolvere questi due problemi è meno semplice di quanto sembra, perche' sono a loro volta formati da vari sotto-problemi, a loro volta formati da sotto-sotto-problemi, in un nidificarsi di problemi  che raggiunge livelli notevoli:
1a - Non tutti i telefoni sono dotati di infrarossi  RISOLTO CON DUE LED IN CONTROFASE
2a - Non tutti i telefoni dotati di infrarossi sono in grado di campionare i segnali provenienti da un telecomando: a quanto pare una normale porta IRDA non si può usare allo scopo, ma è quella di cui sono dotati la maggior parte dei cellulari; sembra invece che i PocketPC e Smartphone (cioè i cellulari/palmari dotati di sistema Windows Mobile) siano in grado anche di campionare segnali infrarossi, oltre che di riprodurli. RISOLTO COL PC
2a-1 Se non tutti i telefoni sono in grado di catturare gli infrarossi, bisogna trovare un modo universale per campionare questi segnali, anche senza telefono; per campionare segnali infrarossi col PC, serve un circuito integrato particolare (TSOP 1738 o simili) RISOLTO COL PC
2a-1a Reperire il TSOP1738 in Italia è piuttosto complicato e/o costoso: nei negozi non si trova, a ordinarlo costa 1 (un) euro + 10 (dieci) euro di spese di spedizione STRADA CHIUSA
2a-1b Anche trovando il TSOP 1738, è poi necessario costruire un circuito da collegare al PC, cosa che l'utente medio di cellulari e videoregistratori non è detto sia in grado di fare. STRADA CHIUSA
2a-1c Anche dopo aver costruito il circuito, servirà un SW in grado di interpretare i segnali campionati [LIRC] STRADA CHIUSA non essendo praticabili le soluzion di 2a-1a e 2a-1b
2a-2 Un PC puo' in teoria campionare solo segnali digitali, mentre il segnale di un telecomando è di per sè un segnale analogico, anche se con "significato" digitale: si tratta infatti di variazioni di luminosità infrarossa. Occorre trovare un modo per campionare i segnali analogici di un LED RISOLTO CON SCHEDA AUDIO
3a - Non tutti i cellulari sono programmabili
3a-1 Non tutti i cellulari programmabili possono elaborare gli SMS in entrata
Da alcune "voci" sono venuto a sapere che forse un diodo led TRASMITTENTE è in grado anche di RICEVERE segnali luminosi e "convertirli" in segnale elettrico, più o meno allo stesso modo in cui se si dà corrente a un motore elettrico quello gira, mentre se lo si fa girare, produce corrente.
Ho verificato, ed effettivamente è vero: un diodo LED trasmittente è in grado di ricevere segnali infrarossi. Questo potrebbe in teora risolvere il problema 2a complessivo, permettendo di usare il PC per campionare i segnali.
C'e' pero ancora da risolvere un problema simile al 2a-1b: 
2a-1b-1 Costruire un circuito per collegare il LED ricevente al PC (anziche' il TSOP 1738)
Per risolvere il problema 2a-1b-1  è sufficiente collegare il LED all'ingresso audio del PC per registrare il segnale del telecomando come se fosse un suono: si effettua cioè una conversione da infrarosso ad audio.
Questo produce un segnale di questo tipo:


Anche ammesso che si riesca a collegare il LED al PC e ad usarlo per campionare il telecomando, sorgono altri problemi:
2a-3 Occorre interpretare i segnali in modo da poterli riprodurre  NON INDISPENSABILE ma UTILE
In mancanza di un programma che sia in grado di interpretare un segnale binario rappresentato tramite file WAV, bisogna farlo a mano, per poter ricreare il segnale.
2a-4 Occorre ricreare il segnale, perche' il campionamento col LED sopprime la portante a 38 KHz. (risolto)
2a-4a  Per crearlo a mano serve un programma di editing Audio che consente editing preciso al microsecondo (1/1000.000 di secondo).  NON INDISPENSABILE
2a-4b Per crearlo in automatico serve un programma in grado di creare file audio formato da impulsi di portante a 38 KHz della durata desiderata (risolto)
2a-4b-1 In che formato deve essere il segnale per essere riproducibile da un cellulare?  (risolto)
2a-4b-1a Non tutti i cellulari  supportano il formato WAV - RISOLTO CON FIVN Player
2a-4b-2 Il programma SOX permette di creare "pezzetti" di portante e di "silenzio" della lunghezza desiderata, ma non permette di unirli. La soluzione è il programma SHNTOOL, che permette di unire i vari pezzi e costruire un file WAV.
2a-4b-1a  Creare a mano con SOX parecchie decine di pezzetti di file audio è impensabile: serve un programma che lo faccia basandosi, ad esempio, su un file di conifgurazione testuale.  RISOLTO CON FILE BATCH
2a-5 Occorre emettere i segnali(risolto)
2a-5a  Serve un circuito in grado di emettere un segnale modulato a 38 KHz (la frequenza tipica dei telecomandi). Di nuovo, non tutti sono in grado di costruire un circuito, per quanto semplice. STRADA CHIUSA
2a-5b Serve un modo per far emettere alla scheda audio un segnale a frequenza maggiore di 20 KHz, la massima supportata. RISOLTO CON DUE LED IN CONTROFASE
2a-6 Occorre scoprire i segnali necessari per:
2a-6a Accendere videoregistratore - I telecomandi in genere hanno un tasto unico per accensione e spegnimento, ma non va bene per questo progetto; il cellulare non puo' "controllare" se il registatore si accende, deve "essere sicuro" che quando ne comanda l'accensione, quello si accence. Alcuni dispositivi sono dotati di "codici separati" (discrete codes) non ufficiali, ossia comandi separati per accendere e spegnere il dispositivo; senza un segnale separato di sola accensione, non è possibile realizzare il progetto in modo affidabile (il dispositivo potrebbe spegnersi per una mancanza di corrente).  RISOLTO per registratori DVD della LG. Chiunque vuole usare questo progetto deve procurarsi il codice di accensione del proprio registratore.
2a-6b Accendere Ricevitore satellitare  - Problema simile a quello del videoregistratore; per SKY, il comando di accensione puo' essere simulato dal tasto SKY, che accende il decoder spento ma non ha effetto sul decoder già acceso.



Lo stesso tipo di LED che si usa per campionare puo' essere usato per riconvertire in infrarosso il segnale audio. TUTTAVIA sorge un altro problema:
2a-5b  Le schede audio possono riprodurre al massimo 20 KHz, mentre il segnale di un telecomando è a 38-40 KHz. RISOLTO CON COPPIA LED IN CONTROFASE

La risoluzione del problema 2a-5b è un dispositivo in grado di trasformare un segnale audio a 19 KHz in un segnale audio a 38 KHz; questo rende in grado anche un cellulare (oltre che un PC) di riprodurre segnali infrarossi pur non essendo dotato di porta infrarossi: questo risolve alla radice il problema globale 1a: anche se il cellulare non ha la porta infrarossi puo' emettere segnali infrarossi mediante una coppia di LED collegati all'uscita per le cuffie.
2a-5c  Essendo necessari due canali in controfase per riprodurre il segnale, è indispensabile un'uscita audio stereofonica. Per motivi al momento ignoti, in realtà il nokia 6680 è in grado di produrre segnali IR corretti usando UN solo LED.


Tornando al problema 3a: si risolve usando cellulari Nokia seris60 , che possono essere programmati in python per reagire agli SMS entranti.


Le soluzioni-chiave
Quindi, i "problemi-foglia" di questo progetto, da risolvere per realizzare il progetto stesso, erano:
- trovare un modo per acquisire segnali infrarossi senza dover costruire circuiti digitali complessi  -> LED trasmittennte + Scheda audio
- ricreare in maniera piu' automatica possibile i segnali campionati;  risolto con SOX, SHNTOOL e qualche file batch
- trovare un modo per far emettere raggi infrarossi a telefoni privi di infrarossi; risolto con coppia di LED in controfase
- scoprire i codici discreti di videoregistratore e decoder satellitare. Trovati codici DVD LG e SKY su internet.  IL PROBLEMA SI RIPRESENTA PER CHIUNQUE VUOLE UTILIZZARE QUESTO PROGETTO CON ALTRI DISPOSITIVI.


La Realizzazione
Ecco alcuni dei file batch che utilizzo per "ordinare" a SOX e SHNTOOL di creare i file WAV necessari: i file batch vanno interpretati sulla base della forma d'onda campionata dal LED. Devono essere utilizzati dentro la cartella che contiene SOX e SHNTOOL, e sono comunque ancora bozze in lavorazione.

Seguiranno altri file di esmepio e spiegazioni aggiuntive con immagini.



Fonti e origini
Questo progetto non sarebbe stato mai possibile senza il contributo, diretto o indiretto, di:
- La Griffin Technologies, che ha inventato e brevettato un sistema per trasformare i segnali luminosi di un comune telecomando a infrarossi in segnali audio, per poi riconvertirli in segnali infrarossi. Questo principio rende virtualmente ogni dispositivo, in grado di riprodurre un segnale audio, capace di funzionare da telecomando (con alcune restrizioni). Ormai pero' la Griffin non distribuisce piu' questo dispositivo, nè il relativo programma GRIFFIN IR REMOTE:
- Il forum di hackint0sh.org
- La fantasia dell'autore di questa pagina.
- Chi ha provato a  trasformare l'IPOD in un telecomando
- La Psiloc, per aver inventato un programma a pagamento (Psiloc IR Remote)e per averlo poi messo fuori produzione per i cellulari "troppo vecchi" (Series 60 1st-2nd), invogliandomi cosi' a trovare un'alternativa gratuita.
- Gli autori di LIRC  e WINLIRC, per avermi invogliato a trovare un'alternativa piu' semplice, ma anche per aver messo a disposizione i file di configurazione per SKY 
- La mailing list di LIRC, accessibile tramite il gateway di NABBLE dove ho trovato il convertitore in python dal formato PRONTO al formato LIRC per i "discrerte codes" della LG.
- Il mio progetto iniziale per ricreare un telecomando tramite il PC


Per informazioni:
cassioli at iol punto it