Sadržaj:

Brzi Hartleyjev transformacijski spektralni stetoskop: 22 koraka
Brzi Hartleyjev transformacijski spektralni stetoskop: 22 koraka

Video: Brzi Hartleyjev transformacijski spektralni stetoskop: 22 koraka

Video: Brzi Hartleyjev transformacijski spektralni stetoskop: 22 koraka
Video: Srđan Roje: "Put u Zlatno doba" (1/2), spiritualno-manifestacijski masterclass 2024, Juli
Anonim
Brzi Hartleyjev transformacijski spektralni stetoskop
Brzi Hartleyjev transformacijski spektralni stetoskop

U ovom uputstvu naučit ćete kako napraviti spektralni stetoskop koristeći brzu Hartleyjevu transformaciju. Ovo se može koristiti za vizualizaciju zvukova srca i pluća.

Korak 1: Materijali

LCD ekran od 1,8 inča (7,50 USD na Amazonu)

Arduino Uno ili ekvivalentno (7,00 USD na Gearbestu)

Pojačalo Electret (6,95 USD na Adafruit -u)

Kondenzator od 100 µF (0,79 USD)

Žica i kratkospojnici (4,00 USD)

Stereo priključak od 3,5 mm (1,50 USD)

Potenciometar od 10 kOhm (2,00 USD)

Trenutni prekidač (1,50 USD)

Korak 2: Alati

Lemilica

Pištolj za vruće ljepilo

3D štampač … ili prijatelj sa 3D štampačem (moguće je napraviti i sa kartonom)

Rezač žice

Breadboard

Korak 3: 3D štampanje

Prvi je 3D ispis.stl datoteka priloženih ovom koraku. Odštampao sam obje datoteke koristeći sljedeći materijal/postavke:

Materijal: PLA

Visina sloja: 0,1 mm

Debljina zida/vrha/dna: 0,8 mm

Temperatura štampe: 200⁰C

Temperatura kreveta: 60⁰C

Podrška omogućena @ 10%

Korak 4: Konstruirajte krug

Koristeći komponente u odjeljku materijala, napravite krug. Uvijek sam prvo sklopio krug na ploču kako bih se uvjerio da radi ispravno prije nego što dodirnem lemilicu.

Korak 5: LCD ožičenje

LCD ožičenje
LCD ožičenje

Koristeći brojku priloženu ovom koraku, lemite žice na sedam od osam pinova na LCD ekranu. Ove žice moraju biti dugačke oko 3 stope, osim uzemljenja i +5V igle (one trebaju biti samo 2-3 inča)

Korak 6: Ožičenje mikrofona/pojačala

Ožičenje mikrofona/pojačala
Ožičenje mikrofona/pojačala

Koristeći sliku priloženu ovom koraku, lemite tri žice na +5V, uzemljenje i izlazne pinove na Adafruit mikrofonu/pojačalu. Oni trebaju biti dugački samo 2-3 inča.

Korak 7: Ožičenje trenutnog prekidača

Ožičite jednu žicu od 2-3 inča na svaku od dvije ušice na prekidaču za trenutak.

Korak 8: Ožičenje potenciometra

Koristeći sliku u koraku 6, lemite tri žice dužine oko 2-3 inča na tri držača potenciometra.

Korak 9: Ožičenje priključka za slušalice

Lemite tri žice na prsten, vrh i čahure na utičnici za slušalice. Koristio sam utikač iz metronoma koji je već bio ožičen. Ako ne znate što su prstenovi, vrhovi i čahure, samo proguglajte, ima mnogo dobrih slika o ožičenju stereo priključaka.

Korak 10: Izlaz za mikrofon/pojačalo

Nakon lemljenja žica na mikrofonu/pojačalu, potenciometru i priključku za slušalice, lemite jednu žicu dužine oko tri stope na "izlaznu" žicu pojačala za mikrofon. Ova će žica kasnije biti spojena na A0 pin arduina.

Korak 11: Nastavak izlaza za mikrofon/pojačalo

Lemite drugu žicu na "izlaznu" žicu mikrofona/pojačala. Ova žica mora biti lemljena na kondenzator od 100 mikroFarada. Ako koristite elektrolitički kondenzator, provjerite je li pozitivna strana spojena na ovu žicu.

Korak 12: Komponente u kućištu

Komponente u kutiji
Komponente u kutiji
Komponente u kutiji
Komponente u kutiji

Nakon što su sve žice zalemljene na komponente, postavite komponente na odgovarajuća mjesta slijedeći slike priložene ovom koraku. Koristio sam vruće ljepilo da pričvrstim priključak za mikrofon i slušalice.

Korak 13: Lemljenje unutar kućišta

Nakon što su sve komponente pričvršćene u kućištu, zalemite sve žice za uzemljenje zajedno. Trebalo bi da postoji jedan sa LCD -a, jedan sa mikrofona/pojačala i jedan sa navlake priključka za slušalice. Takođe lemite žice +5V zajedno i jednu žicu od trenutnog prekidača. Opet bi trebao biti jedan sa LCD -a, jedan sa mikrofona/pojačala i jedan na prekidaču za trenutak.

Korak 14: +5V, produžene žice GND

Sada izrežite dva komada žice dužine oko 3 stope. Lemite jedan na skup žica za uzemljenje, a drugi na otvorenu žicu na trenutnom prekidaču.

Korak 15: Provucite duge žice kroz otvor na kućištu

Provucite duge žice kroz otvor na kućištu
Provucite duge žice kroz otvor na kućištu

Sada biste trebali imati ukupno osam žica dužine oko 3 stope. Postavite ih kroz nepopunjenu rupu u kućištu. Pogledajte sliku priloženu ovom koraku

Korak 16: Termoskupljanje

Nakon što je lemljenje završeno, provjerite jesu li izložene žice prekrivene. Koristio sam termoskupljajuće cijevi, ali i električna traka radi dobro.

Korak 17: Zatvorite kućište

Seal Enclosure
Seal Enclosure
Seal Enclosure
Seal Enclosure

Uzmite polovinu kućišta sa LCD ekranom i prevucite je preko druge polovine kućišta koja sadrži ostale komponente. Dok gurate dva komada zajedno, vruće ih zalijepite kako biste pričvrstili kućište.

Korak 18: Povežite se s Arduinom

Preostalih osam dugačkih žica spojeno je izravno na odgovarajuće Arduino pinove navedene u shemama kola. Uvjerite se da svaki put kada lemite jednu od onih dugačkih žica od 3 ft u kolo stavite dio trake na drugi kraj koji pokazuje na koji Arduino pin ide!

Korak 19: Arduino IDE/biblioteke

Morat ćete preuzeti Arduino IDE. Za ovu skicu koristio sam tri različite biblioteke: FHT.h, SPI.h i TFT.h. Ako ne znate kako preuzeti Arduino biblioteke, pogledajte https://www.arduino.cc/en/Guide/Libraries. Biblioteka FHT.h preuzeta je s openmusiclabs.com. Druga dva su preuzeta na GitHub -u.

Korak 20: Arduino skica

Kod koristi Fast Hartley Transform (FHT) za promjenu vremenske domene u frekvencijsku domenu. To se također može učiniti korištenjem Fast Fourierove transformacije (FFT), ali FHT je mnogo brži. FFT i FHT su vrlo temeljne ideje u obradi signala i vrlo ih je zabavno učiti. Predlažem da i sami pročitate, ako vas zanima pogledajte. Primjer koda FHT -a koji sam kopirao sa web stranice Open Music Labs u početku je izlazio amplitudu svake frekvencijske jedinice kao logaritamski ili decibel izlaz. Promijenio sam ovo za ispisivanje frekvencijskih polja na linearnoj skali. To je zato što je linearna ljestvica bolji vizualni prikaz načina na koji ljudi čuju zvuk. Petlja for () na kraju služi za iscrtavanje amplitude svakog spremišta frekvencija na LCD ekranu. Cijeli FHT spektar obuhvatio bi sve frekvencijske okvire od i = 0 do i <128. Primijetit ćete da je moja for () petlja od i = 5 do i <40, to je zato što su frekvencije važne za dijagnosticiranje plućnih stanja tipično između 150Hz i 3.5khz, odlučio sam se popeti na oko 4kHz. To se može prilagoditi ako želite prikazati cijeli frekvencijski spektar.

[kod]

// Šifra digitalnog stetoskopa

// Brza biblioteka Hartley Transform preuzeta s openmusiclabs

#define LIN_OUT 1 // postavite FHT za proizvodnju linearnog izlaza

#define LOG_OUT 0 // isključuje FHT logaritamski izlaz

#define FHT_N 256 // Broj uzorka FHT

#include // uključuje FHT biblioteku

#include // uključuje TFT biblioteku

#include // uključuje SPI biblioteku

#define cs 10 // postavite lcd cs pin na arduino pin 10

#define dc 9 // postavite lcd dc pin na arduino pin 9

#define rst 8 // postavite pin za resetiranje lcd -a na arduino pin 8

TFT myScreen = TFT (cs, dc, rst); // proglašava naziv TFT ekrana

void setup () {

//Serial.begin(9600);//set brzina uzorkovanja

myScreen.begin (); // inicijalizira TFT ekran

myScreen.background (0, 0, 0); // pozadinu postaviti na crnu

ADCSRA = 0xe5; // postavite adc u režim slobodnog rada

ADMUX = 0x40; // koristi adc0

}

void loop () {{100} {101}

while (1) {// smanjuje jitter cli (); // UDRE prekid na ovaj način usporava arduino1.0

for (int i = 0; i <FHT_N; i ++) {// spremanje 256 uzoraka

while (! (ADCSRA & 0x10)); // čekati da adc bude spreman

ADCSRA = 0xf5; // ponovno pokretanje adc bajta

m = ADCL; // dohvatiti ADC bajt podataka

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

k -= 0x0200; // formira u potpisanu int

k << = 6; // formira u 16b potpisanu int

fht_input = k; // stavljamo stvarne podatke u kante

}

fht_window (); // prozire podatke radi boljeg frekventnog odziva

fht_reorder (); // promijenite redoslijed podataka prije nego što izvršite fht

fht_run (); // obrađuje podatke u fht -u

fht_mag_lin (); // uzeti izlaz fht -a

sei ();

za (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);

}

}

[/code]

Korak 21: Isprobajte

Isprobajte!
Isprobajte!

Koristio sam internetski generator tonova (https://www.szynalski.com/tone-generator/) kako bih potvrdio da kôd radi ispravno. Nakon što potvrdite da radi, pritisnite zvono stetoskopa do grudi, duboko udahnite i pogledajte koje su frekvencije prisutne !!

Korak 22: Budući rad

** Napomena: Ja sam hemičar, a ne inženjer ili informatičar **. Vjerovatno će doći do grešaka i poboljšanja dizajna i koda. S obzirom na to, mislim da je to dobar početak za nešto što na kraju može biti vrlo korisno i jeftino. Sljedeći znakovi su buduća poboljšanja koja bih želio napraviti i nadam se da će i neki od vas pokušati to poboljšati!

· Učinite uređaj mobilnim. Nemam veliko iskustvo s procesorima ili drugim mikrokontrolerima, ali bi mu trebalo imati dovoljno memorije za pohranu cijele FHT biblioteke na, ili eventualno Bluetooth.

· Uvesti neke proračune statističke analize u kôd. Na primjer, tipično piskanje ima osnovnu frekvenciju jednaku ili veću od 400 Hz i traje najmanje 250 ms. Rhonchi se pojavljuju na osnovnoj frekvenciji od oko 200 Hz ili manje i traju najmanje 250 ms. Mnogi drugi plućni zvukovi su definirani i ukazuju na zdravstvena stanja (https://commongiant.github.io/iSonea-Physicians/assets/publications/7_ISN-charbonneau-Euro-resp-Jour-1995-1942-full.pdf). Mislim da je to nešto što se može provjeriti u kodu uspoređivanjem signala frekvencijskih polja nakon određenog broja ciklusa kroz FHT, a zatim pokretanjem funkcije millis () kako bi se vidjelo koliko dugo je prisutno, pa usporedbom do nivoa buke proračuna FHT -a. Uvjeren sam da se ove stvari mogu učiniti!

Nadam se da ste se svi zabavili s ovim projektom, a ako imate bilo kakvih pitanja, komentirajte i ja ću vam odgovoriti što je prije moguće! Jedva čekam komentare.

Preporučuje se: