Obsah:

Rychlý Hartleyho transformační spektrální stetoskop: 22 kroků
Rychlý Hartleyho transformační spektrální stetoskop: 22 kroků

Video: Rychlý Hartleyho transformační spektrální stetoskop: 22 kroků

Video: Rychlý Hartleyho transformační spektrální stetoskop: 22 kroků
Video: Průlet vesmírem 2024, Červenec
Anonim
Rychlý Hartleyho transformační spektrální stetoskop
Rychlý Hartleyho transformační spektrální stetoskop

V tomto návodu se naučíte, jak vyrobit spektrální stetoskop pomocí rychlé Hartleyovy transformace. Toho lze využít k vizualizaci srdečních a plicních zvuků.

Krok 1: Materiály

1,8”LCD obrazovka (7,50 $ na Amazonu)

Arduino Uno nebo ekvivalent (7,00 $ na Gearbest)

Elektretový zesilovač (6,95 $ na Adafruit)

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

Drát a propojky (4,00 USD)

3,5 mm stereofonní konektor (1,50 USD)

Potenciometr 10 kOhm (2,00 USD)

Okamžitý přepínač (1,50 $)

Krok 2: Nástroje

Páječka

Pistole na horké lepidlo

3D tiskárna… nebo přítel s 3D tiskárnou (lze vyrobit i s lepenkou)

Štípačky

Prkénko

Krok 3: 3D tisk

První je 3D tisk souborů.stl připojených k tomuto kroku. Oba soubory jsem vytiskl pomocí následujícího materiálu/nastavení:

Materiál: PLA

Výška vrstvy: 0,1 mm

Tloušťka stěny/horní/dolní části: 0,8 mm

Teplota tisku: 200 ⁰C

Teplota lože: 60 ⁰C

Podpora povolena při 10%

Krok 4: Sestavte obvod

Pomocí komponent v sekci materiálů sestavte obvod. Vždy jsem nejprve spojil obvod na prkénko, abych se ujistil, že funguje správně, než se dotknu páječky.

Krok 5: Zapojení LCD

LCD zapojení
LCD zapojení

Pomocí obrázku připojeného k tomuto kroku připájejte vodiče k sedmi z osmi kolíků na obrazovce LCD. Tyto vodiče budou muset být asi 3 stopy dlouhé, s výjimkou uzemnění a +5V kolíků (ty musí mít pouze 2 až 3 palce)

Krok 6: Zapojení mikrofonu/zesilovače

Zapojení mikrofonu/zesilovače
Zapojení mikrofonu/zesilovače

Pomocí obrázku připojeného k tomuto kroku připájejte tři vodiče k pinům +5V, uzemnění a výstupu na mikrofonu/zesilovači Adafruit. Ty musí být jen asi 2-3 palce dlouhé.

Krok 7: Okamžité zapojení spínačů

Ke každému ze dvou výstupků na dočasném spínači připojte jeden 2-3 palcový vodič.

Krok 8: Zapojení potenciometru

Pomocí obrázku v kroku 6 připájejte tři dráty o délce asi 2 až 3 palce ke třem vývodům potenciometru.

Krok 9: Zapojení konektoru pro sluchátka

Připájejte tři dráty ke kroužku, špičce a očkům konektoru konektoru pro sluchátka. Použil jsem zvedák z metronomu, který už byl zapojený. Pokud nevíte, co jsou kroužky, špičky a objímky na rukávech, jednoduše si to vygooglete, existuje spousta dobrých obrázků o zapojení stereo konektorů.

Krok 10: Výstup pro mikrofon/zesilovač

Po připájení vodičů na mikrofonu/zesilovači, potenciometru a konektoru pro sluchátka připájejte jeden vodič dlouhý přibližně tři stopy na „výstupní“vodič zesilovače mikrofonu. Tento vodič bude později připojen ke kolíku A0 arduina.

Krok 11: Výstup mikrofonu/zesilovače pokračuje

Druhý vodič připájejte na „výstupní“vodič mikrofonu/zesilovače. Tento vodič je třeba připájet na kondenzátor 100 microFarad. Pokud používáte elektrolytický kondenzátor, ujistěte se, že je k tomuto vodiči připojena kladná strana.

Krok 12: Součásti v krytu

Součásti v příloze
Součásti v příloze
Součásti v příloze
Součásti v příloze

Poté, co jsou všechny vodiče připájeny na součásti, umístěte součásti na příslušná místa podle obrázků připojených k tomuto kroku. Pomocí horkého lepidla jsem zajistil konektor mikrofonu a sluchátek na místě.

Krok 13: Pájení v pouzdře

Poté, co jsou všechny součásti zajištěny v krytu, pájte všechny zemnicí vodiče dohromady. Měl by být jeden z LCD, jeden z mikrofonu/zesilovače a jeden z pouzdra konektoru pro sluchátka. Rovněž připájejte vodiče +5V k sobě a jeden vodič z momentálního spínače. Opět by měl být jeden z LCD, jeden z mikrofonu/zesilovače a jeden na momentálním přepínači.

Krok 14: +5V, GND Extended Wires

Nyní ustřihněte dva kusy drátu o délce asi 3 stopy. Jeden pájejte na shluk zemních vodičů a druhý pájejte na otevřený vodič na momentálním spínači.

Krok 15: Protáhněte dlouhé dráty otvorem v skříni

Protáhněte dlouhé dráty otvorem v skříni
Protáhněte dlouhé dráty otvorem v skříni

Nyní byste měli mít celkem osm drátů asi 3 stopy na délku. Umístěte je skrz nevyplněný otvor v krytu. Viz obrázek připojený k tomuto kroku

Krok 16: Tepelné smrštění

Po dokončení pájení se ujistěte, že jsou odkryté vodiče zakryty. Použil jsem smršťovací bužírky, ale elektrická páska funguje dobře.

Krok 17: Uzavřete kryt

Kryt těsnění
Kryt těsnění
Kryt těsnění
Kryt těsnění

Vezměte polovinu skříně obsahující obrazovku LCD a přetáhněte ji přes druhou polovinu skříně obsahující ostatní součásti. Zatímco tlačíte dva kusy k sobě, horkým lepidlem je zajistěte k sobě.

Krok 18: Připojte se k Arduinu

Zbývajících osm dlouhých vodičů je připojeno přímo k jejich příslušným pinům Arduino uvedeným ve schématech zapojení. Ujistěte se, že pokaždé, když připájíte jeden z těch dlouhých 3 stopových vodičů do obvodu, na druhý konec vložíte pásku, která indikuje, do kterého pinu Arduino jde!

Krok 19: Arduino IDE/knihovny

Budete si muset stáhnout Arduino IDE. Pro tento náčrt jsem použil tři různé knihovny: FHT.h, SPI.h a TFT.h. Pokud nevíte, jak stahovat knihovny Arduino, podívejte se na https://www.arduino.cc/en/Guide/Libraries. Knihovna FHT.h byla stažena z openmusiclabs.com. Další dva byly staženy na GitHub.

Krok 20: Skica Arduino

Kód používá Fast Hartley Transform (FHT) ke změně časové domény na frekvenční doménu. To lze také provést pomocí Fast Fourier Transform (FFT), ale FHT je mnohem rychlejší. FFT a FHT jsou velmi zásadní myšlenky při zpracování signálu a je velmi zábavné se o nich učit. Pokud máte zájem, doporučuji si něco přečíst. Ukázkový kód FHT, který jsem zkopíroval z webu Open Music Labs, původně vycházel z amplitudy každého frekvenčního zásobníku jako logaritmický nebo decibelový výstup. Změnil jsem to pro výstup frekvenčních zásobníků na lineárním měřítku. Důvodem je, že lineární stupnice je lepší vizuální reprezentací toho, jak lidé slyší zvuk. Smyčka for () na konci slouží k vykreslení amplitudy každého frekvenčního zásobníku na LCD obrazovce. Plné spektrum FHT by zahrnovalo všechny frekvenční zásobníky od i = 0 do i <128. Všimnete si, že moje smyčka for () je od i = 5 do i <40, protože frekvence důležité pro diagnostiku plicních stavů jsou obvykle mezi 150 Hz a 3,5 kHz, rozhodl jsem se jít až na asi 4 kHz. To lze upravit, pokud chcete zobrazit celé frekvenční spektrum.

[kód]

// Kód digitálního stetoskopu

// Rychlá knihovna Hartley Transform stažená z openmusiclabs

#define LIN_OUT 1 // nastavení FHT k produkci lineárního výstupu

#define LOG_OUT 0 // vypnutí logaritmického výstupu FHT

#define FHT_N 256 // číslo ukázky FHT

#include // include FHT library

#include // zahrnout knihovnu TFT

#include // zahrnout knihovnu SPI

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

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

#define rst 8 // nastavit lcd reset pin na arduino pin 8

TFT myScreen = TFT (cs, dc, rst); // deklaruje název obrazovky TFT

neplatné nastavení () {

//Serial.begin(9600);//set vzorkovací frekvence

myScreen.begin (); // inicializace obrazovky TFT

myScreen.background (0, 0, 0); // nastavení pozadí na černé

ADCSRA = 0xe5; // nastavení adc do volného provozního režimu

ADMUX = 0x40; // použijte adc0

}

prázdná smyčka () {

while (1) {// redukuje jitter cli (); // Přerušení UDRE takto zpomaluje na arduino1.0

for (int i = 0; i <FHT_N; i ++) {// uložení 256 vzorků

while (! (ADCSRA & 0x10)); // počkejte, až bude adc připraven

ADCSRA = 0xf5; // restart adc byte

m = ADCL; // načtení datového bajtu adc

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

k -= 0x0200; // formulář do podepsaného int

k << = 6; // formulář do 16b podepsaného int

fht_input = k; // vložení reálných dat do popelnic

}

fht_window (); // okno data pro lepší frekvenční odezvu

fht_reorder (); // před provedením fht přeuspořádejte data

fht_run (); // zpracovat data ve fht

fht_mag_lin (); // vezměte výstup fht

sei ();

pro (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);

}

}

[/kód]

Krok 21: Vyzkoušejte to

Vyzkoušejte to!
Vyzkoušejte to!

K potvrzení správného fungování kódu jsem použil online generátor tónů (https://www.szynalski.com/tone-generator/). Po potvrzení, že to funguje, přitlačte zvonek stetoskopu k hrudi, zhluboka se nadechněte a podívejte se, jaké frekvence jsou přítomny !!

Krok 22: Budoucí práce

** Poznámka: Jsem chemik, ne inženýr nebo počítačový vědec **. Pravděpodobně dojde k chybám a vylepšení designu a kódu. Jak již bylo řečeno, myslím si, že je to dobrý začátek něčeho, co může skončit velmi užitečným a levným. Následující odrážky jsou budoucí vylepšení, která bych chtěl provést, a doufám, že se to také někteří z vás pokusí vylepšit!

· Udělejte zařízení mobilním. S CPU nebo jinými mikrokontroléry nemám rozsáhlé zkušenosti, ale k uložení celé knihovny FHT, případně Bluetooth, by potřeboval dostatek paměti.

· Zavedení některých výpočtů statistické analýzy do kódu. Například sípání má obvykle základní frekvenci 400 Hz nebo delší a trvá alespoň 250 ms. Rhonchi se vyskytují na základní frekvenci asi 200 Hz nebo méně a trvají nejméně 250 ms. Je definováno mnoho dalších plicních zvuků a indikují zdravotní stav (https://commongiant.github.io/iSonea-Physicians/assets/publications/7_ISN-charbonneau-Euro-resp-Jour-1995-1942-full.pdf). Myslím, že je to něco, co lze v kódu zkontrolovat porovnáním signálu frekvenčních přihrádek po určitém počtu cyklů přes FHT a poté spuštěním funkce millis (), abyste zjistili, jak dlouho to bylo přítomno, a poté to porovnejte na hladinu hluku výpočtu FHT. Jsem přesvědčen, že tyto věci lze zvládnout!

Doufám, že jste se s tímto projektem všichni bavili, a pokud máte nějaké dotazy, napište je do komentářů a já vám odpovím, jakmile to bude možné! Těším se na komentáře.

Doporučuje: