Satura rādītājs:

Ātrs Hārtlija transformācijas spektrālais stetoskops: 22 soļi
Ātrs Hārtlija transformācijas spektrālais stetoskops: 22 soļi
Anonim
Ātrs Hārtlija transformācijas spektrālais stetoskops
Ātrs Hārtlija transformācijas spektrālais stetoskops

Šajā pamācībā jūs uzzināsit, kā izveidot spektrālo stetoskopu, izmantojot ātro Hārtlija transformāciju. To var izmantot, lai vizualizētu sirds un plaušu skaņas.

1. solis: materiāli

1,8 collu LCD ekrāns (7,50 ASV dolāri Amazon)

Arduino Uno vai līdzvērtīgs ($ 7,00 vietnē Gearbest)

Elektreta pastiprinātājs (6,95 ASV dolāri par Adafruit)

100 µF kondensators (0,79 USD)

Stieples un džemperi (4,00 ASV dolāri)

3,5 mm stereo ligzda (1,50 ASV dolāri)

10 kOhm potenciometrs (2,00 ASV dolāri)

Mirkļa slēdzis (1,50 ASV dolāri)

2. darbība: rīki

Lodāmurs

Karstās līmes pistole

3D printeris… vai draugs ar 3D printeri (iespējams izgatavot arī ar kartonu)

Stiepļu griezējs

Maizes dēlis

3. darbība: 3D drukāšana

Pirmais ir 3D drukāt šim darbam pievienotos.stl failus. Es drukāju abus failus, izmantojot šādu materiālu/iestatījumus:

Materiāls: PLA

Slāņa augstums: 0,1 mm

Sienas/augšējās/apakšējās daļas biezums: 0,8 mm

Drukāšanas temperatūra: 200 ℃

Gultas temperatūra: 60 ℃

Atbalsts iespējots @ 10%

4. solis: izveidojiet ķēdi

Izmantojot materiālu sadaļā esošos komponentus, izveidojiet ķēdi. Pirms pieskaršanās lodāmurim es vienmēr vispirms saliku ķēdi uz maizes dēļa, lai pārliecinātos, ka tā darbojas pareizi.

5. solis: LCD vadu savienošana

LCD vadi
LCD vadi

Izmantojot šim solim pievienoto attēlu, pielodējiet vadus pie septiņām no astoņām tapām LCD ekrānā. Šo vadu garumam jābūt aptuveni 3 pēdām, izņemot zemi un +5 V tapas (tām jābūt tikai 2–3 collām)

6. darbība: mikrofona/pastiprinātāja vadu savienošana

Mikrofona/pastiprinātāja vadi
Mikrofona/pastiprinātāja vadi

Izmantojot šim solim pievienoto attēlu, pielieciet trīs vadus pie +5V, zemējuma un izejas tapām Adafruit mikrofonā/pastiprinātājā. To garumam jābūt tikai apmēram 2-3 collas.

7. solis: īslaicīga slēdža elektroinstalācija

Pievienojiet vienu 2-3 collu vadu katrai no divām momentālā slēdža cilpām.

8. solis: potenciometra elektroinstalācija

Izmantojot 6. darbības attēlu, pie potenciometra trim cilpām pielodējiet trīs vadus, kuru garums ir aptuveni 2–3 collas.

9. darbība: austiņu ligzdas vadu savienošana

Lodējiet trīs vadus pie austiņu ligzdas gredzena, uzgaļa un uzmavas. Es izmantoju domkratu no metronoma, kas jau bija pievienots vadam. Ja jūs nezināt, kas ir gredzens, uzgalis un uzmavas uzmavas, vienkārši googlejiet, un tur ir daudz labu attēlu par stereo ligzdu vadiem.

10. darbība: mikrofona/pastiprinātāja izeja

Pēc vadu lodēšanas pie mikrofona/pastiprinātāja, potenciometra un austiņu ligzdas pielodējiet vienu aptuveni trīs pēdu garu vadu līdz mikrofona pastiprinātāja "ārējam" vadam. Šis vads vēlāk tiks pievienots arduino A0 tapai.

11. darbība. Mikrofona/pastiprinātāja izeja turpinās

Lodējiet otru vadu pie mikrofona/pastiprinātāja "izejas" stieples. Šo vadu nepieciešams pielodēt līdz 100 mikroFarad kondensatoram. Ja izmantojat elektrolītisko kondensatoru, pārliecinieties, vai šim vadam ir pievienota pozitīvā puse.

12. darbība. Sastāvdaļas korpusā

Sastāvdaļas korpusā
Sastāvdaļas korpusā
Sastāvdaļas korpusā
Sastāvdaļas korpusā

Kad visi vadi ir pielodēti pie komponentiem, ievietojiet komponentus attiecīgajās vietās, ievērojot šim solim pievienotos attēlus. Es izmantoju karstu līmi, lai nostiprinātu mikrofonu un austiņu ligzdu.

13. darbība: lodēšana korpusā

Kad visas sastāvdaļas ir nostiprinātas korpusā, pielodējiet visus zemējuma vadus kopā. Tam vajadzētu būt vienam no LCD, vienam no mikrofona/pastiprinātāja un vienam no austiņu ligzdas uzmavas. Lodējiet kopā arī +5V vadus un vienu vadu no mirkļa slēdža. Atkal vajadzētu būt vienam no LCD, vienam no mikrofona/pastiprinātāja un vienam uz mirkļa slēdža.

14. solis: +5V, GND paplašinātie vadi

Tagad sagrieziet divus stieples gabalus apmēram 3 pēdu garumā. Lodējiet vienu pie zemējuma vadu kopas un otru lodējiet pie atvērtā stieples uz mirkļa slēdža.

15. solis: izvelciet garus vadus caur korpusa caurumu

Izvelciet garus vadus caur korpusa caurumu
Izvelciet garus vadus caur korpusa caurumu

Tagad jums vajadzētu būt kopā astoņiem vadiem, kuru garums ir aptuveni 3 pēdas. Ievietojiet tos caur neaizpildīto caurumu korpusā. Skatiet šim solim pievienoto attēlu

16. solis: siltuma saraušanās

Kad visa lodēšana ir pabeigta, pārliecinieties, vai atklātie vadi ir pārklāti. Es izmantoju termiski saraušanās caurules, bet arī elektriskā lente darbojas labi.

17. solis: blīvējuma korpuss

Blīvējuma korpuss
Blīvējuma korpuss
Blīvējuma korpuss
Blīvējuma korpuss

Paņemiet korpusa pusi, kurā ir LCD ekrāns, un pārvelciet to pār korpusa pusi, kurā ir pārējās sastāvdaļas. Spiežot abus gabalus kopā, karsti pielīmējiet tos, lai kopā nostiprinātu korpusu.

18. solis: izveidojiet savienojumu ar Arduino

Atlikušie astoņi garie vadi ir tieši savienoti ar attiecīgajām Arduino tapām, kas norādītas shēmas shēmās. Pārliecinieties, ka katru reizi, kad ķēdē pielodējat vienu no šiem garajiem 3 pēdu vadiem, otrā galā ievietojat lentes gabalu, norādot, uz kuru Arduino tapu tas iet!

19. solis: Arduino IDE/Bibliotēkas

Jums būs jālejupielādē Arduino IDE. Šai skicei es izmantoju trīs dažādas bibliotēkas: FHT.h, SPI.h un TFT.h. Ja jūs nezināt, kā lejupielādēt Arduino bibliotēkas, lūdzu, skatiet vietni https://www.arduino.cc/en/Guide/Libraries. FHT.h bibliotēka tika lejupielādēta no vietnes openmusiclabs.com. Pārējie divi tika lejupielādēti vietnē GitHub.

20. solis: Arduino skice

Kods izmanto ātro Hārtlija pārveidošanu (FHT), lai mainītu laika domēnu uz frekvences domēnu. To var izdarīt arī, izmantojot ātro Furjē transformāciju (FFT), taču FHT ir daudz ātrāks. FFT un FHT ir ļoti būtiskas idejas signālu apstrādē, un par tām ir ļoti jautri uzzināt. Iesaku izlasīt pašam, ja interesē, skatiet. FHT piemēra kods, ko nokopēju no Open Music Labs tīmekļa vietnes, sākotnēji izvadīja katras frekvences tvertnes amplitūdu kā logaritmisku vai decibeļu izvadi. Es to mainīju, lai izvadītu frekvenču tvertnes lineārā skalā. Tas ir tāpēc, ka lineārā skala ir labāks vizuālais attēlojums tam, kā cilvēki dzird skaņu. Cilne for () beigās ir paredzēta katras frekvences tvertnes amplitūdas zīmēšanai LCD ekrānā. Pilns FHT spektrs aptvertu visas frekvenču tvertnes no i = 0 līdz i <128. Jūs pamanīsit, ka mana for () cilpa ir no i = 5 līdz i <40, tas ir tāpēc, ka plaušu stāvokļa diagnosticēšanai svarīgās frekvences parasti ir no 150 Hz līdz 3,5 kHz, es nolēmu palielināt līdz aptuveni 4 kHz. To var pielāgot, ja vēlaties parādīt pilnu frekvenču spektru.

[kods]

// Digitālā stetoskopa kods

// Fast Hartley Transform bibliotēka, kas lejupielādēta no openmusiclabs

#define LIN_OUT 1 // iestatiet FHT, lai iegūtu lineāru izvadi

#define LOG_OUT 0 // izslēdziet FHT logaritmisko izvadi

#define FHT_N 256 // FHT parauga numurs

#include // iekļaut FHT bibliotēku

#include // iekļaut TFT bibliotēku

#include // iekļaut SPI bibliotēku

#define cs 10 // iestatiet lcd cs pin uz arduino pin 10

#define dc 9 // iestatiet lcd dc pin uz arduino pin 9

#define rst 8 // iestatiet LCD atiestatīšanas tapu uz arduino pin 8

TFT myScreen = TFT (cs, dc, rst); // deklarēt TFT ekrāna nosaukumu

void setup () {

//Serial.begin(9600);//set paraugu ņemšanas ātrums

myScreen.begin (); // inicializēt TFT ekrānu

myScreen.background (0, 0, 0); // iestatiet fonu uz melnu

ADCSRA = 0xe5; // iestatiet adc brīvās darbības režīmā

ADMUX = 0x40; // izmantojiet adc0

}

void loop () {

kamēr (1) {// samazina nervozitāti cli (); // UDRE pārtraukšana šādā veidā palēninās arduino1.0

par (int i = 0; i <FHT_N; i ++) {// saglabājiet 256 paraugus

while (! (ADCSRA & 0x10)); // pagaidiet, kamēr adc būs gatavs

ADCSRA = 0xf5; // restartējiet adc baitu

m = ADCL; // ielādēt adc datu baitu

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

k -= 0x0200; // veidojiet parakstītā int

k << = 6; // veidojiet 16b parakstītu int

fht_input = k; // ievietojiet reālus datus tvertnēs

}

fht_window (); // loga dati, lai iegūtu labāku frekvences reakciju

fht_reorder (); // pārkārtot datus pirms fht

fht_run (); // apstrādāt datus fht

fht_mag_lin (); // ņem fht izvadi

sei ();

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

myScreen.troke (255, 255, 255);

myScreen.fill (255, 255, 255);

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

}

}

[/kods]

21. solis: pārbaudiet to

Pārbaudi to!
Pārbaudi to!

Es izmantoju tiešsaistes signālu ģeneratoru (https://www.szynalski.com/tone-generator/), lai apstiprinātu, ka kods darbojas pareizi. Pēc tam, kad esat apstiprinājis, ka tas darbojas, nospiediet stetoskopa zvanu līdz krūtīm, dziļi elpojiet un redziet, kādas frekvences ir sastopamas !!

22. darbība. Nākotnes darbs

** Piezīme: Es esmu ķīmiķis, nevis inženieris vai datorzinātnieks **. Iespējams, būs kļūdas un uzlabojumi dizainā un kodā. Ņemot to vērā, es domāju, ka tas ir labs sākums kaut kam, kas galu galā var būt ļoti noderīgs un lēts. Tālāk minētās aizzīmes ir uzlabojumi nākotnē, un es ceru, ka daži no jums arī mēģinās to uzlabot!

· Padariet ierīci mobilu. Man nav plašas pieredzes ar CPU vai citiem mikrokontrolleriem, taču tai vajadzētu būt pietiekami daudz atmiņas, lai saglabātu visu FHT bibliotēku vai, iespējams, Bluetooth.

· Ievadiet kodā dažus statistiskās analīzes aprēķinus. Piemēram, parasti sēkšanas pamatfrekvence ir vienāda vai lielāka par 400 Hz un ilgst vismaz 250 ms. Rhonchi notiek ar frekvenci aptuveni 200 Hz vai mazāk un ilgst vismaz 250 ms. Daudzas citas plaušu skaņas ir noteiktas un norāda uz veselības stāvokli (https://commongiant.github.io/iSonea-Physicians/assets/publications/7_ISN-charbonneau-Euro-resp-Jour-1995-1942-full.pdf). Es domāju, ka to var pārbaudīt kodā, salīdzinot frekvenču tvertņu signālu pēc noteikta ciklu skaita caur FHT un pēc tam palaižot funkciju millis (), lai redzētu, cik ilgi tas bija klāt, un pēc tam salīdziniet to uz FHT aprēķina trokšņa grīdu. Esmu pārliecināts, ka šīs lietas var paveikt!

Es ceru, ka jums visiem bija jautri ar šo projektu, un, ja jums ir kādi jautājumi, lūdzu, komentējiet, un es atbildēšu pēc iespējas ātrāk! Ceru redzēt komentārus.

Ieteicams: