Inhaltsverzeichnis:

Schnelles Hartley-Transformationsspektralstethoskop - Gunook
Schnelles Hartley-Transformationsspektralstethoskop - Gunook

Video: Schnelles Hartley-Transformationsspektralstethoskop - Gunook

Video: Schnelles Hartley-Transformationsspektralstethoskop - Gunook
Video: СУПЕР БЫСТРЫЙ ОБЕД - самое красивое и доступное блюдо, которое вы должны попробовать! 2024, Juli
Anonim
Schnelles Hartley Transform Spectral Stethoskop
Schnelles Hartley Transform Spectral Stethoskop

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

LCD-Verkabelung
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

Mikrofon-/Verstärkerverkabelung
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

Komponenten im Gehäuse
Komponenten im Gehäuse
Komponenten im Gehäuse
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

Schieben Sie lange Drähte durch das Gehäuseloch
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

Gehäuse versiegeln
Gehäuse versiegeln
Gehäuse versiegeln
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

Testen Sie es aus!
Testen Sie es aus!

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: