Sommario:

Visualizzatore audio con strisce LED retrò: 4 passaggi (con immagini)
Visualizzatore audio con strisce LED retrò: 4 passaggi (con immagini)

Video: Visualizzatore audio con strisce LED retrò: 4 passaggi (con immagini)

Video: Visualizzatore audio con strisce LED retrò: 4 passaggi (con immagini)
Video: I LED PIU' FIGHI CHE ABBIA MAI PROVATO - SONO ECONOMICI 2024, Dicembre
Anonim
Image
Image
Elenco delle parti
Elenco delle parti

Come musicista e studente di ingegneria elettrica, amo qualsiasi progetto che intersechi questi due campi. Ho visto alcuni visualizzatori audio fai da te (qui, qui, qui e qui), ma ognuno di loro aveva mancato almeno uno dei due obiettivi che mi ero prefissato: una qualità costruttiva professionale e un display relativamente grande (un misero 8*8 La matrice LED non sarebbe sufficiente qui!). Con un tocco vintage e seduto a 40 "x 20", questo visualizzatore audio raggiunge entrambi questi obiettivi.

Mi scuso in anticipo per le foto verticali. Molti di loro sono stati presi per i social media.

Passaggio 1: elenco delle parti

Avevo già molte di queste parti in giro. I link sono puramente di riferimento. Si prega di non acquistare componenti inutilmente costosi.

Elettronica

  1. WS2811 60LEDS/m @ 5m, IP30 (non impermeabile), indirizzabile - Questi erano più economici di WS2812 all'epoca. Hai un certo margine di manovra qui, ma assicurati che le dimensioni siano corrette e che puoi effettivamente parlare con i LED. Si noti inoltre che i WS2811 sono a 12V mentre i WS2812 sono a 5V.
  2. 9 connettori JST a 3 pin + prese
  3. Alimentatore DC 12V 20A (240W) - Inizialmente avevo pianificato di realizzare 2 strisce LED e volevo un set di altoparlanti che fa esplodere la tua casa. Ogni striscia luminosa è 90 W nel peggiore dei casi (non ho misurato per confermare), il che mi ha lasciato ~ 60 W per altoparlanti + amplificatore. L'opzione 15A era comunque solo $4 in meno.
  4. Cavo di alimentazione (3 poli)
  5. Arduino Uno - Avevo un R3 in giro, quindi l'ho usato. Potresti essere in grado di trovare un'opzione più economica da uno dei falsi o da un altro fornitore.
  6. TRRS Breakout - Per ingresso aux
  7. Regolatore L7805 5V - Qualsiasi regolatore 5V che accetta un ingresso 12V funzionerà.
  8. Condensatori da 330 nF, 100 nF - per scheda tecnica L7805
  9. Condensatori 2 x 10kR, 2 x 1kR, 2 x 100 nF - per la polarizzazione dell'ingresso audio
  10. Ricevitore stereo: qualsiasi ricevitore stereo vintage funzionerà purché disponga di un ingresso aux (3,5 mm o RCA). Ho preso una Panasonic RA6600 su Craigslist per $ 15. Consiglio di controllare Goodwill, Craigslist e altri negozi dell'usato per simili.*
  11. Altoparlanti - Non altoparlanti BT. Solo un set di altoparlanti. Presta attenzione a quale impedenza è compatibile con il tuo ricevitore. Ho trovato un set di 3 altoparlanti da 20 W (= forte) da Goodwill per $ 6, e fornito con un "centrale" e due altoparlanti "anteriori".
  12. Adattatore audio Logitech BT: questo dispositivo può trasmettere l'audio agli altoparlanti stereo e al circuito
  13. Cavo da RCA maschio a RCA maschio
  14. Cavo ausiliario

Hardware

  1. 2x6 (8 piedi) - Non trattato a pressione. Dovrebbe essere ~ $ 6 o meno in HD o Lowe's
  2. Acrilico a trasmissione luminosa al 40% - Ho ordinato 18 "x 24" x 1/8 "ed era tecnicamente 17,75" x 23,5". Tienilo nell'involucro quando vai al taglio laser.
  3. Macchia di legno - Hai solo bisogno di una piccola lattina. Ho usato Minwax rosso mogano ed è venuta molto bella. Consiglio vivamente un tono scuro. Inizialmente ho provato provinciale e non sembrava così bello.
  4. Lacquer - Prima di tutto, guarda questo video di Steve Ramsey e decidi tu stesso cosa funziona meglio. Ho preso una bomboletta spray di semilucido (non era disponibile il gloss) e onestamente, non ha fatto molto. Ma ho anche fatto solo una mano per motivi di tempo.
  5. Viti per legno 40 x 1/2" - Avevo a disposizione una testa tonda, ma consiglio di utilizzare la parte superiore piatta se possibile. Non credo che ciò interferirebbe con la qualità costruttiva, ma sentiti libero di chiedere prima a chiunque abbia più familiarità con la lavorazione del legno.
  6. Legno di scarto, colla per gorilla, colla a caldo, saldatura, filo e strisce di comando (stile velcro, 20 medie o 10 grandi)

* Ho intenzione di costruire una soundbar per realizzare questo progetto interamente "da zero", che sostituirà 9-13 sopra. Spero di aggiornare questo istruibile con quello entro la fine dell'estate.

Passaggio 2: prototipazione

prototipazione
prototipazione

Questa sezione non è qualcosa che devi completare, ma voglio mostrare come appariva il progetto mentre procedeva.

Qui, ho registrato i LED nel motivo a serpente e stavo sperimentando la diffusione della luce tramite un sacchetto della spazzatura sovrapposto a se stesso (lo consiglio vivamente come alternativa all'acrilico se stai cercando di ridurre i costi. Anche se dovrai attaccalo in un modo diverso).

Una configurazione 10x10 ha funzionato per me, ma potresti preferire 8x12 o 7x14. Sentiti libero di sperimentare. Prima di avere il mio stereo, ho trovato un amplificatore e l'ho collegato alla mia breadboard, e prima ancora, ho riprodotto l'audio dal mio laptop al circuito per l'analisi audio e contemporaneamente ho premuto "play" sul mio telefono per ascoltarlo.

Sono un grande sostenitore della misura due volte, tagliata una volta. Quindi, qualunque cosa tu faccia, segui quella guida e sarai a posto.

Passaggio 3: circuiti + codice

Circuito + Codice
Circuito + Codice
Circuito + Codice
Circuito + Codice
Circuito + Codice
Circuito + Codice

Il codice è disponibile su GitHub.

Breadboard, saldare a una perfboard o progettare il proprio PCB. Qualunque cosa funzioni meglio per te qui, fallo. La mia demo qui è in esecuzione su una breadboard, ma quando costruirò la soundbar trasferirò tutto su un PCB. Per ottenere l'alimentazione dall'adattatore, tagliare l'estremità femmina e rimuovere l'isolamento nero. Spelare abbastanza cavi per avvitarlo ai terminali dell'adattatore. Fai sempre attenzione a lavorare con AC! A parte questo, solo alcune cose da notare qui.

  1. Percorsi a terra Un'altra cosa è assicurarsi che i percorsi a terra siano buoni. È necessaria la messa a terra dall'adattatore ad Arduino all'ingresso aux, che si collegherà anche alla massa del ricevitore Logitech BT e da lì alla massa dello stereo. Se uno di questi è una connessione interrotta o difettosa, otterrai un ingresso audio molto rumoroso e quindi un display molto rumoroso.
  2. Biasing dell'ingresso audio L'audio riprodotto tramite cavo aux, dal telefono o dal laptop o dovunque, verrà riprodotto da -2,2 a + 2,2 V. Arduino è in grado di leggere solo da 0 a +5V, quindi è necessario polarizzare l'ingresso audio. Questo può essere realizzato in modo efficiente con gli amplificatori operazionali, ma se il consumo di energia non è un problema (forse hai acquistato un alimentatore da 240 W?), Può anche essere realizzato con resistori e condensatori. I valori che ho scelto erano diversi perché non avevo condensatori da 10uF a portata di mano. Puoi giocare con il simulatore per vedere se ciò che scegli funzionerà.
  3. Trasformate di Fourier Qualsiasi progetto che utilizza le trasformate di Fourier avrà una sezione di sfondo che le discute. Se hai già esperienza, ottimo! In caso contrario, tutto ciò che devi capire è che scattano un'istantanea di un segnale e restituiscono informazioni su quali frequenze sono presenti in quel segnale in quel momento. Quindi, se hai preso la trasformata di Fourier di sin (440 (2 * pi * t)), ti direbbe che una frequenza di 440 Hz è presente nel tuo segnale. Se hai preso la trasformata di Fourier di 7*sin(440(2*pi*t)) + 5*sin(2000(2*pi*t)), ti direbbe che sono presenti sia un segnale a 440Hz che a 2000Hz, e i relativi gradi a cui sono presenti. Può farlo per qualsiasi segnale con un numero qualsiasi di funzioni dei componenti. Poiché tutto l'audio è solo una somma di sinusoidi, possiamo prendere la trasformata di Fourier di un gruppo di istantanee e vedere cosa sta realmente accadendo. Vedrai nel codice che applichiamo anche una finestra al nostro segnale prima di prendere il Fourier trasformare. Maggiori informazioni su questo possono essere trovate qui, ma una breve spiegazione è che il segnale che effettivamente finiamo per dare alla trasformazione fa schifo e Windows lo risolve per noi. Il tuo codice non si romperà se non li usi, ma il display non apparirà così pulito. Potrebbero essere disponibili algoritmi migliori (YAAPT, per esempio), ma seguendo i principi di KISS, ho scelto di usare quello che era già disponibile, ovvero diverse librerie Arduino ben scritte per la Fast Fourier Transform, o FFT.
  4. Arduino può davvero elaborare tutto in tempo reale? Affinché tutto appaia in tempo reale, Arduino deve acquisire 128 campioni, elaborare tale FFT, manipolare i valori per il display e aggiornare il display molto rapidamente. Se si desidera una precisione di 1/16 di nota a 150 bpm (vicino al tempo finale superiore della maggior parte delle canzoni pop), è necessario elaborare tutto in 100 msec. Inoltre, l'occhio umano può vedere a 30FPS, che corrisponde a lunghezze di fotogramma di 30 msec. Questo post sul blog non mi ha dato la massima fiducia, ma ho deciso di vedere di persona se Arduino avrebbe resistito. Dopo il mio benchmarking, ero molto orgoglioso del mio R3. La fase di calcolo è stata di gran lunga il fattore limitante, ma sono stato in grado di elaborare un FFT di 128 lunghezze di UINT16 in soli 70 msec. Questo rientrava nelle tolleranze audio, ma oltre il doppio del vincolo visivo. In ulteriori ricerche, ho trovato Arduino FHT, che sfrutta la simmetria FFT e calcola solo i valori reali. In altre parole, è circa 2 volte più veloce. E abbastanza sicuro, ha portato l'intera velocità del loop a ~ 30 msec. Un'altra nota qui sulla risoluzione del display. Una lunghezza N FFT campionata a Fs Hz restituisce N bin, dove il k-esimo bin corrisponde a k * Fs/N Hz. L'ADC Arduino, che legge l'ingresso audio e preleva campioni, normalmente funziona a ~ 9,6 kHz. Tuttavia, la FFT può restituire solo informazioni sulle frequenze fino a 1/2 * Fs. Gli esseri umani possono sentire fino a 20kHz, quindi vorremmo idealmente campionare a >40kHz. L'ADC può essere hackerato per funzionare un po' più velocemente, ma da nessuna parte lì vicino. Il miglior risultato che ho visto senza perdere stabilità è stato con un ADC a 14kHz. Inoltre, la più grande FFT che ho potuto elaborare per ottenere ancora un effetto in tempo reale era N=128. Ciò significa che ogni bin rappresenta ~109Hz, il che va bene alle frequenze più alte ma male alle basse. Un buon visualizzatore cerca di riservare un'ottava per ogni battuta, che corrisponde a separazioni a [16,35, 32,70, 65,41, 130,81, 261,63, 523,25, 1046,50, 2093,00, 4186,01 Hz. 109Hz significa che le prime 2,5 ottave sono tutte in un bin. Sono comunque riuscito a ottenere un buon effetto visivo, in parte prendendo la media di ciascun secchio, dove un secchio è un gruppo di contenitori tra due di questi limiti. Spero che questo non sia fonte di confusione e il codice stesso dovrebbe chiarire cosa sta realmente succedendo, ma sentiti libero di chiedere di seguito se non ha senso.

Passaggio 4: assemblaggio

Assemblea
Assemblea
Assemblea
Assemblea
Assemblea
Assemblea

Come ho affermato prima, volevo qualcosa con una qualità costruttiva professionale. Originariamente ho iniziato ad incollare insieme le doghe in legno, ma un amico (e abile ingegnere meccanico) ha suggerito un approccio diverso. Nota che un 2x6 è in realtà 1,5 "x 5". E per favore fai attenzione a lavorare con uno qualsiasi dei macchinari sottostanti.

  1. Prendi il tuo 2x6x8 e carteggia se necessario. Taglialo in sezioni da 2 "x 6" x 22". Questo ti dà due lamelle da "bruciare" se sbagli.
  2. Prendi ogni sezione da 22 "e passala attraverso una sega da tavolo per lungo tempo per creare lamelle da 1,5" x ~ 1,6" x 22". L'ultimo terzo potrebbe essere difficile da tagliare su una sega da tavolo, quindi puoi passare a una sega a nastro. Assicurati solo che tutto sia il più dritto possibile. Inoltre, 1,6" è una guida e può arrivare fino a 1,75". I miei pezzi erano così, ma finché sono tutti uguali tra loro poco importa. Il fattore limitante è l'acrilico a 18".
  3. Alla fine dei pezzi, segna una forma a U di 1/8 di pollice su entrambi i lati e profonda poco più di 3/4 di pollice. NOTA: se usi un acrilico diverso, la profondità cambierà. A < 3/4", il mio acrilico non diffonde affatto la luce. A poco più, diffonde completamente. Vuoi evitare qualsiasi "perlatura". Ho trovato questo post di Hackaday un buon riferimento, ma ottenere la diffusione perfetta è molto difficile!
  4. Con un router da tavolo, ritaglia quella U centrale fino in fondo alla lamella. Il 22" è più lungo del necessario, quindi non preoccuparti di scheggiare le estremità se lo fai. I router possono essere complicati, ma prendine un po 'più largo della metà della larghezza della U e fai attenzione a tagliare più di 1/ 8" di materiale alla volta. Ripeti: non tentare di fare tutto in 2 passaggi. Danneggerai il legno e probabilmente ti farai male. Lavora con la rotazione del router sui tagli 1-4 e lavora contro di essa su 5-8. Ciò garantisce di avere il miglior controllo sulla coppia del router.
  5. Taglia la striscia LED in sezioni da 30 LED (solo ogni set di 3 LED è indirizzabile). Probabilmente dovrai dissaldare alcune delle connessioni. Stendi quelle strisce lungo i binari. Un lato dovrebbe essere a filo e l'altro dovrebbe avere un po' di spazio per il ricevitore JST, che sarà a filo. Purtroppo non ho avuto una foto di questo, ma vedere lo schema allegato. Segna qui la lunghezza, ma non tagliare ancora nulla.
  6. Misura la larghezza di ogni lamella. Con questo e la lunghezza del passaggio 7, taglia al laser l'acrilico nei 10 rettangoli necessari. È meglio essere leggermente lunghi che leggermente corti. Se si brucia, puliscilo con isopropile.
  7. Conferma che ogni lamella in acrilico si trovi alla stessa lunghezza che hai segnato nel passaggio 5, quindi taglia la lamella a questa lunghezza.
  8. Ora hai bisogno di due pezzi di ponte per attaccare l'acrilico. Ciò consente una facile manutenzione delle strisce luminose in caso di problemi. Questi pezzi dovrebbero essere all'incirca [la tua larghezza] - 2 * 1/8" di lunghezza con facce quadrate da 1/2", ma dovrebbero adattarsi un po 'stretti. Con questi pezzi saldamente in posizione e a filo con la faccia anteriore delle doghe, praticare dei fori attraverso il centro di ciascun ponte dall'esterno delle doghe. Fai del tuo meglio per rendere uniforme ogni esercizio. Non tenere i ponti avvitati, ma assicurati che possano esserlo. Attenzione a non spingere la vite troppo in basso e spaccare il legno.
  9. A questo punto, macchiate le doghe e applicate l'eventuale finitura.
  10. Adesso avvitare i ponti. Assicurati che siano a filo! In caso contrario, sarà necessario aggiungere una sorta di spessore. Applicare la colla gorilla (preferibile) o la colla a caldo (che può raddoppiare come spessore) ai ponti e attaccare l'acrilico. Non applicare alcun adesivo lungo la stecca stessa.
  11. Saldare le prese JST su un lato di tutte le strisce LED tranne una. Mettili tutti alla stessa estremità come indicato dalle frecce contrassegnate. Saldare i fili delle spine JST sulle altre estremità. Potrebbe essere necessario spellare più cavi su ciascun connettore. Assicurati che i collegamenti siano corretti una volta collegati! L'adesivo sul retro dei LED è terribile, quindi non fidarti. Appoggia i LED lungo il binario centrale e incollali con la colla per gorilla, prestando attenzione alla direzione indicata sulle strisce. Ricorda che stai serpeggiando l'intera faccenda.
  12. Sulla prima lamella, saldare fili abbastanza lunghi da ottenere alimentazione + massa dall'adattatore e il segnale dall'Arduino.
  13. Riavvitare le lamelle e i ponti. Attacca le strisce di comando sul retro (stile velcro, 2 medie in alto e in basso o 1 grande al centro). Effettua tutti i collegamenti necessari e appendi al muro a ~ 3 "di distanza. Goditi i frutti del tuo lavoro.

Consigliato: