Paso 1: Concepto y teoría
Antes de iniciar un proyecto debe hacer un concepto bruto lo que debe ser capaz de hacer. La idea básica es simple: una señal de audio estéreo es leída por un controlador que luego hace algunas matemáticas y salidas de un patrón sobre una matriz de LED. Además debe existir una pantalla de retroalimentación una alguna forma de controlar el sistema.
Concepto de hardware
El controlador para este proyecto debe ser capaz de leer valores analógicos 2 una vez, lo que significa que el controlador necesita 2 unidades de ADC. También debería apoyar DMA, para hacer la adquisición de datos independiente de la CPU. La DMA también ayudaría a los datos a los controladores de LED de salida. Mientras que un controlador Cortex M4 daría más potencia informática, decidí usar un controlador de atxmega128A3U, porque son más barato y fácil de obtener (se venden con un bootloader previamente programado en la página de ebay alemán para personas que no tienen un programador) mientras que todavía proporciona características necesarios.
La señal de audio tiene que ser amplificado y traído en un nivel para ser leído correctamente por el controlador. Además la señal se debe filtrar para eliminar los errores de cálculo de la FFT. Aunque no es absolutamente necesario un AGC fue agregado. Esta servidores como protección de los audio entrada etapa y alisa cambios extremos en el nivel de señal.
Como LED elegir LED WS2812, principalmente porque todavía tenía algunos de ellos, sino también porque son convenientes usar. El LED se colocaron detrás de pelotas de ping pong, que sirven como difusor de la luz. Los LEDs fueron dispuestos como una matriz de 7 x 6.
Por último he añadido una pantalla OLED basados en I2C y un codificador giratorio con botón como interfaz de entrada-salida para el usuario. Esto nos permite depurar el programa y poner en práctica un sencillo menú para controlar el proyecto terminado.
Esta configuración nos permite a los datos de audio de la muestra, se proceso un hacen una bonita animación sobre la matriz de LED.
En la fotografía también se puede ver un amplificador de audio con el altavoz. Se utiliza para escuchar la señal que es muestreada por el regulador. Para la versión final del proyecto no se utilizó.
La idea básica de la funcionalidad
Análisis de audio en tiempo real utiliza muchos recursos, que no tiene el controlador utilizado. Con el sistema actual es posible que los datos de la muestra y hacer todos los cálculos 20 veces por segundo. Mientras que esto es suficiente para que ciertas reacciones mira bastante buena, más complejas animaciones se ven descuidadas, si se presenta con 20 cuadros por segundo.
El controlador actualiza la pantalla a una velocidad de 60 frames por segundo. Esto hace animaciones muy suave, especialmente si usted descolora el color. El sistema de animación consigue alimentado con nuevos datos 20 veces por segundo y utiliza estos datos como plantilla para la animación. Mientras que este enfoque está lejos de ser una reacción en tiempo real a la música, es suficiente para engañar a la opinión humana en una reacción inmediata.