Hacer luces que reaccionan a Audio (4 / 5 paso)

Paso 4: Versión simplificada e iniciación

La parte más compleja del hardware es la etapa de entrada de audio. Si no desea utilizar un equipo de música, pero una señal mono, simplemente puede cortar una de las etapas de entrada. Si desea aún más sencillo podrías sólo una muy simple etapa de entrada, que tiene una alta resistencia y sólo un filtro. Puede que necesite agregar otra etapa de amplificador a esto.
Si está utilizando un Arduino no es posible copiar y pegar el código fuente proporcionado, ya que la placa Arduino no se basa en un controlador de atxmega.

Si desea utilizar este proyecto con otro controlador, necesita adaptar el código usted mismo. Los siguientes pasos le dará una idea sobre qué hacer:

Lo primero que tienes que hacer es la señal de audio de la muestra. Nos necesita 128 puntos de datos y una frecuencia de muestreo de 32kHz aproximadamente. La forma más sencilla de hacer esto es hacer un bucle, que lee al ADC y luego hace una pausa de sobre 30µs. El retraso de 30µs en combinación con el tiempo necesario para leer los datos debe dar una frecuencia de muestreo más o menos precisa.

El siguiente paso es la FFT. Un chico puso la biblioteca FFT utilizada en este proyecto en una biblioteca conveniente para Arduino. Esto viene con un ejemplo, que explica cómo usarlo. En el ejemplo se utiliza el modo recorrido libre de la ADC, que lamentablemente no funciona a 30kHz. Esto no es necesariamente una mala cosa, pero su rango de frecuencias se verán afectada y tus cubos FFT tendrá una resolución diferente. Por supuesto también puede consultar el proyecto oficial de la biblioteca de la FFT.

Si desea implementar una detección de beat solo mirar la explicación en la parte del software o el código de mi proyecto. Esto es matemática básica y se puede copiar/pegar.

Qué sucede después de que es tú imaginación. Los métodos más utilizados para hacer animaciones dulce, pérdida de color o lo que quieras hacer son estas:

  • valor objetivo: el valor objetivo se deriva de los datos de la FFT. El valor real cambia poco a poco hasta alcanzar el valor objetivo.
  • media móvil: Recuerdas los últimos X valores. Esos valores se suman y dividen por X. Esto le da la media móvil
  • ponderación media móvil: esto es un poco como la media móvil, pero valores más nuevos tienen una mayor influencia en el resultado que los mayores valores. valor = ((valor * (NUM - 1)) + new_value) NUM NUM puede ser libremente elegido; Más alto significa que se adapta más lento/suavizador

Estos métodos le permiten hacer animaciones de aspecto fluidos. Si usted toma los datos dirigen de la FFT que puede ver saltos súbitos en por ejemplo el desvanecimiento del color. Utilizo el sistema de valor real/objetivo y ponderado móvil promedio mayor parte del tiempo.

Un ejemplo muy sencillo sobre cómo utilizar esta fórmulas es esta línea de código: color = ((color * 15) + fft_bucket_h_l) / 16;
Calcula una media móvil ponderada de la canastilla de la FFT con el valor más alto en el canal izquierdo. Este valor puede utilizarse entonces para establecer el color de un LED RGB. ¡ Felicidades! Usted acaba de hacer un LED, que cambia su color dependiendo de la frecuencia más dominante.

A primera vista este Matemáticas pueden parecer abrumadora, pero por suerte todo el trabajo duro ya está hecho. Si pasas algún tiempo a su forma de trabajo en este proyecto a ver que puede hacer impresionantes efectos con algunos simples de matemáticas que has aprendido en la escuela.

Datos importantes para su uso
Los datos de la FFT se pueden acceder mediante la fft clase como esta:

fft_result_t * fft_left = fft.getLeft(); para el canal 1

fft_result_t * fft_right = fft.getRight(); para el canal 2

La estructura del resultado se ve así:

typedef struct {}

espectro de uint16_t [FFT_N / 2];

uint16_t adc_min, adc_max;

} fft_result_t;

espectro es un array de 64 elementos, que el resultado de la FFT. adc_min y adc_max son los valores mínimos y máximos de la señal.

Dentro de la animation.cpp, donde debe colocar su código de animación tienes acceso a las siguientes variables globales

uint16_t bands_l [ANIM_BAND_NUM], bands_r [ANIM_BAND_NUM]; condensan de matrices que contienen los datos del 7

bandas uint16_t amplitude_l, amplitude_r; amplitud, por los valores adc_min y adc_max

uint8_t beats, bpm_h, bpm_m, bpm_l, bpm_all; Late contiene una máscara de bits, que permite comprobar si hubo un golpe en una banda específica. La otra variable darle los golpes por minuto para alta, media, baja y todo (cualquier) banda

uint8_t fft_bucket_h_l, fft_bucket_h_r, fft_bucket_l_l, fft_bucket_l_r; número (0... 63) de la FFT cubo con el valor más alto y más bajo de todas las variables _l se refiere al canal izquierdo y _r a la derecha.

Artículos Relacionados

Cómo hacer luces de flor de cereza

Cómo hacer luces de flor de cereza

me encanta la forma de los cerezos fuera de mi edificio alegre floración cada primavera.  Quería traer la belleza de los cerezos en flor en el interior así que hice algunos de papel de seda y para hacerlos aún más especiales agregué LEDsEstas luces b
Cómo hacer luces del partido pulsante Beat

Cómo hacer luces del partido pulsante Beat

este es un tutorial de vídeo que muestra cómo hacer un dispositivo que toma una señal de tus estéreo y hace luces flashes para tu música.
Hacer luces Flash

Hacer luces Flash

Fresco luces intermitentes! DIY - los mejores bloopers son aquí muy facilmente para hacer luces de Navidad o cualquier luces twinkle Just hack una cuerda y utilizarlo en cualquier lugar que necesita
Arduino y procesamiento: Motion graphics y luces reaccionan al audio

Arduino y procesamiento: Motion graphics y luces reaccionan al audio

tomó un rato para captar lo que quería, pero valió la pena.
Cómo hacer luces bicicleta magnética con sugru + imanes

Cómo hacer luces bicicleta magnética con sugru + imanes

Luces de bicicleta pueden ser frustrante y lenta para colocar y quitar, sobre todo con mal tiempo con guantes! Mediante la adición de imanes y sus luces, su bicicleta, podrás ajustar las luces y apagar con los guantes y en cuestión de un movimiento m
Como hacer un reproductor de CD Audio del Cdrom viejo

Como hacer un reproductor de CD Audio del Cdrom viejo

Hola amigos este es mi primer proyecto en Instructable.En él te mostraré cómo hacer un reproductor de Cd de viejo Cd Rom.ES MUY SIMPLE, FÁCIL Y BARATA DEL PROYECTO INCLUSO UN 8-10 AÑOS NIÑO PUEDE HACERLO.HE HICE DE VIEJAS PIEZAS DE PC VIEJAS COMO PEN
Hacer un sencillo amplificador de Audio

Hacer un sencillo amplificador de Audio

es mi primer instructable. Vamos a ver cómo hacer un amplificador de audio que se puede utilizar con cualquiera de sus instrumentos musicales como guitarra, piano y con ipod y otros dispositivos. Que permite comenzar el viaje...Descargo de responsabi
Hacer mejor que el nuevo soporte para acuario

Hacer mejor que el nuevo soporte para acuario

Después de 15 años de servicio muy apreciado en la celebración de 750 libras de una combinación de vidrio, roca, equipo eléctrico, agua y la variedad de peces y plantas acuáticas que me dan paz, era tiempo de aceptar la dimisión de mi antiguo, stand
Hacer su propio Cable de Audio/Video de ADAM Coleco

Hacer su propio Cable de Audio/Video de ADAM Coleco

Este artículo describe cómo crear un cable de Audio y Video que permitirá una Coleco Adán para conectarse a un televisor mediante los TV compuesto audio y video RCA conectores, que proporciona una conexión de audio y vídeo mejorada de forma significa
Fijación bicicleta luces que gire demasiado fácilmente con Sugru

Fijación bicicleta luces que gire demasiado fácilmente con Sugru

como un ávido ciclista, soy un gran fan de la seguridad. Aparte de cascos, las luces son probablemente la cosa más grande que un ciclista puede hacer para mejorar su seguridad en la carretera.Lamentablemente vivo en una ciudad medio grande y como man
Cómo hacer un colgante de pared Audio/iPod plataforma de un viejo patín de

Cómo hacer un colgante de pared Audio/iPod plataforma de un viejo patín de

Hola chicos,Así que yo quería hacer algo fresco con un viejo patín mío (skate en cuestión era un juguete máquina 7.9 ancho) y también tuve un par de altavoces a poner alrededor así que me decidí a hacer esta cosa y voy a mostrarte cómo hacerlo!¡ Disf
Cómo hacer luces de policía Arduino

Cómo hacer luces de policía Arduino

requiere de elementos:Arduino (cualquier tipo)Computadora programa Arduino8 LED (preferiblemente alta intensidad azul y rojo)Cable 22AWG para protoboardresistencias de ohm 7 100 (pin 13 no necesita una resistencia en el Duemilanove)(opcional) Protobo
Hacer papel que crece - reciclar, renovar y planta que en la tierra

Hacer papel que crece - reciclar, renovar y planta que en la tierra

¿cuántas toneladas de correo basura obtenemos a lo largo de una semana en todo Estados Unidos? Todo el mundo quiere vender todo y la solución a cualquier problema que se te ocurra y que llena nuestros botes de basura y rellenos sanitarios. Aquí está
Cómo hacer texto que brilla intensamente en Paint.NET

Cómo hacer texto que brilla intensamente en Paint.NET

esto es como hacer texto tienen un efecto que brilla intensamente en Paint.NET. En este instructable, utilicé la fuente Tengwar Annatar con efecto brillante para hacer una especie de mirada "runes de la magia"; sin embargo, esta técnica puede ap