Paso 3: La "magia" detrás de la Transfiguración de la ciudad Control
La mayor parte de la magia es sólo una buena programación. Los nombres de las clases se eligen para hacer legible el código de FiniteStateMachine por nadie. Podríamos han dado estado de aspecto y borde para la situación, pero el código es simplemente más difícil de entender. Transfiguration.h es justo esa misma idea. Necesita descargar el archivo Transfiguration.h y añadir a sus archivos de proyecto. Suele ser la misma carpeta que el archivo .ino. Se debe detener y reiniciar el entorno de Arduino antes de que pueda editar el archivo en el entorno de Arduino.
No tienes que hacer lo siguiente es sólo para aquellos interesados en lo que está en el archivo Transfiguration.h
Pragma una vez es ayudar al compilador que sabemos utilizar solamente este archivo una vez.
Incluye en la parte superior trae el NeoPixel, CurieIMU, CurieTime y las funciones I2C.
Incluyen el vector es especial. Es un conjunto de rutinas que le permiten mantener una colección de cosas. En nuestro caso es una colección de longitudes y colores, o se ve. Básicamente, cada vez que vea vector puede leer como una colección de blabla.
Clase de color es realmente la parte del software de mantener el rojo, verde y azul de los colores en la paleta.
Colores es realmente una colección de colores para un Look. Tiene una función mágica llamada transfigurar que calcula un color entre el último color y el color actual con el tiempo. Así que las transiciones de un color a otro no es brusco.
Longitud es almacenar la paleta de opciones de longitud.
Longitudes como los colores es una colección de longitud y tiene una función de Transfiguración que no es tan complicada como colores.
Una mirada como era de esperar tiene colores y longitudes. Así que aunque el código de la versión parcial de programa para la máquina de estado finito sólo utiliza un Color y longitud. Este código está listo para tantos como el 101 de Arduino puede manejar.
#defines son sólo una manera de hacer constantes que ocupan ningún espacio en su Arduino.
Situación es la idea general de una situación que puede ocurrir. La función dominante es hasOccurred será true si se ha producido la situación.
Paso, el centrifugado y el tiempo son sólo especiales versiones de situación. Algunos programadores avanzados pueden preguntarse por qué la situación, paso, vuelta y tiempo se hacen de esta manera y la respuesta simple es la legibilidad. Encantado de discutir más en un correo electrónico.
Transición es una clase que mantiene la mirada actual, el siguiente aspecto y qué situación ocurrió que provoca la transición.
updateStepCount y eventCallback tienen razón desde el CurieIMU -> stepCount demo, menos algunos Serial Outptut.
Finalmente la clase de ocasión. Una colección de miradas, una colección de situaciones y una colección de reglas de transición para pasar de un estado a otro.
getPeg, setPeg son simplemente una manera de señalar un tiempo cuando algo ocurrió. Pensamos que una clavija en la tierra en el tiempo y luego ver cuánto de eso peg eres.
Bucle pasa justo por las situaciones mirando para ver si alguno se han producido y luego comprobar que la mirada coincide con una transición.
Configuración hace toda la configuración de la IMU, hora, alambre y NeoPixel
Increíblemente, eso es todo. Es 256 líneas de código, pero realmente sólo puesta en práctica de ideas que cada uno tiene sentido.