Kazalo:
- 1. korak: Materiali
- 2. korak: Orodja
- 3. korak: 3D tiskanje
- 4. korak: Sestavite vezje
- 5. korak: ožičenje LCD
- Korak 6: Ožičenje mikrofona/ojačevalnika
- 7. korak: ožičenje trenutnega stikala
- 8. korak: ožičenje potenciometra
- 9. korak: Ožičenje priključka za slušalke
- 10. korak: Izhod za mikrofon/ojačevalnik
- 11. korak: Izhod mikrofona/ojačevalnika se nadaljuje
- 12. korak: Komponente v ohišju
- 13. korak: Spajkanje v ohišju
- Korak 14: +5V, podaljšane žice GND
- Korak 15: Potegnite dolge žice skozi luknjo v ohišju
- Korak 16: Toplotno krčenje
- Korak 17: Zaprite ohišje
- Korak 18: Povežite se z Arduinom
- Korak 19: Arduino IDE/knjižnice
- 20. korak: Arduino skica
- 21. korak: Preizkusite
- Korak: Prihodnje delo
Video: Hitri Hartleyjev transformacijski spektralni stetoskop: 22 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:03
V tem navodilu se boste naučili izdelati spektralni stetoskop s hitro pretvorbo hartley. To lahko uporabimo za vizualizacijo zvokov srca in pljuč.
1. korak: Materiali
1,8 -palčni LCD zaslon (7,50 USD na Amazon)
Arduino Uno ali enakovredno (7,00 USD na Gearbestu)
Ojačevalnik Electret (6,95 USD na Adafruit)
100 µF kondenzator (0,79 USD)
Žica in skakalci (4,00 USD)
3,5 mm stereo priključek (1,50 USD)
Potenciometer 10kOhm (2,00 USD)
Hitro preklapljanje (1,50 USD)
2. korak: Orodja
Spajkalnik
Pištola za vroče lepilo
3D tiskalnik … ali prijatelj s 3D tiskalnikom (mogoče tudi s kartonom)
Rezalnik žice
Ogledna plošča
3. korak: 3D tiskanje
Prvi je 3D tiskanje datotek.stl, priloženih temu koraku. Obe datoteki sem natisnil z uporabo naslednjega materiala/nastavitev:
Material: PLA
Višina sloja: 0,1 mm
Debelina stene/vrha/dna: 0,8 mm
Temperatura tiskanja: 200⁰C
Temperatura postelje: 60⁰C
Podpora je omogočena pri 10%
4. korak: Sestavite vezje
Z uporabo komponent v razdelku materiali sestavite vezje. Vedno najprej sestavim vezje na ploščo, da se prepričam, da deluje pravilno, preden se dotaknem spajkalnika.
5. korak: ožičenje LCD
S pomočjo slike, priložene temu koraku, spajkajte žice na sedem od osmih nožic na LCD zaslonu. Te žice bodo dolge približno 3 čevlje, razen tal in +5V zatiči (ti morajo biti le 2-3 cm)
Korak 6: Ožičenje mikrofona/ojačevalnika
S pomočjo slike, priložene temu koraku, spajite tri žice na +5V, ozemljitveni in izhodni zatič na mikrofonu/ojačevalniku Adafruit. Ti morajo biti dolgi le 2-3 centimetre.
7. korak: ožičenje trenutnega stikala
Priključite eno 2-3-palčno žico na vsako od dveh ušes na trenutnem stikalu.
8. korak: ožičenje potenciometra
S pomočjo slike v koraku 6 spajkajte tri žice dolžine približno 2–3 palca na tri ušesa potenciometra.
9. korak: Ožičenje priključka za slušalke
Spajate tri žice na obroč, konico in rokave vtiča za slušalke. Uporabil sem vtičnico iz že ožičenega metronoma. Če ne veste, kaj so obročki, konice in rokavi, jih poiščite na Googlu, obstaja veliko dobrih slik o ožičenju stereo vtičnic.
10. korak: Izhod za mikrofon/ojačevalnik
Ko spajate žice na vhodu za mikrofon/ojačevalnik, potenciometer in slušalke, eno žico spajkajte približno tri čevlje v "zunanji" kabel mikrofonskega ojačevalnika. Ta žica bo kasneje priključena na A0 pin arduina.
11. korak: Izhod mikrofona/ojačevalnika se nadaljuje
Drugo žico spajkajte na "izhodno" žico mikrofona/ojačevalnika. To žico je treba spajkati na 100 microFarad kondenzator. Če uporabljate elektrolitski kondenzator, se prepričajte, da je pozitivna stran priključena na to žico.
12. korak: Komponente v ohišju
Ko so vse žice spajkane na sestavne dele, jih postavite na ustrezna mesta po slikah, priloženih temu koraku. Za pritrditev priključka za mikrofon in slušalke sem uporabil vroče lepilo.
13. korak: Spajkanje v ohišju
Ko so vse komponente pritrjene v ohišju, spajajte vse ozemljitvene žice skupaj. Eden mora biti iz LCD -ja, eden iz mikrofona/ojačevalnika in eden iz rokava priključka za slušalke. Spajate tudi žice +5V skupaj in eno žico iz trenutnega stikala. Spet bi moral biti eden z LCD -ja, eden iz mikrofona/ojačevalnika in eden na trenutnem stikalu.
Korak 14: +5V, podaljšane žice GND
Zdaj odrežite dva kosa žice dolžine približno 3 čevlje. Spajite enega na skupino ozemljitvenih žic, drugega pa na odprto žico na trenutnem stikalu.
Korak 15: Potegnite dolge žice skozi luknjo v ohišju
Sedaj bi morali imeti skupaj osem žic, dolgih približno 3 čevlje. Postavite jih skozi nezapolnjeno luknjo v ohišju. Oglejte si sliko, priloženo temu koraku
Korak 16: Toplotno krčenje
Ko je spajkanje končano, se prepričajte, da so izpostavljene žice pokrite. Uporabil sem toplotno skrčljivo cev, vendar tudi električni trak dobro deluje.
Korak 17: Zaprite ohišje
Vzemite polovico ohišja, ki vsebuje LCD zaslon, in ga povlecite čez drugo polovico ohišja, ki vsebuje druge komponente. Medtem ko oba kosa potisnete skupaj, ju z vročim lepilom pritrdite skupaj.
Korak 18: Povežite se z Arduinom
Osem dolgih preostalih žic je priključenih neposredno na ustrezne zatiče Arduino, opisane v shemah vezja. Prepričajte se, da vsakič, ko v vezje spajkate eno od tistih dolgih 3ft žic, na drugi konec položite kos traku, ki označuje, na kakšen pin Arduino gre!
Korak 19: Arduino IDE/knjižnice
Prenesti morate Arduino IDE. Za to skico sem uporabil tri različne knjižnice: FHT.h, SPI.h in TFT.h. Če ne veste, kako prenesti knjižnice Arduino, obiščite https://www.arduino.cc/en/Guide/Libraries. Knjižnica FHT.h je bila prenesena s spletnega mesta openmusiclabs.com. Druga dva sta bila prenesena na GitHub.
20. korak: Arduino skica
Koda uporablja Fast Hartley Transform (FHT) za spreminjanje časovne domene v frekvenčno domeno. To je mogoče storiti tudi s hitro Fourierjevo transformacijo (FFT), vendar je FHT veliko hitrejši. FFT in FHT sta zelo temeljni zamisli pri obdelavi signalov in se o njih zelo zabavno učiti. Predlagam, da si sami preberete, če vas zanima. Primer kode FHT, ki sem jo skopiral s spletnega mesta Open Music Labs, je sprva oddajal amplitudo vsakega frekvenčnega polja kot logaritemski ali decibelni izhod. To sem spremenil za prikaz frekvenčnih polj na linearni lestvici. To je zato, ker je linearna lestvica boljša vizualna predstavitev tega, kako ljudje slišijo zvok. Zanka for () na koncu služi za risanje amplitude vsakega frekvenčnega polja na zaslonu LCD. Celoten spekter FHT bi zajemal vse frekvence od i = 0 do i <128. Opazili boste, da je moja zanka for () od i = 5 do i <40, to je zato, ker so frekvence, pomembne za diagnosticiranje pljučnih stanj, običajno med 150Hz in 3.5kHz, odločil sem se, da grem na približno 4kHz. To lahko prilagodite, če želite prikazati celoten frekvenčni spekter.
[Koda]
// Koda digitalnega stetoskopa
// Knjižnica Fast Hartley Transform, prenesena iz openmusiclabs
#define LIN_OUT 1 // nastavite FHT za proizvodnjo linearnega izhoda
#define LOG_OUT 0 // izklopite logaritemski izhod FHT
#define FHT_N 256 // Številka vzorca FHT
#include // vključi knjižnico FHT
#include // vključi knjižnico TFT
#include // vključi knjižnico SPI
#define cs 10 // nastavite lcd cs pin na arduino pin 10
#define dc 9 // nastavite lcd dc pin na arduino pin 9
#define rst 8 // nastavite pin za ponastavitev lcd na pin 8 arduino
TFT myScreen = TFT (cs, dc, rst); // razglasim ime zaslona TFT
void setup () {
//Serial.begin(9600);//set hitrost vzorčenja
myScreen.begin (); // inicializiramo zaslon TFT
myScreen.background (0, 0, 0); // ozadje nastavimo na črno
ADCSRA = 0xe5; // nastavite adc na način prostega teka
ADMUX = 0x40; // uporabite adc0
}
void loop () {
while (1) {// zmanjša tresenje cli (); // Prekinitev UDRE se tako upočasni na arduino1.0
for (int i = 0; i <FHT_N; i ++) {// shranimo 256 vzorcev
medtem ko (! (ADCSRA & 0x10)); // počakajte, da bo adc pripravljen
ADCSRA = 0xf5; // znova zaženite adc bajt
m = ADCL; // pridobimo bajt podatkov ADC
j = ADCH; int k = (j << 8) | m; // oblikujemo v int
k -= 0x0200; // oblikujemo v podpisano int
k << = 6; // oblikujemo v 16b podpisano int
fht_input = k; // damo prave podatke v koše
}
fht_window (); // okence podatkov za boljši frekvenčni odziv
fht_reorder (); // Preden naredite fht, preuredite podatke
fht_run (); // obdelamo podatke v fht
fht_mag_lin (); // vzamemo izhod fhtha
sei ();
za (int i = 5; i <40; i ++) {
myScreen.stroke (255, 255, 255);
myScreen.fill (255, 255, 255);
int drawHeight = zemljevid (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);
}
}
[/Koda]
21. korak: Preizkusite
Uporabil sem spletni generator tonov (https://www.szynalski.com/tone-generator/), da potrdim, da koda deluje pravilno. Po potrditvi delovanja stetoskopa pritisnite do prsnega koša, globoko vdihnite in poglejte, katere frekvence so prisotne !!
Korak: Prihodnje delo
** Opomba: Sem kemik, ne inženir ali računalniški znanstvenik **. Verjetno bo prišlo do napak in izboljšav pri oblikovanju in kodi. Ob tem se mi zdi dober začetek nečesa, kar je lahko zelo koristno in poceni. Naslednje točke so prihodnje izboljšave, ki bi jih rad naredil, in upam, da jih boste nekateri tudi poskušali izboljšati!
· Naredite mobilno napravo. Nimam velikih izkušenj s procesorji ali drugimi mikrokrmilniki, vendar bi moral imeti dovolj pomnilnika za shranjevanje celotne knjižnice FHT ali morda Bluetooth.
· V kodo uvedite nekaj izračunov statistične analize. Na primer, običajno ima piskanje osnovno frekvenco enako ali večjo od 400 Hz in traja najmanj 250 ms. Rhonchi se pojavljajo pri osnovni frekvenci približno 200 Hz ali manj in trajajo najmanj 250 ms. Številni drugi pljučni zvoki so opredeljeni in kažejo na zdravstveno stanje (https://commongiant.github.io/iSonea-Physicians/assets/publications/7_ISN-charbonneau-Euro-resp-Jour-1995-1942-full.pdf). Mislim, da je to nekaj, kar je mogoče preveriti v kodi s primerjavo signala frekvenčnih polj po določenem številu ciklov skozi FHT in nato zagnati funkcijo millis (), da bi videli, koliko časa je bila prisotna, nato pa jo primerjali na dno hrupa izračuna FHT. Prepričan sem, da je to mogoče storiti!
Upam, da ste se vsi zabavali pri tem projektu in če imate kakršna koli vprašanja, komentirajte in odgovoril vam bom čim prej! Veselim se komentarjev.
Priporočena:
Hitri menjalnik pod 50 USD! Kazeshifter Arduino nastavljiv hitri menjalnik: 7 korakov
Hitri menjalnik pod 50 USD! Kazeshifter Arduino nastavljiv hitri menjalnik: Pozdravljeni ljubitelji super motorjev in motornih koles! Na tem navodilu vam bom povedal, kako poceni narediti svoj lastni hitri menjalnik! Za ljudi, ki so leni brati ta navodila, si oglejte moj video! Opomba: Za nekatera kolesa, ki že uporablja sistem za vbrizgavanje goriva, včasih
Imate nov Neopixel? Tukaj je hitri vodnik!: 5 korakov
Imate nov Neopixel? Tukaj je hitri vodnik !: Vem, da sem v zadnjem navodilu rekel, da bom reden, vendar nisem. No, poskusil sem, vendar nisem imel dobrih idej: voskasto prekrivanje: KABOOM!*Barvna sveča: Fissssssss … KABOOOM! ** Fantastična matematika: Zmotili smo se! Vseeno sem nazaj
Domači hitri električni avto: 7 korakov
Domači hitri električni avto: Če ste kdaj želeli poskusiti izdelati svoj električni avto, je to zelo preprost način, da iz preprostih materialov in nekaj poceni stvari iz trgovine z elektroniko izdelate hiter avtomobil. Ne boste več porabili 30 do 60 dolarjev za avtomobile RC, ko boste
Hitri in enostavni osebni računalniki na steno: 8 korakov
Hitri in enostavni osebni računalniki za stensko montažo: prihranite veliko prostora in naredite vtis na prijatelje! Z nekaj preprostimi rezanimi lesenimi kosi in listom barvnega pleksi stekla lahko računalnik hitro pritrdite na steno
Najmanjši hitri repetitor Esp 01: 6 korakov
Najmanjši hitri repetitor Esp 01: Vedno sem si želel priročen repetitor Wifi zaradi preusmerjanja posebej na različna mesta, kjer je bila namestitev repetitorja na izmenični tok glavobol, zato sem se odločil za esp 01, saj porabi nizko napetost in deluje moj powerbank za teden dni v