Categorías: RaspBerry Pi

Raspberry Pi sensor IR y mando a distancia

 

En esta entrada os vamos a enseñar como conseguir manejar vuestro XBMC con el mando del salón, sin tener que recurrir a mandos especiales (mandos universales o configurables) de una manera más o menos sencilla y lo mejor de todo muy económica.

Materiales que necesitamos

Lo primero de todo es buscar aquellas partes que vamos a utilizar y que seguramente tendremos que comprar:

  • Una Raspberry Pi, el manual está pensado para hacerlo con este aparato y no sé si se podría hacer con otro aparato.
  • Unos cables con conectores, es la manera más sencilla de poder usar los pines GPIO de la Raspberry Pi y evitar tener que soldar y conseguir que cada conector quede aislado. (Los podéis buscar poniendo “Dupont Wire Color Jumper”).
  • Un receptor Infrarrojo, esto es como un pequeño LED montado en un transistor. Yo he utilizado este: TSOP4838

Cómo hacer un sensor IR

Todo nuestro manual se basa en la tecnología infrarroja, para no extendernos diremos que los mandos de televisión y otros controles remotos, suelen usar una parte del espectro que no es visible denominado infrarrojo, por esos “canales” envían la información de manera que no interfieran con otras tecnologías como el WiFi o el propio Bluetooth, que también usan parte del espectro no visible al ser humano.

Lo que nosotros vamos a realizar es, instalar un receptor IR para capturar la señal de nuestro mando y una vez capturada, asignar cada señal a un botón de XBMC (desplazamientos, play/pause, stop etc). Así podremos manejar nuestro XBMC con el mismo mando que el de la televisión.

El circuito

Lo primero que debemos hacer es conectar nuestro sensor IR a nuestro Raspberry Pi para ello solo tenemos que usar los cables anteriormente mencionados, no hace falta ninguna resistencia ni electrónica auxiliar.

Conexión del sensor IR en los puertos GPIO de la Raspberry PI

Configurando el sensor

Lo mejor para esta parte es utilizar un ordenador portátil o tableta y conectarnos vía ssh a nuestra Raspberry Pi en el mismo lugar donde tengamos el dispositivo y el mando.

Lo primero de todo es instalar LIRC que es el software que vamos a utilizar, para ello si no lo tienen instalado deberán poner:

 

$ sudo apt-get install lirc

Una vez que ya está instalado, usaremos los siguientes comandos en este orden:

$ sudo modprobe lirc_rpi

Esto lo que hace es cargar el driver

$ sudo kill $(pidof lircd)

Que lo que hace es matar el proceso lircd por si está funcionando.

mode2 -d /dev/lirc0

Ahora es cuando debemos pulsar botones de nuestro mando, se tendría que recibir algo similar a esto:

Esto significa que el sensor recibe datos de nuestro mando.

Asignando cada tecla a nuestro mando

Aquí hay dos maneras de seguir el manual:

  1. La manera más sencilla, entrar aquí y descargar el archivo lirc.conf de vuestro mando.
  2. Generar el lirc.conf a mano, solo se debería de hacer si no encontramos el archivo, ya que es muy tedioso, consiste en ejecutar $ irrecord –list-namespace para ver los “botones” que tiene XBMC y apuntar esto en un papel y luego ejecutar $ irrecord -d /dev/lirc0 ~/lircd.conf con esto nos saldrá un asistente que nos pedirá el nombre de un botón y que luego pulsemos la tecla del mando que queramos asignar a ese botón. Esto proceso se repetirá con todos los botones que queramos configurar.

Una vez que tenemos el archivo lirc.conf descargado o creado “a mano”, debemos moverlo a la carpeta de lirc, para ello:

luego ejecutamos $ mv ruta-a-lirc.conf/lirc.conf /etc/lirc/lirc.conf

Luego de reiniciar, ejecutamos $ irw y deberíamos ver como ya nos reconoce las teclas:

Asignación de teclas a XBMC

Este paso puede ser innecesario para los usuarios que en irw en lugar de salirle los mensajes que me salen a mi de Up, Down le salgan mensajes del tipo KEY_PLAYPAUSE, como en mi caso no era, os enseño como arreglarlo. Se basa en decirle a XBMC que las teclas se van a llamar de forma distinta para ello:

$ cd

$ cd .xbmc/userdata

$ nano Lircmap.xml

Tendréis que ver algo así:

Seguramente os salgan menos líneas, la manera de editar el fichero es:

  • Los tags <title> <down> etc se pueden ver aquí y son los botones que tiene oficialmente XBMC.
  • Entre esos tags lo que debemos colocar es el texto tal cual, sale cuando ejecutamos irw y pulsamos el botón del mando que queremos asociar a ese botón.

De esta manera le estamos diciendo, cuando LIRC reconozca el botón X asociado al Play, te dará el mensaje por ejemplo Play/Pause, pues cuando XBMC reciba el mensaje Play/Pause debe accionar el botón play. Todo esto se hace poniendo:

<play>Play/Pause</play>

Así uno a uno vamos ajustado los botones según queramos personalizar nuestra configuración y de esta manera se adapta a nuestro mando.

Esperamos que este tutorial os sea útil y para cualquier duda o sugerencia, os contestaremos a vuestros comentarios lo más rápido que podamos.

 

 

Jorge Durán

Entusiasta de la tecnología desde los 10 años, desarrollador y creador de varios proyectos de software y autodidacta por naturaleza. Ingeniero Informático por la USAL y .Net backend developer en idealista.

Share
Publicado por
Jorge Durán

Recent Posts

Docker: conceptos principales y tutorial paso a paso

Hoy queremos hablaros de Docker un proyecto que cada día es más usado, porque permite…

3 años hace

Crea diagramas rápidamente usando código

Cada vez estamos más acostumbrados a usar código para generar la infraestructura (IaC), documentar nuestro…

3 años hace

Procesamiento del lenguaje natural con ElasticSearch

Uno de los problemas que se presentan con una mayor frecuencia hoy en día, es…

4 años hace

Elige tecnología clásica y aburrida

Uno de los problemas que solemos tener los programadores, es que nos gusta estar a…

4 años hace

Cómo usar Docker en Windows

Docker es una de las herramientas más usadas por los desarrolladores, sin embargo, usarlo en…

4 años hace

Analiza el coste del uso de JavaScript

Como seguramente sabrás el uso de JavaScript ha crecido exponencialmente en los últimos tiempos, sin…

4 años hace