Table des matières:

Stéthoscope spectral à transformation rapide Hartley : 22 étapes
Stéthoscope spectral à transformation rapide Hartley : 22 étapes

Vidéo: Stéthoscope spectral à transformation rapide Hartley : 22 étapes

Vidéo: Stéthoscope spectral à transformation rapide Hartley : 22 étapes
Vidéo: Heart Sounds .....Lub-Dub!💓💞💗💖 2024, Juillet
Anonim
Stéthoscope spectral à transformation rapide Hartley
Stéthoscope spectral à transformation rapide Hartley

Dans ce instructable, vous apprendrez à fabriquer un stéthoscope spectral à l'aide de la transformation rapide de Hartley. Cela peut être utilisé pour visualiser les bruits cardiaques et pulmonaires.

Étape 1: Matériaux

Écran LCD 1,8 (7,50 $ sur Amazon)

Arduino Uno ou équivalent (7,00 $ sur Gearbest)

Amplificateur à électret (6,95 $ sur Adafruit)

Condensateur 100 µF (0,79 $)

Fils et cavaliers (4,00 $)

Prise stéréo 3,5 mm (1,50 $)

Potentiomètre 10kOhm (2,00 $)

Commutateur momentané (1,50 $)

Étape 2: Outils

Fer à souder

Pistolet à colle chaude

Imprimante 3D…ou un ami avec une imprimante 3D (possible de faire aussi avec du carton)

Coupe-fil

Planche à pain

Étape 3: Impression 3D

La première consiste à imprimer en 3D les fichiers.stl attachés à cette étape. J'ai imprimé les deux fichiers en utilisant le matériel/les paramètres suivants:

Matériel: PLA

Hauteur de la couche: 0,1 mm

Épaisseur du mur/haut/bas: 0,8 mm

Température d'impression: 200⁰C

Température du lit: 60⁰C

Assistance activée à 10 %

Étape 4: Construire un circuit

En utilisant les composants de la section des matériaux, construisez le circuit. Je monte toujours le circuit sur une planche à pain d'abord pour m'assurer qu'il fonctionne correctement avant de toucher le fer à souder.

Étape 5: Câblage de l'écran LCD

Câblage ACL
Câblage ACL

À l'aide de la figure jointe à cette étape, soudez les fils à sept des huit broches de l'écran LCD. Ces fils devront avoir une longueur d'environ 3 pieds, à l'exception de la masse et des broches +5V (celles-ci doivent seulement mesurer 2 à 3 pouces)

Étape 6: Câblage du micro/amplificateur

Câblage micro/amplificateur
Câblage micro/amplificateur

À l'aide de la figure jointe à cette étape, soudez trois fils aux broches +5V, Ground et Out du microphone/amplificateur Adafruit. Ceux-ci doivent seulement mesurer environ 2 à 3 pouces de longueur.

Étape 7: Câblage du commutateur momentané

Branchez un fil de 2-3 pouces à chacune des deux cosses de l'interrupteur momentané.

Étape 8: Câblage du potentiomètre

En utilisant la figure de l'étape 6, soudez trois fils d'environ 2-3 pouces de longueur aux trois cosses du potentiomètre.

Étape 9: Câblage de la prise casque

Soudez trois fils à la bague, à la pointe et aux cosses du manchon de la prise casque. J'ai utilisé une prise d'un métronome qui était déjà câblé. Si vous ne savez pas ce que sont la bague, la pointe et les cosses de manchon, recherchez simplement sur Google, il y a beaucoup de bonnes images sur le câblage des prises stéréo.

Étape 10: sortie microphone/amplificateur

Après avoir soudé les fils du micro/ampli, du potentiomètre et de la prise casque, soudez un fil d'environ trois pieds de long au fil de sortie de l'amplificateur de microphone. Ce fil sera plus tard connecté à la broche A0 de l'arduino.

Étape 11: Suite de la sortie microphone/amplificateur

Soudez un deuxième fil au fil "out" du micro/amplificateur. Ce fil doit être soudé à un condensateur de 100 microFarads. Si vous utilisez un condensateur électrolytique, assurez-vous que le côté positif est connecté à ce fil.

Étape 12: Composants dans le boîtier

Composants dans le boîtier
Composants dans le boîtier
Composants dans le boîtier
Composants dans le boîtier

Une fois tous les fils soudés sur les composants, placez les composants à leurs emplacements respectifs en suivant les figures jointes à cette étape. J'ai utilisé de la colle chaude pour fixer le microphone et la prise casque en place.

Étape 13: Soudage dans le boîtier

Une fois tous les composants fixés dans le boîtier, soudez tous les fils de terre ensemble. Il devrait y en avoir un sur l'écran LCD, un sur le micro/ampli et un sur le manchon de la prise casque. Soudez également les fils +5V ensemble et un fil de l'interrupteur momentané. Encore une fois, il devrait y en avoir un sur l'écran LCD, un sur le micro/amplificateur et un sur l'interrupteur momentané.

Étape 14: +5 V, fils étendus GND

Maintenant, coupez deux morceaux de fil d'environ 3 pieds de longueur. Soudez un au groupe de fils de terre et soudez l'autre au fil ouvert sur l'interrupteur momentané.

Étape 15: Glissez les fils longs à travers le trou du boîtier

Glisser les fils longs à travers le trou du boîtier
Glisser les fils longs à travers le trou du boîtier

Maintenant, vous devriez avoir un total de huit fils d'environ 3 pieds de long. Placez-les dans le trou non rempli du boîtier. Voir la figure jointe à cette étape

Étape 16: thermorétractable

Une fois toutes les soudures terminées, assurez-vous que les fils exposés sont recouverts. J'ai utilisé une gaine thermorétractable, mais le ruban électrique fonctionne également très bien.

Étape 17: Sceller le boîtier

Boîtier d'étanchéité
Boîtier d'étanchéité
Boîtier d'étanchéité
Boîtier d'étanchéité

Prenez la moitié du boîtier contenant l'écran LCD et glissez-la sur l'autre moitié du boîtier contenant les autres composants. Tout en poussant les deux pièces ensemble, collez-les à chaud pour fixer le boîtier ensemble.

Étape 18: Connectez-vous à Arduino

Les huit longs fils restants sont connectés directement à leurs broches Arduino respectives décrites dans les schémas du circuit. Assurez-vous que chaque fois que vous soudez l'un de ces longs fils de 3 pieds dans le circuit, vous mettez un morceau de ruban adhésif à l'autre extrémité indiquant à quelle broche Arduino il va !

Étape 19: Arduino IDE/Bibliothèques

Vous devrez télécharger l'IDE Arduino. Pour ce croquis, j'ai utilisé trois bibliothèques différentes: FHT.h, SPI.h et TFT.h. Si vous ne savez pas comment télécharger les bibliothèques Arduino, veuillez consulter https://www.arduino.cc/en/Guide/Libraries. La bibliothèque FHT.h a été téléchargée sur openmusiclabs.com. Les deux autres ont été téléchargés sur GitHub.

Étape 20: Esquisse Arduino

Le code utilise la Fast Hartley Transform (FHT) pour changer le domaine temporel en un domaine fréquentiel. Cela peut également être fait en utilisant la transformée de Fourier rapide (FFT), mais la FHT est beaucoup plus rapide. La FFT et la FHT sont des idées très fondamentales dans le traitement du signal et très amusantes à apprendre. Je suggère de faire un peu de lecture vous-même, si vous êtes intéressé, voyez. L'exemple de code FHT que j'ai copié sur le site Web d'Open Music Labs affichait initialement l'amplitude de chaque fréquence sous forme de sortie logarithmique ou en décibels. J'ai changé cela pour sortir les bacs de fréquence sur une échelle linéaire. C'est parce que l'échelle linéaire est une meilleure représentation visuelle de la façon dont les humains entendent le son. La boucle for() à la fin sert à dessiner l'amplitude de chaque fréquence sur l'écran LCD. Le spectre FHT complet engloberait toutes les tranches de fréquences de i=0 à i<128. Vous remarquerez que ma boucle for() va de i=5 à i<40, c'est parce que les fréquences importantes pour diagnostiquer les affections pulmonaires sont typiquement comprises entre 150Hz et 3.5khz, j'ai décidé de monter jusqu'à environ 4kHz. Cela peut être ajusté si vous souhaitez afficher le spectre de fréquences complet.

[code]

//Code du stéthoscope numérique

//Bibliothèque Fast Hartley Transform téléchargée depuis openmusiclabs

#define LIN_OUT 1 //définir FHT pour produire une sortie linéaire

#define LOG_OUT 0 //désactiver la sortie logarithmique FHT

#define FHT_N 256 //Numéro d'échantillon FHT

#include //inclure la bibliothèque FHT

#include //inclure la bibliothèque TFT

#include //inclure la bibliothèque SPI

#define cs 10 // définir la broche lcd cs sur la broche arduino 10

#define dc 9 // définir la broche lcd dc sur la broche arduino 9

#define rst 8 // définir la broche de réinitialisation de l'écran LCD sur la broche 8 de l'arduino

TFT myScreen = TFT(cs, dc, rst); // déclarer le nom de l'écran TFT

void setup() {

//Serial.begin(9600);//définir le taux d'échantillonnage

myScreen.begin();//initialiser l'écran TFT

myScreen.background (0, 0, 0); // définir l'arrière-plan sur noir

ADCSRA=0xe5;//définir adc en mode de fonctionnement libre

ADMUX=0x40;//utiliser adc0

}

boucle vide() {

while(1){ // réduit la gigue cli(); // L'interruption UDRE ralentit de cette façon sur arduino1.0

for (int i = 0; i < FHT_N; i++) { // sauvegarde 256 échantillons

while(!(ADCSRA & 0x10)); // attend que adc soit prêt

ADCSRA = 0xf5; // redémarre l'octet adc

m = ADCL; // récupère l'octet de données adc

j = ADCH; entier k = (j << 8) | m; // forme en un int

k -= 0x0200; // forme dans un int signé

k <<= 6; // forme dans un 16b signé int

fht_input = k; // met les données réelles dans des bacs

}

fht_window(); // fenêtre les données pour une meilleure réponse en fréquence

fht_reorder(); // réorganise les données avant de faire le fht

fht_run(); // traite les données dans le fht

fht_mag_lin(); // prend la sortie du fht

sei();

pour (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]

Étape 21: Testez-le

Testez-le !
Testez-le !

J'ai utilisé un générateur de sons en ligne (https://www.szynalski.com/tone-generator/) pour confirmer que le code fonctionnait correctement. Après avoir vérifié que cela fonctionne, appuyez sur la cloche du stéthoscope jusqu'à votre poitrine, respirez profondément et voyez quelles fréquences sont présentes !!

Étape 22: Travail futur

**Remarque: je suis chimiste, pas ingénieur ou informaticien**. Il y aura probablement des erreurs et des améliorations dans la conception et le code. Cela étant dit, je pense que c'est un bon début pour quelque chose qui peut finir par être très utile et peu coûteux. Les puces suivantes sont des améliorations futures que j'aimerais apporter et j'espère que certains d'entre vous essaieront également de l'améliorer !

· Rendre l'appareil mobile. Je n'ai pas une grande expérience avec les processeurs ou autres microcontrôleurs, mais il faudrait suffisamment de mémoire pour stocker toute la bibliothèque FHT, ou éventuellement Bluetooth.

· Introduire des calculs d'analyse statistique dans le code. Par exemple, une respiration sifflante a généralement une fréquence fondamentale égale ou supérieure à 400 Hz et dure au moins 250 ms. Les rhonchi se produisent à une fréquence fondamentale d'environ 200 Hz ou moins et durent au moins 250 ms. De nombreux autres sons pulmonaires sont définis et indiquent des problèmes de santé (https://commongiant.github.io/iSonea-Physicians/assets/publications/7_ISN-charbonneau-Euro-resp-Jour-1995-1942-full.pdf). Je pense que c'est quelque chose qui peut être vérifié dans le code en comparant le signal des bacs de fréquence après un certain nombre de cycles à travers le FHT, puis en exécutant la fonction millis () pour voir combien de temps il était présent, puis en le comparant au bruit de fond du calcul FHT. Je suis convaincu que ces choses peuvent être faites!

J'espère que vous vous êtes tous amusés avec ce projet et si vous avez des questions, n'hésitez pas à commenter et je vous répondrai dès que possible ! J'ai hâte de voir les commentaires.

Conseillé: