Tabla de contenido:
Video: ANALIZADOR DE ESPECTRO CRAZY L.O.L: 6 pasos (con imágenes)
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
Hoy me gustaría compartir cómo hacer un analizador de espectro de audio: 36 bandas combinando 4 LoL Shields juntos. Este loco proyecto utiliza una biblioteca FFT para analizar una señal de audio estéreo, convertirla en bandas de frecuencia y mostrar la amplitud de estas bandas de frecuencia en 4 x LoL Shields.
Antes de comenzar, mire el video a continuación:
Paso 1: COSAS QUE NECESITAMOS
Los principales componentes electrónicos son los siguientes:
- 4 piezas x Arduino Uno R3.
- 4 piezas x PCB LoLShield. PCBWay (servicio de prototipos de PCB personalizados con todas las funciones) me ayudó con estas placas de circuito impreso LoLShield.
- 504 piezas x LED, 3 mm. Cada LoLShield necesita 126 LED y podemos elegir 4 colores y tipos de LED diferentes (difusos o no difusos).
- 1pcs x Cargador portátil Batería de banco de energía 10000 / 20000mAh.
- 4 piezas x cabezal macho de 40 pines de 2,54 mm.
- 2 piezas x cable USB tipo A / B. Uno se usa para la programación de Arduino, el otro es para alimentar el Arduino desde un banco de energía.
- 1 conector de audio estéreo hembra de 3,5 mm.
- Adaptador divisor de audio de 1 pieza x 3,5 mm 1 macho a 2 hembra o divisor de audio para auriculares múltiples.
- 1 cable de conector macho-macho de conector de audio estéreo de 3,5 mm.
- Cable de cinta arcoíris de 1m x 8P.
- Cable de alimentación de 1 m x dos núcleos.
- 1 pieza x Acrílico transparente, tamaño A4.
Paso 2: ESQUEMA
El LoLShield es una matriz LED de charlieplexing de 9x14 para Arduino y este diseño NO incluye resistencias limitadoras de corriente. Los LED son direccionables individualmente, por lo que podemos usarlos para mostrar información en una matriz de LED de 9 × 14.
LoL Shield deja D0 (Rx), D1 (Tx) y los pines analógicos A0 a A5 libres para otras aplicaciones. La imagen a continuación muestra el uso de pines de Arduino Uno para este proyecto:
Mi analizador de espectro de audio tiene 4 x (Arduino Uno + LoLShield). La fuente de alimentación y el conector de audio estéreo de 3,5 mm están conectados como se muestra a continuación:
Paso 3: SOLDADURA DE PCB Y LED DE LOL SHIELD
1. PCB LoL SHIELD
Ѽ. Puede consultar el diseño de PCB en: https://github.com/jprodgers/LoLshield por Jimmie P. Rodgers.
Ѽ. PCBWay me apoyó estas placas de circuito impreso LoLShield con entrega rápida y PCB de alta calidad.
2. SOLDADURA DE LED
Ѽ. Cada LoLShield necesita 126 leds y utilicé diferentes tipos y colores para 4x LoLShields de la siguiente manera:
- 1 x LoLShield: led difuso, color rojo, 3mm.
- 1 x LoLShield: led difuso, color verde, 3 mm.
- 2 x LoLShield: led no difuso (transparente), color azul, 3 mm.
Ѽ. Preparación de LED y PCB LoLShield
Ѽ. Soldar 126 LED en PCB LoLShield. Debemos verificar los LED por batería después de soldar cada fila - 14 LED
TOP LOLSHIELD
PROTECTOR INFERIOR
Ѽ. Termine un LoLShield y continúe soldando los 3 LoLShield restantes.
Paso 4: CONEXIÓN Y MONTAJE
Ѽ. Fuente de alimentación de soldadura y señal de audio a 4xLoLShield. Una señal estéreo utiliza dos canales de audio: izquierdo y derecho, que están conectados a Arduino Uno en los pines analógicos A4 y A5.
- A4: Canal de audio izquierdo.
- A5: Canal de audio derecho.
Ѽ. Alineación y montaje de 4 x Arduino Uno en la placa acrílica.
Ѽ. Conectando 4 x LoLShield a 4 x Arduino Uno.
Ѽ. Pegue el banco de energía del cargador portátil y el conector de audio en la placa de acrílico
Ѽ. ¡Hecho!
Paso 5: PROGRAMACIÓN
Debe consultar cómo funciona LoLShield según el método Charlieplexing y la Transformada rápida de Fourier (FFT) en:
en.wikipedia.org/wiki/Charlieplexing
github.com/kosme/fix_fft
Para Charlieplexing, prestamos atención a los "tres estados" de los pines digitales Arduino: "HIGH" (5V), "LOW" (0V) e "INPUT". El modo "INPUT" pone el pin Arduino en estado de alta impedancia. Referencia en:
www.arduino.cc/en/Tutorial/DigitalPins
En mi proyecto, las bandas de frecuencia de audio se muestran en 4 x LoL Shield y se describen como se muestra a continuación:
Cada Arduino lee la señal de audio en el canal izquierdo / derecho y realiza la FFT.
para (i = 0; i <64; i ++) {Audio_Input = analogRead (RIGHT_CHANNEL); // Leer la señal de audio en el canal derecho A5 - ARDUINO 1 & 2 // Audio_Input = analogRead (LEFT_CHANNEL); // Leer la señal de audio en el canal izquierdo A4 - ARDUINO 3 & 4 Real_Number = Audio_Input; Imaginary_Number = 0; } fix_fft (Real_Number, Imaginary_Number, 6, 0); // Realice la Transformada Rápida de Fourier con N_WAVE = 6 (2 ^ 6 = 64) para (i = 0; i <32; i ++) {Real_Number = 2 * sqrt (Real_Number * Real_Number + Imaginary_Number * Imaginary_Number ); }
Ѽ. Arduino 1: muestra las bandas de frecuencia de amplitud 01 ~ 09 del canal derecho (A5).
for (int x = 0; x <14; x ++) {for (int y = 0; y <9; y ++) {if (x <Real_Number [y]) // Mostrar las bandas de frecuencia 01 a 09 {LedSign:: Set (13-x, 8-y, 1); // LED ENCENDIDO} else {LedSign:: Set (13-x, 8-y, 0); // LLEVAR AFUERA } } }
Ѽ. Arduino 2: muestra las bandas de frecuencia de amplitud 10 ~ 18 del canal derecho (A5).
for (int x = 0; x <14; x ++) {for (int y = 0; y <9; y ++) {if (x <Real_Number [9 + y]) // Mostrar las bandas de frecuencia 10 a 18 {LedSign:: Establecer (13-x, 8-y, 1); // LED ENCENDIDO} else {LedSign:: Set (13-x, 8-y, 0); // LLEVAR AFUERA } } }
Ѽ. Arduino 3: muestra las bandas de frecuencia de amplitud 01 ~ 09 del canal izquierdo (A4).
El código es el mismo que el de Arduino 1 y el canal izquierdo de la señal de audio se conecta a Arduino en el pin analógico A4.
Ѽ. Arduino 4: muestra las bandas de frecuencia de amplitud 10 ~ 18 del canal izquierdo.
El código es el mismo que el de Arduino 2 y el canal izquierdo de la señal de audio se conecta a Arduino en el pin analógico A4.
Paso 6: ACABADO
Este analizador de espectro portátil se puede conectar directamente a una computadora portátil / computadora de escritorio, teléfono móvil, tableta u otros reproductores de música a través del conector de audio estéreo de 3,5 mm. Este proyecto parece una locura, ¡espero que les guste!
Gracias por tu lectura !!!