Receptor universal de mandos infrarrojos

Hoy comparto con vosotros una aplicación que os permitirá controlar vuestro PC con cualquier mando a distancia compatible. Es una solución ideal para aquellos ordenadores utilizados como base para un sistema multimedia.

Si alguna vez has utilizado tu ordenado parar reproducir vídeo o mostrar fotos a tu familia en el televisor, o has conectado la salida de audio de tu computador al equipo de música; esta herramienta te dará un control más cómodo y personalizado de tus aplicaciones favoritas a través de la simulación de eventos de teclado.

Motivación


Atrás queda la época en la que los computadores personales dedicaban casi el cien por cien de su trabajo a tareas de ofimática. Hoy en día son muchos los usuarios que usan su ordenador como centro de entretenimiento. Videojuegos, música, series, películas o televisión en directo son algunos de los servicios más populares.

Los Home Theater Personal Computers (HTPC) son una de las opciones que aúnan las ideas de computador convencional y centro multimedia. En este sector, la plataforma por excelencia es Kodi. Antes conocida como XBMC, es un software libre de gestión de contenidos audiovisuales. La interfaz de Kodi fue ideada para ser utilizada en pantallas de tipo televisión, y aquí comienza a surgir el problema.

A pesar de ser multiplataforma, la aplicación Kodi suele ser utilizada en ordenadores dedicados. En este tipo de sistemas, la torre del computador tiende a estar colocada en un lugar poco accesible, conectada directamente a la televisión. Además existen escasas combinaciones de TV y GPU que permitan una conexión CEC entre ambos dispositivos. De este modo, resulta difícil controlar el HTPC de una manera ágil y cómoda.

Exploración de ideas


Ante dicho problema, comencé a buscar hace más de un año un software o hardware que me permitiera controlar mi PC con el mando a distancia de mi televisor. Con el objetivo de mantener un presupuesto reducido en el proyecto, centré la búsqueda en una solución basada en Arduino. A continuación os propongo una lista con la exploración de ideas:

• Detección de infrarrojos con una placa Arduino Due o Arduino Zero, basadas en el procesador 32u4. Utilizando las bibliotecas Keyboard y Mouse para la emulación de los eventos de teclado y ratón. Dicho componente podría ser, incluso, re-programable a través de una aplicación de escritorio que enviase comandos a través de los puertos seriales del PC.

• Transferencia de los códigos, recibidos en una placa Arduino Nano, por medio de un puerto serial a una aplicación en segundo plano en el PC. La interpretación del código tiene lugar en el lado del ordenador.

Fue esta segunda opción la que decidí implementar por suponer menor inversión monetaria y tener la ventaja de ser fácilmente configurable desde la interfaz de la aplicación de escritorio.

Implementación


El proyecto se compone de dos partes interdependientes: una placa Arduino con un sensor infrarrojo y una herramienta software en el PC que recibe e interpreta los códigos IR.

Arduino: receptor infrarrojo

El montaje electrónico necesario es bastante sencillo. Consta de los siguientes materiales:

• Una placa Arduino a vuestra elección. Aunque resumiendo la versión Nano por su reducido tamaño.

• Un módulo receptor de infrarrojos. Como el VS1838B.

• Cable USB

• (opcional) Una placa de prototipado.

Es necesario alimentar el receptor con una tensión de 5V entre las patillas correspondientes (véase datasheet de su módulo). La señal de datos es enviada a la placa por medio de la tercera patilla (DATA) que ha de conectarse a una de las entradas digitales de Arduino, en mi caso D2. El esquema eléctrico del montaje es el siguiente:

         

Después de eso, es tan sencillo como subir a la placa Arduino el siguiente código:

Puedes comprobar a través de un monitor serial en tu ordenador si la placa Arduino arroja el resultado deseado.  Para ello pulse varias veces una tecla de su mando a distancia. La salida para una misma tecla debería ser siempre idéntica.

Ordenador: intérprete de códigos

La herramienta desarrollada se sitúa en el otro extremo de la comunicación serial. Se trata de una aplicación en segundo plano con una interfaz de configuración. El funcionamiento, que será explicado más adelante, se basa en la lectura de código a través de uno de los puertos de comunicación-serie (COM) de nuestro PC.

Instalación

Para instalar la utilidad, descargua el instalador desde el repositorio de Github.

El proceso de instalación es auto-guiado. Cuando el instalador te lo solicite, selecciona la ruta de instalación que deses. La aplicación creará un acceso directo en Inicio para mayor comodidad. Para cualquier duda contacta conmigo.

Uso de la aplicación


Conecta el módulo basado en Arduino al ordenador a través del puerto USB (conversor TTL-USB) de tu placa. Windows descargará los controladores del dispositivo desde Internet si es la primera vez que realizas esta conexión.

A continuación abre la aplicación que has descargado en el paso anterior. Debería aparecer el menú de configuración.

Opciones de configuración

Serial port: selecciona el número de puerto de comunicación (COM) al que se ha conectado tu placa Arduino. Puedes obtener más información en el administrador de dispositivos del sistema. Si no aparece tu placa: desconecta el USB, vuélvelo a conectar y presiona el botón Refresh.

Baudrate: selecciona la velocidad de sincronización de la comunicación serial. Defecto: 9600 baudios.

• Inicial minimizado en el área de notificaciones: si esta marcada, el programa no mostrará este menú al iniciarse

Enabled / Disabled: permite activar y desactivar la detección de código. Cuando está desactivada, la aplicación no ejecutará los eventos de teclado programados.

None: muestra el código IR que activa y desactiva la detección. Defecto: None (ninguno)

• Code received: último código recibido por la comunicación serial.

Key shortcut: combinación de teclas detectada.

• Record keys: presiona este botón para grabar una nueva combinación de teclado. Cuando el botón se oscurezca, realiza la combinación deseada.

• Add (+): añade la combinación de código y teclas actual al registro.

• Remove (-): elimina la entrada seleccionada (remarcada en azul) del registro.

• Register: registro de códigos guardados.

• File > New config: crea una configuración nueva desde cero.

• File > Open config: abre un archivo de configuración (.cfg)

• File > Save config (As): guarda la configuración actual a un archivo cfg.

• File > Set ‘Enable’ key: establece el último código IR recibido como tecla para habilitar y deshabilitar la detección.

Uso de la aplicación

Configura tu nuevo mando o importe un archivo de configuración (.cfg). Para añadir nuevas teclas al registro:

1. Pulsa la tecla en su mando a distancia. El código aparecerá en la casilla “Code received”.

2. Pulsa sobre “Record keys” y realiza la combinación de teclas deseada.

3. Pulsa el botón “Add (+)” para guardar la entrada en el registro.

Es necesario guardar la configuración a un archivo (.cfg) siempre que se modifica el registro de teclas.

Si ya tienes configurado tu mando a distancia, minimiza la aplicación. Quedará oculta en el área de notificaciones de tu barra de herramientas.

¡Ya puedes utilizar tu mando a distancia en cualquier aplicación!

Ejemplo de archivo de configuración

Este es el archivo de configuración de mi mando a distancia. Modelo Hisense EN2X27HS, distribuido con la televisión H43M3000.

Reporte de fallos


Para cualquier fallo o incidencia, abre una incidencia en el repositorio de Github explicando detalladamente el problema.

Espero que te sea de utilidad.

Sé el primero en comentar

Seguro que tienes algo que decir. ¡Adelante!

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

A %d blogueros les gusta esto: