Taula de continguts:

Llums portàtils de festa: 12 passos (amb imatges)
Llums portàtils de festa: 12 passos (amb imatges)

Vídeo: Llums portàtils de festa: 12 passos (amb imatges)

Vídeo: Llums portàtils de festa: 12 passos (amb imatges)
Vídeo: Как сделать легкую цементную стяжку в старом доме. ПЕРЕДЕЛКА ХРУЩЕВКИ ОТ А до Я #12 2024, De novembre
Anonim
Image
Image
La idea
La idea

Projectes Tinkercad »

Es pot aportar llum a una festa i fer-la més divertida?

Aquesta era la pregunta. I la resposta és SÍ (és clar).

Aquest mètode instructiu consisteix a fabricar un dispositiu portàtil que escolti música i cregui visualització musical a partir d’anells concèntrics de LED de Neopixel.

Es va intentar fer que el dispositiu "ballés", és a dir, que es mogués al ritme de la música, però la detecció de ritmes va resultar ser una tasca més complicada del que sembla (sense cap joc de paraules), de manera que "ballar" és una mica incòmode, però encara hi és.

El dispositiu està habilitat per Bluetooth i respondrà a les ordres de text. No vaig tenir temps d’escriure una aplicació per controlar Party Lights (Android o iOS). Si esteu a l’alçada de la feina, feu-m’ho saber !!!

Si us agrada aquesta instrucció, voteu-la al concurs Make It Glow.

Subministraments

Per construir Party Lights necessitareu:

  • STM32F103RCBT6 Leaflabs Leaf Maple Mini USB ARM Cortex-M3 Mòdul per Arduino (enllaç aquí): el cervell del dispositiu. Aquests dispositius relativament econòmics són tan potents que no està clar per què tornaria a un Arduino.
  • IC DIP-8 d'equalitzador gràfic de banda MSGEQ7 MSGEQ7 (enllaç aquí)
  • Mòdul Bluetooth HC-05 o HC-06 (enllaç aquí)
  • Micròfon Adafruit MAX9814 (enllaç aquí)
  • Un servomotor estàndard (enllaç aquí) és que voleu que el vostre dispositiu "balli"
  • CJMCU 61 bits WS2812 5050 RGB LED Driver Development Board (enllaç aquí)
  • Mòdul de tecla tàctil TTP223 Tauler de commutació autoblocable / sense bloqueig configurable capacitiu (enllaç aquí)
  • Ultra compactes de 5000 mah amb sortides USB Super Slim Power Bank (enllaç aquí)

  • Resistències, condensadors, cables, cola, cargols, taules de prototipatge, etc. etc.

Pas 1: la idea

La idea
La idea

La idea és tenir un dispositiu portàtil que es pugui col·locar a prop d’una font de música i que cregui visualitzacions musicals de colors. Hauríeu de poder controlar el comportament del dispositiu mitjançant botons (tàctils) i Bluetooth.

Actualment, Party Lights té set visualitzacions implementades (aviseu-me si teniu més idees):

  1. Cercles concèntrics de colors
  2. Creu de Malta
  3. Llums polsants
  4. Llar de foc (el meu favorit personal)
  5. Llums de funcionament
  6. Arbres clars
  7. Segments laterals

Per defecte, el dispositiu recorrerà les visualitzacions cada minut. No obstant això, un usuari pot optar per mantenir-se amb una visualització i / o recórrer-les manualment.

Les visualitzacions que giren la seva paleta de colors també es podrien "congelar" si a un usuari li agrada una combinació de colors concreta.

I com un parell de controls més, l'usuari pot canviar la sensibilitat del micròfon i activar / desactivar el mode "ball" del servomotor.

Pas 2: Esquema i processament de so

Esquema i processament de so
Esquema i processament de so
Esquema i processament de so
Esquema i processament de so
Esquema i processament de so
Esquema i processament de so
Esquema i processament de so
Esquema i processament de so

S'inclou un fitxer esquemàtic divertit al paquet de Github a la subcarpeta "fitxers".

Bàsicament, un xip MSEQ7 fa el processament d'àudio, dividint un senyal d'àudio en 7 bandes: 63Hz, 160Hz, 400Hz, 1kHz, 2,5kHz, 6,25kHz i 16kHz

El microcontrolador utilitza aquestes 7 bandes per crear diverses visualitzacions, bàsicament assignant les respectives amplituds de banda en combinacions de colors i intensitat de llum LED.

La font de so és un micròfon amb 3 nivells de control de guany. Podeu desplaçar-vos per la configuració del guany mitjançant un dels botons en funció de la distància / intensitat de la font de so.

El microcontrolador també intenta realitzar una detecció de "batec" a la banda de "baix" de 63 Hz. Encara estic treballant en una manera fiable de detectar i mantenir l'alineació dels batecs.

L'ús de botons "tàctils" va ser un experiment. Crec que funcionen força bé, però, la manca de comentaris de la premsa confon una mica.

Pas 3: roda LED

Roda LED
Roda LED
Roda LED
Roda LED
Roda LED
Roda LED

El nucli de la visualització és una roda de 61 LED.

Tingueu en compte que la peça es presenta com anells individuals que haurà de muntar. Jo feia servir cables de coure per a línies elèctriques (que també mantenen bé els anells) i cables de senyal prims.

Els LED estan numerats de 0 a 60, començant pel LED exterior inferior i anant en sentit horari cap a dins. El LED central és el número 60.

Cada visualització es basa en matrius de dades bidimensionals, que mapen cada LED en una posició específica per al segment de visualització objectiu.

Per exemple, per als cercles concèntrics, hi ha 5 segments:

  • Cercle exterior, LED de 0 a 23, 24 LED de llarg
  • Segon cercle exterior, LED de 24 a 39, de 16 LED de llarg
  • Tercer cercle (centre), LED de 40 a 51, de 12 LED de llarg
  • Segon cercle interior, LED de 52 a 59, de 8 LED de llarg
  • LED interior, LED 60, 1 LED llarg

La visualització assigna 5 de 7 canals d’àudio i il·lumina els LED progressivament segons la seva posició a la banda circular proporcional al nivell de so de la banda.

Altres visualitzacions utilitzen diferents estructures i formats de dades, però la idea sempre és tenir visualitzacions impulsades per les matrius de dades, no tant pel codi. D'aquesta manera, les visualitzacions es podrien ajustar a diferents formes (més o menys LEDs, més bandes EQ) sense canviar el codi, només els valors de les matrius de dades.

Per exemple, així és l’estructura de dades de la visualització 1 a l’esbós:

// Visualització 1 i 3: 5 cercles de byconst complets TOTAL_LAYERS1 = 5; byte const 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}};

Pas 4: visualitzacions

Visualitzacions
Visualitzacions
Visualitzacions
Visualitzacions
Visualitzacions
Visualitzacions
Visualitzacions
Visualitzacions

Fins ara hi ha 7 visualitzacions i una animació inicial:

Animació inicial

Quan el dispositiu està engegat, es mostra una imitació d'un focs artificials. Se suposava que es tractaria d’una seqüència de proves LED i Servo, però més tard es va convertir en una versió animada d’aquesta prova

Cercles concèntrics de colors

Els llums donen la volta a la pantalla en cercles concèntrics proporcionals a l’amplitud de la banda eq respectiva. Canviant de manera aleatòria entre el rellotge i el contrari i gireu lentament els colors sobre la roda de 256 colors

Creu de Malta

Una banda és el LED central. Una altra banda són les línies verticals i horitzontals dels LED, i els segments restants que representen cadascun una banda EQ. Tots els segments roten colors en offset de 128 per mantenir el contrast.

Llums polsants

Cada cercle il·lumina tots els LED a l'uníson per a una banda d'equació dedicada, mentre gira lentament els colors amb un lleuger desplaçament. Les bandes EQ es desplacen progressivament d'un cercle al següent creant una progressió cap a l'exterior.

Xemeneia

Les bandes són semicercles il·luminats des de la part inferior cap a la part superior, començant per un vermell brillant i afegint groc a la pujada simulant un foc en una xemeneia. Una "espurna" de color blanc brillant ocasional es dispara aleatòriament. No hi ha rotació de color

Llums de funcionament

Cada cercle concèntric és una banda d'equalització independent. Els LED principals són els de la línia vertical per sota del LED central. Una vegada que el LED s'encén proporcionalment a l'amplitud de la banda, comença a "córrer" al voltant del cercle respectiu disminuint lentament la intensitat. S’admeten les rotacions en sentit horari i antihorari, canviant aleatòriament.

Arbres clars

Els segments s’il·luminen en línia recta des del LED inferior cap amunt i després cap als costats en semicercles concèntrics imitant palmeres. Rotació del color.

Segments laterals

Aquesta és una versió de l'antiga Creu de Malta amb només 2 segments diagonals utilitzats. Se suposa que s'assembla a la icona d'ones sonores.

Pas 5: toqueu els controls del botó

Toca Controls de botons
Toca Controls de botons

Hi ha 4 botons sensibles al tacte:

  1. Feu un recorregut per les visualitzacions i mantingueu l'actual fins que se'n triï una altra (per defecte, les visualitzacions fan un cicle cada 30 segons)
  2. "Congela" / "Desglaça" l'esquema de colors actual: si us agrada una combinació de colors en particular, podeu congelar-la: la rotació del color està desactivada i la visualització continuarà només amb aquesta paleta de colors.
  3. Ajusteu la sensibilitat del micròfon
  4. Activeu o desactiveu el "mode de ball"

En mode de ball, el dispositiu intentarà detectar el "ritme" de la música que es reprodueix actualment i girar el cap segons el ritme. Fins ara, el "ball" és bastant incòmode que bonic, per ser sincer.

Pas 6: Detecció de ritmes i servo "ball"

Detecció de ritmes i Servo
Detecció de ritmes i Servo

El dispositiu intenta detectar constantment el "batec" de la melodia actual com a distància entre pics consecutius de la banda de 63Hz. Un cop detectat (i només si el mode de ball està activat), el dispositiu activarà el seu servomotor per girar a l’atzar o cap a la dreta segons el ritme.

Qualsevol idea brillant sobre com fer això més fiable és benvinguda.

L'esbós "Music_Test_LED" emet 7 bandes d'equalitzador d'una manera adequada per a traçar amb Arduino IDE.

Pas 7: formes 3D

Formes 3D
Formes 3D
Formes 3D
Formes 3D
Formes 3D
Formes 3D

Tot el conjunt de Party Lights es va dissenyar des de zero amb Autodesk TinkerCAD.

El disseny original es troba aquí. La carpeta "fitxers / 3D" de github.com conté els models STL.

Aquest disseny il·lustra l’aspecte del dispositiu muntat.

Tots els components es van imprimir i després es van muntar / enganxar.

La "cúpula" allotja el microcontrolador, la placa Bluetooth i un micròfon. El microcontrolador es col·loca en una placa de 40 mm x 60 mm i està recolzat per rails designats.

El servo es troba a la "cama" de la cúpula, mentre que els botons es troben a la base.

El compartiment de la bateria s’imprimeix específicament per al tipus de bateria esmentat a la secció Subministraments. Si decidiu utilitzar una bateria diferent, el compartiment haurà de ser redissenyat en conseqüència.

Pas 8: font d'alimentació

Font d'alimentació
Font d'alimentació
Font d'alimentació
Font d'alimentació

Un Ultra-Compact 5000-mah Dual USB Sortides Super Slim Power Bank sembla que proporciona prou energia per a hores de funcionament.

El compartiment de la bateria està dissenyat de manera que es desprengui de la resta del dispositiu i es pugui substituir pel dissenyat per a un tipus de bateria diferent.

L'endoll USB es va col·locar i es va enganxar en lloc per connectar la bateria mentre es llisca.

Pas 9: control de Bluetooth

Control Bluetooth
Control Bluetooth

S'afegeix un mòdul HC-05 per proporcionar una manera de controlar el dispositiu sense fils.

Quan està engegat, el dispositiu crea una connexió Bluetooth anomenada "LEDDANCE", amb la qual podeu combinar el telèfon.

L’ideal seria que hi hagués una aplicació que permeti controlar PartyLights (triar una paleta de colors, simular pulsacions de botons, etc.). Tot i això, encara no n’he escrit cap.

Si esteu interessats en ajudar a escriure una aplicació per a Android o iOS per a Party Lights, feu-m'ho saber.

Per controlar el dispositiu, actualment podeu utilitzar l’aplicació del terminal Bluetooth i enviar les ordres següents:

  • LEDDBUTT: on és "1", "2", "3" o "4" simula prémer un botó respectiu. Ex.: LEDDBUTT1
  • LEDDCOLRc - on c és un número del 0 al 255 - posició del color desitjat en una roda de colors. El dispositiu canviarà al color LED especificat.
  • LEDDSTAT: retorna un número de 3 caràcters que consisteix només en '0 i' 1:

    • primera posició: '0' - els colors no giren, '1' - els colors giren
    • segona posició: '0' - el mode de ball està desactivat, '1' - el mode de ball està activat
    • tercera posició: '0': el micròfon té un guany normal, '1': el micròfon té un guany elevat

Pas 10: control de l'aplicació basada en Blynk

Aplicació de control basada en Blynk
Aplicació de control basada en Blynk
Aplicació de control basada en Blynk
Aplicació de control basada en Blynk
Aplicació de control basada en Blynk
Aplicació de control basada en Blynk
Aplicació de control basada en Blynk
Aplicació de control basada en Blynk

Blynk (blynk.io) és una plataforma IoT agnòstica de maquinari. Vaig fer servir Blynk en el meu sistema de reg automàtic de plantes IoT que era instructiu i em va impressionar la facilitat i robustesa de la plataforma.

Blynk admet la connexió a dispositius Edge mitjançant Bluetooth, exactament el que necessitem per a PartyLights.

Si encara no ho heu fet, descarregueu l'aplicació Blynk, registreu-vos i recreeu l'aplicació Blynk PartyLights mitjançant les captures de pantalla adjuntes a aquest pas. Assegureu-vos que les assignacions de pins virtuals siguin les mateixes que a les captures de pantalla; en cas contrari, els botons de l’aplicació no funcionaran tal com es pretenia.

El fitxer "blynk_settings.h" conté el meu ID personal de Blynk. Quan creeu el vostre projecte, se us assignarà un de nou que utilitzeu.

Pengeu l'esbós de PartyLightsBlynk.ino i engegueu l'aplicació. Combina amb un dispositiu Bluetooth i gaudeix de la festa.

Pas 11: esbossos i biblioteques

Esbossos i biblioteques
Esbossos i biblioteques

Els esbossos principals i els fitxers de suport es troben a Github.com aquí.

Les següents biblioteques es van utilitzar a l'esbós Party Lights:

  • TaskScheduler - multitarea cooperativa - aquí (desenvolupat per mi)
  • AverageFilter: filtre mitjà amb plantilla - aquí (desenvolupat per mi)
  • Servo - Servo control - és una biblioteca Arduino estàndard
  • WS2812B -NEOPixel control: s'inclou com a part del paquet STM32

Aquesta pàgina Wiki explica com utilitzar les plaques STM32 amb Arduino IDE.

Pas 12: Millores futures

Millores futures
Millores futures

Es poden millorar algunes coses en aquest disseny, que podeu tenir en compte si inicieu aquest projecte:

  • Utilitzeu ESP32 en lloc del tauler Maple Mini. ESP32 té 2 CPU, piles Bluetooth i WiFi, i pot funcionar a 60 MHz, 120 MHz i fins i tot 240 MHz.
  • Disseny més petit: el dispositiu resultant és big-ish. Podria ser més compacte (sobretot si deixeu anar la idea de ball i el servo associat)
  • La detecció de batecs es podria millorar infinitament. El que resulta natural per als humans, sembla ser una tasca difícil per a un ordinador
  • Es podrien idear i implementar moltes més visualitzacions.
  • I, per descomptat, es podria escriure una aplicació per controlar el dispositiu sense fils amb una interfície d’usuari fantàstica.

Recomanat: