Paso 5: La entretela y recopilación de datos
La interfaz es una capa de código python que actúa sobre el protocolo de control de serie. El serie control permitido por el software de protocolo Serial de capa primero y el firmware es mucho más flexible que uno requiere para este proyecto: empecé a escribir el python de código para permitir un programa a ejecutar en el PC, utilizando los recursos informáticos de una CPU, para interactuar con el mundo exterior. Con el código tal como se indica en el paso 1, el PC puede controlar todos los pines digitales, PWM a través del comando analogWrite() y tomar datos analógicos de A0 (o cualquier análogos pins con la modificación del firmware). Además, el firmware puede ser actualizado para ejecutar cualquier segmento de código C de Arduino por simple adición de un bloque adicional caso/rotura al bloque interruptor. En consecuencia, es posible cambiar la estructura de I/O sobre la marcha (a través de la adición de un bloque de caso/break que contiene una declaración pinMode()), o añadir cualquier número de características útiles. Decidí mantener el firmware relativamente simple para este proyecto, apoyando sólo los comandos básicos, porque sabía que no necesitaría acceder a las funciones superiores durante horno funciona.
Además, para hacer el mayor nivel de codificación más legible, he añadido un conjunto de funciones que encapsula todas las funciones de I/O específicas para este proyecto, tales como fanOn() y fanOff() para el ventilador controla, para permitir que el GUI de código sin tener directamente llamar a los programas de control serial. Esto permitió a pruebas independientes de los códigos de encapsulación (es decir, pude probar fanOff(), y una vez que trabajaba, no tenía que preocuparse por las cuestiones de coordinación cuando la llamé desde el software GUI).
La colección de los datos de termopar no es diferente de los mecanismos de control: usa una función de encapsulación para reunir datos analogRead() y guardar los datos (para posterior análisis y on-the-fly visualización gráfica). La función de captura de datos de termopar también encapsula las funciones de recogida de datos, para que los datos se graban y el expediente de ejecución se actualiza cada vez que se toma una medición.
Se habilita la funcionalidad del GUI por el paquete de gráficos de Zelle, un paquete de gráficos fáciles de usar, de bajo consumo para python. Elegí el paquete Zelle sobre python más sofisticadas opciones de gráficos para su facilidad de uso y requisitos de recursos de sistema relativamente bajo. El GUI está configurado como un bucle while() principal, en el que la ventana es encuestada periódicamente con checkMouse(), lo que permite el programa realizar acciones autónomas (por ejemplo, el termopar, la lectura cada cierto tiempo) mientras se espera la entrada del usuario. También aparece la ventana gráfico de como el tiempo de la tirada completa de datos del termopar, que se actualización cada vez que se toma una nueva lectura.
Al final de una carrera, el récord de la carrera se guarda en un archivo de texto mediante un procedimiento de file.write de python simple. A lo largo de la carrera, cada vez que se toma una medición, las estadísticas de ese momento: el momento en que la grabación, el termopar lectura, estado del ventilador, estado de la fuente de oxígeno y número de adiciones de combustible, se añaden a una lista. Cuando se llaman a los función de ahorro de datos, esta lista se escribe en un archivo de texto para que el funcionamiento puede ser más analizado más adelante.