Tartalomjegyzék:

Gyors Hartley -transzformációs spektrális sztetoszkóp: 22 lépés
Gyors Hartley -transzformációs spektrális sztetoszkóp: 22 lépés

Videó: Gyors Hartley -transzformációs spektrális sztetoszkóp: 22 lépés

Videó: Gyors Hartley -transzformációs spektrális sztetoszkóp: 22 lépés
Videó: Jason Momoa Reveals How Amber Heard Ruined His Life Amid His Split From Lisa Bonet 2024, Július
Anonim
Gyors Hartley transzformációs spektrális sztetoszkóp
Gyors Hartley transzformációs spektrális sztetoszkóp

Ebben az utasításban megtanulhatja, hogyan kell spektrális sztetoszkópot készíteni a gyors hartley -transzformáció segítségével. Ezzel a szív- és tüdőhangok láthatóvá tehetők.

1. lépés: Anyagok

1,8 hüvelykes LCD képernyő (7,50 USD az Amazon -on)

Arduino Uno vagy azzal egyenértékű (7,00 USD a Gearbesten)

Electret erősítő (6,95 dollár az Adafruit -on)

100 µF kondenzátor (0,79 USD)

Huzal és jumper (4,00 USD)

3,5 mm -es sztereó jack (1,50 USD)

10 kOhm potenciométer (2,00 USD)

Pillanatkapcsoló (1,50 USD)

2. lépés: Eszközök

Forrasztópáka

Ragasztópisztoly

3D nyomtató… vagy egy barátja 3D nyomtatóval (kartonból is elkészíthető)

Drótvágó

Kenyeretábla

3. lépés: 3D nyomtatás

Az első lépés az ehhez a lépéshez csatolt.stl fájlok 3D nyomtatása. Mindkét fájlt kinyomtattam a következő anyagok/beállítások használatával:

Anyaga: PLA

Rétegmagasság: 0,1 mm

Fal/felső/alsó vastagság: 0,8 mm

Nyomtatási hőmérséklet: 200 ° C

Az ágy hőmérséklete: 60 ° C

Támogatás engedélyezve @ 10%

4. lépés: Az áramkör létrehozása

Az anyagok részben található alkatrészek felhasználásával építse fel az áramkört. A forrasztópáka megérintése előtt először mindig egy kenyérlapra rakom össze az áramkört, hogy megbizonyosodjak arról, hogy megfelelően működik -e.

5. lépés: LCD bekötés

LCD huzalozás
LCD huzalozás

Az ehhez a lépéshez mellékelt ábra segítségével forrasztja a vezetékeket az LCD -képernyő nyolc tűjéből hétig. Ezeknek a vezetékeknek körülbelül 3 láb hosszúnak kell lenniük, kivéve a földet és a +5 V-os csapokat (ezeknek csak 2-3 hüvelyknek kell lenniük)

6. lépés: A mikrofon/erősítő bekötése

Mikrofon/erősítő bekötése
Mikrofon/erősítő bekötése

Az ehhez a lépéshez csatolt ábra segítségével forrasztjon három vezetéket az Adafruit mikrofon/erősítő +5V, földelő és kimeneti csapjaihoz. Ezeknek csak körülbelül 2-3 hüvelyk hosszúságúnak kell lenniük.

7. lépés: Pillanatkapcsoló bekötése

Csatlakoztasson egy 2-3 hüvelykes vezetéket a pillanatkapcsoló két füléhez.

8. lépés: A potenciométer bekötése

A 6. lépésben látható ábra segítségével forrasztjon három, körülbelül 2-3 hüvelyk hosszú vezetéket a potenciométer három füléhez.

9. lépés: Fejhallgató -csatlakozó bekötése

Forrasztjon három vezetéket a fejhallgató -csatlakozó gyűrűjéhez, hegyéhez és hüvelyfüléhez. Egy jackot használtam egy már bekötött metronómból. Ha nem tudja, mi a gyűrű, a hegy és a hüvely füle, csak google -olja, hogy sok jó kép található a sztereó jack csatlakozókról.

10. lépés: Mikrofon/erősítő kimenet

A mikrofon/erősítő, a potenciométer és a fejhallgató -csatlakozó vezetékeinek forrasztása után forrasztjon egy körülbelül három láb hosszú vezetéket a mikrofonerősítő "kimeneti" vezetékéhez. Ezt a vezetéket később az arduino A0 érintkezőjéhez kell csatlakoztatni.

11. lépés: A mikrofon/erősítő kimenete folytatódik

Forrasztjon egy második vezetéket a mikrofon/erősítő "kimeneti" vezetékéhez. Ezt a vezetéket 100 mikroFarad kondenzátorra kell forrasztani. Ha elektrolit kondenzátort használ, győződjön meg arról, hogy a pozitív oldal csatlakozik ehhez a vezetékhez.

12. lépés: Alkatrészek a házban

Alkatrészek a házban
Alkatrészek a házban
Alkatrészek a házban
Alkatrészek a házban

Miután az összes vezetéket az alkatrészekre forrasztotta, helyezze az alkatrészeket a megfelelő helyre az ehhez a lépéshez mellékelt ábrák szerint. Forró ragasztóval rögzítettem a mikrofont és a fejhallgató -csatlakozót.

13. lépés: Házon belüli forrasztás

Miután az összes alkatrészt rögzítette a házban, forrasztja össze az összes földelővezetéket. Egy legyen az LCD -ről, egy a mikrofonról/erősítőről és egy a fejhallgató -csatlakozó hüvelyéről. Forrasztja össze a +5V vezetékeket és a vezetéket a pillanatkapcsolóból. Ismét legyen egy az LCD -ről, egy a mikrofonról/erősítőről és egy a pillanatkapcsolóról.

14. lépés: +5V, GND kiterjesztett vezetékek

Most vágjon két darab drótot körülbelül 3 láb hosszúságban. Az egyiket a földelővezetékek csoportjához forrasztja, a másikat pedig a pillanatkapcsoló nyitott vezetékéhez.

15. lépés: Csúsztassa át a hosszú vezetékeket a szekrény lyukán

Csúsztassa át a hosszú vezetékeket a szekrény lyukán
Csúsztassa át a hosszú vezetékeket a szekrény lyukán

Most összesen nyolc vezetéknek kell lennie, körülbelül 3 láb hosszú. Helyezze ezeket a burkolat kitöltetlen lyukán keresztül. Lásd a lépéshez csatolt ábrát

16. lépés: Hőzsugorodás

Miután minden forrasztás befejeződött, győződjön meg arról, hogy a szabad vezetékeket eltakarja. Én zsugorcsövet használtam, de az elektromos szalag is jól működik.

17. lépés: Tömítésház

Tömítésház
Tömítésház
Tömítésház
Tömítésház

Fogja meg a ház felét, amely tartalmazza az LCD -képernyőt, és csúsztassa át a burkolat másik felére, amely tartalmazza a többi alkatrészt. Miközben a két darabot összenyomja, forró ragasztóval rögzítse a házat.

18. lépés: Csatlakozzon az Arduino -hoz

A fennmaradó nyolc hosszú vezeték közvetlenül az áramköri rajzukban ismertetett Arduino csapokhoz van csatlakoztatva. Győződjön meg arról, hogy minden alkalommal, amikor az egyik hosszú, 3 láb hosszú vezetékét beforrasztja az áramkörbe, tegyen egy darab szalagot a másik végére, jelezve, hogy az Arduino csap milyen irányba megy!

19. lépés: Arduino IDE/Könyvtárak

Le kell töltenie az Arduino IDE -t. Ehhez a vázlathoz három különböző könyvtárat használtam: FHT.h, SPI.h és TFT.h. Ha nem tudja, hogyan töltse le az Arduino könyvtárakat, kérjük, olvassa el a https://www.arduino.cc/en/Guide/Libraries oldalt. Az FHT.h könyvtárat az openmusiclabs.com oldalról töltötték le. A másik kettőt a GitHub -ról töltötték le.

20. lépés: Arduino vázlat

A kód a Fast Hartley Transform (FHT) segítségével változtatja meg az időtartományt frekvenciatartományra. Ezt meg lehet tenni a gyors Fourier -transzformáció (FFT) használatával is, de az FHT sokkal gyorsabb. Az FFT és az FHT nagyon alapvető ötletek a jelfeldolgozásban, és nagyon szórakoztató tanulni. Javaslom, hogy olvasson el valamit, ha érdekli, nézze meg. Az Open Music Labs weboldalról másolt FHT példakód kezdetben minden frekvenciatartomány amplitúdóját logaritmikus vagy decibel kimenetként adta ki. Ezt úgy változtattam, hogy a frekvenciatartályokat lineáris skálán adjam ki. Ennek az az oka, hogy a lineáris skála jobb vizuális ábrázolása annak, hogy az emberek hogyan hallják a hangot. A végén található for () hurok az egyes frekvenciatartályok amplitúdójának rajzolásához szolgál az LCD képernyőn. A teljes FHT spektrum magában foglalja az összes frekvenciatartályt i = 0 és i <128 között. Észre fogja venni, hogy a for () ciklusom i = 5 és i <40 között van, mert a tüdőbetegségek diagnosztizálásához fontos frekvenciák jellemzően 150 Hz és 3,5 kHz között vannak, úgy döntöttem, hogy felmegyek körülbelül 4 kHz -re. Ez beállítható, ha a teljes frekvencia spektrumot szeretné megjeleníteni.

[kód]

// Digitális sztetoszkóp kód

// Gyors Hartley Transform könyvtár letöltve az openmusiclabs oldalról

#define LIN_OUT 1 // az FHT beállítása lineáris kimenet előállítására

#define LOG_OUT 0 // kapcsolja ki az FHT logaritmikus kimenetet

#define FHT_N 256 // FHT minta száma

#include // tartalmazza az FHT könyvtárat

#include // tartalmazza a TFT könyvtárat

#include // tartalmazza az SPI könyvtárat

#define cs 10 // állítsa az lcd cs tűt az arduino pin 10 -re

#define dc 9 // állítsa az lcd dc pin -t arduino 9 -es pin -re

#define rst 8 // állítsa az lcd reset pin -t az arduino 8. pin -re

TFT myScreen = TFT (cs, dc, rst); // deklarálja a TFT képernyő nevét

void setup () {

//Serial.begin(9600);// set mintavételi arány

myScreen.begin (); // a TFT képernyő inicializálása

myScreen.background (0, 0, 0); // a háttér beállítása fekete

ADCSRA = 0xe5; // állítsa az adc -t szabad futási módba

ADMUX = 0x40; // használja az adc0 -t

}

void loop () {

while (1) {// csökkenti a jitter cli (); // Az UDRE megszakítás így lelassul az arduino1.0 -n

for (int i = 0; i <FHT_N; i ++) {// 256 minta mentése

while (! (ADCSRA & 0x10)); // várja meg, amíg az adc készen áll

ADCSRA = 0xf5; // indítsa újra az adc bájtot

m = ADCL; // adc adatbájt lekérése

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

k -= 0x0200; // aláírt int

k << = 6; // 16b aláírt int

fht_input = k; // valós adatokat tegyen a kukákba

}

fht_window (); // az adatok ablakosítása a jobb frekvenciaválasz érdekében

fht_reorder (); // rendezze át az adatokat az fht végrehajtása előtt

fht_run (); // az adatok feldolgozása az fht -ben

fht_mag_lin (); // vegye ki az fht kimenetét

sei ();

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

myScreen.stroke (255, 255, 255);

myScreen.fill (255, 255, 255);

int drawHeight = térkép (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);

}

}

[/kód]

21. lépés: Teszteld

Teszteld ki!
Teszteld ki!

Egy online hanggenerátort (https://www.szynalski.com/tone-generator/) használtam annak megerősítésére, hogy a kód megfelelően működik. Miután megerősítette, hogy működik, nyomja meg a sztetoszkóp csengőjét a mellkasához, vegyen mély lélegzetet, és nézze meg, milyen frekvenciák vannak jelen !!

22. lépés: Jövőbeli munka

** Megjegyzés: Vegyész vagyok, nem mérnök vagy informatikus **. Valószínűleg hibák és fejlesztések lesznek a kialakításban és a kódban. Ennek ellenére azt gondolom, hogy ez egy jó kezdet valaminek, ami végül nagyon hasznos és olcsó lehet. Az alábbi golyók a jövőbeni fejlesztések, amelyeket szeretnék végrehajtani, és remélem, néhányan közületek is megpróbálnak javítani rajta!

· Mozgassa a készüléket. Nincs nagy tapasztalatom a CPU -kkal vagy más mikrovezérlőkkel kapcsolatban, de elegendő memóriával kell rendelkeznie, hogy a teljes FHT könyvtárat vagy esetleg Bluetooth -on tárolja.

· Vigyen be néhány statisztikai elemzési számítást a kódba. Például tipikusan a zihálás alapfrekvenciája egyenlő vagy nagyobb, mint 400 Hz, és legalább 250 ms -ig tart. A Rhonchi körülbelül 200 Hz vagy ennél kisebb frekvencián fordul elő, és legalább 250 ms -ig tart. Sok más tüdőhang definiált és egészségügyi állapotokra utal (https://commongiant.github.io/iSonea-Physicians/assets/publications/7_ISN-charbonneau-Euro-resp-Jour-1995-1942-full.pdf). Azt hiszem, ezt ellenőrizni lehet a kódban úgy, hogy összehasonlítjuk a frekvenciatartályok jelét bizonyos számú ciklus után az FHT -n, majd futtatjuk a millis () függvényt, hogy lássuk, mennyi ideig volt jelen, majd összehasonlítjuk az FHT számítás zajszintjéhez. Bízom benne, hogy ezek a dolgok megvalósíthatók!

Remélem, mindannyian jól éreztétek magatokat ezzel a projekttel, és ha bármilyen kérdése van, írjon megjegyzést, és amint tudok, válaszolok! Várom a kommenteket.

Ajánlott: