INHOUDSOPGAWE:
- Stap 1: materiaal
- Stap 2: Gereedskap
- Stap 3: 3D -drukwerk
- Stap 4: Bou stroombaan
- Stap 5: LCD -bedrading
- Stap 6: Mikrofoon-/versterkerbedrading
- Stap 7: Bedrading van tydelike skakelaars
- Stap 8: Potensiometer bedrading
- Stap 9: Bedrading vir koptelefoonaansluiting
- Stap 10: Mikrofoon/versterker -uitvoer
- Stap 11: Mikrofoon/versterker -uitvoer word voortgesit
- Stap 12: Komponente in die omhulsel
- Stap 13: In-omhulsel-soldeer
- Stap 14: +5V, GND Uitgebreide drade
- Stap 15: Skuif lang drade deur die omhulselgat
- Stap 16: Verhit krimp
- Stap 17: Seëlomhulsel
- Stap 18: Koppel aan Arduino
- Stap 19: Arduino IDE/biblioteke
- Stap 20: Arduino -skets
- Stap 21: Toets dit
- Stap 22: Toekomstige werk
Video: Fast Hartley Transform Spectral Stetoskoop: 22 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
In hierdie instruksies leer u hoe u 'n spektrale stetoskoop kan maak met behulp van die vinnige hartley -transformasie. Dit kan gebruik word om hart- en longklanke te visualiseer.
Stap 1: materiaal
1,8”LCD -skerm ($ 7,50 op Amazon)
Arduino Uno of ekwivalent ($ 7,00 op Gearbest)
Electret versterker ($ 6,95 op Adafruit)
100 µF kondensator ($ 0,79)
Draad en springers ($ 4,00)
3,5 mm stereo -aansluiting ($ 1,50)
10kOhm potensiometer ($ 2,00)
Tydelike skakelaar ($ 1,50)
Stap 2: Gereedskap
Soldeerbout
Warm gom geweer
3D -drukker … of 'n vriend met 'n 3D -drukker (kan ook met karton gemaak word)
Draadsnyer
Broodbord
Stap 3: 3D -drukwerk
Die eerste is om die.stl -lêers wat by hierdie stap aangeheg is, in 3D te druk. Ek het albei lêers met die volgende materiaal/instellings gedruk:
Materiaal: PLA
Laaghoogte: 0,1 mm
Muur/bo/onder dikte: 0,8 mm
Druk temperatuur: 200 ⁰
Bedtemperatuur: 60⁰C
Ondersteuning geaktiveer @ 10%
Stap 4: Bou stroombaan
Bou die stroombaan deur die komponente in die materiaalafdeling te gebruik. Ek sit altyd eers die kring op 'n broodbord om seker te maak dat dit behoorlik werk voordat ek aan die soldeerbout raak.
Stap 5: LCD -bedrading
Met behulp van die figuur wat by hierdie stap geheg is, soldeer drade na sewe van die agt penne op die LCD -skerm. Hierdie drade moet ongeveer 3 voet lank wees, behalwe die grond en +5V penne (dit moet slegs 2-3 duim wees)
Stap 6: Mikrofoon-/versterkerbedrading
Met behulp van die figuur wat by hierdie stap geheg is, soldeer drie drade aan die +5V-, grond- en uitpenne op die Adafruit -mikrofoon/versterker. Dit hoef slegs ongeveer 2-3 cm lank te wees.
Stap 7: Bedrading van tydelike skakelaars
Draai 'n draad van 2-3 duim na elk van die twee tappe op die oombliklike skakelaar.
Stap 8: Potensiometer bedrading
Met behulp van die figuur in stap 6, soldeer drie drade ongeveer 2-3 sentimeter lank aan die drie nokke van die potensiometer.
Stap 9: Bedrading vir koptelefoonaansluiting
Soldeer drie drade aan die ring, punt en moue van die koptelefoonaansluiting. Ek gebruik 'n domkrag uit 'n metronoom wat reeds bedraad was. As u nie weet wat die ring, punt en moue is nie, google dit net, daar is baie goeie beelde oor die aansluiting van stereo -aansluitings.
Stap 10: Mikrofoon/versterker -uitvoer
Nadat u die drade op die mikrofoon/versterker, potensiometer en koptelefoonaansluiting gesoldeer het, soldeer u een draad ongeveer drie voet lank aan die "uit" draad van die mikrofoonversterker. Hierdie draad sal later aan die A0 -pen van die arduino gekoppel word.
Stap 11: Mikrofoon/versterker -uitvoer word voortgesit
Soldeer 'n tweede draad aan die "uit" draad van die mikrofoon/versterker. Hierdie draad moet aan 'n 100 microFarad -kapasitor gesoldeer word. As u 'n elektrolitiese kondensator gebruik, moet u seker maak dat die positiewe kant aan hierdie draad gekoppel is.
Stap 12: Komponente in die omhulsel
Nadat al die drade aan die komponente gesoldeer is, plaas die komponente op die onderskeie plekke volgens die figure wat by hierdie stap aangeheg is. Ek het warm gom gebruik om die mikrofoon en koptelefoonaansluiting vas te maak.
Stap 13: In-omhulsel-soldeer
Nadat al die komponente in die omhulsel vasgemaak is, soldeer al die gronddrade saam. Daar moet een uit die LCD, een uit die mikrofoon/versterker en een uit die mou van die koptelefoonaansluiting wees. Soldeer ook die +5V drade saam en een draad van die oombliklike skakelaar. Daar moet weer een van die LCD, een van die mikrofoon/versterker, en een op die oombliklike skakelaar wees.
Stap 14: +5V, GND Uitgebreide drade
Sny nou twee stukke draad ongeveer 3 voet lank. Soldeer die een aan die groep gronddrade en soldeer die ander aan die oop draad op die oombliklike skakelaar.
Stap 15: Skuif lang drade deur die omhulselgat
Nou moet u altesaam agt drade van ongeveer 3 voet lank hê. Plaas dit deur die ongevulde gat in die omhulsel. Sien die figuur wat by hierdie stap aangeheg is
Stap 16: Verhit krimp
Nadat die soldeer klaar is, moet u seker maak dat die blootgestelde drade bedek is. Ek het 'n krimpbuis gebruik, maar elektriese band werk ook goed.
Stap 17: Seëlomhulsel
Neem die helfte van die omhulsel wat die LCD -skerm bevat en plaas dit oor die ander helfte van die omhulsel wat die ander komponente bevat. Terwyl u die twee stukke bymekaar druk, plak hulle dit warm om die omhulsel vas te maak.
Stap 18: Koppel aan Arduino
Die agt, lang, oorblywende drade is direk verbind met hul onderskeie Arduino -penne wat in die kringskemas uiteengesit is. Maak seker dat u elke keer as u een van die lang 3ft drade in die stroombaan soldeer, 'n stuk band aan die ander kant plaas wat aandui na watter Arduino -pen dit gaan!
Stap 19: Arduino IDE/biblioteke
U moet die Arduino IDE aflaai. Vir hierdie skets het ek drie verskillende biblioteke gebruik: FHT.h, SPI.h en TFT.h. As u nie weet hoe om Arduino -biblioteke af te laai nie, gaan na https://www.arduino.cc/en/Guide/Libraries. Die FHT.h -biblioteek is afgelaai van openmusiclabs.com. Die ander twee is afgelaai op GitHub.
Stap 20: Arduino -skets
Die kode gebruik die Fast Hartley Transform (FHT) om die tyddomein na 'n frekwensiedomein te verander. Dit kan ook gedoen word met behulp van die Fast Fourier Transform (FFT), maar die FHT is baie vinniger. Die FFT en FHT is baie fundamentele idees in seinverwerking en baie lekker om van te leer. Ek stel voor dat u self lees, as u belangstel. Die FHT -voorbeeldkode wat ek van die Open Music Labs -webwerf gekopieer het, het aanvanklik die amplitude van elke frekwensiebak as 'n logaritmiese of desibel -uitset weergegee. Ek het dit verander om die frekwensiebakke op 'n lineêre skaal uit te voer. Dit is omdat die lineêre skaal 'n beter visuele voorstelling is van hoe mense klank hoor. Die for () lus aan die einde is om die amplitude van elke frekwensiebak op die LCD -skerm te teken. Die volledige FHT -spektrum sal alle frekwensiebakke van i = 0 tot i <128 insluit. U sal sien dat my for () lus van i = 5 tot i <40 is, dit is omdat die frekwensies wat belangrik is vir die diagnose van longtoestande gewoonlik tussen 150Hz en 3.5khz is. Ek het besluit om tot ongeveer 4kHz te styg. Dit kan aangepas word as u die volle frekwensiespektrum wil wys.
[kode]
// Digitale stetoskoopkode
// Fast Hartley Transform -biblioteek afgelaai van openmusiclabs
#define LIN_OUT 1 // stel FHT in om lineêre uitset te lewer
#define LOG_OUT 0 // skakel die logaritmiese uitvoer van FHT uit
#defineer FHT_N 256 // FHT -voorbeeldnommer
#include // sluit FHT -biblioteek in
#include // sluit TFT -biblioteek in
#include // sluit SPI -biblioteek in
#definieer cs 10 // stel lcd cs pin in op arduino pin 10
#definieer dc 9 // stel lcd dc -pen in op arduino -pen 9
#definieer eerste 8 // stel lcd -terugstelpen in op arduino -pen 8
TFT myScreen = TFT (cs, dc, rst); // verklaar die naam van die TFT -skerm
ongeldige opstelling () {
//Serial.begin(9600);// stel bemonsteringstempo
myScreen.begin (); // begin die TFT -skerm
myScreen.background (0, 0, 0); // stel die agtergrond op swart
ADCSRA = 0xe5; // stel adc in die vrylopende modus
ADMUX = 0x40; // gebruik adc0
}
leemte -lus () {
terwyl (1) {// jitter cli () verminder; // UDRE -onderbreking vertraag hierdie manier op arduino1.0
vir (int i = 0; i <FHT_N; i ++) {// stoor 256 monsters
terwyl (! (ADCSRA & 0x10)); // wag totdat adc gereed is
ADCSRA = 0xf5; // herbegin adc byte
m = ADCL; // haal adc -data -greep
j = ADCH; int k = (j << 8) | m; // vorm tot 'n int
k -= 0x0200; // vorm in 'n getekende int
k << = 6; // vorm in 'n 16b getekende int
fht_input = k; // sit regte data in asblikke
}
fht_window (); // venster die data vir 'n beter frekwensierespons
fht_reorder (); // rangskik die data voordat u die fht
fht_run (); // verwerk die data in die fht
fht_mag_lin (); // neem die uitset van die fht
sei ();
vir (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);
}
}
[/kode]
Stap 21: Toets dit
Ek het 'n aanlyn toongenerator (https://www.szynalski.com/tone-generator/) gebruik om te bevestig dat die kode behoorlik werk. Nadat u bevestig het dat dit werk, druk die klok van die stetoskoop tot op u bors, haal diep asem en kyk watter frekwensies daar is !!
Stap 22: Toekomstige werk
** Opmerking: ek is 'n apteker, nie 'n ingenieur of rekenaarwetenskaplike nie **. Daar is waarskynlik foute en verbeterings aan die ontwerp en kode. Dit gesê, ek dink dit is 'n goeie begin vir iets wat baie nuttig en goedkoop kan wees. Die volgende koeëls is toekomstige verbeterings wat ek graag wil aanbring, en ek hoop dat sommige van u dit ook probeer verbeter!
· Maak die toestel selfoon. Ek het nie uitgebreide ervaring met SVE's of ander mikrobeheerders nie, maar ek moet genoeg geheue hê om die hele FHT -biblioteek op te slaan, of moontlik Bluetooth.
· Stel 'n paar statistiese analise -berekeninge in die kode in. Byvoorbeeld, 'n asemhaling het gewoonlik 'n fundamentele frekwensie gelyk aan of groter as 400 Hz en duur minstens 250 ms. Rhonchi kom voor met 'n fundamentele frekwensie van ongeveer 200 Hz of minder en duur minstens 250 ms. Baie ander pulmonale geluide word gedefinieer en dui op gesondheidstoestande (https://commongiant.github.io/iSonea-Physicians/assets/publications/7_ISN-charbonneau-Euro-resp-Jour-1995-1942-full.pdf). Ek dink dit is iets wat in die kode nagegaan kan word deur die sein van die frekwensiebakke na 'n sekere aantal siklusse deur die FHT te vergelyk en dan die millis () -funksie te gebruik om te sien hoe lank dit teenwoordig was en dit dan te vergelyk na die geraasvloer van die FHT -berekening. Ek is vol vertroue dat hierdie dinge gedoen kan word!
Ek hoop dat u almal pret gehad het met hierdie projek, en as u enige vrae het, lewer kommentaar, en ek sal so gou as moontlik reageer! Ek sien uit daarna om kommentaar te sien.
Aanbeveel:
Super FAST RC -grondeffekvoertuig (Ekranoplan): 5 stappe (met foto's)
Super FAST RC-grond-effekvoertuig (Ekranoplan): weet u hoe vliegtuie 'n rukkie 'n paar meter bokant die grond sweef voordat hul wiele die aanloopbaan tref? Dit is nie net om die passasiers glad te laat land nie, maar dit is ook die natuurlike gevolg van die grondeffek, waarin
N Fast Charge -funksie by 'n Powerbank voeg: 5 stappe (met foto's)
Voeg 'n Fast Charge -funksie by 'n Powerbank: In hierdie projek sal ek jou wys hoe ek 'n gewone powerbank verander het om sy belaglik lang laai tyd te verminder. Onderweg sal ek praat oor die powerbank -kring en waarom die battery van my powerbank 'n bietjie spesiaal is. Kom ons kry st
EasyFFT: Fast Fourier Transform (FFT) vir Arduino: 6 stappe
EasyFFT: Fast Fourier Transform (FFT) vir Arduino: Meting van frekwensie van die vasgelegde sein kan 'n moeilike taak wees, veral op Arduino, aangesien dit 'n laer rekenkrag het. Daar is metodes beskikbaar om nulkruising vas te lê, waar die frekwensie vasgelê word deur hoeveel keer die
Arduino: Frequency Transform (DFT): 6 stappe
Arduino: Frequency Transform (DFT): hierdie program is om frekwensietransformasie op arduino te bereken met beslagbeheer oor parameters. Dit word opgelos met behulp van desecrate fouriior transform. dit is nie FFT nie. FFT is 'n algoritme wat gebruik word om DFT met kleiner tyd op te los. Kode vir FFT kan hier gevind word
Transform-a-Car: Afstandsbediening na selfbeheerde: 4 stappe
Transform-a-Car: Remote Controlled to Self Controlled: Dit is 'n hack op 'n RC-motor met 'n gebreekte afstandsbediening. U kan baie vind by motorhuisverkope