Amplificateur AC 

Amplificateur AC 

Introduction

Mon travail de diplôme est mandaté par l’entreprise Y-YBar. Y-YBar produit des appareils médicaux utiles dans la recherche en ophtalmologie. Les appareils qu’elle produit sont basés sur la technique de fluxmétrie Doppler par laser, appelée LDF (Laser Doppler Flowmetry) en anglais.
La LDF est, entre autre, utilisée dans la fluxmétrie dans l’oeil. La fluxmétrie dans l’oeil permet de déduire des paramètres hémodynamiques. Ces paramètres sont utiles pour la détection de maladies dans l’oeil. Ils sont également utiles dans la recherche scientifique.
M. Francesco Marazzi, un élève de l’université de Modène et de Reggio d’Émilie, a développé un système permettant d’acquérir et de traiter un signal provenant de la LDF, appelé signal Doppler. L’acquisition du signal est fait sur une carte embarquée tandis que le traitement de ce dernier, calculant les paramètres hémodynamiques, est fait sur un ordinateur.
Mon travail consiste à créer un nouveau système d’acquisition et de traitement d’un signal Doppler. Les fonctionnalités du système devront être proches du système développé par M. Francesco Marazzi, à l’exception que le calcul des paramètres hémodynamiques devra se faire directement sur la carte embarquée.

 Laser Doppler Flowmetry

La LDF est une technique basée sur l’effet Doppler. Elle est, entre autre, utilisée dans la fluxmétrie dans l’oeil. Le signal Doppler à acquérir et à traiter, pour obtenir les paramètres hémodynamiques, provient directement de cette technique.
Un laser émet un signal optique avec une fréquence de base, f0 Le signal, réfléchi par l’oeil, est décalé d’une fréquence f. Lorsque le signal est réfléchi sur le tissu de l’oeil, la fréquence f vaut zéro, ce n’est pas le cas lorsqu’il est réfléchi par les cellules rouges. Ces décalages en fréquence sont directement explicables par l’effet Doppler Le signal est intercepté sur un photodétecteur qui le convertit en un signal électrique. C’est ce signal électrique qui appelé signal Doppler.

 Effet Doppler

L’effet Doppler permet d’expliquer les décalages en fréquence que subit le signal optique lorsqu’il est réfléchi Le signal optique est réfléchi sur une cellule rouge, considérée comme la source. Du fait de la vitesse de déplacement de cette dernière, le signal perçu par le récepteur, dans notre cas, un photodétecteur, est décalé d’une fréquence .

Système existant

Ce chapitre décrit le système existant, développé par M. Francesco Marazzi. Il permet de comprendre quelles fonctionnalités son système contient, et quelles sont les fonctionnalités souhaitées, en plus de celles existantes, pour le nouveau système.

 Schéma bloc

Son système  comporte quatre étages distincts :
Une électronique qui amplifie la composante AC du signal Doppler et coupe les fréquences supérieures à 40kHz (la bande de fréquence utile du signal va de 30Hz à 30kHz, mais les fréquences entre 30kHz et 40kHz sont utiles pour calculer le bruit) Une Discovery board qui échantillonne le signal et sauvegarde temporairement ses valeurs dans un buffer Un Raspberry qui met à disposition une interface web de pilotage du système et de récupération des valeurs Un ordinateur client qui calcule les paramètres hémodynamiques.

 Electronique

L’électronique est alimentée en +5V et +-12V. Elle permet D’inverser le signal Doppler De choisir entre le signal inversé ou non inversé grâce à un jumper D’amplifier la composante AC du signal d’un facteur dépendant d’une résistance interchangeable De régler sa composante DC grâce à un potentiomètre De couper les fréquencesdu signal supérieures à 40kHz à l’aide d’un filtre passe-bas numérique.

 Schéma bloc de l’électronique

Améliorations souhaitées pour le nouveau système :
Alimentation unique en +5V (utilisable depuis le Raspberry) de l’électronique Réglage du facteur d’amplification grâce à un potentiomètre Coupure des fréquences avec un filtre analogique (un filtre numérique utilise une horloge qui peut apporter des problèmes de fréquences parasites).

Notes :

L’étage d’inversion permet de réinverser le signal Doppler lorsqu’il est inversé en entrée, se situant entre -1V et 0V. Le réglage de la composante DC permet de supprimer le bruit de fond.

 Discovery board

Les fonctionnalités de la Discovery board sont Echantillonner le signal Doppler mis en forme par l’électronique Sauvegarder les valeurs dans un buffer Envoyer les valeurs via SPI (Serial Peripheral Interface) au Raspberry Une Discovery board est utilisée parce que le système d’exploitation du Raspberry, Raspbian, n’est pas temps réel. Ainsi, il est difficile de garantir une fréquence d’échantillonnage constante lorsqu’un ADC (Analog to Digital Converter) est directement branché sur le Raspberry. L’utilisation du microcontrôleur de la Discovery board, en amont du Raspberry, pallie à ce problème. Pour ce qui est du buffer, il est nécessaire, car la vitesse d’échantillonnage du microcontrôleur et la vitesse de réception du Raspberry ne sont pas les mêmes. Le buffer est rempli de la manière suivante Les valeurs y sont sauvegardées une à une. Une fois le buffer rempli à moitié, son contenu est envoyé via SPI au Raspberry. Durant cette étape, le buffer continue de se remplir. Et ainsi de suite.

Nouveau système

Ce chapitre présente le nouveau système développé. Il explique le travail effectué, permet de comprendre quelles sont les fonctionnalités du nouveau système, et comment elles ont été implémentées.

 Schéma bloc

Le nouveau système  comprend une électronique qui amplifie la composante AC du signal Doppler et coupe les fréquences supérieures à 40kHz  Un ADC qui échantillonne le signal mis en forme et transmet les valeurs via SPI à un Raspberry. Ce même Raspberry embarque une interface web permettant de déclencher des mesures et de calculer les paramètres hémodynamiques. Lesquels sont récupérables par un ordinateur client depuis l’interface web.

 Electronique

Dans le cadre de la nouvelle électronique, un convertisseur de tension permet de n’avoir qu’une seule alimentation pour tout le circuit. Il génère des tensions de +-12V à partir d’une tension de +5V. Un circuit inverse le signal d’entrée.
Un jumper permet, ensuite, de choisir entre l’entrée inversée ou non inversée. La composante AC du signal est amplifiée, et sa composante DC est réglée. De plus, les fréquences supérieures à 40kHz sont coupées.

 Raspberry

L’architecture du Raspberry  contient un serveur Apache qui fournit une interface web à un ordinateur client, via le réseau LAN (Local Area Network). L’interface web se connecte au serveur WebSocket dont les fonctionnalités sont implémentées dans ws_server, basé sur Node.js. Le client peut envoyer différentes requêtes pour recevoir, par exemple, les valeurs échantillonnées en direct. Suivant la requête du client, le serveur WebSocket démarre, soit GetVoltage, soit GetExperiment.
Ces programmes retournent des résultats au serveur WebSocket, qui les envoie au client. Le Raspberry possède ainsi 4 programmes distincts :
GetVoltage échantillonne le signal Doppler à une fréquence de 2Hz (le but de ce programme est de donner une idée du signal au client. Les valeurs échantillonnées sont transmises en direct sur l’interface web, voilà pourquoi la fréquence d’échantillonnage est basse) GetExperiment échantillonne le signal Doppler à une fréquence de 100kHz, calcule les paramètres hémodynamiques et sauvegarde les résultats dans des fichiers ws_client contient l’interface web qui est fournie au client par le serveur Apache ws_server contient le serveur WebSocket, basé sur Node.js.

Les librairies utilisées par les programmes sont :

bcm2835 pour l’utilisation du SPI sur le Raspberry, écrite en C FFTW pour le calcul de la FFT (Fast Fourrier Transform), nécessaire pour calculer le spectre de puissance, écrite en C Bootstrap pour le style de l’interface web, écrite en CSS (Cascading Style Sheets) et JavaScript jQuery pour les fonctionnalités de l’interface web, écrite en JavaScript Chart.js pour l’implémentation de graphiques dans l’interface web, écrite en CSS et JavaScript ws pour l’implémentation d’un serveur WebSocket, écrite pour Node.js, en JavaScript.

Notes:

Apache est un serveur HTTP (HyperText Transfer Protocol). Node.js est une librairie serveur JavaScript. UnWebSocket est un canal de communication bidirectionnel entre un client et un serveur.

 GetVoltage

