Cuprins:
- Pasul 1: Materiale
- Pasul 2: Instrumente
- Pasul 3: Imprimare 3D
- Pasul 4: Construiți circuitul
- Pasul 5: Cablare LCD
- Pasul 6: Cablare microfon / amplificator
- Pasul 7: Cablarea comutatorului momentan
- Pasul 8: Cablarea potențiometrului
- Pasul 9: Cablarea mufei căștilor
- Pasul 10: Ieșire microfon / amplificator
- Pasul 11: Ieșire microfon / amplificator continuată
- Pasul 12: Componente din incintă
- Pasul 13: lipire în incintă
- Pasul 14: + 5V, fire extinse GND
- Pasul 15: Glisați firele lungi prin orificiul carcasei
- Pasul 16: Reducerea căldurii
- Pasul 17: Sigilați incinta
- Pasul 18: Conectați-vă la Arduino
- Pasul 19: Arduino IDE / Biblioteci
- Pasul 20: Arduino Sketch
- Pasul 21: Testează-l
- Pasul 22: Munca viitoare
Video: Stetoscop spectral rapid transformat Hartley: 22 de pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
În acest instructiv, veți învăța cum să faceți un stetoscop spectral folosind transformarea rapidă Hartley. Aceasta poate fi utilizată pentru a vizualiza sunetele inimii și ale plămânilor.
Pasul 1: Materiale
Ecran LCD de 1,8 (7,50 USD pe Amazon)
Arduino Uno sau echivalent (7,00 USD pe Gearbest)
Amplificator Electret (6,95 dolari pe Adafruit)
Condensator 100 µF (0,79 USD)
Sârmă și jumperi (4,00 USD)
Jack stereo de 3,5 mm (1,50 USD)
Potențiometru 10kOhm (2,00 USD)
Comutator momentan (1,50 USD)
Pasul 2: Instrumente
Ciocan de lipit
Hot Glue Gun
Imprimantă 3D … sau un prieten cu o imprimantă 3D (Posibil de făcut și cu carton)
Cleste de sarma
Pană de pâine
Pasul 3: Imprimare 3D
Primul este să imprimați 3D fișierele.stl atașate acestui pas. Am imprimat ambele fișiere folosind următoarele materiale / setări:
Material: PLA
Înălțimea stratului: 0,1 mm
Grosimea peretelui / superior / inferior: 0,8 mm
Temperatura de imprimare: 200⁰C
Temperatura patului: 60⁰C
Suport activat @ 10%
Pasul 4: Construiți circuitul
Utilizând componentele din secțiunea materiale, construiți circuitul. Am pus întotdeauna circuitul împreună pe o placă pentru a mă asigura că funcționează corect înainte de a atinge lipitorul.
Pasul 5: Cablare LCD
Folosind figura atașată la acest pas, lipiți firele la șapte din cei opt pini de pe ecranul LCD. Aceste fire trebuie să aibă o lungime de aproximativ 3 picioare, cu excepția solului și a pinilor de + 5V (aceștia trebuie să aibă doar 2-3 inci)
Pasul 6: Cablare microfon / amplificator
Folosind figura atașată la acest pas, lipiți trei fire la pinii + 5V, la masă și la ieșire de pe microfonul / amplificatorul Adafruit. Acestea trebuie doar să aibă aproximativ 2-3 inci în lungime.
Pasul 7: Cablarea comutatorului momentan
Sârmați un fir de 2-3 inci la fiecare dintre cele două urechi de pe comutatorul momentan.
Pasul 8: Cablarea potențiometrului
Folosind figura din pasul 6, lipiți trei fire de aproximativ 2-3 inci în lungime cu cele trei picioare ale potențiometrului.
Pasul 9: Cablarea mufei căștilor
Lipiți trei fire la inelul, vârful și manșoanele mufei mufei pentru căști. Am folosit un jack dintr-un metronom care era deja cablat. Dacă nu știți care sunt inelul, vârful și manșoanele, doar căutați-l pe Google, există o mulțime de imagini bune despre cablurile stereo jack.
Pasul 10: Ieșire microfon / amplificator
După lipirea firelor de pe microfonul / amplificatorul, potențiometrul și mufa pentru căști, lipiți un fir de aproximativ trei picioare în lungime cu firul „afară” al amplificatorului de microfon. Acest fir va fi ulterior conectat la pinul A0 al arduino-ului.
Pasul 11: Ieșire microfon / amplificator continuată
Lipiți un al doilea fir la firul "out" al microfonului / amplificatorului. Acest fir trebuie lipit pe un condensator de 100 microFarad. Dacă utilizați un condensator electrolitic, asigurați-vă că partea pozitivă este conectată la acest fir.
Pasul 12: Componente din incintă
După ce toate firele sunt lipite pe componente, așezați componentele în locurile respective, urmând figurile atașate la acest pas. Am folosit lipici fierbinte pentru a fixa microfonul și mufa pentru căști în poziție.
Pasul 13: lipire în incintă
După ce toate componentele sunt fixate în carcasă, lipiți împreună toate firele de la sol. Ar trebui să existe unul de pe ecranul LCD, unul de la microfon / amplificator și unul de la manșonul mufei pentru căști. De asemenea, lipiți firele + 5V împreună și un fir de la comutatorul momentan. Din nou, ar trebui să existe unul de pe ecranul LCD, unul de la microfon / amplificator și unul de pe comutatorul momentan.
Pasul 14: + 5V, fire extinse GND
Acum tăiați două bucăți de sârmă de aproximativ 3 metri lungime. Lipiți unul pe grupul de fire de masă și lipiți celălalt pe firul deschis de pe comutatorul momentan.
Pasul 15: Glisați firele lungi prin orificiul carcasei
Acum, ar trebui să aveți în total opt fire de aproximativ 3 metri lungime. Plasați-le prin orificiul neumplut din incintă. Vedeți figura atașată acestui pas
Pasul 16: Reducerea căldurii
După terminarea lipirii, asigurați-vă că firele expuse sunt acoperite. Am folosit tuburi termocontractabile, dar și banda electrică funcționează bine.
Pasul 17: Sigilați incinta
Luați jumătatea carcasei care conține ecranul LCD și glisați-o peste cealaltă jumătate a carcasei care conține celelalte componente. În timp ce împingeți cele două bucăți împreună, lipiți-le fierbinte pentru a fixa carcasa împreună.
Pasul 18: Conectați-vă la Arduino
Cele opt fire lungi rămase sunt conectate direct la pinii lor Arduino, conturați în schema circuitului. Asigurați-vă că, de fiecare dată când lipiți unul dintre acele fire lungi de 3 ft în circuit, puneți o bucată de bandă pe celălalt capăt, indicând la ce pin Arduino merge!
Pasul 19: Arduino IDE / Biblioteci
Va trebui să descărcați IDE-ul Arduino. Pentru această schiță, am folosit trei biblioteci diferite: FHT.h, SPI.h și TFT.h. Dacă nu știți cum să descărcați bibliotecile Arduino, vă rugăm să consultați https://www.arduino.cc/en/Guide/Libraries. Biblioteca FHT.h a fost descărcată de pe openmusiclabs.com. Celelalte două au fost descărcate de pe GitHub.
Pasul 20: Arduino Sketch
Codul folosește Transformarea rapidă Hartley (FHT) pentru a schimba domeniul de timp într-un domeniu de frecvență. Acest lucru se poate face și folosind Transformarea Fourier Rapidă (FFT), dar FHT este mult mai rapid. FFT și FHT sunt idei foarte fundamentale în procesarea semnalului și foarte distractiv de învățat. Vă sugerez să citiți singuri, dacă sunteți interesat, vedeți. Exemplul de cod FHT pe care l-am copiat de pe site-ul web Open Music Labs oferea inițial amplitudinea fiecărui coș de frecvență ca ieșire logaritmică sau decibel. Am schimbat acest lucru pentru a scoate coșurile de frecvență pe o scară liniară. Acest lucru se datorează faptului că scara liniară este o reprezentare vizuală mai bună a modului în care oamenii aud sunetul. Bucla for () de la sfârșit este pentru desenarea amplitudinii fiecărui coș de frecvență pe ecranul LCD. Spectrul FHT complet ar cuprinde toate liniile de frecvență de la i = 0 la i <128. Veți observa că bucla mea pentru () este de la i = 5 la i <40, deoarece frecvențele importante pentru diagnosticarea afecțiunilor pulmonare sunt de obicei cuprinse între 150Hz și 3,5khz, am decis să merg până la aproximativ 4kHz. Acest lucru poate fi ajustat dacă doriți să afișați întregul spectru de frecvențe.
[cod]
// Cod stetoscop digital
// Biblioteca rapidă Hartley Transform descărcată de pe openmusiclabs
#define LIN_OUT 1 // setați FHT pentru a produce ieșire liniară
#define LOG_OUT 0 // dezactivează ieșirea logaritmică FHT
#define FHT_N 256 // FHT număr de eșantion
#include // include biblioteca FHT
#include // include biblioteca TFT
#include // include biblioteca SPI
#define cs 10 // setează lcd cs pin la arduino pin 10
#define dc 9 // setează lcd dc pin la arduino pin 9
#define rst 8 // setează pinul reset LCD pe pinul arduino 8
TFT myScreen = TFT (cs, dc, rst); // declara numele ecranului TFT
configurare nulă () {
//Serial.begin(9600);//set rata de eșantionare
myScreen.begin (); // inițializează ecranul TFT
myScreen.background (0, 0, 0); // setați fundalul la negru
ADCSRA = 0xe5; // setați adc în modul de rulare liber
ADMUX = 0x40; // utilizați adc0
}
bucla nulă () {
while (1) {// reduce jitter cli (); // Întreruperea UDRE încetinește astfel pe arduino1.0
for (int i = 0; i <FHT_N; i ++) {// salvați 256 de mostre
while (! (ADCSRA & 0x10)); // așteptați ca adc să fie gata
ADCSRA = 0xf5; // reporniți octetul adc
m = ADCL; // preluați octetul de date adc
j = ADCH; int k = (j << 8) | m; // formează într-un int
k - = 0x0200; // formează într-un int semnat
k << = 6; // formează într-un int. 16b semnat
fht_input = k; // puneți date reale în coșuri
}
fht_window (); // fereastră datele pentru un răspuns de frecvență mai bun
fht_reorder (); // reordonați datele înainte de a efectua fht
fht_run (); // procesează datele din fht
fht_mag_lin (); // ia ieșirea fht
sei ();
for (int i = 5; i <40; i ++) {
myScreen.stroke (255, 255, 255);
myScreen.fill (255, 255, 255);
int drawHeight = map (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);
}
}
[/cod]
Pasul 21: Testează-l
Am folosit un generator de tonuri online (https://www.szynalski.com/tone-generator/) pentru a confirma că codul funcționează corect. După confirmarea funcționării, apăsați clopotul stetoscopului până la piept, respirați profund și vedeți ce frecvențe sunt prezente !!
Pasul 22: Munca viitoare
** Notă: sunt chimist, nu inginer sau informatic **. Probabil vor exista greșeli și îmbunătățiri ale designului și codului. Acestea fiind spuse, cred că este un bun început pentru ceva care poate ajunge să fie foarte util și ieftin. Următoarele gloanțe sunt viitoare îmbunătățiri pe care aș dori să le fac și sper că și unii dintre voi vor încerca să-l îmbunătățească!
· Faceți dispozitivul mobil. Nu am o experiență extinsă cu procesoare sau alte microcontrolere, dar ar trebui să aibă suficientă memorie pentru a stoca întreaga bibliotecă FHT sau posibil Bluetooth.
· Introduceți câteva calcule de analiză statistică în cod. De exemplu, în mod obișnuit o respirație șuierătoare are o frecvență fundamentală egală sau mai mare de 400 Hz și durează cel puțin 250 ms. Rhonchi apar la o frecvență fundamentală de aproximativ 200 Hz sau mai puțin și durează cel puțin 250 ms. Multe alte sunete pulmonare sunt definite și indicative ale condițiilor de sănătate (https://commongiant.github.io/iSonea-Physicians/assets/publications/7_ISN-charbonneau-Euro-resp-Jour-1995-1942-full.pdf). Cred că este ceva ce poate fi verificat în cod prin compararea semnalului liniilor de frecvență după un anumit număr de cicluri prin FHT și apoi rularea funcției millis () pentru a vedea cât timp a fost prezent, apoi comparându-l la podeaua de zgomot a calculului FHT. Sunt încrezător că aceste lucruri se pot face!
Sper că v-ați distrat cu acest proiect și, dacă aveți întrebări, vă rugăm să comentați și vă voi răspunde cât de repede pot! Aștept cu nerăbdare să văd comentarii.
Recomandat:
Schimbător rapid sub 50 USD! Schimbator rapid reglabil Kazeshifter Arduino: 7 pași
Schimbător rapid sub 50 USD! Schimbator rapid reglabil Kazeshifter Arduino: Bună, iubitorii de motociclete sau de motociclete! În acest instructable, vă voi împărtăși cum să vă faceți propriul schimbător rapid de preț ieftin! folosesc deja sistemul de injecție a combustibilului, cândva
Radio Vintage transformat într-un difuzor de telefon: 4 pași (cu imagini)
Vintage Radio s-a transformat într-un difuzor de telefon: Ideea din spatele acestui lucru a fost să luați un radio vechi (rupt) frumos și să-i dați o nouă viață, combinându-l cu componente moderne pentru a-l putea utiliza din nou ca difuzor pentru un telefon. stăpânul unui vechi radio Roberts, am găsit un pai mai puțin vechi
Set de telecomandă obișnuit transformat în telecomandă cu jucărie RC cu patru canale: 4 pași
Kit de telecomandă obișnuit transformat în telecomandă RC cu patru canale pentru jucărie:改造 方法 非常 简单。 只需 准备 一些 瓦楞纸 板 , 然后 按照 视频 教程 这个 电子 项目 并 为 您 服务。 玩具 车船 提供 远程 无线 控制。
S-a transformat în negru! Cod VS: 16 pași
S-a transformat în negru! Cod VS: Astăzi, vom vorbi despre PlatformIO. Acesta este un instrument avansat cu mai multe funcții care „leagă” utilizarea acestuia de Visual Studio Code. Consider că acest subiect este oarecum avansat și, prin urmare, sugerez utilizarea acestei perechi pentru coduri care au mai mult de 200 de linii. Dar
ACTUALIZAT !!!! Rapid și ușor WIFI Antena Signal Booster, care este mai bun și mai rapid decât hârtia !!!: 9 pași
ACTUALIZAT !!!! Rapid și ușor WIFI Antenna Signal Booster, care este mai bun și mai rapid decât hârtia !!!: Un nou swing pe o idee veche pentru îmbunătățirea semnalului WIFI