Paso 5: El Software
El software de Arduino es muy sencillo. Pero primero, vale la pena mencionar las siguientes:
- El ArduImu tiene un puerto de comunicación serial. El Arduino recibe paquetes serie del IMU que decodifica y se traduce en valores numéricos que denota la orientación de la Junta. Esta parte del código tendría que modificar Si utilizas otros IMU, especialmente si usted elige una IMU que comunica con I2C o SPI.
- La biblioteca de NeoPixel ha sido desarrollada por Adafruit y es muy fácil de usar. Aquí está el tutorial.
El arduIMU no era fácil de configurar, pero este tutorial había ayudado mucho. El código compartido en esa página tenía algunos problemas, vamos a suponer que era por la versión del firmware en el ArduIMU. Después de alguna depuración trabajó muy bien.
La semilla de luz tiene 2 conmutadores para interactuar con el usuario y activar o desactivar.
Lo que hace el software es:
- Durante la instalación, se configura el código: las clavijas de entrada para leer los interruptores, el puerto serie para recibir datos de la v3 de ArduiIMU y los pernos para controlar la NeoPixel.
- Una vez en la sección bucle del código:
- La función readPacket() recibe y verifica el código recibido de la IMU. Devuelve true si el paquete es válido y false en caso contrario.
- Si se ha recibido un paquete válido, se lee el estado de los interruptores con la función ReadInputs(). Esta función enumera todas las posibles combinaciones de los interruptores. Para los dos interruptores, las combinaciones totales son 2 ^ 2 = 4. La enumeración comienza con 0, esto indica que todos los interruptores estén apagados se utiliza para apagar los LEDs.
- Las combinaciones se descifra utilizando una instrucción switch, aparte de la condición apagada, hay 3 combinaciones más utilizados para desencadenar otros patrones de la pluma ligera.
- Una vez que el patrón correspondiente se ha dibujado en los LEDs, el bucle empieza otra vez.
Usted puede tener tantos interruptores como desee desencadenar diferentes efectos de luz. Añadiendo una tercera le daría la posibilidad de tener 2 ^ 3 = 8 posibles combinaciones. Pero empujando que muchos botones mientras dibujo pueden ser difíciles, pero todavía una posibilidad. El organigrama que se adjunta a este paso, describe lo que se ha discutido.
El archivo Zip incluye tres carpetas para directorio de sketchbook:
- ReadBinaryArduIMUV3-el código para recibir y decodificar los paquetes de la ArduIMU en el Arduino.
- NeoPixelTest-el código compartido por Adafruit para comenzar a NeoPixel. No se incluye la biblioteca de NeoPixel.
- LightNib-el código completo para obtener la semilla de luz funcionando, utilizando el hardware descrito aquí.