Paso 2: Recolección de datos
De vamos.
Note1: grabación de comando es un proceso repetitivo y un poco aburrido, pero necesario.
Nota 2: no tengo un osciloscopio que la única manera para mi para trazar los valores grabados es utilizar un programa de trazado (gnuplot) en datos brutos. Esto puede útil para tener una idea visual de lo que sucede, pero requiere cierta adaptación en datos brutos y es en mi opinión no es necesario en absoluto. Por eso no he incluido ningún gráfico.
Utilicé las instrucciones de esta página: http://alexba.in/blog/2013/01/06/setting-up-lirc-... Conecte el receptor en la Pi y preparar lirc.
Luego grabé comandos con la cruda opción - y redirige la salida a un archivo. El objetivo es tener un registro de cada valor para encendido y fuera de curso, pero también para cada modo (AUTO, frío, calor, seco), para cada valor de swing y ventilador y, decir, para la temperatura mínima y máxima (16 a 30 ° C en mi caso). Lo importante aquí es hacer un registro de referencia y hacer una grabación para cada cambio de opción, que sólo una opción cambiar cada vez. Una vez que se realiza un registro, presione CTRL + C para terminar el comando y hacerlo de nuevo con el siguiente comando/archivo
Podría ser necesario obtener super privilegios para ejecutar este comando ("sudo mode2...") y el demonio lirc puede bloquear el archivo, así que puede ser necesario matar primero:
Al leer los archivos generados, lo que vemos es todos los números, organizados en 6 columnas. Estos números indican la duración en microsegundos. Las columnas trabajan en pareja, así
significa: "IR LED estaba encendido para 740us, luego apagado para 1495us, luego para 920us luego apagado para 1345us, etc.".
Ejemplo:
OK, se parece loco :)
Tenga en cuenta que el archivo se iniciará con una línea con un único valor: es el tiempo transcurrido entre el inicio de la grabación y la llegada de la primera señal de IR. Esta línea debe ser ignorada.
Por supuesto, ya que son medidas con una escala de tiempo tan pequeña como el microsegundo, tiempos todos son diferentes, que hace que la detección de pequeñas diferencias entre 2 comandos imposibles.
Se puede observar que los valores siempre son cerca de 400 o 1300us, excepto 3 (más cerca de 4400, 9900 y 1700). Así que lo que haremos para hacer figuras comparables es "redondo" los números a la más cercana de estos 2 valores de "referencia" (una hoja de cálculo es útil al principio).
Lo que muestra esta manipulación es que excepto los 3 valores singular el tiempo siempre es 400, lo que cambia es solamente el tiempo de apagado.
Vamos a hacer la hipótesis de que el tiempo de apagado es codificación de 0 y 1 y Supongamos que 400 es para 0 y 1300us para 1. Con esta hipótesis es posible cambiar cada par de columnas a un solo bit.
Vamos a hacer también una observación: la parte entre los 3 "tiempos singular" es siempre la misma, en todas las grabaciones. Se puede suponer:
-la parte es una introducción, tal vez identificar el control remoto o el acondicionador de aire, y nunca cambiará
-los diferentes tiempos son cierres y separadores entre la introducción y la carga real
Por lo tanto es aceptable esa parte del mensaje como una invariante y no estudiarlo.
Por la facilidad de explotar los datos que escribí un pequeño programa c los valores y transformar a dígitos binarios. Para facilitar la lectura del código salta la parte del intro. Si desea utilizar este código que se definen los valores de tiempo en el inicio del programa, usted probablemente tendrá que adaptarse.
Después de la compilación (gcc -o decodificar decode.c) se puede utilizar en cada fichero de datos:
Ejemplo con modo auto blanco temperatura 25 ° C: