Sommario:
- Passaggio 1: materiali
- Passaggio 2: strumenti
- Passaggio 3: stampa 3D
- Passaggio 4: costruire il circuito
- Passaggio 5: cablaggio LCD
- Passaggio 6: cablaggio microfono/amplificatore
- Passaggio 7: cablaggio dell'interruttore momentaneo
- Passaggio 8: cablaggio del potenziometro
- Passaggio 9: cablaggio del jack per cuffie
- Passaggio 10: uscita microfono/amplificatore
- Passaggio 11: uscita microfono/amplificatore continua
- Passaggio 12: componenti nell'involucro
- Passaggio 13: Saldatura all'interno dell'involucro
- Passaggio 14: cavi estesi +5V, GND
- Passaggio 15: infilare i fili lunghi attraverso il foro della custodia
- Passaggio 16: termoretraibile
- Passaggio 17: sigillare l'involucro
- Passaggio 18: connettersi ad Arduino
- Passaggio 19: Arduino IDE/Librerie
- Passaggio 20: schizzo Arduino
- Passaggio 21: provalo
- Passaggio 22: lavoro futuro
Video: Stetoscopio spettrale di Hartley Transform veloce: 22 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
In questo tutorial imparerai come creare uno stetoscopio spettrale usando la trasformata veloce di Hartley. Questo può essere usato per visualizzare i suoni cardiaci e polmonari.
Passaggio 1: materiali
Schermo LCD da 1,8 ($ 7,50 su Amazon)
Arduino Uno o equivalente ($ 7,00 su Gearbest)
Amplificatore Electret ($ 6,95 su Adafruit)
Condensatore da 100 µF ($ 0,79)
Filo e ponticelli ($ 4,00)
Jack stereo da 3,5 mm ($ 1,50)
Potenziometro 10kOhm ($2.00)
Interruttore momentaneo ($ 1,50)
Passaggio 2: strumenti
Saldatore
Pistola per colla a caldo
Stampante 3D…o un amico con una stampante 3D (Possibile fare anche con il cartone)
Tronchese
tagliere
Passaggio 3: stampa 3D
Il primo è stampare in 3D i file.stl allegati a questo passaggio. Ho stampato entrambi i file utilizzando il seguente materiale/impostazioni:
Materiale: PLA
Altezza strato: 0,1 mm
Spessore parete/superiore/inferiore: 0,8 mm
Temperatura di stampa: 200⁰C
Temperatura del letto: 60⁰C
Supporto abilitato @ 10%
Passaggio 4: costruire il circuito
Usando i componenti nella sezione dei materiali, costruisci il circuito. Ho sempre messo insieme il circuito su una breadboard per assicurarmi che funzioni correttamente prima di toccare il saldatore.
Passaggio 5: cablaggio LCD
Utilizzando la figura allegata a questo passaggio, saldare i fili a sette degli otto pin sullo schermo LCD. Questi cavi dovranno essere lunghi circa 3 piedi, ad eccezione dei pin di terra e +5V (questi devono essere solo 2-3 pollici)
Passaggio 6: cablaggio microfono/amplificatore
Usando la figura allegata a questo passaggio, saldare tre fili ai pin +5V, Ground e Out sul microfono/amplificatore Adafruit. Questi devono solo essere lunghi circa 2-3 pollici.
Passaggio 7: cablaggio dell'interruttore momentaneo
Collegare un filo da 2-3 pollici a ciascuna delle due alette sull'interruttore momentaneo.
Passaggio 8: cablaggio del potenziometro
Usando la figura al punto 6, saldare tre fili di circa 2-3 pollici di lunghezza alle tre alette del potenziometro.
Passaggio 9: cablaggio del jack per cuffie
Saldare tre fili all'anello, alla punta e alle alette del manicotto del jack per cuffie. Ho usato un jack di un metronomo che era già cablato. Se non sai cosa sono l'anello, la punta e le alette del manicotto, cercalo su Google ci sono molte buone immagini sul cablaggio dei jack stereo.
Passaggio 10: uscita microfono/amplificatore
Dopo aver saldato i fili del microfono/amplificatore, del potenziometro e del jack per le cuffie, saldare un filo lungo circa tre piedi al filo "fuori" dell'amplificatore del microfono. Questo filo verrà successivamente collegato al pin A0 dell'arduino.
Passaggio 11: uscita microfono/amplificatore continua
Saldare un secondo filo al filo "out" del microfono/amplificatore. Questo filo deve essere saldato a un condensatore da 100 microFarad. Se stai usando un condensatore elettrolitico, assicurati che il lato positivo sia collegato a questo filo.
Passaggio 12: componenti nell'involucro
Dopo che tutti i fili sono stati saldati sui componenti, posizionare i componenti nei rispettivi punti seguendo le figure allegate a questo passaggio. Ho usato la colla a caldo per fissare il microfono e il jack per le cuffie in posizione.
Passaggio 13: Saldatura all'interno dell'involucro
Dopo che tutti i componenti sono stati fissati nella custodia, saldare insieme tutti i fili di terra. Dovrebbe essercene uno dall'LCD, uno dal microfono/amplificatore e uno dal manicotto del jack per le cuffie. Salda anche i fili +5V insieme e un filo dall'interruttore momentaneo. Anche in questo caso dovrebbe esserci uno dall'LCD, uno dal microfono/amplificatore e uno sull'interruttore momentaneo.
Passaggio 14: cavi estesi +5V, GND
Ora taglia due pezzi di filo di circa 3 piedi di lunghezza. Saldare uno al gruppo di fili di terra e saldare l'altro al filo aperto sull'interruttore momentaneo.
Passaggio 15: infilare i fili lunghi attraverso il foro della custodia
Ora dovresti avere un totale di otto fili di circa 3 piedi di lunghezza. Posizionali attraverso il foro non riempito nel recinto. Vedere la figura allegata a questo passaggio
Passaggio 16: termoretraibile
Dopo che tutte le saldature sono state completate, assicurati che i fili scoperti siano coperti. Ho usato un tubo termoretraibile, ma va bene anche il nastro isolante.
Passaggio 17: sigillare l'involucro
Prendi la metà della custodia contenente lo schermo LCD e infilala sull'altra metà della custodia contenente gli altri componenti. Mentre spingi insieme i due pezzi, incollali a caldo per fissare insieme la custodia.
Passaggio 18: connettersi ad Arduino
Gli otto, lunghi, fili rimanenti sono collegati direttamente ai rispettivi pin Arduino delineati negli schemi del circuito. Assicurati che ogni volta che saldi uno di quei fili lunghi 3 piedi nel circuito, metti un pezzo di nastro adesivo sull'altra estremità che indica a quale pin Arduino va!
Passaggio 19: Arduino IDE/Librerie
Dovrai scaricare l'IDE di Arduino. Per questo schizzo ho utilizzato tre diverse librerie: FHT.h, SPI.h e TFT.h. Se non sai come scaricare le librerie Arduino, consulta https://www.arduino.cc/en/Guide/Libraries. La libreria FHT.h è stata scaricata da openmusiclabs.com. Gli altri due sono stati scaricati su GitHub.
Passaggio 20: schizzo Arduino
Il codice utilizza la Fast Hartley Transform (FHT) per modificare il dominio del tempo in un dominio della frequenza. Questo può essere fatto anche usando la Fast Fourier Transform (FFT), ma la FHT è molto più veloce. FFT e FHT sono idee fondamentali nell'elaborazione del segnale e molto divertenti da imparare. Ti suggerisco di leggere tu stesso, se sei interessato, vedi. Il codice di esempio FHT che ho copiato dal sito Web di Open Music Labs inizialmente emetteva l'ampiezza di ciascun bin di frequenza come output logaritmico o decibel. L'ho modificato per emettere i bin di frequenza su una scala lineare. Questo perché la scala lineare è una migliore rappresentazione visiva di come gli umani sentono il suono. Il ciclo for() alla fine serve per disegnare l'ampiezza di ogni bin di frequenza sullo schermo LCD. Lo spettro FHT completo comprenderebbe tutti i bin di frequenza da i=0 a i<128. Noterai che il mio ciclo for() va da i=5 a i<40, questo perché le frequenze importanti per la diagnosi delle condizioni polmonari sono tipicamente comprese tra 150Hz e 3.5khz, ho deciso di salire a circa 4kHz. Questo può essere regolato se vuoi mostrare l'intero spettro di frequenze.
[codice]
//Codice Stetoscopio Digitale
// Libreria Fast Hartley Transform scaricata da openmusiclabs
#define LIN_OUT 1 //imposta FHT per produrre un output lineare
#define LOG_OUT 0 //disattiva l'uscita logaritmica FHT
#define FHT_N 256 //Numero campione FHT
#include //include la libreria FHT
#include //include libreria TFT
#include //include libreria SPI
#define cs 10 //imposta il pin lcd cs sul pin arduino 10
#define dc 9 //imposta il pin dc lcd sul pin arduino 9
#define rst 8 //imposta il pin di ripristino lcd sul pin arduino 8
TFT myScreen = TFT(cs, dc, rst);//dichiara il nome dello schermo TFT
void setup() {
//Serial.begin(9600);//imposta la frequenza di campionamento
myScreen.begin();//inizializza lo schermo TFT
myScreen.background(0, 0, 0);//imposta lo sfondo su nero
ADCSRA=0xe5;//imposta adc in modalità di esecuzione libera
ADMUX=0x40;//usa adc0
}
ciclo vuoto() {
while(1){ // riduce il jitter cli(); // L'interruzione UDRE rallenta in questo modo su arduino1.0
for (int i = 0; i < FHT_N; i++) { // salva 256 campioni
while(!(ADCSRA & 0x10)); // attendo che adc sia pronto
ADCSRA = 0xf5; // riavvia adc byte
m = ADCL; // recupera il byte di dati adc
j = ADCH; int k = (j << 8) | m; // forma in un int
k-= 0x0200; // forma in un int firmato
k<<= 6; // forma in un 16b firmato int
fht_input = k; // inserisco i dati reali nei contenitori
}
fht_window(); // finestra i dati per una migliore risposta in frequenza
fht_reorder(); // riordina i dati prima di fare il fht
fht_run(); // processa i dati in fht
fht_mag_lin(); // prende l'output di fht
sei();
for (int i=5;i<40;i++){
miaSchermata.stroke(255, 255, 255);
miaSchermata.fill(255, 255, 255);
int drawHeight=map(fht_lin_out, 10, 255, 10, myScreen.height());
int ypos=myScreen.height()-drawHeight-8; myScreen.rect((4*i)+8, ypos, 3, drawHeight);
}
mioSchermo.sfondo(0, 0, 0);
}
}
[/codice]
Passaggio 21: provalo
Ho usato un generatore di suoni online (https://www.szynalski.com/tone-generator/) per confermare che il codice funzionava correttamente. Dopo aver verificato che funziona, premi la campana dello stetoscopio fino al petto, fai un respiro profondo e guarda quali frequenze sono presenti!!
Passaggio 22: lavoro futuro
**Nota: sono un chimico, non un ingegnere o un informatico**. Ci saranno probabilmente errori e miglioramenti al design e al codice. Detto questo, penso che sia un buon inizio per qualcosa che può finire per essere molto utile ed economico. I seguenti punti sono miglioramenti futuri che vorrei apportare e spero che anche alcuni di voi provino a migliorarlo!
· Rendere mobile il dispositivo. Non ho una vasta esperienza con CPU o altri microcontrollori, ma avrebbe bisogno di memoria sufficiente per memorizzare l'intera libreria FHT, o forse Bluetooth.
· Introdurre nel codice alcuni calcoli di analisi statistica. Ad esempio, tipicamente un respiro sibilante ha una frequenza fondamentale uguale o maggiore di 400 Hz e dura almeno 250 ms. I ronchi si verificano a una frequenza fondamentale di circa 200 Hz o meno e durano per almeno 250 ms. Molti altri suoni polmonari sono definiti e indicativi di condizioni di salute (https://commongiant.github.io/iSonea-Physicians/assets/publications/7_ISN-charbonneau-Euro-resp-Jour-1995-1942-full.pdf). Penso che sia qualcosa che può essere verificato nel codice confrontando il segnale dei bin di frequenza dopo un certo numero di cicli attraverso l'FHT e quindi eseguendo la funzione millis() per vedere per quanto tempo era presente, quindi confrontandolo al rumore di fondo del calcolo FHT. Sono sicuro che queste cose possono essere fatte!
Spero che vi siate divertiti tutti con questo progetto e se avete domande commentate e risponderò il prima possibile! Aspetto di vedere i commenti.
Consigliato:
Lampada da notte spettrale: 3 passaggi
Spooky Night Lamp: (Scusa per il pessimo inglese) Prima di tutto avrai bisogno di immaginazione, la mia lampada è una fonte di ispirazione, ovviamente puoi fare tutto ciò che vuoi, ma personalmente ho creato un cybersoldato con un cane e un mostro dietro di lui (Testa di sirena). Puoi usare tutti i tipi di
POMPARE SPETTRALE: 8 passaggi
PUMKING SPETTRALE: Halloween sta arrivando presto e probabilmente hai bisogno di qualcosa per rendere la festa un po' più "spaventosa"… Questo tutorial consiste in come costruire una zucca spettrale economica e facile in grado di percepire la presenza di una persona e impiegare vari
Aggiungi luci e musica spettrale alla tua lanterna Jack-O-Lantern - Nessuna saldatura o programmazione (a meno che tu non lo voglia): 9 passaggi (con immagini)
Aggiungi luci e musica spettrale alla tua Jack-O-Lantern - Nessuna saldatura o programmazione (a meno che tu non voglia): crea la Jack-O-Lantern più spaventosa sulla tua strada aggiungendo luci incandescenti e musica spettrale! Questo è anche un ottimo modo per provare Arduino e l'elettronica programmabile perché l'intero progetto può essere completato senza scrivere codice o saldare, ma
Come rendere qualsiasi foto spettrale con BeFunky Photo Editor: 3 passaggi
Come rendere qualsiasi foto spettrale con BeFunky Photo Editor: puoi rendere qualsiasi foto (anche quella di un simpatico gattino) spettrale con l'editor di foto befunky, ed ecco come! BeFunky
Illuminazione della stanza a LED veloce, veloce, economica e di bell'aspetto (per chiunque): 5 passaggi (con immagini)
Illuminazione della stanza a LED veloce, veloce, economica, di bell'aspetto (per chiunque): benvenuto a tutti :-) TINY buget.Cosa ti serve:CavoLEDResistenze (510Ohm per 12V)StapelsSaldatoreTagliaglie e altre basi