Sommario:
- Forniture
- Passaggio 1: l'idea
- Passaggio 2: elaborazione schematica e sonora
- Passaggio 3: ruota LED
- Passaggio 4: visualizzazioni
- Passaggio 5: controlli del pulsante a sfioramento
- Passaggio 6: rilevamento del ritmo e "danza" dei servo
- Passaggio 7: forme 3D
- Passaggio 8: alimentazione
- Passaggio 9: controllo Bluetooth
- Passaggio 10: app di controllo basata su Blynk
- Passaggio 11: schizzi e biblioteche
- Passaggio 12: miglioramenti futuri
Video: Luci per feste portatili: 12 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
Progetti Tinkercad »
Puoi portare luce a una festa e renderla più divertente?
Questa era la domanda. E la risposta è SI (ovviamente).
Questo tutorial riguarda la creazione di un dispositivo portatile che ascolti la musica e crei la visualizzazione della musica da anelli concentrici di LED Neopixel.
È stato fatto un tentativo per far "danzare" il dispositivo, cioè spostarlo al ritmo della musica, ma il rilevamento del ritmo si è rivelato un compito più complicato di quanto sembri (nessun gioco di parole inteso), quindi "danzare" è un po' imbarazzante, ma è ancora lì.
Il dispositivo è abilitato Bluetooth e risponderà ai comandi di testo. Non ho avuto il tempo di scrivere un'app per controllare Party Lights (sia Android che iOS). Se sei all'altezza del compito, per favore fammi sapere!!!
Se ti piace questo tutorial, per favore votalo nel concorso Make It Glow!
Forniture
Per costruire Party Lights avrai bisogno di:
- STM32F103RCBT6 Leaflabs Leaf Maple Mini USB ARM Cortex-M3 Modulo per Arduino (link qui) - il cervello del dispositivo. Questi dispositivi relativamente economici sono così potenti che non è chiaro il motivo per cui dovresti tornare a un Arduino.
- MSGEQ7 Equalizzatore grafico a banda IC DIP-8 MSGEQ7 (link qui)
- Modulo Bluetooth HC-05 o HC-06 (link qui)
- Microfono Adafruit MAX9814 (link qui)
- Un servomotore standard (link qui) se vuoi che il tuo dispositivo "balli"
- Scheda di sviluppo driver LED RGB CJMCU 61 bit WS2812 5050 (link qui)
- Modulo tasti touch TTP223 Scheda interruttori autobloccante/non bloccabile impostabile capacitiva (link qui)
- Ultra compatto 5000-mAh Dual USB Output Super Slim Power Bank (link qui)
- Resistenze, condensatori, fili, colla, viti, schede di prototipazione, ecc. ecc.
Passaggio 1: l'idea
L'idea è di avere un dispositivo portatile che possa essere posizionato vicino a una sorgente musicale e che crei visualizzazioni musicali colorate. Dovresti essere in grado di controllare il comportamento del dispositivo tramite pulsanti (touch) e Bluetooth.
Attualmente, Party Lights ha 7 visualizzazioni implementate (fammi sapere se hai più idee!):
- Cerchi colorati concentrici
- Croce di Malta
- Luci pulsanti
- Camino (il mio preferito)
- Luci di marcia
- alberi leggeri
- Segmenti laterali
Per impostazione predefinita, il dispositivo scorrerà le visualizzazioni ogni minuto. Tuttavia, un utente può scegliere di attenersi a una visualizzazione e/o scorrerle manualmente.
Le visualizzazioni che ruotano la loro tavolozza di colori potrebbero anche essere "congelate" se a un utente piace una particolare combinazione di colori.
E come un paio di ulteriori controlli, l'utente può modificare la sensibilità del microfono e abilitare/disabilitare la modalità "danza" del servomotore.
Passaggio 2: elaborazione schematica e sonora
Un file schematico fritzing è incluso nel pacchetto su Github nella sottocartella "file".
Fondamentalmente, un chip MSEQ7 esegue l'elaborazione audio, suddividendo un segnale audio in 7 bande: 63Hz, 160Hz, 400Hz, 1kHz, 2,5kHz, 6,25kHz e 16kHz
Il microcontrollore utilizza queste 7 bande per creare varie visualizzazioni, mappando sostanzialmente le rispettive ampiezze di banda nell'intensità della luce LED e nelle combinazioni di colori.
La sorgente sonora è un microfono con 3 livelli di controllo del guadagno. È possibile scorrere le impostazioni del guadagno utilizzando uno dei pulsanti a seconda di quanto è lontana/forte la sorgente sonora.
Il microcontrollore tenta anche di eseguire il rilevamento dei "battiti" sulla banda dei "bassi" a 63Hz. Sto ancora lavorando su un modo affidabile per rilevare e mantenere l'allineamento dei battiti.
L'uso dei pulsanti "touch" è stato un esperimento. Penso che funzionino abbastanza bene, tuttavia, la mancanza di feedback della stampa crea un po' di confusione.
Passaggio 3: ruota LED
Il cuore della visualizzazione è una ruota a 61 LED.
Si prega di notare che la parte viene fornita come singoli anelli che dovrai mettere insieme. Ho usato piuttosto fili di rame per le linee elettriche (che tengono insieme bene anche gli anelli) e fili di segnale sottili.
I LED sono numerati da 0 a 60 partendo dal LED esterno inferiore e procedendo in senso orario verso l'interno. Il LED centrale è il numero 60.
Ogni visualizzazione si basa su array di dati bidimensionali, che mappano ciascun LED in una posizione specifica per il segmento di visualizzazione di destinazione.
Ad esempio, per i cerchi concentrici, ci sono 5 segmenti:
- Cerchio esterno, LED 0 - 23, 24 LED lunghi
- Secondo cerchio esterno, LED 24 - 39, 16 LED lunghi
- Terzo cerchio (centro), LED 40 - 51, 12 LED lunghi
- Secondo cerchio interno, LED 52 - 59, 8 LED lunghi
- LED interno, LED 60, 1 LED lungo
La visualizzazione mappa 5 dei 7 canali audio e accende i LED progressivamente in base alla loro posizione nella banda circolare proporzionata al livello del suono nella banda.
Altre visualizzazioni utilizzano strutture e formati di dati diversi, ma l'idea è sempre quella di avere visualizzazioni guidate dagli array di dati, non tanto dal codice. In questo modo le visualizzazioni possono essere adattate a forme diverse (più o meno LED, più bande EQ) senza modificare il codice, solo i valori negli array di dati.
Ad esempio, ecco come appare la struttura dei dati per la visualizzazione 1 nello schizzo:
// Visualizzazione 1 e 3 - full 5 circlesconst byte 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 } };
Passaggio 4: visualizzazioni
Finora ci sono 7 visualizzazioni e un'animazione di avvio:
Animazione di avvio
Quando il dispositivo è acceso, viene visualizzata un'imitazione di un fuoco d'artificio. Questa doveva essere una sequenza di test LED e Servo, ma in seguito si è evoluta in una versione animata di tale test
Cerchi colorati concentrici
Le luci girano intorno al display in cerchi concentrici proporzionati all'ampiezza della rispettiva banda eq. Passaggio casuale da senso orario a senso antiorario e rotazione lenta dei colori sulla ruota dei 256 colori
Croce di Malta
Una banda è il LED centrale. Un'altra banda sono le linee verticali e orizzontali dei LED e i restanti segmenti che rappresentano ciascuna una banda EQ. Tutti i segmenti ruotano i colori con un offset di 128 per mantenere il contrasto.
Luci pulsanti
Ogni cerchio accende tutti i LED all'unisono per una banda eq dedicata, mentre ruota lentamente i colori con un leggero offset. Le bande di equalizzazione vengono spostate progressivamente da un cerchio all'altro creando una progressione verso l'esterno.
Camino
Le bande sono semicerchi illuminati dal basso verso l'alto che iniziano con un rosso brillante e aggiungono giallo durante la salita simulando un fuoco ardente in un camino. Occasionalmente, una "scintilla" bianca brillante si alza casualmente. Non c'è rotazione del colore
Luci di marcia
Ogni cerchio concentrico è una banda EQ separata. I LED principali sono quelli sulla linea verticale sotto il LED centrale. Una volta che il LED è acceso proporzionalmente all'ampiezza della banda, inizia a "correre" attorno al rispettivo cerchio diminuendo lentamente di intensità. Sono supportate le rotazioni sia in senso orario che antiorario, con commutazione casuale.
alberi leggeri
I segmenti sono illuminati in linea retta dal LED in basso verso l'alto e poi lateralmente in semicerchi concentrici imitando le palme. Rotazione del colore.
Segmenti laterali
Questa è una versione della precedente Croce di Malta con solo 2 segmenti diagonali utilizzati. Dovrebbe assomigliare all'icona delle onde sonore.
Passaggio 5: controlli del pulsante a sfioramento
Sono presenti 4 pulsanti sensibili al tocco:
- Scorri le visualizzazioni e mantieni attiva quella corrente finché non ne viene scelta un'altra (per impostazione predefinita, le visualizzazioni vengono eseguite ogni 30 secondi)
- "Blocca" / "sblocca" lo schema di colori corrente - se ti piace una particolare combinazione di colori puoi congelarla - la rotazione dei colori è disabilitata e la visualizzazione continuerà solo con questa tavolozza di colori
- Regola la sensibilità del microfono
- Attiva / disattiva la "modalità danza"
In modalità danza, il dispositivo cercherà di rilevare il "battito" della musica attualmente in riproduzione e girerà la testa in base al ritmo. Finora il "ballo" è piuttosto imbarazzante che bello, a dire il vero.
Passaggio 6: rilevamento del ritmo e "danza" dei servo
Il dispositivo cerca costantemente di rilevare il "battito" della melodia corrente come distanza tra picchi consecutivi della banda 63Hz. Una volta rilevato (e solo se la modalità dance è ON), il dispositivo attiverà il suo servomotore per girare casualmente a sinistra oa destra in base al ritmo.
Qualsiasi idea brillante su come renderlo più affidabile è benvenuta!
Lo sketch 'Music_Test_LED' emette 7 bande EQ in un modo adatto per la stampa utilizzando Arduino IDE.
Passaggio 7: forme 3D
L'intero gruppo Party Lights è stato progettato da zero utilizzando Autodesk TinkerCAD.
Il design originale si trova qui. La cartella "files/3D" su github.com contiene i modelli STL.
Questo design illustra l'aspetto del dispositivo assemblato.
Tutti i componenti sono stati stampati e poi assemblati/incollati insieme.
La "cupola" ospita il microcontrollore, la scheda Bluetooth e un microfono. Il microcontrollore è posizionato su una scheda da 40 mm x 60 mm ed è supportato da guide designate.
Il servo si trova nella "gamba" della cupola, mentre i pulsanti si trovano nella base.
Il vano batteria è stampato specificamente per il tipo di batteria menzionato nella sezione Materiali di consumo. Se si sceglie di utilizzare una batteria diversa, il vano dovrà essere riprogettato di conseguenza.
Passaggio 8: alimentazione
Un ultra-compatto 5000 mAh Dual USB Output Super Slim Power Bank sembra fornire energia sufficiente per ore di funzionamento.
Il vano batteria è progettato in modo tale da staccarsi dal resto del dispositivo e potrebbe essere sostituito con quello predisposto per un diverso tipo di batteria.
La presa USB è stata posizionata e incollata a caldo in posizione per collegare la batteria mentre scorre.
Passaggio 9: controllo Bluetooth
Viene aggiunto un modulo HC-05 per fornire un modo per controllare il dispositivo in modalità wireless.
Quando è acceso, il dispositivo crea una connessione Bluetooth chiamata "LEDDANCE", a cui è possibile associare il telefono.
Idealmente, dovrebbe esserci un'app che permetta di controllare PartyLights (scegliendo una tavolozza di colori, simulando la pressione dei pulsanti, ecc.). Tuttavia, non ne ho ancora scritto uno.
Se sei interessato ad aiutare a scrivere un'app Android o iOS per Party Lights, faccelo sapere!
Per controllare il dispositivo, è attualmente possibile utilizzare l'app del terminale Bluetooth e inviare i seguenti comandi:
- LEDDBUTT - dove è '1', '2', '3' o '4' simula la pressione di un rispettivo pulsante. Es.: LEDDBUT1
- LEDDCOLRc - dove c è un numero da 0 a 255 - posizione del colore desiderato su una ruota dei colori. Il dispositivo passerà al colore LED specificato.
-
LEDDSTAT - restituisce un numero di 3 caratteri composto solo da "0" e "1":
- prima posizione: '0' - i colori non ruotano, '1' - i colori ruotano
- seconda posizione: '0' - la modalità danza è disattivata, '1' - la modalità danza è attiva
- terza posizione: '0' - il microfono è a guadagno normale, '1' - il microfono è ad alto guadagno
Passaggio 10: app di controllo basata su Blynk
Blynk (blynk.io) è una piattaforma IoT indipendente dall'hardware. Ho usato Blynk nel mio sistema di irrigazione automatico dell'impianto IoT e sono rimasto colpito dalla facilità e dalla robustezza della piattaforma.
Blynk supporta la connessione a dispositivi edge tramite Bluetooth, esattamente ciò di cui abbiamo bisogno per PartyLights.
Se non lo hai già fatto, scarica l'app Blynk, registrati e ricrea l'app Blynk PartyLights utilizzando gli screenshot allegati a questo passaggio. Assicurati che le assegnazioni dei pin virtuali siano le stesse degli screenshot, altrimenti i pulsanti sull'app non funzioneranno come previsto.
Il file "blynk_settings.h" contiene il mio UID Blynk personale. Quando crei il tuo progetto, ne verrà assegnato uno nuovo da utilizzare.
Carica lo schizzo PartyLightsBlynk.ino, accendi l'app. Accoppia con il dispositivo Bluetooth e goditi la festa.
Passaggio 11: schizzi e biblioteche
Lo schizzo principale e i file di supporto si trovano su Github.com qui.
Le seguenti librerie sono state utilizzate nello schizzo Party Lights:
- TaskScheduler - multitasking cooperativo - qui (sviluppato da me)
- AverageFilter - filtro medio basato su modelli - qui (sviluppato da me)
- Servo - Servo control - è una libreria Arduino standard
- WS2812B -NEOPixel control - fa parte del pacchetto STM32
Questa pagina Wiki spiega come utilizzare le schede STM32 con Arduino IDE.
Passaggio 12: miglioramenti futuri
Alcune cose potrebbero essere migliorate in questo design, che potresti prendere in considerazione se ti imbarchi in questo progetto:
- Usa ESP32 invece della scheda Maple Mini. ESP32 ha 2 CPU, stack Bluetooth e WiFi e può funzionare a 60 MHz, 120 MHz e persino 240 MHz.
- Design più piccolo: il dispositivo risultante è di grandi dimensioni. Potrebbe essere più compatto (soprattutto se lasci cadere l'idea del ballo e il servo associato)
- Il rilevamento del battito potrebbe essere infinitamente migliorato. Ciò che viene naturale per noi umani, sembra essere un compito difficile per un computer
- Potrebbero essere ideate e implementate molte più visualizzazioni.
- E, naturalmente, è possibile scrivere un'app per controllare il dispositivo in modalità wireless con un'interfaccia utente interessante.
Consigliato:
Altoparlante Bluetooth per feste con LED RGB: 7 passaggi
Altoparlante Bluetooth per feste con LED RGB: Ciao, questo è il mio primo Instructables, ti mostrerò come ho realizzato questo altoparlante per feste con LED RGB. Questo progetto è ispirato a JBL Pulse e questo istruibile, tuttavia è un progetto molto economico e facile da realizzare con la maggior parte delle cose che possono essere f
FuseLight: trasforma il vecchio/Fused Tubelight in una luce da studio/da feste: 3 passaggi (con immagini)
FuseLight: trasforma il vecchio/Fused Tubelight in Studio/Party Light: qui ho trasformato un Fused Tubelight in una luce da Studio/Part utilizzando alcuni strumenti di base, luci RGB e stampa 3D. Grazie alle strisce LED RGB utilizzate possiamo avere più colori e sfumature
Confezione regalo per le feste!: 5 passaggi (con immagini)
Confezione regalo per le vacanze!: Se conosci qualcuno che ama l'elettronica, questa è una fantastica confezione regalo per loro! In questa guida creerai una scatola fatta in casa che riproduce musica e si illumina quando viene agitata. Ecco cosa ti servirà:Adafruit GEMMA M0 - Elettrone indossabile in miniatura
Luci natalizie fai-da-te con musica - Luci della casa coreografate: 15 passaggi (con immagini)
Luci di Natale fai da te messe in musica - Luci di casa coreografate: Luci di Natale fai da te messe in musica - Luci di casa coreografate Questo NON è un fai-da-te per principianti. Avrai bisogno di una solida conoscenza di elettronica, circuiti, programmazione BASIC e intelligenza generale sulla sicurezza elettrica. Questo fai-da-te è per una persona esperta, quindi
Come realizzare un sistema audio per carrelli della spesa per feste di strada: 10 passaggi
Come creare un sistema audio per carrello della spesa per feste di strada: questo Instructable ti mostrerà i passaggi per creare un sistema audio mobile autonomo in un carrello della spesa. Questa configurazione può essere utilizzata per tutti i tipi di incontri pubblici, tra cui proteste, feste di ballo di strada, battaglie rap di Parkling Lot e persino fuori