Tabla de contenido:
- Suministros
- Paso 1: la idea
- Paso 2: procesamiento esquemático y de sonido
- Paso 3: rueda LED
- Paso 4: visualizaciones
- Paso 5: controles de botones táctiles
- Paso 6: Beat Detection y Servo "bailando"
- Paso 7: formas 3D
- Paso 8: fuente de alimentación
- Paso 9: Control de Bluetooth
- Paso 10: Aplicación de control basada en Blynk
- Paso 11: bocetos y bibliotecas
- Paso 12: Mejoras futuras
Video: Luces de fiesta portátiles: 12 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
Proyectos Tinkercad »
¿Puedes iluminar una fiesta y hacerla más divertida?
Esa era la pregunta. Y la respuesta es SÍ (por supuesto).
Este instructivo trata de hacer un dispositivo portátil que escuche música y cree visualización de música a partir de anillos concéntricos de LED Neopixel.
Se intentó hacer que el dispositivo "baile", es decir, que se moviera al ritmo de la música, pero la detección del ritmo resultó ser una tarea más complicada de lo que parece (sin juego de palabras), por lo que "bailar" es un poco incómodo. pero todavía está ahí.
El dispositivo está habilitado para Bluetooth y responderá a los comandos de texto. No tuve tiempo de escribir una aplicación para controlar Party Lights (ya sea Android o iOS). Si está a la altura de la tarea, ¡hágamelo saber!
Si te gusta este instructivo, ¡vota por él en el concurso Make It Glow!
Suministros
Para construir Party Lights necesitarás:
- STM32F103RCBT6 Leaflabs Leaf Maple Mini USB ARM Cortex-M3 Módulo para Arduino (enlace aquí): el cerebro del dispositivo. Estos dispositivos relativamente baratos son tan poderosos que no está claro por qué alguna vez volverías a un Arduino.
- Ecualizador gráfico de banda MSGEQ7 IC DIP-8 MSGEQ7 (enlace aquí)
- Módulo Bluetooth HC-05 o HC-06 (enlace aquí)
- Micrófono Adafruit MAX9814 (enlace aquí)
- Un servomotor estándar (enlace aquí) si desea que su dispositivo "baile"
- CJMCU 61 Bit WS2812 5050 RGB LED Driver Development Board (enlace aquí)
- TTP223 Panel de interruptores de autobloqueo / sin bloqueo configurables capacitivos del módulo de teclas táctiles (enlace aquí)
-
Ultra compacto 5000-mah Salidas USB dual Super Slim Power Bank (enlace aquí)
- Resistencias, condensadores, cables, pegamento, tornillos, placas de prototipos, etc., etc.
Paso 1: la idea
La idea es tener un dispositivo portátil que pueda colocarse cerca de una fuente de música y que cree visualizaciones musicales coloridas. Debería poder controlar el comportamiento del dispositivo mediante botones (táctiles) y Bluetooth.
Actualmente, Party Lights tiene implementadas 7 visualizaciones (¡avíseme si tiene más ideas!):
- Círculos de colores concéntricos
- cruz de Malta
- Luces pulsantes
- Chimenea (mi favorito personal)
- Luces de marcha
- Árboles de luz
- Segmentos laterales
De forma predeterminada, el dispositivo recorrerá las visualizaciones cada minuto. Sin embargo, un usuario puede optar por quedarse con una visualización y / o recorrerlas manualmente.
Las visualizaciones que rotan su paleta de colores también podrían "congelarse" si al usuario le gusta una combinación de colores en particular.
Y como un par de controles más, el usuario puede cambiar la sensibilidad del micrófono y habilitar / deshabilitar el modo de "danza" del servomotor.
Paso 2: procesamiento esquemático y de sonido
Un archivo esquemático fritzing se incluye en el paquete en Github en la subcarpeta "archivos".
Básicamente, un chip MSEQ7 realiza el procesamiento de audio, dividiendo una señal de audio en 7 bandas: 63Hz, 160Hz, 400Hz, 1kHz, 2.5kHz, 6.25kHz y 16kHz.
El microcontrolador usa esas 7 bandas para crear varias visualizaciones, básicamente mapeando las respectivas amplitudes de banda en la intensidad de la luz LED y las combinaciones de colores.
La fuente de sonido es un micrófono con 3 niveles de control de ganancia. Puede alternar entre los ajustes de ganancia usando uno de los botones dependiendo de qué tan lejos / fuerte sea la fuente de sonido.
El microcontrolador también intenta realizar una detección de "latidos" en la banda de "bajos" de 63Hz. Todavía estoy trabajando en una forma confiable de detectar y mantener la alineación del ritmo.
El uso de botones "táctiles" fue un experimento. Creo que funcionan bastante bien, sin embargo, la falta de comentarios de la prensa es algo confuso.
Paso 3: rueda LED
El núcleo de la visualización es una rueda de 61 LED.
Tenga en cuenta que la pieza viene como anillos individuales que tendrá que armar. Solía pensar en cables de cobre para las líneas eléctricas (que también mantienen bien unidos los anillos) y cables de señal delgados.
Los LED están numerados del 0 al 60 comenzando desde el LED exterior inferior y yendo en el sentido de las agujas del reloj hacia adentro. El LED central es el número 60.
Cada visualización se basa en matrices de datos bidimensionales, que mapean cada LED en una posición específica para el segmento de visualización de destino.
Por ejemplo, para círculos concéntricos, hay 5 segmentos:
- Círculo exterior, LED 0-23, 24 LED de largo
- Segundo círculo exterior, LED 24-39, 16 LED de largo
- Tercer círculo (centro), LED 40 - 51, 12 LED de largo
- Segundo círculo interior, LED 52 - 59, 8 LED de largo
- LED interior, LED 60, 1 LED largo
La visualización mapea 5 de los 7 canales de audio e ilumina los LED progresivamente según su posición en la banda circular proporcional al nivel de sonido en la banda.
Otras visualizaciones usan diferentes estructuras y formatos de datos, pero la idea siempre es tener visualizaciones impulsadas por las matrices de datos, no tanto por el código. De esta manera, las visualizaciones podrían ajustarse a diferentes formas (más o menos LED, más bandas de EQ) sin cambiar el código, solo los valores en las matrices de datos.
Por ejemplo, así es como se ve la estructura de datos para la visualización 1 en el boceto:
// Visualización 1 y 3 - 5 círculos completos byte constante TOTAL_LAYERS1 = 5; const byte LAYERS1 [TOTAL_LAYERS1] [25] = {// 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 {24, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23}, {16, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39}, {12, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51}, {8, 52, 53, 54, 55, 56, 57, 58, 59}, {1, 60}};
Paso 4: visualizaciones
Hasta ahora hay 7 visualizaciones y una animación de inicio:
Animación de inicio
Cuando el dispositivo está encendido, se muestra una imitación de fuegos artificiales. Se suponía que era una secuencia de prueba de LED y servo, pero luego evolucionó a una versión animada de dicha prueba.
Círculos de colores concéntricos
Las luces giran alrededor de la pantalla en círculos concéntricos proporcionales a la amplitud de la respectiva banda de ecualización. Cambiar aleatoriamente entre el sentido de las agujas del reloj y el sentido contrario a las agujas del reloj y girar lentamente los colores sobre la rueda de 256 colores
cruz de Malta
Una banda es el LED central. Otra banda son las líneas verticales y horizontales de los LED, y los segmentos restantes que representan cada uno una banda de ecualización. Todos los segmentos son colores rotativos en un desplazamiento de 128 para mantener el contraste.
Luces pulsantes
Cada círculo ilumina todos los LED al unísono para una banda de ecualización dedicada, mientras que los colores giran lentamente con un ligero desplazamiento. Las bandas de EQ se cambian progresivamente de un círculo al siguiente creando una progresión hacia afuera.
Hogar
Las bandas son semicírculos iluminados de abajo hacia arriba comenzando con un rojo brillante y agregando amarillo en el camino simulando un fuego ardiente en una chimenea. Ocasionalmente, la "chispa" blanca brillante se dispara al azar. No hay rotación de colores.
Luces de marcha
Cada círculo concéntrico es una banda de ecualización separada. Los LED principales son los que están en la línea vertical debajo del LED central. Una vez que el LED se enciende en proporción a la amplitud de la banda, comienza a "correr" alrededor del círculo respectivo, disminuyendo lentamente la intensidad. Se admiten rotaciones en sentido horario y antihorario, cambiando aleatoriamente.
Árboles de luz
Los segmentos se iluminan en línea recta desde el LED inferior hacia arriba y luego hacia los lados en semicírculos concéntricos que imitan palmeras. Rotación de color.
Segmentos laterales
Esta es una versión de la Cruz de Malta anterior con solo 2 segmentos diagonales usados. Se supone que se parece al icono de las ondas sonoras.
Paso 5: controles de botones táctiles
Hay 4 botones sensibles al tacto:
- Recorra las visualizaciones y mantenga la actual hasta que se elija otra (de forma predeterminada, las visualizaciones se ejecutan cada 30 segundos)
- "Congelar" / "descongelar" el esquema de color actual - si le gusta una combinación de colores en particular, puede congelarla - la rotación de color está deshabilitada y la visualización continuará solo con esta paleta de colores
- Ajustar la sensibilidad del micrófono
- Activar / desactivar el "modo de baile"
En el modo de baile, el dispositivo intentará detectar el "ritmo" de la música que se está reproduciendo actualmente y girará la cabeza de acuerdo con el ritmo. Hasta ahora, el "baile" es más incómodo que hermoso, para ser honesto.
Paso 6: Beat Detection y Servo "bailando"
El dispositivo está constantemente tratando de detectar el "latido" de la melodía actual como una distancia entre picos consecutivos de la banda de 63Hz. Una vez detectado (y solo si el modo de baile está activado), el dispositivo activará su servomotor para girar aleatoriamente a la izquierda o la derecha según el ritmo.
¡Cualquier idea brillante sobre cómo hacer esto más confiable es bienvenida!
El boceto 'Music_Test_LED' genera 7 bandas de EQ de una manera adecuada para trazar usando Arduino IDE.
Paso 7: formas 3D
Todo el conjunto de Party Lights se diseñó desde cero con Autodesk TinkerCAD.
El diseño original se encuentra aquí. La carpeta "archivos / 3D" en github.com contiene los modelos STL.
Este diseño ilustra cómo se ve ensamblado el dispositivo.
Todos los componentes se imprimieron y luego se ensamblaron / pegaron.
La "cúpula" aloja el microcontrolador, la placa Bluetooth y un micrófono. El microcontrolador se coloca en una placa de 40 mm x 60 mm y está soportado por rieles designados.
El servo está ubicado en la "pata" del domo, mientras que los botones están ubicados en la base.
El compartimento de la batería está impreso específicamente para el tipo de batería mencionado en la sección Suministros. Si opta por utilizar una batería diferente, el compartimento deberá rediseñarse en consecuencia.
Paso 8: fuente de alimentación
Un ultracompacto de 5000 mah con salidas USB dobles Super Slim Power Bank parece estar proporcionando suficiente energía para horas de funcionamiento.
El compartimento de la batería está diseñado de tal manera que se separa del resto del dispositivo y podría ser reemplazado por uno diseñado para un tipo diferente de batería.
El enchufe USB se colocó y se pegó en caliente en su lugar para conectar la batería a medida que se desliza.
Paso 9: Control de Bluetooth
Se agrega un módulo HC-05 para proporcionar una forma de controlar el dispositivo de forma inalámbrica.
Cuando está encendido, el dispositivo crea una conexión Bluetooth llamada "LEDDANCE", con la que puede emparejar su teléfono.
Idealmente, debería haber una aplicación que permita controlar PartyLights (elegir una paleta de colores, simular pulsaciones de botones, etc.). Sin embargo, todavía no he escrito ninguno.
Si está interesado en ayudar a escribir una aplicación para Android o iOS para Party Lights, ¡hágamelo saber!
Para controlar el dispositivo, puede utilizar actualmente la aplicación de terminal Bluetooth y enviar los siguientes comandos:
- LEDDBUTT - donde está '1', '2', '3' o '4' simula presionar un botón respectivo. Ej.: LEDDBUTT1
- LEDDCOLRc - donde c es un número de 0 a 255 - posición del color deseado en una rueda de colores. El dispositivo cambiará al color de LED especificado.
-
LEDDSTAT: devuelve un número de 3 caracteres que consta de "0" y "1" únicamente:
- primera posición: '0' - los colores no están rotando, '1' - los colores están rotando
- segunda posición: '0' - el modo de baile está desactivado, '1' - el modo de baile está activado
- tercera posición: '0' - micrófono en ganancia normal, '1' - micrófono en ganancia alta
Paso 10: Aplicación de control basada en Blynk
Blynk (blynk.io) es una plataforma de IoT independiente del hardware. Utilicé Blynk en mi instructable Sistema de riego automático de plantas de IoT y quedé impresionado con la facilidad y solidez de la plataforma.
Blynk admite la conexión a dispositivos periféricos a través de Bluetooth, exactamente lo que necesitamos para PartyLights.
Si aún no lo ha hecho, descargue la aplicación Blynk, regístrese y vuelva a crear la aplicación Blynk PartyLights utilizando las capturas de pantalla adjuntas a este paso. Asegúrese de que las asignaciones de pines virtuales sean las mismas que en las capturas de pantalla; de lo contrario, los botones de la aplicación no funcionarán según lo previsto.
El archivo "blynk_settings.h" contiene mi UID personal de Blynk. Cuando cree su proyecto, se le asignará uno nuevo para que lo use.
Sube el boceto de PartyLightsBlynk.ino, enciende la aplicación. Emparéjalo con un dispositivo Bluetooth y disfruta de la fiesta.
Paso 11: bocetos y bibliotecas
El boceto principal y los archivos de apoyo se encuentran en Github.com aquí.
Las siguientes bibliotecas se utilizaron en el boceto de Party Lights:
- TaskScheduler - multitarea cooperativa - aquí (desarrollado por mí)
- AverageFilter - filtro promedio con plantilla - aquí (desarrollado por mí)
- Servo - Servo control - es una biblioteca estándar de Arduino
- WS2812B -NEOPixel control - viene como parte del paquete STM32
Esta página Wiki explica cómo usar placas STM32 con Arduino IDE.
Paso 12: Mejoras futuras
Algunas cosas podrían mejorarse en este diseño, que podría considerar si se embarca en este proyecto:
- Utilice ESP32 en lugar de la placa Maple Mini. ESP32 tiene 2 CPU, pilas de Bluetooth y WiFi, y puede funcionar a 60MHz, 120MHz e incluso 240MHz.
- Diseño más pequeño: el dispositivo resultante es grande. Podría ser más compacto (especialmente si dejas caer la idea de baile y el servo asociado)
- La detección de latidos podría mejorarse infinitamente. Lo que nos viene naturalmente a los humanos, parece ser una tarea difícil para una computadora.
- Se podrían diseñar e implementar muchas más visualizaciones.
- Y, por supuesto, se podría escribir una aplicación para controlar el dispositivo de forma inalámbrica con una interfaz de usuario genial.
Recomendado:
FuseLight: convierte la luz de tubo vieja / fusionada en luz de estudio / fiesta: 3 pasos (con imágenes)
FuseLight: Convierta una luz de tubo vieja / fusionada en una luz de estudio / fiesta: aquí convertí una luz de tubo fusionada en una luz de estudio / pieza usando algunas herramientas básicas, luces rgb e impresión 3D. Debido a las tiras de LED RGB utilizadas, podemos tener múltiples colores y tonos
¡Luces portátiles simples y modulares !: 5 pasos (con imágenes)
¡Luces portátiles simples y modulares!: ¡Construya luces portátiles fabulosas, futuristas y ajustables con solo unas pocas piezas económicas (y entregables)! ¡Adhiérase a todo tipo de pertrechos y cambie los colores para combinar con atuendos / sentimientos / vacaciones / todas las cosas! Dificultad: Principiante + (solderi
Tela interactiva impresa en 3D con un Lilypad, un acelerómetro y luces portátiles: 13 pasos
Tela impresa en 3D interactiva con un usable, Lilypad, acelerómetro, luces: Wat heb je nodig: impresora 3D + filamento
Abrigo de fiesta LED: 15 pasos (con imágenes)
Abrigo de fiesta LED: la ciudad de Nueva York finalmente derogó su muy obsoleta Ley de Cabaret. Así que vamos a bailar. Necesitarás el atuendo adecuado para la ocasión. Este abrigo es una pieza de moda salvaje con una habilidad inesperada: se ilumina a medida que la luz circundante se atenúa. . Como una criatura con
Luces navideñas de bricolaje con música - Luces de la casa coreografiadas: 15 pasos (con imágenes)
Luces navideñas de bricolaje con música - Luces de casa con coreografía: Luces de Navidad con música - Luces de casa con coreografía Esto NO es un bricolaje para principiantes. Necesitará un conocimiento firme de la electrónica, los circuitos, la programación BÁSICA y conocimientos generales sobre seguridad eléctrica. Este bricolaje es para una persona con experiencia, así que