Sommario:
- Passaggio 1: acquisire parti
- Passaggio 2: layout dei componenti del piano
- Passaggio 3: assemblaggio
- Passaggio 4: compilare e caricare il firmware
- Passaggio 5: comprendere il circuito
- Passaggio 6: utilizzo del dispositivo
Video: Analizzatore di spettro audio Breadboard MSP430: 6 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
Questo progetto è basato su microfono e richiede componenti esterni minimi. Vengono utilizzate 2 pile a bottone LR44 in modo da poter far funzionare l'intera struttura entro i confini di una mini breadboard a 170 punti di fissaggio. ADC10, TimerA interrupt sveglia LPM, TimerA PWM come output, uso del pulsante, aritmetica intera sono usati e dimostrati.
Caratteristiche
- Intero a 8 bit FFT 16 campioni a separazione di 500Hz
- mostra 8 ampiezze di 1K, 1.5K, 2K, 3K, 4K, 5K, 6K, 7.5K non lineari
- mappa logaritmica parziale per mostrare le ampiezze, limitata in quanto la risoluzione è stata ridotta per FFT a 8 bit
- Il microfono a uno stadio TLC272 amplifica a 100 volte il guadagno di 100 volte (puoi sperimentare con 2 stadi)
- finestra Hamming opzionale selezionabile dal menu
- menu regolare 4 livelli di luminosità
- menu regolare 8 livelli frequenza di campionamento/tempo di risposta
- 2 x LR44 a bottone alimentate "a bordo"
Passaggio 1: acquisire parti
Quello che segue è ciò che è necessario per questo progetto
- MSP430G2452 (il chip aggiuntivo di TI Launchpad G2 o qualsiasi MCU della serie MSP430G 4K a 20 pin)
- una mini breadboard o perf board da 170 punti di collegamento per la costruzione di preamplificatori
- TLC272 Doppio amplificatore operazionale
- mini microfono elettrete
- Resistori 47k (pull-up), 100k, 2 x 10k, 1k
- 1 x 0.1uF
- cavi per ponticelli
- intestazione pin maschio a doppia fila da utilizzare per il supporto della batteria
- 2 batterie a bottone LR44
Passaggio 2: layout dei componenti del piano
Il progetto prevede la realizzazione di una mini breadboard da 170 tie-point. La disposizione dei componenti è come mostrato di seguito. Di particolare nota è che la matrice LED 8x8 deve essere posizionata sopra l'MCU MSP430. Oltre ai componenti, ci sono anche i ponticelli di collegamento rappresentati dai caratteri "+------+".
G V+ Gnd (layout a 1 stadio) STIAMO UTILIZZANDO QUESTO LAYOUT +==================================== =================+ c0…………c7 | MIC……. +-----+ +--+…. | r0 o o o o o o o o | o||o +-----[100k]---------------+….. | r1 X o o o o o o o |. +--------------+--+. C7 C6 R1 C0 R3 C5 C3 R0 |. o o o o o o o |…… |.. | b6 a7 | | c0 e r1 condividono lo stesso pin e non mostrano | +. +--+--+--+ | +--+--+--+--+--+--+--+--+--+ | *possibile applicazione per avere c6 + c0 + r1 | | |V+ | | |G b6 b7 T R a7 a6 b5 b4 b3| | questo libererà b6 per l'orologio xtal 32khz | | | TLC272 | | | | | | | fuori - + G| | |+ a0 a1 a2 a3 a4 a5 b0 b1 b2| | | +. +--+--+--+ | +--+--+--+--+--+--+--+--+--+ | | o||o oo. +--+.. R4 R6 C1 C2 R7 C4 R5 R2 | |…. o-[10k]--o……… | |. o-[1k]o oo………._. | | o----[10k]-----------o……. o o | +================================================ ====+.1uF 100k 10k Pulsante ADC +-----------------+
stiamo usando solo uno stadio del TLC272
Passaggio 3: assemblaggio
Puoi iniziare a posizionare i componenti in base al layout della breadboard. Poiché è arte ASCII, potrebbe non essere molto chiaro. È possibile associare le foto in questo passaggio per identificare tutte le connessioni.
Bisogna fare attenzione a posizionare i chip IC. Di solito c'è un punto su uno degli angoli per indicare il pin 1 di un dispositivo.
Avevo usato cavi ethernet CAT5 e sono molto facili da lavorare su progetti breadboard. Se hai vecchi cavi CAT5, puoi tagliarlo e scoprirai che all'interno ci sono 6 fili intrecciati. Sono perfetti per le breadboard.
Passaggio 4: compilare e caricare il firmware
Il codice sorgente di solito risiede nei miei repository github.
Per questo particolare progetto, il singolo file sorgente C nfft.c è raggruppato nel mio repository di raccolte breadboard. Hai solo bisogno di nfft.c
Sto usando mps430-gcc per compilare il firmware ma dovrebbe andare bene con TI CCS. È possibile evitare tutti i problemi di installazione di IDE o compilatori accedendo al cloud TI CCS, che è un IDE basato sul web. Scaricherà anche il firmware sul dispositivo di destinazione.
Questo è un esempio di comando di compilazione con opzioni
msp430--gcc -Os -Wall -ffunction-sections -fdata-sections -fno-inline-small-functions -Wl, -Map=nfft.map, --cref -Wl, --relax -Wl, --gc- sezioni -I/energia-0101E0016/hardware/msp430/cores/msp430 -mmcu=msp430g2553 -o nfft.elf nfft.c
Sto usando un TI Launchpad G2 come programmatore per programmare l'MCU.
Passaggio 5: comprendere il circuito
Lo schema del circuito è presentato di seguito
MSP430G2452 o simile, necessita di 4K Flash TLC272 Dual Op-Amp, GBW @1.7Mhz, @x100 gain, larghezza di banda fino a 17Khz
* stiamo usando solo uno stadio del TLC272
._.
| MSP430G2452 | Vcc | | | +---------2|ADC0 |1--+ | | | |. | Vcc | | | | pull-up (47k) Vcc Vcc | --------------- | | | |_| | | +-1|----. Vcc|8-+ | | | |. |. |. | ^.---|7 | |16-+ | |10k | |10k | | | / / ^ | | | |_| |_| 100k|_| | /_+\ / / | | /|--- (vedi layout breadboard) |.1u | | | | | /_+\ | | / |------_ +--||---|-[1k]--+-2|---+ | | | | | 15 GPIO | | | | +----------3|-----+ +-|--|6 | P1.1-P1.7| | 8x8 | | | +-4|Gnd +--|5 | P2.0-P2.7| | LED | |+ | | --------------- | | | matrice| ((O)) |. | | / | |_| |MIC | |10k | +-20|Gnd \|-------- | |_| | | |_| _|_ _|_ _|_ _|_ /// /// /// ///
Guida LED
La matrice LED è di 8 x 8 elementi. Sono pilotati da 15 pin GPIO. Sono multiplexati con 8 righe e 8 schemi di colonne. Poiché ci sono solo 15 pin dopo aver utilizzato 1 pin per l'ingresso ADC, il multiplexing ha la riga 1 e la colonna 0 che condividono un singolo pin. Ciò significa che il particolare LED sulla riga 1 e sulla colonna 0 non può essere acceso. Questo è un compromesso in quanto non ci sono abbastanza pin GPIO per pilotare tutti gli elementi LED.
Acquisizione del suono
Il suono viene catturato tramite il microfono a condensatore integrato nell'Educational BoosterPack. Poiché i segnali del microfono sono piccoli, dobbiamo amplificarlo a un livello che l'MSP430 ADC10 può utilizzare con una risoluzione ragionevole. Avevo usato un amplificatore operazionale a due stadi per questo scopo.
L'amplificatore operazionale è costituito da due stadi, ciascuno con un guadagno di circa 100x. Ho dovuto adottare il TLC272 in quanto è anche una parte molto comune e funziona con 3V. La larghezza di banda del guadagno di circa 1,7 Mhz significa che per il nostro guadagno di 100x, possiamo solo garantire che funzionerà bene (cioè mantenere il guadagno che vogliamo) sotto i 17 Khz. (1,7 Mhz/100).
Inizialmente avevo intenzione di far misurare questo analizzatore di spettro fino a 16-20Khz, ma alla fine ho scoperto che circa 8Khz è abbastanza buono per mostrare la musica. Questo può essere cambiato sostituendo l'LM358 con qualcosa di audio-rated e cambiando la frequenza di campionamento. Cerca solo la larghezza di banda del guadagno degli amplificatori operazionali che scegli.
Campionamento e FFT
La funzione FFT utilizzata è il codice "fix_fft.c" che molti progetti avevano adottato, da qualche anno circola in internet. Avevo provato una versione a 16 bit e una versione a 8 bit. Alla fine ho optato per la versione a 8 bit poiché per il mio scopo, non ho visto grandi progressi sulla versione a 16 bit.
Non ho una buona comprensione del meccanismo FFT, tranne per il fatto che si tratta di una conversione da dominio del tempo a dominio della frequenza. Ciò significa che la velocità (tempo) dei campioni sonori, dopo l'alimentazione alla funzione di calcolo FFT, influenzerà la frequenza dell'ampiezza che ottengo come risultato. Quindi, regolando la frequenza per campionare il suono, posso determinare la banda di frequenza come risultato.
TimerA 0 CCR0 viene utilizzato per mantenere il tempo di campionamento. Per prima cosa determiniamo i conteggi di cui abbiamo bisogno per raggiungere la frequenza di banda (corrisponde alla nostra frequenza di clock DCO di 16 Mhz). cioè TA0CCR0 impostato su (8000/(BAND_FREQ_KHZ*2))-1; dove BAND_FREQ_KHZ è 8 per me. Può essere cambiato se hai un amplificatore operazionale migliore e / o vuoi che sia diverso.
Bande di frequenza e ridimensionamento dell'ampiezza
Il firmware elabora 16 bande con una scansione e il timing di acquisizione produce una separazione di 500 Hz tra questi banchi. La matrice LED è di 8 colonne e visualizzerà solo 8 bande/ampiezze. Invece di visualizzare una banda ogni due, viene utilizzato un elenco di bande di frequenza non lineare per mostrare le bande di frequenza più dinamiche (in termini di musica). L'elenco è di intervalli di 500 Hz nella fascia bassa, intervalli di 1 KHz nelle bande medie e bande di 1,5 KHz negli alti.
L'ampiezza delle singole bande viene ridotta a 8 livelli, che sono rappresentati dal numero di "punti" orizzontali sul display a matrice di LED. I livelli di ampiezza vengono ridotti tramite una mappa non lineare che traduce i risultati FFT in uno degli 8 punti. Viene utilizzata una sorta di scala logaritmica in quanto rappresenta al meglio la nostra percezione dei livelli sonori.
C'è una logica AGC incorporata e l'analizzatore di spettro cercherà di ridurre i livelli di ampiezza quando sono stati rilevati più livelli di picco nei cicli precedenti. Questo viene fatto con una tabella di confronto con righello scorrevole.
Passaggio 6: utilizzo del dispositivo
- La pressione breve del tasto in modalità di visualizzazione consente di scorrere la visualizzazione senza punto, un punto, 2 punti e 3 punti.
- Premendo a lungo si accede alla modalità di configurazione, la successiva pressione prolungata ruota attraverso il menu.
- Le voci di menu passano attraverso 'Opzione finestra di Hamming', 'Dimmer', 'Frequenza di campionamento/aggiornamento'.
- Nella modalità di impostazione 'Finestra Hamming', pressioni brevi alternano no hamming, hamming 1, hamming 2, hamming 3, la pressione lunga conferma l'impostazione.
- In modalità di impostazione 'Dimmer', pressioni brevi fanno scorrere i livelli di luminosità disponibili da 0 a 3, una pressione lunga conferma l'impostazione.
- Nella modalità di configurazione 'Campionamento/frequenza di aggiornamento', pressioni brevi consentono di scorrere le frequenze di aggiornamento disponibili da 0 a 7, 0 significa nessun ritardo, una pressione lunga conferma l'impostazione.
- Il multiplexing del segmento LED include ritardi temporali per compensare le differenze di luminosità per le singole file.
Consigliato:
Come Realizzare un Analizzatore di Spettro Audio LED: 7 Passaggi (Illustrato)
Come realizzare un analizzatore di spettro audio LED: L'analizzatore di spettro audio LED genera il bellissimo schema di illuminazione in base all'intensità della musica. Ci sono molti kit di spettro musicale LED fai-da-te disponibili sul mercato, ma qui faremo uno spettro audio LED Analizzatore che utilizza NeoPixe
Come fare l'analizzatore di spettro musicale con audio LED a 32 bande fai-da-te usando Arduino Nano a casa #arduinoproject: 8 passaggi
Come fare un analizzatore di spettro musicale audio a 32 bande LED fai-da-te usando Arduino Nano a casa #arduinoproject: oggi realizzeremo un analizzatore di spettro musicale audio a 32 bande LED a casa usando Arduino, può mostrare lo spettro di frequenza e riprodurre musica allo stesso tempo. va collegato davanti alla resistenza da 100k, altrimenti il rumore della spea
Analizzatore di spettro audio FFT fai-da-te: 3 passaggi
Analizzatore di spettro audio FFT fai-da-te: l'analizzatore di spettro FFT è un'apparecchiatura di test che utilizza l'analisi di Fourier e le tecniche di elaborazione del segnale digitale per fornire l'analisi dello spettro. Utilizzando l'analisi di Fourier è possibile convertire un valore, ad esempio nel dominio del tempo continuo
Analizzatore di spettro del segnale audio Arduino fai da te: 3 passaggi
Analizzatore di spettro del segnale audio Arduino fai da te: questo è un analizzatore audio molto semplice con modalità visive modificabili
Analizzatore di spettro audio (VU Meter): 6 passaggi
Analizzatore di spettro audio (VU Meter): cos'è la musica? Da un punto di vista tecnico, la musica è fondamentalmente un segnale con tensione e frequenza variabili. Audio Spectrum Analyzer è un dispositivo che mostra il livello di tensione di una particolare frequenza. È uno strumento utilizzato principalmente in luoghi come