Paso 1: Visión general del Software
Animatron8.3 está organizado en seis módulos. Inicialización y definición de funciones, tareas y datos ocupan más de la mitad del código. Es mi filosofía que datos unidades código; no al revés. Yo uso "#defines" para que el código es auto documentación. Es mucho más fácil comprender lo que es RandomMove, en lugar de recordar lo que significa un 10.
Los módulos son los siguientes:
- Inicialización de objetos globales y definiciones
- Definición comúnmente había utilizado funciones. Voy a utilizar una función con un número variable de argumentos, para simplificar un paso común - como el progreso de prestación o de salida de depuración. También utilizo una función para separar el código complejo de donde se utiliza, para hacer el flujo más fácil de entender.
- Instalación es donde se define mi serie de comunicaciones, donde se inicializa la tarjeta SD, donde se inicializa el controlador de servos, etc....
- El programa principal inicia con la definición e inicialización de variables locales. Estas son variables usadas en la ejecución, que no debían definirse para inicialización y configuración. Como la matriz de «Actores». Esta matriz se utiliza para guardar el paso de guión actual y el tiempo antes de que el siguiente paso debe ser ejecutado. Otros tales arreglos se utilizan para sincronizar diversas partes del programa o de que script se está ejecutando (en caso de que especifique que sólo una instancia es permitida).
- El módulo con comienzo de ejecución es donde el bosquejo recorre todos los comandos activos. Sin embargo primero, realiza dos tareas. Hay un interruptor dedicado conectado a Arduino, a través del cual se puede detener el programa. Comprueba que aquí. En segundo lugar, el pingüino puede reaccionar a los estímulos externos. En el Instructable paso que describe este módulo, se puede ver para audio (es decir algo) y control del servo de boca por consiguiente. Es también donde en el futuro, sensores de movimiento y seguimiento, posiblemente reconocimiento de voz y conversación, y comprobará otras reacciones.
- El resto del código realmente realiza la secuencia de comandos. Es un interruptor... caso la estructura y el código para cada característica se implementa en el bloque de caso.