Taula de continguts:

Estetoscopi espectral de transformació ràpida de Hartley: 22 passos
Estetoscopi espectral de transformació ràpida de Hartley: 22 passos

Vídeo: Estetoscopi espectral de transformació ràpida de Hartley: 22 passos

Vídeo: Estetoscopi espectral de transformació ràpida de Hartley: 22 passos
Vídeo: Trascranial Doppler Stethoscope for brain 2024, Juliol
Anonim
Estetoscopi espectral de transformació ràpida de Hartley
Estetoscopi espectral de transformació ràpida de Hartley

En aquest instructiu aprendreu a fer un estetoscopi espectral mitjançant la transformada ràpida de Hartley. Es pot utilitzar per visualitzar sons del cor i dels pulmons.

Pas 1: materials

Pantalla LCD d'1,8 (7,50 dòlars a Amazon)

Arduino Uno o equivalent (7,00 dòlars a Gearbest)

Amplificador Electret (6,95 dòlars a Adafruit)

Condensador de 100 µF (0,79 dòlars)

Wire and Jumpers (4,00 $)

Jack estèreo de 3,5 mm (1,50 dòlars)

Potenciòmetre de 10kOhm (2,00 dòlars)

Interruptor momentani (1,50 dòlars)

Pas 2: Eines

Soldador

Pistola de cola calenta

Impressora 3D … o un amic amb una impressora 3D (també es pot fabricar amb cartró)

Tallador de filferro

Taula de pa

Pas 3: impressió 3D

El primer és imprimir en 3D els fitxers.stl adjunts a aquest pas. Vaig imprimir els dos fitxers amb el material / configuració següent:

Material: PLA

Alçada de la capa: 0,1 mm

Gruix de la paret / superior / inferior: 0,8 mm

Temperatura d’impressió: 200⁰C

Temperatura del llit: 60⁰C

Assistència activada al 10%

Pas 4: Construir el circuit

Construint el circuit utilitzant els components de la secció de materials. Sempre poso el circuit junt en una taula de verificar per assegurar-me que funciona correctament abans de tocar el soldador.

Pas 5: cablejat LCD

Cablejat LCD
Cablejat LCD

Mitjançant la figura adjunta a aquest pas, soldeu els cables a set dels vuit pins de la pantalla LCD. Aquests cables hauran de tenir uns 3 peus de longitud, excepte el sòl i els pins de + 5V (només han de tenir 2-3 polzades)

Pas 6: Cablatge de micròfon / amplificador

Cablatge de micròfon / amplificador
Cablatge de micròfon / amplificador

Utilitzant la figura adjunta a aquest pas, soldeu tres cables als pins de + 5V, terra i sortida del micròfon / amplificador Adafruit. Aquests només han de tenir unes 2-3 polzades de longitud.

Pas 7: Cablejat del commutador momentani

Connecteu un cable de 2-3 polzades a cadascuna de les dues orelles de l’interruptor momentani.

Pas 8: cablejat del potenciòmetre

Utilitzant la figura del pas 6, soldeu tres cables d’uns 2-3 centímetres de llargada a les tres orelles del potenciòmetre.

Pas 9: cablejat de la presa dels auriculars

Soldeu tres cables a l'anell, la punta i les mànigues de la presa dels auriculars. Vaig fer servir un jack d’un metrònom que ja estava connectat. Si no sabeu què són els anells, la punta i les mànigues, només cal buscar-hi Google, hi ha moltes bones imatges sobre els connectors estèreo de cablejat.

Pas 10: Sortida de micròfon / amplificador

Després de soldar els cables del micròfon / amplificador, del potenciòmetre i de la presa per a auriculars, soldeu un cable d’uns tres peus de llargada al fil “fora” de l’amplificador de micròfon. Aquest cable es connectarà posteriorment al pin A0 de l’arduino.

Pas 11: Continuació de la sortida del micròfon / amplificador

Soldeu un segon cable al cable "out" del micròfon / amplificador. Aquest cable s’ha de soldar a un condensador de 100 microFarad. Si utilitzeu un condensador electrolític, assegureu-vos que el costat positiu estigui connectat a aquest cable.

Pas 12: components del recinte

Components del recinte
Components del recinte
Components del recinte
Components del recinte

Després de soldar tots els cables als components, col·loqueu-los als llocs respectius seguint les figures adjuntes a aquest pas. Vaig utilitzar cola calenta per fixar el connector del micròfon i els auriculars al seu lloc.

Pas 13: soldadura al recinte

Després de fixar tots els components al recinte, soldeu tots els cables de terra junts. N’hi hauria d’haver un de la pantalla LCD, un del micròfon / amplificador i un de la funda del connector per a auriculars. També soldeu els cables de + 5V junts i un de l’interruptor momentani. Una vegada més, n’hi hauria d’haver un de la pantalla LCD, un del micròfon / amplificador i un altre de l’interruptor momentani.

Pas 14: + 5V, cables extensos GND

Ara talla dos trossos de filferro d’uns 3 peus de llarg. Soldeu un al grup de cables de terra i soldeu l’altre al fil obert de l’interruptor momentani.

Pas 15: Feu lliscar els cables llargs pel forat del recinte

Feu lliscar els cables llargs pel forat del recinte
Feu lliscar els cables llargs pel forat del recinte

Ara, hauríeu de tenir un total de vuit cables d’uns 3 peus de longitud. Col·loqueu-los a través del forat sense tancar del recinte. Vegeu la figura adjunta a aquest pas

Pas 16: Reduir la calor

Un cop acabada la soldadura, assegureu-vos que els cables exposats estan tapats. He utilitzat tubs termoretràctils, però la cinta elèctrica també funciona bé.

Pas 17: segellar el recinte

Recinte del segell
Recinte del segell
Recinte del segell
Recinte del segell

Agafeu la meitat del recinte que conté la pantalla LCD i feu-la passar per l'altra meitat del recinte que conté els altres components. Mentre empenyeu les dues peces, enganxeu-les en calent per assegurar el recinte junt.

Pas 18: connecteu-vos a Arduino

Els vuit cables llargs restants estan connectats directament als seus respectius pins Arduino descrits en els esquemes del circuit. Assegureu-vos que cada vegada que soldeu un d’aquests cables llargs de 3 peus al circuit que poseu un tros de cinta a l’altre extrem indicant a quin pin Arduino va.

Pas 19: Arduino IDE / Biblioteques

Haureu de descarregar l’IDE Arduino. Per a aquest esbós, he utilitzat tres biblioteques diferents: FHT.h, SPI.h i TFT.h. Si no sabeu com descarregar les biblioteques Arduino, consulteu https://www.arduino.cc/en/Guide/Libraries. La biblioteca FHT.h es va descarregar des de openmusiclabs.com. Els altres dos es van descarregar a GitHub.

Pas 20: Arduino Sketch

El codi utilitza la transformació ràpida de Hartley (FHT) per canviar el domini horari a un domini de freqüència. Això també es pot fer mitjançant la transformada ràpida de Fourier (FFT), però la FHT és molt més ràpida. El FFT i el FHT són idees molt fonamentals en el processament de senyals i són molt divertides d'aprendre. Us suggereixo fer una lectura vosaltres mateixos, si esteu interessats, vegeu. El codi d’exemple FHT que vaig copiar del lloc web d’Open Music Labs publicava inicialment l’amplitud de cada safata de freqüència com a sortida logarítmica o decibel. He canviat això per generar els contenidors de freqüència en una escala lineal. Això es deu al fet que l’escala lineal és una millor representació visual de com els humans senten el so. El bucle for () al final serveix per dibuixar l'amplitud de cada paperera de freqüència a la pantalla LCD. L'espectre FHT complet englobaria tots els contenidors de freqüència des de i = 0 fins a i <128. Notareu que el meu bucle for () és d’i = 5 a i <40, perquè les freqüències importants per diagnosticar afeccions pulmonars solen estar entre 150Hz i 3,5khz, vaig decidir pujar a uns 4kHz. Això es pot ajustar si voleu mostrar tot l'espectre de freqüència.

[codi]

// Codi d’estetoscopi digital

// Biblioteca de Fast Hartley Transform descarregada des de openmusiclabs

#define LIN_OUT 1 // defineix FHT perquè produeixi una sortida lineal

#define LOG_OUT 0 // desactiva la sortida logarítmica FHT

#define FHT_N 256 // Número de mostra FHT

#include // inclou la biblioteca FHT

#include // inclou la biblioteca TFT

#include // include SPI library

#define cs 10 // defineix lcd cs pin a arduino pin 10

#define dc 9 // estableix el pin lcd dc al pin 9 arduino

#define rst 8 // estableix el pin de restabliment del lcd al pin 8 d’arduino

TFT myScreen = TFT (cs, dc, rst); // declara el nom de la pantalla TFT

configuració nul·la () {

//Serial.begin(9600);//set freqüència de mostreig

myScreen.begin (); // inicialitza la pantalla TFT

myScreen.background (0, 0, 0); // estableix el fons en negre

ADCSRA = 0xe5; // estableix adc en mode d'execució lliure

ADMUX = 0x40; // utilitza adc0

}

bucle buit () {

while (1) {// redueix la fluctuació cli (); // La interrupció UDRE s’alenteix d’aquesta manera a arduino1.0

for (int i = 0; i <FHT_N; i ++) {// desa 256 mostres

while (! (ADCSRA & 0x10)); // espera que l’adc estigui a punt

ADCSRA = 0xf5; // reiniciar byte adc

m = ADCL; // obtenir un byte de dades adc

j = ADCH; int k = (j << 8) | m; // formar un int

k - = 0x0200; // forma un int. signat

k << = 6; // es forma en un int

fht_input = k; // posar dades reals als contenidors

}

fht_window (); // mostra les dades per obtenir una millor resposta de freqüència

fht_reorder (); // reordeneu les dades abans de fer l'hth

fht_run (); // processar les dades a l’hth

fht_mag_lin (); // agafeu la sortida del fht

sei ();

per a (int i = 5; i <40; i ++) {

myScreen.stroke (255, 255, 255);

myScreen.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);

}

myScreen.background (0, 0, 0);

}

}

[/codi]

Pas 21: proveu-ho

Proveu-ho!
Proveu-ho!

He utilitzat un generador de tons en línia (https://www.szynalski.com/tone-generator/) per confirmar que el codi funcionava correctament. Després de confirmar que funciona, premeu la campana de l'estetoscopi fins al pit, respireu profundament i vegeu quines freqüències hi ha !!

Pas 22: Treball futur

** Nota: Sóc químic, no enginyer ni informàtic **. Probablement hi haurà errors i millores en el disseny i el codi. Dit això, crec que és un bon començament per a una cosa que pot acabar sent molt útil i econòmica. Les següents vinyetes són futures millores que voldria fer i espero que alguns de vosaltres també intentin millorar-la.

· Feu que el dispositiu sigui mòbil. No tinc una àmplia experiència amb CPUs o altres microcontroladors, però caldria tenir prou memòria per emmagatzemar tota la biblioteca FHT o, possiblement, Bluetooth.

· Introduir alguns càlculs d’anàlisi estadística al codi. Per exemple, normalment una sibilància té una freqüència fonamental igual o superior a 400 Hz i dura almenys 250 ms. Els rhonchi es produeixen a una freqüència fonamental d’uns 200 Hz o menys i dura almenys 250 ms. Molts altres sons pulmonars estan definits i són indicatius de les condicions de salut (https://commongiant.github.io/iSonea-Physicians/assets/publications/7_ISN-charbonneau-Euro-resp-Jour-1995-1942-full.pdf). Crec que això es pot comprovar al codi comparant el senyal dels contenidors de freqüència després d’un cert nombre de cicles a través del FHT i després executant la funció millis () per veure quant de temps va estar present i comparant-lo al sòl del soroll del càlcul FHT. Confio que aquestes coses es poden fer!

Espero que tots us hagueu divertit amb aquest projecte i si teniu alguna pregunta, si us plau comenteu i us respondré tan aviat com pugui. Tinc ganes de veure comentaris.

Recomanat: