IMA4 2019/2020 P10

De Wiki de Projets IMA
Révision datée du 10 octobre 2019 à 09:45 par Pguigo (discussion | contributions) (Liste de Matériel)


Présentation générale

Dans les sujets proposés, j'ai décidé de prendre le projet "Capteur de niveau d'eau et de pollution" dirigé par Antoine Branquart lors de la période 2018/2019.

Le but est de reprendre le projet, d'expliquer les soucis de sa non finalisation et d'enfin mener le projet à son terme. Ce projet vise la réalisation d'un système de détection de pollution dans l'eau. En effet, la pollution provoque une mauvaise qualité de l'eau, et cela engendre près de 2 millions de morts par an dû à la maladie.

La pollution est présente sous différente formes, est difficilement détectable et parfois avec une constante de temps assez longue (Certains toxiques produisent leur effet néfaste qu'après certaines années).

Il est difficile de prévoir les épisodes de pollution (qui intervient lorsque un ou plusieurs polluant dépassent la concentration limite fixés par des seuils) car les tests sont ponctuels et nécessitent des outils coûteux dans des laboratoires, ce qui prend du temps.

Le projet vise donc la réalisation d'un capteur autonome qui permet d’éviter les épisodes de pollution et d'envoyer ses résultat à un module via un couple émetteur-récepteur radio.

Description

Lors de son projet, Antoine a commencé par la réalisation d'une carte électronique avec un potentiostat. Commençons par expliquer ce qu'est un potentiostat.

Potentiostat

Un potentiostat est un outil capable de réaliser des expériences de voltamétrie cyclique simple. C'est une méthode d’électro-analyse basée sur la mesure du flux de courant résultant de la réduction ou de l'oxydation des composés tests présents en solution (ici, dans de l’eau) sous l'effet d'une variation contrôlée de la différence de potentiel entre deux électrodes spécifiques.

Le potentiostat est composé de 3 électrodes :

  • Une électrode de travail "ET" (en platine)
  • Une électrode de référence "ECS" (au calomel saturé)
  • Une contre électrode "CE" (en platine)

Le principe est d'imposer une différence de potentiel entre l'ET et L'ER et de mesurer le courant traversant l'ET.

Schéma de principe

Potentiostat1bis.png

Sur le schéma, on peut voir que l'AOP permet de maintenir la différence de potentiel entre la référence et l'électrode de travail, aussi proche possible du potentiel d'entrée de la source.

Objectifs

J'ai discuté avec Antoine à propos de son projet qu'il a continué au Vietnam. Là-bas il a designé une nouvelle carte différente de celle qu'il avait faite en France. Malheureusement, la carte n'était pas fonctionnelle. Il m'a conseillé de m'inspirer du montage qu'il avait vu (et routée) et que j'ai retrouvé dans un document. (lien vers le pdf : Fichier:Pot.pdf)

Le synoptique du système reste le même :

SynoptiqueCapteurPollution.jpg

La communication entre le microcontrôleur et le potentiostat se fera de la manière suivante. Le microcontrôleur envoie les données numériques pour générer un potentiel. Ces valeurs numériques passent à travers un DAC pour générer des valeurs analogues correspondantes. Ensuite, l'amplificateur opérationnel compare cette valeur au potentiel mesuré entre le courant dans la contre électrode jusqu'à ce que la valeur mesurée soit égale à la valeur de consigne générée par le microcontrôleur via le DAC. Ensuite, le potentiel mesuré est introduit dans un ADC, pour transmettre le tout au microcontrôleur. La transmission se fait via un bus SPI et le microcontrôleur envoie les données au module radio via également un bus SPI. Les deux modules radio communiquent via le protocole LoRa.

Antoine avait fait son potentiostat sur une carte à part, je pense qu'il est possible de faire une carte de type "shield" et de brancher ça directement sur la carte du microcontrôleur.

Pour la communication entre les deux systèmes (les deux microcontrôleurs), il est judicieux d'utiliser le protocole LoRa avec les modules radios achetés pour le projet. Enfin, pour les microcontrôleurs, les cartes Nucléo qu'Antoine utilisait au début de son projet. Cependant, ces cartes souffrent d'un manque de librairies au niveau des protocoles LoRa, et une carte arduino de basse consommation sera également envisageable.

Donc, il y aura une partie de réalisation de carte, en s'inspirant du schéma trouvé sur internet. Ensuite, la réalisation du code pour la communication radio entre les deux microcontrôleurs.

Analyse du projet

Analyse de l'ancien projet

Antoine à réalisé une carte potentiostat et à également réussi une communication entre les deux modules radio qu'il a acheté au vietnam.

Cependant, les tests réalisés avec le potentiostat qu'il a réalisé au Vietnam n'étaient pas bons. Cela vient peut-être qu'il n'a pas pu tester son capteur avec un "dummy cell", petit module qui permet de tester efficacement un potentiostat. Par ailleurs, il n'a pas réussi à assembler complètement son système.

Réunion avec M.Boé

Le 19 Septembre, j'ai eu une réunion avec M.Boé. Nous avons discuté des différends points du projet.

Tout d'abord, M.Boé m'a conforté dans mon choix de réaliser le schéma suivant :

SchematiquePotentiostat.png

Nous avons d'abord discuté du choix du microcontrôleur. Il m'a conseillé d'enlever le PIC16F1259 du schéma et d'intégrer dans le projet une carte avec un STM32F4XXX (de STMicroElectronics) qui se programme à l'aide de Mbed OS. C'est un RTOS (Real-time Operating system) qui permet de programmer des périphériques se basant sur un processeur ARM comme avec le STM32. De plus, pour la sélection de la carte STM32, je dois choisir une carte en adéquation avec un module radio LoRa compatible, et qui se branche directement sur la carte.

Par ailleurs, nous avons également discuté du DAC et des deux ADC présents sur le schéma. Ils utilisent le protocole SPI pour échanger des données. Les auteurs du pdf dans lequel se trouve le schéma on utiliser des librairies permettant l'utilisation du SPI. Le but est donc de réécrire en partie du code afin de l'adapter à mon projet.

En outre, M.Boé m'a conseillé d'ajouter des jumpers ainsi que des "tests points", afin de pouvoir déboguer la carte la plus rapidement et simplement possible.

De surcroît, la carte potentiostat sera réalisée en type "shield" afin de la brancher plus facilement sur la carte STM et d'avoir un système le plus compact possible. Il est envisageable par la suite de réfléchir sur un autre type de microcontrôleur moins gourmand en énergie.

Liste de Matériel

En adéquation avec le schéma, je reprends les composants qui sont disposés sur le schématique :

  1. LM2662 (Régulateur de tension 5V - 9V)(ref : LM2662MX/NOPB) [1] (Quantité = 1)
  2. DAC1220 (Convertisseur Numérique Analogique)(ref : DAC1220E) [2] (Quantité = 1)
  3. ADR421 (2.5V Reférence) (ref : ADR421ARZ) [3] (Quantité = 1)
  4. MCP3550 (Convertisseur Analogique Numérique) (ref : MCP3550-50E/SN) [4] (Quantité = 2)
  5. OPA4192 (AOP) (ref : OPA4192IDR) [5] (Quantité = 1)
  6. OPA2192 (AOP) (ref : OPA2192IDR) [6] (Quantité = 1)
  7. DG449 (Analog Switch) (ref : DG449DS-T1-E3) [7] (Quantité = 1)
  1. Résistances 1k ±1% de type 0805 (ref : RC0805FR-071KL) [8] (Quantité = 5)
  2. Résistances 10k ±1% de type 0805 (ref : RC0805FR-0710KL) [9] (Quantité = 2)
  3. Résistance 27 ohms ±1% de type 0805 (ref : RC0805FR-0727RL) [10] (Quantité = 1)
  4. Résistances 240k ±0.05% de type 0805 (ref : RG2012N-244-W-T1) [11] (Quantité = 2)
  5. Résistances 75k ±0.05% de type 0805 (ref : ERA-6ARW753V) [12] (Quantité = 6)
  6. Résistance 10 ohms ±0.1% de type 0805 (ref : CPF0805B10RE) [13] (Quantité = 1)
  7. Résistance 1k ±0.1% de type 0805 (ref : ERA-6AEB102V) [14] (Quantité = 1)
  8. Résistance 100k ±0.1% de type 0805 (ref : ERA-6AEB104V) [15] (Quantité = 1)
  9. Résistance 18k ±0.1% de type 0805 (ref : ERA-6AEB183V) [16] (Quantité = 1)
  10. Résistance 2k ±0.1% de type 0805 (ref : ERA-6AEB202V) [17] (Quantité = 1)
  11. Résistance 10M ±5% de type 0805 (ref : CRGS0805J10M) [18] (Quantité = 2)
  1. Capacité, 10µF 25V X7R 1210 (ref : GRM32DR71E106KA12L) [19] (Quantité = 9)
  2. Capacité, 0.1µF 25V X7R 0805 (ref : C0805C104K3RACTU) [20] (Quantité = 13)
  3. Capacité 12pF 50V NP0 0805 (ref : CL21C120JBANNNC) [21] (Quantité = 4)
  4. Capacité 3300pF 50V NP0 0805 (ref : C0805C332J5GACTU) [22] (Quantité = 1)
  5. Capacité 10nF 50V NP0 0805 (ref : C0805C103J5GACTU) [23] (Quantité = 1)
  6. Capacité 4700pF 50V NP0 0805 (ref : C0805C472K5RACTU) [24] (Quantité = 1)
  1. Diode Schottky Dual BAT721S SOT-23 (ref : BAT721S,215) [25] (quantité = 2)
  2. LED 3mm Rouge (ref : WP710A10LSRD) [26] (quantité = 2)
  3. Quartz 2.5Mhz (ref : ECS-25-S-1X) [27] (quantité = 1)
  4. Bornier Connection Electrodes (ref : 1751277) [28] (quantité = 1)
  5. Relais (ref : 9007-05-01) [29] (quantité = 1)
  6. Interrupteurs (ref : A11JP) [30] (quantité = 2)

Positionnement par rapport à l'existant

Analyse du premier concurrent

Analyse du second concurrent

Scénario d'usage du produit ou du concept envisagé

Réponse à la question difficile

Préparation du projet

Cahier des charges

Donc, après cette réunion, je peux commencer mon cahier des charges et ensuite réaliser un petit planning.

  1. Réalisation d'un potentiostat fonctionnel
  2. Communication entre le potentiostat et le STM32F4XXX fonctionnelle
  3. Communication entre l'emetteur et le recepteur LoRa fonctionnelle
  4. Assemblage fonctionnelle


Pour le planning :

  1. Réalisation du schématique & Routage de la carte du potentiostat
  2. Recherches autour du module radio & du STM32F4XXX
  3. Validation de la carte & Modifications

Choix techniques : matériel et logiciel

Liste des tâches à effectuer

Calendrier prévisionnel

Réalisation du Projet

Feuille d'heures

Tâche Prélude Heures S1 Heures S2 Heures S3 Heures S4 Heures S5 Heures S6 Heures S7 Heures S8 Heures S9 Heures S10 Total
Analyse du projet 0


Prologue

Semaine 1

Pour la séance du 26 septembre, j'ai commencé par réaliser des recherches à propos du protocole LoRa.

Protocole LoRa

Le protocole LoRa ou LoRaWAN(Long Range Wide-area network) permet la communication à bas débit d'objet à faible consommation d'énergie facilitant l'internet des objets. C'est un protocole crée par la startup grenobloise Cycléo et rachetée par Semtech en 2012. Ce protocole utilise une technique de modulation par étalement de spectre de type Chirp spread spectrum propriétaire appelée LoRa.

Un réseau LoRaWAN est composé d'équipements sans-fils basse consommation qui interagissent avec des serveurs applicatifs au travers de passerelles. La modulation utilisée entre les équipements et les passerelles est LoRa. La communication entre les passerelles et les serveurs est établie via le protocole IP au moyen d'un réseau de collecte Ethernet ou 3G. La topologie d'un réseau LoRaWAN est en étoile car un serveur applicatif est connecté à une multitude de passerelles elles-mêmes connectées à une multitude d'équipements.

Schéma d'une architecture LoRaWAN

C'est pour cela que ce protocole est parfaitement adapté aux utilisations de basse consommation d'énergie. Dans le cas de ce projet, nous pouvons imaginer le potentiostat proche d'un courant d'eau qui détermine la pollution de cette source. Ensuite, elle transmet les données collectées par le potentiostat au µC. Ce µC connecté à un module LoRa transmet à la station la plus proche, en charge de la gestion des eaux, ces données via le protocole LoRa. Ensuite, ces données sont stockées sur un serveur en attente de traitement par un opérateur.

Il est également possible d'utiliser un protocole P2P entre deux modules radio LoRa en utilisant seulement la modulation qu'offre ce protocole. Dans notre cas, nous allons nous attacher à faire communiquer deux modules radio LoRa eux-mêmes connectés à des µC STM32.

Recherche STM32

Ensuite, après avoir réalisé mes recherches à propos de ce protocole, je me suis attaché à trouver un µC de STM compatible avec des modules radio. Il existe de nombreuses combinaisons possibles. Je peux partir sur une carte de développement qui intègre directement une chip LoRa ainsi qu'un µC STM32L0 de faible consommation d'énergie. Ces cartes ont l'avantage de permettre la communication P2P entre elles, car des exemples existent directement sur Mbed.

Je peux également prendre une carte STM32F4 discovery et trouver une carte qui intègre une chip LoRa et tenter de les faire communiquer. Cependant, cette solution semble risquée.

J'ai donc trouvé une carte de développement : la carte B-L072Z-LRWAN1 (https://www.st.com/content/ccc/resource/technical/document/user_manual/group0/ac/62/15/c7/60/ac/4e/9c/DM00329995/files/DM00329995.pdf/jcr:content/translations/en.DM00329995.pdf). Cette carte est intéressante car elle intègre un module LoRa avec un µC sur la même carte. Elle est compatible Mbed, possède plusieurs bus SPI (pour permettre la communication entre le DAC et les ADC du potentiostat). Enfin, il existe des exemple de code de communication P2P entre deux cartes identiques de cette référence (https://os.mbed.com/teams/ST/code/DISCO-L072CZ-LRWAN1_LoRa_PingPong/)

Semaine 2

Etude du schéma du potentiostat

Avant de commencer la réalisation du potentiostat, il est intéressant d'étudier le schéma et les modification que je vais y apporter. (Pour repère, le schéma dont je vais parler est situé plus haut dans le wiki)

Alimentation

Pour l'alimentation, le potentiostat utilise un LM2662 qui va transformer le 5V transmis par la carte du MicroContrôleur, en 9V, afin d'alimenter les circuits intégrés commes les AOP, ou le switch DG449.

De plus, Il y a un autre circuit (ADR421) qui va permettre de fixer le Vref (2.5V) qui va être utile pour le DAC et les deux ADC.

Circuit Analogique

Le circuit analogique est rendu possible grâce aux AOP, OPA2192 & OPA4192. U7a, sur le schéma, permet de comparer la tension imposée par le microcontrôleur via le DAC à la tension de retour du potentiostat ou galvanostat selon le mode, et conduit l'électrode de travail jusqu'a ce que les deux valeurs soient égales. La résistance R5 et la capacité C24 permettent de fixer la bande passante de U7a. Les valeurs donnent une fréquence d'environ 3Khz, ce qui reste largement supérieur à la constante de temps d'une mesure, et donc ne risque pas d'avoir un impact sur la mesure.

Sur le schéma, on remarque la présence d'un relais K1. Ce relais permet d'activer l’électrode de travail lorsque le microcontrôleur envoie le signal "CELL_ON", et une Led permet de signaler la mise en route de la mesure. Comme je me base sur un microcontrôleur différent, je pense remplacer le signal de commande par un interrupteur. L'interrupteur connectera le reste du circuit à du 5V. Lorsque ça sera activé, le courant passera dans la bobine ainsi que dans la led, ce qui sera équivalent au circuit antérieur, et ainsi activer la mesure via l'électrode de travail.

Le retour du potentiostat/galvanostat est récupéré par les AOP U7b, U7d et U7c. U7d et U7b permettent d'isoler les électrodes et le reste du montage grâce à leurs grandes impédances d'entrée, et donc d'avoir aucun courant entre l'électrode SE et l'électrode RE. Les tensions récupérées sont ensuite transmises à U7c qui fonctionne en amplificateur différentiel.

Avec Vref = 2.5V et R7 = 75kOmh & R6 = 240kOmh, la différence de potentiel entre l'électrode SE et l'électrode RE qui en entrée (avant U7c) varie de -8V et +8V, et en sortie de 0-5V, ce qui permet de matcher correctement avec les entrées des deux ADC qui vont permettre de transmettre les données au microcontrôleur.

Le retour galvanique est acquis grâce aux résistances de shunt qui permettent de transformer le courant de retour en une tension équivalente. Les relais sont là pour choisir la précision du galvanostat. Dans la plus grande range, le courant est compris entre -25mA et 25mA (avec R10). U9a convertit ce courant avec l'aide de la résistance associée en une tension comprise entre 0 et 5V, idéal pour les ADC ensuite. Chaque résistance divise par 10 le courant capté et permet une meilleur précision.

Comme le galvanostat n'est pas l'objectif premier de la carte, je vais enlever les relais (qui on un certain coût) et conserver seulement la résistance R10 directement connectée à la masse.

Enfin, les signaux retournés par les électrodes et traités par les AOP U7 et U9 sont envoyés vers DG449, qui est un switch analogique. Il permet de sélectionner dans quel mode se trouve la carte. Lorsque l'entrée IN est à 0, le switch met la carte en mode potentiostat. Au contraire, si IN est à 1, on est en mode galvanostat.

Comme l'entrée IN est contrôlée par le microcontrôleur, j'ai choisi de modifier cette partie. A la place, je vais mettre deux résistance de 10MOhm et 10Mohm avec un interrupteur. Lorsque l'interrupteur sera ouvert, l'entrée IN connectée à la résistance de 10M sera forcée à 0 (la masse), et lorsque l'interrupteur sera fermé, le niveau logique 1 (5V) sera sur l'entrée IN, avec un courant limité à 0.5µA, ce qui est inférieur à l'ampérage maximum que l'entrée peut recevoir (selon la documentation). On pourra alors choisir entre le mode galvanostat ou potentiostat avec cet interrupteur.

Conversion Analogique/Numérique

Les retours Vmes et Imes sont ensuite introduits dans les deux ADC U4 et U5 qui sont des MCP3550 qui sont d'une grande précision et permettent de filtrer le bruit d'entrée. En entrée de chaque ADC, un filtre est ajouté afin de réduire le bruit et d'améliorer la conversion.

Conversion Numérique/Analogique

Le DAC reçoit du Microcontrôleur les données numériques via le bus SPI. Lors de mes recherches, j'ai trouvé des bibliothèques sur Mbed dédiées à la carte de developpement B-L072Z-LRWAN1, ce qui facilera la communication. Ensuite, le DAC envoie la tension de contrôle à U7a qui ensuite va comparer au valeur retournées par les electrodes.

Documents Rendus