Índice:

O controle remoto IR do computador: 4 etapas
O controle remoto IR do computador: 4 etapas

Vídeo: O controle remoto IR do computador: 4 etapas

Vídeo: O controle remoto IR do computador: 4 etapas
Vídeo: Como Instalar e Configurar Controle Smart IR - Universal 2024, Junho
Anonim
O controle remoto IR do computador
O controle remoto IR do computador

Além de muitos outros propósitos, estou usando meu PC como centro multimídia. Há momentos em que estou relaxando no sofá ouvindo música ou assistindo a um filme ou TV e não tenho vontade de me levantar para ajustar o volume ou mudar o canal da TV cada vez que aparecem comerciais estúpidos ou quando estou dormindo e desejo que silêncio. Portanto, decidi tornar meu PC controlado remotamente com um controle remoto infravermelho padrão para que eu pudesse simplesmente pressionar o botão instantaneamente, em vez de agarrar furiosamente o mouse ou a tecla mudo do teclado.

O projeto consiste em várias partes:

  1. Controle remoto
  2. Software para PC
  3. Módulo receptor IR

Etapa 1: o controle remoto

O controle remoto
O controle remoto

O primeiro item - o controle remoto - é fácil de usar. Basta usar qualquer controle de infravermelho de sua preferência. Usei o que está à venda como conjunto juntamente com o receptor IR - veja a imagem. Só decidi por este tipo porque já o tinha em casa.

Etapa 2: Software

Eu criei o programa para o sistema operacional GNU / Linux que é executado em um terminal. O código-fonte é gratuito para baixar / usar / compartilhar / modificar. Para compilar o código, basta emitir o comando como gcc -o remotePC remotePC.c no terminal. Para executar o programa, digite./remotePC.

As informações a seguir nesta etapa são dirigidas àqueles que estão interessados em como as coisas funcionam.

A descrição do programa

O programa primeiro verifica se o arquivo / dev / ttyACM0 ou ttyACM1 existe. Nesse caso, o ID de grupo do arquivo é verificado para ser diferente de zero. Isso significa que a porta serial pode ser lida e gravada pelo usuário comum. Dois bytes com valores 0xAA 0x55 são então gravados na porta para sinalizar que o programa está pronto para receber os dados. Os dados de entrada são comparados com os valores armazenados. Se a correspondência for encontrada, a ação predefinida é executada.

O controle de volume

O programa é capaz de ligar / desligar o som, aumentar / diminuir o nível de volume no nível do sistema. Isso é conseguido com o uso do programa pactl. Os comandos são assim:

pactl set-sink-mute 0 toggle

pactl set-sink-volume 0 + 10%

pactl set-sink-volume 0 -10%

Se necessário, instale os pacotes exigidos.

O controle do VLC Media Player

O programa também pode iniciar / pausar o áudio / vídeo e mudar a faixa para a anterior / seguinte na lista de reprodução do VLC Media Player. O Desktop Bus é usado neste caso. Os 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

Etapa 3: Módulo receptor IR

Módulo receptor IR
Módulo receptor IR
Módulo receptor IR
Módulo receptor IR
Módulo receptor IR
Módulo receptor IR

A terceira parte do projeto é a mais complexa, mas muito simples. A ideia é que o receptor IR irá emitir o sinal para o MCU que irá transformá-lo em um número único. Esse número será então transmitido ao PC pelo USB.

O módulo deve ser montado dentro do gabinete do PC e conectado ao slot USB na placa-mãe com o cabo. Caso prefira a conexão externa ao USB terá que fazer pequenos ajustes.

MCU

Eu construí o módulo no microcontrolador PIC16F1829. A escolha do MCU não é crítica, você pode usar qualquer outro MCU se puder ajustar o código-fonte. Escolhi este PIC por dois motivos. Primeiro eu o tinha disponível e, segundo, seus pinos foram parcialmente danificados pelo uso intensivo nos diferentes projetos de teste. Então, eu queria usá-lo no projeto permanente antes que ficasse totalmente inutilizável.:-)

Receptor infravermelho

A segunda parte na qual o módulo é baseado é o receptor IR VS1838B - aquele mencionado na 1ª etapa.

Conversor UART / USB

A terceira parte é o MCP2221 que é o conversor UART / I2C / USB.

A tarefa é combinar essas 3 partes para construir o módulo que será capaz de receber os sinais do controle remoto IR e entregá-los ao PC.

A fiação

Na primeira foto, há o circuito de teste na placa de ensaio. No segundo, está o esquema de fiação.

A lista de peças

1 pc PIC16F1829 (ou qualquer outro MCU)

1 pc VS1838B (ou qualquer outro receptor IR)

1 pc MCP2221 (ou qualquer outro conversor UART / USB)

2 pcs 4 pinos cabeçalho

1 pc cabeçalho de 6 pinos

1 pc resistor 100R

2 pcs resistor 10K

2 pcs resistor 330R

1 pc capacitor 470 nF

2 pcs capacitor eletrolítico 4,7 uF

1 switch pc (opcional)

Montagem PCB

Monte o módulo com o uso do esquema. Você pode usar a placa universal ou criar o PCB personalizado. Neste último caso, forneci os arquivos KiCad no arquivo abaixo.

O firmware

O código-fonte do PIC escrito com o uso do MPLAB X IDE e do compilador XC8 está disponível para download abaixo.

As notas do código fonte

Para quem gostaria de saber exatamente o que o programa está fazendo, seguem as linhas a seguir.

Depois que todas as configurações são feitas, o LED vermelho acende e o MCU está aguardando os dados 0x55AA. Depois disso, o LED fica verde e o MCU começa a detectar o sinal do receptor IR com o uso das interrupções. Ele mede e registra os intervalos de tempo em que o sinal está nos níveis Alto e Baixo. Esses tempos são então transformados no número de 32 bits que é enviado ao PC.

A relação entre os tempos e o número final é dada pelo protocolo NEC.

Etapa 4: como usar o dispositivo

Como usar o dispositivo
Como usar o dispositivo
Como usar o dispositivo
Como usar o dispositivo
Como usar o dispositivo
Como usar o dispositivo

Firmware

Faça upload do firmware para o PIC. Eu uso o programador PICkit 3.

Hardware

Instale o módulo receptor IR conforme mostrado nas fotos:

  1. Conecte o conector USB ao slot USB interno na placa-mãe dentro do gabinete do PC com o cabo de 4 fios apropriado ou externamente ao slot USB com o cabo USB padrão. No segundo caso, você tem que se ajudar de alguma forma, por ex. como visto na 3ª imagem para uma inspiração.
  2. Conecte o cabo de alimentação de 5 V da fonte de alimentação dentro do gabinete do PC ao conector de 4 pinos. Ou alimente o módulo de outra forma no caso de uso externo.

Procure a descrição dos pinos do soquete USB da placa-mãe. Não tenho certeza se a fiação segue algum tipo de padrão, então é melhor ter certeza. No meu caso, existem duas linhas de pinos com 5 pinos na linha superior e 4 pinos na linha inferior. Da esquerda para a direita, os pinos são + 5 V, D-, D +, Gnd. O quinto pino da primeira linha não está conectado. Eu conectei o cabo como visto na segunda foto.

Programas

Execute o programa no terminal. Se tudo correr bem, a última mensagem do programa é "aguardando dados …". Agora, ao pressionar o botão no controle remoto, o código recebido aparecerá no terminal. Desta forma, você saberá qual botão emite qual código.

Agora, alguma coisa de programação está esperando por você, mas não se preocupe. Apenas algumas coisas precisam ser alteradas no código-fonte do programa para que o programa responda ao seu controle remoto. Abra o arquivo remotePC.c no editor de texto ou em algum IDE se desejar e substitua meus códigos pelos seus. Basta pressionar os botões que pretende usar para cada ação, um por um. Basta copiar os códigos que aparecem no terminal e colá-los no código-fonte no local com a ação correspondente.

Quando terminar, encerre o programa e recompile o código com o comando gcc -o remotePC remotePC.c. Execute o programa novamente e ele responderá ao seu controle remoto a partir de agora.

Eu uso essa forma com ações codificadas no programa, pois acho que não faz sentido perder meu tempo com o desenvolvimento do projeto para o estado em que é possível adicionar / alterar códigos / ações no ambiente gráfico amigável, por exemplo. Mas se você quiser fazer isso ou mais, você pode.

Recomendado: