Sadržaj:
- Korak 1: Materijali
- Korak 2: Alati
- Korak 3: 3D ispis
- Korak 4: Konstruirajte krug
- Korak 5: LCD ožičenje
- Korak 6: Ožičenje mikrofona/pojačala
- Korak 7: Trenutno ožičenje prekidača
- Korak 8: Ožičenje potenciometra
- Korak 9: Ožičenje priključka za slušalice
- Korak 10: Izlaz za mikrofon/pojačalo
- Korak 11: Nastavak izlaza za mikrofon/pojačalo
- Korak 12: Komponente u kućištu
- Korak 13: Lemljenje unutar kućišta
- Korak 14: +5V, GND produžene žice
- Korak 15: Provucite duge žice kroz otvor na kućištu
- Korak 16: Termoskupljanje
- Korak 17: Zatvorite kućište
- Korak 18: Povežite se s Arduinom
- Korak 19: Arduino IDE/knjižnice
- Korak 20: Arduino skica
- Korak 21: Isprobajte
- Korak 22: Budući rad
Video: Brzi Hartleyjev transformacijski spektralni stetoskop: 22 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:33
U ovom uputstvu naučit ćete kako napraviti spektralni stetoskop pomoću brze Hartley transformacije. Ovo se može koristiti za vizualizaciju zvukova srca i pluća.
Korak 1: Materijali
LCD ekran od 1,8 inča (7,50 USD na Amazonu)
Arduino Uno ili ekvivalent (7,00 USD na Gearbestu)
Pojačalo Electret (6,95 USD na Adafruit -u)
Kondenzator od 100 µF (0,79 USD)
Žica i kratkospojnici (4,00 USD)
Stereo priključak od 3,5 mm (1,50 USD)
Potenciometar od 10 kOhm (2,00 USD)
Trenutni prekidač (1,50 USD)
Korak 2: Alati
Lemilica
Pištolj za vruće ljepilo
3D pisač … ili prijatelja s 3D pisačem (moguće napraviti i s kartonom)
Rezač žice
Oglasna ploča
Korak 3: 3D ispis
Prvi je 3D ispis.stl datoteka priloženih ovom koraku. Ispisao sam obje datoteke koristeći sljedeći materijal/postavke:
Materijal: PLA
Visina sloja: 0,1 mm
Debljina zida/vrha/dna: 0,8 mm
Temperatura ispisa: 200⁰C
Temperatura kreveta: 60⁰C
Podrška omogućena @ 10%
Korak 4: Konstruirajte krug
Pomoću komponenti u odjeljku materijala sastavite krug. Uvijek sam prvo spojio krug na ploču kako bih se uvjerio da radi ispravno prije nego što dodirnem lemilicu.
Korak 5: LCD ožičenje
Koristeći sliku priloženu ovom koraku, lemite žice na sedam od osam pinova na LCD zaslonu. Ove žice moraju biti dugačke oko 3 stope, osim uzemljenja i +5V iglica (one trebaju biti samo 2-3 inča)
Korak 6: Ožičenje mikrofona/pojačala
Koristeći sliku priloženu ovom koraku, lemite tri žice na +5V, uzemljenje i izlazne pinove na mikrofonu/pojačalu Adafruit. Oni trebaju biti samo oko 2-3 cm u duljinu.
Korak 7: Trenutno ožičenje prekidača
Ožičite jednu žicu od 2-3 inča na svaku od dvije ušice na prekidaču za trenutak.
Korak 8: Ožičenje potenciometra
Koristeći sliku u koraku 6, lemite tri žice duljine 2-3 inča na tri držača potenciometra.
Korak 9: Ožičenje priključka za slušalice
Lemite tri žice na prstenje, vrh i čahure na utičnici za slušalice. Koristio sam utičnicu iz metronoma koji je već bio ožičen. Ako ne znate što su prstenovi, vrhovi i čahure, samo proguglajte, ima mnogo dobrih slika o ožičenju stereo priključaka.
Korak 10: Izlaz za mikrofon/pojačalo
Nakon lemljenja žica na mikrofonu/pojačalu, potenciometru i priključku za slušalice, lemite jednu žicu duljine oko tri stope na "vanjsku" žicu pojačala za mikrofon. Ova će žica kasnije biti spojena na A0 pin arduina.
Korak 11: Nastavak izlaza za mikrofon/pojačalo
Lemite drugu žicu na "vanjsku" žicu mikrofona/pojačala. Ova žica mora biti lemljena na kondenzator od 100 mikroFarada. Ako koristite elektrolitski kondenzator, provjerite je li pozitivna strana spojena na ovu žicu.
Korak 12: Komponente u kućištu
Nakon što su sve žice zalemljene na komponente, postavite komponente na odgovarajuća mjesta slijedeći slike priložene ovom koraku. Upotrijebio sam vruće ljepilo za pričvršćivanje priključka za mikrofon i slušalice.
Korak 13: Lemljenje unutar kućišta
Nakon što su sve komponente pričvršćene u kućište, zalemite sve žice za uzemljenje zajedno. Trebao bi biti jedan s LCD -a, jedan s mikrofona/pojačala i jedan s navlake priključka za slušalice. Također lemite žice +5V zajedno i jednu žicu s trenutnog prekidača. Opet bi trebao biti jedan s LCD -a, jedan s mikrofona/pojačala i jedan na prekidaču za trenutak.
Korak 14: +5V, GND produžene žice
Sada izrežite dva komada žice duljine oko 3 stope. Lemite jedan na skup žica za uzemljenje, a drugi na otvorenu žicu na prekidaču za trenutak.
Korak 15: Provucite duge žice kroz otvor na kućištu
Sada biste trebali imati ukupno osam žica duljine oko 3 stope. Postavite ih kroz neispunjenu rupu u kućištu. Pogledajte sliku priloženu ovom koraku
Korak 16: Termoskupljanje
Nakon što je lemljenje dovršeno, provjerite jesu li izložene žice prekrivene. Koristio sam termoskupljajuće cijevi, ali i električna traka radi dobro.
Korak 17: Zatvorite kućište
Uzmite polovicu kućišta s LCD zaslonom i gurnite je preko druge polovice kućišta koja sadrži ostale komponente. Dok gurate dva dijela zajedno, vruće ih zalijepite kako biste pričvrstili kućište.
Korak 18: Povežite se s Arduinom
Preostalih osam dugačkih žica spojene su izravno na odgovarajuće Arduino pinove navedene u shemama kruga. Uvjerite se da svaki put kada lemite jednu od onih dugih 3ft žica u krug, stavite komad trake na drugi kraj koji pokazuje na koji Arduino pin ide!
Korak 19: Arduino IDE/knjižnice
Morat ćete preuzeti Arduino IDE. Za ovu skicu koristio sam tri različite biblioteke: FHT.h, SPI.h i TFT.h. Ako ne znate kako preuzeti Arduino knjižnice, pogledajte https://www.arduino.cc/en/Guide/Libraries. Knjižnica FHT.h preuzeta je s openmusiclabs.com. Druga dva su preuzeta na GitHubu.
Korak 20: Arduino skica
Kod koristi Fast Hartley Transform (FHT) za promjenu vremenske domene u frekvencijsku domenu. To se također može učiniti pomoću Fast Fourierove transformacije (FFT), ali FHT je mnogo brži. FFT i FHT vrlo su temeljne ideje u obradi signala i vrlo ih je zabavno učiti. Predlažem da sami pročitate, ako vas zanima pogledajte. Primjer koda FHT -a koji sam kopirao s web stranice Open Music Labs u početku je izlazio amplitudu svake frekvencijske kante kao logaritamski ili decibel izlaz. Promijenio sam ovo za ispisivanje frekvencijskih polja na linearnoj ljestvici. To je zato što je linearna ljestvica bolji vizualni prikaz načina na koji ljudi čuju zvuk. Petlja for () na kraju služi za iscrtavanje amplitude svakog spremišta frekvencija na LCD zaslonu. Cijeli FHT spektar obuhvatio bi sve frekvencijske nizove od i = 0 do i <128. Primijetit ćete da je moja for () petlja od i = 5 do i <40, to je zato što su frekvencije važne za dijagnosticiranje plućnih stanja tipično između 150Hz i 3.5khz, odlučio sam se popeti na oko 4kHz. To se može prilagoditi ako želite prikazati cijeli frekvencijski spektar.
[kodirati]
// Šifra digitalnog stetoskopa
// Brza biblioteka Hartley Transform preuzeta s openmusiclabs
#define LIN_OUT 1 // postavite FHT za proizvodnju linearnog izlaza
#define LOG_OUT 0 // isključuje FHT logaritamski izlaz
#define FHT_N 256 // Broj uzorka FHT
#include // uključi biblioteku FHT
#include // uključi TFT biblioteku
#include // uključi SPI biblioteku
#define cs 10 // postavite lcd cs pin na arduino pin 10
#define dc 9 // postavite lcd dc pin na arduino pin 9
#define rst 8 // postavite pin za reset LCD -a na arduino pin 8
TFT myScreen = TFT (cs, dc, rst); // deklarirajte naziv TFT zaslona
void setup () {
//Serial.begin(9600);//postavljena brzina uzorkovanja
myScreen.begin (); // inicijalizira TFT zaslon
myScreen.background (0, 0, 0); // pozadinu postaviti na crnu
ADCSRA = 0xe5; // postavite ADC u način rada slobodnog rada
ADMUX = 0x40; // koristi adc0
}
void loop () {{100} {101}
while (1) {// smanjuje jitter cli (); // UDRE prekid na ovaj način usporava arduino1.0
for (int i = 0; i <FHT_N; i ++) {// spremanje 256 uzoraka
while (! (ADCSRA & 0x10)); // čekati da adc bude spreman
ADCSRA = 0xf5; // ponovno pokretanje adc bajta
m = ADCL; // dohvatiti ADC bajt podataka
j = ADCH; int k = (j << 8) | m; // formirati u int
k -= 0x0200; // formirati u potpisanu int
k << = 6; // formirati u 16b potpisan int
fht_input = k; // stavljamo stvarne podatke u kante
}
fht_window (); // prozire podatke radi boljeg frekvencijskog odziva
fht_reorder (); // promijenite redoslijed podataka prije nego što izvršite fht
fht_run (); // obrađujemo podatke u fht -u
fht_mag_lin (); // uzeti izlaz fhtha
sei ();
za (int i = 5; i <40; i ++) {
myScreen.stroke (255, 255, 255);
myScreen.fill (255, 255, 255);
int drawHeight = karta (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);
}
}
[/kodirati]
Korak 21: Isprobajte
Koristio sam internetski generator tonova (https://www.szynalski.com/tone-generator/) kako bih potvrdio da kôd radi ispravno. Nakon što potvrdite da radi, pritisnite zvono stetoskopa do grudi, duboko udahnite i pogledajte koje su frekvencije prisutne !!
Korak 22: Budući rad
** Napomena: Ja sam kemičar, a ne inženjer ili informatičar **. Vjerojatno će doći do pogrešaka i poboljšanja dizajna i koda. S obzirom na to, mislim da je to dobar početak za nešto što na kraju može biti vrlo korisno i jeftino. Sljedeći znakovi su buduća poboljšanja koja bih želio napraviti i nadam se da će neki od vas to pokušati poboljšati!
· Učinite uređaj mobilnim. Nemam veliko iskustvo s procesorima ili drugim mikrokontrolerima, ali bi trebalo imati dovoljno memorije za pohranu cijele FHT knjižnice na, ili eventualno Bluetooth.
· Uvedite neke izračune statističke analize u kôd. Na primjer, tipično piskanje ima temeljnu frekvenciju jednaku ili veću od 400 Hz i traje najmanje 250 ms. Rhonchi se pojavljuju na temeljnoj frekvenciji od oko 200 Hz ili manje i traju najmanje 250 ms. Mnogi drugi plućni zvukovi definirani su i ukazuju na zdravstvena stanja (https://commongiant.github.io/iSonea-Physicians/assets/publications/7_ISN-charbonneau-Euro-resp-Jour-1995-1942-full.pdf). Mislim da je to nešto što se može provjeriti u kodu usporedbom signala frekvencijskih polja nakon određenog broja ciklusa kroz FHT, a zatim pokretanjem funkcije millis () kako bi se vidjelo koliko je dugo prisutno, pa usporedbom do poda buke izračuna FHT. Uvjeren sam da se ove stvari mogu učiniti!
Nadam se da ste se svi dobro zabavili s ovim projektom, a ako imate pitanja, komentirajte, a ja ću vam odgovoriti što je prije moguće! Jedva čekam komentare.
Preporučeni:
Brzi mjenjač ispod 50 USD! Kazeshifter Arduino podesivi brzi mjenjač: 7 koraka
Brzi mjenjač ispod 50 USD! Kazeshifter Arduino podesivi brzi mjenjač: Zdravo, ljubitelji Superbikea ili motocikla! Na ovom uputstvu ću vam reći kako jeftino napraviti svoj vlastiti Quick Shifter! Za ljude koji su lijeni čitati ove upute, samo pogledajte moj video! Napomena: Za neke bicikle koji već koristi sustav ubrizgavanja goriva, ponegdje
Jednostavno napravite vlastite widgete - Brzi brojač BPM -a: 6 koraka
Jednostavno napravite vlastite widgete - Brzi brojač BPM -a: Web aplikacije su uobičajeno mjesto, ali web aplikacije koje ne zahtijevaju pristup internetu nisu. U ovom članku pokazat ću vam kako sam napravio BPM brojač na jednostavnoj HTML stranici zajedno s vanilinom javascript ( vidi ovdje). Ako se preuzme, ovaj se widget može koristiti izvanmrežno
Domaći brzi električni automobil: 7 koraka
Domaći high speed elektromobil Nema više trošenja 30 do 60 dolara na RC automobile, kad
QuickFFT: Brzi FFT za Arduino: 3 koraka
QuickFFT: FFT velike brzine za Arduino: Tipični Arduino ima ograničenu RAM i procesorsku snagu, a FFT je proces koji je zahtjevan za računanje. Za mnoge aplikacije u stvarnom vremenu jedini je zahtjev dobiti frekvenciju s maksimalnom amplitudom ili je potrebno otkriti vršne frekvencije. U jednom od
Brzi i prljavi SMD SOT tranzistorski pretvarači: 4 koraka
Brzi i prljavi SMD SOT tranzistorski pretvarači: Ponekad morate priključiti žice na tranzistor za površinsko postavljanje. Neki razlozi zbog kojih biste to htjeli učiniti su: imate ponovno položeni tranzistor koji želite koristiti, a koji se površinski montira, želite isprobati nešto na lebljenoj lebdi