Sisukord:

Kiire Hartley muundamise spektraalstetoskoop: 22 sammu
Kiire Hartley muundamise spektraalstetoskoop: 22 sammu

Video: Kiire Hartley muundamise spektraalstetoskoop: 22 sammu

Video: Kiire Hartley muundamise spektraalstetoskoop: 22 sammu
Video: Defendant collapses in court after guilty verdict 2024, November
Anonim
Kiire Hartley muundamise spektraalstetoskoop
Kiire Hartley muundamise spektraalstetoskoop

Selles juhendis saate teada, kuidas kiire hartley teisenduse abil spektraalstetoskoopi teha. Seda saab kasutada südame- ja kopsuhelide visualiseerimiseks.

Samm: materjalid

1,8 -tolline LCD -ekraan (7,50 dollarit Amazonil)

Arduino Uno või samaväärne (7, 00 dollarit Gearbestil)

Electreti võimendi (6,95 dollarit Adafruitil)

100 µF kondensaator (0,79 dollarit)

Traat ja džemprid (4,00 dollarit)

3,5 mm stereopistik (1,50 dollarit)

10 kOhm potentsiomeeter (2,00 dollarit)

Hetkelüliti (1,50 dollarit)

Samm: tööriistad

Jootekolb

Kuum liimipüstol

3D -printer… või sõber 3D -printeriga (võimalik teha ka papist)

Traadi lõikur

Leivalaud

Samm: 3D -printimine

Esimene on selle sammu juurde lisatud.stl -failide 3D -printimine. Prindisin mõlemad failid, kasutades järgmist materjali/seadeid:

Materjal: PLA

Kihi kõrgus: 0,1 mm

Seina/ülemise/alumise paksus: 0,8 mm

Trükitemperatuur: 200 ℃

Voodi temperatuur: 60 ° C

Toetus lubatud @ 10%

Samm: konstrueerige ahel

Materjalide jaotises olevate komponentide abil ehitage vooluring. Enne jootekolvi puudutamist panen vooluringi alati esmalt leivaplaadile kokku, et veenduda, kas see töötab korralikult.

Samm: LCD juhtmestik

LCD juhtmestik
LCD juhtmestik

Sellele sammule lisatud joonise abil jootke juhtmed LCD -ekraanil kaheksast tihvtist seitsmele. Need juhtmed peavad olema umbes 3 jalga pikad, välja arvatud maapind ja +5 V tihvtid (need peavad olema ainult 2-3 tolli)

Samm: mikrofoni/võimendi juhtmestik

Mikrofoni/võimendi juhtmestik
Mikrofoni/võimendi juhtmestik

Sellele sammule lisatud joonise abil jootke Adafruit'i mikrofoni/võimendi +5V, maandus- ja väljundpistikute külge kolm juhtmest. Need peavad olema ainult umbes 2-3 tolli pikkused.

Samm 7: hetkeline lüliti juhtmestik

Ühendage üks 2-3-tolline juhe kummagi lüliti kahe klemmi külge.

Samm: potentsiomeetri juhtmestik

Kasutades sammu 6 joonist, jootke kolm umbes 2-3 tolli pikkust juhtmest potentsiomeetri kolmele korgile.

Samm: kõrvaklappide pesa juhtmestik

Jootke kolm juhtmest kõrvaklapipesa rõnga, otsa ja varrukasilindrite külge. Kasutasin juba juhtmega ühendatud metronoomi pistikut. Kui te ei tea, mis rõngas, otsik ja varrukasilmad on, googeldage lihtsalt, seal on palju häid pilte stereopistikute juhtmestiku kohta.

10. samm: mikrofoni/võimendi väljund

Pärast mikrofoni/võimendi, potentsiomeetri ja kõrvaklappide juhtmete jootmist jootke üks umbes kolme jala pikkune juhe mikrofonivõimendi väljundjuhtme külge. See juhe ühendatakse hiljem arduino A0 tihvtiga.

11. samm: mikrofoni/võimendi väljund jätkub

Jootke teine juhe mikrofoni/võimendi väljundjuhtme külge. See traat tuleb joota 100 mikroFarad kondensaatorisse. Kui kasutate elektrolüütkondensaatorit, veenduge, et selle juhtmega oleks ühendatud positiivne pool.

12. samm: korpuse komponendid

Komponendid korpuses
Komponendid korpuses
Komponendid korpuses
Komponendid korpuses

Kui kõik juhtmed on komponentide külge joodetud, asetage komponendid vastavatesse kohtadesse, järgides sellele sammule lisatud jooniseid. Mikrofoni ja kõrvaklappide pesa kinnitamiseks kasutasin kuuma liimi.

Samm 13: korpuses olev jootmine

Kui kõik komponendid on korpusesse kinnitatud, jootke kõik maandusjuhtmed kokku. Üks peaks olema LCD -ekraanilt, üks mikrofonist/võimendist ja üks kõrvaklappide pesast. Jootke ka +5V juhtmed kokku ja üks juhtmest hetkeline lüliti. Jällegi peaks olema üks vedelkristallekraanilt, üks mikrofonilt/võimendilt ja teine hetkelisel lülitil.

14. samm: +5 V, GND laiendatud juhtmed

Nüüd lõigake kaks traati umbes 3 jala pikkuseks. Jootke üks maandusjuhtmete klastrisse ja teine jootke hetkelise lüliti avatud juhtme külge.

Samm: libistage pikad juhtmed läbi korpuse augu

Libistage pikad juhtmed läbi korpuse augu
Libistage pikad juhtmed läbi korpuse augu

Nüüd peaks teil olema kokku kaheksa umbes 3 jala pikkust traati. Asetage need läbi korpuse täitmata ava. Vaadake sellele sammule lisatud joonist

16. samm: Kuuma kokkutõmbumine

Kui kogu jootmine on lõpetatud, veenduge, et avatud juhtmed on kaetud. Kasutasin termokahanevaid torusid, kuid ka elektrilint töötab hästi.

Samm 17: tihendi ümbris

Tihendikarp
Tihendikarp
Tihendikarp
Tihendikarp

Võtke pool korpusest, mis sisaldab LCD -ekraani, ja libistage see üle teisi komponente sisaldava korpuse poole. Mõlemat tükki kokku surudes liimige need kuuma liimiga, et kinnitada korpus.

Samm: looge ühendus Arduinoga

Ülejäänud kaheksa pikka juhet on ühendatud otse nende vastavate Arduino tihvtidega, mis on toodud vooluahela skeemidel. Veenduge, et iga kord, kui joote vooluahelasse ühe neist pikkadest 3 -jalastest juhtmetest, panete teise otsa tüki linti, mis näitab, millisele Arduino tihvtile see läheb!

19. samm: Arduino IDE/teegid

Peate alla laadima Arduino IDE. Selle visandi jaoks kasutasin kolme erinevat raamatukogu: FHT.h, SPI.h ja TFT.h. Kui te ei tea, kuidas Arduino raamatukogusid alla laadida, vaadake aadressi https://www.arduino.cc/en/Guide/Libraries. FHT.h raamatukogu laaditi alla saidilt openmusiclabs.com. Ülejäänud kaks laaditi alla GitHubist.

20. samm: Arduino visand

Kood kasutab kiiret Hartley teisendust (FHT) ajadomeeni muutmiseks sagedusdomeeniks. Seda saab teha ka kiire Fourier -teisenduse (FFT) abil, kuid FHT on palju kiirem. FFT ja FHT on signaalitöötluses väga olulised ideed ja nende tundmine on väga lõbus. Soovitan ise lugeda, kui huvi pakub. FHT näidiskood, mille ma Open Music Labsi veebisaidilt kopeerisin, esitas esialgu iga sagedusala amplituudi logaritmilise või detsibellväljundina. Muutsin seda, et väljastada sageduskastid lineaarskaalal. Seda seetõttu, et lineaarne skaala on parem visuaalne esitus sellest, kuidas inimesed heli kuulevad. Lõpus olev () silmus on mõeldud iga sagedusala amplituudi joonistamiseks LCD -ekraanile. Kogu FHT spekter hõlmaks kõiki sagedusalasid vahemikus i = 0 kuni i <128. Märkate, et minu for () tsükkel on vahemikus i = 5 kuni i <40, sest kopsuhaiguste diagnoosimiseks olulised sagedused on tavaliselt vahemikus 150 Hz kuni 3,5 khz, otsustasin minna umbes 4 kHz sagedusele. Seda saab reguleerida, kui soovite näidata kogu sagedusspektrit.

[kood]

// Digitaalse stetoskoobi kood

// Kiire Hartley teisendusteek, mis on alla laaditud saidilt openmusiclabs

#define LIN_OUT 1 // määrake FHT lineaarse väljundi saamiseks

#define LOG_OUT 0 // lülitage FHT logaritmiline väljund välja

#define FHT_N 256 // FHT proovi number

#include // kaasata FHT raamatukogu

#include // kaasata TFT -kogu

#include // SPI kogu

#define cs 10 // määrake lcd cs pin arduino pin 10 -ks

#define dc 9 // määrake lcd dc pin arduino pin 9 -le

#define rst 8 // määrake lcd lähtestamise pin arduino pin 8 -ks

TFT myScreen = TFT (cs, dc, rst); // kuulutage TFT -ekraani nimi

tühine seadistus () {

//Serial.begin(9600);// set diskreeting rate

myScreen.begin (); // TFT -ekraani initsialiseerimine

myScreen.background (0, 0, 0); // määrake taust mustaks

ADCSRA = 0xe5; // määrake adc vaba töörežiimi

ADMUX = 0x40; // kasutage adc0

}

void loop () {

while (1) {// vähendab värisemist cli (); // UDRE katkestus aeglustab sel viisil arduino1.0

jaoks (int i = 0; i <FHT_N; i ++) {// salvestage 256 proovi

while (! (ADCSRA & 0x10)); // oodake, kuni adc on valmis

ADCSRA = 0xf5; // taaskäivitage adc bait

m = ADCL; // too adc -andmebait

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

k -= 0x0200; // vorm allkirjastatud int

k << = 6; // vorm 16b allkirjastatud int

fht_input = k; // pane reaalsed andmed prügikastidesse

}

fht_aken (); // akna andmete parema sagedusreaktsiooni jaoks

fht_reorder (); // enne fht -i tegemist andmete ümberkorraldamine

fht_run (); // töödelda andmeid fht

fht_mag_lin (); // võta fht -i väljund

sei ();

jaoks (int i = 5; i <40; i ++) {

myScreen.troke (255, 255, 255);

myScreen.fill (255, 255, 255);

int drawHeight = kaart (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);

}

}

[/kood]

21. samm: proovige järele

Testi seda!
Testi seda!

Kasutasin võrgutoonide generaatorit (https://www.szynalski.com/tone-generator/), et kontrollida, kas kood töötab korralikult. Pärast selle toimimise kinnitamist vajutage stetoskoobi kellukest rinnale, hingake sügavalt sisse ja vaadake, millised sagedused esinevad !!

22. samm: tulevane töö

** Märkus: ma olen keemik, mitte insener ega arvutiteadlane **. Kujunduses ja koodis on tõenäoliselt vigu ja täiustusi. Sellegipoolest arvan, et see on hea algus millelegi, mis võib lõpuks olla väga kasulik ja odav. Järgmised täpid on tulevased täiustused, mida tahaksin teha, ja loodan, et mõned teist proovivad seda ka parandada!

· Muutke seade mobiilseks. Mul ei ole laialdasi kogemusi protsessorite või muude mikrokontrolleritega, kuid sellel peaks olema piisavalt mälu, et salvestada kogu FHT -kogu või võib -olla Bluetoothi.

· Lisage koodi mõned statistilise analüüsi arvutused. Näiteks tavaliselt on vilistamise põhisagedus võrdne või suurem kui 400 Hz ja kestab vähemalt 250 ms. Rhonchi esineb põhisagedusel umbes 200 Hz või vähem ja kestab vähemalt 250 ms. Paljud teised kopsuhelid on määratletud ja viitavad tervislikule seisundile (https://commongiant.github.io/iSonea-Physicians/assets/publications/7_ISN-charbonneau-Euro-resp-Jour-1995-1942-full.pdf). Ma arvan, et seda saab koodis kontrollida, kui võrrelda sageduskastide signaali pärast teatud arvu tsüklit läbi FHT ja seejärel käivitada funktsioon millis (), et näha, kui kaua see oli, ja võrrelda seda FHT -arvutuse mürapõrandale. Olen kindel, et neid asju saab teha!

Loodan, et teil kõigil oli selle projektiga lõbus ja kui teil on küsimusi, kommenteerige ja vastan niipea kui võimalik! Ootan huviga kommentaare.

Soovitan: