Talaan ng mga Nilalaman:

Mabilis na Hartley Transform Spectral Stethoscope: 22 Hakbang
Mabilis na Hartley Transform Spectral Stethoscope: 22 Hakbang

Video: Mabilis na Hartley Transform Spectral Stethoscope: 22 Hakbang

Video: Mabilis na Hartley Transform Spectral Stethoscope: 22 Hakbang
Video: OMG! HERLENE HIPON naiyak subrang pangit biglang gumanda #herlenehipon #missgrandphilippines 2024, Hulyo
Anonim
Mabilis na Hartley Transform Spectral Stethoscope
Mabilis na Hartley Transform Spectral Stethoscope

Sa itinuturo na ito matututunan mo kung paano gumawa ng isang spectral stethoscope gamit ang mabilis na hartley transform. Maaari itong magamit upang mailarawan ang tunog ng puso at baga.

Hakbang 1: Mga Kagamitan

1.8 LCD Screen ($ 7.50 sa Amazon)

Arduino Uno o Katumbas ($ 7.00 sa Gearbest)

Electret Amplifier ($ 6.95 sa Adafruit)

100 µF Capacitor ($ 0.79)

Mga Wire at Jumper ($ 4.00)

3.5mm Stereo Jack ($ 1.50)

10kOhm Potentiometer ($ 2.00)

Sandali na Lumipat ($ 1.50)

Hakbang 2: Mga tool

Panghinang

Mainit na glue GUN

3D Printer… o isang kaibigan na may 3D printer (Posibleng gawin din sa karton)

Pamutol ng Wire

Breadboard

Hakbang 3: Pag-print sa 3D

Ang una ay upang i-print ng 3D ang.stl na mga file na nakakabit sa hakbang na ito. Nai-print ko ang parehong mga file gamit ang sumusunod na materyal / setting:

Materyal: PLA

Taas ng Layer: 0.1mm

Kapal ng Wall / Top / Bottom: 0.8mm

Temperatura sa Pag-print: 200⁰C

Temperatura ng Kama: 60⁰C

Pinagana ang Suporta @ 10%

Hakbang 4: Bumuo ng Circuit

Gamit ang mga sangkap sa seksyon ng mga materyales, buuin ang circuit. Palagi kong pinagsasama ang circuit sa isang breadboard muna upang matiyak na gumagana ito nang maayos bago hawakan ang panghinang na bakal.

Hakbang 5: LCD Mga Kable

Kable ng LCD
Kable ng LCD

Gamit ang figure na nakakabit sa hakbang na ito, ang mga wire ng panghinang sa pito sa walong mga pin sa LCD screen. Ang mga wire na ito ay kailangang humigit-kumulang na 3 talampakan ang haba, maliban sa lupa at + 5V na mga pin (kailangan lamang ng 2-3 pulgada)

Hakbang 6: Mga Kable ng Mic / Amplifier

Mga Kable ng Mic / Amplifier
Mga Kable ng Mic / Amplifier

Gamit ang figure na nakakabit sa hakbang na ito solder ng tatlong mga wire sa + 5V, Ground, at Out pin sa Adafruit microphone / amplifier. Kailangan lamang ang mga ito ng halos 2-3 pulgada ang haba.

Hakbang 7: Mga Kable ng Switch ng Sandali

I-wire ang isang 2-3 pulgadang wire sa bawat isa sa dalawang lug sa panandalian na switch.

Hakbang 8: Mga Kable ng Potensyomiter

Gamit ang pigura sa hakbang 6, maghinang ng tatlong mga wire na halos 2-3 pulgada ang haba sa tatlong lugs ng potentiometer.

Hakbang 9: Mga Kable ng Jack ng Headphone

Naghinang ng tatlong mga wire sa singsing, tip, at mga manggas ng manggas ng headphone jack. Gumamit ako ng isang jack mula sa isang metronome na naka-wire na. Kung hindi mo alam kung ano ang singsing, tip, at mga manggas sa manggas, i-google mo lang ito maraming mga magagandang imahe tungkol sa mga kable na stereo jack.

Hakbang 10: Output ng Mikropono / Amplifier

Matapos ang paghihinang ng mga wire sa mic / amp, potentiometer, at headphone jack, maghinang ng isang kawad na halos tatlong talampakan ang haba sa "labas" na kawad ng microphone amplifier. Ang kawad na ito ay makakonekta sa ibang pagkakataon sa A0 pin ng arduino.

Hakbang 11: Nagpapatuloy ang Output ng Mikropono / Amplifier

Maghinang ng pangalawang kawad sa "labas" na kawad ng mic / amplifier. Ang wire na ito ay kailangang solder sa isang 100 microFarad capacitor. Kung gumagamit ka ng isang electrolytic capacitor, tiyaking ang positibong bahagi ay konektado sa wire na ito.

Hakbang 12: Mga Bahagi sa Enclosure

Mga Bahagi sa Enclosure
Mga Bahagi sa Enclosure
Mga Bahagi sa Enclosure
Mga Bahagi sa Enclosure

Matapos ang lahat ng mga wire ay na-solder sa mga bahagi, ilagay ang mga bahagi doon sa kani-kanilang mga lugar na sumusunod sa mga figure na naka-attach sa hakbang na ito. Gumamit ako ng mainit na pandikit upang ma-secure ang mikropono at headphone jack sa lugar.

Hakbang 13: In-Enclosure-Soldering

Matapos ang lahat ng mga bahagi ay na-secure sa enclosure, maghinang ang lahat ng mga ground wires na magkasama. Dapat mayroong isa mula sa LCD, isa mula sa mic / amp, at isa mula sa manggas ng headphone jack. Maghinang din ng + 5V na mga wire nang magkasama at isang kawad mula sa panandaliang paglipat. Muli dapat mayroong isa mula sa LCD, isa mula sa mic / amplifier, at isa sa pansamantalang switch.

Hakbang 14: + 5V, GND Extended Wires

Gupitin ngayon ang dalawang piraso ng kawad na halos 3 talampakan ang haba. Ang isang panghinang sa kumpol ng mga wire sa lupa at panghinang ang iba pa sa bukas na kawad sa pansamantalang switch.

Hakbang 15: I-slip ang Long Wires Sa Pamamagitan ng Horn ng Enclosure

I-slip ang Long Wires Sa Pamamagitan ng Horn ng Enclosure
I-slip ang Long Wires Sa Pamamagitan ng Horn ng Enclosure

Ngayon, dapat ay mayroon kang isang kabuuang walong wires na halos 3 talampakan ang haba. Ilagay ang mga ito sa pamamagitan ng hindi napunan na butas sa enclosure. Tingnan ang figure na naka-attach sa hakbang na ito

Hakbang 16: Heat Shrink

Matapos makumpleto ang lahat ng paghihinang, siguraduhing natakpan ang mga nakalantad na mga wire. Gumamit ako ng heat shrink tubing, ngunit gumagana rin ang electrical tape.

Hakbang 17: Enclosure ng Seal

Enclosure ng Seal
Enclosure ng Seal
Enclosure ng Seal
Enclosure ng Seal

Kunin ang kalahati ng enclosure na naglalaman ng LCD screen at i-slip ito sa kabilang kalahati ng enclosure na naglalaman ng iba pang mga bahagi. Habang itinutulak ang dalawang piraso, isama ang mainit na pandikit upang mai-secure ang enclosure.

Hakbang 18: Kumonekta sa Arduino

Ang walong, mahaba, natitirang mga wires ay konektado nang direkta sa kani-kanilang mga pin ng Arduino na nakabalangkas sa mga circuit scheme. Siguraduhin na sa tuwing maghinang ka ng isa sa mga mahabang 3ft wires na iyon sa circuit na inilalagay mo ang isang piraso ng tape sa kabilang dulo na nagpapahiwatig kung ano ang pinupuntahan ng Arduino na ito!

Hakbang 19: Arduino IDE / Mga Aklatan

Kakailanganin mong i-download ang Arduino IDE. Para sa sketch na ito, gumamit ako ng tatlong magkakaibang aklatan: FHT.h, SPI.h, at TFT.h. Kung hindi mo alam kung paano mag-download ng mga aklatan ng Arduino, mangyaring tingnan ang https://www.arduino.cc/en/Guide/Libraries. Ang library ng FHT.h ay na-download mula sa openmusiclabs.com. Ang iba pang dalawa ay na-download sa GitHub.

Hakbang 20: Arduino Sketch

Gumagamit ang code ng Fast Hartley Transform (FHT) upang baguhin ang time domain sa isang domain ng dalas. Maaari rin itong magawa gamit ang Fast Fourier Transform (FFT), ngunit ang FHT ay mas mabilis. Ang FFT at FHT ay napakahalagang mga ideya sa pagproseso ng signal at napakasayang malaman tungkol sa. Iminumungkahi kong gawin ang ilang pagbabasa ng iyong sarili, kung interesado kang tingnan. Ang halimbawang code ng FHT na kinopya ko mula sa website ng Open Music Labs ay unang naglalabas ng amplitude ng bawat dalas ng dalas bilang isang logarithmic o decibel output. Binago ko ito upang maipalabas ang mga dalas ng dalas sa isang linear scale. Ito ay dahil ang linear scale ay isang mas mahusay na visual na representasyon ng kung paano marinig ng mga tao ang tunog. Ang para sa () loop sa dulo ay para sa pagguhit ng amplitude ng bawat dalas ng dalas sa LCD screen. Saklaw ng buong FHT spectrum ang lahat ng mga bin ng dalas mula i = 0 hanggang i <128. Mapapansin mo na ang aking para sa () loop ay mula sa i = 5 hanggang i <40, ito ay dahil ang mga frequency na mahalaga para sa pag-diagnose ng mga kondisyon ng baga ay karaniwang nasa pagitan ng 150Hz at 3.5khz, nagpasya akong umakyat hanggang sa 4kHz. Maaaring iakma iyon kung nais mong ipakita ang buong spectrum ng dalas.

[code]

// Digital Stethoscope Code

// Na-download ang library ng Mabilis na Hartley Transform mula sa openmusiclabs

# tukuyin ang LIN_OUT 1 // itakda ang FHT upang makabuo ng linear output

#define LOG_OUT 0 // patayin ang output ng logaritmic ng FHT

# tukuyin ang FHT_N 256 // FHT sample na numero

# isama // isama ang FHT library

# isama // isama ang TFT library

# isama // isama ang SPI library

#define cs 10 // itakda ang lcd cs pin sa arduino pin 10

#define dc 9 // itakda ang lcd dc pin sa arduino pin 9

#define rst 8 // itakda ang lcd reset pin sa arduino pin 8

TFT myScreen = TFT (cs, dc, rst); // ideklara ang pangalan ng TFT screen

walang bisa ang pag-setup () {

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

myScreen.begin (); // ipasimula ang TFT screen

myScreen.background (0, 0, 0); // itakda ang background sa itim

ADCSRA = 0xe5; // itakda ang adc sa libreng running mode

ADMUX = 0x40; // use adc0

}

void loop () {

habang (1) {// binabawasan ang jitter sij (); // UDRE makagambala ay nagpapabagal sa ganitong paraan sa arduino1.0

para sa (int i = 0; i <FHT_N; i ++) {// makatipid ng 256 na mga sample

habang (! (ADCSRA & 0x10)); // hintaying maging handa ang adc

ADCSRA = 0xf5; // restart adc byte

m = ADCL; // fetch adc data byte

j = ADCH; int k = (j << 8) | m; // form into an int

k - = 0x0200; // form sa isang naka-sign int

k << = 6; // form sa isang 16b sign int

fht_input = k; // maglagay ng totoong data sa mga bin

}

fht_window (); // window ang data para sa mas mahusay na tugon sa dalas

fht_reorder (); // muling ayusin ang data bago gawin ang fht

fht_run (); // iproseso ang data sa fht

fht_mag_lin (); // kunin ang output ng fht

sei ();

para sa (int i = 5; i <40; i ++) {

myScreen.stroke (255, 255, 255);

myScreen.fill (255, 255, 255);

int drawHeight = mapa (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]

Hakbang 21: Subukan Ito

Subukan Ito!
Subukan Ito!

Gumamit ako ng isang online tone generator (https://www.szynalski.com/tone-generator/) upang kumpirmahing gumagana nang maayos ang code. Matapos kumpirmahing gumagana ito, pindutin ang kampanilya ng stethoscope hanggang sa iyong dibdib, huminga ng malalim at tingnan kung anong mga frequency ang naroroon !!

Hakbang 22: Trabaho sa Hinaharap

** Tandaan: Ako ay isang chemist, hindi isang engineer o computer scientist **. Malamang may mga pagkakamali at pagpapabuti sa disenyo at code. Sinabi na, sa palagay ko ito ay isang mahusay na pagsisimula sa isang bagay na maaaring magtapos sa pagiging napaka kapaki-pakinabang at hindi magastos. Ang mga sumusunod na bala ay mga pagpapabuti sa hinaharap na nais kong gawin at sana ay subukan din ng ilan sa inyo na pagbutihin ito!

· Gawing mobile ang aparato. Wala akong malawak na karanasan sa mga CPU o iba pang mga microcontroller, ngunit kakailanganin itong magkaroon ng sapat na memorya upang maiimbak ang buong library ng FHT, o posibleng Bluetooth.

· Ipakilala ang ilang mga kalkulasyon ng pagsusuri sa istatistika sa code. Halimbawa, karaniwang ang isang wheeze ay may isang pangunahing dalas na pantay o mas malaki sa 400 Hz at tumatagal ng hindi bababa sa 250 ms. Ang Rhonchi ay nangyayari sa isang pangunahing dalas ng tungkol sa 200 Hz o mas mababa at tumatagal ng hindi bababa sa 250 ms. Maraming iba pang mga tunog ng baga ay tinukoy at nagpapahiwatig ng mga kondisyon sa kalusugan (https://commongiant.github.io/iSonea-Physicians/assets/publications/7_ISN-charbonneau-Euro-resp-Jour-1995-1942-full.pdf). Sa palagay ko iyon ay isang bagay na maaaring suriin para sa code sa pamamagitan ng paghahambing ng signal ng mga dalas ng dalas pagkatapos ng isang tiyak na bilang ng mga pag-ikot sa pamamagitan ng FHT at pagkatapos ay patakbuhin ang millis () na pag-andar upang makita kung gaano katagal ito naroroon, pagkatapos ihambing ito sa sahig ng ingay ng pagkalkula ng FHT. Sigurado ako na magagawa ang mga bagay na ito!

Umaasa ako na masaya kayong lahat sa proyektong ito at kung mayroon kang anumang mga katanungan mangyaring magbigay ng puna at tutugon ako sa lalong madaling panahon! Inaasahan kong makakita ng mga komento.

Inirerekumendang: