Índice:

Transmissor e receptor de infravermelho USB NEC: 4 etapas (com fotos)
Transmissor e receptor de infravermelho USB NEC: 4 etapas (com fotos)

Vídeo: Transmissor e receptor de infravermelho USB NEC: 4 etapas (com fotos)

Vídeo: Transmissor e receptor de infravermelho USB NEC: 4 etapas (com fotos)
Vídeo: Receptor de IR universal para qualquer tipo de controle remoto infravermelho. 2024, Novembro
Anonim
Transmissor e receptor de infravermelho USB NEC
Transmissor e receptor de infravermelho USB NEC

Este projeto é um spin-off de outro projeto no qual estou trabalhando e como há um concurso de Controle Remoto 2017 no Instructables, pensei em postar este projeto. Então, se você gosta deste projeto, vote nele. Obrigado.

Como você deve saber, sou um grande fã dos controladores PIC de 8 bits da Microchip, consulte:

Eu uso a linguagem de programação JAL porque ela se parece com Pascal (que eu também gosto). O compilador JAL e as bibliotecas podem ser baixados de: https://www.justanotherlanguage.org/downloads (role para baixo para ver a última versão lançada).

Normalmente eu mesmo escrevo todo o código para entender completamente o que estou fazendo, mas para este projeto eu precisei conectar o PIC à porta USB do PC e então precisei de um driver serial JAL USB para este controlador PIC. Usei o driver serial USB no pacote de download da JAL que parece funcionar bem. Uma vez que este driver serial USB foi escrito para um PIC específico, eu usei aquele PIC que é o PIC18F14K50. Este controlador tem muito mais funcionalidade do que eu preciso para este projeto, então estou atualmente no processo de fazer este driver USB funcionar em uma versão PIC mais simples, o PIC16F1455, que também é mais barato.

Então, do que se trata esse projeto? Com o dispositivo mencionado neste Instructables, você pode enviar e receber comandos do Infra Red Remote Control de e para o seu PC através da porta USB usando o popular protocolo NEC Infra-Red. Desta forma, você pode monitorar os comandos de infravermelho e controlar qualquer dispositivo que use o protocolo de controle remoto de infravermelho da NEC. O projeto decodifica e traduz as mensagens de infravermelho em um byte de endereço e um byte de comando ou em uma mensagem de repetição. O endereço é - é claro - usado para endereçar um determinado dispositivo como uma TV ou um rádio, onde o byte de comando indica a função que precisa ser executada, como aumentar volume, diminuir volume. Além de decodificar essas mensagens, elas também podem ser transmitidas via Infra-Vermelho usando este dispositivo.

Etapa 1: algumas informações sobre o protocolo infravermelho da NEC

Algumas informações sobre o protocolo de infravermelho da NEC
Algumas informações sobre o protocolo de infravermelho da NEC

Uma breve introdução a este protocolo. O protocolo NEC Infra Red Remote Control é usado em muitos dispositivos e controles remotos que você pode comprar. Ele modula um sinal infravermelho em uma portadora de 38 kHz e usa codificação de distância de pulso para codificar um '1' lógico e um '0' lógico. O protocolo usa uma verificação simples para ver se a mensagem está OK, enviando o endereço e o byte de comando e uma versão invertida de ambos em uma e a mesma mensagem e verificando se eles são os mesmos após o recebimento. Quando um botão é pressionado no Controle Remoto, ele envia uma mensagem infravermelha completa com endereço e comando uma vez. Manter o botão pressionado resultará no envio de uma mensagem de repetição mais curta, sem endereço e informações de comando. O tempo de repetição das mensagens transmitidas mantendo o botão pressionado é fixo.

Mais informações sobre o protocolo NEC Infra Red podem ser encontradas, por exemplo, em:

Etapa 2: componentes necessários

Componentes Requeridos
Componentes Requeridos
Componentes Requeridos
Componentes Requeridos

Você precisa ter os seguintes componentes para este projeto:

  • Microcontrolador PIC PIC18F14K50, consulte:
  • Crystal 12 MHz
  • Capacitor de cerâmica: 2 * 100nF, 1 * 220 nF, 2 * 18pF
  • Capacitor eletrolítico 47 uF / 16V
  • Infra Red Receiver TSOP4838, consulte:
  • Resistores: 2 * 33k, 1 * 4k7, 1 * 1k, 3 * 330 Ohm, 1 * 22 Ohm
  • LEDs: 2 * infravermelhos, 1 âmbar, 1 verde, 1 vermelho
  • Transistor BC640, consulte:
  • Jumper (opcional)
  • Conector USB

Veja o diagrama esquemático sobre como conectar os componentes. Usei um breadboard para este projeto como você pode ver na imagem e no vídeo. O circuito obtém sua alimentação da porta USB do PC.

Etapa 3: o software e a operação do dispositivo

Como já mencionado, o software foi escrito para um PIC18F14K50. Foi escrito em JAL. O arquivo Intel Hex para programar seu PIC está anexado. O software executa as seguintes funções:

  • Decodificar mensagens de infravermelho NEC e enviá-las ao PC via USB. A mensagem é decodificada a partir do fluxo de bits gerado pelo receptor infravermelho e traduzida em um endereço + mensagem de comando ou em uma mensagem de repetição.
  • Envio de mensagens de infravermelho da NEC recebidas do PC via USB. Observe que o software também cria a frequência portadora de 38 kHz que aciona diretamente os LEDs infravermelhos. Em paralelo ao LED infravermelho, um LED âmbar é conectado para tornar visível a transmissão de uma mensagem.

Por padrão, este circuito silenciará o receptor infravermelho durante a transmissão de uma mensagem infravermelha. Se um jumper for colocado na posição 'Unmute', ele desativará esta função mute. Nesse caso, a mensagem infravermelha transmitida também será decodificada em paralelo à transmissão e, após a recepção completa, será enviada como uma mensagem infravermelha recebida ao PC. Se uma mensagem de infravermelho NEC válida for recebida, o LED vermelho 'IR OK' acenderá.

Para operar este dispositivo, você precisa ter um programa Terminal Emulator em seu PC. Usei 'cupim' para este propósito. Quando o dispositivo é conectado ao PC, ele será automaticamente reconhecido como uma porta COM adicional pelo Windows 10, pois parece haver um driver Microchip para este dispositivo no Windows 10 pré-instalado. A configuração para esta porta COM deve ser: 19200 baud 8 bits, 1 bit de parada, sem paridade e usando controle de fluxo RTS / CTS. A taxa de bauds pode ser definida para qualquer outro valor, se necessário, para que uma taxa de bauds de 115200 também funcione. Uma vez que o dispositivo é configurado através da porta USB conectando-se a ele através do programa Terminal Emulator, o LED verde ‘Configurado’ acenderá.

Recebendo mensagens de infravermelho

Quando uma mensagem infravermelha é recebida, o seguinte será exibido no programa Terminal Emulator:

  • ‘A: xx C: xx’ no caso de uma mensagem completa, onde xx é o número hexadecimal do endereço (A) e do comando (C). Os valores para ambos podem variar de 0x00 (0) a 0xFF (255).
  • ‘Repita’ no caso de uma mensagem repetida.

Enviando mensagens de infravermelho

Para isso, precisei definir um protocolo que diga ao dispositivo o que fazer. Como usamos um emulador de terminal, usei caracteres ASCII para definir uma mensagem. O protocolo para enviar um comando ao dispositivo usa o seguinte formato: ‘! AACCRR #’, onde (todos os caracteres não diferenciam maiúsculas de minúsculas):

  • ‘!’ Indica o início da mensagem.
  • ‘AA’ é o valor do endereço em notação hexadecimal, então ‘0’ a ‘9’ e ‘A’ a ‘F’,
  • ‘CC’ é o valor do comando em notação hexadecimal, então ‘0’ a ‘9’ e ‘A’ a ‘F’
  • ‘RR’ é o número de mensagens repetidas que precisam ser transmitidas em notação hexadecimal de ‘0’ a ‘9’ e ‘A’ a ‘F’. Um valor de '00' significa que nenhuma mensagem de repetição é enviada.

Um exemplo de mensagem com endereço 0x07, comando 0x05 e 3 repetições deve ser digitado como segue no programa Terminal Emulator:! 070503 #

O dispositivo tem respostas diferentes depois que um comando é enviado do PC:

  • ‘Y’ significa que uma mensagem foi transmitida. Observe que essa resposta é dada depois que todas as mensagens - incluindo todas as repetições - são transmitidas, portanto, pode levar algum tempo antes que essa resposta seja dada, quando muitas mensagens de repetição precisam ser transmitidas.
  • ‘N’ significa que havia um caractere ilegal na mensagem enviada ao PC.
  • ‘B’ significa que uma transmissão infravermelha ainda estava ocupada quando o comando foi dado.
  • ? 'Significa que o dispositivo estava esperando'! ', Mas recebeu outra coisa.

Passo 4:

Fiz um pequeno vídeo do dispositivo em ação. Para este vídeo, usei uma lâmpada LED comercial com seu controle remoto para ver se a transmissão e a recepção funcionam. O vídeo mostra o seguinte:

  • Configurando o dispositivo USB a partir do programa Terminal Emulation. Quando o dispositivo é configurado, ele responde com a mensagem ‘USB NEC Infra Red Transmitter and Receiver’. No aparelho o LED Verde acende indicando que o aparelho foi configurado pelo PC.
  • A lâmpada é acesa com o controle remoto. Para isso o Controle Remoto usa o endereço 0x00 e o comando 0x07 que é decodificado pelo dispositivo e mostrado no PC.
  • A lâmpada é desligada com o controle remoto. Para isso o Controle Remoto usa o endereço 0x00 e o comando 0x06 que é decodificado pelo dispositivo e mostrado no PC.
  • A lâmpada é ligada digitando o mesmo comando de controle remoto no PC com um valor de repetição de 0 (sem repetição), então digitando ‘! 000700 #’. A lâmpada acende.
  • Mudar a cor da lâmpada para azul usando o endereço 0x00 e o comando 0x0A e usando as repetições 0x30. O Led âmbar, que está conectado em paralelo com os leds Infra Vermelhos, fica piscando indicando a transmissão da mensagem de repetição via Infra Vermelhos. A mensagem digitada é ‘! 000A30 #’.

Observe que, durante a gravação deste vídeo, o jumper de conexão ‘Unmute’ estava ativo para que você também pudesse ver a mensagem transmitida ‘! 000700 #’, sendo recebida como ‘A: 00 C: 07’ no programa de Emulação de Terminal. Na demonstração da lâmpada colorida azul, você também pode ver que o LED vermelho está aceso enquanto as mensagens válidas de repetição são transmitidas, uma vez que são recebidas e decodificadas em paralelo com a transmissão das mensagens de repetição.

Divirta-se construindo seu próprio projeto e aguarde suas reações. Não se esqueça de votar neste projeto no concurso Remote Control 2017 se você gostar. Obrigado novamente.

Recomendado: