Sommario:
- Passaggio 1: componenti utilizzati
- Passaggio 2: follower busta
- Passaggio 3: PWM per il misuratore analogico
- Passaggio 4: calibrazione del microfono
- Passaggio 5: app per Android
- Passaggio 6: riepilogo
Video: VU Meter analogico abilitato Bluetooth: 6 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
Questo era il mio progetto per una delle mie classi universitarie chiamata SMP. Poiché utilizzavamo la scheda di sviluppo STM32F103RB, ho basato il mio progetto su questa, partendo da un semplice VU meter. Ho quindi aggiunto alcune funzionalità extra come il supporto Bluetooth per trasmettere i valori dall'ADC a un'app Android per creare un semplice grafico dB.
Passaggio 1: componenti utilizzati
- Scheda di sviluppo STM32F103RB
- Modulo bluetooth HC-05 zs040
- Pannello VU meter analogico (link)
- Microfono elettrete
- LM324N amplificatore operazionale quadruplo
- 2 transistor TIP120
- 3 diodi 1N4148
- Vari condensatori e resistori
Sebbene sia possibile pilotare questo circuito dalla guida 5V della scheda, ho anche utilizzato un alimentatore esterno da 5V.
Passaggio 2: follower busta
Il pezzo principale di questo design è l'inseguitore dell'inviluppo che prende il segnale dal microfono a elettrete ed emette una tensione proporzionale all'ampiezza del segnale del microfono.
Il segnale grezzo dal microfono viene prima passato attraverso un amplificatore con un guadagno di 150.
Il segnale viene quindi passato attraverso l'effettivo inseguitore di inviluppo che dovrebbe emettere solo le parti del segnale positivo.
L'ultima parte sottrae la tensione di offset di 1,65 V dall'uscita dell'inseguitore dell'inviluppo per fornire un segnale di 0 V per nessun suono, 1,65 V per suono medio e 3,3 V per suono forte che dovrebbe essere compatibile con il built-in ADC del consiglio.
Questo seguace della busta è implementato da questa fantastica risposta StackExchange.
Passaggio 3: PWM per il misuratore analogico
Per far funzionare l'ago del misuratore, ho configurato il timer TIM4 della scheda del microcontrollore con una frequenza di circa 500 Hz.
Provando successivamente diversi duty cycle mi sono accontentato di alcuni valori che erano sufficienti per far passare la lancetta da 0 a 100.
Descriverò in dettaglio il processo di visualizzazione di un valore esatto nel passaggio successivo applicando alcuni calcoli.
Passaggio 4: calibrazione del microfono
Dopo aver eseguito il follower della busta, ho quindi scritto un semplice codice per utilizzare l'ADC e verificato che il valore letto cambia effettivamente in base al volume all'interno della stanza.
Per "tradurre" questo valore in una lettura dB effettiva, ho utilizzato un generatore di suoni online con una frequenza di 550 Hz e il mio Android per fornire una lettura di riferimento.
Ho tracciato quei valori e ho usato lo strumento Curve Fit di MatLAB per ottenere una funzione che mappa le letture ADC su approssimazioni effettive dei livelli dB (o almeno abbastanza vicino alle letture del mio telefono).
Possiamo vedere che questo segue la scala logaritmica del microfono.
Ho anche fatto la stessa cosa per mappare la posizione dell'ago sui valori PWM. Ho raccolto quei valori incrementando il valore PWM di 10 successivamente fino a quando la necessità non ha raggiunto la lettura sulla sua scala.
Combinando queste 2 funzioni ho ottenuto un modo semplice per visualizzare la lettura da ADC a un valore effettivo sull'indicatore del manometro.
Passaggio 5: app per Android
L'app utilizza questa fantastica libreria per comunicare tramite seriale Bluetooth per scambiare informazioni sui byte.
L'avvertenza principale di questo sistema è che la lunghezza massima della parola inviata tramite Bluetooth è di 8 bit e il valore ADC è rappresentato come 12 bit. Per superare questo problema, ho diviso un valore ADC in 2 valori separati a 6 bit (MSB e LSB) con i restanti 2 bit utilizzati per identificare il tipo di messaggio (MSB, LSB, CHK).
Pertanto, per un singolo valore ADC che vogliamo trasmettere, dividiamo il valore effettivo in 2 messaggi. Per verificare l'integrità di quei messaggi, ho inviato un terzo messaggio con lo XOR dei primi 2 messaggi.
Dopo aver verificato l'integrità del valore, possiamo applicare la stessa funzione per ottenere il livello dB e tracciarlo sul nostro grafico in tempo reale.
Passaggio 6: riepilogo
Mentre la parte del microcontrollore di questo progetto funziona abbastanza bene visualizzando il volume all'interno di una stanza, ho riscontrato alcuni problemi durante l'invio di dati tramite Bluetooth a causa della perdita di pacchetti.
Il codice sorgente per questo progetto può essere trovato qui:
- App complementare per Android - repository
- Codice microcontrollore - repository
Sentiti libero di contribuire se lo trovi utile in qualche modo.
Consigliato:
Nerf Blaster abilitato Bluetooth: 7 passaggi
Nerf Blaster abilitato Bluetooth: mi sono sentito ispirato dal progetto di Colin Furze e ho deciso di creare la mia interpretazione per la Remix Challenge. Il design che ho usato è simile, ma più amatoriale, e presenta un modulo Bluetooth che consente il controllo della torretta dal mio telefono. Questo è
Circuiti GPIO Raspberry Pi: utilizzo di un sensore analogico LDR senza un ADC (convertitore analogico-digitale): 4 passaggi
Circuiti GPIO Raspberry Pi: utilizzo di un sensore analogico LDR senza un ADC (convertitore analogico-digitale): nei nostri precedenti Instructables, ti abbiamo mostrato come collegare i pin GPIO del tuo Raspberry Pi a LED e interruttori e come i pin GPIO possono essere alti o Basso. Ma cosa succede se vuoi usare il tuo Raspberry Pi con un sensore analogico? Se vogliamo usare un
Planetario/Orrery abilitato Bluetooth: 13 passaggi (con immagini)
Planetario/Orrery abilitato per Bluetooth: questo istruttore è stato creato per soddisfare i requisiti del progetto Makecourse presso l'Università della Florida del sud (www.makecourse.com). Questo è il mio planetario/orrery a 3 pianeti. È iniziato come un progetto di un semestre per il Makecour
Controller joystick abilitato Bluetooth: 9 passaggi (con immagini)
Controller joystick abilitato Bluetooth: stupisci i tuoi amici e stupisci la tua famiglia, quando controllano "HypnoEllipse", un'app web A/V interattiva. Costruisci un joystick abilitato Bluetooth, collegalo al browser web e, a turno, esegui l'autoipnosi. Questo è un
Utilizzo del telefono Sony Ericsson abilitato Bluetooth per controllare il computer: 6 passaggi
Utilizzo del telefono Sony Ericsson abilitato per Bluetooth per controllare il computer: leggo da un po' di tempo le istruzioni e ho sempre voluto fare alcune delle cose di cui le persone hanno scritto, ma mi sono ritrovato a guardare cose che sono difficili da fare perché sono veramente difficili da fare, o il th