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: Tajna za brži uspjeh: Ovo je rečenica koju ćete pamtiti zauvijek 2024, Studeni
Anonim
Brzi Hartleyjev transformacijski spektralni stetoskop
Brzi Hartleyjev transformacijski spektralni stetoskop

U ovom uputstvu naučit ćete kako napraviti spektralni stetoskop pomoću brze Hartley transformacije. 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 ekvivalent (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 pisač … ili prijatelja s 3D pisačem (moguće napraviti i s kartonom)

Rezač žice

Oglasna ploča

Korak 3: 3D ispis

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

Materijal: PLA

Visina sloja: 0,1 mm

Debljina zida/vrha/dna: 0,8 mm

Temperatura ispisa: 200⁰C

Temperatura kreveta: 60⁰C

Podrška omogućena @ 10%

Korak 4: Konstruirajte krug

Pomoću komponenti u odjeljku materijala sastavite krug. Uvijek sam prvo spojio 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 sliku priloženu ovom koraku, lemite žice na sedam od osam pinova na LCD zaslonu. Ove žice moraju biti dugačke oko 3 stope, osim uzemljenja i +5V iglica (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 mikrofonu/pojačalu Adafruit. Oni trebaju biti samo oko 2-3 cm u duljinu.

Korak 7: Trenutno ožičenje 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 duljine 2-3 inča na tri držača potenciometra.

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

Lemite tri žice na prstenje, vrh i čahure na utičnici za slušalice. Koristio sam utičnicu 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 duljine oko tri stope na "vanjsku" ž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 "vanjsku" žicu mikrofona/pojačala. Ova žica mora biti lemljena na kondenzator od 100 mikroFarada. Ako koristite elektrolitski 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. Upotrijebio sam vruće ljepilo za pričvršćivanje priključka za mikrofon i slušalice.

Korak 13: Lemljenje unutar kućišta

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

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

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

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

Provucite duge žice kroz otvor kućišta
Provucite duge žice kroz otvor kućišta

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

Korak 16: Termoskupljanje

Nakon što je lemljenje dovrš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

Zatvaranje kućišta
Zatvaranje kućišta
Zatvaranje kućišta
Zatvaranje kućišta

Uzmite polovicu kućišta s LCD zaslonom i gurnite je preko druge polovice kućišta koja sadrži ostale komponente. Dok gurate dva dijela zajedno, vruće ih zalijepite kako biste pričvrstili kućište.

Korak 18: Povežite se s Arduinom

Preostalih osam dugačkih žica spojene su izravno na odgovarajuće Arduino pinove navedene u shemama kruga. Uvjerite se da svaki put kada lemite jednu od onih dugih 3ft žica u krug, stavite komad trake na drugi kraj koji pokazuje na koji Arduino pin ide!

Korak 19: Arduino IDE/knjižnice

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 knjižnice, pogledajte https://www.arduino.cc/en/Guide/Libraries. Knjižnica FHT.h preuzeta je s openmusiclabs.com. Druga dva su preuzeta na GitHubu.

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 pomoću Fast Fourierove transformacije (FFT), ali FHT je mnogo brži. FFT i FHT vrlo su temeljne ideje u obradi signala i vrlo ih je zabavno učiti. Predlažem da sami pročitate, ako vas zanima pogledajte. Primjer koda FHT -a koji sam kopirao s web stranice Open Music Labs u početku je izlazio amplitudu svake frekvencijske kante kao logaritamski ili decibel izlaz. Promijenio sam ovo za ispisivanje frekvencijskih polja na linearnoj ljestvici. 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 zaslonu. Cijeli FHT spektar obuhvatio bi sve frekvencijske nizove 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.

[kodirati]

// Š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či biblioteku FHT

#include // uključi TFT biblioteku

#include // uključi 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 reset LCD -a na arduino pin 8

TFT myScreen = TFT (cs, dc, rst); // deklarirajte naziv TFT zaslona

void setup () {

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

myScreen.begin (); // inicijalizira TFT zaslon

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

ADCSRA = 0xe5; // postavite ADC u način rada 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; // formirati u potpisanu int

k << = 6; // formirati u 16b potpisan int

fht_input = k; // stavljamo stvarne podatke u kante

}

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

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

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

fht_mag_lin (); // uzeti izlaz fhtha

sei ();

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

myScreen.stroke (255, 255, 255);

myScreen.fill (255, 255, 255);

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

}

}

[/kodirati]

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 kemičar, a ne inženjer ili informatičar **. Vjerojatno će doći do pogreš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 neki od vas to pokušati poboljšati!

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

· Uvedite neke izračune statističke analize u kôd. Na primjer, tipično piskanje ima temeljnu frekvenciju jednaku ili veću od 400 Hz i traje najmanje 250 ms. Rhonchi se pojavljuju na temeljnoj frekvenciji od oko 200 Hz ili manje i traju najmanje 250 ms. Mnogi drugi plućni zvukovi definirani su 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 usporedbom signala frekvencijskih polja nakon određenog broja ciklusa kroz FHT, a zatim pokretanjem funkcije millis () kako bi se vidjelo koliko je dugo prisutno, pa usporedbom do poda buke izračuna FHT. Uvjeren sam da se ove stvari mogu učiniti!

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

Preporučeni: