Tabla de contenido:

Visualizador de audio de tira de LED retro: 4 pasos (con imágenes)
Visualizador de audio de tira de LED retro: 4 pasos (con imágenes)

Video: Visualizador de audio de tira de LED retro: 4 pasos (con imágenes)

Video: Visualizador de audio de tira de LED retro: 4 pasos (con imágenes)
Video: Puse a prueba las luces led inteligentes para tu pantalla /Govee/ 2024, Noviembre
Anonim
Image
Image
Lista de partes
Lista de partes

Como músico y estudiante de ingeniería eléctrica, me encanta cualquier proyecto que cruce estos dos campos. He visto algunos visualizadores de audio de bricolaje (aquí, aquí, aquí y aquí), pero cada uno se había perdido al menos uno de los dos objetivos que me propuse: una calidad de construcción profesional y una pantalla relativamente grande (un debilucho 8 * 8 ¡La matriz de LED no sería suficiente aquí!). Con un toque clásico y con un tamaño de 40 "x 20", este visualizador de audio logra ambos objetivos.

Disculpas de antemano por las fotos verticales. Muchos de ellos fueron tomados para las redes sociales.

Paso 1: Lista de piezas

Ya tenía varias de estas piezas por ahí. Los enlaces son puramente de referencia. No compre componentes innecesariamente costosos.

Electrónica

  1. WS2811 60LEDS / m @ 5m, IP30 (no impermeable), direccionable: eran más baratos que WS2812 en ese momento. Tiene cierto margen de maniobra aquí, pero asegúrese de que las dimensiones sean correctas y de que pueda hablar con los LED. También tenga en cuenta que los WS2811 son de 12 V, mientras que los WS2812 son de 5 V.
  2. Conectores JST de 9 x 3 pines + receptáculos
  3. Fuente de alimentación DC 12V 20A (240W) - Inicialmente planeé hacer 2 tiras de LED y quería un juego de altavoces para volar tu casa. Cada tira de luz es de 90 W en el peor de los casos (no he medido para confirmar), lo que me dejó ~ 60 W para altavoces + amplificador. De todos modos, la opción 15A costaba solo $ 4 menos.
  4. Cable de alimentación (3 clavijas)
  5. Arduino Uno: tenía un R3 por ahí, así que lo usé. Es posible que pueda encontrar una opción más barata de una de las imitaciones u otro proveedor.
  6. TRRS Breakout - Para entrada auxiliar
  7. Regulador L7805 de 5 V: cualquier regulador de 5 V que acepte una entrada de 12 V funcionará.
  8. Condensadores de 330 nF, 100 nF - según la hoja de datos L7805
  9. Condensadores 2 x 10kR, 2 x 1kR, 2 x 100 nF - para polarización de entrada de audio
  10. Receptor estéreo: cualquier receptor estéreo clásico funcionará siempre que tenga una entrada auxiliar (3,5 mm o RCA). Compré una Panasonic RA6600 de Craigslist por $ 15. Recomiendo consultar Goodwill, craigslist y otras tiendas de segunda mano para ver si hay similares. *
  11. Altavoces: no altavoces BT. Solo un juego de altavoces. Preste atención a qué impedancia es compatible con su receptor. Encontré un juego de 3 altavoces de 20 W (= alto) en Goodwill por $ 6, y venía con un altavoz "central" y dos "frontales".
  12. Adaptador de audio Logitech BT: este dispositivo puede transmitir audio a los altavoces estéreo y a su circuito
  13. Cable RCA macho a RCA macho
  14. Cable auxiliar

Hardware

  1. 2x6 (8 pies) - Sin tratamiento a presión. Debe costar ~ $ 6 o menos en HD o Lowe's
  2. Acrílico de transmisión de luz al 40% - Pedí 18 "x 24" x 1/8 ", y técnicamente era 17,75" x 23,5 ". Guárdelo en la envoltura cuando vaya al corte con láser.
  3. Tinte para madera: solo necesita una lata pequeña. Usé caoba roja Minwax y quedó muy bien. Definitivamente recomiendo un tono oscuro. Originalmente probé provincial y no se veía tan bien.
  4. Laca: en primer lugar, mira este video de Steve Ramsey y decide por ti mismo qué funciona mejor. Conseguí una lata de aerosol semibrillante (no había brillo disponible) y, sinceramente, no sirvió de mucho. Pero también solo hice una capa por falta de tiempo.
  5. Tornillos para madera de 40 x 1/2 "- Tenía cabeza redonda disponible para mí, pero recomiendo usar la parte superior plana si puede. No creo que eso interfiera con la calidad de construcción, pero no dude en preguntar primero a cualquier persona más familiarizada con la carpintería.
  6. Madera de desecho, pegamento de gorila, pegamento caliente, soldadura, alambre y tiras de comando (estilo velcro, 20 medianas o 10 grandes)

* Planeo construir una barra de sonido para hacer este proyecto completamente "desde cero", que reemplazará 9-13 arriba. Espero actualizar este instructable con eso para fines del verano.

Paso 2: creación de prototipos

Creación de prototipos
Creación de prototipos

Esta sección no es algo que deba completar, pero sí quiero mostrar cómo se veía el proyecto a medida que avanzaba.

Aquí, pegué los LED en el patrón de serpiente y estaba experimentando con la difusión de la luz a través de una bolsa de basura colocada sobre sí misma (lo recomiendo como una alternativa al acrílico si está tratando de reducir costos. adjúntelo de alguna manera diferente).

Una configuración de 10x10 me funcionó, pero es posible que prefieras 8x12 o 7x14. Siéntete libre de experimentar. Antes de tener mi estéreo, encontré un amplificador y lo conecté a mi tablero, y antes de eso, reproduje audio desde mi computadora portátil al circuito para análisis de audio y simultáneamente presioné "reproducir" en mi teléfono para escucharlo.

Soy un gran creyente en medir dos veces, cortar una vez. Entonces, hagas lo que hagas, sigue esa guía y estarás listo.

Paso 3: Circuito + Código

Circuito + Código
Circuito + Código
Circuito + Código
Circuito + Código
Circuito + Código
Circuito + Código

El código está disponible en GitHub.

Protoboard, suelde a una placa perfilada o diseñe su propia PCB. Lo que sea que funcione mejor para ti aquí, hazlo. Mi demostración aquí se está ejecutando en una placa de pruebas, pero cuando construya la barra de sonido, transferiré todo a una PCB. Para obtener energía del adaptador, corte el extremo hembra y retire el aislamiento negro. Pele los cables suficientes para atornillarlos a los terminales del adaptador. ¡Tenga siempre cuidado al trabajar con aire acondicionado! Aparte de eso, solo algunas cosas para tener en cuenta aquí.

  1. Caminos terrestres Otra cosa es asegurarse de que sus caminos terrestres sean buenos. Necesita tierra desde el adaptador a Arduino a la entrada auxiliar, que también se conectará a tierra en el receptor Logitech BT y desde allí a tierra en el estéreo. Si alguno de estos tiene una conexión rota o mala, obtendrá una entrada de audio muy ruidosa y, por lo tanto, una pantalla muy ruidosa.
  2. Biasing de entrada de audio El audio reproducido a través de un cable auxiliar, desde su teléfono o computadora portátil o donde sea, se reproducirá a -2.2 a + 2.2V. Arduino solo es capaz de leer de 0 a + 5V, por lo que debe sesgar la entrada de audio. Esto se puede lograr de manera eficiente con amplificadores operacionales, pero si el consumo de energía no es un problema (¿tal vez compró una fuente de alimentación de 240 W?), También se puede lograr con resistencias y condensadores. Los valores que elegí fueron diferentes porque no tenía capacitores de 10uF a mano. Puede jugar con el simulador para ver si lo que elige funciona.
  3. Transformadas de Fourier Cualquier proyecto que utilice transformadas de Fourier tendrá una sección de antecedentes para discutirlas. Si ya tienes experiencia, ¡genial! Si no es así, todo lo que debe comprender es que toman una instantánea de una señal y devuelven información sobre qué frecuencias están presentes en esa señal en ese momento. Entonces, si tomó la transformada de Fourier de sin (440 (2 * pi * t)), le diría que una frecuencia de 440Hz está presente en su señal. Si tomó la transformada de Fourier de 7 * sin (440 (2 * pi * t)) + 5 * sin (2000 (2 * pi * t)), le diría que hay una señal de 440Hz y 2000Hz, y los grados relativos en los que están presentes. Puede hacer esto para cualquier señal con cualquier número de funciones de componentes. Dado que todo el audio es solo una suma de sinusoides, podemos tomar la transformada de Fourier de un montón de instantáneas y ver lo que realmente está sucediendo Verá en el código que también aplicamos una ventana a nuestra señal antes de tomar el Fourier transformar. Se puede encontrar más sobre eso aquí, pero una breve explicación es que la señal que realmente terminamos dando a la transformación apesta un poco, y Windows lo arregla por nosotros. Su código no se romperá si no los usa, pero la pantalla no se verá tan limpia. Puede haber mejores algoritmos disponibles (YAAPT, por ejemplo), pero siguiendo los principios de KISS, elegí usar lo que ya estaba disponible, que son varias bibliotecas Arduino bien escritas para la Transformada Rápida de Fourier, o FFT.
  4. ¿Puede el Arduino realmente procesar todo en tiempo real? Para que todo aparezca en tiempo real, el Arduino necesita tomar 128 muestras, procesar ese FFT, manipular los valores de la pantalla y actualizar la pantalla muy rápidamente. Si quisiera una precisión de 1/16 de nota a 150 bpm (cerca del tempo del extremo superior de la mayoría de las canciones pop), necesitaría procesar todo en 100 ms. Además, el ojo humano puede ver a 30 FPS, lo que corresponde a longitudes de fotogramas de 30 ms. Esta publicación de blog no me dio la mayor confianza, pero decidí ver por mí mismo si Arduino resistiría. Después de mi propia evaluación comparativa, estaba muy orgulloso de mi R3. La fase de cálculo fue, con mucho, el factor limitante, pero pude procesar una FFT de 128 longitudes de UINT16 en solo 70 ms. Esto estaba dentro de las tolerancias de audio, pero más del doble de la restricción visual. Investigando más, encontré Arduino FHT, que aprovecha la simetría FFT y solo calcula los valores reales. En otras palabras, es aproximadamente el doble de rápido. Y efectivamente, llevó toda la velocidad del bucle a ~ 30 ms. Otra nota aquí sobre la resolución de la pantalla. Una longitud N FFT muestreada en Fs Hz devuelve N intervalos, donde el k-ésimo intervalo corresponde a k * Fs / N Hz. El Arduino ADC, que lee la entrada de audio y toma muestras, normalmente funciona a ~ 9,6 kHz. Sin embargo, la FFT solo puede devolver información sobre frecuencias de hasta 1/2 * Fs. Los humanos pueden escuchar hasta 20 kHz, por lo que idealmente querríamos muestrear a> 40 kHz. El ADC se puede piratear para que funcione un poco más rápido, pero no está cerca. El mejor resultado que vi sin perder estabilidad fue en un ADC de 14 kHz. Además, la FFT más grande que pude procesar para obtener un efecto en tiempo real fue N = 128. Esto significa que cada bin representa ~ 109Hz, lo cual está bien en frecuencias más altas pero malo en el extremo inferior. Un buen visualizador intenta reservar una octava para cada compás, que corresponde a separaciones en [16,35, 32,70, 65,41, 130,81, 261,63, 523,25, 1046,50, 2093,00, 4186,01] Hz. 109Hz significa que las primeras 2.5 octavas están todas en un contenedor. Aún así, pude obtener un buen efecto visual, en parte al tomar el promedio de cada cubo, donde un cubo es un grupo de contenedores entre dos de estos límites. Espero que esto no sea confuso, y el código en sí debería aclarar lo que realmente está sucediendo, pero no dude en preguntar a continuación si no tiene sentido.

Paso 4: Montaje

Montaje
Montaje
Montaje
Montaje
Montaje
Montaje

Como dije anteriormente, quería algo con calidad de construcción profesional. Al principio empecé a pegar listones de madera, pero un amigo (e ingeniero mecánico experto) sugirió un enfoque diferente. Tenga en cuenta que un 2x6 es realmente 1.5 "x 5". Y tenga cuidado al trabajar con cualquiera de las siguientes máquinas.

  1. Tome su 2x6x8 y lije si es necesario. Córtelo en secciones de 2 "x 6" x 22 ". Esto le da dos listones para" quemar "si se equivoca.
  2. Tome cada sección de 22 "y páselo por una sierra de mesa a lo largo para hacer listones de 1.5" x ~ 1.6 "x 22". El último tercio puede ser difícil de cortar con una sierra de mesa, por lo que puede cambiar a una sierra de cinta. Solo asegúrate de que todo esté lo más recto posible. Además, 1,6 "es una guía y puede subir hasta 1,75". Eso es lo que eran mis piezas, pero mientras todas sean iguales entre sí, no importa demasiado. El factor limitante es el acrílico de 18 ".
  3. En el extremo de las piezas, marque una forma de U que tenga 1/8 "de cada lado y un poco más de 3/4" de profundidad. NOTA: Si usa un acrílico diferente, la profundidad cambiará. A <3/4 ", mi acrílico no difunde la luz en absoluto. Un poco más, se difunde completamente. Quieres evitar cualquier" perla ". Encontré esta publicación de Hackaday como una buena referencia, pero obtener la difusión perfecta es ¡muy dificil!
  4. Con un enrutador de mesa, corte esa U central hasta el final del listón. El 22 "es más largo de lo que necesita, así que no se preocupe por astillar los extremos si lo hace. Los enrutadores pueden ser complicados, pero obtenga un poco más ancho que la mitad del ancho de la U y tenga cuidado al cortar más de 1 /. 8 "de material a la vez. Repita: no intente hacerlo todo en 2 pasadas. Dañarás la madera y probablemente te lastimarás. Trabaje con la rotación del tupí en los cortes 1-4 y trabaje contra ella en los cortes 5-8. Esto asegura que tenga el mejor control sobre el par de torsión del enrutador.
  5. Corte la tira de LED en secciones de 30 LED (solo se puede direccionar cada conjunto de 3 LED). Probablemente deba desoldar algunas de las conexiones. Coloque esas tiras a lo largo de las vías. Un lado debe quedar al ras y el otro debe tener un poco de espacio para el receptáculo JST, que quedará al ras. Desafortunadamente, no obtuve una imagen de esto, pero vea el diagrama adjunto. Marque la longitud aquí, pero no corte nada todavía.
  6. Mide el ancho de cada listón. Con esto y la longitud del paso 7, corte con láser el acrílico en los 10 rectángulos necesarios. Es mejor ser un poco largo que un poco corto. Si se quema, límpielo con isopropilo.
  7. Confirma que cada listón acrílico tenga la misma longitud que marcaste en el paso 5, luego corta el listón a esta longitud.
  8. Ahora necesita dos piezas de puente para unir el acrílico. Esto permite un fácil mantenimiento de las tiras de luz en caso de que surja algo. Estas piezas deben tener aproximadamente [su ancho] - 2 * 1/8 "de largo con caras cuadradas de 1/2", pero deben ajustarse un poco. Con estas piezas firmemente en su lugar y alineadas con la cara frontal de las lamas, taladre agujeros en el centro de cada puente desde el exterior de las lamas. Haga todo lo posible para que cada ejercicio sea uniforme. No dejes los puentes atornillados, pero asegúrate de que puedan estarlo. Tenga cuidado de no hundir demasiado el tornillo y partir la madera.
  9. En este punto, tiñe las lamas y aplica cualquier acabado.
  10. Ahora atornille los puentes. ¡Asegúrese de que estén al ras! De lo contrario, deberá agregar algún tipo de calce. Aplique pegamento de gorila (preferido) o pegamento caliente (que puede servir como calzo) a los puentes y pegue el acrílico. No aplique ningún adhesivo a lo largo de la propia lama.
  11. Suelde los receptáculos JST a un lado de todas las tiras de LED menos una. Colóquelos todos en el mismo extremo que indican las flechas marcadas. Suelde los cables de los enchufes JST en los otros extremos. Es posible que deba pelar más cables en cada conector. ¡Asegúrese de que las conexiones sean correctas cuando esté enchufado! El adhesivo en la parte posterior de los LED es terrible, así que no confíe en él. Coloca los LED en el riel central y pégalos con pegamento gorila, prestando atención a la dirección indicada en las tiras. Recuerda que estás serpenteando todo.
  12. En el primer listón, suelde cables lo suficientemente largos para obtener energía + tierra del adaptador y la señal del Arduino.
  13. Vuelva a atornillar las lamas y los puentes. Coloque las tiras de comando en la parte posterior (estilo velcro, 2 medianas en la parte superior e inferior o 1 grande en el centro). Haga todas las conexiones necesarias y cuélguelas en la pared a una distancia de ~ 3 ". Disfrute de los frutos de su trabajo.

Recomendado: