LIRC: controlla il tuo Raspberry con un telecomando
English version here!
Dopo alcuni mesi di utilizzo del mio Raspberry come dispositivo Spotify Connect ho pensato che potesse essermi molto utile poter controllare la riproduzione della musica con il telecomando dello stereo.
Sfrutteremo quindi un sensore a infrarossi collegato ai pin GPIO disponibili sul Raspberry, interpretando gli input con lo strumento LIRC.
Per poter arrivare a una configurazione funzionante ho dovuto procedere per (numerosi) tentativi perché la maggior parte delle informazioni che si trovano sui forum non sono aggiornate per poter funzionare anche su Raspbian Buster, che è l’ultima versione rilasciata al momento. Infatti il supporto a LIRC (lo strumento che useremo per interpretare l’input del nostro telecomando) è in corso di modifica dagli sviluppatori di Raspbian.
Per prima cosa parliamo del materiale necessario:
Per prima cosa effettuiamo i collegamenti necessari usando i cavetti jumper.
Il sensore IR che ho usato ha due pin per l’alimentazione (Vs, pin 3, e GND, pin 2), che collegheremo al pin 3.3V e a quello GND, e un pin per la comunicazione (pin 1), che collegheremo al pin GPIO 17. Prima di effettuare i collegamenti controlla sul datasheet del tuo sensore che tutto sia corretto.
Ora collega gli altri capi dei cavetti jumper in questo modo:
Perfetto! Ora l’hardware è pronto, non ci resta che accendere il Raspberry e occuparci del software.
Come dicevo nell’introduzione, dall’introduzione di Raspbian Buster la procedura per rendere LIRC completamente funzionante è diventata un po’ più complessa. Segui passo passo le istruzioni riportate per non avere problemi.
Per prima cosa prepariamo l’ambiente per l’installazione:
Se dovessi aver già installato LIRC per qualche motivo disinstallalo:
Ora procediamo all’installazione della versione corretta e funzionante di LIRC.
Attenzione! Sul mio Pi2 questo passaggio ha impiegato quasi 45 minuti.
L’ultimo comando di installazione dovrebbe fallire, è normale.
Ora aggiungi al file
(se hai cambiato il pin GPIO a cui il tuo sensore è collegato metti qui in numero corrispondente)
Poi esegui questi comandi
Ora puoi riprovare il comando di installazione (che riporto qui sotto)
La procedura ora dovrebbe andare a buon fine.
Per concludere modifica il file
Per verificare che effettivamente il sensore IR funzioni esegui il comando
Premendo dei tasti qualsiasi sul telecomando dovresti vedere una situazione del genere:
Benissimo! Ora è tutto pronto per configurare il nostro telecomando.
Con il comando
Una volta conclusa tutta la procedura copia il file
Riavvia il Raspberry.
Ora, lanciando il comando
Questo significa che la procedura di riconoscimento dei tasti è stata completata con successo!
E ora? Ultimo passaggio, tieni duro!
Adesso dobbiamo configurare
Vai alla cartella home e crea (o modifica) il file
Per ogni pulsante crea una sezione simile a questa
Dove nel campo
Salva il file e abilita l’esecuzione di
Se non dovesse funzionare copia il file
Riavvia il Raspberry e… fine! Ora dovrebbe rispondere ai tuoi tele-comandi 😁
Ora è la base è pronta: segui la prossima guida per preparare dei semplici script che ti permetteranno di controllare la riproduzione di Spotify con il telecomando appena configurato!
In futuro racconterò invece come creare dei semplici script che dicano a Spotify che tasto hai premuto sul telecomando, facendo in modo che risponda ai tuoi ordini.
Dopo alcuni mesi di utilizzo del mio Raspberry come dispositivo Spotify Connect ho pensato che potesse essermi molto utile poter controllare la riproduzione della musica con il telecomando dello stereo.
Sfrutteremo quindi un sensore a infrarossi collegato ai pin GPIO disponibili sul Raspberry, interpretando gli input con lo strumento LIRC.
Per poter arrivare a una configurazione funzionante ho dovuto procedere per (numerosi) tentativi perché la maggior parte delle informazioni che si trovano sui forum non sono aggiornate per poter funzionare anche su Raspbian Buster, che è l’ultima versione rilasciata al momento. Infatti il supporto a LIRC (lo strumento che useremo per interpretare l’input del nostro telecomando) è in corso di modifica dagli sviluppatori di Raspbian.
Per prima cosa parliamo del materiale necessario:
- Raspberry (qualsiasi versione)
- Alimentatore e cavo
- Connessione a internet
- 3 cavi jumper femmina-femmina
- Ricevitore IR a 38 kHz
Per prima cosa effettuiamo i collegamenti necessari usando i cavetti jumper.
Il sensore IR che ho usato ha due pin per l’alimentazione (Vs, pin 3, e GND, pin 2), che collegheremo al pin 3.3V e a quello GND, e un pin per la comunicazione (pin 1), che collegheremo al pin GPIO 17. Prima di effettuare i collegamenti controlla sul datasheet del tuo sensore che tutto sia corretto.
| Crediti immagine |
Ora collega gli altri capi dei cavetti jumper in questo modo:
Comunicazione (pin 1)
|
GPIO17 (pin 11)
|
GND (pin 2)
|
GND (pin 6)
|
Vs (pin 3)
|
3.3V (pin 1)
|
![]() |
| Crediti immagine |
Perfetto! Ora l’hardware è pronto, non ci resta che accendere il Raspberry e occuparci del software.
Come dicevo nell’introduzione, dall’introduzione di Raspbian Buster la procedura per rendere LIRC completamente funzionante è diventata un po’ più complessa. Segui passo passo le istruzioni riportate per non avere problemi.
Per prima cosa prepariamo l’ambiente per l’installazione:
sudo su -c "grep '^deb ' /etc/apt/sources.list | sed 's/^deb/deb-src/g' > /etc/apt/sources.list.d/deb-src.list"
sudo apt update
sudo apt install devscriptsSe dovessi aver già installato LIRC per qualche motivo disinstallalo:
sudo apt remove lirc liblirc0 liblirc-client0Ora procediamo all’installazione della versione corretta e funzionante di LIRC.
Attenzione! Sul mio Pi2 questo passaggio ha impiegato quasi 45 minuti.
sudo apt install dh-exec doxygen expect libasound2-dev libftdi1-dev libsystemd-dev libudev-dev libusb-1.0-0-dev libusb-dev man2html-base portaudio19-dev socat xsltproc python3-yaml dh-python libx11-dev python3-dev python3-setuptools
mkdir build
cd build
apt source lirc
wget https://raw.githubusercontent.com/neuralassembly/raspi/master/lirc-gpio-ir-0.10.patch
patch -p0 -i lirc-gpio-ir-0.10.patch
cd lirc-0.10.1
debuild -uc -us -b
cd ..
sudo apt install ./liblirc0_0.10.1-5.2_armhf.deb ./liblircclient0_0.10.1-5.2_armhf.deb ./lirc_0.10.1-5.2_armhf.deb L’ultimo comando di installazione dovrebbe fallire, è normale.
Ora aggiungi al file
/boot/config.txt le seguenti righe
dtoverlay=gpio-ir,gpio_pin=17
dtoverlay=gpio-ir-tx,gpio_pin=18(se hai cambiato il pin GPIO a cui il tuo sensore è collegato metti qui in numero corrispondente)
Poi esegui questi comandi
sudo cp /etc/lirc/lirc_options.conf.dist /etc/lirc/lirc_options.conf
sudo cp /etc/lirc/lircd.conf.dist /etc/lirc/lircd.conf
sudo mv /etc/lirc/lircd.conf.d/devinput.lircd.conf /etc/lirc/lircd.conf.d/devinput.lircd.conf.distOra puoi riprovare il comando di installazione (che riporto qui sotto)
sudo apt install ./liblirc0_0.10.1-5.2_armhf.deb ./liblircclient0_0.10.1-5.2_armhf.deb ./lirc_0.10.1-5.2_armhf.deb La procedura ora dovrebbe andare a buon fine.
Per concludere modifica il file
/etc/lirc/lirc_options.conf con i seguenti valoridriver = default
device = /dev/lirc1Per verificare che effettivamente il sensore IR funzioni esegui il comando
mode2, sullo schermo dovrebbe apparireUsing driver default on device /dev/lirc1
Trying device: /dev/lirc1
Using device: /dev/lirc1Premendo dei tasti qualsiasi sul telecomando dovresti vedere una situazione del genere:
pulse 2393
space 602
pulse 1201
space 601
pulse 1209
space 596
pulse 595
space 605
pulse 595
space 604
pulse 1198Benissimo! Ora è tutto pronto per configurare il nostro telecomando.
Con il comando
irrecord andremo ad abbinare alla sequenza di pulse e space caratteristica di ogni pulsante un significato. Segui le indicazioni che il programma riporta e prendi nota del nome che darai al telecomando: ci servirà in seguito. Fa’ attenzione: non tutti i nomi dei pulsanti sono validi. Devono infatti appartenere alla lista che puoi trovare qui: https://www.ocinside.de/modding_en/linux_ir_irrecord_list/Una volta conclusa tutta la procedura copia il file
nome-telecomando.lirc.conf nella cartella di LIRC:sudo cp nome-telecomando.lirc.conf /etc/lircd/lircd.confRiavvia il Raspberry.
Ora, lanciando il comando
irw e premendo dei tasti sul tuo telecomando dovresti vedere una cosa del genere:
000000000009cb9c 00 KEY_PAUSE nome-telecomando
000000000009cb9c 01 KEY_PAUSE nome-telecomando
000000000009cb9c 02 KEY_PAUSE nome-telecomando
000000000009cb9c 03 KEY_PAUSE nome-telecomando
000000000004cb9c 00 KEY_PLAY nome-telecomando
000000000004cb9c 01 KEY_PLAY nome-telecomando
000000000004cb9c 02 KEY_PLAY nome-telecomando
000000000004cb9c 03 KEY_PLAY nome-telecomandoQuesto significa che la procedura di riconoscimento dei tasti è stata completata con successo!
E ora? Ultimo passaggio, tieni duro!
Adesso dobbiamo configurare
irexec in modo che, quando un tasto viene premuto, il nostro Raspberry sappia cosa fare.Vai alla cartella home e crea (o modifica) il file
.lircrccd ~/
nano .lircrcPer ogni pulsante crea una sezione simile a questa
begin
remote = nome-telecomando
prog = irexec
button = KEY_NEXTSONG
config = echo “Avanti”
repeat = 0
endDove nel campo
button metti il nome del pulsante da configurare e nel campo config il comando che deve scattare quando il bottone viene premuto.Salva il file e abilita l’esecuzione di
irexec come servizio:sudo systemctl enable irexec.serviceSe non dovesse funzionare copia il file
.lircrc in /etc/lirc con il nome irexec.lircrcsudo cp ~/.lircrc /etc/lirc/irexec.lircrcRiavvia il Raspberry e… fine! Ora dovrebbe rispondere ai tuoi tele-comandi 😁

Commenti
Posta un commento