Ce programme a été écrit en C et il est exécutable de cette manière :
sudo ./ GetVoltage <I n t e r v a l in ms between each sampling> Le but de ce programme est d’échantillonner les données qui vont être transmises en direct au client, lui donnant un aperçu du signal. La fréquence d’échantillonnage est basse (2Hz). Elle est fixée par des contraintes de l’interface web. A chaque échantillonnage, le programme écrit dans la console la valeur échantillonnée en mV. Le programme est démarré par le server WebSocket.

 ws_client

C’est l’interface web (Annexe A.6) de pilotage du Raspberry. Elle est fournie par Apache lorsqu’un ordinateur client tape l’adresse IP du Raspberry dans son navigateur. En haut à droite dans l’interface se trouvent les appareils de mesure (les Raspberry) Ceux qui sont utilisables sont écrits en vert, les autres étant écrits en rouge.

Elle comporte trois onglets : Préférences pour saisir la façon dont va se dérouler l’expérience (durée, fréquence de départ et de fin, etc.) Subject pour saisir les informations sur la patient (nom, prénom, etc.) Results pour visualiser le signal échantillonné en direct, démarrer l’expérience et récupérer les résultats.
L’interface se connecte au serveur WebSocket. Une requête du client est dans le format JSON (JavaScript Object Notation). Elle doit contenir un nom de commande ainsi que des paramètres. Une réponse du serveur est aussi dans ce format. Par exemple, le message envoyé par le client pour recevoir les valeurs échantillonnées en direct toutes les 500ms est  Un diagramme de séquence montre les messages échangés. L’interface demande au serveur de recevoir les données en direct, avec un interval de 500ms entre chaque réception. L’utilisateur renseigne les données de l’expérience et la démarre. Une nouvelle requête est envoyée au serveur avec les données saisies. Les résultats de l’expérience sont retournés et l’utilisateur peut récupérer ces derniers.
Un contrôle des données de l’expérience est fait côté serveur. Si l’utilisateur essaie de démarrer une expérience sans avoir renseigné correctement les données de cette dernière, il obtient des messages d’erreur Lorsque l’expérience est finie, les résultats sont retournés à l’utilisateur  L’utilisateur dispose d’un lien où il peut télécharger les fichiers de résultats.

 ws_server

Le serveur WebSocket a été implémenté dans Node.js. Il se lance de la manière suivante:
sudo node s e rve r . j s Comme le Raspberry peut être éteint, il a fallu trouver une manière de lancer automatiquement le serveur au démarrage. Ainsi, la commande de lancement du serveur a été ajoutée dans le fichier rc.local du Raspberry.
Les WebSockets ont été utilisés afin d’avoir une connexion bidirectionnelle entre le client et le serveur. Ceci permet de développer une interface qui devient très fluide, sans besoin de faire des recharges de page, comme c’est le cas pour une application web standard. Son fonctionnement est le suivant : Lorsqu’il reçoit une requête du client, il détermine quel programme lancer. Il lance le programme par le biais de la console. Le programme s’exécute ensuite et les informations qu’il écrit dans la console sont récupérées par ce dernier. Ces informations sont envoyées au client. Le serveur n’accepte qu’un seul client à la fois. Ceci pour éviter que plusieurs expériences soient lancées en même temps sur le Raspberry, celui-ci ne possédant qu’un ADC.

Notes :

Le fichier rc.local est utile pour l’exécution de commandes au démarrage du Raspberry.

  Système complet

Il a été vu que la FFT obtenue n’est pas parfaite. Des tests ont été fait afin de voir les répercussions sur les paramètres hémodynamiques avec un signal Doppler, Pour générer ce dernier, un laser, un photodétecteur, une roue en téflon et un moteur ont été utilisés Le moteur DC permet de faire tourner la roue à un vitesse de rotation qui est proportionnelle à la tension qui lui est apppliquée. Le moteur a été alimenté avec différentes tensions. Les résultats attendus sont que le paramètre ChBVel varie linéairement en fonction de la tension appliquée sur le moteur. Le paramètre ChBVol ne doit pas varier. Le paramètre ChBVel varie linéairement en fonction de la vitesse de la roue  La paramètre ChBVol varie peu avec une différence entre la plus grande et la plus petite valeur de 4.55% .

Conclusion

Le système développé par M. Francesco Marazzi, basé sur la Fluxmétrie Doppler par Laser (LDF), permet d’extraire les paramètres hémodynamiques d’un signal Doppler. Le signal est échantillonné sur une carte embarquée et le calcul des paramètres hémodynamiques est fait sur un ordinateur.
Dans le cadre de mon travail, l’objectif principal était de créer un nouveau système dont le calcul des paramètres hémodynamiques soit fait directement sur la carte embarquée. Ce travail était aussi l’occasion d’apporter des améliorations pour le nouveau système.
La nouvelle électronique est maintenant plus simple au niveau des branchements Une seul tension d’alimentation est requise, prise sur le Raspberry. Le facteur d’amplification de la composante AC peut être réglé à l’aide d’un potentiomètre. Le filtre anti-repliement numérique a été changé par un analogique, évitant les problèmes d’horloge du filtre numérique qui ajoutaient du bruit sur le signal.
La Discovery board a été remplacée par un ADC, simplifiant le système et le rendant plus compact. En contrepartie, des problématiques de temps réel sont apparues. Ces considérations ont été prises en compte dans le développement de l’application en utilisant un minuteur système temps réel.
Malgré ces précautions, les tests ont révélé que la transformée de Fourier calculée à partir des valeurs échantillonnées d’un sinus de référence n’était pas parfaite. A partir de cela, des tests complémentaires ont été réalisés afin de vérifier l’impact de ces problèmes sur le calcul des paramètres hémodynamiques.
Lors de ces tests complémentaires, un sinus dont la fréquence a été variée, a démontré que les résultats obtenus étaient satisfaisants. Effectivement, le paramètre ChBVel, correspondant à la vitesse de déplacement du sang, varie linéairement en fonction de la fréquence avec un coefficient de détermination R2 de 1. Le paramètre ChBVol, quant à lui, associée au volume du sang reste quasi constant avec une variation maximale de 3.85%. Le cas où l’amplitude d’un sinus a été variée montre également de bons résultats Le paramètres ChBVol varie linéairement en fonction de l’amplitude avec un coefficient de détermination R2 de 0.951. Le paramètre ChBVel est constant avec un variation maximale de 0.06%. Ainsi, ces tests ont donnés des resultats prometteurs. Pour valider ce nouveau système, celui-ci a été testé dans son intégralité en incluant un laser et un photodetecteur pour réaliser une vraie mesure de signal Doppler. Naturellement, il fallait un système en mouvement permettant d’engendrer l’effet Doppler, un disque tournant en téflon a donc été utilisé. Les résultats ont également été satisfaisants. Effectivement, le paramètre ChBVel varie linéairement en fonction de la tension d’alimentation du moteur. Le coefficiant de détermination R2 est 0.9686. Pour ce qui est du paramètre ChBVol, il reste constant avec une variation maximale de 4.55%.Au niveau du portage du calcul des paramètres hémodynamiques sur le Raspberry, les optimisations faites donnent de bons résultats : Pour 30s de données, un temps de calcul d’environ 2s est nécessaire.

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela chatpfe.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

1 Introduction
1.1 Laser Doppler Flowmetry
1.2 Effet Doppler
1.3 Traitement du signal Doppler 
2 Système existant 5
2.1 Schéma bloc
2.2 Electronique
2.3 Discovery board
2.4 Raspberry
2.5 Ordinateur client 
3 Nouveau système
3.1 Schéma bloc
3.2 Electronique 
3.2.1 Convertisseur de tension
3.2.2 Inverseur
3.2.3 Amplificateur AC 
3.2.4 Régleur DC
3.2.5 Filtre anti-repliement
3.3 Convertisseur analogique-numérique
3.4 Raspberry
3.4.1 GetVoltage
3.4.2 GetExperiment
Main 
AdcData 
FramesSelection 
DataProcessing
HemodynamicParamters 
3.4.3 ws_client
3.4.4 ws_server
4 Tests
4.1 Electronique 
4.1.1 Convertisseur de tension
4.1.2 Inverseur
4.1.3 Amplificateur AC 
4.1.4 Régleur DC
4.1.5 Filtre anti-repliement
4.2 GetVoltage 
4.3 GetExperiment
4.3.1 FFT et spectre de puissance
4.3.2 Echantillonnage à 100kHz
4.3.3 Calcul des paramètres hémodynamiques 
En fonction de la fréquence d’un signal sinusoïdal
En fonction de l’amplitude d’un signal sinusoïdal
4.4 Système complet
5 Conclusion

Rapport PFE, mémoire et thèse PDFTélécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *