Paso 4: Microcontrolador y código
Para controlar el circuito, elegí mi microcontrolador favorito, el ATtiny85. Tiene suficiente procesamiento de energía y periféricos correspondientes para generar el sonido y el flash el láser. Aunque no es clasificada una ATtiny85 estándar de 3.6 voltios, se ejecutará sin problema en una celda de LiPo. También, este reloj y arrancar muy bien sin ningún componente externo.
La parte principal del código se basa en el trabajo realizado por David Johnson-Davies - www.technoblogy.com, ver su post de fecha 29 de septiembre de 2014. Pude programó el sonido con los cronómetros de a bordo, pero usé su "Reproductor de muestras de Audio" en su lugar, por lo que con algún esfuerzo puede programar sonidos completamente diferentes.
El reproductor de sonido está escrito muy inteligente y utiliza sobre todo lo que puede salir de este pequeño procesador posible. Funciona totalmente interrupción conducido, y las interrupciones son accionadas por un temporizador interno.
El código, publicado en codebender, reproduce un sonido de "Peeeuuwww" que creó utilizando el software Audacity, disminuirá con convertidor de sonido de Ubuntu y arregla luego en un trozo de código en C utilizando xxd. Además, el código se reinicia dos veces después de que ha jugado aproximadamente 125 ms, por lo que suena como "PeePeePeeuuw".
La salida de audio PWM se juega en el pin 2 y pin 3 en polaridad invertida. Las etapas de salida de la ATtiny85 puede única unidad 20 mA, tan sólo un altavoz de alta impedancia (ohm 250 o más) pueden ser conectadas entre los pins. Quería un sonido bastante fuerte, así que añadí un simple filtro y atenuador, que consta de 18K y 1K 5 resistor y un condensador nF 4,7 y esa señal a un módulo de amplificador.
Mientras se reproduce el sonido, pin 7 controla el controlador de láser del paso anterior en sincronía con el sonido.