Inhaltsverzeichnis:
- Schritt 1: Materialien
- Schritt 2: Werkzeuge
- Schritt 3: 3D-Druck
- Schritt 4: Schaltung konstruieren
- Schritt 5: LCD-Verkabelung
- Schritt 6: Mikrofon-/Verstärkerverkabelung
- Schritt 7: Verdrahtung des momentanen Schalters
- Schritt 8: Potentiometerverdrahtung
- Schritt 9: Verkabelung der Kopfhörerbuchse
- Schritt 10: Mikrofon-/Verstärkerausgang
- Schritt 11: Fortsetzung des Mikrofon-/Verstärkerausgangs
- Schritt 12: Komponenten im Gehäuse
- Schritt 13: In-Gehäuse-Löten
- Schritt 14: +5V, GND verlängerte Drähte
- Schritt 15: Schieben Sie lange Drähte durch das Gehäuseloch
- Schritt 16: Schrumpfen
- Schritt 17: Gehäuse versiegeln
- Schritt 18: Verbinden Sie sich mit Arduino
- Schritt 19: Arduino IDE / Bibliotheken
- Schritt 20: Arduino-Skizze
- Schritt 21: Testen Sie es
- Schritt 22: Zukünftige Arbeit
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-23 12:52
In diesem anweisbaren erfahren Sie, wie Sie ein spektrales Stethoskop mit der schnellen Hartley-Transformation herstellen. Damit können Herz- und Lungengeräusche visualisiert werden.
Schritt 1: Materialien
1,8-Zoll-LCD-Bildschirm (7,50 USD bei Amazon)
Arduino Uno oder gleichwertig (7,00 $ bei Gearbest)
Elektret-Verstärker (6,95 $ bei Adafruit)
100-µF-Kondensator (0,79 $)
Draht und Jumper ($4,00)
3,5-mm-Stereobuchse (1,50 $)
10kOhm Potentiometer ($2,00)
Kurzzeitschalter ($1,50)
Schritt 2: Werkzeuge
Lötkolben
Heißklebepistole
3D-Drucker … oder ein Freund mit einem 3D-Drucker (auch mit Pappe möglich)
Kabelschneider
Steckbrett
Schritt 3: 3D-Druck
Die erste besteht darin, die an diesen Schritt angehängten.stl-Dateien in 3D zu drucken. Ich habe beide Dateien mit den folgenden Materialien / Einstellungen gedruckt:
Material: PLA
Schichthöhe: 0,1 mm
Wand/Oberseite/Unterseite Dicke: 0,8 mm
Drucktemperatur: 200⁰C
Betttemperatur: 60⁰C
Unterstützung aktiviert bei 10 %
Schritt 4: Schaltung konstruieren
Bauen Sie mit den Komponenten im Materialabschnitt die Schaltung auf. Ich baue die Schaltung immer zuerst auf einem Steckbrett zusammen, um sicherzustellen, dass sie richtig funktioniert, bevor ich den Lötkolben berühre.
Schritt 5: LCD-Verkabelung
Verwenden Sie die Abbildung, die diesem Schritt beigefügt ist, Lötdrähte an sieben der acht Pins auf dem LCD-Bildschirm. Diese Drähte müssen ungefähr 3 Fuß lang sein, mit Ausnahme der Masse- und +5V-Pins (diese müssen nur 2-3 Zoll lang sein)
Schritt 6: Mikrofon-/Verstärkerverkabelung
Verwenden Sie die an diesem Schritt angebrachte Abbildung, um drei Drähte an die +5V-, Masse- und Out-Pins des Adafruit-Mikrofons / -Verstärkers zu löten. Diese müssen nur etwa 2-3 Zoll lang sein.
Schritt 7: Verdrahtung des momentanen Schalters
Verdrahten Sie einen 2-3-Zoll-Draht zu jeder der beiden Laschen am Momentschalter.
Schritt 8: Potentiometerverdrahtung
Verwenden Sie die Abbildung in Schritt 6, löten Sie drei Drähte von etwa 2-3 Zoll Länge an die drei Laschen des Potentiometers.
Schritt 9: Verkabelung der Kopfhörerbuchse
Löten Sie drei Drähte an die Ring-, Spitzen- und Ärmellaschen der Kopfhörerbuchse. Ich habe eine Buchse aus einem bereits verkabelten Metronom verwendet. Wenn Sie nicht wissen, was die Ring-, Spitzen- und Hülsenösen sind, googeln Sie es einfach, es gibt viele gute Bilder zum Verdrahten von Stereobuchsen.
Schritt 10: Mikrofon-/Verstärkerausgang
Nachdem Sie die Drähte an Mikrofon / Verstärker, Potentiometer und Kopfhörerbuchse angelötet haben, löten Sie einen Draht von etwa drei Fuß Länge an den "Ausgang" -Draht des Mikrofonverstärkers. Dieser Draht wird später mit dem A0-Pin des Arduino verbunden.
Schritt 11: Fortsetzung des Mikrofon-/Verstärkerausgangs
Löten Sie ein zweites Kabel an das "Out" -Kabel des Mikrofons / Verstärkers. Dieser Draht muss an einen 100-MikroFarad-Kondensator gelötet werden. Wenn Sie einen Elektrolytkondensator verwenden, stellen Sie sicher, dass die positive Seite mit diesem Draht verbunden ist.
Schritt 12: Komponenten im Gehäuse
Nachdem alle Drähte an den Komponenten angelötet sind, platzieren Sie die Komponenten an den entsprechenden Stellen gemäß den Abbildungen, die diesem Schritt beigefügt sind. Ich benutzte Heißkleber, um das Mikrofon und die Kopfhörerbuchse zu befestigen.
Schritt 13: In-Gehäuse-Löten
Nachdem alle Komponenten im Gehäuse befestigt sind, löten Sie alle Erdungsdrähte zusammen. Es sollte eine vom LCD, eine vom Mikrofon/Verstärker und eine von der Buchse der Kopfhörerbuchse sein. Löten Sie auch die +5V-Drähte zusammen und einen Draht vom Momentschalter. Auch hier sollte eine vom LCD, eine vom Mikrofon/Verstärker und eine auf dem momentanen Schalter sein.
Schritt 14: +5V, GND verlängerte Drähte
Schneiden Sie nun zwei Drahtstücke von etwa 3 Fuß Länge ab. Löten Sie einen an den Cluster von Erdungsdrähten und den anderen an den offenen Draht des Momentschalters.
Schritt 15: Schieben Sie lange Drähte durch das Gehäuseloch
Jetzt sollten Sie insgesamt acht Drähte von etwa 3 Fuß Länge haben. Legen Sie diese durch das ungefüllte Loch im Gehäuse. Siehe die Abbildung, die diesem Schritt beigefügt ist
Schritt 16: Schrumpfen
Nachdem alle Lötarbeiten abgeschlossen sind, stellen Sie sicher, dass die freiliegenden Drähte bedeckt sind. Ich habe Schrumpfschlauch verwendet, aber Isolierband funktioniert auch gut.
Schritt 17: Gehäuse versiegeln
Nehmen Sie die Gehäusehälfte mit dem LCD-Bildschirm und schieben Sie sie über die andere Gehäusehälfte mit den anderen Komponenten. Während Sie die beiden Teile zusammenschieben, kleben Sie sie heiß zusammen, um das Gehäuse zusammen zu befestigen.
Schritt 18: Verbinden Sie sich mit Arduino
Die verbleibenden acht langen Drähte sind direkt mit ihren jeweiligen Arduino-Pins verbunden, die in den Schaltplänen skizziert sind. Stellen Sie sicher, dass Sie jedes Mal, wenn Sie einen dieser langen 3ft-Drähte in den Stromkreis löten, ein Stück Klebeband am anderen Ende anbringen, das angibt, zu welchem Arduino-Pin es geht!
Schritt 19: Arduino IDE / Bibliotheken
Sie müssen die Arduino-IDE herunterladen. Für diesen Sketch habe ich drei verschiedene Bibliotheken verwendet: FHT.h, SPI.h und TFT.h. Wenn Sie nicht wissen, wie man Arduino-Bibliotheken herunterlädt, besuchen Sie bitte https://www.arduino.cc/en/Guide/Libraries. Die Bibliothek FHT.h wurde von openmusiclabs.com heruntergeladen. Die anderen beiden wurden auf GitHub heruntergeladen.
Schritt 20: Arduino-Skizze
Der Code verwendet die Fast Hartley Transform (FHT), um den Zeitbereich in einen Frequenzbereich zu ändern. Dies kann auch mit der Fast Fourier Transform (FFT) erfolgen, aber die FHT ist viel schneller. Die FFT und FHT sind sehr grundlegende Ideen in der Signalverarbeitung und es macht sehr viel Spaß, sie zu erlernen. Ich schlage vor, selbst etwas zu lesen, wenn Sie interessiert sind. Der FHT-Beispielcode, den ich von der Open Music Labs-Website kopiert habe, gab zunächst die Amplitude jedes Frequenzbereichs als logarithmische oder Dezibel-Ausgabe aus. Ich habe dies geändert, um die Frequenzbins auf einer linearen Skala auszugeben. Dies liegt daran, dass die lineare Skala eine bessere visuelle Darstellung davon ist, wie Menschen Geräusche hören. Die for()-Schleife am Ende dient zum Zeichnen der Amplitude jedes Frequenzbereichs auf dem LCD-Bildschirm. Das volle FHT-Spektrum würde alle Frequenz-Bins von i=0 bis i<128 umfassen. Sie werden feststellen, dass meine for()-Schleife von i = 5 bis i < 40 reicht, weil die für die Diagnose von Lungenerkrankungen wichtigen Frequenzen typischerweise zwischen 150 Hz und 3,5 kHz liegen. Ich habe mich entschieden, bis zu etwa 4 kHz zu gehen. Dies kann eingestellt werden, wenn Sie das volle Frequenzspektrum anzeigen möchten.
[Code]
//Digitaler Stethoskop-Code
//Fast Hartley Transform Bibliothek von openmusiclabs heruntergeladen
#define LIN_OUT 1 // FHT einstellen, um eine lineare Ausgabe zu erzeugen
#define LOG_OUT 0 // FHT logarithmischen Ausgang ausschalten
#define FHT_N 256 //FHT-Sample-Nummer
#include //FHT-Bibliothek einschließen
#include //TFT-Bibliothek einschließen
#include //SPI-Bibliothek einschließen
#define cs 10 // LCD-CS-Pin auf Arduino-Pin 10 setzen
#define DC 9 // LCD-DC-Pin auf Arduino-Pin 9 setzen
#define rst 8 // LCD-Reset-Pin auf Arduino-Pin 8 setzen
TFT myScreen = TFT (cs, dc, rst); // Name des TFT-Bildschirms angeben
Leere Einrichtung () {
// Serial.begin (9600); // Abtastrate einstellen
myScreen.begin(); // TFT-Bildschirm initialisieren
myScreen.background (0, 0, 0); // Hintergrund auf Schwarz setzen
ADCSRA=0xe5; // Adc in den Freilaufmodus setzen
ADMUX=0x40;//benutze adc0
}
Leere Schleife () {
while(1){ // reduziert Jitter cli(); // UDRE-Interrupt verlangsamt sich auf arduino1.0
for (int i = 0; i < FHT_N; i++) { // 256 Samples speichern
while(!(ADCSRA & 0x10)); // warten bis der adc fertig ist
ADCSRA = 0xf5; // Adc-Byte neu starten
m = ADCL; // Adc-Datenbyte abrufen
j = ADCH; int k = (j << 8) | m; // zu einem int formen
k –= 0x0200; // zu einem angemeldeten int formen
k <<= 6; // zu einem 16b formen signiert int
fht_input = k; // lege echte Daten in Bins
}
fht_window(); // Fenster die Daten für einen besseren Frequenzgang
fht_reorder(); // ordnen Sie die Daten neu an, bevor Sie die fht ausführen
fht_run(); // Verarbeite die Daten in der fht
fht_mag_lin(); // nimm die Ausgabe von fht
sei();
für (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);
}
}
[/Code]
Schritt 21: Testen Sie es
Ich habe einen Online-Tongenerator (https://www.szynalski.com/tone-generator/) verwendet, um zu bestätigen, dass der Code richtig funktioniert. Nachdem Sie bestätigt haben, dass es funktioniert, drücken Sie die Glocke des Stethoskops bis zu Ihrer Brust, atmen Sie tief ein und sehen Sie, welche Frequenzen vorhanden sind!
Schritt 22: Zukünftige Arbeit
**Hinweis: Ich bin Chemiker, kein Ingenieur oder Informatiker**. Es wird wahrscheinlich Fehler und Verbesserungen an Design und Code geben. Davon abgesehen denke ich, dass es ein guter Anfang für etwas ist, das am Ende sehr nützlich und kostengünstig sein kann. Die folgenden Punkte sind zukünftige Verbesserungen, die ich gerne machen würde und ich hoffe, einige von euch versuchen es auch zu verbessern!
· Machen Sie das Gerät mobil. Ich habe keine umfangreichen Erfahrungen mit CPUs oder anderen Mikrocontrollern, aber es müsste genug Speicher haben, um die gesamte FHT-Bibliothek auf oder möglicherweise Bluetooth zu speichern.
· Führen Sie einige statistische Analyseberechnungen in den Code ein. Typischerweise hat ein Keuchen beispielsweise eine Grundfrequenz gleich oder größer als 400 Hz und dauert mindestens 250 ms. Rhonchi treten bei einer Grundfrequenz von etwa 200 Hz oder weniger auf und dauern mindestens 250 ms. Viele andere Lungengeräusche sind definiert und weisen auf Gesundheitszustände hin (https://commongiant.github.io/iSonea-Physicians/assets/publications/7_ISN-charbonneau-Euro-resp-Jour-1995-1942-full.pdf). Ich denke, das kann im Code überprüft werden, indem man das Signal der Frequenz-Bins nach einer bestimmten Anzahl von Zyklen durch die FHT vergleicht und dann die millis()-Funktion ausführt, um zu sehen, wie lange es vorhanden war, und es dann vergleicht zum Grundrauschen der FHT-Berechnung. Ich bin überzeugt, dass diese Dinge machbar sind!
Ich hoffe, Sie hatten alle Spaß mit diesem Projekt und wenn Sie Fragen haben, kommentieren Sie bitte und ich werde so schnell wie möglich antworten! Ich freue mich auf Kommentare.
Empfohlen:
Schnelle und einfache Softswitches (für schnelles Prototyping): 5 Schritte
Schnelle und einfache Softswitches (für Quick Prototyping): Es gibt viele verschiedene Möglichkeiten, um Softswitches zu erstellen. Dieses anweisbare zeigt eine weitere Option eines sehr schnellen Prototyps für den weichen Schalter, bei dem ein Aluminiumband anstelle von leitfähigem Gewebe und massive Drähte anstelle eines leitfähigen Fadens verwendet werden, die bot