Tabla de contenido:

El control remoto por infrarrojos de la computadora: 4 pasos
El control remoto por infrarrojos de la computadora: 4 pasos

Video: El control remoto por infrarrojos de la computadora: 4 pasos

Video: El control remoto por infrarrojos de la computadora: 4 pasos
Video: CONTROLADOR INTELIGENTE IR WIFI🔻TUTORIAL SMART LIFE, ALEXA y GOOGLE HOME🔻1️⃣Cap. 2024, Noviembre
Anonim
El control remoto por infrarrojos de la computadora
El control remoto por infrarrojos de la computadora

Además de muchos otros propósitos, estoy usando mi PC como centro multimedia. Hay momentos en que me relajo en el sofá escuchando música o viendo una película o televisión y no tengo ganas de levantarme para ajustar el volumen o cambiar el canal de televisión cada vez que aparecen anuncios estúpidos o me estoy quedando dormido y deseo el silencio. Así que he decidido hacer que mi PC sea controlado a distancia con un control remoto IR estándar para poder presionar instantáneamente el botón en lugar de agarrar furiosamente el mouse o la tecla de silencio en el teclado.

El proyecto consta de varias partes:

  1. Control remoto
  2. Software para PC
  3. Módulo receptor de infrarrojos

Paso 1: el control remoto

El control remoto
El control remoto

El primer elemento, el control remoto, es trivial para terminar. Simplemente use cualquier control de infrarrojos que desee. Usé el que está a la venta como conjunto junto con el receptor de infrarrojos; vea la imagen. La única razón por la que me he decidido por este tipo es porque ya lo tenía en casa.

Paso 2: software

He creado el programa para el sistema operativo GNU / Linux que se ejecuta en una terminal. El código fuente se puede descargar / usar / compartir / modificar gratis. Para compilar el código, simplemente emita el comando gcc -o remotePC remotePC.c en la terminal. Para ejecutar el programa, escriba./remotePC.

La siguiente información en este paso está dirigida a aquellos que estén interesados en cómo funcionan las cosas.

La descripción del programa

El programa primero verifica si existe el archivo / dev / ttyACM0 o ttyACM1. Si es así, se verifica que el ID de grupo del archivo sea diferente de cero. Esto significa que el usuario común puede leer y escribir en el puerto serie. Luego se escriben dos bytes con valores 0xAA 0x55 en el puerto para indicar que el programa está listo para recibir los datos. Los datos entrantes se comparan con los valores almacenados. Si se encuentra la coincidencia, se ejecuta la acción predefinida.

El control de volumen

El programa puede encender / apagar el sonido, aumentar / disminuir el nivel de volumen en el nivel del sistema. Esto se logra con el uso del programa pactl. Los comandos se ven así:

pactl set-sink-mute 0 alternar

pactl set-sink-volume 0 + 10%

pactl set-sink-volume 0-10%

Si es necesario, instale los paquetes solicitados.

El control de VLC Media Player

El programa también puede iniciar / pausar el audio / video y cambiar la pista a la anterior / siguiente en la lista de reproducción del VLC Media Player. En este caso, se utiliza Desktop Bus. Los comandos:

dbus-send --type = method_call --dest = org.mpris. MediaPlayer2.vlc

/ org / mpris / MediaPlayer2 org.mpris. MediaPlayer2. Player. PlayPause

dbus-send --type = method_call --dest = org.mpris. MediaPlayer2.vlc

/ org / mpris / MediaPlayer2 org.mpris. MediaPlayer2. Player. Next

dbus-send --type = method_call --dest = org.mpris. MediaPlayer2.vlc

/ org / mpris / MediaPlayer2 org.mpris. MediaPlayer2. Player. Previous

Paso 3: módulo receptor de infrarrojos

Módulo receptor de infrarrojos
Módulo receptor de infrarrojos
Módulo receptor de infrarrojos
Módulo receptor de infrarrojos
Módulo receptor de infrarrojos
Módulo receptor de infrarrojos

La tercera parte del proyecto es la más compleja pero bastante simple. La idea es que el receptor de infrarrojos envíe la señal a la MCU que la transformará en un número único. Este número se transmitirá a la PC a través del USB.

El módulo está diseñado para montarse dentro de la carcasa de la PC y conectarse a la ranura USB de la placa base con el cable. En caso de que prefiera la conexión externa al USB, tendrá que realizar pequeños ajustes.

MCU

He construido el módulo en el microcontrolador PIC16F1829. La elección de la MCU no es crítica, puede usar cualquier otra MCU si puede ajustar el código fuente. He elegido este PIC por dos razones. Primero lo tenía disponible y segundo, sus pines estaban parcialmente dañados por el uso intensivo en los diferentes proyectos de prueba. Así que quería usarlo en el proyecto permanente antes de que se vuelva totalmente inutilizable.:-)

receptor IR

La segunda parte en la que se basa el módulo es el receptor de infrarrojos VS1838B, el mencionado en el primer paso.

Convertidor UART / USB

La tercera parte es el MCP2221 que es el convertidor UART / I2C / USB.

La tarea es combinar estas 3 partes para construir el módulo que podrá recibir las señales del control remoto por infrarrojos y entregarlas a la PC.

El cableado

En la primera imagen está el circuito de prueba en la placa de pruebas. En el segundo está el esquema de cableado.

La lista de partes

1 pieza PIC16F1829 (o cualquier otro MCU)

1 pc VS1838B (o cualquier otro receptor de infrarrojos)

1 pieza MCP2221 (o cualquier otro convertidor UART / USB)

2 piezas de cabezal de 4 pines

1 cabezal de 6 pines

1 resistencia de pc 100R

Resistencia de 2 piezas 10K

Resistencia de 2 piezas 330R

1 condensador 470 nF

Condensador electrolítico de 2 piezas 4.7 uF

1 interruptor de pc (opcional)

Montaje de PCB

Arme el módulo con el uso del esquema. Puede utilizar la placa universal o crear la PCB personalizada. Si el último es el caso, he proporcionado los archivos KiCad en el archivo a continuación.

El firmware

El código fuente para el PIC escrito con el uso de MPLAB X IDE y el compilador XC8 está disponible para descargar a continuación.

Las notas del código fuente

Para aquellos que quieran saber qué está haciendo exactamente el programa, están las siguientes líneas.

Una vez realizados todos los ajustes, el LED rojo está encendido y la MCU está esperando los datos 0x55AA. Después de eso, el LED se vuelve verde y la MCU comienza a detectar la señal del receptor de infrarrojos con el uso de las interrupciones. Mide y registra los intervalos de tiempo en los que la señal se encuentra en los niveles Alto y Bajo. Estos tiempos luego se transforman al número de 32 bits que se envía a la PC.

La relación entre los tiempos y el número final viene dada por el protocolo NEC.

Paso 4: Cómo utilizar el dispositivo

Cómo utilizar el dispositivo
Cómo utilizar el dispositivo
Cómo utilizar el dispositivo
Cómo utilizar el dispositivo
Cómo utilizar el dispositivo
Cómo utilizar el dispositivo

Firmware

Cargue el firmware al PIC. Utilizo el programador PICkit 3.

Hardware

Instale el módulo receptor de infrarrojos como se ve en las imágenes:

  1. Conecte el cabezal USB a la ranura USB interna de la placa base dentro de la carcasa de la PC con el cable de 4 hilos correspondiente o externamente a la ranura USB con el cable USB estándar. En el segundo caso, debe ayudarse a sí mismo de alguna manera, p. Ej. como se ve en la tercera imagen como inspiración.
  2. Conecte el cable de alimentación de 5 V de la fuente de alimentación dentro de la carcasa de la PC al cabezal de 4 pines. O alimentar el módulo de otra forma en el caso de uso externo.

Busque la descripción de los pines de la toma USB de la placa base. No estoy seguro de si el cableado sigue algún tipo de estándar, por lo que es mejor asegurarse. En mi caso hay dos filas de pines con 5 pines en la fila superior y 4 pines en la inferior. De izquierda a derecha, los pines son + 5 V, D-, D +, Gnd. El quinto pin de la primera fila no está conectado. Adjunté el cable como se ve en la segunda imagen.

Software

Ejecute el programa en la terminal. Si todo va bien, el último mensaje del programa es "esperando datos …". Ahora, cuando presione el botón en el control remoto, el código recibido aparecerá en el terminal. De esta forma sabrá qué botón emite qué código.

Ahora te están esperando algunas cosas de programación, pero no te preocupes. Solo se deben cambiar algunas cosas en el código fuente del programa para que el programa responda a su control remoto. Abra el archivo remotePC.c en el editor de texto o en algún IDE si lo desea y reemplace mis códigos con los suyos. Simplemente presione los botones que desea usar para cada acción, uno por uno. Simplemente copia los códigos que aparecen en el terminal y pégalos al código fuente en el lugar con la acción correspondiente.

Cuando haya terminado, finalice el programa y vuelva a compilar el código con el comando gcc -o remotePC remotePC.c. Ejecute el programa nuevamente y de ahora en adelante responderá a su control remoto.

Utilizo esta forma con acciones codificadas en el programa, ya que no encuentro sentido perder mi tiempo con un mayor desarrollo del proyecto hasta el estado en el que es posible agregar / cambiar códigos / acciones en el entorno de gráficos fácil de usar, por ejemplo. Pero si desea hacer esto o incluso más, puede hacerlo.

Recomendado: