Cómo construir una lámpara de nube con rayos reactivos de sonido

  • Edmund Richardson
  • 0
  • 2284
  • 244
Anuncio

Hace unos meses, una lámpara de humor de truenos y relámpagos de $ 3000 se volvió viral en la comunidad de creadores. Era una luz increíblemente hermosa, pero el precio lo dejaba fuera del alcance de cualquiera con su cordura intacta. Lo que haremos hoy no es exactamente lo mismo: estamos haciendo algo más práctico, en lugar de una obra de arte, pero será mucho más genial y más personalizable.

Elegí omitir los altavoces suponiendo que probablemente ya tengas un buen par de altavoces en tu habitación que preferirías usar, y francamente poner un altavoz en una lámpara es un poco extraño. En cambio, agregaré un micrófono que permitirá que el rayo reaccione automáticamente a los ruidos fuertes, ya sea desde una tormenta real o una banda sonora reproducida desde su PC o estéreo.

También vamos a utilizar una cadena de LED Neopixel RGB completos (WS2812B), para que podamos reproducir colores que no sean blancos y tener control sobre cada píxel.

Advertencia: la fuente de alimentación que he usado en este proyecto tiene terminales de tornillo que se conectan a un cable de CA con corriente. Si no se siente seguro al cablear un enchufe, asegúrese de comprar una fuente de alimentación completamente cerrada. Como mínimo, deberá encerrar la fuente de alimentación dentro de un cuadro de proyecto seguro.

Paso 0: Introducción

Aquí hay un video de demostración del proyecto terminado. He implementado algunos modos diferentes hasta el momento, desde el rayo estándar hasta una nube de ácido trippy y una lámpara de estado de ánimo que se desvanece en color, que se puede elegir desde el control remoto.

El código completo y las bibliotecas necesarias están disponibles para descargar desde este repositorio de Github.

Paso 1: Necesitarás

  • Cadena WS2812B, generalmente con un precio de alrededor de $ 50 por 5 metros. No se preocupe si tiene otro tipo de hebra de Neopixel, es casi seguro que sea compatible con la interfaz FastLED, pero su cableado puede ser diferente (puede requerir una línea de sincronización además de la señal, por ejemplo).
  • Fuente de alimentación de 5V, 10A +: compré unas unidades de 15A por $ 11 cada una. Toman una entrada de CA de 120-240 V y producen una salida considerable de 5 V que será más que suficiente para alimentar todos nuestros píxeles a pleno brillo, y el Arduino.
  • Cableado eléctrico, enchufe e interruptor en línea.
  • Proyecto cerrado
  • Dos arduinos. Los clones de $ 10 Funduino están bien. El segundo es necesario para el control remoto, mientras que el primero controla la lógica principal y los LED..
  • Dos resistencias de 2.2k (o más) ohmios: el valor exacto no importa tanto, alrededor de 1.5k hasta 47k deberían funcionar.
  • Tablero de circuitos
  • Receptor IR TSOP4838
  • Control remoto IR: compré al por mayor por alrededor de $ 2 cada uno, pero cualquier control remoto debería funcionar con modificaciones de código.
  • Módulo de micrófono grande
  • Deseche la madera de MDF para cortar su base y una sierra de calar.
  • Material de embalaje de poliestireno / inserciones de caja.
  • Relleno de almohada de algodón polipropileno. Saqué más que suficiente de unos cuantos cojines viejos horribles. Si esa no es una opción, debería poder comprar algo nuevo por alrededor de $ 10, o usar algodón más barato. Intenté con ambos: la lana de algodón necesitaba más trabajo para sacarla y no era tan esponjosa, pero en un apuro, funcionaría.
  • Cadena y ganchos para colgar la nube: deben soportar más de 5 kg.
  • Pistola de pegamento con ajuste de baja temperatura
  • Pegamento en aerosol: es más fácil pegar el relleno en tu nube con esto, pero una pistola de pegamento también podría funcionar.

El costo total es de alrededor de $ 100 sin incluir herramientas, pero la mayor parte de esto lo obtuve de toda la casa. Todos los componentes electrónicos están comúnmente disponibles; el micrófono se puede encontrar en un kit de sensor o comprar individualmente.

Paso 2: corta la base

Corta una base rugosa de un trozo de MDF con una sierra de calar: la forma exacta obviamente depende de ti, pero por alguna razón una nube tiene forma de frijol en mi mente. Vamos a colocar algunos ganchos en esto para colgar, pero de lo contrario solo proporciona una base sólida para construir. El área central estará reservada para la electrónica, la fuente de alimentación y para manejar la cadena, así que asegúrese de tener suficiente espacio para colocar al menos el recinto de su proyecto con algunos ganchos que lo rodean.

Paso 3: capa de poliestireno

Este es el paso más difícil y creativo, pero en realidad solo estamos creando algo sólido y un poco sorta en forma de nube para pegar la tira de LED. Pegue piezas grandes de empaquetadura de poliestireno en la base (y debajo de ella), usando una configuración de bajo calor en su pistola de pegamento. Si no tiene una configuración baja, apague la pistola de calor y deje que se enfríe un poco antes de intentar pegarla. Si la temperatura es demasiado alta, simplemente derretirá el material de embalaje.

Asegúrese de que cada pieza sea sólida antes de pegar la siguiente, y es mejor pegar más de lo que no es suficiente.

Una vez más, recuerde dejar una cavidad lo suficientemente grande dentro de la nube para que quepa en la electrónica, la cadena y los ganchos..

Paso 4: talla una forma de nube 3D

Usa un cuchillo de trinchar para despejar tu nube redondeando las esquinas y cortando material innecesario, hasta que hayas logrado una forma de nube en 3D. Realmente no importa cuán difícil sea esto, ya que cubriremos todo en el relleno más tarde; puede ocultar fácilmente los errores.

Paso 5: Arreglar ganchos, ordenar

Finalmente, fije tres o cuatro ganchos a la base de MDF, desde el interior de cada esquina de la cavidad de la nube. Tendrá que perforar un pequeño agujero piloto ya que es difícil atornillar MDF directamente.

También le di a todo una simple capa de pintura en aerosol blanca para asegurar una base de color uniforme, pero no estoy seguro de que fuera realmente necesario.

Paso 6: Pega las tiras LED

Antes de comenzar a aplicar pegamento a los LED, comience desde una nueva tira o cuente cuántos LED tiene en total: deberá calcular cuántos ha utilizado más adelante en el paso de programación. Corte un pequeño agujero en el costado de su nube y pase a través de los cables que forman el comienzo de su tira de LED en la cavidad de la nube. Tenga mucho cuidado de comenzar desde el extremo correcto: las tiras de LED son sensibles a la dirección, así que asegúrese de que las flechas de señal apunten lejos de la cavidad.

Trabajando lentamente, pegue los píxeles del LED a la base de poliestireno en un patrón circular, antes de tirar de la tira hacia la base para cubrir la parte inferior. Una vez más, no es necesario ser perfecto aquí, porque una vez que hemos difundido todo y lo hemos cubierto con relleno, todo se ve bastante impresionante de todos modos.

Utilicé un total de 85 LED, o un poco más de 2.5 m, rodeé el cuerpo principal dos veces y usé una sola cadena de LED en la parte inferior.

Paso 7: diagrama de cableado

El cableado es complejo, pero se divide fácilmente en secciones..

Primero, conecte y asegure la fuente de alimentación, preferiblemente en un caso de proyecto separado. No voy a dar una conferencia sobre la seguridad de los cables de CA con corriente, así que voy a suponer que puede manejar esta parte, y tiene una línea de 5V y GND..

IMPORTANTE: al programar y probar el Arduino, los 5 V de su fuente de alimentación deben permanecer aislados de los Arduino (sin embargo, todos los GND están conectados); solo debe alimentar la tira de LED, mientras que el Arduino usa los 5 V suministrados a través de USB. Cuando termine de programar, el USB debe estar desconectado y ya no proporcionará 5 V al Arduino; en este punto, debe conectar los 5 V de su suministro al riel de 5 V en el lado izquierdo de la placa de pruebas..

Comience conectando la tierra y los pines de 5V de cada Arduino a los rieles laterales izquierdos de la placa de pruebas. Compartirán la misma fuente de alimentación, ya sea la fuente de alimentación externa que tengamos o el USB conectado a una de ellas..

Luego, complete la sección de cableado I2C: esto es lo que permite que nuestros dos Arduinos se comuniquen. Tome los pines A4 de ambos Arduinos en una sola fila en la placa de pruebas, luego conecte una resistencia de 2.2k de esa fila al riel de 5V. Repita para A5, conectándolos en una fila separada, con otra resistencia de 2.2k nuevamente a 5V.

A continuación, conecte el receptor IR: compruebe la configuración del pin si tiene otro modelo, pero básicamente el pin de la señal debe ir a D11 en un Arduino. Sube el thundercloud_ir_receiver.ino dibuje a este Arduino (todo el código aquí), luego desconecte el USB ya que ya no lo necesitamos.

En el otro Arduino, conecta el Datos en señal de pin desde el inicio de su tira de LED a D6. El GND de sus LED debería ser común con todos los Arduinos, pero en este punto los 5V vendrán directamente de la fuente de alimentación..

También en este Arduino, conecte el módulo del micrófono a A0. Sube el otro thundercloud.ino esboce y mantenga el USB conectado por ahora mientras lo depura. Comience cambiando el NUM_LEDS variable apropiadamente.

Paso 8: pegue el relleno

Como paso final, pegue su relleno. Aquí no hay una técnica en particular: simplemente rocíe la nube con una capa de pegamento y tome un puñado de relleno. Sin embargo, es más fácil trabajar con relleno si ya lo has sacado para aumentar el área de superficie.

Si ha usado el mismo control remoto que yo, el botón STROBE lo pone en modo de nube reactiva al sonido; FLASH es el modo de color trippy, y FADE es la lámpara de estado de ánimo de color que se desvanece lentamente.

Paso 9: Explicación del código

¿Por qué dos Arduinos? Tanto la programación del receptor de infrarrojos como la biblioteca de controladores de píxeles WS2818B son muy sensibles a la temporización: si la temporización se retrasa, la señal IR se corrompe. Al dar a cada circuito su propio microcontrolador y dejar que hablen por el protocolo I2C, podemos asegurar que el tiempo sea perfecto en cada uno. También puede encontrar módulos IR separados con su propio microcontrolador incorporado, pero mi investigación encontró que en realidad cuestan más que un simple clon Arduino y un LED IR. Thundercloud_ir_receiever no debería requerir explicación, aunque es posible que desee leer primero los conceptos básicos de I2C.

En el controlador principal de la nube tormentosa, definimos diferentes modos de funcionamiento, como ENCENDIDO (los efectos del rayo no están activados por el sonido), NUBE (el rayo solo está activado por el sonido), ACID (la nube muestra colores triples) o modos simples de un solo color. Para definir un nuevo modo, agregue al enumeración primero, luego abra la consola y encuentre un botón de control remoto para asignarlo: cada pulsación remota debe imprimir una línea de depuración. En el reciboEvento () En el método, asignamos esas pulsaciones de teclas a un modo, así que agregue una declaración de interruptor adicional allí. Finalmente, en general lazo() método enrutamos esas selecciones de modo a diferentes funciones de visualización.

El código de suavizado del micrófono es originalmente de Adafruit: lo simplifiqué para nuestras necesidades y agregué un disparador cuando se escucha un ruido más fuerte que el promedio.

Paso 10: modos de rayos

Las pantallas de rayos combinan tres diferentes “tipos” de relámpagos para lograr algo suficientemente realista, o al menos agradable a la vista. El primer tipo es grieta(), donde cada LED se enciende brevemente entre 10 y 100 ms. El segundo tipo es laminación() - donde cada LED tiene un 10% de posibilidades de activación, y todo el ciclo se repite 2-10 veces, con un retraso de 5-100 ms entre cada ciclo. El tercer tipo es trueno (), que selecciona dos secciones diferentes de la tira, cada una entre 10-20 LED, muestra estas secciones brevemente de 3 a 6 veces. Examine estos métodos en detalle para ver cómo se activan los LED individuales: la rueda de color HSV se usa en todo momento (por lo que el blanco es H = 0, S = 0, V = 255). Te animo a ajustar o escribir nuevas pantallas de rayos, luego compartirlas en los comentarios si haces una que te guste.

Cada vez que se dispara un rayo o se ejecuta el bucle, la nube elige aleatoriamente entre los tres tipos de rayos. Finalmente un Reiniciar() El método apaga todas las luces, de lo contrario “recuerda” su estado anterior.

Preguntas o problemas: póngase en contacto en los comentarios y haré todo lo posible para ayudarlo. Si tiene una cuenta de Github, no dude en publicar errores o problemas en el rastreador de problemas. Si ha realizado alguna modificación o ha escrito nuevas funciones de iluminación, comparta un enlace a su código en Gist o Pastebin.




Nadie ha comentado sobre este artículo todavía.

Sobre tecnología moderna, simple y asequible.
Tu guía en el mundo de la tecnología moderna. Aprenda a usar las tecnologías y los dispositivos que nos rodean todos los días y aprenda a descubrir cosas interesantes en Internet.