Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Usando remoto infravermelho com Raspberry Pi sem LIRC


Eu queria uma entrada remota IR para Raspberry Pi. Eu consegui instalar e testar o LIRC. Tudo estava bem, exceto a última etapa. Quando eu queria passar o valor da chave remota IR para o programa Python, ele não passou corretamente. Ele passa um valor nulo para qualquer chave. Eu não consegui descobrir o que está errado. Desisti e tentei escrever um código python para capturar IR remoto sem usar LIRC.

Depois de ler um pouco sobre como o controle remoto IR se comunica, as informações revelaram que ele usa a comunicação serial UART. Usei o kit DIY remoto IR HX1838. O sensor IR decodifica as ondas IR e passa os dados em série. O que fiz foi ler o valor dos dados que saem do sensor IR em série. Esta é uma maneira simples, mas simples de ler o controle remoto infravermelho para aplicativos simples que podem ser usados ​​no Raspberry Pi.

Preparando Raspberry Pi para comunicação serial UART.

1. É necessário remover entradas ttyAMA0 em cmdline.txt .

sudo cp /boot/cmdline.txt /boot/cmdline_bp.txt

sudo nano /boot/cmdline.txt

O arquivo restante parece,

dwc_otg.lpm_enable =0 console =tty1 root =/ dev / mmcblk0p6 rootfstype =ext4 elevator =deadline rootwait

Em seguida, salve e feche o editor. Salve o arquivo, Ctrl + O. Feche o editor, Ctrl + X

2. Atualize o inittab arquivo para mascarar o ttyAMA0

sudo nano / etc / inittab

Comente a linha
‘X:23:respawn:/ sbin / getty -L ttyAMA0 115200 vt100 ′

#X:23:respawn:/ sbin / getty -L ttyAMA0 115200 vt100

Em seguida, salve e feche o editor. Salve o arquivo, Ctrl + O. Feche o editor, Ctrl + X

Etapa 1:primeiros passos


Instalando o pySerial

sudo apt-get install python-serial

Assim que estiver instalado, o código Python pode usá-lo executando import serial .

O código Python para ler o sinal de infravermelho é muito simples. Do seguinte modo.
 import serialser =serial.Serial ("/dev/ttyAMA0")ser.baudrate =2400for i no intervalo (0,15):# geralmente o sinal IR para uma chave é de cerca de 12-16 bytes data =ser.read ( 1) # ler 1 byte de cada vez imprimir ord (dados) # os dados lidos em caractere, ord será convertido para o valor ASCII 

Agora, esse código lerá o sinal de infravermelho 1 byte por vez e imprimirá o valor.

Tentei as taxas de transmissão por tentativa e erro e me estabeleci para 2.400 BPS. Embora a comunicação serial suporte até 115KBPS, é interessante porque o IR está usando uma velocidade mais baixa. Meu palpite é que seria mais confiável usar velocidade mais baixa, já que há menos possibilidade de o sinal IR perder 1 ou 2 bits no ar.

Decodificar chaves remotas IR

Agora, a próxima etapa é decodificar os valores-chave. Usei um controle remoto infravermelho de TV Samsung padrão para esse esforço.

O primeiro ponto importante é descobrir quantos bytes de dados para cada chave. Pode variar de 12 a 16 bytes. (os que eu tentei). Normalmente, o comprimento do byte é o mesmo para todas as chaves. Esses bytes têm bytes de cabeçalho, bytes de dados (para identificar a chave) e bytes de cauda. Os bytes do cabeçalho terão uma assinatura para o modelo do remoto IR. Usei uma planilha do Excel para coletar os valores-chave dos dados seguindo a página da Antzy Carmasaic

http://www.instructables.com/id/How-To-Useemulate-…

Mergulhando profundamente nos valores-chave capturados, ele mostra que o byte 0-5 consiste no cabeçalho, repetido para todas as chaves. Os valores de dados do byte 6 a 11 representam o valor da chave. Pode haver alguns valores finais. O byte 12 é a cauda do controle remoto Samsung.

Chaves de mapeamento

A maneira exata desse controle remoto é armazenar os bytes 6-11 em um array e compará-lo com uma nova chave de entrada. Em vez disso, fiz um algoritmo simples da seguinte maneira.

identidade da chave =byte [6] + 2 * byte [7] + 3 * byte [8] + 4 * byte [9] + 5 * byte [10] + 6 * byte [11]

Ele fornece quase um valor exclusivo para cada chave. Você pode descobrir um algoritmo melhor do que este.

Eu estendi o código Python para capturar informações de chave remota Samsung. Depois de calcular o valor da chave mapeada, armazenei-o no próprio programa Python.

O arquivo está anexado. nome - ir_serial3samsung.py. O controle remoto Samsung envia 2 conjuntos de dados. Então, eu capturei 24 bytes para liberar o buffer de captura de dados seriais do Raspberry Pi. Mas eu uso apenas o primeiro conjunto para decodificar.

Quando você executa este código, ele identifica corretamente as teclas pressionadas. Você pode decodificar o resto das chaves no controle remoto observando o valor “keyidentity” que o programa imprime. Em seguida, anexe o programa para incluí-los.

Conclusão

Esta é uma maneira muito simples e eficaz de usar um controle remoto com Raspberry Pi com Python. Você precisa descobrir quantos bytes totais para uma chave, quanto tempo os bytes de cabeçalho, bytes de dados e bytes finais. Como você conhece de A a Z desse processo, pode modificá-lo facilmente para se adequar à sua aplicação. Como esses são pequenos códigos python, é muito fácil depurar se você encontrar algum problema.





Para obter mais detalhes:Usando o controle remoto infravermelho com Raspberry Pi sem LIRC

Processo de manufatura

  1. Perfil de temperatura Raspberry Pi usando LabVIEW
  2. Ler a temperatura com DS18B20 | Raspberry Pi 2
  3. Medindo a temperatura com RASPBERRY PI
  4. Sensor de temperatura Python e Raspberry Pi
  5. Monitorando a temperatura com Raspberry Pi
  6. Monitoramento remoto do clima usando Raspberry Pi
  7. SensorTag para Blynk usando Node-RED
  8. Detecção de relâmpagos com um Raspberry Pi
  9. Sensores analógicos sem entradas analógicas no Raspberry Pi
  10. Controle remoto universal Raspberry Pi