Ricevitore LIRC per Raspberry Pi

Hardware esterno.
Panelli LCD, TFT, HDTV, Telecomandi, Xbox-client, etc.

Moderatori: ragno, tapino, alez, zulu, davidea

Avatar utente
alez
Messaggi: 3074
Iscritto il: 09 mag 2007, 17:11

Ricevitore LIRC per Raspberry Pi

Messaggio da alez »

==== AGGIORNAMENTO DEL 17/06/2013 ====
Aggiunto comandi per killare eventlircd e lircd per la nuova versione di Raspbmc

Versione Ultimate del ricevtitore IR per Raspberry Pi basato su TSOP4848 realizzato su millefori:

Dettagli del moduletto
Immagine

Montato sulla Raspi
Immagine

Con case chiuso in accoppiata al mitico telecomando Hauppage
Immagine

Album completo disponibile qui:
http://imageshack.us/g/1/10081998/

Schema testato da me:

http://aron.ws/projects/lirc_rpi/rpi_li ... er_sch.png





Punto di partenza per le informazioni:

http://aron.ws/projects/lirc_rpi/

Uso su Raspbmc riassunto e semplificato:

carico il modulo lirc patchato (incluso in raspbmc recentemente)

Codice: Seleziona tutto

pi@raspbmc:~$ sudo modprobe lirc_rpi
fermo il demone lirc

Codice: Seleziona tutto

pi@raspbmc:~$ sudo /etc/init.d/lirc stop
[ ok ] Stopping remote control daemon(s): LIRC:.
Per essere sicuri che non ci siano processi che occcupano il device /dev/lirc0 dare anche questi 2 comandi

Codice: Seleziona tutto

sudo kill -9 `pidof eventlircd`
sudo kill -9 `pidof lircd`
test con mode 2

Codice: Seleziona tutto

pi@raspbmc:~$ sudo mode2 -d /dev/lirc0
space 2577683
pulse 951
space 822
pulse 927
space 854
pulse 923
space 847
pulse 932
space 829
pulse 950
space 829
pulse 923
space 858
pulse 1819
space 840
pulse 938
space 1704
[...]
Il file /etc/lirc/hardware.conf l'ho settato così, tramite il comando

Codice: Seleziona tutto

sudo nano /etc/lirc/hardware.conf

Codice: Seleziona tutto

# /etc/lirc/hardware.conf
#
# Arguments which will be used when launching lircd
LIRCD_ARGS="--uinput"

#Don't start lircmd even if there seems to be a good config file
#START_LIRCMD=false

#Don't start irexec, even if a good config file seems to exist.
#START_IREXEC=false

#Try to load appropriate kernel modules
LOAD_MODULES=true

# Run "lircd --driver=help" for a list of supported drivers.
DRIVER="default"
# usually /dev/lirc0 is the correct setting for systems using udev
DEVICE="/dev/lirc0"
MODULES="lirc_rpi"

# Default configuration files for your hardware if any
LIRCD_CONF=""
LIRCMD_CONF=""

Ho testato soprattutto 3 telecomandi:

- Technisat TTS35AI: non sono riuscito a farlo funzionare con il file di configurazione trovato sul sito http://lirc.sourceforge.net/remotes/technisat/ ma comunque acquisendo i codici con irrecord poi funzionava (cosa che con i sensori TSOP1738 e quello del lettore DVD non avveniva)
- Technotrend piccolo nero (molto diffuso in ambito VDR http://lirc.sourceforge.net/remotes/technotrend/TV-Card) ha funzionato subito
- Hauppage grigio (molto completo, http://www.linuxtv.org/wiki/index.php/H ... NOVA-T-500) addirittura ha già il lirc.conf presente dentro a /etc/lirc/hauppage45-pvr350-lircd.conf

Quindi prendendo come esempio l'ultimo telecomando, ho linkato il conf corretto:

Codice: Seleziona tutto

cd /etc/lirc/
sudo rm lircd.conf
sudo ln -s hauppage45-pvr350-lircd.conf lircd.conf
e fatto ripartire lirc

Codice: Seleziona tutto

pi@raspbmc:/etc/lirc$ sudo /etc/init.d/lirc restart
[ ok ] Stopping remote control daemon(s): LIRC:.
[ ok ] Loading LIRC modules:.
[ ok ] Starting remote control daemon(s) : LIRC :.
Si può testare che lirc lavori bene in accoppiata al lircd.conf con irw:

Codice: Seleziona tutto

pi@raspbmc:/etc/lirc$ irw
0000000000001794 00 KEY_UP Hauppauge
0000000000001797 00 KEY_RIGHT Hauppauge
0000000000001795 00 KEY_DOWN Hauppauge
0000000000001795 01 KEY_DOWN Hauppauge
0000000000001796 00 KEY_LEFT Hauppauge
0000000000001796 01 KEY_LEFT Hauppauge
00000000000017a5 00 KEY_OK Hauppauge
00000000000017a5 01 KEY_OK Hauppauge
00000000000017b5 00 KEY_PLAY Hauppauge
00000000000017b5 01 KEY_PLAY Hauppauge
00000000000017b6 00 KEY_STOP Hauppauge
00000000000017b6 01 KEY_STOP Hauppauge
0000000000001797 00 KEY_RIGHT Hauppauge
0000000000001797 01 KEY_RIGHT Hauppauge
0000000000001797 02 KEY_RIGHT Hauppauge
0000000000001797 00 KEY_RIGHT Hauppauge
0000000000001797 00 KEY_RIGHT Hauppauge
A questo punto mi è caduta la mascella :o perché senza configurare nient'altro XBMC ha iniziato ad eseguire i comandi che davo col telecomando. Indagando ho scoperto che non è necessario che ci sia per forza un lircmap.xml in userdata se LIRC nel file di configurazione ha ad esempio KEY_UP, KEY_DOWN, ecc... come labels, dato che XBMC si aspetta che siano quelle di default.

Per finire, per fare in modo che il modulo lirc_rpi venga caricato al boot, ho inserito la riga in /etc/modules:

Codice: Seleziona tutto

pi@raspbmc:~$ sudo nano /etc/modules

Codice: Seleziona tutto

 
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.
lirc_rpi
Spero che questo thread sia un utile spunto di partenza per tanti :)

==== FINE AGGIORNAMENTO ====





==== VECCHIO POST INTRODUTTIVO ====

Questa è solo una introduzione all'argomento, spero di aggiornarvi a breve con il resoconto dell'installazione funzionante del ricevitore.

Per ora mi sono autocostruito il ricevitore IR partendo da un moduletto recuperato da un lettore DVD guasto e l'ho collegato seguendo le istruzioni che si trovano in rete:

- PIN 1 (+3,3V) -> alimentazione ricevitore IR
- PIN 6 (GND) -> GND
- PIN 12 (GPIO18) -> segnale ricevitore IR

Immagine

I cavi come potete vedere sono di recupero da un vecchio case per PC

Immagine

Immagine

Per testare il funzionamento, il modo più semplice che ho trovato è leggere da shell il valore di gpio18 in questo modo:

settare gpio18 a diventare input

echo "18" > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio18/direction

loop per leggere il valore di gpio18 che cambia

while ((1)); do cat /sys/class/gpio/gpio18/value; done

Link utili:

- http://elinux.org/RPi_Low-level_periphe ... le_.28C.29
- http://mikehw.rddev.co.uk/?p=104
Ciao alez
Avatar utente
ragno
Messaggi: 3017
Iscritto il: 20 gen 2007, 09:43
Località: Marte e dintorni
Contatta:

Re: Ricevitore LIRC per Raspberry Pi

Messaggio da ragno »

In passato, avevo cercato anch'io qualcosa, poi ho scoperto il supporto CEC e mi sono dimenticato di tutto. :)
Comunque penso di prendere un'altra raspi, dal momento che quella che ho e' farcita con i codec, funziona solo come MC e non va bene per gli esperimenti.

:ciao:
vdr: 1.4.7+extpatch54 (pensionata), 1.7.27 (yavdr 0.4)
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.

E quando penso che sia finita,
è proprio allora che comincia la salita.
Avatar utente
alez
Messaggi: 3074
Iscritto il: 09 mag 2007, 17:11

Re: Ricevitore LIRC per Raspberry Pi

Messaggio da alez »

Per dovere di cronaca:

ho testato sia il ricevitore in foto che un TSOP1738 ma nessuno dei due funziona correttamente con lirc.

Il primo (quello estratto dal lettore DVD) funziona con il test del primo post (lettura valore GPIO18) ma poi con LIRC da una sfilza di dati insensati, mentre lo TSOP1738 non funziona neanche col test GPIO.

Leggendo ho visto che non tutti i sensori sono adatti, e funzionando a 3,3V sono molto instabili, vedrò di procurarmi quello consigliato, lo TSOP1238, TSOP4838 o TSOP38238 (quest'ultimo dovrebbe essere il sostituto del 1738 uscito di produzione)

non ho ancora capito quale sia il migliore... se qualcuno lo riesce a capire sarebbe una cosa buona.

Intanto mi restano da testare ancora un po di ricevitori delle schede DVB che ho da parte.
Ciao alez
Avatar utente
alez
Messaggi: 3074
Iscritto il: 09 mag 2007, 17:11

Re: Ricevitore LIRC per Raspberry Pi

Messaggio da alez »

Oppure il Vishay TSOP75238W potrebbe essere un'alternativa, dato che ci si basa questo prodotto commerciale:

http://nwazet.com/nwazet-pi-infrared-receiver

il sito è specializzato su case e componenti per fare mediacenter con Raspberry Pi, tutto hardware OpenSource

http://nwazet.com/
Ciao alez
Avatar utente
ragno
Messaggi: 3017
Iscritto il: 20 gen 2007, 09:43
Località: Marte e dintorni
Contatta:

Re: Ricevitore LIRC per Raspberry Pi

Messaggio da ragno »

Mi pare che i maggiori problemi derivino del fatto che i gpio della raspi vadano a 1,8v, ma forse mi confondo con quelli della DockStar...

:ciao:
vdr: 1.4.7+extpatch54 (pensionata), 1.7.27 (yavdr 0.4)
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.

E quando penso che sia finita,
è proprio allora che comincia la salita.
Avatar utente
alez
Messaggi: 3074
Iscritto il: 09 mag 2007, 17:11

Re: Ricevitore LIRC per Raspberry Pi

Messaggio da alez »

Non ho trovato niente di ufficiale ma qui dicono 3.3 V:

http://elinux.org/RPi_Low-level_peripherals
The pins use a 3V3 logic level and are not tolerant of 5V levels, such as you might find on a 5V powered Arduino.

Nel frattempo ho ordinato da un venditore italiano uno TSOP 4838, quindi tra poco dovrei riuscire a testare anche quello.
Ciao alez
Avatar utente
alez
Messaggi: 3074
Iscritto il: 09 mag 2007, 17:11

Re: Ricevitore LIRC per Raspberry Pi

Messaggio da alez »

Ottima notizia!

Mi è arrivato lo TSOP4838 e funziona!!!

Se qualcuno vuole usare il mio stesso venditore, su eBay deve cercare

"Ricevitore IR infrarosso TSOP 4838 38Khz-1Pz." - 1,80 + 1,50 di spedizione (quasi meglio che dalla Cina :lol: dato che ci mette poco ad arrivare :) )

Ora butto giù due righe e le pubblico ;)
Ciao alez
Avatar utente
alez
Messaggi: 3074
Iscritto il: 09 mag 2007, 17:11

Re: Ricevitore LIRC per Raspberry Pi

Messaggio da alez »

==== CONTENUTO DEL POST SPOSTATO ED ACCORPATO NEL PRIMO POST IN ALTO ====
Ciao alez
Avatar utente
zulu
Messaggi: 605
Iscritto il: 27 ott 2007, 09:48

Re: Ricevitore LIRC per Raspberry Pi

Messaggio da zulu »

Grazie Alez per la guida ...
... ho il tuo stesso ricevitore (ovviamente anche la raspberry :-) ) ...

... come lo hai collegato? Senza nulla (direttamente sui piedini) o hai messo le resistenze e i condensatori?

saluti
zulu
Avatar utente
alez
Messaggi: 3074
Iscritto il: 09 mag 2007, 17:11

Re: Ricevitore LIRC per Raspberry Pi

Messaggio da alez »

Collegato senza niente, direttamente coi piedini. Volevo fare qualche prova mettendo anche una resistenza da 100 Ohm tra +3.3 V e Vin del ricevitore ed un condensatore elettrolitico come consigliato qui:

http://aron.ws/projects/lirc_rpi/

Sono modifiche che dovrebbero rendere meno sensibile il ricevitore IR ad eventuali alimentazioni sporche che arrivano dalla Raspi.

Per ora come indicato nel primo post ho usato dei fili con connettore per scheda madre tolti da case per PC da discarica, ma penso che prossimamente mi realizzerò una mini schedina su millefori da mettere dentro al case della Raspi direttamente, anche l'idea di fare un case più grosso con anche un HUB USB / HDD / lettore di schedine / lettore DVD mi balena...
Ciao alez
Avatar utente
zulu
Messaggi: 605
Iscritto il: 27 ott 2007, 09:48

