IMA5 2019/2020 P04
Sommaire
- 1 Présentation générale
- 2 Préparation du projet
- 3 Réalisation du Projet
- 3.1 Introduction
- 3.2 Carnet de route
- 3.2.1 Semaine 0 : mercredi 11 septembre
- 3.2.2 Semaine 1 : mercredi 18 septembre
- 3.2.3 Semaine 2 : mercredi 25 septembre
- 3.2.4 Semaine 3 : mercredi 2 octobre
- 3.2.5 Semaine 4 : mercredi 9 octobre
- 3.2.6 Semaine 5 : mercredi 16 octobre
- 3.2.7 Semaine 6 et 7 : dimanche 3 novembre
- 3.2.8 Semaine 8 : dimanche 10 novembre
- 3.2.9 Semaine 9 : dimanche 17 novembre
- 3.2.10 Semaine 10 : dimanche 24 novembre
- 3.2.11 Semaine 11 : dimanche 1 décembre
- 3.2.12 Semaine 12 : dimanche 8 décembre
- 3.2.13 Semaine 13 : mardi 17 décembre
- 3.2.14 Post soutenance
- 3.3 Commande de matériel
- 4 Conclusion
- 5 Ressources utilisées
- 6 Documents Rendus
Présentation générale
- Nom du projet : Voltmètre connecté
- Membre du projet : HAVARD Nicolas
- Superviseur du projet : M. CHEVALIER Florian
- Résumé : Création d'une solution de remplacement pour les afficheurs des bancs de tests de la salle E001 et ajout d'un écran de supervision de ces tensions sur l'ordinateur de l'enseignant.
Description
Photos du panneau de contrôle d'une des paillasses de la salle E001
Lors des travaux pratiques d'électrotechnique, les élèves ingénieurs de Polytech suivant la formation Informatique, Microélectronique et Automatique ont pu observer un mal se propageant dans la salle : l'extinction des afficheurs permettant la lecture de la tension que règlent les étudiants pour alimenter divers appareils tels que des machines industrielles.
Cette extinction est due à l'utilisation d'un circuit non isolé du circuit de puissance et donc sensible aux appels de courant, détruisant par conséquent le circuit.
Afin de résoudre ce problème, M. CHEVALIER a donc demandé à un de ces étudiants de fournir une solution durable dans le cadre de son PFE, afin d'assurer la possibilité de ses successeurs de participer à ces travaux pratiques. De plus, ce projet permettra de connecter ces afficheurs à l'ordinateur du superviseur de ces travaux pratiques afin de surveiller les tensions en sortie des générateurs depuis son bureau.
Objectifs
L'objectif principal de ce projet est de remplacer les actuels afficheurs des bancs de tests de la salle E001 par une solution isolée du circuit de puissance afin d'éviter la destruction du matériel.
Le projet devra ensuite répondre au besoin d'une surveillance centralisée sur l'écran du professeur permettant la visualisation des tensions des générateurs de chaque bancs de tests.
Le dernier objectif est la rédaction d'un protocole de sécurité permettant d'informer les futurs opérateurs de la bonne utilisation de ce nouveau matériel.
Préparation du projet
Cahier des charges
En début de projet, un certain nombre de points ont été abordé : ceux-ci précisent aussi bien les attentes du projet que les moyens mis à disposition pour sa réussite.
-
Le projet consistera à mettre au point un appareil présent dans chacun des bancs de travaux pratiques de la salle E001 afin de mesurer la tension présente aux bornes des trois sources de tensions variables. * Ces sources étant constituées d’un générateur de tension variable triphasée pouvant atteindre 400 VAC efficace lié à une source de tension continue allant jusqu’à 250 VDC, un interrupteur permettant de passer de l’un à l’autre, ainsi qu’un dernier générateur de tension continue atteignant 250 VDC, indépendant des deux autres sources.
-
Contrairement au système utilisé jusqu’alors, le projet devra permettre la mise en place d’une solution assurant l’isolation galvanique entre le circuit de puissance et le circuit de mesures afin d’assurer la pérennité de celle-ci. La précision des mesures, elles, devront être de ±2 V environ.
-
La solution devra permettre l’affichage des tensions sur le banc de travaux pratiques via des afficheurs 7 segments placés aux emplacements dédiés, qui sont ceux utilisés aujourd’hui. Ces emplacements sont au nombre de trois : celui à gauche du tableau de bord permet d’afficher la tension du générateur de tension continue isolé des deux autres, qui se trouvent à droite du banc.
-
La carte de mesures sera alimentée par une alimentation 12 VDC, présente sur chacune des paillasses. Elle aura aussi à sa disposition un câble Ethernet relié au PC central de la salle E001 afin d’y envoyer les données mesurées pour les afficher sur un écran à disposition de l’encadrant du TP.
-
Enfin, la solution ne devra nécessiter aucune maintenance quelconque, qu’elle soit logicielle ou matérielle. Il est ainsi demandé de ne pas utiliser de batteries pour alimenter le module.
Choix techniques : matériel et logiciel
Matériel à disposition : | ||||
---|---|---|---|---|
Description | Marque | Nombre | Commentaire | Photo |
Go Tronic Uno R3 | Go Tronic | 1 | Neuf | |
Breadboard | 1 | Neuf | ||
fils | 63 | Neuf | ||
Module d'alimentation | 1 | Neuf | ||
Ancien modèle de carte électronique avec afficheurs | 1 | Détruit |
Matériel nécessaire au projet | |||||
---|---|---|---|---|---|
Description | Marque | Nombre | Prix | Référence | Documentation |
Double prise DC femelle 2.1 mm | 1 | 1€65 | 8€26 les 5 sur RS | Document sur RS | |
prises RJ45 | 13 | 4€63 | 3€56 les 10 | ||
NCP7805TG - Régulateur de tension | 3 | 1€56 | 0€52 unité | Documentation de Farnell | |
DF005S2 - Diode de redressement de pont, Monophasé, 50 V | 1 | 0€39 | 0€39 unité sur Farnell | Documentation sur Farnell | |
MC74ACT139DG - Decoder / Demultiplexer, 74ACT139 Family, 2 Outputs | 2 | 0€96 | 0€48 unité sur Farnell | Document Farnell | |
relais reed | 15 | 12€90 | 0€86 unité sur Mouser | Documentation Mouser | |
ATMEGA328P-PU | 1 | 1€70 | 1€70 unité sur Farnell | Documentation de Farnell | |
Quartz 16MHz | 1 | 0€72 | RS, HC-49-US CMS RALTRON, 7€20 les 10 ou 0€ (?) sur le magasin de Polytech, référence "9401P quartz SARONIX 16.0000MHZ NCT050C" | [https://] | |
1825910-7 - Commutateur tactile (reset) | 1 | 0€07 | 0€67 les 10 | [https://] | |
CAT811TTBI-GT3 - Superviseur d'alimentation MCU | 1 | 0€37 | sur Farnell, 0€37 | Document sur Farnell | |
74LVC1G125GW,125 - Buffer / Driver de ligne | 4 | 0€66 | 0€82 les 5 | Document Farnell | |
SN74LVC1G14DBVR | 1 | 0€30 | Mouser, 0€30 unité | Document TI | |
NCP1117ST50T3G | 1 | 0€42 | 0€42 sur Mouser | Document Mouser | |
LM2734YQMKE | 1 | 2€93 | 2€93 sur Mouser | Document TI | |
W5100 | 1 | 5€28 | 5€28 sur Mouser | Document Mouser | |
Crystal 25MHz | 1 | 0€33 | 0€33 sur Farnell | Document Farnell | |
MH2029-300Y - Perle de ferrite | 2 | 0€14 | 0€67 les 10 sur Farnell | [1] | |
SS1P3L-M3 | 1 | 0€44 | 0€44 sur Mouser | Document Mouser | |
CD1206-S01575 - Diode signaux faibles | 4 | 0€58 | 0€72 les 5 sur Farnell | [www.bourns.com/data/global/pdfs/cd0805_1206.pdf Document Farnell] | |
1N4007G - Diode de récupération standard | 1 | 0€18 | 0€18 sur Farnell | Document Farnell | |
UDZVTE-172.2B - Diode simple Zener, 2.2 V | 3 | 0€46 | 0€76 les 5 sur Farnell | Document Farnell | |
UMZ36NFHT106 - Diode simple Zener, 36 V, | 3 | 0€09 | 0€15 les 5 sur Farnell | Document Farnell | |
597-5326-507F - LED, Vert | 2 | 0€74 | [2] | [] | |
597-5406-507F - LED, Jaune | 2 | 0€66 | 1€65 les 5 sur Farnell | [] | |
Résistance 49R9 - MCWR08X49R9FTL | 4 | 0€03 | 0€07 les 10 sur Farnell | [] | |
Résistance 300R, 1% - MCWR08X3000FTL | 17 | 0€10 | 0€06 les 10 sur Farnell ou à 0€02 sur le magasin de Polytech en traversant | [] | |
Résistance 1k - MCWR08X1001FTL | 12 | 0€08 | 0€07 les 10 sur Farnell ou à 0€02 sur le magasin de Polytech en traversant | [] | |
Résistance 2k55 - ERJP06F2551V | 6 | 0€44 | 0€74 les 10 sur Farnell | [] | |
Résistance 4k3 - MCWR08X4301FTL | 1 | 0€01 | 0€07 les 10 sur Farnell | [] | |
Résistance 4k7 - MCWR08X4701FTL | 12 | 0€08 | 0€07 les 10 sur Farnell | [] | |
Résistance 7k87, 1/8W - MCWR08X7871FTL | 20 | 0€12 | 0€06 les 10 sur Farnell | [] | |
Résistance 10k - MCWR08X1002FTL (1/8 W) | 10 | 0€07 | 0€07 les 10 sur Farnell | [] | |
Résistance 12k - WCR0805-12KFI | 1 | 0€03 | 0€31 les 10 sur Farnell | [] | |
Résistance 30k9 | 1 | 0€07 | 0€68 les 10 sur Farnell | [] | |
Résistance 33k - MCWR08X3302FTL | 6 | 0€04 | 0€06 les 10 sur Farnell | [] | |
Résistance 47k - MCWR08X4702FTL | 2 | 0€02 | 0€07 les 10 sur Farnell | [] | |
Résistance 100k - MCWR08X1003FTL | 2 | 0€02 | 0€07 les 10 sur Farnell | [] | |
Résistance 249k, 1% - CRCW0805249KFKEA | 20 | 0€62 | 0€31 les 10 sur Farnell | [] | |
Résistance 1M - MCWR08X1004FTL | 1 | 0€01 | 0€10 les 10 sur Farnell | [] | |
Résistance variable 1k - PTV09A-4225F-B102 | 10 | 6€45 | 6€45 les 10 sur Farnell | [] | |
Résistance variable 2k5 - PTV09A-4225F-B102 | 5 | 1€45 | 0€29 unité sur Farnell | [] | |
Résistance variable 100k - TC33X-2-104E | 1 | 0€23 | 0€23 sur Mouser | [] | |
Capacité 22p - 885012007012 | 4 | 0€16 | 0€08 sur Mouser | [] | |
Capacité 100p - 08051A101JAT2A | 9 | 1€92 les 10 sur Farnell | [] | ||
Capacité 1n - MC0805B102K500CT | 1 | 0€03 | 0€31 les 10 sur Farnell | [] | |
Capacité 10n - 885012207092 | 1 | 0€08 | 0€08 sur Mouser | [] | |
Capacité 100n - CL21B104KACNNNC | 32 (en prendre 100 pour M. FLAMEN) | 0€76 | 2€37 les 100 sur Farnell | [] | |
Capacité 1µ - CL21B105KOFNNNE | 3 | 0€20 | 0€32 les 5 sur Farnell | [] | |
Capacité 10µ polarisée - MCGPR25V106M5X11 | 5 | 0€05 sur Farnell | [] | ||
Capacité 100/500µ post pont de diodes - | 1 | 0€11 le 0,1 mF / 50 V ou 0€52 le 1 mF / 35V ou 0€70 le 1 mF / 50 V | [] | ||
Inductance 10µH - SRR0604-100ML | 1 | 0€62 | 0€62 sur Mouser | Document Mouser | |
Pins header 6x1 | 1 | 0€96 | 0€96 sur Mouser | [] | |
Pins header 3x2 | [] | [] | |||
Pins header 8x1 | [] | [] | |||
Pins header 10x1 | [] | [] | |||
ACPL-C87B-000E | 3 | 19€05 | 6€35 sur Mouser | [] | |
OPA2374AIDCNR - Amplificateur opérationnel | 3 | 4€95 | 1€65 sur Farnell | [] | |
Transistor PNP | 12 | 2€74 | 1€14 les 5 sur Farnell | Document Farnell | |
703-0169 - Afficheur LED 7 segments (anode commune) | 12 | 4€13 | 1€72 les 5 sur Farnell | Document Farnell | |
MM5451YN - LED Driver | 1 | 4€72 | 4€72 sur Farnell | Document Farnell | |
108-0902-001 - Connecteur de test banane, 4mm, Femelle | 3 | 1€57 | 0€522 sur Farnell | ||
108-0903-001 - Connecteur de test banane, 4mm, Femelle | 3 | 1€57 | 0€522 sur Farnell | ||
TOTAL | 83€35 |
Liste des tâches à effectuer
- Récupérer la valeur des tensions en sortie des trois générateurs de tensions variables des bancs de tests pour les travaux pratiques d'électrotechnique en isolant cet étage de mesures de l'étage de puissance
- Afficher ces valeurs sur trois afficheurs liés à chacun des générateurs
- Regrouper les différentes valeurs sur un écran à disposition de l'enseignant afin de superviser les paillasses en direct
Calendrier prévisionnel
Le déroulement du projet devrait se faire autour de 6 étapes qui sont :
- initialisation du projet (documentation, rédaction de spécifications, commande de matériel)
- création de circuits électroniques (design des PCBs,soudure des composants)
- développement du programme pour le banc de tests (programmation du microprocesseur, connexion au réseau de la salle))
- développement du programme pour le serveur (création de l'interface web, récupération des valeurs de mesures, affichage des données en direct)
- tests et validation de la solution
- rédaction d'un protocole de sécurité
Mise à jour du 31 octobre :
Mise à jour du 17 novembre :
Réalisation du Projet
Introduction
Cahier des charges
Archives
Carnet de route
Semaine 0 : mercredi 11 septembre
Suite à la lecture de mon sujet de projet de fin d'études, j'ai d'abord cherché à dessiner le montage me permettant de récupérer la tension variable d'un générateur de tension : afin de ramener la tension sur une échelle de 0 à 5 VDC, je compte utiliser un pont diviseur de tension en choisissant les résistances pour diviser environ par 100 la valeur aux bornes du générateur. Afin de permettre une meilleure précision lorsque la tension sera plus faible, comme par exemple à 50% de la valeur maximale, j'ai pensé ajouter plusieurs ponts en parallèle avec des valeurs de résistances différentes afin d'avoir des plages de valeurs différentes. Ces ponts diviseurs de tensions ouverts ou fermés par l'Arduino grâce à des interrupteurs commandés tels que des relais en fonction de la valeur lue. Si le microcontrôleur lit une tension inférieure à la tension maximale de la plage du dessous, il pourra alors faire basculer les interrupteurs pour calibrer la plage de valeur sur cette plage plus précise. Par exemple,si la plage de mesures 1 est destinée à accepter les valeurs de 0 à 500 V, et que la plage 2 permet de mesurer les tensions de 0 à 250 V, alors une tension de 230 V permettra de passer de la plage de mesures 1 à 2. Inversement, si la tension augmente et passe au dessus de 240 V, le système repasse alors sur la plage de mesures 0-500 V. Cette calibration nécessite toutefois de faire attention à l'intervalle d'erreur de mesures de la tension en prenant en compte la précision des résistances.
Entretien avec le tuteur de ce projet, M. CHEVALIER. A l’issu de cette réunion, les attentes ont pu être confirmées. Le projet consiste à remplacer les circuits analogiques déjà présents en E001, salle des TP d’électrotechnique. Afin de remplacer ces afficheurs, il est donc important que la solution permette de visualiser la tension réglée par l’étudiant sur les trois générateurs de la paillasse.
Le problème de la solution utilisée ces dernières années, assimilable à celle imaginée avec des ponts diviseurs de tension, est le manque d'isolation entre les circuits de puissance et de mesures : la lecture de la valeur de la tension se fait directement sur le circuit de puissance et le montage n’est donc pas protégé lors des appels de courants, entrainant la destruction de la carte électronique.
Le montage proposé à la fin de ce projet devra donc être isolé galvaniquement de la partie puissance afin d’éviter tout problème qui réduirait drastiquement la durée de vie de la solution. Pour palier à l'attente de la réalisation de notre solution électronique, le tuteur a proposé à l'étudiant d'utiliser une carte Arduino fournie en début de ce projet pour utiliser les afficheurs.
Les valeurs des tensions des différents générateurs devront être envoyées sur l'ordinateur central de la salle afin de permettre au professeur une surveillance de l'ensemble des générateurs de la salle. Ces données pourront être envoyées en utilisant les ports ethernet présents sur chacune des paillasses. Aucune technologie n'a été imposée pour la création de la page web.
Afin de faire suivre l’évolution du projet, un mail sera envoyé à M. CHEVALIER chaque mercredi soir pour indiquer l’évolution du projet et ce qui a été fait dans la semaine.
Semaine 1 : mercredi 18 septembre
A la suite de la réunion du mercredi 11 septembre, je me suis donc penché sur les différentes manières d'isoler galvaniquement un système. L'isolation galvanique étant réalisée lorsque deux parties d'un circuit électrique ne sont reliées par aucune liaison électrique, je n'ai repéré que trois façons différentes de permettre une telle isolation :
- les transformateurs qui permettent de convertir un courant alternatif de tension X à un courant alternatif de tension Y grâce à l'utilisation de deux bobines pouvant avoir un nombre de spires différent et aux propriétés de l'électromagnétisme.
- les relais qui permettent à un circuit de commande de piloter le circuit de puissance grâce à une bobine permettant d'ouvrir ou de fermer le circuit lorsqu'une tension suffisante est appliquée à ses bornes.
- les optocoupleurs qui servent à émettre de l'information grâce à un émetteur et un récepteur de lumière infrarouge
Dans notre cas, les relais ne peuvent nous servir ici car nous souhaitons récupérer une image de la tension aux bornes du générateur et non piloter un circuit à l'aide d'une commande. Nous choisissons donc d'utiliser un transformateur pour isoler galvaniquement le circuit de mesure du générateur de tension alternative de la manière suivante :
De cette manière, le signal sera isolé du générateur en sortie du transformateur qui pourra abaisser une première fois la tension. L'utilisation d'un pont de Graetz permettra de redresser le signal qui sera ensuite filtré avec une capacité adaptée pour obtenir un signal continu. Enfin, un pont diviseur de tension abaissera la tension à un maximum de 5 VDC pour récupérer une image de la tension en sortie du générateur lisible par l'atmega328 de l'Arduino. L'utilisation d'une résistance variable de faible valeur permettra d'étalonner plus précisément la valeur du gain en sortie. Différents canaux pourront automatiquement être pilotés par l'Arduino grâce à des transistors afin d'assurer une valeur plus précise pour les tensions plus faibles en pilotant l'ouverture et la fermeture de ponts diviseurs de tension d'impédance variées.
Concernant les générateurs de tension continue, nous utilisons le même principe que pour le générateur de tension alternative. Cependant, il est nécessaire de convertir le signal en signal alternatif pour l'utilisation du transformateur permettant l'isolation galvanique. Ainsi, nous pouvons voir l'apparition d'un étage supplémentaire, le reste de la chaine n'ayant pas été représenté ici.
______________
Entretien avec M. CHEVALIER le mercredi 18 septembre pour discuter des avancées et du planning du projet. Le circuit proposé a été accepté. Une précision a été faite concernant le choix de convertisseurs DC-DC isolés : il existe, en plus des convertisseurs destinés à changer la tension en sortie, des convertisseurs conçus dans le but d'isoler galvaniquement un circuit d'un autre. Ces convertisseurs, appelés des amplificateur d'isolation (isolation amplifier) reposent sur différentes technologies comme les transformateurs ou les optocoupleurs afin d'isoler l'entrée de la sortie en assurant un gain unitaire.
Pour l'écran de surveillance des tensions, une illustration de base a été validée par le tuteur et elle reprendra donc l'affichage des trois afficheurs 7 segments pour les 6 paillasses présentent sur la salle. Dans le cas où le projet serait terminé plus tôt que prévu, il a été proposé au tuteur la possibilité d'afficher un historique des tensions après avoir cliqué sur un des 18 afficheurs : cette vue permettrait de montrer une courbe d'évolution des tensions afin d'étudier le comportement du générateur à la suite d'un problème technique.
Semaine 2 : mercredi 25 septembre
Lors de cette semaine, nous nous sommes penchés sur les amplificateurs d'isolation dont nous avait parlé M. CHEVALIER. Plusieurs de ces modules semblent intéressants tels le ISO124 de TI, le ISO224 de TI, le AMC1301QDWVQ1 de TI ou encore le HCPL-7800 d'Avago.
Mais la solution retenue est celle se basant sur le ACPL-C87B d'Avago qui dispose d'un montage dans sa documentation technique dédié exclusivement à la mesure d'une tension. Cet amplificateur d'isolation se repose sur un amplificateur opérationnel en montage différentiel nécessitant d'amener la tension à mesurer sur un intervalle définie par sa tension de référence. De cette manière, le pont diviseur de tension se retrouve finalement avant l'étage d'isolation. Il est alors nécessaire d'utiliser un autre amplificateur opérationnel comme le OPA237 de TI ou le LM358 de ON Semiconductor avant d'utiliser le convertisseur analogique-numérique de l'atmega328.
L'affichage des tensions se fera sur trois afficheurs 7-segments 4 digits et nécessitera donc des drivers de LEDs car l'Atmega328 ne dispose pas de suffisamment de sorties pour gérer 84 LEDs (7x4x3). Nous utiliserons donc des puces MM5451 pouvant piloter jusqu'à 35 LEDs par module. Ces modules nécessitent un potentiomètre de 100 kOhm (typiquement) pour ajuster la luminosité des LEDs sur le pin 19.
Pour l'envoi des données, nous allons nous baser sur la carte Arduino Ethernet REV 3 proposé par Arduino. Cette carte se base sur le microcontrôleur atmega328 cadencé à 16 MHz et disposant donc de 14 I/O numériques et de 6 I/O analogiques. La particularité de cette carte Arduino est de disposer d'un port RJ45 et d'une puce W5100 permettant à la carte de dialoguer sur un réseau ethernet avec d'autres périphériques tels que notre PC.
Cette carte sera alimentée par l'alimentation 12 VDC présente sur chacune des paillasses, et sera protégée grâce à un fusible adapté. La programmation sera réalisée grâce à un FTDI relié aux pins de communication série de l'atmega328.
Le choix de ce matériel nous conduit donc à l'architecture suivante :
Semaine 3 : mercredi 2 octobre
Les éléments principaux du matériel ayant été validés par l'encadrant, cette semaine a été consacrée à énumérer les composants et à les chercher sur les sites de vente Farnell, RS et Mouser. Cette liste est donc affichée en dessous :
ARDUINO ETHERNET Matériel : * PowSupp DC21MMX : Farnell 14€4 les 10 ou 5€61 unité sur Farnell ou 8€26 les 5 sur RS * RJ45 (avec ou sans LED ?) : 3€56 les 10 sur Farnell (sans LED) * RESONATOR CSTCE16M0V53-R0 16MHz : référence obsolète 7€19 les 10 sur RS. Un quartz 16MHz semble être disponible sur le magasin de composants électronique de Polytech avec la référence '9401P quartz SARONIX 16.0000MHZ NCT050C' * TS42 : commutateur 5 pins permettant de reset la carte. Utiliser un bouton simple ? * CAT811TTBI-CT3 : 1 à 0.37€ sur Farnell ou 0.38 € sur Mouser * 74LVC1G125DCK : 4 à 0€65 unité sur Mouser ou à 0€163 sur Farnell (non DCK) * 74LVC1G14DBV : 1 à 0€30 sur Mouser ou à 1€ les 5 sur Farnell (pas même empreinte) * NCP1117ST50T3G : 1 à 0€42 sur Mouser ou à 0€44 sur Farnell * LM2734Y et 30k9/10k resistors OU LM2736Y et 16k5/10k - LM2734Y : 1 à 2€93 sur Mouser ou 12€15 les 5 sur RS - LM2736Y : délais trop longs * W5100 : 1 à 5€80 sur RS ou 5€28 sur Mouser * crystal 25MHz HC49UP : 1 à 0€60 sur Farnell ou 0€33 sur Farnell * MH2029-300Y (WE-CBF_0805) : 2 à 0€67 le paquet de 10 sur Farnell diodes : - SS1P3L : 1 à 0€44 sur Mouser ou à 1€60 les 5 sur Farnell - CD1206-S01575 : 2 à 7€22 les 5 sur Farnell ou 0€14 unité sur Mouser - M7 SMB (1N4007 ?): 1 à 0€19 sur Farnell LEDs : - verte (0805) : 2 à 1€85 les 5 sur Farnell ou 0€61 unité sur Mouser - jaune (0805) pour RX/TX : 2 à à 1€65 les 5 sur Farnell ou à 0€36 unité sur Mouser resistors : - 49r9 : 4 à 0€15 unité sur Mouser ou à 1€05 les 10 sur Farnell - 300r, 1% : 1 à 0€31 les 10 sur Farnell (couche épaisse, 0805, 1%) ou disponibles sur le magasin de composants de Polytech Lille à 0€02 unité en traversant - 1k : 8 à 1€16 les 10 sur Farnell (couche épaisse, 0805, 1/8 W, 1%) ou disponibles sur le magasin de composants de Polytech Lille à 0€02 unité en traversant - 10k : 3 à 4€50 les 10 sur Mouser (couches épaisses, 1/2 W, 0.5%) ou à 0€10 les 10 sur Farnell (couche épaisse, 0805, 1/4 W, 1%) - 12k, 1% : 1 à 0€31 les 10 sur Farnell (couche épaisse, 0805 1/8W) - 100k : 1 à 0€26 les 10 sur Farnell (couche épaisse, 0805, 1%) - 1M : 1 à 0€10 les 10 sur Farnell (couche épaisse, 0805, 1/8 W, 1%) capacitors : - 22p : 2 à 0€42 les 10 sur Farnell (0805, 5%) ou 0€08 unité sur Mouser (0805,5%) - 10n : 1 à 0€32 les 10 sur Farnell (0805, 10%) ou à 0€08 unité sur Mouser (0805, 10%) - 100n : 10 à 0€56 les 10 sur Mouser (0805, 10%) ou 0€51 les 10 sur Farnell (0805, 10%) - 1µ : 3 à 0€32 les 5 sur Farnell (0805, 10%) - 10µ (polarisée, CPOL-EUSMCB)) : 5 à 0€05 unité (électrolytique, 20%) ou 0€26 unité sur Farnell (électrolytique alu polymère) inductors : - SRR0604-100ML (10µH) : 1 à 0€62 sur Mouser ou à 0€76 sur Farnell Headers : - 6 : 3 à 0€96 unité sur Mouser - 2*3 : 1 - 8 : 2 à 1€15 sur Mouser - 10 : 1 • Rajouter à l'arduino la chaine pour récupérer la valeur de la tension directement sur 3 pins de l'Arduino * ACPL-C87B : 3 à 6€35 unité sur Mouser ou à 7€12 unité sur Farnell * OPA237 : 3 à 1€65 unité sur Farnell ou à 2€62 sur Mouser] resistors : - 990k : 3 à 0€20 unité sur Mouser (ou 30*99k pour éviter des chutes de tension trop importantes entre chaque résistances ? => 9* 330kOhms sur Mouser à 0€11 unité) - 10k, 1% : 3*(4+nbPontDiv) à 4€50 les 10 sur Mouser (couches épaisses, 1/2 W, 0.5%) ou à 0€10 les 10 sur Farnell (couche épaisse, 0805, 1/4 W, 1%) resistors variables : - 500/1k : 3*nbPontDiv à 6€45 les 10 sur Farnell (50 mW, 20%) capacitors : - 100p : 3*3 à 1€92 les 10 sur Farnell (0805, 5%) - 100n : 3*2 à 0€56 les 10 sur Mouser (0805, 10%) ou 0€51 les 10 sur Farnell (0805, 10%) ou 0€08 unité sur Mouser (0805, 10%) transistors : - NPN : 3*nbPontDiv => transistors NPN et leurs résistances (4k3 ?) : 12 disponibles sur le magasin de composants de Polytech Lille à 0€32 unité sous la référence "BC237B - NPN general purpose transistors" ou à 0€70 les 5 sur Farnell. Puisque le Beta est de presque 300, nous optons pour des résistances 6k3 à 0€09 unité sur Farnell - 4k3 resistors : 3*nbPontDiv (si B=200) à 0€01 les 10 sur Farnell (couche épaisse, 0805, 1/8 W, 1%) • Rajouter le driver de LEDs sur la carte, avec trois (?) connecteurs RJ45 pour y connecter les afficheurs 7 segments et le multiplexage. resistors : - 330R : 21 à 1€40 les 10 sur Mouser ou disponibles sur le magasin de composants de Polytech Lille à 0€02 unité en traversant resistors variables : - 100k : 0€23 unité sur Mouser capacitors : - 100n : 1 à 0€56 les 10 sur Mouser (0805, 10%) ou 0€51 les 10 sur Farnell (0805, 10%) transistors NPN et leurs résistances (4k3 ?) : 12 disponibles sur le magasin de composants de Polytech Lille à 0€32 unité sous la référence "BC237B - NPN general purpose transistors" ou à 0€70 les 5 sur Farnell. Puisque le Beta est de presque 300, nous optons pour des résistances 6k3 à 0€09 unité sur Farnell MM5451 : 1 à 4€72 sur Farnell résistances 4k3 : 12 à 0€01 les 10 sur Farnell (couche épaisse, 0805, 1/8 W, 1%) 7 segments 4 digits : 3 1€28 unité sur Farnell résistances 100 Ohm : 3*8 à 0€12 unité sur Mouser ou à 0€68 les 10 sur Farnell
Lors de cette semaine, nous avons pu demander à M. BOE Alexandre et M. REDON Xavier leur avis sur le développement d'une carte électronique inspiré de l'Arduino Ethernet reposant sur le composant W5100 pour la communication sur les réseaux ethernet. Bien qu'ambitieux, cela semble faisable à conditions de faire attention aux tensions utilisées : lors de la création d'une carte utilisant un Atmega16u2 et le W5100, M. REDON a en effet rencontré de nombreux problèmes entre la tension de 3,3 V du W5100 et la tension de 5 V du reste de la carte et nous conseille donc faire tourner la carte entière sous une tension de 3,3 V. Cependant cela peut aussi poser des problèmes lors de la programmation de la carte pour charger le bootloader ou ensuite le code. M. BOE conseille donc de prévoir un mécanisme bloquant l'alimentation en 3V3 lorsqu'une alimentation en 5V est branchée à la manière dont l'équipe créant les Arduinos favorise l'utilisation de l'alimentation de la prise 2.1mm plutôt que l'alimentation branchée sur le port USB.
Fichier:1920 P4 schematic v1.1.pdf
Sur ce schematic, j'ai repris ce qui m'intéressait de celui conçu pour l'Arduino Ethernet en retirant la carte SD et le module d'alimentation POE qui ne me serviront pas pour ce projet. J'ai aussi ajouté la chaine permettant de récupérer les tensions, des ponts diviseurs de tension aux AOP OPA237. Ces montages se trouvent en haut en deux exemplaires pour le générateur pouvant permuter entre un signal continu et un signal alternatif, un autre exemplaire se trouvant en bas pour le dernier générateur de tension continue.
Semaine 4 : mercredi 9 octobre
- Finalisation de la commande de matériel et continuité du schematic : création des schematics des afficheurs 7 segments
- Proposition d'utilisation de port RJ45 au tuteur => Voir si possible avec des prises moins encombrantes type USB type C
- Rectification de l'étage d'entrée du régulateur de tension 78L05 permettant d'alimenter le ACPL-C87B => permettre un deuxième pont diviseur de tension pour l'entrée du 78L05 pour permettre l'affichage de la tension lorsque celle-ci est faible pour le générateur alternatif (78L05 à 2€75 les 5)
Semaine 5 : mercredi 16 octobre
- Ajout de 2 démultiplexeurs 2 vers 4 doubles MC74AC139 (à 0€48 unité) permettant de gagner des entrées et sorties afin de rendre possible l'utilisation de plusieurs ponts diviseurs de tension pour l'alimentation du régulateur de tension 5V
- Ajout du pont de diodes pour alimenter le 78L05 dans le cas alternatif (0€39 sur Farnell : Doc) et du condensateur adapté (référence ?)
- Changement des valeurs des résistances sur l'AOP précédant l'ADC de l'atmega afin de multiplier la tension en sortie par un gain de 2.5, passant d'une tension maximale de 2V à une tension de 5V pour utiliser toute la plage de l'ADC de l'atmega et gagner en précision.
- Changement des transistors sur les ponts diviseurs de tensions par des relais reed, relais peu couteux permettant d'isoler galvaniquement le circuit de commande du circuit de mesure contrairement aux transistors : HE3600 à 7€86 les 10
=> Changement de la liste de matériel en conséquences.
Fichier:1920 P4 schematic v3.1.pdf
Ce schematic mis à jour dispose de plusieurs blocs:
- la partie clone de l'Aduino ethernet :
- la partie permettant de récupérer la tension aux bornes du générateur de tension alternative :
- la partie permettant de récupérer la tension aux bornes du générateur de tension continue (existe en deux fois sur le schematic global) :
- le bloc lié au driver de LEDs :
Suite au message envoyé à M. CHEVALIER, celui-ci a convenu du bon choix des relais reeds et a confirmé l'utilisation de prises RJ45 plutôt que des prises USB type-C plus onéreuses. Quandt à M. FLAMEN, celui-ci me fournira une réponse avant mercredi prochain pour la commande de matériel.
Semaine 6 et 7 : dimanche 3 novembre
- Mise à jour des schematics avec les bonnes empreintes des composants commandés par M. CHEVALIER
- Création de 4 PCB :
- un PCB par afficheur, comportant 4 afficheurs 7 segments, 2 à 4 prises RJ45, des transistors et des résistances permettant de multiplexer les afficheurs 7 segments : les trois cartes sont terminées
- une carte principale regroupant les "capteurs de tensions", le micro contrôleur, le W5100 et les différents composants autour d'eux : non terminée
Semaine 8 : dimanche 10 novembre
- soutenance intermédiaire : rectification de la carte principale avec l'ajout d'un pont redresseur en entrée de l'ACPL (cas alternatif) et ajout des trous sur l'ensemble des cartes
- retard calculé : deux semaines
- poursuite du design de la carte principale avec le routage de l'atmega et du MM5451
Semaine 9 : dimanche 17 novembre
- Impression des cartes avec afficheurs
- récupération du matériel : il manque 2 diodes Zener 36V et 1 résistance 30.9 kohm
- Fin de la carte principale et envoi à l'impression
- photo du top :
- photo du bot
- Avancement du programme, réalisation de la structure de celui-ci
Semaine 10 : dimanche 24 novembre
- Récupération des cartes électroniques et début de la soudure
- Rédaction du script permettant de lire les entrées analogiques de l'Arduino et de sélectionner le bon canal de mesures en fonction de ce qui est lu : tests simulés grâce à un potentiomètre
- Tests des relais reeds et de leur sensibilité électromagnétique afin que la fermeture d'un contact n'entraine pas celle d'un des relais voisins
- Rédaction d'un script permettant d'utiliser le driver de LEDs pour piloter une dizaine de LEDs. Le pilotage des LEDs ne s'est pour le moment par montré concluant : aucune LED n'a réagit à une consigne d'état haut ou bas (LED éteinte durant toute la durée des différents tests)
- Préparation d'un script webclient devant permettre à l'Arduino de poster des données sur une machine locale : tests prévus ce week-end
=> serveur WAMP fonctionnel mais problème de réception des données provenant de l'Arduino. Le script simulant l'envoi de données grâce à un formulaire HTML fonctionne cependant : problème de permissions en dehors de la machine locale
Semaine 11 : dimanche 1 décembre
- électronique :
- correction du problème du driver de LEDs MM5451 : les LEDs obéissent à des suites d'ordres simples tels que "toute allumées", "toutes éteintes", "allumées une sur deux"
- récupération de la carte principale après deux semaines d'attente : carte à refaire car la distance entre le circuit de puissance et le circuit de commande est trop faible => prévoir environ 1cm
- informatique :
- continuité de l'application afin d'afficher dynamiquement les données de la base. Design de la page effectué
- demande d'une machine pouvant héberger l'application en E001 afin d'éviter tout problème sur le serveur principal
Semaine 12 : dimanche 8 décembre
- électronique :
- carte principale séparée en trois nouvelles cartes de mêmes dimensions, validées par M. CHEVALIER et envoyées mercredi à l'impression. En attente
- rédaction du code permettant d'afficher les valeurs d'un capteur sur 3 afficheurs 7 segments en commandant tous les afficheurs en même temps puis un par un afin de simuler la sélection des transistors : la luminosité des afficheurs est très bonne et homogène tant qu'il n'y a aucun appel de la fonction delay() ou communication avec le port série
- informatique :
- installation du serveur sur la machine en E001 : Apache2, MySQL 8.1 et PHP 7.2. Fonctionne parfaitement, et le code écrit la semaine passé a pu être testé sans problème
- concernant la communication entre le serveur et la salle, l'application est disponible depuis n'importe quelle machine du réseau et chacune peut envoyer les données sur la base du serveur. Ainsi les prototypes à base d'Arduino et shield ethernet ont pu envoyer des données aléatoires sur la base, simulant un bon fonctionnement
- continuité de l'application en ajoutant une page d'historisation des données grâce à Highcharts. Quelques corrections mineures du thème sont à effectuer la semaine prochaine
Semaine 13 : mardi 17 décembre
- électronique :
- Récupération de la carte permettant de récupérer la tension alternative du banc de TP. Soudure des composants sur celle-ci et test des courts-circuits
- Soudure des composants sur les cartes "afficheurs" et tests de celles-ci : la manipulation des digits par les transistors se fait comme espéré
- informatique :
- Mise à jour de l'application sur la machine de la salle E001. Celle-ci se trouve dans le dossier publique du serveur Apache : '/var/www/html/'
- Rédaction du rapport
Post soutenance
Test de la carte de récupération de la tension alternative : la carte semble fonctionnelle hormis la partie permettant de redresser la tension avant de l'envoyer à l'amplificateur d'isolation où la chute de tension n'a pas été prise en compte lors du design de la carte. Une solution pour palier ce problème serait de changer les résistances R2 afin d'obtenir une plage de tension comprise entre 1.1 et 3.1 V plutôt qu'entre 0 et 2 V en entrée du redresseur.
De plus, la capacité de 1 mF semble inutile après analyse du régime transitoire : le régime permanent met environ 16 minutes pour être atteint, alors qu'il ne mettrait qu'une demie seconde en théorie sans cette grosse capacité.
Commande de matériel
LISTE MATERIEL A REPRENDRE AU PROPRE ARDUINO ETHERNET CONSEIL DE M. REDON : FAIRE LA CARTE EN 3V Permettre la programmation par 5V et par 3V, mais permettre de couper complètement le 5V si besoin. Matériel : PowSupp DC21MMX : Farnell 14€4 les 10 ou 5€61 unité sur Farnell ou 8€26 les 5 sur RS RJ45 3€56 les 10 sur Farnell RESONATOR CSTCE16M0V53-R0 16MHz : référence obsolète 7€19 les 10 sur RS TS42 : commutateur 5 pins permettant de reset la carte. Utiliser un bouton simple ? CAT811TTBI-CT3 0.37€ sur Farnell ou 0.38 € sur Mouser 74LVC1G125DCK (IC3P/IC10/11/12P) : 4 74LVC1G14DBV (IC13P) SDCAR-15TW-8821 NCP1117ST50T3G LM2734Y et 30k9/10k resistors OU LM2736Y et 16k5/10k POE : (AG9XX0 (AG9000) [ZZ1] ) W5100 crystal 25MHz HC49UP WE-CBF_0805 (MH2029-300Y) : 2 diodes : - SS1P3L - CD1206-S01575 : 2 - SMB (M7) LEDs : - verte : 2 (0805) - jaune : 2 (0805) [RX/TX] resistors : - N.M ? (0603) : 2 (-2) - 0r (E-EU_0603-RND) : 1 (-1) - 49r9 : 4 - 300r, 1% : 1 - 1k : 8 - 10k : 3 - 12k, 1% : 1 - 100k : 1 - 1M : 1 capacitors : - 22p : 2 - 10n : 1 - 100n : 10 - 1µ : 4 (-1) - 10µ (polarisée, CPOL-EUSMCB)) : 5 - 47µ (polarisée, CPOL-EUD) : 1 (-1) inductors : - 10µ : 1 (SRR0604-100ML) Headers : - 6 : 3 - 2*3 : 1 - 8 : 2 - 10 : 1 • Rajouter à l'arduino la chaine pour récupérer la valeur de la tension directement sur 3 pins de l'Arduino ACPL-C87B * 3 OPA237 * 3 resistors : - 990k : 3 (10*99k pour éviter des chutes de tension trop importantes entre chaque résistances ?) - 10k : 3*nbPontDiv - 10k, 1% : 3*4 resistors variables : - 500/1k : 3*nbPontDiv capacitors : - 100p : 3*3 - 100n : 3*2 transistors : - NPN : 3*nbPontDiv - 4k3 resistors : 3*nbPontDiv (si B=200) • Rajouter le driver de LEDs sur la carte, avec trois (?) connecteurs RJ45 pour y connecter les afficheurs 7 segments et le multiplexage. resistors : - 330R : 21 resistors variables : - 100k capacitors : - 100n : 1 transistors NPN et leurs résistances (4k3 ?) : 12
Création d'une carte Arduino pouvant envoyer des données au serveur
Afin d'envoyer les données sur le serveur, il faudra connecter la carte électronique sur les prises RJ45 se trouvant sur chacune des paillasses. Pour cela, la réalisation d'un circuit reprenant les shields Ethernet pour Arduino sera nécessaire. En se basant sur le schematic du shield Ethernet fourni par le site www.arduino.cc, les composants nécessaires sont les suivants :
- Atmega328-20MU
- W5100 : carte mélant W5100 et RJ45 avec sa datasheet
Récupération de la tension
Pour récupérer la valeur de la tension, nous allons utiliser des ACPL-C87X d'Avago qui disposent d'un montage dans leur documentation technique dédié exclusivement à la mesure d'une tension. Cet amplificateur d'isolation se repose sur un amplificateur opérationnel en montage différentiel nécessitant d'amener la tension à mesurer sur un intervalle définie par sa tension de référence. De cette manière, le pont diviseur de tension se retrouve finalement avant l'étage d'isolation. Il est alors nécessaire d'utiliser un autre amplificateur opérationnel comme le OPA237 de TI ou le LM358 de ON Semiconductor avant d'utiliser le convertisseur analogique-numérique de l'atmega328.
(voir doc ACPL-C87 1 et docu ACPL-C87 2)
Affichage de la tension
Afin d'afficher la tension des trois générateurs, il est nécessaire d'utiliser 3 afficheurs 7 segments de 3 ou 4 digits. En utilisant 3 digits seulement, il faudrait donc gérer 21 à 24 LED à gérer par afficheur en fonction de l'utilisation ou non de virgules. L'utilisation de drivers de LEDs TLC5947 sied à la gestion d'un maximum de 24 LEDs par module, et ces derniers peuvent être utilisés en série pour gérer davantage de LEDs. Nous pouvons donc utiliser un TLC5947 par affichage. Dans le cas où nous utiliserions ce module, il serait nécessaire d'ajouter une résistance d'environ 2k5 Ohm par module afin d'obtenir les 20mA nécessaires pour les afficheurs.
Dans le cas où nous utilisons, comme actuellement, 4 digits par afficheur, il pourra être intéressant d'utiliser des MM5451 pouvant piloter jusqu'à 35 LEDs par module. Ces modules nécessitent un potentiomètre de 100 kOhm (typiquement) pour ajuster la luminosité des LEDs sur le pin 19.
3 * TLC 5947 + 3 * 2k5 resistors :
- Documentation : http://www.ti.com/lit/ds/symlink/tlc5947.pdf
- Achat : http://www.ti.com/product/TLC5947/samplebuy
3 * MM5451 + 3 potentiomètre 100 kOhm :
- Documentation : http://www.farnell.com/datasheets/57504.pdf?_ga=2.261863240.417526203.1569314828-216386020.1568878415
- Achat : https://fr.farnell.com/microchip/mm5451yn/led-driver-ic/dp/2510527?st=led%20driver (Farnell)
- Tutoriels : http://www.actuino.fr/reference/circuits-entrees-sorties/mm5451-driver-leds
https://forum.arduino.cc/index.php?topic=66090.0
- Exemple de code : https://arduino.stackexchange.com/questions/10098/turning-all-35-leds-on-sequentially-with-mm5451/10099#10099
9 (ou 12) * Afficheur 7 segments :
- Achat : https://fr.farnell.com/multicomp/703-0169/connec-circu-taille18-11-voies/dp/2112192?st=afficheur%207%20segments%20rouge (Farnell)
https://fr.rs-online.com/web/p/afficheurs-led/1246750/ (RS)
Conclusion
Ressources utilisées
Sites web
- MYSQL :
- Datetime :
https://dev.mysql.com/doc/refman/8.0/en/datetime.html
- Auto init datetime :
https://dev.mysql.com/doc/refman/8.0/en/timestamp-initialization.html
- Datetime en millisecondes :
https://dev.mysql.com/doc/refman/8.0/en/fractional-seconds.html
- Créer un utilisateur :
- Limiter le nombre de valeur dans une requête SQL :
https://stackoverflow.com/questions/20878089/php-and-mysql-select-a-single-value
- HTML/CSS :
- W3School :
- Police type 7 segments :
https://fontlibrary.org/en/font/segment7
- PHP :
- Highcharts :
Arduino :
- Amplificateur d’isolation :
- Driver de LEDs :
• [Datasheet du MM5451] • [[ https://arduino.stackovernet.com/fr/q/4367 Exemple de programme]] • [Tutoriel]
- Puce Ethernet :
• [W5100]
- W5500 :
• [Comparaison W5100 et W5500] • [Shield Arduino à base de W5500]
- Electronique :
• [Choix de la capacité de lissage]
Documents Rendus
Janvier 2020
- Rapport du projet au format PDF : Fichier:PFE 2019 P4 Rapport.pdf
- Diaporama de soutenance : Fichier:PFE 2019 P4 Soutenance.pdf
- Archive ZIP contenant ce qui a été réalisé durant le projet :
- Partie spécifications et matériel: Fichier:PFE 2019 P4 archive specifications.zip
- Partie électronique, V1 de la carte principale : Fichier:PFE 2019 P4 archive electronique principale v1.zip
- Partie électronique, V2 de la carte principale : Fichier:PFE 2019 P4 archive electronique principale v2.zip
- Partie électronique, V3 de la carte principale : Fichier:PFE 2019 P4 archive electronique principale v3.zip
- Partie électronique, cartes afficheurs : Fichier:PFE 2019 P4 archive electronique afficheurs.zip
- Partie électronique, librairies : Fichier:PFE 2019 P4 archive electronique librairies.zip
- Partie programmation, Arduino et PHP : Fichier:PFE 2019 P4 archive programmation.zip
Juin 2020
- Rapport du projet au format PDF : Fichier:PFE 2019 P4 Rapport postEC.pdf
- Manuel d'installation de l'application : Fichier:PFE 2019 P4 manuel installation.pdf
- Manuel d'utilisation de l'application : Fichier:PFE 2019 P4 manuel utilisation.pdf
- Archive ZIP contenant ce qui a été réalisé durant le projet :
- Partie électronique, V4 de la carte principale : Fichier:PFE 2019 P4 archive electronique principale v4.zip
- Partie électronique, cartes afficheurs : Fichier:PFE 2019 P4 archive electronique afficheurs.zip
- Partie électronique, librairies : Fichier:PFE 2019 P4 archive electronique librairies.zip
- Partie programmation, Arduino et PHP : Fichier:PFE 2019 P4 archive programmation postEC.zip