Paso 7: Programación de la cerradura
En primer lugar, hemos creado algún código de depuración sencilla para ayudarnos a configurar nuestros sensores. Asegurándose de que las lecturas del sensor cambio al colocar objetos sobre ellos es necesario, ya que muchos pequeños errores en el cableado o configuración pueden impedir que un pequeño sensor leyendo en todos los valores. Utilizamos este código de depuración para ver nuestras lecturas del sensor y luego decidir que tipo de sensor de presión que debemos utilizar. Hemos descubierto que los sensores caseros fue significativamente peor en lectura constantemente cambios de peso.
En el código de Arduino, fijamos al combo en la configuración. En la función de bucle, establecemos los valores como los valores actuales de los sensores. Si la puerta está desbloqueada, fijamos al combo a los valores. Luego comparamos al combo a los actuales valores usando una función de comparación. Encontramos ese error cuadrático (RMSE) trabajado bien (wikipedia ). Para ello, tomamos el valor absoluto de la diferencia entre el combo para la escala i y el valor para la escala i (e.. g abs(combo[i]-value[i]) y dividido por el combo para la escala i. Cuadrados y suma estos errores y entonces tomó la raíz cuadrada de la suma. RMSE hace un trabajo muy bueno en el aumento de grandes errores y disminuir el efecto de pequeños errores. Objetos ser colocado y extraído de nuestros sensores hacen grandes cambios en nuestro error RMSE de lo ideal. Pequeños errores debido a diferentes humedades y varios otros efectos ambientales también se minimizan al utilizar RMSE.
Comparamos este error en el valor de la perilla del potenciómetro que controla el error máximo. Si el error fue consistentemente menor durante medio segundo, nos abrió la puerta con el servo. Los LEDs pequeños indicaron que el error actual fue menor que el máximo, y el brillante LED indica que la puerta estaba bloqueada o desbloqueada.
El procesamiento gráfico se utilizó para observar los valores actuales de las variables en el código de Arduino. Se utilizó un protocolo simple para enviar mensajes sobre el puerto serie. Por ejemplo, 'COMBO < puerto >< valor >' indica el valor actual de la combinación de puerto. Nos muestra estos mensajes como texto en la ventana de procesamiento. Además, graficaron los valores de las escalas en el tiempo y el valor de error con el tiempo.