Autor Tema: Leyendo señal de control remoto con un LPC1347  (Leído 1571 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado elgarbe

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2178
Leyendo señal de control remoto con un LPC1347
« en: 24 de Octubre de 2014, 22:12:22 »
Bueno, como parte de este proyecto (http://www.todopic.com.ar/foros/index.php?topic=43414.0) necesitamos decodifica la señal de un control remoto. El protocolo es NEC (http://www.sbprojects.com/knowledge/ir/nec.php).

Como primer medida hay que notar que el sensor que usamos (un sensor de una vieja VCR) toma la señal del control remoto, con la portadora en 38KHz y la transforma en pulsos de 0 - 5V pero invertida. Entonces, en el osciloscopio cuando vemos un "1" en 5V, en realidad es un "0".

De acuerdo al protocolo, tenemos un encabezado que dura 9+4.5 mseg y luego tenemos un coiclo completo de 1.12mseg para el 1 y de 2.5 para el 0.
Cuando hicimos las mediciones con el osciloscopio notamos pequeñas diferencias de tiempo. Por ejemplo, medimos 9.2 y 4.4mseg para el inicio. Es por ello, que las rutinas de identificacion tendrán que tener un cierto margen.

La idea que se me ocurre es configurar una Interrupcion en el pin donde entra el tren de pulsos (podemos configurar cualquier pin como fuente de interrupcion externa. Hasta 8 pines, con prioridad) que detecte los falling edge (ya que estamos con lógica negativa) y en cada int almacenemos el valor de algun free runnig timer para obtener los anchos de pulso. Luego separar los 8 bits de la direccion y compararlos con los 8 bits de la direccion negada. Lo mismo con los bits de comando. Verificar la validez de los bits (los que importan son los de comando) y mostrar el número obtenido...

Bien, a analizar un poco la idea y luego empezaré con el código.

Saludos!
-
Leonardo Garberoglio

Desconectado elgarbe

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Leyendo señal de control remoto con un LPC1347
« Respuesta #1 en: 25 de Octubre de 2014, 00:11:20 »
Bien, ya obtuve resultados.
En primer medida almacené 33 valores del Timer cuando detecto el falling edge, luego hago un pequeño análisis en excel para ver el tiempo entre señal. Veo que necesito algunos pulsos mas y empiezo a almacenar 35 FE. El resultado es este:



Como primer medida veo que aparece un "falso pulso" de entre 800 y 400useg al principio del pulso inicial. Eso no figura en el protocolo de NEC, pero metí el osciloscopio y pude comprobar que hay un pequeño pulso adicional.
Como segunda medida, vemos que los datos estan perfectos, tenemos la direccion y su complemento que para cualquier tecla será la misma.
Luego tenemos el código de la tecla en si, que por lo que veo, para las teclas numerícas coincide el codigo de comando con el número de tecla.
Tambien podemos notar que hay pequeñas diferencias entre pulsos largos y entre pulsos cortos. Pero básicamente esta muy fácil de procesar en el micro la info para obtener el código de la tecla.

Acomodo un poco el soft y subo novedades.

Saludos!
-
Leonardo Garberoglio

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18271
    • MicroPIC
Re: Leyendo señal de control remoto con un LPC1347
« Respuesta #2 en: 25 de Octubre de 2014, 02:38:53 »
Hace años estuve jugando con esto, elgarbe.
Te dejo el artículo por si te sirve:

http://www.micropic.es/mpblog/2007/04/interpretando-mando-infrarrojos-con-dspic/


Desconectado elgarbe

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Leyendo señal de control remoto con un LPC1347
« Respuesta #3 en: 25 de Octubre de 2014, 08:14:30 »
Muy bueno!
Veo que es parecido a lo que estoy haciendo, pero mas ordenado. Lo voy a tomar como base para mi código.

Saludos!
-
Leonardo Garberoglio


 

anything