Paso 5: Software/programación
Lógica de toque
Una de las características "cool a tener" que quería implementar era el interruptor táctil capacitiva. Nunca había trabajado con este tipo de entrada antes, pero una vez más las bibliotecas de arduino lo hizo realmente simplemente. Puede descargar la biblioteca que utilicé aquí: http://playground.arduino.cc//Main/CapacitiveSensor?from=Main.CapSense . Sólo extraer y copiar a la carpeta de las bibliotecas en su Arduino el directorio de instalación.
Simplemente he añadido funcionalidad enganche para que el estado del sistema sería invertir uno cada uno tocar y soltar.
La premisa del sentido del tacto es bastante simple. La IC conduce el pin Tx alta y luego veces cuánto tiempo tarda el pin Rx ir alta así. Como llevar el dedo más cercano a la placa de toque metal, añades capacitancia a la línea y el tiempo que toma para que Rx a altos aumentos. Jugando con los umbrales puede afinar el código para trabajar con el sensor.
LED que asignaron al azar a
He encontrado algunas maneras inteligentes y otros no tan inteligentes de asignaron al azar a la atenuación de los LEDs. Sin embargo, incluso el mejor uno que encontré tenía dos defectos principales en mi mente:
1. el LED pasó demasiado tiempo en transición y en blanco
2. en ocasiones los tres canales pasaría por un valor de 0 que causaría una breve, pero muy molesto parpadeo de la oscuridad.
Para evitar estas y otras quejas menores, que opté por ir con mi propio diseño. Lo que hice fue en lugar de asignaron al azar a 3 canales, he creado una matriz que contenía 13 colores diferentes que me gustaba y luego la transición sin problemas entre las entradas al azar en esa matriz. De esta manera que era capaz de evitar todos los LEDs que se apaguen al mismo tiempo, especificar qué tan rápido hizo la transición y durante cuánto tiempo "descansaron" en cada color, y podría sesgar ciertos colores que me gustaron más.
Una vez que estaba contento con el código de Arduino, simplemente cambiaron las definiciones de pin para que coincidan con el ATTINY, programar el IC con el Arduino (ver enlace: http://hlt.media.mit.edu/?p=1695)y vuelva a colocar el ATTINY en mi protoboard.
El código adjunto tiene un montón de depuración impresión declaraciones y algunas funciones más que se me quitan pero traté de comentar bien. Déjeme saber si usted tiene alguna pregunta o comentario!
Ver código de conexión (tuve que cambiar el nombre de la .ino de arduino a un .txt ya no dejarme subir lo contrario)