Kazalo:

Hitri Hartleyjev transformacijski spektralni stetoskop: 22 korakov
Hitri Hartleyjev transformacijski spektralni stetoskop: 22 korakov

Video: Hitri Hartleyjev transformacijski spektralni stetoskop: 22 korakov

Video: Hitri Hartleyjev transformacijski spektralni stetoskop: 22 korakov
Video: Стресс, Портрет убийцы - документальный фильм (2008) 2024, November
Anonim
Hitri Hartleyjev transformacijski spektralni stetoskop
Hitri Hartleyjev transformacijski spektralni stetoskop

V tem navodilu se boste naučili izdelati spektralni stetoskop s hitro pretvorbo hartley. To lahko uporabimo za vizualizacijo zvokov srca in pljuč.

1. korak: Materiali

1,8 -palčni LCD zaslon (7,50 USD na Amazon)

Arduino Uno ali enakovredno (7,00 USD na Gearbestu)

Ojačevalnik Electret (6,95 USD na Adafruit)

100 µF kondenzator (0,79 USD)

Žica in skakalci (4,00 USD)

3,5 mm stereo priključek (1,50 USD)

Potenciometer 10kOhm (2,00 USD)

Hitro preklapljanje (1,50 USD)

2. korak: Orodja

Spajkalnik

Pištola za vroče lepilo

3D tiskalnik … ali prijatelj s 3D tiskalnikom (mogoče tudi s kartonom)

Rezalnik žice

Ogledna plošča

3. korak: 3D tiskanje

Prvi je 3D tiskanje datotek.stl, priloženih temu koraku. Obe datoteki sem natisnil z uporabo naslednjega materiala/nastavitev:

Material: PLA

Višina sloja: 0,1 mm

Debelina stene/vrha/dna: 0,8 mm

Temperatura tiskanja: 200⁰C

Temperatura postelje: 60⁰C

Podpora je omogočena pri 10%

4. korak: Sestavite vezje

Z uporabo komponent v razdelku materiali sestavite vezje. Vedno najprej sestavim vezje na ploščo, da se prepričam, da deluje pravilno, preden se dotaknem spajkalnika.

5. korak: ožičenje LCD

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

S pomočjo slike, priložene temu koraku, spajkajte žice na sedem od osmih nožic na LCD zaslonu. Te žice bodo dolge približno 3 čevlje, razen tal in +5V zatiči (ti morajo biti le 2-3 cm)

Korak 6: Ožičenje mikrofona/ojačevalnika

Ožičenje mikrofona/ojačevalnika
Ožičenje mikrofona/ojačevalnika

S pomočjo slike, priložene temu koraku, spajite tri žice na +5V, ozemljitveni in izhodni zatič na mikrofonu/ojačevalniku Adafruit. Ti morajo biti dolgi le 2-3 centimetre.

7. korak: ožičenje trenutnega stikala

Priključite eno 2-3-palčno žico na vsako od dveh ušes na trenutnem stikalu.

8. korak: ožičenje potenciometra

S pomočjo slike v koraku 6 spajkajte tri žice dolžine približno 2–3 palca na tri ušesa potenciometra.

9. korak: Ožičenje priključka za slušalke

Spajate tri žice na obroč, konico in rokave vtiča za slušalke. Uporabil sem vtičnico iz že ožičenega metronoma. Če ne veste, kaj so obročki, konice in rokavi, jih poiščite na Googlu, obstaja veliko dobrih slik o ožičenju stereo vtičnic.

10. korak: Izhod za mikrofon/ojačevalnik

Ko spajate žice na vhodu za mikrofon/ojačevalnik, potenciometer in slušalke, eno žico spajkajte približno tri čevlje v "zunanji" kabel mikrofonskega ojačevalnika. Ta žica bo kasneje priključena na A0 pin arduina.

11. korak: Izhod mikrofona/ojačevalnika se nadaljuje

Drugo žico spajkajte na "izhodno" žico mikrofona/ojačevalnika. To žico je treba spajkati na 100 microFarad kondenzator. Če uporabljate elektrolitski kondenzator, se prepričajte, da je pozitivna stran priključena na to žico.

12. korak: Komponente v ohišju

Sestavni deli v ohišju
Sestavni deli v ohišju
Sestavni deli v ohišju
Sestavni deli v ohišju

Ko so vse žice spajkane na sestavne dele, jih postavite na ustrezna mesta po slikah, priloženih temu koraku. Za pritrditev priključka za mikrofon in slušalke sem uporabil vroče lepilo.

13. korak: Spajkanje v ohišju

Ko so vse komponente pritrjene v ohišju, spajajte vse ozemljitvene žice skupaj. Eden mora biti iz LCD -ja, eden iz mikrofona/ojačevalnika in eden iz rokava priključka za slušalke. Spajate tudi žice +5V skupaj in eno žico iz trenutnega stikala. Spet bi moral biti eden z LCD -ja, eden iz mikrofona/ojačevalnika in eden na trenutnem stikalu.

Korak 14: +5V, podaljšane žice GND

Zdaj odrežite dva kosa žice dolžine približno 3 čevlje. Spajite enega na skupino ozemljitvenih žic, drugega pa na odprto žico na trenutnem stikalu.

Korak 15: Potegnite dolge žice skozi luknjo v ohišju

Potegnite dolge žice skozi odprtino za ohišje
Potegnite dolge žice skozi odprtino za ohišje

Sedaj bi morali imeti skupaj osem žic, dolgih približno 3 čevlje. Postavite jih skozi nezapolnjeno luknjo v ohišju. Oglejte si sliko, priloženo temu koraku

Korak 16: Toplotno krčenje

Ko je spajkanje končano, se prepričajte, da so izpostavljene žice pokrite. Uporabil sem toplotno skrčljivo cev, vendar tudi električni trak dobro deluje.

Korak 17: Zaprite ohišje

Ohišje tesnila
Ohišje tesnila
Ohišje tesnila
Ohišje tesnila

Vzemite polovico ohišja, ki vsebuje LCD zaslon, in ga povlecite čez drugo polovico ohišja, ki vsebuje druge komponente. Medtem ko oba kosa potisnete skupaj, ju z vročim lepilom pritrdite skupaj.

Korak 18: Povežite se z Arduinom

Osem dolgih preostalih žic je priključenih neposredno na ustrezne zatiče Arduino, opisane v shemah vezja. Prepričajte se, da vsakič, ko v vezje spajkate eno od tistih dolgih 3ft žic, na drugi konec položite kos traku, ki označuje, na kakšen pin Arduino gre!

Korak 19: Arduino IDE/knjižnice

Prenesti morate Arduino IDE. Za to skico sem uporabil tri različne knjižnice: FHT.h, SPI.h in TFT.h. Če ne veste, kako prenesti knjižnice Arduino, obiščite https://www.arduino.cc/en/Guide/Libraries. Knjižnica FHT.h je bila prenesena s spletnega mesta openmusiclabs.com. Druga dva sta bila prenesena na GitHub.

20. korak: Arduino skica

Koda uporablja Fast Hartley Transform (FHT) za spreminjanje časovne domene v frekvenčno domeno. To je mogoče storiti tudi s hitro Fourierjevo transformacijo (FFT), vendar je FHT veliko hitrejši. FFT in FHT sta zelo temeljni zamisli pri obdelavi signalov in se o njih zelo zabavno učiti. Predlagam, da si sami preberete, če vas zanima. Primer kode FHT, ki sem jo skopiral s spletnega mesta Open Music Labs, je sprva oddajal amplitudo vsakega frekvenčnega polja kot logaritemski ali decibelni izhod. To sem spremenil za prikaz frekvenčnih polj na linearni lestvici. To je zato, ker je linearna lestvica boljša vizualna predstavitev tega, kako ljudje slišijo zvok. Zanka for () na koncu služi za risanje amplitude vsakega frekvenčnega polja na zaslonu LCD. Celoten spekter FHT bi zajemal vse frekvence od i = 0 do i <128. Opazili boste, da je moja zanka for () od i = 5 do i <40, to je zato, ker so frekvence, pomembne za diagnosticiranje pljučnih stanj, običajno med 150Hz in 3.5kHz, odločil sem se, da grem na približno 4kHz. To lahko prilagodite, če želite prikazati celoten frekvenčni spekter.

[Koda]

// Koda digitalnega stetoskopa

// Knjižnica Fast Hartley Transform, prenesena iz openmusiclabs

#define LIN_OUT 1 // nastavite FHT za proizvodnjo linearnega izhoda

#define LOG_OUT 0 // izklopite logaritemski izhod FHT

#define FHT_N 256 // Številka vzorca FHT

#include // vključi knjižnico FHT

#include // vključi knjižnico TFT

#include // vključi knjižnico SPI

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

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

#define rst 8 // nastavite pin za ponastavitev lcd na pin 8 arduino

TFT myScreen = TFT (cs, dc, rst); // razglasim ime zaslona TFT

void setup () {

//Serial.begin(9600);//set hitrost vzorčenja

myScreen.begin (); // inicializiramo zaslon TFT

myScreen.background (0, 0, 0); // ozadje nastavimo na črno

ADCSRA = 0xe5; // nastavite adc na način prostega teka

ADMUX = 0x40; // uporabite adc0

}

void loop () {

while (1) {// zmanjša tresenje cli (); // Prekinitev UDRE se tako upočasni na arduino1.0

for (int i = 0; i <FHT_N; i ++) {// shranimo 256 vzorcev

medtem ko (! (ADCSRA & 0x10)); // počakajte, da bo adc pripravljen

ADCSRA = 0xf5; // znova zaženite adc bajt

m = ADCL; // pridobimo bajt podatkov ADC

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

k -= 0x0200; // oblikujemo v podpisano int

k << = 6; // oblikujemo v 16b podpisano int

fht_input = k; // damo prave podatke v koše

}

fht_window (); // okence podatkov za boljši frekvenčni odziv

fht_reorder (); // Preden naredite fht, preuredite podatke

fht_run (); // obdelamo podatke v fht

fht_mag_lin (); // vzamemo izhod fhtha

sei ();

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

myScreen.stroke (255, 255, 255);

myScreen.fill (255, 255, 255);

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

}

}

[/Koda]

21. korak: Preizkusite

Preizkusite!
Preizkusite!

Uporabil sem spletni generator tonov (https://www.szynalski.com/tone-generator/), da potrdim, da koda deluje pravilno. Po potrditvi delovanja stetoskopa pritisnite do prsnega koša, globoko vdihnite in poglejte, katere frekvence so prisotne !!

Korak: Prihodnje delo

** Opomba: Sem kemik, ne inženir ali računalniški znanstvenik **. Verjetno bo prišlo do napak in izboljšav pri oblikovanju in kodi. Ob tem se mi zdi dober začetek nečesa, kar je lahko zelo koristno in poceni. Naslednje točke so prihodnje izboljšave, ki bi jih rad naredil, in upam, da jih boste nekateri tudi poskušali izboljšati!

· Naredite mobilno napravo. Nimam velikih izkušenj s procesorji ali drugimi mikrokrmilniki, vendar bi moral imeti dovolj pomnilnika za shranjevanje celotne knjižnice FHT ali morda Bluetooth.

· V kodo uvedite nekaj izračunov statistične analize. Na primer, običajno ima piskanje osnovno frekvenco enako ali večjo od 400 Hz in traja najmanj 250 ms. Rhonchi se pojavljajo pri osnovni frekvenci približno 200 Hz ali manj in trajajo najmanj 250 ms. Številni drugi pljučni zvoki so opredeljeni in kažejo na zdravstveno stanje (https://commongiant.github.io/iSonea-Physicians/assets/publications/7_ISN-charbonneau-Euro-resp-Jour-1995-1942-full.pdf). Mislim, da je to nekaj, kar je mogoče preveriti v kodi s primerjavo signala frekvenčnih polj po določenem številu ciklov skozi FHT in nato zagnati funkcijo millis (), da bi videli, koliko časa je bila prisotna, nato pa jo primerjali na dno hrupa izračuna FHT. Prepričan sem, da je to mogoče storiti!

Upam, da ste se vsi zabavali pri tem projektu in če imate kakršna koli vprašanja, komentirajte in odgovoril vam bom čim prej! Veselim se komentarjev.

Priporočena: