Tabla de contenido:

Transmisor y receptor de infrarrojos USB NEC: 4 pasos (con imágenes)
Transmisor y receptor de infrarrojos USB NEC: 4 pasos (con imágenes)

Video: Transmisor y receptor de infrarrojos USB NEC: 4 pasos (con imágenes)

Video: Transmisor y receptor de infrarrojos USB NEC: 4 pasos (con imágenes)
Video: Construye Control Remoto Para Tu Android Muy Facil - DIY 2024, Junio
Anonim
Transmisor y receptor de infrarrojos USB NEC
Transmisor y receptor de infrarrojos USB NEC

Este proyecto es un derivado de otro proyecto en el que estoy trabajando y, dado que hay un concurso de Remote Control 2017 en Instructables, pensé en publicar este proyecto. Entonces, si te gusta este proyecto, vota por él. Gracias.

Como sabrá, soy un gran admirador de los controladores PIC de 8 bits de Microchip, consulte:

Utilizo el lenguaje de programación JAL ya que se parece a Pascal (que también me gusta). El compilador JAL y las bibliotecas se pueden descargar desde: https://www.justanotherlanguage.org/downloads (desplácese hacia abajo para ver la última versión publicada).

Normalmente escribo todo el código yo mismo para comprender completamente lo que estoy haciendo, pero para este proyecto necesitaba conectar el PIC al puerto USB de la PC y, por lo tanto, necesitaba un controlador serie USB JAL para este controlador PIC. Utilicé el controlador de serie USB en el paquete de descarga de JAL que parece funcionar bien. Dado que este controlador de serie USB se escribió para un PIC específico, utilicé ese PIC, que es el PIC18F14K50. Este controlador tiene mucha más funcionalidad de la que necesito para este proyecto, por lo que actualmente estoy en el proceso de hacer que este controlador USB funcione en una versión PIC más simple, el PIC16F1455, que también es más económico.

Entonces, ¿de qué se trata este proyecto? Con el dispositivo mencionado en este Instructables, puede enviar y recibir comandos de control remoto por infrarrojos desde y hacia su PC a través del puerto USB utilizando el popular protocolo de infrarrojos de NEC. De esta manera, puede monitorear los comandos de infrarrojos y puede controlar cualquier dispositivo que utilice el protocolo de control remoto por infrarrojos de NEC. El proyecto decodifica y traduce los mensajes infrarrojos en un byte de dirección y un byte de comando o en un mensaje repetido. La dirección se usa, por supuesto, para dirigirse a un dispositivo determinado, como un televisor o una radio, donde el byte de comando indica la función que debe realizarse, como Subir volumen, Bajar volumen. Además de decodificar estos mensajes, también se pueden transmitir a través de infrarrojos utilizando este dispositivo.

Paso 1: Información sobre el protocolo de infrarrojos de NEC

Información sobre el protocolo de infrarrojos de NEC
Información sobre el protocolo de infrarrojos de NEC

Una breve introducción a este protocolo. El protocolo de control remoto por infrarrojos de NEC se utiliza en muchos dispositivos y controles remotos que puede comprar. Modula una señal de infrarrojos en una portadora de 38 kHz y utiliza codificación de distancia de pulso para codificar un "1" lógico y un "0" lógico. El protocolo utiliza una simple verificación para ver si el mensaje está bien enviando tanto la dirección como el byte de comando y una versión invertida de ambos en el mismo mensaje y verificando si son iguales después de la recepción. Cuando se presiona un botón en el control remoto, envía un mensaje infrarrojo completo con la dirección y el comando una vez. Mantener el botón presionado dará como resultado el envío de un mensaje repetido más corto sin información de dirección y comando. El tiempo de repetición de los mensajes transmitidos mientras se mantiene pulsado el botón es fijo.

Puede encontrar más información sobre el protocolo NEC Infra Red, por ejemplo, en:

Paso 2: componentes necesarios

Componentes requeridos
Componentes requeridos
Componentes requeridos
Componentes requeridos

Necesita tener los siguientes componentes para este proyecto:

  • Microcontrolador PIC PIC18F14K50, consulte:
  • Cristal 12 MHz
  • Condensador de cerámica: 2 * 100nF, 1 * 220 nF, 2 * 18pF
  • Condensador electrolítico 47 uF / 16V
  • Receptor de infrarrojos TSOP4838, consulte:
  • Resistencias: 2 * 33k, 1 * 4k7, 1 * 1k, 3 * 330 Ohm, 1 * 22 Ohm
  • LED: 2 * infrarrojos, 1 ámbar, 1 verde, 1 rojo
  • Transistor BC640, consulte:
  • Puente (opcional)
  • Conector USB

Vea el diagrama esquemático sobre cómo conectar los componentes. Usé un tablero para este proyecto como pueden ver en la imagen y en el video. El circuito obtiene su energía del puerto USB de la PC.

Paso 3: el software y el funcionamiento del dispositivo

Como ya se mencionó, el software está escrito para un PIC18F14K50. Estaba escrito en JAL. Se adjunta el archivo Intel Hex para programar su PIC. El software realiza las siguientes funciones:

  • Decodifica los mensajes infrarrojos de NEC y envíalo a la PC a través de USB. El mensaje se decodifica a partir del flujo de bits que genera el receptor de infrarrojos y se traduce a un mensaje de dirección + comando o un mensaje repetido.
  • Envío de mensajes NEC Infrarrojos recibidos desde la PC a través de USB. Tenga en cuenta que el software también crea la frecuencia portadora de 38 kHz que activa directamente los LED infrarrojos. En paralelo al LED infrarrojo se conecta un LED ámbar para hacer visible la transmisión de un mensaje.

De forma predeterminada, este circuito silenciará el receptor de infrarrojos durante la transmisión de un mensaje de infrarrojos. Si se coloca un puente en la posición "Activar sonido", desactivará esta función de silencio. En ese caso, el mensaje de infrarrojos transmitido también se decodificará en paralelo a la transmisión y, después de la recepción completa, se enviará como un mensaje de infrarrojos recibido a la PC. Si se recibe un mensaje de infrarrojos NEC válido, se encenderá el LED rojo "IR OK".

Para operar este dispositivo, necesita tener un programa de emulador de terminal en su PC. Usé "Termitas" para este propósito. Cuando el dispositivo está conectado a la PC, Windows 10 lo reconocerá automáticamente como un puerto COM adicional, ya que parece haber un controlador de Microchip para este dispositivo en Windows 10 preinstalado. La configuración para este puerto COM debe ser: 19200 baudios 8 bits, 1 bit de parada, sin paridad y usando control de flujo RTS / CTS. La velocidad en baudios se puede establecer en cualquier otro valor si es necesario, por lo que también funcionará una velocidad en baudios de 115200. Una vez que el dispositivo se configura a través del puerto USB conectándolo a través del programa Terminal Emulator, el LED verde "Configurado" se iluminará.

Recibir mensajes de infrarrojos

Cuando se recibe un mensaje de infrarrojos, se mostrará lo siguiente en el programa Terminal Emulator:

  • "A: xx C: xx" en el caso de un mensaje completo, donde xx es el número hexadecimal de la dirección (A) y el comando (C). Los valores para ambos pueden oscilar entre 0x00 (0) y 0xFF (255).
  • "Repetir" en caso de que se repita el mensaje.

Envío de mensajes infrarrojos

Para ello, necesitaba definir un protocolo que le diga al dispositivo qué hacer. Como usamos un emulador de terminal, utilicé caracteres ASCII para definir un mensaje. El protocolo para enviar un comando al dispositivo utiliza el siguiente formato: "! AACCRR #", donde (todos los caracteres no distinguen entre mayúsculas y minúsculas):

  • "!" Indica el inicio del mensaje.
  • "AA" es el valor de la dirección en notación hexadecimal, de modo que "0" a "9" y "A" a "F",
  • "CC" es el valor del comando en notación hexadecimal, por lo que "0" a "9" y "A" a "F"
  • "RR" es el número de mensajes repetidos que deben transmitirse en notación hexadecimal, de modo que "0" a "9" y "A" a "F". Un valor de "00" significa que no se envía ningún mensaje repetido.

Un ejemplo de un mensaje con dirección 0x07, comando 0x05 y 3 repeticiones se debe escribir de la siguiente manera en el programa Terminal Emulator:! 070503 #

El dispositivo tiene diferentes respuestas después de que se envía un comando desde la PC:

  • "Y" significa que se transmitió un mensaje. Tenga en cuenta que esta respuesta se da después de que se transmiten todos los mensajes, incluidas todas las repeticiones, por lo que puede pasar algún tiempo antes de que se dé esta respuesta cuando sea necesario transmitir muchos mensajes repetidos.
  • "N" significa que había un carácter ilegal en el mensaje enviado a la PC.
  • "B" significa que una transmisión de infrarrojos todavía estaba ocupada cuando se dio la orden.
  • ? "Significa que el dispositivo esperaba"! "Pero recibió algo más.

Paso 4:

Hice un video corto del dispositivo en acción. Para este video utilicé una lámpara LED comercial con su control remoto para ver que tanto la transmisión como la recepción funcionan. El video muestra lo siguiente:

  • Configuración del dispositivo USB desde el programa Terminal Emulation. Cuando el dispositivo está configurado, responde con el mensaje "Transmisor y receptor de infrarrojos USB NEC". En el dispositivo, el LED verde se enciende para mostrar que el dispositivo fue configurado por la PC.
  • La lámpara se enciende con el control remoto. Para esto, el Control Remoto usa la dirección 0x00 y el comando 0x07 que es decodificado por el dispositivo y mostrado en la PC.
  • La lámpara se apaga con el control remoto. Para esto, el Control Remoto usa la dirección 0x00 y el comando 0x06 que es decodificado por el dispositivo y mostrado en la PC.
  • La lámpara se enciende escribiendo el mismo comando de control remoto en la PC con un valor de repetición de 0 (sin repetición), así que escribiendo "! 000700 #". La lámpara se enciende.
  • Cambiando el color de la lámpara a azul usando la dirección 0x00 y el comando 0x0A y usando repeticiones 0x30. El LED ámbar, que está conectado en paralelo con los LED infrarrojos, parpadea y muestra la transmisión del mensaje de repetición a través de infrarrojos. El mensaje escrito es "! 000A30 #".

Tenga en cuenta que durante la grabación de este video, la conexión de puente "Unmute" estaba activa, por lo que también podía ver el mensaje transmitido "! 000700 #", que se recibe como "A: 00 C: 07" en el programa de emulación de terminal. En la demostración de la lámpara coloreada en azul también se puede ver que el LED rojo está encendido mientras se transmiten los mensajes válidos - repetición - ya que se reciben y decodifican en paralelo con la transmisión de los mensajes repetidos.

Diviértete construyendo tu propio proyecto y esperando tus reacciones. No olvides votar por este proyecto en el concurso Remote Control 2017 si te gusta. Gracias de nuevo.

Recomendado: