Inhoudsopgave:
- Stap 1: Materialen
- Stap 2: Gereedschap
- Stap 3: 3D printen
- Stap 4: Circuit bouwen
- Stap 5: LCD-bedrading
- Stap 6: Mic/Versterker Bedrading
- Stap 7: Momentary Switch-bedrading
- Stap 8: Potentiometer bedrading
- Stap 9: Bedrading hoofdtelefoonaansluiting
- Stap 10: Uitgang microfoon/versterker
- Stap 11: Uitgang microfoon/versterker vervolg
- Stap 12: Componenten in behuizing
- Stap 13: In-Enclosure-solderen
- Stap 14: +5V, GND Extended Wires
- Stap 15: Schuif lange draden door het gat in de behuizing
- Stap 16: Krimpkous
- Stap 17: Behuizing verzegelen
- Stap 18: Maak verbinding met Arduino
- Stap 19: Arduino IDE/bibliotheken
- Stap 20: Arduino-schets
- Stap 21: Test het uit
- Stap 22: Toekomstig werk
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-23 15:01
In deze instructable leer je hoe je een spectrale stethoscoop maakt met behulp van de snelle hartley-transformatie. Dit kan worden gebruikt om hart- en longgeluiden te visualiseren.
Stap 1: Materialen
1,8-inch LCD-scherm ($ 7,50 op Amazon)
Arduino Uno of gelijkwaardig ($ 7,00 op Gearbest)
Electret-versterker ($ 6,95 op Adafruit)
100 µF condensator ($ 0,79)
Draad en Jumpers ($ 4,00)
3,5 mm stereo-aansluiting ($ 1,50)
10kOhm Potentiometer ($2,00)
Tijdelijke schakelaar ($ 1,50)
Stap 2: Gereedschap
Soldeerbout
Heet lijmpistool
3D-printer…of een vriend met een 3D-printer (ook mogelijk met karton)
Draadknipper
Breadboard
Stap 3: 3D printen
De eerste is om de.stl-bestanden die bij deze stap zijn gevoegd in 3D af te drukken. Ik heb beide bestanden afgedrukt met het volgende materiaal/instellingen:
Materiaal: PLA
Laaghoogte: 0,1 mm
Dikte wand/boven/onder: 0,8 mm
Afdruktemperatuur: 200⁰C
Bedtemperatuur: 60⁰C
Ondersteuning ingeschakeld @ 10%
Stap 4: Circuit bouwen
Gebruik de componenten in het materiaalgedeelte om het circuit te bouwen. Ik zet het circuit altijd eerst op een breadboard om te controleren of het goed werkt voordat ik de soldeerbout aanraak.
Stap 5: LCD-bedrading
Gebruik de figuur die bij deze stap is bijgevoegd en soldeer de draden aan zeven van de acht pinnen op het LCD-scherm. Deze draden moeten ongeveer 3 voet lang zijn, behalve de grond en +5V-pinnen (deze hoeven slechts 2-3 inch te zijn)
Stap 6: Mic/Versterker Bedrading
Gebruik de figuur die bij deze stap is bevestigd en soldeer drie draden aan de +5V-, Ground- en Out-pinnen op de Adafruit-microfoon/versterker. Deze hoeven slechts ongeveer 2-3 centimeter lang te zijn.
Stap 7: Momentary Switch-bedrading
Sluit een draad van 2-3 inch aan op elk van de twee nokken op de momentschakelaar.
Stap 8: Potentiometer bedrading
Gebruik de afbeelding in stap 6 en soldeer drie draden van ongeveer 2-3 inch lang aan de drie nokken van de potentiometer.
Stap 9: Bedrading hoofdtelefoonaansluiting
Soldeer drie draden aan de ring-, punt- en mouwuitsteeksels van de hoofdtelefoonaansluiting. Ik gebruikte een jack-out van een metronoom die al bedraad was. Als je niet weet wat de ring-, tip- en sleeve-lugs zijn, google het dan even, er zijn veel goede afbeeldingen over het bedraden van stereo-jacks.
Stap 10: Uitgang microfoon/versterker
Na het solderen van de draden op de microfoon/versterker, potentiometer en hoofdtelefoonaansluiting, soldeert u een draad van ongeveer een meter lang aan de "uit"-draad van de microfoonversterker. Deze draad wordt later verbonden met de A0-pin van de arduino.
Stap 11: Uitgang microfoon/versterker vervolg
Soldeer een tweede draad aan de "uit" draad van de microfoon/versterker. Deze draad moet worden gesoldeerd aan een condensator van 100 microFarad. Als u een elektrolytische condensator gebruikt, zorg er dan voor dat de positieve kant op deze draad is aangesloten.
Stap 12: Componenten in behuizing
Nadat alle draden op de componenten zijn gesoldeerd, plaatst u de componenten op hun respectievelijke plaatsen volgens de afbeeldingen bij deze stap. Ik heb hete lijm gebruikt om de microfoon- en koptelefoonaansluiting op hun plaats te houden.
Stap 13: In-Enclosure-solderen
Nadat alle componenten in de behuizing zijn vastgezet, soldeert u alle aardingsdraden aan elkaar. Er moet een van het LCD-scherm zijn, een van de microfoon / versterker en een van de huls van de hoofdtelefoonaansluiting. Soldeer ook de +5V-draden aan elkaar en één draad van de momentschakelaar. Nogmaals, er moet een van het LCD-scherm zijn, een van de microfoon / versterker en een van de momentschakelaar.
Stap 14: +5V, GND Extended Wires
Knip nu twee stukken draad van ongeveer 3 voet lang. Soldeer een aan het cluster van aarddraden en soldeer de andere aan de open draad op de momentschakelaar.
Stap 15: Schuif lange draden door het gat in de behuizing
Nu zou u in totaal acht draden van ongeveer 3 voet lang moeten hebben. Plaats deze door het ongevulde gat in de behuizing. Zie de afbeelding bij deze stap
Stap 16: Krimpkous
Nadat al het solderen is voltooid, moet u ervoor zorgen dat de blootliggende draden bedekt zijn. Ik heb krimpkous gebruikt, maar elektrische tape werkt ook prima.
Stap 17: Behuizing verzegelen
Pak de helft van de behuizing met het LCD-scherm en schuif deze over de andere helft van de behuizing met de andere componenten. Terwijl u de twee stukken tegen elkaar duwt, lijmt u ze warm om de behuizing aan elkaar te bevestigen.
Stap 18: Maak verbinding met Arduino
De acht, lange, resterende draden zijn rechtstreeks verbonden met hun respectieve Arduino-pinnen die worden beschreven in het circuitschema. Zorg ervoor dat elke keer dat je een van die lange 3ft-draden in het circuit soldeert, je een stuk tape aan het andere uiteinde plakt om aan te geven naar welke Arduino-pin het gaat!
Stap 19: Arduino IDE/bibliotheken
U moet de Arduino IDE downloaden. Voor deze schets heb ik drie verschillende bibliotheken gebruikt: FHT.h, SPI.h en TFT.h. Als u niet weet hoe u Arduino-bibliotheken moet downloaden, raadpleeg dan https://www.arduino.cc/en/Guide/Libraries. De FHT.h-bibliotheek is gedownload van openmusiclabs.com. De andere twee zijn gedownload op GitHub.
Stap 20: Arduino-schets
De code gebruikt de Fast Hartley Transform (FHT) om het tijdsdomein te veranderen in een frequentiedomein. Dit kan ook met de Fast Fourier Transform (FFT), maar de FHT is veel sneller. De FFT en FHT zijn zeer fundamentele ideeën in signaalverwerking en erg leuk om over te leren. Ik stel voor om zelf wat te lezen, als je geïnteresseerd bent, zie. De FHT-voorbeeldcode die ik van de Open Music Labs-website heb gekopieerd, gaf aanvankelijk de amplitude van elke frequentiebak uit als een logaritmische of decibeluitvoer. Ik heb dit gewijzigd om de frequentiebakken op een lineaire schaal uit te voeren. Dit komt omdat de lineaire schaal een betere visuele weergave is van hoe mensen geluid horen. De for()-lus aan het einde is voor het tekenen van de amplitude van elke frequentiebak op het LCD-scherm. Het volledige FHT-spectrum zou alle frequentievakken van i=0 tot i<128 omvatten. Je zult merken dat mijn for()-lus van i=5 tot i<40 is, dit komt omdat de frequenties die belangrijk zijn voor het diagnosticeren van longaandoeningen meestal tussen 150Hz en 3,5khz liggen, ik besloot om naar ongeveer 4kHz te gaan. Dat is aan te passen als je het volledige frequentiespectrum wilt laten zien.
[code]
// Digitale stethoscoopcode
//Fast Hartley Transform-bibliotheek gedownload van openmusiclabs
#define LIN_OUT 1 //set FHT om lineaire output te produceren
#define LOG_OUT 0 // FHT logaritmische output uitschakelen
#define FHT_N 256 //FHT-monsternummer
#include //include FHT-bibliotheek
#include //include TFT-bibliotheek
#include //include SPI-bibliotheek
#define cs 10 // stel lcd cs pin in op arduino pin 10
#define dc 9 // lcd dc pin instellen op arduino pin 9
#define eerste 8 // zet lcd-resetpin op arduino-pin 8
TFT myScreen = TFT(cs, dc, rst);//declareer de naam van het TFT-scherm
ongeldige setup() {
//Serial.begin (9600);//set bemonsteringsfrequentie
myScreen.begin();//initialiseer TFT-scherm
myScreen.background(0, 0, 0);//achtergrond instellen op zwart
ADCSRA=0xe5;//zet adc in vrijloopmodus
ADMUX=0x40;//gebruik adc0
}
lege lus() {
while(1){ // reduceert jitter cli(); // UDRE-interrupt vertraagt op deze manier op arduino1.0
for (int i = 0; i <FHT_N; i++) {// save 256 samples
while(!(ADCSRA & 0x10)); // wacht tot adc klaar is
ADCSRA = 0xf5; // herstart adc byte
m = ADCL; // haal adc-gegevensbyte op
j = ADCH; int k = (j << 8) | m; // vorm in een int
k -= 0x0200; // formulier in een ondertekend int
k <<= 6; // vorm in een 16b ondertekend int
fht_input = k; // zet echte gegevens in bakken
}
fht_window(); // venster de gegevens voor een betere frequentierespons
fht_reorder(); // herschik de gegevens voordat je de fht. doet
fht_run(); // verwerk de gegevens in de fht
fht_mag_lin(); // neem de uitvoer van de fht
zie();
voor (int i=5;i<40;i++){
mijnScherm.slag(255, 255, 255);
mijnScherm.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);
}
mijnScherm.achtergrond(0, 0, 0);
}
}
[/code]
Stap 21: Test het uit
Ik heb een online toongenerator (https://www.szynalski.com/tone-generator/) gebruikt om te controleren of de code goed werkte. Nadat u hebt bevestigd dat het werkt, drukt u de bel van de stethoscoop tegen uw borst, haalt u diep adem en kijkt u welke frequenties aanwezig zijn!!
Stap 22: Toekomstig werk
**Opmerking: ik ben een chemicus, geen ingenieur of computerwetenschapper**. Er zullen waarschijnlijk fouten en verbeteringen in het ontwerp en de code zijn. Dat gezegd hebbende, denk ik dat het een goed begin is van iets dat uiteindelijk erg nuttig en goedkoop kan zijn. De volgende opsommingstekens zijn toekomstige verbeteringen die ik zou willen maken en ik hoop dat sommigen van jullie het ook proberen te verbeteren!
· Maak het apparaat mobiel. Ik heb geen uitgebreide ervaring met CPU's of andere microcontrollers, maar het zou voldoende geheugen moeten hebben om de hele FHT-bibliotheek op op te slaan, of mogelijk Bluetooth.
· Introduceer enkele statistische analyseberekeningen in de code. Een piepende ademhaling heeft bijvoorbeeld typisch een grondfrequentie gelijk aan of groter dan 400 Hz en duurt ten minste 250 ms. Rhonchi treden op bij een grondfrequentie van ongeveer 200 Hz of minder en duren ten minste 250 ms. Veel andere longgeluiden zijn gedefinieerd en indicatief voor gezondheidsproblemen (https://commongiant.github.io/iSonea-Physicians/assets/publications/7_ISN-charbonneau-Euro-resp-Jour-1995-1942-full.pdf). Ik denk dat dat iets is dat in de code kan worden gecontroleerd door het signaal van de frequentiebakken te vergelijken na een bepaald aantal cycli door de FHT en vervolgens de millis () -functie uit te voeren om te zien hoe lang het aanwezig was, en het vervolgens te vergelijken naar de geluidsvloer van de FHT-berekening. Ik ben ervan overtuigd dat deze dingen kunnen worden gedaan!
Ik hoop dat jullie allemaal plezier hebben gehad met dit project en als je vragen hebt, reageer dan alsjeblieft en ik zal zo snel mogelijk reageren! Ik kijk uit naar reacties.
Aanbevolen:
Snelle en eenvoudige pc's voor wandmontage: 8 stappen
Snelle en eenvoudige pc's voor wandmontage: bespaar veel ruimte en maak indruk op uw vrienden! Met behulp van enkele eenvoudig gesneden houten stukken en een vel gekleurd plexiglas kunt u uw pc snel aan de muur bevestigen
Snelle brandgenerator: 4 stappen
Rapid Fire Generator: degenen die het geluid van snel geweervuur voor speelgoed moeten reproduceren, zijn misschien geïnteresseerd in het huidige apparaat. Je kunt verschillende geweergeluiden horen op www.soundbible.com en je realiseert je dat een geweergeluid bestaat uit een 'knal' gevolgd door een 'gesis
"The Unsettling Machine": een snelle Junk-Art-sculptuur voor beginners: 8 stappen (met afbeeldingen)
"The Unsettling Machine": een snelle Junk-Art-sculptuur voor beginners: (Als je deze instructable leuk vindt, stem er dan op in de "Trash to Treasure"-wedstrijd. Maar als je op zoek bent naar een minder verontrustend project, bekijk dan mijn laatste een: Hoe maak je een Lambada Walking Robot! Bedankt!) Laten we aannemen dat je een school
Unboxing van Jetson Nano & een snelle start voor Two Vision Demo: 4 stappen
Unboxing van Jetson Nano en een snelle start voor Two Vision-demo: samenvatten Zoals je weet, is Jetson Nano nu een sterproduct. En het kan neurale netwerktechnologie uitgebreid inzetten op embedded systemen. Hier is een unboxing-artikel met details van het product, het opstartproces en twee visuele demo's…Woordentelling:800
Snelle en eenvoudige zachte schakelaars (voor snelle prototypen): 5 stappen
Quick and Simple Soft Switches (voor Quick Prototyping): Er zijn veel verschillende manieren om softswitches te maken. Deze instructable toont een andere optie van een zeer snel prototype voor de zachte schakelaar, met behulp van een aluminiumtape in plaats van geleidende stof, en massieve draden in plaats van een geleidende draad, die bot