Paso 13: La chispa del programa
Si tienes esta bien lejos :) Estamos a un paso de levantarse nuestro Wall-e y funcionando. Lo último que debemos hacer es lo del programa.
En su mayor parte podemos utilizar funcionalidad estándar construido en la base, sin embargo cuando se trata de recibir mensajes de OSC, que vamos a necesitar un poco de ayuda. Para poder analizar los mensajes OSC, haremos uso de una biblioteca proporcionada por un miembro de la comunidad de chispa:
https://github.com/trublion/sparkcore_osc
Si lees el readme, verás que hay un par de problemas al usar esta biblioteca, sin embargo que principalmente giran en torno a envío de mensajes, pero como solamente estamos interesados en recibir los mensajes, esta biblioteca funciona muy bien para nosotros.
Para comenzar, en el generador de chispa, cree un nuevo proyecto y agregar los archivos de la biblioteca OSC que necesitamos. Como sólo estamos recibiendo mensajes, las clases que necesitamos son:
- OSCData.h/.cpp
- OSCMatch.h/.c
- OSCMessage.h/.cpp
A continuación, copie el código desde el archivo adjunto y actualizar las definiciones en la parte superior a manera que apunten a los pins correctos según su propio cableado. Cuando usted consigue cosas funcionando, puede que también necesite alterar las varias llamadas al método mapServo, afinando los últimos parámetros que son el minuto servo / máximo valores.
Todo lo demás debería funcionar sólo como es, y que debe ser auto explicativo. Para describir lo que está sucediendo en ese código sin embargo, tenemos.
- Como no necesita conectarse para cloud, comenzamos en modo automático semi y sólo tiene que conectar wifi. Para permitir que el aire programación aún, ver el botón de modo y si presiona, vuelva a conectar para cloud.
- Nuestro bucle principal mantiene comprobación de mensajes nuevos de OSC y si recibe, llama al controlador pertinente.
- Todos los controladores de servo mapa los valores de la OSC desde el min / max gama al minuto / máximo rango de los servos.
- La tapa armónica activa un desencadenador sonido directamente en el tablero de FX (efectivamente simulando un botón táctil real)
- En el bucle principal, también realizamos una rutina de abrir y cerrar para que wall-e parpadee cada 5 segundos.
- Para el último botón en el área de botones de la tapa armónica, nos hacen desconectar servos todos por lo que inmediatamente podemos cortar cualquier tensión en cualquiera de los servos.
Una vez que haya actualizado como sea necesario, flash a su núcleo de chispa y conectarlo a la parte posterior de tu Wall-e.