Re: Ricevitore LIRC per Raspberry Pi

Messaggio da zulu »

@alez: Sfruttato il tuo tutorial e, soprattutto, l'indicazione del sensore ...
.. raspberry con xbmc in produzione in camera con telecomando ir ;-)

Unico problema incontrato: pur avendo usato il telecomando xbox vers 1 (che dovrebbe essere riconosciuto al volo) ho dovuto ricreare un nuovo lircd.conf.

saluti
zulu
Avatar utente
alez
Messaggi: 3074
Iscritto il: 09 mag 2007, 17:11

Re: Ricevitore LIRC per Raspberry Pi

Messaggio da alez »

Bene :ok: sono contento che il tutorial sia servito :mrgreen:

Ti è capitato come col mio telecomando TTS35AI, ho dovuto rileggere tutto con irrecord.

Per curiosità, hai messo anche la resistenza ed il condensatore o solo il ricevitore diretto?





Hai le licenze aggiuntive o per ora solo Raspi "base"?

Hai provato il PVR client verso il Vu+ Duo? Io non riesco a farlo andare...
Ciao alez
Avatar utente
ragno
Messaggi: 3017
Iscritto il: 20 gen 2007, 09:43
Località: Marte e dintorni
Contatta:

Re: Ricevitore LIRC per Raspberry Pi

Messaggio da ragno »

Comprate le licenze, costano come un cappuccino e brioche... :ok:

:ciao:

p.s. che bello andare di CEC :mrgreen: , pero' il lavoro di alez puo' sempre servire ed e' diy :lol: :lol: :lol:
vdr: 1.4.7+extpatch54 (pensionata), 1.7.27 (yavdr 0.4)
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.

E quando penso che sia finita,
è proprio allora che comincia la salita.
Avatar utente
zulu
Messaggi: 605
Iscritto il: 27 ott 2007, 09:48

Re: Ricevitore LIRC per Raspberry Pi

Messaggio da zulu »

allora ... in ordine sparso:

* comprerò le licenze: in realtà non so se quella VC1 mi possa essere utile a qualcosa ...

* contavo di provare il "plugin pvr' per il vuduo+ stasera, ma le notizie che mi dai non mi confortano :-/ .. ti farò sapere.

* ho in effetti dovuto rifare tutto con irrecord

* niente resistenze e niente condensatore (non credo che sia per quello, ma molto raramente impazzisce e ripete i comandi fino alla pressione di un altro tasto ... )

saluti
zulu
Avatar utente
alez
Messaggi: 3074
Iscritto il: 09 mag 2007, 17:11

Re: Ricevitore LIRC per Raspberry Pi

Messaggio da alez »

Separato argomenti PVR in questo nuovo thread:

viewtopic.php?f=8&t=2032

E, cosa più "invasiva", siccome ho realizzato un moduletto su millefori, ho colto l'occasione per spostare gli aggiornamenti più importanti di questo thread tutti nel primo post in alto, in modo che sia tutto visibile da subito ad un utente che è interessato all'argomento.
Ciao alez
Rispondi