IMA5 2019/2020 P04 : Différence entre versions

De Wiki de Projets IMA
(Page créée avec « __TOC__ <br style="clear: both;"/> =Présentation générale= * Nom du projet : [Projet CENTAURE] * Membre du projet : HAVARD Nicolas * Superviseurs du projet : REDON Xa... »)
 
(Juin 2020)
 
(177 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 4 : Ligne 4 :
 
=Présentation générale=
 
=Présentation générale=
  
* Nom du projet : [Projet CENTAURE]
+
* Nom du projet : Voltmètre connecté
 
* Membre du projet : HAVARD Nicolas
 
* Membre du projet : HAVARD Nicolas
* Superviseurs du projet : REDON Xavier, BOE Alexandre et VANTROYS Thomas (professeurs de Polytech Lille)
+
* Superviseur du projet : M. CHEVALIER Florian
* Résumé :  
+
* 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.
  
<p align="justify">Un robot de grande taille a été réalisé à partir de moteurs de fauteuil roulant. Le système de contrôle électrique a été détruit lors d'un précédent projet, il est à reprendre totalement.
 
Le système de commande à base d'Arduino commandant des contrôleurs de moteurs de puissance doit être revu lui aussi. Il faut ensuite s'assurer d'un dispositif d'arrêt d'urgence en cas d'obstacle proche. Pour la détection d'obstacles vous pouvez vous appuyer sur des détecteurs infrarouges et sur une Kinect. Enfin le PC embarqué doit être configuré pour se connecter sur les points d'accès Wi-Fi de l'école et comporter un site Web permettant ainsi de le contrôler à distance avec les images des Webcam comme retour. Pour un déplacement dans tous les bâtiments de l'école, prévoir un dispositif pour appuyer sur les boutons des ascenseurs. </p>
 
  
 
+
[[Fichier:1920_P4_vieilleCarte.jpg|400px|thumb|center|Photo d'un des anciens afficheurs]]
[[Fichier:Centaure_photo.jpg|200px|thumb|center|Photo du robot Centaure au début du projet]]
 
 
<BR \>
 
<BR \>
 
<BR \>
 
<BR \>
Ligne 23 : Ligne 20 :
 
==Description==
 
==Description==
  
<p align="justify">Le projet Centaure est un robot de taille h*L*l 160*90*35 cm^3 repris par différents élèves depuis 2005. Il se déplace sur trois roues et est équipé d'écrans et d'une caméra Kinect. Le robot avance à l'aide de deux moteurs 24V (des moteurs équipant habituellement des fauteuils roulants) qui permettent de faire tourner les deux roues arrières du robot. La roue avant, elle, est une roue folle qui suit le mouvement donné par les roues arrières.
+
[[Fichier:1920_P4_bancTP1.jpg|400px|thumb|center|Photo du panneau de contrôle d'une des paillasses de la salle E001]]
Ce projet ayant été repris pas de nombreux élèves, il s'appuie donc sur une certaine base existante et le châssis est ainsi déjà monté. Au début de ce projet, le robot a été récupéré vidé de toute l'électronique qu'il comportait. Quelques capteurs sont manquants et/ou cassés. Cependant, les moteurs et leur codeurs sont en place, ainsi que les deux écrans et la Kinect qui nécessitent seulement d'être connectés à l'ordinateur/serveur. Sur une table à côté du robot, les variateurs de vitesse permettant de piloter les deux moteurs sont commandés par un Arduino Mega et sa carte d'extension "Arduino MEGA Sensor Shield". Une partie électrotechnique et électronique est donc à prendre en compte dans un premier temps pour parvenir à utiliser les moteurs avant d'effectuer un coffrage pour l'étage "puissance" du robot. Il sera nécessaire de prévoir un système de sécurité capable de couper la puissance du robot en cas de problème.</p>
+
[[Fichier:1920_P4_bancTP2.jpg|400px|thumb|center|Photo du panneau de contrôle d'une des paillasses de la salle E001]]
 +
 
 +
<p align="center">Photos du panneau de contrôle d'une des paillasses de la salle E001</p>
 +
 
  
 +
<p align="justify">
 +
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.
 +
</p>
 +
<p align="justify">
 +
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.
 +
</p>
  
<p align="justify">Concernant la partie commande, les fonctions développées en langage Arduino l'année dernière permettant aux deux moteurs de faire reculer le robot semblent fonctionner.
 
Les ordres que le robot doit effectuer à la fin du projet sont d'avancer, de reculer et de tourner à gauche ou à droite en fonction des touches sur lesquelles appuie un utilisateur via une télécommande dans un premier temps. Il sera donc nécessaire de programmer la lecture de la commande, la gestion des différents capteurs ainsi que la commande des deux moteurs en fonction de l'ordre reçu par l'utilisateur.<BR \>
 
L'objectif final de ce projet étant d'intégrer un serveur au robot pour recevoir les ordres de l'utilisateur via le Wi-Fi, il est nécessaire de faire communiquer le cerveau du robot, l'Arduino, avec le serveur grâce à une connexion série. L'utilisateur pourrait alors se connecter sur son appareil (ordinateur, tablette, smartphone) et donner des ordres au robot sur une interface web plutôt que d'utiliser une manette reliée au robot par un câble. Afin de diriger le robot à distance, une caméra Kinect est intégrée au système pour transmettre à l'utilisateur l'image de l'environnement où se trouve le robot. </p><BR \>
 
 
<BR \>
 
<BR \>
 +
 +
[[Fichier:1920_P4_carteDetruite.jpg|400px|thumb|center|Photo d'un des anciens afficheurs ayant été détruit]]
 +
 
<BR \>
 
<BR \>
  
Ce projet ayant été travaillé par plusieurs équipes d'étudiants IMA, nous avons à notre disposition des archives : <BR \>
+
<p align="justify">
* cinq rapports papiers de 2005 à 2009 <BR \>
+
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.
* quatre CD-ROM <BR \>
+
</p>
* un wiki étudiant <BR \>
+
 
Ces archives regroupent le travail fait par les différentes équipes en intégrant aussi le code écrit et quelques datasheets à propos des capteurs et des variateurs de vitesse. <BR \>
 
  
 
<BR \>
 
<BR \>
Ligne 43 : Ligne 48 :
  
 
==Objectifs==
 
==Objectifs==
<p align="justify">Les objectifs de ce projet sont de remettre en état le robot. Ceci impliquant de refaire l'intégralité de l'étage de puissance comportant l'électronique de puissance pour déplacer le robot et les différents systèmes de sécurité (bouton d'arrêt d'urgence, fusibles). La visualisation du couple fournit par les moteurs ou encore l'état de charge des batteries pourront être des caractéristiques intéressantes à faire ressortir. </p>
+
<p align="justify">
<p align="justify"> Une fois l'étage électrique terminé, un second étage permettant de commander le robot sera conçu : cet étage disposera de l'Arduino Mega reliée aux différents capteurs du robot ainsi que les variateurs de vitesse commandant les moteurs. </p>
+
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.
<p align="justify">Pour finir, établir une connexion série fonctionnelle entre l'Arduino et l'ordinateur du Centaure afin d'anticiper l'échange d'informations entre ces deux appareils pour contrôler le robot via Wi-Fi à l'avenir. </p>
+
</p>
 +
<p align="justify">
 +
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.
 +
</p>
 +
<p align="justify">
 +
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.
 +
</p>
  
  
Ligne 56 : Ligne 67 :
  
 
<p align="justify">
 
<p align="justify">
* Rendre le robot Centaure commandable à l'aide d'une manette avant le lundi 17 décembre
+
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.</p>
* Permettre le relevé de données pouvant être utilisées telles que le couple des moteurs et le niveau de charge des batteries
+
* <p align="justify">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.</p>
* Concevoir des cartes électroniques afin de soigner l'esthétique du projet
+
* <p align="justify">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.</p>
* Mettre en place un début de communication série entre l'Arduino et le PC.
+
* <p align="justify">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. </p>
* Proposer un coffret en plexiglas pour les différents étages afin d'organiser le câblage entre les différents modules
+
* <p align="justify">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.</p>
* Sécuriser le système : éviter les risques de collisions et permettre l'arrêt complet du système lors d'un appui sur le bouton d'arrêt d'urgence
+
* <p align="justify">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.
 
</p>
 
</p>
 +
  
 
<BR \>
 
<BR \>
Ligne 75 : Ligne 87 :
 
! Description !! Marque !! Nombre !! Commentaire !! Photo
 
! Description !! Marque !! Nombre !! Commentaire !! Photo
 
|-
 
|-
| châssis du robot
+
| Go Tronic Uno R3
|  
+
| Go Tronic
 
| 1
 
| 1
| <font color="green">Châssis monté avant le projet</font>
+
| <font color="green">Neuf</font>
 
|
 
|
 
|-
 
|-
| batterie GF 12 22 Y (12V / 22 Ah (C5))
+
| Breadboard
| Sonnenschein
+
|  
| 2
+
| 1
| Environ 8V aux bornes des deux batteries initialement. 12 V après recharge
+
| <font color="green">Neuf</font>
|
+
|  
 
|-
 
|-
| chargeur et testeur de batterie 12V GT6
+
| fils
| ELEC
+
|  
| 1
+
| 63
|
+
| <font color="green">Neuf</font>
 
|  
 
|  
 
|-
 
|-
| moteurs SRG0131 24V / 15.5 A / 0.35 kW / 10 km/h
+
| Module d'alimentation
| INVACARE
+
|  
| 2
+
| 1
| <font color="green">Déjà intégrés au châssis</font>
+
| <font color="green">Neuf</font>
 
|
 
|
 
|-
 
|-
| roue
+
| Ancien modèle de carte électronique avec afficheurs
 
|  
 
|  
| 3
+
| 1
| Une roue folle et deux roues de fauteuil roulant. <font color="green">Toutes déjà intégrées au châssis</font>
+
| <font color="red">Détruit</font>
 
|
 
|
 +
|}
 +
</p>
 +
 +
 +
 +
[[Fichier:1920_P4_materDeBase.jpg|400px|thumb|center|Photo du matériel prêté par le tuteur pour réaliser le projet]]
 +
 +
 +
 +
 +
<p align="center">
 +
{| class="wikitable"
 +
! colspan="6"| Matériel nécessaire au projet
 +
|-
 +
! Description !! Marque !! Nombre !! Prix !! Référence !! Documentation
 
|-
 
|-
| codeur GC10K-04 11200
+
| Double prise DC femelle 2.1 mm
| Baumer IVO
 
| 2
 
| <font color="green">Déjà intégrés au châssis au niveau des roues arrières</font>
 
 
|
 
|
 +
| 1
 +
| 1€65
 +
| [https://fr.rs-online.com/web/p/connecteurs-jack/8051699/ 8€26 les 5 sur RS]
 +
| [https://docs-emea.rs-online.com/webdocs/12d1/0900766b812d16c1.pdf Document sur RS]
 
|-
 
|-
| variateur de vitesse 8CH2QM.2
+
| prises RJ45
| Italsea
 
| 2
 
| Sur la table, <font color="green">déjà reliés aux moteurs, aux batteries et aux relais</font>
 
 
|
 
|
 +
| 13
 +
| 4€63
 +
| [https://fr.farnell.com/amphenol-icc-fci/54601-908wplf/cat3-rj45-modular-jack-8pos-1/dp/2135981?st=rj45 3€56 les 10]
 +
|
 
|-
 
|-
| bouton d'arrêt d'urgence
+
| NCP7805TG -  Régulateur de tension
|
 
| 1
 
| <font color="orange">En plusieurs parties en dehors du robot</font>
 
 
|
 
|
 +
| 3
 +
| 1€56
 +
| [https://fr.farnell.com/on-semiconductor/ncp7805tg/reg-tension-lineaire-fixe-1a-5v/dp/2534218 0€52 unité]
 +
| [http://www.farnell.com/datasheets/2118309.pdf?_ga=2.124075272.363693716.1571652170-216386020.1568878415 Documentation de Farnell]
 
|-
 
|-
| Arduino Mega
+
| DF005S2 -  Diode de redressement de pont, Monophasé, 50 V
| Arduino
+
|
 
| 1
 
| 1
| <font color="green">Déjà équipée de la carte d'extension, reliée aux relais et prête à être programmée</font>
+
| 0€39
 +
| [https://fr.farnell.com/on-semiconductor/df005s2/diode-pont-redresseur-1-ph-50v/dp/2824861 0€39 unité sur Farnell]
 +
| [http://www.farnell.com/datasheets/2552618.pdf?_ga=2.248287751.1218303456.1571140481-216386020.1568878415 Documentation sur Farnell]
 +
|-
 +
| MC74ACT139DG -  Decoder / Demultiplexer, 74ACT139 Family, 2 Outputs
 
|
 
|
 +
| 2
 +
| 0€96
 +
| [https://fr.farnell.com/on-semiconductor/mc74act139dg/decodeur-demultiplexeur-double/dp/2728398?ost=74ACT139D&iscrfnonsku=true&ddkey=https%3Afr-FR%2FElement14_France%2Fsearch 0€48 unité sur Farnell]
 +
|  [http://www.farnell.com/datasheets/1915145.pdf?_ga=2.151304761.1218303456.1571140481-216386020.1568878415 Document Farnell]
 
|-
 
|-
| Arduino MEGA Sensor Shield
+
| relais reed
| Arduino
 
| 1
 
| <font color="green">Déjà fixé à l'Arduino et à la carte de relais</font>
 
 
|
 
|
 +
| 15
 +
| 12€90
 +
| [https://www.mouser.fr/ProductDetail/Hamlin-Littelfuse/HE3621A0500?qs=sGAEpiMZZMv4tz1TW%2FArE8fLXcOxkjuWGYC1JY5zUN8= 0€86 unité sur Mouser]
 +
| [https://www.mouser.fr/datasheet/2/240/Littelfuse_Reed_Relays_HE3600_Datasheet.pdf-876890.pdf Documentation Mouser]
 
|-
 
|-
| carte équipée de 4 relais KEYES ver. 4R1B
+
| ATMEGA328P-PU
| Funduino
+
|
 
| 1
 
| 1
| <font color="green">La carte est déjà reliée aux variateurs de vitesse sur la table</font>
+
| 1€70
 +
| [https://fr.farnell.com/microchip/atmega328p-pu/micro-8-bits-avr-32k-flash-28pdip/dp/1715487?st=atmega328p 1€70 unité sur Farnell]
 +
| [http://www.farnell.com/datasheets/2295887.pdf?_ga=2.151305145.1218303456.1571140481-216386020.1568878415 Documentation de Farnell]
 +
|-
 +
| Quartz 16MHz
 
|
 
|
 +
| 1
 +
| 0€72
 +
| [https://fr.rs-online.com/web/p/oscillateurs-a-quartz/7037129/ 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://]
 
|-
 
|-
| relai 12 VDC Tongling
+
| 1825910-7 -  Commutateur tactile (reset)
|  
+
|
 
| 1
 
| 1
| <font color="blue">Neuf, encore emballé</font>
+
| 0€07
 +
| [https://fr.farnell.com/alcoswitch-te-connectivity/1825910-7/commutateur-tactile-spst-0-05a/dp/2468761?st=bouton 0€67 les 10]
 +
| [https://]
 +
|-
 +
| CAT811TTBI-GT3 -  Superviseur d'alimentation MCU
 
|
 
|
 +
| 1
 +
| 0€37
 +
| [https://fr.farnell.com/on-semiconductor/cat811ttbi-gt3/superviseur-alim-mcu-3-08v-sot143/dp/2534243?st=CAT811TTBI sur Farnell, 0€37]
 +
| [http://www.farnell.com/datasheets/2255336.pdf?_ga=2.130887311.1064479137.1570096586-216386020.1568878415 Document sur Farnell]
 
|-
 
|-
| capteur infrarouge 2Y3A003 F
+
| 74LVC1G125GW,125 -  Buffer / Driver de ligne
| SHARP
+
|
 
| 4
 
| 4
| <font color="green">3 sont fixés sur l'avant du châssis</font>, <font color="orange">1 détaché</font>
+
| 0€66
|
+
| [https://fr.farnell.com/nexperia/74lvc1g125gw-125/ic-logic-74lvc1g-buffer-umt5/dp/1631685?st=74LVC1G125 0€82 les 5]
 +
| [http://www.farnell.com/datasheets/2192952.pdf?_ga=2.232130975.1064479137.1570096586-216386020.1568878415 Document Farnell]
 
|-
 
|-
| capteur infrarouge 2Y0A02
+
| SN74LVC1G14DBVR
| SHARP
 
| 2
 
| <font color="green">Un 2Y0A02 46 fixé à l'arrière du robot</font> et <font color="red">un 2Y0A02 4X dont les fixations ont été détruites et les pins abimés</font>
 
 
|
 
|
|-
 
| contacteur LC1D18
 
| Telemecanique
 
 
| 1
 
| 1
|  
+
| 0€30
|
+
| [https://www.mouser.fr/ProductDetail/Texas-Instruments/SN74LVC1G14DBVR?qs=sGAEpiMZZMutVWjHE%2FYQw8FcJMyir0Lquuhu17Dlj2o= Mouser, 0€30 unité]
 +
| [http://www.ti.com/lit/ds/symlink/sn74lvc1g14.pdf Document TI]
 
|-
 
|-
| convertisseur Tel 5-2422 18-36 VDC -> +/- 12 VDC
+
| NCP1117ST50T3G
| TracoPower
 
| 1
 
|
 
 
|
 
|
|-
 
| convertisseur TEN40-2411 24 VDC -> 5 VDC (8 A)
 
| TracoPower
 
 
| 1
 
| 1
| <font color="orange">Légèrement abimé, dommages "esthétiques"</font>
+
| 0€42
|
+
| [https://www.mouser.fr/ProductDetail/ON-Semiconductor/NCP1117ST50T3G?qs=%2Fha2pyFaduj4IwJuyCbpkSvPXC1ESwUa5yhqhjBy7PCgJYFmioXGsQ%3D%3D 0€42 sur Mouser]
 +
| [https://www.mouser.fr/datasheet/2/308/NCP1117-D-1595886.pdf Document Mouser]
 
|-
 
|-
| écran 4/3 ProLite E430 & E430S
+
| LM2734YQMKE
| iiyama
 
| 2
 
| <font color="green">Deux écrans dont un fixé à l'avant du robot</font>
 
 
|
 
|
|-
 
| caméra Kinect
 
| Microsoft
 
 
| 1
 
| 1
| <font color="green">Fixée à l'avant du robot en haut du mât</font>
+
| 2€93
|
+
| [https://www.mouser.fr/ProductDetail/Texas-Instruments/LM2734YQMKE-NOPB?qs=sGAEpiMZZMtitjHzVIkrqaeIqJaO9bXJIUBdZCejTE0%3D 2€93 sur Mouser]
|}
+
| [http://www.ti.com/lit/ds/symlink/lm2734.pdf Document TI]
</p>
 
 
 
 
 
<p align="center">
 
{| class="wikitable"
 
! colspan="6"| Matériel nécessaire au projet
 
|-
 
! Description !! Marque !! Nombre !! Prix !! Référence !! Documentation
 
|-
 
| bouton ou joystick
 
| TE Connectivity OU SparkFun
 
| 4 (boutons) ou 1 (joystick)
 
| 2,24 € (paquet de 20 commutateurs) OU 3.36 € (joystick)
 
| [https://fr.rs-online.com/web/p/interrupteurs-tactiles/4791413/ Achat sur RS] OU [https://www.mouser.fr/ProductDetail/SparkFun/COM-09032?qs=sGAEpiMZZMuWWq7rhECaKUT5MYNYd7P4CmTLX6MP148%3d Mouser]
 
| [https://docs-emea.rs-online.com/webdocs/160d/0900766b8160dc5b.pdf PDF sur commutateurs]
 
|-
 
| câble
 
| Decelect Forgos
 
| 2,5 m * 5 (4 boutons + vcc) ou 2,5 m de câble ethernet
 
| 4,18 € (cordon ethernet (2m)) ou 4,91 € (5m)
 
| [https://fr.rs-online.com/web/p/cables-categorie-5/3336560/ 2 mètres] OU [https://fr.rs-online.com/web/p/cables-categorie-5/3336576/ 5 mètres sur RS]
 
| [https://docs-emea.rs-online.com/webdocs/166e/0900766b8166e570.pdf PDF]
 
|-
 
| résistance
 
|
 
| 3*2kOhm + 1*50 mOhm
 
|
 
|
 
|
 
|-
 
| capacité
 
|
 
| 1*1µF + 2*1nF
 
|
 
|
 
|
 
 
|-
 
|-
| batterie 12 V / 35 Ah (<font color="orange">les batteries 12V sont actuellement à plus de 12,5V mais semblent se décharger toutes seules. Batteries peut-être non nécessaires sur le court terme</font>)
+
| W5100
| 1er prix confiance de Norauto
 
| 2
 
| 99.9 € (2*49,95 €)
 
| [https://www.norauto.fr/produit/batterie-1er-prix-confiance-bvp8-35-ah-330-a_470075.html site web de Norauto]
 
 
|
 
|
|-
 
| convertisseur DDR-120B-12 : 24 VDC -> 12 VDC, 120 W et 10 A (légèrement sous dimensionné) ou convertisseur PV24S : 24 VDC -> 12 VDC, 288 W et 24 A (surdimensionné)
 
| MEAN WELL ou ALFATRONIX
 
 
| 1
 
| 1
| 55,81 € ou 144 €
+
| 5€28
| [https://www.mouser.fr/ProductDetail/MEAN-WELL/DDR-120B-12?qs=sGAEpiMZZMsc0tfZmXiUnQ%252bwKZhbvwnu0KxZN5BQOT3Q5z3nFWmpgQ%3d%3d achat sur Mouser] ou [https://fr.farnell.com/alfatronix/pv24s/convertisseur-dc-dc-vehicle-24a/dp/1182702?st=convertisseur%2024%2012 sur Farnell]
+
| [https://www.mouser.fr/ProductDetail/WIZnet/W5100?qs=sGAEpiMZZMvhkhGuTKDeghdGR7C6h%252B2P 5€28 sur Mouser]
| [https://www.meanwell.com/webapp/product/search.aspx?prod=DDR-120#1 Datasheet des DD-120] et [http://www.farnell.com/datasheets/1772927.pdf?_ga=2.260083470.2081688051.1538052439-927647027.1537431483 datasheet du PV24S]
+
| [https://www.mouser.fr/datasheet/2/443/W5100_Datasheet_v1.2.5-586411.pdf Document Mouser]
 
|-
 
|-
| fuel gauge LTC2944 24V
+
| Crystal 25MHz
| Analog Devices
+
|
 
| 1
 
| 1
| 5,28 €
+
| 0€33
| [https://www.mouser.fr/ProductDetail/?qs=u4fy%2fsgLU9Omd44j%252b6inEQ%3d%3d achat sur Mouser]
+
| [https://fr.farnell.com/iqd-frequency-products/lfxtal033342/quartz-25mhz-18pf-11-4mm-x-4-9mm/dp/2832034?st=quartz%2025MHz%20HC49 0€33 sur Farnell]
| [https://www.mouser.fr/datasheet/2/609/2944fa-1279557.pdf Datasheet du LTC2944]
+
| [http://www.farnell.com/datasheets/2570234.pdf?_ga=2.252309897.1455534550.1570441646-216386020.1568878415 Document Farnell]
 
|-
 
|-
| LED RGB (pour indiquer l'état de la charge)
+
| MH2029-300Y - Perle de ferrite
| Kingbright
+
|
| 1 (par lot de 5)
 
| 0,908 € (4.54 € les 5)
 
| [https://fr.rs-online.com/web/p/led/8614307/ achat sur RS]
 
| [https://docs-emea.rs-online.com/webdocs/139d/0900766b8139d70e.pdf PDF]
 
|-
 
| capteur IR 2Y0A02 (arrière robot)
 
| Sharp
 
| 1 ou 2
 
| 3,89 €/unité (Aliexpress) ou 14,86 €/unité (RS)
 
| [https://www.aliexpress.com/item/GP2Y0A02YK0F-2Y0A02-20-150cm-Infrared-IR-Distance-Measuring-Sensor/32851157150.html?spm=2114.search0104.3.168.38ce405dzmoAZs&ws_ab_test=searchweb0_0,searchweb201602_5_10065_10068_5726815_10843_10059_10884_10887_10696_100031_310_10084_10083_5726915_10103_451_10618_10304_10307_10820_10821_10302_526,searchweb201603_60,ppcSwitch_0&algo_expid=413002d0-719d-47af-a159-1b22b4668ccd-24&algo_pvid=413002d0-719d-47af-a159-1b22b4668ccd&priceBeautifyAB=0 Aliexpress] ou [https://fr.rs-online.com/web/p/capteurs-optiques-reflechissants/0315450/ RS]
 
| [https://docs-emea.rs-online.com/webdocs/1364/0900766b81364822.pdf Datasheet du GP2Y0A02YK0F]
 
|-
 
| capteur de courant ACS712ELCTR-20A-T pour déterminer le couple des moteurs
 
| Allegro Microsystems
 
 
| 2
 
| 2
| 2*4,92 = 9,84 € (sur RS, sans bornier) OU 2*3 = 6 € (sur e.banana-pi.fr avec bornier, prêt à être utilisé)
+
| 0€14
| [https://fr.rs-online.com/web/p/capteurs-a-effet-hall/6807135/ Achat sur RS] OU [https://e.banana-pi.fr/son-courant-lumi%C3%A8re/624-capteur-de-courant-acs712-20a.html sur e.banana-pi.fr]
+
| [https://fr.farnell.com/bourns/mh2029-300y/perle-ferrite-0805-0-025ohm-3a/dp/2859248?st=MH2029-300Y 0€67 les 10 sur Farnell]
| [https://docs-emea.rs-online.com/webdocs/0d88/0900766b80d885f5.pdf Document PDF]
+
| [http://www.farnell.com/datasheets/1914019.pdf?_ga=2.199696558.1064479137.1570096586-216386020.1568878415]
 
|-
 
|-
| Plaque plexiglas 1*1*0,0025 m^3
+
| SS1P3L-M3
 
|
 
|
 
| 1
 
| 1
| 20,70 €
+
| 0€44
| [https://www.leroymerlin.fr/v3/p/produits/plaque-transparent-l-100-x-l-100-cm-2-5-mm-e162579 Achat sur Leroy Merlin]
+
| [https://www.mouser.fr/ProductDetail/Vishay-Semiconductors/SS1P3L-M3-85A?qs=sGAEpiMZZMtQ8nqTKtFS%2FDwK3YsqAmRDQ4aXXGIke58%3D 0€44 sur Mouser]
 +
| [https://www.mouser.fr/datasheet/2/427/ss1p3l-98391.pdf Document Mouser]
 +
|-
 +
| CD1206-S01575 - Diode signaux faibles
 
|
 
|
|}
+
| 4
</p>
+
| 0€58
 
+
| [https://fr.farnell.com/bourns/cd1206-s01575/diode-commutation-100v-150ma-1206/dp/2211947?st=CD1206 0€72 les 5 sur Farnell]
<BR \>
+
| [www.bourns.com/data/global/pdfs/cd0805_1206.pdf Document Farnell]
<BR \>
 
 
 
==Liste des tâches à effectuer==
 
 
 
<p align="justify">Ce projet sera donc découpé en 3 phases principales : </p><BR \>
 
* <p align="justify">il me faudra tout d'abord regrouper les différentes archives sur un support en ligne afin qu'elles soient facilement accessibles à l'avenir, et en prendre connaissances afin de comprendre ce qui a été fait et pourquoi. L'analyse des besoins sera nécessaire afin d'effectuer la commande du matériel le 28 septembre 2018. </p>
 
* <p align="justify">le montage du système électrique devra être effectué afin de reconstituer l'étage électrique. Un coffrage en plexiglas sera réalisé pour contenir les modules et les câbles de manière esthétique. </p>
 
* <p align="justify">la partie commande du robot sera embarquée sur un second étage. Le cerveau du robot, une Arduino Mega, sera ainsi reliée aux différents capteurs du robot et devra envoyer les signaux nécessaires pour déplacer le robot. Cette partie commande devra donc être reliée à un ordinateur embarqué par le Centaure afin de communiquer avec les clients Wi-Fi. </p>
 
 
 
 
 
<BR \>
 
<BR \>
 
 
 
==Calendrier prévisionnel==
 
 
 
<p align="center">[[Fichier:20181012 planning previsionnel.png]]</p>
 
 
 
 
 
<p align="justify">Point sur le projet du 31 octobre :
 
* Ce qui a été fait :
 
** le fonctionnement des moteurs et de leur contrôleurs est connu. L'étude menée dessus indique qu'ils devraient pouvoir être commandé à l'aide d'un convertisseur numérique-analogique alimenté par l'Arduino puisque la consigne ne dépasse pas les 5 V.
 
** des programmes permettant de récupérer les données des capteurs de distance et du pad directionnel ont été écrits. De même pour la commande des convertisseurs de vitesse pour contrôler les deux moteurs.
 
 
 
* Ce qui est prévu pour les prochaines semaines :
 
** tester la commande des variateurs de vitesse à l'aide  de l'Arduino grâce au convertisseur numérique-analogique
 
** concevoir le programme général du robot qui regroupera les différents programmes conçus
 
** concevoir les cartes électroniques
 
** prévoir le montage du système final dans le robot</p>
 
 
 
=Réalisation du Projet=
 
 
 
==Feuille d'heures==
 
 
 
{| class="wikitable"
 
!Tâche !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Heures S11 !! Heures S12 !! Heures S13 !! Total
 
 
|-
 
|-
| Rédaction du wiki
+
| 1N4007G -  Diode de récupération standard
| 0h30
 
| 3h30
 
 
|
 
|
| 1h
+
| 1
| 0h30
+
| 0€18
| 2h30
+
| [https://fr.farnell.com/on-semiconductor/1n4007g/diode-standard-1a-1kv-do-41/dp/1458987?st=1N4007 0€18 sur Farnell]
 +
| [http://www.farnell.com/datasheets/1689669.pdf?_ga=2.72406803.1455534550.1570441646-216386020.1568878415 Document Farnell]
 +
|-
 +
| UDZVTE-172.2B -  Diode simple Zener, 2.2 V
 
|
 
|
 +
| 3
 +
| 0€46
 +
| [https://fr.farnell.com/rohm/udzvte-172-2b/zener-diode-2-2v-0-2w-sod-323fl/dp/2914128?st=zener 0€76 les 5 sur Farnell]
 +
| [http://www.farnell.com/datasheets/2644415.pdf?_ga=2.152376635.363693716.1571652170-216386020.1568878415 Document Farnell]
 +
|-
 +
| UMZ36NFHT106 -  Diode simple Zener, 36 V,
 
|
 
|
 +
| 3
 +
| 0€09
 +
| [https://fr.farnell.com/rohm/umz36nfht106/diode-zener-aec-q101-0-2w-sot/dp/2580949?st=zener 0€15 les 5 sur Farnell]
 +
| [http://www.farnell.com/datasheets/2300241.pdf?_ga=2.146177334.363693716.1571652170-216386020.1568878415 Document Farnell]
 +
|-
 +
| 597-5326-507F -  LED, Vert
 
|
 
|
 +
| 2
 +
| 0€74
 +
| [https://fr.farnell.com/dialight/597-5326-507f/led-vert-140mcd-527nm-0805/dp/2991540?st=led%20vert%200805]
 +
| []
 +
|-
 +
| 597-5406-507F -  LED, Jaune
 
|
 
|
 +
| 2
 +
| 0€66
 +
| [https://fr.farnell.com/dialight/597-5406-507f/led-jaune-160mcd-590nm-0805/dp/2991536?st=led%20jaune%200805 1€65 les 5 sur Farnell]
 +
| []
 +
|-
 +
| Résistance 49R9 - MCWR08X49R9FTL
 
|
 
|
 +
| 4
 +
| 0€03
 +
| [https://fr.farnell.com/multicomp/mcwr08x49r9ftl/resistance-thick-film-49-9ohm/dp/2447669?st=49R9 0€07 les 10 sur Farnell]
 +
| []
 +
|-
 +
| Résistance 300R, 1% - MCWR08X3000FTL
 
|
 
|
 +
| 17
 +
| 0€10
 +
| [https://fr.farnell.com/multicomp/mcwr08x3000ftl/resistance-thick-film-300-ohm/dp/2447633?st=300R 0€06 les 10 sur Farnell] ou à 0€02 sur le magasin de Polytech en traversant
 +
| []
 +
|-
 +
| Résistance 1k - MCWR08X1001FTL
 
|
 
|
 +
| 12
 +
| 0€08
 +
| [https://fr.farnell.com/multicomp/mcwr08x1001ftl/res-couche-epaisse-1k-1-0-125w/dp/2447587?st=1kr 0€07 les 10 sur Farnell] ou à 0€02 sur le magasin de Polytech en traversant
 +
| []
 +
|-
 +
| Résistance 2k55 - ERJP06F2551V
 
|
 
|
 +
| 6
 +
| 0€44
 +
| [https://fr.farnell.com/panasonic/erjp06f2551v/res-couche-epaisse-2-55k-1-0-5w/dp/2326795?st=2k55%20resistance 0€74 les 10 sur Farnell]
 +
| []
 
|-
 
|-
| Récupération des archives
+
| Résistance 4k3 - MCWR08X4301FTL
| 0h30
 
 
|
 
|
 +
| 1
 +
| 0€01
 +
| [https://fr.farnell.com/multicomp/mcwr08x4301ftl/resistance-thick-film-4-3kohm/dp/2447670?st=4k3%20resistance 0€07 les 10 sur Farnell]
 +
| []
 +
|-
 +
| Résistance 4k7 - MCWR08X4701FTL
 
|
 
|
 +
| 12
 +
| 0€08
 +
| [https://fr.farnell.com/multicomp/mcwr08x4701ftl/res-couche-epaisse-4-7k-1-0-125w/dp/2447672?st=4k7%20resistance 0€07 les 10 sur Farnell]
 +
| []
 +
|-
 +
| Résistance 7k87, 1/8W - MCWR08X7871FTL
 
|
 
|
 +
| 20
 +
| 0€12
 +
| [https://fr.farnell.com/multicomp/mcwr08x7871ftl/resistance-thick-film-7-87kohm/dp/2447723?st=7k87%20resistance 0€06 les 10 sur Farnell]
 +
| []
 +
|-
 +
| Résistance 10k - MCWR08X1002FTL (1/8 W)
 
|
 
|
 +
| 10
 +
| 0€07
 +
| [https://fr.farnell.com/multicomp/mcwr08x1002ftl/res-couche-epaisse-10k-1-0-125w/dp/2447553?st=10k%20resistance 0€07 les 10 sur Farnell]
 +
| []
 +
|-
 +
| Résistance 12k - WCR0805-12KFI
 
|
 
|
 +
| 1
 +
| 0€03
 +
| [https://fr.farnell.com/tt-electronics-welwyn/wcr0805-12kfi/res-couche-epaisse-12k-1-0-1w/dp/1100321?st=12k%20ohm 0€31 les 10 sur Farnell]
 +
| []
 +
|-
 +
| Résistance 30k9
 
|
 
|
 +
| 1
 +
| 0€07
 +
| [https://fr.farnell.com/panasonic/erjp06f3092v/res-couche-epaisse-30k9-1-0-5w/dp/2326822?st=30k9%20resistance 0€68 les 10 sur Farnell]
 +
| []
 +
|-
 +
| Résistance 33k - MCWR08X3302FTL
 
|
 
|
 +
| 6
 +
| 0€04
 +
| [https://fr.farnell.com/multicomp/mcwr08x3302ftl/res-couche-epaisse-33k-1-0-125w/dp/2447639?st=33k%20resistance 0€06 les 10 sur Farnell]
 +
| []
 +
|-
 +
| Résistance 47k - MCWR08X4702FTL
 
|
 
|
 +
| 2
 +
| 0€02
 +
| [https://fr.farnell.com/multicomp/mcwr08x4702ftl/res-couche-epaisse-47k-1-0-125w/dp/2447664?st=47k 0€07 les 10 sur Farnell]
 +
| []
 +
|-
 +
| Résistance 100k - MCWR08X1003FTL
 
|
 
|
 +
| 2
 +
| 0€02
 +
| [https://fr.farnell.com/multicomp/mcwr08x1003ftl/res-couche-epaisse-100k-1-0-125w/dp/2447551?st=100kr 0€07 les 10 sur Farnell]
 +
| []
 +
|-
 +
| Résistance 249k, 1% - CRCW0805249KFKEA
 
|
 
|
 +
| 20
 +
| 0€62
 +
| [https://fr.farnell.com/vishay/crcw0805249kfkea/res-couche-epaisse-249k-1-0-125w/dp/1692534?st=r%C3%A9sistance%20249kohm 0€31 les 10 sur Farnell]
 +
| []
 +
|-
 +
| Résistance 1M - MCWR08X1004FTL
 
|
 
|
 +
| 1
 +
| 0€01
 +
| [https://fr.farnell.com/multicomp/mcwr08x1004ftl/res-couche-epaisse-1m-1-0-125w/dp/2447596?st=r%C3%A9sistance%201Mohm 0€10 les 10 sur Farnell]
 +
| []
 +
|-
 +
| <font color="red">Résistance variable 1k - PTV09A-4225F-B102</font>
 
|
 
|
 +
| 10
 +
| 6€45
 +
| [https://fr.farnell.com/bourns/ptv09a-4225f-b102/potentiom-rotatif-1kohm-9mm-20/dp/2469527?st=potentiom%C3%A8tre%201kohm 6€45 les 10 sur Farnell]
 +
| []
 
|-
 
|-
| Analyse de l'existant (archives, état du système)
+
| Résistance variable 2k5 - PTV09A-4225F-B102
| 3h30
 
| 1h
 
|
 
|
 
|
 
|
 
|
 
|
 
|
 
|
 
|
 
|
 
|
 
 
|
 
|
 +
| 5
 +
| 1€45
 +
| [https://fr.farnell.com/bourns/3362p-1-252lf/potentiometre-trimmer-2-5k-10/dp/2328602 0€29 unité sur Farnell]
 +
| []
 
|-
 
|-
| Commande de matériel
+
| Résistance variable 100k - TC33X-2-104E
|
 
| 5h30h
 
|
 
|
 
|
 
|
 
|
 
|
 
|
 
|
 
|
 
|
 
|
 
 
|
 
|
 +
| 1
 +
| 0€23
 +
| [https://www.mouser.fr/ProductDetail/Bourns/TC33X-2-104E?qs=sGAEpiMZZMs26uXuX7MLMce%252B7YUaTyBD 0€23 sur Mouser]
 +
| []
 
|-
 
|-
| Documentation
+
| Capacité 22p - 885012007012
| 3h
 
| 3h30
 
|
 
|
 
|
 
|
 
| 3h
 
|
 
|
 
| 2h
 
|
 
|
 
|
 
 
|
 
|
 +
| 4
 +
| 0€16
 +
| [https://www.mouser.fr/ProductDetail/Wurth-Elektronik/885012007012?qs=sGAEpiMZZMvzv9EAOJZmO3N4Gkzop6KNPM9b7R1pbeg%3D 0€08 sur Mouser]
 +
| []
 
|-
 
|-
| Rédaction de schémas
+
| <font color="red">Capacité 100p - 08051A101JAT2A </font>
 
|
 
|
 +
| 9
 
|  
 
|  
| 5h
+
| [https://fr.farnell.com/avx/08051a101jat2a/cond-100pf-100v-5-c0g-np0-0805/dp/499171?st=condensateur%20100p 1€92 les 10 sur Farnell]
| 5h
+
| []
| 2h
+
|-
| 3h
+
| Capacité 1n - MC0805B102K500CT
|
 
|
 
|
 
 
|
 
|
 +
| 1
 +
| 0€03
 +
| [https://fr.farnell.com/multicomp/mc0805b102k500ct/cond-1000pf-50v-10-x7r-0805/dp/1759226?st=1nF%200805 0€31 les 10 sur Farnell]
 +
| []
 +
|-
 +
| Capacité 10n - 885012207092
 
|
 
|
 +
| 1
 +
| 0€08
 +
| [https://www.mouser.fr/ProductDetail/Wurth-Elektronik/885012207092?qs=sGAEpiMZZMvzv9EAOJZmOxE9Wbho7BxjE4%2FQ9gSfcsk%3D 0€08 sur Mouser]
 +
| []
 +
|-
 +
| Capacité 100n - CL21B104KACNNNC
 
|
 
|
 +
| 32 (en prendre 100 pour M. FLAMEN)
 +
| 0€76
 +
| [https://fr.farnell.com/samsung-electro-mechanics/cl21b104kacnnnc/condensateur-0-1uf-25v-mlcc-0805/dp/3013475?st=condensateur%20100n 2€37 les 100 sur Farnell]
 +
| []
 +
|-
 +
| Capacité 1µ - CL21B105KOFNNNE
 
|
 
|
 +
| 3
 +
| 0€20
 +
| [https://fr.farnell.com/samsung-electro-mechanics/cl21b105kofnnne/condensateur-1uf-16v-mlcc-0805/dp/3013484?st=condensateur%201%C2%B5 0€32 les 5 sur Farnell]
 +
| []
 
|-
 
|-
| Montage électrique (tests moteurs, câble de puissance)
+
| Capacité 10µ polarisée - MCGPR25V106M5X11
| 0h30
 
|
 
| 2h45
 
| 5h30
 
| 11h45
 
| 3h
 
|
 
|
 
|
 
| 1h
 
|
 
|
 
|
 
 
|
 
|
 +
| 5
 +
|
 +
| [https://fr.farnell.com/multicomp/mcgpr25v106m5x11/condensateur-10-f-25v-20/dp/9451153?st=condensateur%20polaris%C3%A9%2010%C2%B5 0€05 sur Farnell]
 +
| []
 
|-
 
|-
| Programmation
+
| Capacité 100/500µ post pont de diodes -
|
 
 
|
 
|
| 0h15
+
| 1
 
|  
 
|  
| 0h15
+
| [https://fr.farnell.com/multicomp/mcgpr50v107m8x11/condensateur-100-f-50v-20/dp/9451412?st=100uF 0€11 le 0,1 mF / 50 V] ou [https://fr.farnell.com/teapo/ksh108m035s1g5l25k/condensateur-1000-f-35v-20/dp/2800127?st=1000uF 0€52 le 1 mF / 35V] ou [https://fr.farnell.com/multicomp/mcgpr50v108m16x26/condensateur-1000-f-50v-20/dp/9451447?st=1000uF 0€70 le 1 mF / 50 V]
|
+
| []
| 2h30
+
|-
|
+
| Inductance 10µH - SRR0604-100ML
|
 
| 2h
 
|
 
|
 
 
|
 
|
 +
| 1
 +
| 0€62
 +
| [https://www.mouser.fr/ProductDetail/Bourns/SRR0604-100ML?qs=sGAEpiMZZMsg%252By3WlYCkU%2F5jB0OizeKuojXw0mzORZA%3D 0€62 sur Mouser]
 +
| [https://www.mouser.fr/datasheet/2/54/RR0604-1391527.pdf Document Mouser ]
 +
|-
 +
| Pins header 6x1
 
|
 
|
 +
| 1
 +
| 0€96
 +
| [https://www.mouser.fr/ProductDetail/Harwin/M50-3030642?qs=sGAEpiMZZMvlX3nhDDO4AJabgqr%2FYPOydrtYfvKY9i4%3D 0€96 sur Mouser]
 +
| []
 
|-
 
|-
| CAO (3D)
+
| Pins header 3x2
|
 
 
|
 
|
 
|  
 
|  
 
|  
 
|  
|  
+
| []
 +
| []
 +
|-
 +
| Pins header 8x1
 
|
 
|
 
|  
 
|  
|
 
|
 
 
|  
 
|  
|
+
| []
|
+
| []
|
 
|
 
 
|-
 
|-
| CAO (circuit)
+
| Pins header 10x1
|
 
 
|
 
|
 
|  
 
|  
 
|  
 
|  
|  
+
| []
 +
| []
 +
|-
 +
| ACPL-C87B-000E
 
|
 
|
|  
+
| 3
 +
| 19€05
 +
| [https://www.mouser.fr/ProductDetail/Broadcom-Avago/ACPL-C87B-000E?qs=sGAEpiMZZMt6N1sTk4DRxsirZG60a3duVEtfRiRH4FU%3D 6€35 sur Mouser]
 +
| []
 +
|-
 +
| OPA2374AIDCNR -  Amplificateur opérationnel
 
|
 
|
 +
| 3
 +
| 4€95
 +
| [https://fr.farnell.com/texas-instruments/opa2374aidcnr/op-amp-6-5mhz-5v-us-sot-23-8/dp/3004928?st=OPA237 1€65 sur Farnell]
 +
| []
 +
|-
 +
| Transistor PNP
 
|
 
|
| 3h
+
| 12
 +
| 2€74
 +
| [https://fr.farnell.com/diodes-inc/2db1689-7/transistor-pnp-sot323-0-3w/dp/1710698?st=transistors%20pnp 1€14 les 5 sur Farnell]
 +
| [http://www.farnell.com/datasheets/368937.pdf?_ga=2.218103446.1218303456.1571140481-216386020.1568878415 Document Farnell]
 +
|-
 +
| 703-0169 -  Afficheur LED 7 segments (anode commune)
 
|
 
|
 +
| 12
 +
| 4€13
 +
| [https://fr.farnell.com/multicomp/703-0169/connec-circu-taille18-11-voies/dp/2112192?st=7%20segments%20anode%20commune%20%20digits%20rouge 1€72 les 5 sur Farnell]
 +
| [http://www.farnell.com/datasheets/1626814.pdf?_ga=2.206485139.1218303456.1571140481-216386020.1568878415 Document Farnell]
 +
|-
 +
| MM5451YN -  LED Driver
 
|
 
|
 +
| 1
 +
| 4€72
 +
| [https://fr.farnell.com/microchip/mm5451yn/led-driver-ic/dp/2510527?st=mm5451 4€72 sur Farnell]
 +
| [http://www.farnell.com/datasheets/57504.pdf?_ga=2.186383529.1455534550.1570441646-216386020.1568878415 Document Farnell]
 +
|-
 +
| 108-0902-001 -  Connecteur de test banane, 4mm, Femelle
 
|
 
|
 +
| 3
 +
| 1€57
 +
| [https://fr.farnell.com/johnson-cinch-connectivity/108-0902-001/banana-socket-15a-4mm-panel-red/dp/1654713?st=fiche%20banane%20femelle 0€522 sur Farnell]
 +
|
 +
|-
 +
| 108-0903-001 -  Connecteur de test banane, 4mm, Femelle
 
|
 
|
 +
| 3
 +
| 1€57
 +
| [https://fr.farnell.com/johnson-cinch-connectivity/108-0903-001/fiche-banane-panneau-15a-4mm-noir/dp/1654714?st=fiche%20banane%20femelle 0€522 sur Farnell]
 +
|
 
|-
 
|-
| Total
+
| '''TOTAL'''
| 8h
 
| 13h30
 
| 8h
 
| 11h30
 
| 14h30
 
| 8h30
 
| 7h30
 
|
 
|
 
| 8h
 
|
 
|
 
|
 
 
|
 
|
 +
|
 +
| '''83€35'''
 +
|
 +
|
 
|}
 
|}
 +
</p>
  
== Introduction au projet et récupération d'archives ==
+
<BR \>
 +
<BR \>
  
<p align="justify">En ce début de projet, nous avons pu voir le robot sur lequel nous allons travailler. Ce fut aussi l'occasion de connaitre les directives afin de mener ce projet au succès. </p>
+
==Liste des tâches à effectuer==
  
 +
<p align="justify">
 +
* 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
 +
</p>
 
<BR \>
 
<BR \>
=== Cahier des charges ===
 
  
<p align="justify">Le tuteur de ce projet souhaite commander le robot à l'aide d'une manette avant de transmettre des ordres par Wi-Fi à l'aide d'un serveur installé sur le robot. Cet objectif final peut se décomposer en plusieurs sous objectifs de thématiques différentes :
+
==Calendrier prévisionnel==
* Puissance : L'étage de puissance ayant été retiré du robot, il est primordial de comprendre le fonctionnement de ce dernier en se basant sur les plans établis par les groupes précédents et de rétablir le circuit de puissance. Un boitier permettant de fixer chaque éléments serait un plus afin de donner un aspect fini au projet.
 
* Commande : Le robot doit être guidé via une manette et obéir aux ordres basiques avancer, reculer ou tourner à droite comme à gauche. Pour cela, nous disposons d'un Arduino MEGA et de quatre relais pour commander deux variateurs de vitesse ITALSEA CH2QM.2. Ces variateurs de vitesse ont en entrée une alimentation 24V ou 36V et un bornier à 7 entrées. Un schéma a été réalisé en suivant le schéma de la documentation de ces variateurs et en reprenant ce qui a été fait par les anciens membres du projet. Nous détaillerons un peu plus bas les différents composants.
 
* Sécurité : Les mouvements du robot doivent se faire de manière sécurisée. Le robot étant équipé de quatre capteurs infrarouges Sharp 2Y3AOO3 à l'avant et de deux capteurs infrarouges Sharp 2Y0A02 à l'arrière, il doit se mettre en position de repli s'il détecte un obstacle trop proche. Un bouton d'arrêt d'urgence doit permettre l'arrêt de la partie puissance du robot. </p>
 
  
<BR \>
+
<p align="center">[[Fichier:1920_P4_calendrierInitial.png|800px|thumb|center|Calendrier prévisionnel créé en septembre traçant les différentes étapes du projet]]</p>
  
=== Archives ===
 
  
<p align="justify">Ce robot étant l'objet de plusieurs projets depuis une dizaine d'années, il existe donc de nombreuses traces écrites laissées par les anciens étudiants. Ces traces écrites sont principalement des rapports de projet traitant des capteurs de distance et des variateurs de vitesse. Si certains étudiants ont laissé un CD en plus de leur rapport permettant la numérisation facilitée de leurs sources, la plupart des rapports sont seulement sous format papier et n'ont pas été retranscrit sur un dépôt en ligne. Il existe aussi des disques non liés à un rapport papier. De plus, un étudiant ayant travaillé sur un wiki projet tel que celui-ci l'année dernière, nous avons ainsi accès au travail effectué par cette personne.</p>
+
<p align="justify">
<p align="justify">Afin de regrouper l'intégralité de ces informations sur un dépôt en ligne, un lien OneDrive permet d'accéder aux informations numérisées des anciens étudiants :</p>
+
Le déroulement du projet devrait se faire autour de 6 étapes qui sont :
https://1drv.ms/f/s!Agdnb608xp_RifFzM-b3jDG6AuN4-Q <BR \>
+
* initialisation du projet (documentation, rédaction de spécifications, commande de matériel)
<p align="justify">Les archives sont contenues dans le dossier "Archives" et le dossier "Init" contient des photos du robot et de son équipement au début du projet. </p><BR \>
+
* 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é
 +
</p>
  
<BR \>
 
  
=== Etude de l'existant : des archives au robot lui-même ===
 
  
<p align="justify">Une étude des archives écrites par nos prédécesseurs ainsi qu'une analyse de l'état du système actuel nous ont permis d'en apprendre plus sur le robot et ses constituants. Nous pouvons alors distinguer les différentes parties du robot comme le châssis, les batteries, les variateurs de vitesse, les moteurs, les roues, les codeurs, les capteurs de distance, le microcontrôleur et les relais. Nous allons détailler chaque partie :</p>
+
Mise à jour du 31 octobre :
 +
[[Fichier:1920_P4_calendrier_oct.png|800px|thumb|center|Calendrier prévisionnel mis à jour en octobre. En rouge : retard constatés. En orange : retard à prévoir]]
  
* <p align="justify">Concernant le châssis du robot, il s'inscrit dans un volume de de 160*90*35 cm^3. Le bloc permettant d'héberger les étages de puissance et de commande a pour volume 60*35*26 cm^3 = 54.6 dm^3. Les batteries ayant un volume de 16*13*17 cm^3, avec donc 13 cm de hauteur, l'étage de puissance fera occupera probablement entre 15 et 18 cm de hauteur.</p>
+
Mise à jour du 17 novembre :
 +
[[Fichier:1920_P4_calendrier_nov.png|800px|thumb|center|Calendrier prévisionnel mis à jour en novembre. En rouge : retard constatés. En orange : retard à prévoir]]
  
* <p align="justify">Le robot est alimenté par deux batteries à plomb 12 V continu. Mises en parallèles, elles permettent donc d'obtenir une tension continue de 24 V nécessaire à l'alimentation des moteurs.</p>
+
=Réalisation du Projet=
  
* <p align="justify">en ce qui concerne les variateurs de vitesse, il s'agit de deux plaquettes CH2QM.2 de ItalSEA. Parmi les archives, nous avons retrouvé une configuration manuelle différente de celle retrouvée en début de projet permettant le contrôle des moteurs via une PWM du microcontrôleur. Le schéma suivant montre à gauche le câblage théorique issu de la documentation d'une des archives, et à droite se trouve le montage réalisé par mon prédécesseur :
 
  
[[Fichier:VdV_theorie-pratique.png |thumb|900px|center| Différences de configuration du bornier des variateurs de vitesse entre le schéma de câblage théorique de la datasheet (à gauche) et le câblage réalisé par nos prédécesseurs (à droite)]]
 
  
 +
== Introduction ==
  
Sur ce schéma, nous pouvons voir le bornier tel qu'il est documenté :
+
<p align="justify">
** Pin 1 : il s'agit de la clef de démarrage. Un fil doit donc relier cette entrée à une alimentation 24V continue protégée par un fusible de 3A. L'interrupteur permet donc de couper l'alimentation du variateur de vitesse.
 
** Pin 2 : ce pin est une sortie qui, grâce à deux interrupteurs, permet de récupérer un signal sur le pin 3 ou sur le pin 4.
 
** Pin 3 : si le signal en sorti du pin 2 est reçu par le pin 3, alors le sens de rotation des moteurs est tel que le robot reculera.
 
** Pin 4 : de même que le pin 3, si le signal reçu par ce pin correspond à la sortie du pin 2, alors le robot sera contraint de se déplacer en marche avant.
 
** Pin 5 et 7 : ces deux pins sont reliés à l'aide d'un potentiomètre de 5kOhm. Le pin 5 correspond à l'une des pattes externes du potentiomètre et le pin 7 correspond à la patte opposée;
 
** Pin 6 : ce pin est connecté à la patte intérieure du potentiomètre et le potentiel appliqué sur cette entrée dépend donc de la valeur du potentiomètre.</p>
 
  
* <p align="justify">Nous avons à notre disposition deux moteurs équipés de freins. Ces moteurs sont des machines à courant continu alimentées en 24 VDC et de puissance nominale 350 W. Au régime nominale, le courant est de 15.5 A et la rotation de l'arbre post réducteur est de 152 tours par minute.</p>
+
</p>
* <p align="justify">Le robot dispose de trois roues : deux roues motorisées à l'arrière de diamètre 34 cm et une roue folle à l'avant de diamètre 20 cm.</p>
+
 
* <p align="justify">Chaque roue motorisée dispose d'un codeur Baumer GCI0K. 0411200 alimenté en 5 V continu pouvant mesurer une vitesse de rotation de 37 500 tr/min.</p>
+
<BR \>
* <p align="justify">Afin de sécuriser le système, sont installés quatre télémètres infrarouges Sharp 2Y3A003 à l'avant et deux Sharp 2YOAO2 à l'arrière du robot pour mesurer la distance entre le robot et les obstacles et éviter tout danger. Les capteurs 2Y3A003 ont une portée théorique de 40 à 300 cm avec un temps de réponse d'environ 16.5 ms. Les deux types de télémètres sont analogiques.</p>
+
 
* <p align="justify">En guise de cerveau du système, un Arduino MEGA a été choisi pour récupérer les informations provenant des différents capteurs et contrôler la commande des variateurs de vitesse.</p>
+
=== Cahier des charges ===
* <p align="justify">De plus, nous disposons de divers contacts tels que deux relais et un contacteur pour contrôler l'alimentation des différents modules. </p>
 
  
 +
<p align="justify">
  
<p align="justify">De plus, le robot embarquera une unité centrale en guise de serveur et un écran qu'il faut donc alimenter en 12 VDC. Nous profiterons de ce 12V pour alimenter l'Arduino. Il nous faut donc un convertisseur 24 VDC -> 12 VDC disposant d'une puissance et d'un courant de sortie suffisamment important pour alimenter tout cela.
+
</p>
D'après la plaque signalétique de l'écran, ses caractéristiques sont les suivantes : 12 VDC, 3.5 A et 42 W. Le processeur i3-3220T de l'ordinateur, à lui seul, nécessite entre 38 et 71 W. Avec ces deux éléments seuls, le convertisseur 24/12 VDC à notre disposition n'est clairement pas suffisant.</p>
 
  
 
<BR \>
 
<BR \>
  
<p align="justify">Au moment de commencer le projet, le robot est donc en pièces détachées, et seuls les roues et les moteurs sont fixés au châssis. En effet, les variateurs de vitesse, reliés aux moteurs, sont sur une table adjacente au robot avec l'Arduino et les relais utilisés par la personne précédente. Le bouton d'arrêt d'urgence a aussi été retiré et se trouve en pièces distinctes. Quant aux capteurs de distance, trois sont encore fixés à l'avant du robot sur les quatre, et un sur les deux à l'arrière.</p>
+
=== Archives ===
 +
 
 +
<p align="justify">
 +
 
 +
</p>
 +
<p align="justify">
 +
 
 +
</p>
 +
<p align="justify">
 +
 
 +
</p>
  
 
<BR \>
 
<BR \>
 
<BR \>
 
<BR \>
  
== Commande du matériel nécessaire à la finalisation du projet ==
+
== Carnet de route ==
  
<p align="justify">Afin d'acquérir rapidement le matériel nécessaire au bon déroulement du projet, la question du matériel à commander s'est posée parmi les premières. Si une bonne partie du matériel était déjà à disposition, il restait une partie de l'équipement à acheter. </p>
+
=== Semaine 0 : mercredi 11 septembre ===
<p align="justify">Dans le but de commander grâce à une manette le Centaure, il était nécessaire d'avoir de quoi réaliser une manette et nous avons donc commander, pour la concevoir, 4 boutons représentant les directions ou, davantage adaptée, un joystick. L'intérêt du joystick serait de commander la vitesse du robot au doigt directement, en fonction de l'inclinaison du joystick ou de permettre une rotation tout en avançant ou reculant. De plus, afin de transmettre les informations de la manette au robot, il est nécessaire d'avoir un câble suffisamment long. Que nous choisissions un joystick ou bien des boutons, il sera nécessaire d'avoir un câble constitué d'au moins 5 fils d'une longueur de quelques mètres (deux ou trois mètres suffiront amplement).</p>
 
  
<p align="justify">Les télémètres ayant été malmenés par les années, en avoir quelques uns de réserve permettrait de couvrir le risque d'avoir des capteurs défectueux parmi ceux installés sur le robot. Il pourrait de plus être intéressant de mesurer l'état de la charge ou SoC (State of Charge en anglais) des batteries afin d'anticiper leur décharge et ainsi préserver leur durée de vie. Pour cela nous investissons dans un 'fuel gauge', mesurant le courant, la charge, la tension et la température pour estimer le pourcentage de décharge des batteries. Le capteur retenu est un LTC2944 qui semble avoir un excellent rapport qualité/prix. Il est compatible avec les batteries au plomb et peut déterminer la charge pour des batteries délivrant jusque 60 V à leurs bornes. <BR \>
 
  
A l'aide d'un voyant lumineux tel qu'une LED RGB, nous mettrons alors au point un code couleur permettant de suivre l'évolution des batteries et d'anticiper leur recharge. Afin de mesurer le couple du moteur, il pourra être nécessaire de mesurer le courant transmis au moteur. En effet, nous savons que : </p>
+
<p align="justify">
<p align="center">C = K.i</p>
+
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.  
<p align="justify"> avec C le couple exercé par le moteur, K une constante liée au courant d'excitation du moteur et i le courant alimentant le moteur. De cette manière, si nous parvenions à connaitre la constante k du moteur, mesurer le courant permettrait de mesurer directement le couple exercé sur les roues.</p>
+
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.
 +
</p>
  
<p align="justify">Enfin, pour alimenter en 12V continu le serveur, l'écran et le microprocesseur, nous commandons un convertisseur 24 VDC -> 12 VDC. Bien qu'il y en ait de toutes sortes, le manque de disponibilité ou de puissance délivrée en sortie du convertisseur a restreint notre choix à un convertisseur permettant de délivrer, en sortie, jusqu'à 288W (24A). Ce convertisseur permettra donc bien d'alimenter tout les appareils nécessaires.  </p>
+
[[Fichier:1920_P4_montage0.jpg | thumb | center | 400px | Schéma du montage initialement prévu en début de projet]]
  
  
 +
<p align="justify">
 +
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.
 +
</p>
 +
<p align="justify">
 +
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.
 +
</p>
  
 
<BR \>
 
<BR \>
 +
 +
[[Fichier:1920_P4_carteDetruite.jpg|400px|thumb|center|Photo d'un des anciens afficheurs ayant été détruit]]
 +
 
<BR \>
 
<BR \>
  
== Représentation du système à étudier ==
+
<p align="justify">
 +
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.
 +
</p>
  
<p align="justify">Dans le but de représenter le système à étudier, nous mettons au point deux forme de schéma :
 
* un schéma simplifié et visuel, reprenant les photos des différents éléments utilisés reliées par des liens. </p>
 
[[Fichier:schema_plan simplifie.png |thumb|900px|center| Schéma visuel du projet Centaure]]
 
 
<BR \>
 
<BR \>
<p align="justify">Sur ce schéma, les différents éléments sont reliés à gauche par l'élément les alimentant et par en haut par les éléments lui fournissant des données. Sur leur droite se trouvent ensuite les liens allant vers les modules qu'ils alimentent ou commandent. <BR \>
 
Nous pouvons voir que les deux batteries 12 V alimentent tout le système soit de manière directe, soit au travers d'un convertisseur 24 VDC -> 12 VDC. Cette alimentation peut facilement être commandée manuellement grâce à un coupe batterie situé sur l'extérieur du robot. Suite à ce coupe batterie, nous pouvons distinguer quatre chemins d'alimentation distincts :</p>
 
** <p align="justify">le premier circuit est la partie "cerveau" alimenté en 12V continu. Nous avons donc le convertisseur en premier élément permettant d'alimenter en 12 VDC l'ordinateur, l'écran et l'Arduino MEGA. La caméra Kinect est ensuite connectée au serveur via une de ses sorties USB, lui permettant d'obtenir des informations sur l'environnement du robot. L'écran lui, est aussi relié au serveur pour y afficher des informations. Quant à l'Arduino, elle pilote ensuite différents relais et récupère les informations provenant des capteurs de distance et des codeurs situés derrière les roues. Il est important que cette partie du système ne soit pas en lien avec le bouton d'arrêt d'urgence : de cette manière, un appui sur l'arrêt d'urgence permettra de couper la partie puissance tout en gardant la partie commande. En effet, si l'alimentation du convertisseur était coupée, le serveur et l'Arduino ne seraient plus alimentés, ne permettant plus au système de communiquer sur le web et à l'Arduino de garder la main sur le système de sécurité.</p>
 
** <p align="justify">un second fil relie simplement l'alimentation en 24 VDC à la bobine du relai derrière le bouton d'arrêt d'urgence. Ce relai permet, dans cet état, d'alimenter la bobine du contacteur dés que le coupe batterie est fermé si les autres éléments ne sont pas ouverts. L'intérêt de ce relai réside dans la possibilité de mettre un bouton poussoir entre le 24V et la bobine : il sera alors nécessaire d'appuyer sur un bouton 'départ cycle' une fois la mise sous tension ou le repli en position de sécurité du système pour alimenter le circuit de puissance. Le contact sera maintenu grâce à un auto-maintien du relai. Cette fonction permet alors un gain de sécurité puisqu'il sera nécessaire d'appuyer sur un bouton pour piloter à nouveau le robot. Ce bouton physique peut aussi être remplacé par un bouton sur l'interface web lorsque le robot sera piloté par Wi-Fi pour éviter de se déplacer si le robot est loin. Ce bouton commandera alors le relai piloté par l'Arduino.</p>
 
** <p align="justify">la troisième voie, le circuit de commande, est composée du bouton d'arrêt d'urgence, du relai dont on a précédemment parlé et d'un autre relai piloté par l'Arduino. De la même manière que l'alimentation du circuit de puissance nécessite l'appui sur un bouton 'départ cycle', l'arrêt d'urgence coupe la commande du contacteur s'il a été enclenché et n'est pas revenu en position haute. Le relai piloté par l'Arduino permet à l'Arduino de sécuriser le système de manière logicielle : si un obstacle est détecté trop proche du robot, l'Arduino a la capacité de couper l'alimentation de la partie puissance et ainsi d'immobiliser le système pour qu'il n'entre pas en collision. </p>
 
** <p align="justify">La dernière ligne concerne la partie puissance du système. Si le contacteur est fermé grâce à la partie commande, alors il alimente les variateurs de vitesse et les freins des moteurs au travers de fusibles. Le variateur de vitesse, commandé par l'Arduino, va ensuite alimenter le moteur auquel il est rattaché. L'Arduino commande, grâce à des relais et à un signal analogique, la direction et la vitesse des moteurs. Il es très important que les freins des moteurs soient alimentés en 24V sans quoi le courant demandé à la batterie risquerait d'être très important et d'endommager le système lors de la commande des moteurs. Enfin, un codeur placé derrière chaque roue permet à l'Arduino d'obtenir des informations sur la vitesse de rotation du moteur, et donc d'adapter sa commande par rapport à la consigne reçue de l'utilisateur.</p>
 
  
<p align="justify">/!\ Non représenté sur ce schéma, un fusible en début de chaque lignes permettrait d'éviter tout problème électrique en cas de court-circuit.</p>
+
<p align="justify">
 +
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.
 +
</p>
  
 +
<BR \>
 +
 +
<p align="justify">
 +
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.
 +
</p>
 +
 +
<BR \>
  
* deux schémas électriques plus conventionnels :
+
=== Semaine 1 : mercredi 18 septembre ===
[[Fichier:Schema_elec_1.png |thumb|900px|center| Schéma électrique du projet Centaure : partie 1]]
 
[[Fichier:Schema_elec_2.png |thumb|850px|center| Schéma électrique du projet Centaure : partie 2]]
 
  
<p align="justify">Sur le premier schéma, nous retrouvons la batterie, le coupe-batterie et le convertisseur 24 VDC->12 VDC. Les sorties de ce folio sont donc les alimentations en 12 V et 24 V continues. La suite du système se trouve alors sur le second schéma de la même manière que nous l'avions vu sur le schéma précédent :</p>
 
** <p align="justify">l'alimentation en 12 V permet d'alimenter le PC/l'écran ainsi que l'Arduino. Ne sont pas présents sur ce schéma les connexions liées à l'Arduino tels que les différents capteurs et la connexion série avec l'ordinateur : ces connexions seront l’œuvre d'un prochain folio lorsqu'il sera définitif. </p>
 
** <p align="justify">la partie commande, alimentée en 24 VDC et composée du bouton d'arrêt d'urgence et des relais vu sur le schéma simplifié. Nous avons rajouté sur ce schéma électrique le bouton Dcy (S1) hypothétique. Il pourrait très bien être remplacé par un câble seul dans un premier temps. Au bout de cette ligne de commande ce trouvent les bobines du relai et du contacteur ainsi qu'un voyant lumineux H1 indiquant que le robot est actuellement sous puissance. Lorsqu'une des conditions n'est pas satisfaite (i.e suite à l'appui sur le bouton d'arrêt d'urgence ou qu'un des contacts des relais n'est pas fermé) alors le contact normalement fermé du relai 24V laisse passer le courant et alimente le voyant H2 signifiant la mise sous tension du robot bien qu'il ne soit pas sous puissance. De cette manière, un voyant est toujours allumé dés que le coupe-batterie est fermé afin de montrer que le robot est sous tension.</p>
 
** <p align="justify">la partie puissance débute par le contacteur qui, s'il est fermé, permet l'alimentation des variateurs de vitesse et des freins. Les connexions entre les variateurs de vitesse et l'Arduino n'ont ici pas été représentées et seront, comme les capteurs, décrites dans un autre folio.</p>
 
  
<BR \>
+
<p align="justify">
<BR \>
+
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
 +
</p>
 +
 
 +
<p align="justify">
 +
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 :
 +
</p>
 +
 
 +
[[Fichier:1920_P4_circuit_v1.0.jpg | 400px | center | thumb | Croquis du montage prenant en compte le transformateur en entrée pour le signal alternatif, le pont de diodes avec filtre puis le pont diviseur de tension. Pour la partie tension continue, on ajoute un convertisseur continu vers alternatif en entrée de circuit]]
  
== Tests du robot : avec commande manuelle ==
+
<p align="justify">
 +
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.
 +
</p>
  
<p align="justify">Les deux moteurs disposent en tout de 7 câbles : des gros câbles de couleurs variées (noir, marron, bleu, blanc, vert) et deux câbles plus fins (violet et jaune). Après analyse, le gros câble noir est en fait la réunion de deux câbles noirs plus petits : chacun de ces câbles noirs accompagne un des deux autres câbles fins. Nous avons donc deux paires de câbles de petits diamètres qui sont violet et noir pour le frein du moteur droit et jaune et noir pour le frein gauche. Ces deux freins sont, par défaut, bloqués et il est nécessaire d'appliquer 24 V entre les câbles de chacune de ces paires si nous souhaitons faire tourner les roues du robot. Quant aux plus gros câbles, la paire de câbles marron/bleu permettent la mise sous tension du moteur droit lorsque la paire vert/blanc est liée au moteur gauche. Chacune de ces dernières paires sera donc reliée à l'un des variateurs de vitesse pour faire varier la vitesse de rotation des moteurs et donc la vitesse de déplacement du robot.</p>
+
<p align="justify">
 +
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.
 +
</p>
  
<p align="jusify">Afin de comprendre comment le variateur de puissance CH2QM.2 fonctionne, la première phase de tests sera réalisée sans la PWM de l'Arduino. Nous configurons donc le montage de la même manière qu'indiquée par les documents constructeurs, soit en plaçant une résistance variable de 5 kOhm entre les pins 5 et 7 du variateur de vitesse, le pin 6 étant relié à la troisième broche de la résistance variable.
 
L'Arduino Mega nous permettra de changer l'état des relais afin de simuler un cycle de moteur : moteur à l'arrêt à l'état initial pour respecter les contraintes du variateur,avant d'appliquer une consigne de mouvement avant puis arrière. </p>
 
  
<p align="justify">Lors de ces tests, il est nécessaire que la valeur du potentiomètre soit de 5 kOhm à l'état initial, avant de faire varier la résistance lorsque le moteur est en phase de mouvement sans quoi les variateurs n'appliquera pas de tension aux bornes des moteurs. De plus, avant de provoquer la mise en mouvement des moteurs, il est très important d'appliquer une tension de 24 VDC aux bornes des freins moteurs sans quoi les freins continueraient d'appliquer une force très importante sur les moteurs, les empêchant de tourner et provoquant un appel de courant très important risquant de faire chauffer le système si ce n'est le mettre hors service. En prenant toutes ces précautions, nous avons pu mettre en mouvement les deux moteurs en sens avant et en sens arrière. </p>
 
<BR \>
 
  
<p align="justify">Une fois le principe de fonctionnement des variateurs de vitesse compris et que nous avons pu faire tourner les deux moteurs, nous effectuons quelques tests sur l'un des moteurs pour être sûrs de la commande à appliquer en entrée des cartes CH2QM.2. Nous relevons, pour différentes valeurs du potentiomètre, les potentiels aux deux bornes du moteur et à celle du potentiomètre par rapport à la masse. Nous mesurons aussi la tension de la batterie pour avoir une valeur référence ainsi que celle aux bornes du moteur. Enfin, nous calculons de manière approximative le nombre de tours par minute que fait une roue pour cette valeur de potentiomètre. Cette valeur approximative vient du fait que, n'ayant pas encore câblé les codeurs, nous mesurons le temps pris par la roue pour faire dix tours par rapport à un repère fixe. Nous réalisons entre 5 et 10 fois cette mesure pour en tirer un temps moyen. C'est de ce temps moyen que nous calculerons le temps mis pour faire un seul tour de roue, et enfin la vitesse angulaire en nombre de tours par minute que le moteur applique à la roue.</p>
 
<p align="justify">Ces valeurs sont ensuite récupérées dans un tableur afin d'analyser l'incidence du potentiomètre que nous cherchons à remplacer sur le système.</p>
 
  
[[Fichier:Centaure_Tableau mesures tensions.png|1080px|thumb|center|Tableau des mesures effectuées lors du test de l'influence du potentiomètre sur le système]]
 
  
<p align="justify">De ce tableau, nous pouvons constater que le potentiel du pin 6 du variateur de vitesse ne dépasse par les 4V par rapport à la masse. Il devrait donc être possible de retirer le potentiomètre et d'alimenter ce pin grâce à un signal analogique ou PWM issu de l'Arduino. De plus, nous tirons donc de ce tableau l'influence du potentiomètre sur les différentes tensions mesurées et sur la vitesse de rotation. Cette influence est mise en lumière par les deux graphiques suivants : </p>
 
  
[[Fichier:Centaure_Influence potentiometre sur tensions.png|480px|thumb|center|Graphique montrant l'influence du potentiomètre sur les différentes tensions]]
+
______________
  
[[Fichier:Centaure_Influence potentiometre sur RPM.png|480px|thumb|center|Graphique montrant l'influence du potentiomètre sur la vitesse du moteur en tours par minute]]
 
  
<p align="justify">Nous pouvons voir sur ces deux schémas que le potentiel appliqué au pin 6 du variateur de vitesse, proportionnel à la valeur du potentiomètre, est la cause des variations du potentiel situé à la borne '-' du moteur. Cette variation de potentiel provoque donc une tension plus importante entre les deux bornes du moteur qui entraine alors la rotation du moteur. Nous pouvons constater deux paliers : lorsque le potentiomètre est à moins de 10% ou à plus de 75% de sa valeur, autrement dit que le potentiel à sa borne est inférieur à 350 mV ou supérieur 2,50 V environ, la tension Umot est constante. Hormis ces cas particuliers, Umot semble linéaire en fonction du potentiel Vpot.</p>
+
<p align="justify">
 +
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.  
 +
</p>
  
<p align="justify">Concernant les valeurs obtenues, la plaque signalétique du moteur indique, une vitesse de rotation de 152 tours par minute en sortie du réducteur lorsqu'une tension de 24V est appliquée à ses bornes. De cette manière, une tension de 18,8 V appliquée à ses bornes, soit un rapport de 18,8/24 ~= 0.783 par rapport à la tension nominale, permet une vitesse de rotation de 0.783*152 = 119 tours par minute. Nous retrouvons donc bien presque les 116 tours par minutes mesurés approximativement, avec une marge d'erreur de 2.5%.</p>
+
<p align="justify">
 +
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.
 +
</p>
  
 +
<BR \>
 
<BR \>
 
<BR \>
  
<p align="justify">Nous pouvons d'ailleurs constater que, tel que le prévoit la théorie, la vitesse de rotation du moteur est proportionnelle à la tension à ses bornes : </p>
+
=== Semaine 2 : mercredi 25 septembre ===
  
[[Fichier:Centaure_Influence Umot sur RPM.png|480px|thumb|center|Graphique mettant en lumière la relation linéaire entre la tension appliquée par le variateur aux bornes du moteurs et sa vitesse de rotation]]
 
  
<p align="justify">Ces valeurs ont été mesurées en réglant le potentiomètre Vmax à son maximum et le potentiomètre Vmin à son minimum, Vmax et Vmin étant deux potentiomètres du variateur de vitesse. A son maximum, Vmax permet d'appliquer une tension maximale plus grande aux bornes du moteur. De même, à son maximum, Vmin permet au variateur d'appliquer une tension minimale plus faible. Cependant, nous avons pu remarquer que, lorsque nous cherchions à faire tourner le moteur à sa vitesse maximale, Vmin avait pour effet de décaler l'ensemble des tensions vers le haut ou le bas. C'est pourquoi, dans le but d'obtenir la vitesse maximale pour le moteur, nous avons fixé les potentiomètres Vmax et Vmin à leur maximum et minimum respectivement. Sur le tableau suivant, nous mesurons la valeur de la tension appliquée aux bornes du moteur lorsque le potentiomètre est à sa valeur maximale : la colonne de gauche reprend les tensions lorsque le potentiomètre Vmax est à son minimum lorsque la colonne de droite a pour conditions un potentiomètre Vmax à son maximum. Ces deux colonnes sont ensuite divisées en 2 de la même manière en fonction de la position du potentiomètre Vmin.</p>
+
<p align="justify">
 +
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 [http://www.ti.com/lit/ds/symlink/iso124.pdf ISO124 de TI], le [http://www.ti.com/lit/ds/symlink/iso224.pdf?HQS=TI-null-null-mousermode-df-pf-null-wwe&DCM=yes&ref_url=https%3A%2F%2Fwww.mouser.fr%2F ISO224 de TI], le [https://www.ti.com/lit/ds/symlink/amc1301-q1.pdf AMC1301QDWVQ1 de TI] ou encore le [http://www.farnell.com/datasheets/1266151.pdf?_ga=2.157007870.417526203.1569314828-216386020.1568878415 HCPL-7800 d'Avago].
 +
</p>
  
[[Fichier:Centaure_Tensions max atteignables.png |480px|thumb|center| Tableau montrant l'influence des potentiomètres Vmin et Vmax du CH2QM.2 sur la tension maximale atteignable aux bornes du moteur]]
+
<p align="justify">
 +
Mais la solution retenue est celle se basant sur le [https://www.mouser.com/ds/2/678/V02-3563EN_DS_ACPL-C87x_2016-09-05-909299.pdf 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 [http://www.ti.com/lit/ds/symlink/opa237.pdf OPA237 de TI] ou le [https://www.onsemi.com/pub/Collateral/LM358-D.PDF LM358 de ON Semiconductor] avant d'utiliser le convertisseur analogique-numérique de l'atmega328.
 +
</p>
  
<p align="justify">Nous pouvons constater que, contrairement à ce que nous pouvions nous attendre, la tension maximale mesurée aux bornes du moteur est Umot_max = 18,79 V et non 24 V. Ainsi, soit le potentiomètre 5 kOhm vu sur une documentation non référencée n'est pas optimal, soit le variateur de vitesse ne permet pas d'atteindre la tension aux bornes de la batterie. La tension minimale elle, peut osciller entre 0,93 V et 2,3 V continu en fonction de la position du potentiomètre Vmin.</p>
+
<BR \>
<p align="justify">Enfin, il est très important de noter que la tension sur le pin 6 du variateur de vitesse, celui connecté au potentiomètre, nécessite une tension de 165 mV lors du démarrage du système, sans quoi la plaquette se met en mode 'sécurité' et ne permet pas de piloter les moteurs. Il sera donc nécessaire d'appliquer cette tension minimale lors de l'initialisation du programme Arduino avant de l'augmenter pour faire tourner les moteurs, et donc faire bouger le robot. </p>
 
  
 +
<p align="justify">
 +
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.
 +
</p>
  
 
<BR \>
 
<BR \>
 +
 +
<p align="justify">
 +
Pour l'envoi des données, nous allons nous baser sur la carte [https://store.arduino.cc/arduino-ethernet-rev3-without-poe 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 [http://www.wiznet.co.kr puce W5100] permettant à la carte de dialoguer sur un réseau ethernet avec d'autres périphériques tels que notre PC.
 +
</p>
 +
<p align="justify">
 +
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.
 +
</p>
  
  
<p align="justify">Suite à ces tests, nous vérifions le bon fonctionnement du convertisseur 24 VDC -> 12 VDC acheté. Pour cela nous mesurons sa tension à vide lorsque nous l'alimentons aux batterie délivrant une tension quelque peu supérieure à 25 V. </p>
+
<p align="justify">
 +
Le choix de ce matériel nous conduit donc à l'architecture suivante :
 +
</p>
  
[[Fichier:Centaure_Mesure tension sortie convertisseur.jpeg |480px|thumb|center| Mesure de la tension en sortie du convertisseur 24 VDC vers 12 VDC lorsqu'il est alimenté par la batterie 25V]]
+
[[Fichier:1920_P4_vueGener_v1.1.jpg | 400px | center | thumb | Schéma du système comportant 4 blocs distincts]]
  
<p align="justify">Nous avons donc, en sortie du convertisseur, une tension de 14,6 V. Cette tension sera évidemment plus basse une fois le convertisseur sous charge. Le convertisseur délivre donc bien une tension de 12 V continu et pourra alimenter sans problème le serveur, l'écran et l'Arduino MEGA.</p>
+
 
 +
[[Fichier:1920_P4_circuit__v1.1.jpg | 400px | center | thumb | Schéma du bloc permettant la récupération des valeurs de tensions en sortie des générateurs]]
 +
 
 +
 
 +
[[Fichier:1920_P4_affichage_v1.1.jpg | 400px | center | thumb | Schéma du bloc permettant l'affichage des valeurs des tensions sur le banc de tests]]
  
 
<BR \>
 
<BR \>
 
<BR \>
 
<BR \>
  
== Conception de cartes électroniques ==
+
=== Semaine 3 : mercredi 2 octobre ===
  
<p align="justify">Maintenant que la grosse électronique est comprise, il nous est nécessaire de concevoir des cartes électroniques pour notre projet. En effet, nous disposons de quelques LEDs et résistances qu'il serait bon de fixer à un PCB. Ce PCB nous permettra, de la même manière, de fixer les différents fils tels que ceux liés aux codeurs, aux variateurs de vitesses et à la commande. Concernant la commande, nous avons choisi de piloter le Centaure à l'aide d'un joystick, il nous faut donc fixer ce dernier à un PCB et préparer la connexion avec la carte principale. Pour assurer cette communication, et puisque 5 pins sont nécessaires pour se servir du joystick, nous utiliserons un câble ethernet avec deux prises RJ11 à 6 broches. Ainsi, il nous restera un pin non utilisé qui pourrait nous servir à l'avenir. </p>
+
<p align="justify">
 +
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 :
 +
</p>
  
<p align="justify">Afin de concevoir ces deux cartes, nous avons utilisé la version étudiante du logiciel Eagle. Dans un premier temps, il est nécessaire de concevoir le 'schématic' des cartes en récupérant ceux de chaque composant, ainsi que leur 'footprint' que nous utiliserons par la suite. Ces 'schématics' permettent d'indiquer le fonctionnement, le câblage du circuit pour les personnes souhaitant obtenir des informations sur la carte mais aussi, et surtout, de préparer le routage de la carte.</p>
 
  
<p align="justify">Concernant le routage, l'espace entre deux éléments (entre deux pistes, une piste et un pad, etc) ainsi que l'isolation ont été fixé à 12 mil (environ 0.3 mm) pour les deux cartes. La taille des pistes, elle, est de 24 mil (0.6 mm) sur les deux cartes à l'exception des pistes liées aux pins des prises RJ11 qui ont été réduites à 20 mil (0.5 mm) à cause du faible espace entre les pins des connecteurs. </p>
+
  ARDUINO ETHERNET
 +
   
 +
 
 +
  Matériel :
 +
 
 +
  * PowSupp DC21MMX : [https://fr.farnell.com/lumberg/neb-21-r/fiche-femelle-basse-tension-2/dp/1217037?st=dc%2021%20mmx Farnell 14€4 les 10] ou [https://fr.farnell.com/cliff-electronic-components/fc68148/embase-pcb-alim-dc-2-1mm-pqt-10/dp/224959?MER=bn_search_1TP_SearchNB_2 5€61 unité sur Farnell] ou [https://fr.rs-online.com/web/p/connecteurs-jack/8051699/ 8€26 les 5 sur RS]
 +
  * RJ45 (avec ou sans LED ?) : [https://fr.farnell.com/amphenol-icc-fci/54601-908wplf/cat3-rj45-modular-jack-8pos-1/dp/2135981?st=rj45 3€56 les 10 sur Farnell (sans LED)]
 +
  * RESONATOR CSTCE16M0V53-R0 16MHz : référence obsolète [https://fr.rs-online.com/web/p/oscillateurs-a-quartz/7037129/ 7€19 les 10 sur RS]. Un quartz 16MHz semble être disponible sur  [http://melectro.polytech-lille.net/main.php?p=consultation  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 ?
 +
  * [http://www.farnell.com/datasheets/2255336.pdf?_ga=2.130887311.1064479137.1570096586-216386020.1568878415 CAT811TTBI-CT3] : 1 à  [https://fr.farnell.com/on-semiconductor/cat811ttbi-gt3/superviseur-alim-mcu-3-08v-sot143/dp/2534243?st=CAT811TTBI 0.37€ sur Farnell] ou [https://www.mouser.fr/ProductDetail/ON-Semiconductor/CAT811TTBI-GT3?qs=sGAEpiMZZMunEhqKs81nFHWi6pdjuRojBaACRcFdy7s%3D 0.38 € sur Mouser]
 +
  * [http://www.ti.com/lit/ds/symlink/sn74lvc1g125.pdf 74LVC1G125DCK] : 4 à [https://www.mouser.fr/ProductDetail/Texas-Instruments/SN74LVC1G125DCKT?qs=sGAEpiMZZMuiiWkaIwCK2RZ8fpIXhw4IdP41SMbYMkU%3D 0€65 unité sur Mouser] ou à [https://fr.farnell.com/nexperia/74lvc1g125gw-125/ic-logic-74lvc1g-buffer-umt5/dp/1631685?st=74LVC1G125 0€163 sur Farnell] ([http://www.farnell.com/datasheets/2192952.pdf?_ga=2.232130975.1064479137.1570096586-216386020.1568878415 non DCK])
 +
  * [http://www.ti.com/lit/ds/symlink/sn74lvc1g14.pdf 74LVC1G14DBV] : 1 à [https://www.mouser.fr/ProductDetail/Texas-Instruments/SN74LVC1G14DBVR?qs=sGAEpiMZZMutVWjHE%2FYQw8FcJMyir0Lquuhu17Dlj2o%3D 0€30 sur Mouser] ou [https://fr.farnell.com/nexperia/74lvc1g14gw-125/ic-logic-74lvc1g-inverter-umt5/dp/1631687?st=74LVC1G14 à 1€ les 5 sur Farnell (pas même empreinte)]
 +
  * [https://www.mouser.fr/datasheet/2/308/NCP1117-D-1595886.pdf NCP1117ST50T3G] : 1 à [https://www.mouser.fr/ProductDetail/ON-Semiconductor/NCP1117ST50T3G?qs=%2Fha2pyFaduj4IwJuyCbpkSvPXC1ESwUa5yhqhjBy7PCgJYFmioXGsQ%3D%3D 0€42 sur Mouser] ou à [https://fr.farnell.com/on-semiconductor/ncp1117st50t3g/regulateur-ldo-15vin-1a-5v-1-3sot223/dp/2112617?st=NCP1117ST50T3G 0€44 sur Farnell]
 +
  * LM2734Y et 30k9/10k resistors OU LM2736Y et 16k5/10k
 +
      - [http://www.ti.com/general/docs/suppproductinfo.tsp?distId=26&gotoUrl=http%3A%2F%2Fwww.ti.com%2Flit%2Fgpn%2FLM2734 LM2734Y] : 1 à [https://www.mouser.fr/ProductDetail/Texas-Instruments/LM2734YQMKE-NOPB?qs=sGAEpiMZZMtitjHzVIkrqaeIqJaO9bXJIUBdZCejTE0%3D 2€93 sur Mouser] ou [https://fr.rs-online.com/web/p/convertisseurs-buck/6394654/ 12€15 les 5 sur RS]
 +
      - [http://www.ti.com/general/docs/suppproductinfo.tsp?distId=26&gotoUrl=http%3A%2F%2Fwww.ti.com%2Flit%2Fgpn%2FLM2736 LM2736Y] : délais trop longs
 +
  * [https://www.mouser.fr/datasheet/2/443/W5100_Datasheet_v1.2.5-586411.pdf W5100] : 1 à [https://fr.rs-online.com/web/p/controleurs-ethernet/0419930/ 5€80 sur RS] ou [https://www.mouser.fr/ProductDetail/WIZnet/W5100?qs=sGAEpiMZZMvhkhGuTKDeghdGR7C6h%252B2P 5€28 sur Mouser]
 +
  * crystal 25MHz HC49UP : 1 à [https://fr.farnell.com/iqd-frequency-products/xtal010595-hc494h-smx/crystal-frequency-25mhz/dp/1652570?st=quartz%2025MHz%20HC49 0€60 sur Farnell] ou [https://fr.farnell.com/iqd-frequency-products/lfxtal033342/quartz-25mhz-18pf-11-4mm-x-4-9mm/dp/2832034?st=quartz%2025MHz%20HC49 0€33 sur Farnell]
 +
  * [http://www.farnell.com/datasheets/1914019.pdf?_ga=2.199696558.1064479137.1570096586-216386020.1568878415 MH2029-300Y] (WE-CBF_0805) : 2 à [https://fr.farnell.com/bourns/mh2029-300y/perle-ferrite-0805-0-025ohm-3a/dp/2859248?st=MH2029-300Y 0€67 le paquet de 10 sur Farnell]
 +
 
 +
  diodes :
 +
  - [https://www.mouser.fr/datasheet/2/427/ss1p3l-98391.pdf SS1P3L] : 1 à [https://www.mouser.fr/ProductDetail/Vishay-Semiconductors/SS1P3L-M3-85A?qs=sGAEpiMZZMtQ8nqTKtFS%2FDwK3YsqAmRDQ4aXXGIke58%3D 0€44 sur Mouser] ou à [https://fr.farnell.com/vishay/ss1p3l-m3-84a/diode-schottky-simple-30v-do-220aa/dp/2889242?st=SS1P3L 1€60 les 5 sur Farnell]
 +
  - [https://www.mouser.fr/datasheet/2/54/D1206_S01575-777369.pdf CD1206-S01575] : 2 à [https://fr.farnell.com/bourns/cd1206-s01575/diode-commutation-100v-150ma-1206/dp/2211947?st=CD1206 7€22 les 5 sur Farnell] ou [https://www.mouser.fr/ProductDetail/Bourns/CD1206-S01575?qs=%2Fha2pyFaduiYqlDIzBWZOVhnLX6EjhzvKqCLSn7ndJdznGFpH2HNUQ%3D%3D 0€14 unité sur Mouser]
 +
  - M7 SMB ([http://www.farnell.com/datasheets/1689669.pdf?_ga=2.72406803.1455534550.1570441646-216386020.1568878415 1N4007 ?]): 1 à [https://fr.farnell.com/on-semiconductor/1n4007g/diode-standard-1a-1kv-do-41/dp/1458987?st=1N4007 0€19 sur Farnell]
 +
 
 +
  LEDs :
 +
  - [https://www.mouser.fr/datasheet/2/109/Dialight_CBI_data_599-0805_Apr2018-1370606.pdf verte (0805)] : 2 à [https://fr.farnell.com/dialight/597-5326-507f/led-vert-140mcd-527nm-0805/dp/2991540?st=led%20vert%200805 1€85 les 5 sur Farnell] ou [https://www.mouser.fr/ProductDetail/Dialight/599-0181-007F?qs=sGAEpiMZZMt82OzCyDsLFCKIrpwjyq0Hx2ni2BeIo48%3D 0€61 unité sur Mouser]
 +
  - [https://www.mouser.fr/datasheet/2/109/Dialight_CBI_data_599-0805_Apr2018-1370606.pdf jaune (0805)] pour RX/TX : 2 à [https://fr.farnell.com/dialight/597-5406-507f/led-jaune-160mcd-590nm-0805/dp/2991536?st=led%20jaune%200805 à 1€65 les 5 sur Farnell] ou [https://www.mouser.fr/ProductDetail/Dialight/599-0140-007F?qs=sGAEpiMZZMt82OzCyDsLFCKIrpwjyq0H5NPeVaAy%252B98%3D à 0€36 unité sur Mouser]
 +
 
 +
  resistors :
 +
  - [https://www.mouser.fr/datasheet/2/348/ktr-e-1139187.pdf 49r9] : 4 à [https://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR10EZPF49R9?qs=sGAEpiMZZMukHu%252BjC5l7YV8T0SicHAVe86aJ%2FCydW4k%3D 0€15 unité sur Mouser] ou à [https://fr.farnell.com/rohm/ktr10ezpf49r9/res-49r9-1-0-125w-0805-couche/dp/2919102?ost=KTR10EZPF49R9&ddkey=https%3Afr-FR%2FElement14_France%2Fsearch 1€05 les 10 sur Farnell]
 +
  - 300r, 1% : 1 à [https://fr.farnell.com/vishay/crcw0805300rfkea/res-couche-epaisse-300r-1-0-125w/dp/2138881?st=resistance%20300ohm 0€31 les 10 sur Farnell (couche épaisse, 0805, 1%)] ou  disponibles sur [http://melectro.polytech-lille.net/ le magasin de composants de Polytech Lille à 0€02 unité] en traversant
 +
  - 1k : 8 à [https://fr.farnell.com/rohm/ktr10ezpf1001/res-1k-1-0-125w-0805-couche-epaisse/dp/2919055?st=r%C3%A9sistance%201kohm 1€16 les 10 sur Farnell (couche épaisse, 0805, 1/8 W, 1%)] ou disponibles sur [http://melectro.polytech-lille.net/ le magasin de composants de Polytech Lille à 0€02 unité] en traversant
 +
  - 10k : 3 à [https://www.mouser.fr/ProductDetail/KOA-Speer/SG73G2ATTD1002D?qs=sGAEpiMZZMve4%2FbfQkoj%252BG7Ib9MfwvLA2c8qMDGa1z0%3D 4€50 les 10 sur Mouser (couches épaisses, 1/2 W, 0.5%)] ou à [https://fr.farnell.com/multicomp/mcwr08x1002ftl/res-couche-epaisse-10k-1-0-125w/dp/2447553?st=r%C3%A9sistance%2010kohm 0€10 les 10 sur Farnell (couche épaisse, 0805, 1/4 W, 1%)]
 +
  - 12k, 1% : 1 à [https://fr.farnell.com/tt-electronics-welwyn/wcr0805-12kfi/res-couche-epaisse-12k-1-0-1w/dp/1100321?st=12k%20ohm 0€31 les 10 sur Farnell (couche épaisse, 0805 1/8W)]
 +
  - 100k : 1 à [https://fr.farnell.com/vishay/crcw0805100kfkea/res-couche-epaisse-100k-1-0-125w/dp/1469860?st=resistance%20100kohm 0€26 les 10 sur Farnell (couche épaisse, 0805, 1%)]
 +
  - 1M : 1 à [https://fr.farnell.com/multicomp/mcwr08x1004ftl/res-couche-epaisse-1m-1-0-125w/dp/2447596?st=r%C3%A9sistance%201Mohm 0€10 les 10 sur Farnell (couche épaisse, 0805, 1/8 W, 1%)]
 +
 
 +
  capacitors :
 +
  - 22p : 2 à [https://fr.farnell.com/multicomp/mc0805n220j500ct/cond-22pf-50v-5-c0g-np0-0805/dp/1759195?st=condensateur%2022p 0€42 les 10 sur Farnell (0805, 5%)] ou [https://www.mouser.fr/ProductDetail/Wurth-Elektronik/885012007012?qs=sGAEpiMZZMvzv9EAOJZmO3N4Gkzop6KNPM9b7R1pbeg%3D 0€08 unité sur Mouser (0805,5%)]
 +
  - 10n : 1 à [https://fr.farnell.com/samsung-electro-mechanics/cl21b103kbannnc/condensateur-0-01uf-50v-mlcc-0805/dp/3013470?st=condensateur%2010n 0€32 les 10 sur Farnell (0805, 10%)] ou à [https://www.mouser.fr/ProductDetail/Wurth-Elektronik/885012207092?qs=sGAEpiMZZMvzv9EAOJZmOxE9Wbho7BxjE4%2FQ9gSfcsk%3D 0€08 unité sur Mouser (0805, 10%)]
 +
  - 100n : 10 à [https://www.mouser.fr/ProductDetail/Wurth-Elektronik/885012207098?qs=sGAEpiMZZMvzv9EAOJZmO9e3Y2KdjJntzieJ5195PeM%3D 0€56 les 10 sur Mouser (0805, 10%)] ou [https://fr.farnell.com/samsung-electro-mechanics/cl21b104kacnnnc/condensateur-0-1uf-25v-mlcc-0805/dp/3013475?st=condensateur%20100n 0€51 les 10 sur Farnell (0805, 10%)]
 +
  - 1µ : 3 à [https://fr.farnell.com/samsung-electro-mechanics/cl21b105kofnnne/condensateur-1uf-16v-mlcc-0805/dp/3013484?st=condensateur%201%C2%B5 0€32 les 5 sur Farnell (0805, 10%)]
 +
  - 10µ (polarisée, CPOL-EUSMCB)) : 5 à [https://fr.farnell.com/multicomp/mcgpr25v106m5x11/condensateur-10-f-25v-20/dp/9451153?st=condensateur%20polaris%C3%A9%2010%C2%B5 0€05 unité (électrolytique, 20%)] ou [https://fr.farnell.com/kemet/a765eb106m1vlae085/condensateur-10-f-35v-20/dp/2614178?st=condensateur%20polaris%C3%A9%2010%C2%B5 0€26 unité sur Farnell (électrolytique alu polymère)]
 +
 
 +
  inductors :
 +
  - [https://www.mouser.fr/datasheet/2/54/RR0604-1391527.pdf SRR0604-100ML (10µH)] : 1 à [https://www.mouser.fr/ProductDetail/Bourns/SRR0604-100ML?qs=sGAEpiMZZMsg%252By3WlYCkU%2F5jB0OizeKuojXw0mzORZA%3D 0€62 sur Mouser] ou à [https://fr.farnell.com/bourns/srr0604-100ml/inductance-10uh-20-1-3a-puissance/dp/1929700?st=SRR0604 0€76 sur Farnell]
 +
 
 +
  Headers :
 +
  - 6 : 3 à [https://www.mouser.fr/ProductDetail/Harwin/M50-3030642?qs=sGAEpiMZZMvlX3nhDDO4AJabgqr%2FYPOydrtYfvKY9i4%3D 0€96 unité sur Mouser]
 +
  - 2*3 : 1
 +
  - 8 : 2 à [https://www.mouser.fr/ProductDetail/Harwin/M50-3030842?qs=sGAEpiMZZMvlX3nhDDO4AJabgqr%2FYPOyliNX%2FN5IFoU%3D 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
 +
 
 +
  * [https://www.mouser.com/ds/2/678/V02-3563EN_DS_ACPL-C87x_2016-09-05-909299.pdf ACPL-C87B] : 3 à [https://www.mouser.fr/ProductDetail/Broadcom-Avago/ACPL-C87B-000E?qs=sGAEpiMZZMt6N1sTk4DRxsirZG60a3duVEtfRiRH4FU%3D 6€35 unité sur Mouser] ou à [https://fr.farnell.com/broadcom-limited/acpl-c87b-000e/ampli-isolation-de-tension-capteur/dp/2213635?st=ACPL-C87B 7€12 unité sur Farnell]
 +
  * [http://www.ti.com/general/docs/suppproductinfo.tsp?distId=26&gotoUrl=http%3A%2F%2Fwww.ti.com%2Flit%2Fgpn%2Fopa2376-q1 OPA237] : 3 à [https://fr.farnell.com/texas-instruments/opa2374aidcnr/op-amp-6-5mhz-5v-us-sot-23-8/dp/3004928?st=OPA237 1€65 unité sur Farnell] ou à [https://www.mouser.fr/ProductDetail/Texas-Instruments/OPA2376AQDRQ1?qs=sGAEpiMZZMutXGli8Ay4kJ7zXpaT58Zk%252B%2FBm7rDhytA%3D 2€62] sur Mouser]
 +
 
 +
  resistors :
 +
  - 990k : 3 à [https://www.mouser.fr/ProductDetail/Vishay-Dale/RN55D9903FB14?qs=sGAEpiMZZMv39IHh0uX%2F%252BK7GhRNSaW6Q 0€20 unité sur Mouser] (ou 30*99k pour éviter des chutes de tension trop importantes entre chaque résistances ? => 9* [https://www.mouser.fr/ProductDetail/Vishay-Dale/CRCW0402330KFKEDC?qs=sGAEpiMZZMtQ1ytNl72BkzBpe%2FIMdfG3KvsPhep1SbA%3D 330kOhms sur Mouser à 0€11 unité])
 +
  - 10k, 1% : 3*(4+nbPontDiv) à [https://www.mouser.fr/ProductDetail/KOA-Speer/SG73G2ATTD1002D?qs=sGAEpiMZZMve4%2FbfQkoj%252BG7Ib9MfwvLA2c8qMDGa1z0%3D 4€50 les 10 sur Mouser (couches épaisses, 1/2 W, 0.5%)] ou à [https://fr.farnell.com/multicomp/mcwr08x1002ftl/res-couche-epaisse-10k-1-0-125w/dp/2447553?st=r%C3%A9sistance%2010kohm 0€10 les 10 sur Farnell (couche épaisse, 0805, 1/4 W, 1%)]
 +
 
 +
  resistors variables :
 +
  - 500/1k : 3*nbPontDiv à [https://fr.farnell.com/bourns/ptv09a-4225f-b102/potentiom-rotatif-1kohm-9mm-20/dp/2469527?st=potentiom%C3%A8tre%201kohm 6€45 les 10 sur Farnell (50 mW, 20%)]
 +
 
 +
  capacitors :
 +
  - 100p : 3*3 à [https://fr.farnell.com/avx/08051a101jat2a/cond-100pf-100v-5-c0g-np0-0805/dp/499171?st=condensateur%20100p 1€92 les 10 sur Farnell (0805, 5%)]
 +
  - 100n : 3*2 à [https://www.mouser.fr/ProductDetail/Wurth-Elektronik/885012207098?qs=sGAEpiMZZMvzv9EAOJZmO9e3Y2KdjJntzieJ5195PeM%3D 0€56 les 10 sur Mouser (0805, 10%)] ou [https://fr.farnell.com/samsung-electro-mechanics/cl21b104kacnnnc/condensateur-0-1uf-25v-mlcc-0805/dp/3013475?st=condensateur%20100n 0€51 les 10 sur Farnell (0805, 10%)] ou [https://www.mouser.fr/ProductDetail/Wurth-Elektronik/885012207027?qs=sGAEpiMZZMvzv9EAOJZmOy%252BH2S6lpnred7F%252BFP8rsH4%3D 0€08 unité sur Mouser (0805, 10%)]
 +
 
 +
  transistors :
 +
  - NPN : 3*nbPontDiv => [http://melectro.polytech-lille.net/pdf/BC237B.pdf transistors NPN] et leurs résistances (4k3 ?) : 12 disponibles sur [http://melectro.polytech-lille.net/ le magasin de composants de Polytech Lille à 0€32 unité] sous la référence "BC237B - NPN general purpose transistors" ou à [https://fr.farnell.com/multicomp/bc237b/transistor-npn-to-92/dp/1574377?ost=BC237B&ddkey=https%3Afr-FR%2FElement14_France%2Fsearch 0€70 les 5 sur Farnell]. Puisque le Beta est de presque 300, nous optons pour des résistances 6k3 à [https://fr.farnell.com/tt-electronics-welwyn/pcf0805r-6k34bi/res-couche-mince-6-34k-0-1-0-1w/dp/1160189?st=r%C3%A9sistance%206kohm 0€09 unité sur Farnell]
 +
  - 4k3 resistors : 3*nbPontDiv (si B=200) à [https://fr.farnell.com/multicomp/mcwr08x4301ftl/resistance-thick-film-4-3kohm/dp/2447670?MER=bn_level5_4NP_LastViewed_1 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 à [https://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR10EZPF3300?qs=sGAEpiMZZMukHu%252BjC5l7YV8T0SicHAVeH4lKYcPbRzA%3D 1€40 les 10 sur Mouser] ou disponibles sur [http://melectro.polytech-lille.net/ le magasin de composants de Polytech Lille à 0€02 unité] en traversant
 +
 
 +
  resistors variables :
 +
  - 100k : [https://www.mouser.fr/ProductDetail/Bourns/TC33X-2-104E?qs=sGAEpiMZZMs26uXuX7MLMce%252B7YUaTyBD 0€23 unité sur Mouser]
 +
 
 +
  capacitors :
 +
  - 100n : 1 à [https://www.mouser.fr/ProductDetail/Wurth-Elektronik/885012207098?qs=sGAEpiMZZMvzv9EAOJZmO9e3Y2KdjJntzieJ5195PeM%3D 0€56 les 10 sur Mouser (0805, 10%)] ou [https://fr.farnell.com/samsung-electro-mechanics/cl21b104kacnnnc/condensateur-0-1uf-25v-mlcc-0805/dp/3013475?st=condensateur%20100n 0€51 les 10 sur Farnell (0805, 10%)]
 +
 
 +
  [http://melectro.polytech-lille.net/pdf/BC237B.pdf transistors NPN] et leurs résistances (4k3 ?) : 12 disponibles sur [http://melectro.polytech-lille.net/ le magasin de composants de Polytech Lille à 0€32 unité] sous la référence "BC237B - NPN general purpose transistors" ou à [https://fr.farnell.com/multicomp/bc237b/transistor-npn-to-92/dp/1574377?ost=BC237B&ddkey=https%3Afr-FR%2FElement14_France%2Fsearch 0€70 les 5 sur Farnell]. Puisque le Beta est de presque 300, nous optons pour des résistances 6k3 à [https://fr.farnell.com/tt-electronics-welwyn/pcf0805r-6k34bi/res-couche-mince-6-34k-0-1-0-1w/dp/1160189?st=r%C3%A9sistance%206kohm 0€09 unité sur Farnell]
 +
  [https://fr.farnell.com/microchip/mm5451yn/led-driver-ic/dp/2510527?st=mm5451 MM5451] : 1 à [https://fr.farnell.com/microchip/mm5451yn/led-driver-ic/dp/2510527?st=mm5451 4€72 sur Farnell]
 +
  résistances 4k3 : 12 à [https://fr.farnell.com/multicomp/mcwr08x4301ftl/resistance-thick-film-4-3kohm/dp/2447670?st=r%C3%A9sistance%204.3kohm 0€01 les 10 sur Farnell (couche épaisse, 0805, 1/8 W, 1%)]
 +
  [http://www.farnell.com/datasheets/2046370.pdf?_ga=2.157713722.1064479137.1570096586-216386020.1568878415Afficheurs 7 segments 4 digits] : 3 [https://fr.farnell.com/kingbright/cc04-41surkwa/afficheur-sept-segments-rouge/dp/2426180?st=afficheur%207%20segments%204%20digits 1€28 unité sur Farnell]
 +
  résistances 100 Ohm : 3*8 à [https://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR10EZPJ101?qs=sGAEpiMZZMukHu%252BjC5l7Yf3E56rb%252BLRxVpkS6AplMIM%3D 0€12 unité sur Mouser] ou à [https://fr.farnell.com/panasonic/erj6geyj101v/res-couche-epaisse-100r-5-0-125w/dp/2057681?iscrfnonsku=true&st=KTR10EZPJ101 0€68 les 10 sur Farnell]
  
<p align="justify">Nous allons donc présenter la conception des deux cartes de manière distincte.</p>
 
  
  
=== Une carte interfaces ===
+
<BR \>
  
<p align="justify">La carte principale, devant servir d'interfaces entre l'Arduino, les codeurs incrémentaux et les différentes cartes déjà conçues, est majoritairement constituée de 'pin headers'. En effet, il nous est nécessaire d'avoir 17 pins pour l'Arduino (5V, GND, SDA, SCL, 11 I/O numériques et 2 I/O analogiques), 10 pins pour les codeurs (5 pins par codeur), 12 pins pour les convertisseurs numérique vers analogique (6 par DAC), 14 pins pour les variateurs de vitesse (7 par plaquette), 6 pour les relais, et 2 pour l'alimentation 24 VDC et la masse de la batterie. Se trouvent aussi sur cette carte électronique une LED RGB et ses résistances, les résistances de 5 kOhm nécessaires au bon fonctionnement des variateurs de vitesse, ainsi qu'un pin qui a été ajouté en cas de besoin. De plus, deux résistances de 10 kOhm ont été ajoutée en pull-up des signaux SDA et SCL pour la communication I²C sur conseils de M. Boé.</p>
 
  
 +
<p align="justify">
 +
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.
 +
</p>
  
[[Fichier:centaure_circuit_interfaces_schematic.png|480px|thumb|center|Schematic de la carte servant d'interface entre l'Arduino et les autres modules]]
 
  
<p align="justify">Concernant le routage, nous avons essayé de garder une carte en simple couche. Cela a été possible mais nécessite deux vias permettant de relier, au travers de fils, le signal SCL entre les deux convertisseurs numérique vers analogique et le 5V entre les headers pour le codeur gauche et le convertisseur numérique/analogique gauche, indiqué en rouge sur la photo suivante :</p>
 
 
[[Fichier:centaure_circuit_interfaces_routage.png|480px|thumb|center|Routage de la carte servant d'interface entre l'Arduino et les autres modules]]
 
  
 +
[[Fichier:1920_P4_schematic_v1.1.png | 400px | center | thumb | Schematic de la carte principale]]
 +
[[Fichier:1920_P4_schematic_v1.1.pdf]]
  
<p align="justify">'''Critiques :''' Cette carte fait preuve de nombreux défauts de conception. En effet, concernant les relais couplés aux variateurs de vitesse, ceux-ci ne sont pas gérés par cette carte. Seuls 3 pins leur sont dédiés conformément à la documentation des variateurs de vitesse et nous n'avons donc pas pris en compte la gestion des relais sur cette carte : des fils devront relier directement les bobines des relais à l'Arduino pour être pilotées. De plus, la taille des convertisseurs numérique/analogique n'a pas été prise en compte, et celui de droite se retrouve ainsi bien trop proche de la prise RJ11, malgré la place disponible sur la carte. Enfin, la conception de cette carte s'est basée sur la documentation des modules et n'a donc pas pris en compte les liens entre les modules provoqués par les équipes ayant travaillé sur ce projet précédemment tels que des fils des variateurs soudés entre eux ou encore sur les contacts des relais.</p>
 
  
 +
<p align="justify">
 +
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.
 +
</p>
  
 
<BR \>
 
<BR \>
 +
<BR \>
 +
 +
=== 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 ([https://fr.farnell.com/taiwan-semiconductor/ts78l05cx-rfg/reg-3-terminal-100ma-smd-sot-23/dp/1476698?st=78L05 78L05] à [https://fr.farnell.com/taiwan-semiconductor/ts78l05cx-rfg/reg-3-terminal-100ma-smd-sot-23/dp/1476698?st=78L05 2€75 les 5)]
 +
 +
 
<BR \>
 
<BR \>
 
<BR \>
 
<BR \>
  
=== Une manette ===
+
=== Semaine 5 : mercredi 16 octobre ===
 +
 
 +
* Ajout de 2 démultiplexeurs 2 vers 4 doubles [http://www.farnell.com/datasheets/1915145.pdf?_ga=2.181099495.1713584013.1570976936-216386020.1568878415 MC74AC139] (à [https://fr.farnell.com/on-semiconductor/mc74act139dg/decodeur-demultiplexeur-double/dp/2728398?ost=74ACT139D&iscrfnonsku=true&ddkey=https%3Afr-FR%2FElement14_France%2Fsearch 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
  
<p align="justify">Concernant la manette, sa carte fut simple à concevoir. En effet, celle-ci est constituée du joystick et de la prise RJ11 pour envoyer les données facilement à la carte principale. Etant donné que cette prise disposait de 6 broches, nous avons tiré une piste supplémentaire, reliée à un pin pouvant servir à l'avenir. Afin d'indiquer facilement à l'utilisateur que la manette est bien connectée, nous avons aussi rajouté une LED et sa résistance directement connectées sur la broche Vcc alimentant la carte.</p>
+
* Ajout du pont de diodes pour alimenter le 78L05 dans le cas alternatif ([https://fr.farnell.com/on-semiconductor/df005s2/diode-pont-redresseur-1-ph-50v/dp/2824861 0€39 sur Farnell] : [http://www.farnell.com/datasheets/2552618.pdf?_ga=2.47118247.1218303456.1571140481-216386020.1568878415 Doc]) et du condensateur adapté ([http://www.x.com référence ?])
  
[[Fichier:centaure_circuit_manette_schematic.png|480px|thumb|center|Schematic de la manette]]
+
* 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.
  
<p align="justify">A l'image du schematic, le routage de cette carte a été relativement aisé et est contenu sur une seule face du PCB.</p>
+
* Changement des transistors sur les ponts diviseurs de tensions par des [https://www.electronics-notes.com/articles/electronic_components/electrical-electronic-relay/what-is-a-reed-relay.php relais reed], relais peu couteux permettant d'isoler galvaniquement le circuit de commande du circuit de mesure contrairement aux transistors : [https://www.mouser.fr/datasheet/2/240/Littelfuse_Reed_Relays_HE3600_Datasheet.pdf-876890.pdf HE3600] à [https://www.mouser.fr/ProductDetail/Hamlin-Littelfuse/HE3621A0500?qs=sGAEpiMZZMv4tz1TW%2FArE8fLXcOxkjuWGYC1JY5zUN8= 7€86 les 10]
[[Fichier:centaure_circuit_manette_routage.png|240px|thumb|center|Routage de la manette]]
 
  
 +
=> Changement de la liste de matériel en conséquences.
  
<p align="justify">'''Critiques :''' Le plan de masse a été isolé au milieu de la carte, et il a été nécessaire de souder un fil reliant les deux plans de masse pour que la carte fonctionne correctement. Dans le cas d'une réédition, ce problème pourrait facilement être corrigé en vérifiant l'espace entre les pins et en routant différemment la carte.</p>
 
  
<BR \>
+
[[Fichier:1920_P4_schematic_v3.1.png | 400px | center | thumb | Schematic de la carte principale mis à jour]]
<BR \>
+
[[Fichier:1920_P4_schematic_v3.1.pdf]]
<BR \>
 
  
<p align="justify">'''Critiques générales :''' Concernant les cartes de manière générale, la taille des pads et celle des vias ont été réduites au strict minimum. Afin de faciliter le soudage, il pourrait être intéressant d'agrandir ces tailles légèrement. Concernant la connexion entre l'Arduino et le joystick, si le câble vient à être débranché, l'Arduino ne reçoit plus la tension correspondant à la position d'origine du joystick, et le robot est donc bloqué en marche avant, ce qui est assurément un problème de sécurité non négligeable. Le plus simple, d'après M. Boé, serait de forcer une tension de 2.5 V en cas de problème, coupée par un transistor FET canal P dont la grille est commandée par la tension du joystick : quand elle est déconnectée, le transistor devient passant et alimente en 2.5 V</p>
 
  
<BR \>
+
Ce schematic mis à jour dispose de plusieurs blocs:
<BR \>
+
* la partie clone de l'Aduino ethernet :
<BR \>
+
[[Fichier:1920_P4_schematic_v3.1_Arduino.png | 400px | center | thumb | Bloc du schematic reprenant certaines parties de l'Arduino Ethernet]]
  
== Programmation du cerveau du robot ==
+
* la partie permettant de récupérer la tension aux bornes du générateur de tension alternative :
 +
[[Fichier:1920_P4_schematic_v3.1_VAC.png | 400px | center | thumb | Bloc du schematic sur la récupération d'une tension alternative]]
  
<p align="justify">L'Arduino MEGA étant connectée à deux convertisseurs numérique vers analogique, aux capteurs infrarouges, aux codeurs, aux relais et au joystick, il va nous falloir développer un programme permettant de gérer ces différents modules et les adapter pour qu'ils fonctionnent ensemble selon la logique suivante :</p>
+
* 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) :
 +
[[Fichier:1920_P4_schematic_v3.1_VDC.png | 400px | center | thumb | Bloc du schematic sur la récupération d'une tension continue]]
  
[[Fichier:Centaure_schema_fonctionnement.png |thumb|900px|center| Schéma illustrant la logique de programmation que devra suivre le robot]]
+
* le bloc lié au driver de LEDs :
 +
[[Fichier:1920_P4_schematic_v3.1_DriverLeds.png | 400px | center | thumb | Bloc du schematic exposant le driver de LEDs]]
  
<p align="justify">Nous utilisons l'IDE d'Arduino et des bibliothèques constructeurs lorsqu'elles sont disponibles pour concevoir le programme du robot. Afin de tester les différents modules, nous testons les programmes de manière isolée dans un premier temps. </p>
 
  
<BR \>
 
<BR \>
 
<BR \>
 
  
=== '''Convertisseur Numérique vers Analogique''' (ou '''D'''igital to '''A'''nalog '''C'''onverters) : ===
 
  
<p align="justify">Nous utilisons deux convertisseurs MCP4725 12-bits pour commander les variateurs de vitesse par le biais de l'Arduino et donc se passer d'une commande manuelle. Le principe de fonctionnement de ces convertisseurs est assez simple : la carte va appliquer une tension sur le pin Vout comprise entre 0V et la différence de tension entre VCC et GND dépendamment de l'information reçue sur 12 bits via le protocole I²C ('''I'''nter-'''I'''ntegrated '''C'''ircuit). Dans notre cas, nous relions les broches VCC et GND du convertisseurs aux broches 5V et GND de l'Arduino MEGA. Afin de permettre le démarrage du contrôle des moteurs par les variateurs de vitesse, il était nécessaire d'appliquer une tension d'environ 165 mV sur le pin 6 du variateur de vitesse. Après une mesure de tension du pin 5V de l'Arduino, il s'avère que la tension est exactement de 5.15 V. 165 mV correspondant à 3.2% des 5.15 V délivrés par l'Arduino, l'information envoyée au convertisseur doit donc correspondre à 3.2% de la valeur maximale prise en compte par le convertisseur, soit 3.2% de 4095 (2^12 valant 4096). L'Arduino devra donc envoyer '131' comme information lors du paramétrage du convertisseur au démarrage du robot grâce à la méthode</p>
 
dac.setVoltage(131, true) ;                                // voltage is 131/4095 * 5.15 = 0.165 V, required to pass speed controllers' checking
 
<p align=justify> qui permet d'envoyer l'information sur le bus I²C (à conditions d'avoir chargé la librairie ''<Wire.h>'' en plus de celle d'Adafruit propre au convertisseur)). Le flag ''true'', dans l'exemple, permet de charger cette valeur dans l'EEPROM comme valeur par défaut, intéressant ici puisque cette tension doit être appliquée sur le pin du variateur de vitesse au démarrage du système.
 
<BR \>
 
NB : Les masses des convertisseurs (et donc de l'Arduino) et celles des variateurs de vitesse doivent absolument être les mêmes sans quoi les 165 mV émis par les convertisseurs ne seront jamais perçus comme tel par les variateurs de vitesse. Le bornier n'ayant pas de pins 'GND' sur le variateur de vitesse, la masse de l'Arduino devra donc être liée à la borne moins de la batterie sur laquelle sont branchés les variateurs.
 
</p>
 
  
<p align="justify">Programme test du convertisseur numérique vers analogique :</p>
 
  
 +
<p align="justify">
 +
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.
 +
</p>
  
#include <Wire.h>
 
#include "Adafruit_MCP4725.h"
 
 
Adafruit_MCP4725 dac_motorD ;
 
Adafruit_MCP4725 dac_motorG ;
 
 
 
 
void setup(void) {
 
  Serial.begin(9600);
 
  Serial.println("DAC test :");
 
 
 
 
  // For Adafruit MCP4725A1 the address is 0x62 (default) or 0x63 (ADDR pin tied to VCC)
 
  // For MCP4725A0 the address is 0x60 or 0x61
 
  // For MCP4725A2 the address is 0x64 or 0x65
 
  dac_motorD.begin(0x62);                                          // A0 -> GND
 
  dac_motorG.begin(0x63);                                          // A0 -> Vin
 
 
  dac_motorD.setVoltage(131, true) ;                                // voltage is 131/4095 * 5.15 = 0.165 V, required to pass speed controllers' checking
 
  dac_motorG.setVoltage(131, true) ;                                // flag 'true' allows Arduino writing this value in the EEPROM of the MCP4725 : this value will be the default value sent by the MCP4725 on restarts
 
   
 
 
 
}
 
 
void loop(void)
 
{
 
  //dac_motorD.setVoltage(2048, false);
 
  delay(2000) ;
 
}
 
  
<p align="justify">Dans cet exemple, nous avons commenté la ligne nous permettant de paramétrer le DAC pour qu'il envoie 50% des 5.15 V afin de tester si le variateur de vitesse recevait correctement les 165 mV.</p>
 
  
 
<BR \>
 
<BR \>
 
<BR \>
 
<BR \>
<BR \>
 
  
=== Joystick ===
+
=== 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
  
  
<p align="justify">La consigne de mouvement du robot étant donnée par la position d'un joystick, il est primordial de récupérer la position horizontale et verticale du joystick. Cette position sera récupérée par deux pins analogiques de l'Arduino grâce aux résistance variables du joystick. En effet, le joystick est composée d'une résistance variable pour la position horizontale et d'une autre pour la position verticale. Cette position, initialement entre 0 et 1023, est ensuite multipliée par un coefficient pour le moteur droit et un autre pour le moteur gauche. Ces deux coefficients dépendent de la position horizontale du joystick et permettent au robot de tourner. Ces deux vitesses, propres à chacun des moteurs, sont ensuite ramenées sur une échelle allant de 0 à la vitesse maximale du robot, qui correspondra dans notre cas aux 3V que peut envoyer les convertisseurs numérique-analogique aux variateurs de vitesse.</p>
+
[[Fichier:1920_P4_schematic_v4_Affi1.png | 400px | center | thumb | Schematic du premier afficheur ...]]
  
<p align="justify">Afin de représenter la consigne transmise au moteur, nous réalisons un schéma indiquant, en fonction de la position du joystick, la consigne en puissance émise :</p>
 
  
[[Fichier:centaure_joystick_consigne.png|thumb|240px|center|Schéma simplifié représentant la vitesse de consigne des deux moteurs en fonction de la position du joystick]]
+
[[Fichier:1920_P4_board_v4_Affi1.png | 400px | center | thumb | ... et son PCB]]
  
  
<p align="justify">Sur ce schéma, la couleur verte indique que le moteur tournera à vitesse nominale, la couleur rouge indiquera que le moteur est arrêté tandis que les couleurs jaune et orange indiquent des consigne en vitesse intermédiaires.</p>
 
  
 +
[[Fichier:1920_P4_schematic_v4_Affi2.png | 400px | center | thumb | Schematic du second afficheur ...]]
  
<p align="justify">Programme du joystick : </p>
 
  
 +
[[Fichier:1920_P4_board_v4_Affi2.png | 400px | center | thumb | ... et son PCB]]
  
#define JOYSTICK_X A6 // X -> droite / gauche
 
#define JOYSTICK_Y A7 // Y -> vitesse / direction
 
#define JOYSTICK_THRESHOLD 20
 
#define MAX_SPEED 2147              //
 
int calX, calY, vitesse, direction ;
 
float coefG, coefD ;
 
#define MOTEUR_STOP 0
 
#define MOTEUR_AVANCE 1
 
#define MOTEUR_RECULE 2
 
 
void setup()
 
{
 
  //joystick_INIT_() ;
 
  calX = analogRead(JOYSTICK_X);
 
  calY = analogRead(JOYSTICK_Y);
 
}
 
 
void loop()
 
{
 
  joystick_getData(calX, calY, &coefG, &coefD, &vitesse, &direction);
 
 
 
  // Affichage de la vitesse du moteur gauche
 
  Serial.print("Moteur Gauche : ");
 
  Serial.println((int)(vitesse * coefG));
 
  vitesse_gauche =vitesse * coefG ;
 
   
 
  // Affichage de la vitesse du moteur droit
 
  Serial.print("Moteur Droit : ");
 
  Serial.println((int)(vitesse * coefD));
 
  vitesse_droit = vitesse * coefD ;
 
 
 
  // Affichage de la direction des moteurs
 
  //Serial.print("Direction : ");
 
  if(direction == MOTEUR_AVANCE) // Vers l'avant
 
  {
 
    //Serial.println("AVANT");
 
    digitalWrite(led_g, HIGH) ;
 
    digitalWrite(led_r, LOW) ;
 
    digitalWrite(led_b, LOW) ;
 
    avance_gauche(vitesse_gauche) ;
 
    avance_droit(vitesse_droit) ;
 
  }
 
  else if(direction == MOTEUR_RECULE) // Vers l'arriére
 
  {
 
    //Serial.println("ARRIERE");
 
    digitalWrite(led_r, HIGH) ;
 
    digitalWrite(led_g, LOW) ;
 
    digitalWrite(led_b, LOW) ;
 
    recule_gauche(vitesse_gauche) ;
 
    recule_droit(vitesse_droit) ;
 
  }
 
  else
 
  {
 
    //Serial.println("ARRET"); // Aucun mouvement
 
    digitalWrite(led_b, HIGH) ;
 
    digitalWrite(led_r, LOW) ;
 
    digitalWrite(led_g, LOW) ;
 
   
 
    digitalWrite(PINAVMOTD, LOW) ;
 
    digitalWrite(PINARMOTD, LOW) ;
 
    digitalWrite(PINAVMOTG, LOW) ;
 
    digitalWrite(PINARMOTG, LOW) ;
 
  }
 
 
 
  // Delai de 500ms pour pouvoir lire la console
 
  delay(750);
 
 
 
 
joystick_getData(calX, calY, &coefG, &coefD, &vitesse, &direction)
 
  // rawX : valeur brute en X du joystick centrée sur calX
 
  // rawY : valeur brute en Y du joystick centrée sur calY
 
  int rawX, rawY;
 
   
 
  // Mesure des valeurs brute en X et Y
 
  rawX = -(analogRead(JOYSTICK_X) - calX);
 
  Serial.print("valeur X : ") ; Serial.println(rawX) ;
 
  rawY = -(analogRead(JOYSTICK_Y) - calY);
 
  Serial.print("valeur Y : ") ; Serial.println(rawY) ;
 
 
 
  // Si -THRESHOLD < rawY < THRESHOLD
 
  if(rawY > -JOYSTICK_THRESHOLD && rawY < JOYSTICK_THRESHOLD)
 
  {
 
    // Les moteurs sont marqués comme arrêtés, et vitesse = 0
 
    *direction = MOTEUR_STOP;
 
    *vitesse = 0;
 
  } 
 
  // Si rawY >= 0
 
  else if(rawY >= 0)
 
  {
 
    // Les moteurs sont marqués en mode "avance"
 
    *direction = MOTEUR_AVANCE;
 
   
 
    // La vitesse est égale à map(rawY) depuis 0 ~ (1023 - calY) vers 0 ~ MAX_SPEED
 
    *vitesse = map(rawY, 0, 1023 - calY, 0, MAX_SPEED);
 
  }
 
  // Si rawY < 0
 
  else
 
  {
 
    // Les moteurs sont marqués en mode "recule"
 
    *direction = MOTEUR_RECULE;
 
    // La vitesse est égale à map(rawY) depuis 0 ~ calY vers 0 ~ MAX_SPEED
 
    *vitesse = map(-rawY, 0, calY, 0, MAX_SPEED);
 
  }
 
 
 
  // Si rawX < -THRESHOLD alors coefG = -rawX / calX sinon coefG = 1
 
  *coefG = (rawX < -JOYSTICK_THRESHOLD) ? (1023/2+rawX)/(float)calX : 1;
 
   
 
  // Si rawX > THRESHOLD alors coefD = rawX / calX sinon coefD = 1
 
  *coefD = (rawX > JOYSTICK_THRESHOLD) ? (1023/2-rawX)/(float)calX : 1; 
 
}
 
  
  
 +
[[Fichier:1920_P4_schematic_v4_Affi3.png | 400px | center | thumb | Schematic du dernier afficheur ...]]
  
<BR \>
 
<BR \>
 
<BR \>
 
  
=== Codeurs incrémentaux ===
+
[[Fichier:1920_P4_board_v4_Affi3.png | 400px | center | thumb | ... et son PCB]]
  
<p align="justify">Afin d'asservir le robot en vitesse et vérifier que celui-ci suit bien une ligne droite lorsque nous lui ordonnons d'aller tout droit, nous devons récupérer des informations sur ses déplacements. Pour cela, nous récupérons les impulsions émises par les codeurs situés derrière les roues du robot. Ces codeurs, des GCI0K. 0411200 de Baumer, sont constitués de deux parties : une partie fixe placée sur le châssis du robot et relié grâce à 8 câbles permettant d'envoyer les informations sur la position des roues, et une roue placée derrière la roue du robot tournant donc à la même vitesse que cette dernière.</p>
 
<p align="justify">Ainsi, lorsque la roue du robot tourne, elle entraine cette petite roue placée sur son axe de rotation et qui permet à la partie fixée sur le châssis d'envoyer un signal au microcontrôleur indiquant la position de la roue et donc, en mesurant le temps entre deux positions connues, sa vitesse.</p>
 
  
<p align="justify">Mais comment ces codeurs permettent-ils de déterminer la position de la roue ?</p>
+
** 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
  
<p align="justify">En réalité, la roue placée sur l'axe de rotation de la roue du robot est constituée d'une multitude d'aimants à polarité opposée à ses voisins. Lorsque la roue tourne, la partie fixe voit donc défiler des pôles nord et sud successivement, provoquant un champ magnétique variant. A titre d'exemple, la partie fixe va donc émettre un signal carré compris entre 0V lorsque l'aimant devant le détecteur est un pôle sud et 5V lorsque l'aimant est un pôle nord.
 
Le microcontrôleur peut donc être alerté de chaque changement de position angulaire de la roue du robot et, en connaissant le diamètre de cette roue, déterminer la distance parcourue et la vitesse du robot.</p>
 
  
<p align="justify">Cependant, la précision de ce mécanisme étant donc directement reliée au nombre de pôles de la roue, et celui-ci ne pouvant évidemment pas être important, ce genre de codeur double le nombre de pistes afin d'avoir, par exemple, deux tours constitués de 64 aimants sur sa périphérie. L'intérêt est qu'en doublant le nombre de pistes, de signaux, et en les déphasant d'un quart de période, nous multiplions par deux la précision puisqu'au lieu d'avoir seulement des 0 et des 1 pour deux aimants, nous pourrons avoir 00, 01, 11 et 10 pour le même nombre d'aimant et donc le même angle. Ceci requiert cependant de consulter l'état des deux signaux ce qui peut prendre un peu plus de temps.</p>
 
  
[[Fichier:centaure_codeurs_signaux.png|480px|thumb|center|Signaux des codeurs]]
+
=== Semaine 8 : dimanche 10 novembre ===
  
<p align="justify">Les codeurs utilisés comportent deux voies appelées A et B. Un troisième, la voie N, permet de savoir si la roue a fait un tour complet et donc de resynchroniser les compteurs s'il le faut. De plus, nous avons à notre disposition les signaux contraires de ces 3 voies : non A, non B et non N, qui servent à détecter de potentielles erreurs et donc à gagner en précision. Nous nous en servirons pas ici. Afin de suivre chaque changement, nous connectons les différentes voies des deux codeurs à des interruptions externes de l'Arduino MEGA. En effet, cette dernière possède 6 interruptions externes, numérotées de 0 à 5 et correspondant aux pins 2, 3, 21, 20, 19 et 18 respectivement. </p>
+
* 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
  
<p align="justify"> Programme test des codeurs incrémentaux : </p>
+
* poursuite du design de la carte principale avec le routage de l'atmega et du MM5451
  
#define pinA  0  // interruption 0 correspond au pin 2
 
#define pinB  1  // interruption 1 correspond au pin 3
 
#define pinN  2  // interruption 2 correspond au pin 21
 
 
 
byte state = 0x00 ;   
 
int compteurA = 0;
 
int compteurTot = 0;
 
 
void interruptA()
 
{
 
  //state = 0x01 ;
 
  compteurA = compteurA+1 ;
 
  compteurTot = compteurTot+1 ;
 
}
 
 
void interruptB()
 
{
 
  //state = 0x02 ;
 
  compteurB = compteurB+1 ;
 
  compteurTot = compteurTot+1 ;
 
}
 
 
void interruptN()
 
{
 
  //state = 0x03 ;
 
  compteurN = compteurN+1 ;
 
}
 
 
 
void setup()
 
{
 
  Serial.begin(115200) ;
 
  Serial.println("TEST CODEUR INCREMENTAL") ;
 
  init_motor() ;
 
  //pinMode(21, INPUT_PULLUP);
 
  //pinMode(2, INPUT_PULLUP);
 
  //pinMode(pinN, INPUT_PULLUP);
 
 
  /* accroche les ISR aux pins */
 
  attachInterrupt(pinA, interruptA, RISING);      // Interruption sur front montant
 
  attachInterrupt(pinB, interruptB, CHANGE);      // Interruption sur front montant et descendant
 
  attachInterrupt(pinN, interruptN, CHANGE);
 
 
 
}
 
     
 
void loop()
 
{
 
  avance_gauche(50);
 
  avance_droit(50) ;
 
 
  Serial.print("Voie A : ");
 
  Serial.println(compteurA) ;
 
  Serial.print("Voie B : ");
 
  Serial.println(compteurB) ;
 
  Serial.print("Changements : ");
 
  Serial.println(compteurTot) ;
 
  Serial.print("Voie N : ");
 
  Serial.println(compteurN) ;
 
  Serial.println() ;
 
 
  delay(1000) ;
 
}
 
  
<p align="jusify">Ce code exemple ne sert qu'à incrémenter des compteurs à chaque fois qu'une interruption est détectée. Il a permis de valider le fait que les voies A et B disposaient chacune de 1024 impulsions, soit 1024 fronts haut et 1024 fronts bas chacun. En se contentant de suivre seulement les fronts haut de la voie A, cela nous permet donc une précision de 0.35° sur la roue, ce qui est amplement suffisant. La voie B nous servira donc à analyser le mouvement de la roue, et de voir si le robot avance ou recule : en effet, lors d'un front haut sur la voie A, si la voie B est à l'état bas, alors le robot avance. A l'inverse, si elle est à l'état haut, cela signifie que le robot recule.</p>
+
=== Semaine 9 : dimanche 17 novembre ===
  
 +
* Impression des cartes avec afficheurs
  
<p align="justitfy">'''Critiques :''' Ayant eu des problèmes avec les voies N, nous avons analysé les signaux émis par les codeurs incrémentaux. Si nous n'avions pas de problème à détecter les voies A et B, de forme carrée et d'amplitude 4V environ, il a été impossible de visualiser l'impulsion de la voie N lorsqu'un tour est fait. Il est possible qu'il y ait donc un problème de branchement avec cette voie.</p>
+
* récupération du matériel : il manque 2 diodes Zener 36V et 1 résistance 30.9 kohm
  
[[Fichier:Centaure_codeurs_voiesAetB_oscillo.jpg|480px|thumb|center|Signaux des voies A (en jaune) et B (en bleu) visualisés à l'oscilloscope]]
+
* Fin de la carte principale et envoi à l'impression
 +
** photo du top :
  
<BR \>
+
[[Fichier:1920_P4_board_MC_top.png | 400px | center | thumb | Capture du routage de la partie top de la carte principale]]
<BR \>
 
<BR \>
 
  
=== Télémètres infrarouges ===
 
  
<p align="justify">Pour les capteurs infrarouge permettant de détecter les obstacles devant et derrière le robot, nous avons procédé de différentes manières : à l'aide d'un simple relevé de la valeur analogique grâce à une commande Arduino, et via des fonctions écrites dans des bibliothèques dédiées aux capteurs Sharp. Comme nous pouvons le voir d'après la documentation du constructeur, la caractéristique  tension en fonction de la distance mesurée croit fortement jusqu'à une distance relativement proche (quelques dizaines de centimètres) avant de décroitre lentement jusqu'à une distance de plusieurs mètres : </p>
+
** photo du bot
  
[[Fichier:centaure_sharp_GP2Y3A003K0F.png|360px|thumb|center|Caractéristique de la distance en fonction de la tension émise par le capteur GP2Y3A003K0F, placé à l'avant du robot]]
+
[[Fichier:1920_P4_board_MC_bot.png | 400px | center | thumb | Capture du routage de la partie bot de la carte principale]]
[[Fichier:centaure_sharp_doc.png|480px|thumb|center|Caractéristique de la distance en fonction de la tension émise par le capteur GP2Y0A02YK, placé à l'arrière du robot]]
 
  
 +
* Avancement du programme, réalisation de la structure de celui-ci
  
  
<p align="justify">Les capteurs Sharp étant destinés à mesurer des objets à distance moyenne voire longue, nous nous intéresserons aux parties décroissantes des courbes : celles-ci sont continues et strictement décroissante. Afin d'être sûr qu'un objet n'a pas été détecté trop proche du robot, il suffira donc de choisir un seuil de tension pour lequel le robot entre en mode sécurité tel que 2V. De cette manière, si un objet se rapproche à moins de 30 cm ou 50 cm, suivant le capteur utilisé, l'Arduino va détecter un tension supérieure à ce seuil et alimenter le relai permettant d'ouvrir le circuit de commande du contacteur qui alimente les moteurs. </p>
+
=== Semaine 10 : dimanche 24 novembre ===
 
<p align="justify">N'ayant cependant pas eu de résultat concluant au travers de ces deux méthodes, il serait nécessaire de revenir sur cette partie à l'avenir.</p>
 
  
 
<BR \>
 
<BR \>
 +
* 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
  
<p align="justify">'''Critiques :''' Ces capteurs sont conçus pour détecter des objets à distance relativement longue et sont inexploitables à courte distance. Afin d'être sûr qu'un objet n'est pas à moins de 50 cm à l'avant et de 20 cm à l'arrière (distance correspondant aux pics de tension en fonction des capteurs utilisés), il serait bon de coupler ces capteurs à un capteur à ultrason tel qu'un HC-SR04.</p>
 
  
 
<BR \>
 
<BR \>
 
<BR \>
 
<BR \>
<BR \>
 
  
== Tests finaux ==
 
  
<p align="justify">Une fois le programme conçu, nous connectons les cartes électroniques à l'Arduino, branchons les variateurs de vitesse aux batteries et aux moteurs puis testons l'algorithme. Pour cela, nous fermons le coupe-batterie et branchons l'Arduino au PC afin de récupérer les données lors du test. Nous attendons ensuite l'initialisation des différents modules avant d'envoyer un ordre de mouvement au robot : une fois la LED de la carte principale allumée en bleue, il nous est alors possible d'envoyer une commande au robot à l'aide de la manette.</p>
+
 
 +
=== 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
 +
 
  
 
<BR \>
 
<BR \>
<p align="center">[https://youtu.be/2OU6rb355t8 Lien YouTube permettant de voir le test du robot concernant la commande du Centaure]</p>
 
 
<BR \>
 
<BR \>
  
<p align="justify">Le simple fait de pencher le joystick vers l'avant provoque la mise en rotation des deux moteurs : les roues tournent et le robot avance et ce proportionnellement à l'inclinaison du joystick. De même, lors du basculement vers l'arrière du joystick, le robot recule de la même manière. Enfin, si nous penchons le joystick vers l'avant -ou l'arrière- en jouant sur l'axe des abscisses, la roue gauche du robot ralentit au fur et à mesure que nous penchons le joystick vers la gauche. Réciproquement, si nous orientons la commande de manière à tourner à droite, c'est la roue droite qui s'arrête de tourner, en fonction de l'inclinaison du joystick.</p>
 
  
<p align="justify">Puisque le programme fonctionne parfaitement, l'objectif principal du projet, à savoir 'réaliser la partie commande du robot' a été atteint. Il nous reste ainsi à accomplir les derniers points de ce projet : 'sécuriser le système' et 'apporter une solution soignée pour l'encombrement du robot', points sur lesquels nous allons nous pencher par la suite.</p>
+
=== 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
  
<BR \>
 
 
<BR \>
 
<BR \>
 
<BR \>
 
<BR \>
  
== Sécurisation du Centaure ==
+
=== Semaine 13 : mardi 17 décembre ===
  
<p align="justify">Une fois les tests concluant, nous nous chargeons de sécuriser le système en rendant opérationnel le bouton d'arrêt d'urgence et en obligeant l'utilisateur à initialiser le robot en appuyant sur un bouton avant de le faire fonctionner. Pour cela, nous réalisons une partie commande telle que nous l'avions indiqué dans nos plans électriques pour contrôler le contacteur et, ainsi, toute la partie puissance en aval. Enfin, il sera nécessaire d'ajouter par la suite un relai 5V piloté par l'Arduino afin de déclencher un mode sécurité lorsque les capteurs détectent un obstacle trop proche du robot. En l'absence d'un tel relai, cette partie ne sera pas réalisée ici et devra donc être explorée par d'autres étudiants.</p>
+
* é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é
  
[[Fichier:Centaure_securite_test1.png | thumb | center | 480px | Système de commande permettant de sécuriser le robot Centaure en coupant le circuit de puissance (ici représenter par le contacteur) si nécessaire]]
+
* 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/'
  
<p align="justify">Pour ce qui est de la partie commande du contacteur, nous plaçons donc le bouton d'arrêt d'urgence en amont, afin de couper la commande grâce à un simple appui sur le bouton. Vient ensuite un contact commun du relai 24V et un bouton en parallèle. Sur les bornes des contacts normalement ouverts de ces deux composants, nous trouvons ensuite la bobine du relai : de cette manière, lors d'un appui sur le bouton OU si la bobine du relai était alimenté auparavant (suite à l'appui du bouton par exemple), la bobine se trouve toujours être alimentée et la tension sur le contact NO (Normally Open) est alors de 24V. Le fait de brancher le contact normalement ouvert sur l'entrée de la bobine se nomme 'auto maintien' et permet donc de garder enclenché le relai suite à l'appui d'un bouton, malgré le relâchement de ce dernier. Il suffit ensuite de mettre un fil entre ce contact et la bobine du contacteur afin de piloter le contacteur et le fermer lorsque le bouton d'arrêt d'urgence n'est pas enclenché et qu'un appui sur le bouton de départ de cycle a été réalisé. </p>
+
* Rédaction du rapport
  
 
<BR \>
 
<BR \>
<p align="center">[https://youtu.be/Rwj1ZAzCirc Lien YouTube permettant de voir le test simplifié de ce système de sécurité]</p>
 
 
<BR \>
 
<BR \>
  
<p align="justify">De cette manière, le bouton orange sert de bouton de mise en marche, et le bouton d'arrêt d'urgence permet d'arrêter le système une fois que l'utilisateur a appuyé sur le bouton.</p>
 
  
 +
 +
=== Post soutenance ===
 
<BR \>
 
<BR \>
<BR \>
+
<p align="justify">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.</p>
<BR \>
+
<p align="justify">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é. </p>
 +
 
 +
<BR \><BR \>
 +
 
 +
== 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 : [https://fr.farnell.com/lumberg/neb-21-r/fiche-femelle-basse-tension-2/dp/1217037?st=dc%2021%20mmx Farnell 14€4 les 10] ou [https://fr.farnell.com/cliff-electronic-components/fc68148/embase-pcb-alim-dc-2-1mm-pqt-10/dp/224959?MER=bn_search_1TP_SearchNB_2 5€61 unité sur Farnell] ou [https://fr.rs-online.com/web/p/connecteurs-jack/8051699/ 8€26 les 5 sur RS]
 +
  RJ45 [https://fr.farnell.com/amphenol-icc-fci/54601-908wplf/cat3-rj45-modular-jack-8pos-1/dp/2135981?st=rj45 3€56 les 10 sur Farnell]
 +
  RESONATOR CSTCE16M0V53-R0 16MHz : référence obsolète [https://fr.rs-online.com/web/p/oscillateurs-a-quartz/7037129/ 7€19 les 10 sur RS]
 +
  TS42 : commutateur 5 pins permettant de reset la carte. Utiliser un bouton simple ?
 +
  CAT811TTBI-CT3  [https://fr.farnell.com/on-semiconductor/cat811ttbi-gt3/superviseur-alim-mcu-3-08v-sot143/dp/2534243?st=CAT811TTBI 0.37€ sur Farnell] ou [https://www.mouser.fr/ProductDetail/ON-Semiconductor/CAT811TTBI-GT3?qs=sGAEpiMZZMunEhqKs81nFHWi6pdjuRojBaACRcFdy7s%3D 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
 +
 
 +
 
 +
 
 +
 
  
== Conception et finitions ==
+
=== Création d'une carte Arduino pouvant envoyer des données au serveur ===
  
<p align="justify">Durant ce projet, nous devions aussi nous pencher sur la partie conception des étages de puissance et de commande et gérer l'intégration des différents modules. Afin de concevoir ces deux étages et d'organiser au mieux les différents éléments à l'intérieur du robot, nous avons réalisé un modèle 3D simplifié de l'arrangement prévu dont voici une capture :</p>
+
<p align="justify">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 [https://www.arduino.cc/en/uploads/Main/arduino-ethernet-schematic.pdf schematic du shield Ethernet fourni par le site www.arduino.cc], les composants nécessaires sont les suivants :
 +
* Atmega328-20MU
 +
* W5100 : [https://fr.rs-online.com/web/p/modules-reseaux/0419895/ carte mélant W5100 et RJ45] avec sa [https://docs-emea.rs-online.com/webdocs/0afd/0900766b80afdc9a.pdf datasheet]
 +
*
 +
</p>
  
[[Fichier:centaure_modele3d_bati.png|480px|thumb|center|Modèle 3D des deux étages du Centaure]]
+
=== Récupération de la tension ===
  
<p align="justify">Nous pouvons voir, sur l'étage du bas, les deux batteries représentées par deux gros blocs gris. Cette hauteur des blocs comprenant la batterie elles-mêmes et leurs cosses. A gauche, en bleu, se trouve le convertisseur 24VDC -> 12VDC, posé sur la plaque permettant de surélever l'étage de puissance de 2cm, hauteur des profilés, afin de faire passer les différents câbles en dessous. Dans l'étage de commande, au dessus, nous retrouvons les deux variateurs de vitesses placés en position verticale, correspondant aux blocs vert et jaune. En gris, entre les deux, se trouve un bloc permettant d’accueillir les différentes cartes électroniques, à savoir l'Arduino MEGA, les quatre relais, ainsi que la carte électronique conçue pour ce projet. Nous retrouvons un visuel de ce bloc ci-dessous :</p>
+
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 [http://www.ti.com/lit/ds/symlink/opa237.pdf OPA237 de TI] ou le [https://www.onsemi.com/pub/Collateral/LM358-D.PDF LM358 de ON Semiconductor] avant d'utiliser le convertisseur analogique-numérique de l'atmega328.
  
[[Fichier:centaure_modele3d_bloc_cartes_elec.png|320px|thumb|center|Modèle 3D du bloc hébergeant les différentes cartes électroniques]]
 
  
<p align="justify">A droite, nous retrouvons en bleu l'emplacement de la carte mère de l'ordinateur. Le boîtier étant trop large pour le robot, il sera nécessaire à l'avenir d'ôter la carte mère et de lui confectionner un nouveau boitier plus adapté.</p>
+
(voir [https://www.mouser.com/ds/2/678/V02-3563EN_DS_ACPL-C87x_2016-09-05-909299.pdf doc ACPL-C87 1] et [https://4donline.ihs.com/images/VipMasterIC/IC/AVGO/AVGOS05563/AVGOS05563-1.pdf?hkey=52A5661711E402568146F3353EA87419 docu ACPL-C87 2])
  
<p align="justify">Nous obtenons donc les deux plans suivants qui nous serviront à créer les plaques en PMMA pour les deux étages grâce à la découpeuse laser du Fabricarium : </p>
+
=== Affichage de la tension ===
  
[[Fichier:centaure_plan_etage_puissance.png|480px|thumb|center|Plan de découpe de l'étage de puissance]]
 
[[Fichier:centaure_plan_etage_commande.png|480px|thumb|center|Plan de découpe de l'étage de commande]]
 
  
<p align="justify">Pour confectionner le bloc seront placées les cartes électroniques, nous utilisons les deux schémas suivants : </p>
+
<p align="justify">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 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.
 +
</p>
 +
<p align="justify">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.</p>
  
[[Fichier:centaure_plan_tour_facades.png|240px|thumb|center|Plan de découpe des différentes pièces servant de façades]]
+
3 * TLC 5947 + 3 * 2k5 resistors :
[[Fichier:centaure_plan_tour_paliers.png|480px|thumb|center|Plan de découpe des 3 étages de la tour]]
+
* Documentation : http://www.ti.com/lit/ds/symlink/tlc5947.pdf
 +
* Achat : http://www.ti.com/product/TLC5947/samplebuy
  
<p align="justify">Après découpe, nous montons donc cette tour, fixée ici à l'aide de quelques bouts de chatterton en attendant la colle pour le modèle définitif :</p>
 
  
[[Fichier:centaure_photo_tour.jpg|480px|thumb|center|Photo du prototype de la tour, fixée avec du chatterton]]
+
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
  
<p align="justify">Sur les plans ci-dessus, nous avions prévu des trous de quelques millimètres d'épaisseur pour y insérer des plaques permettant de faire des chemins de câbles ou encore de tenir par exemple les variateurs de vitesse : après impression, ces différents trous se sont avérés être trop fins et n'ont pas tenu. De plus, l'emplacement permettant de maintenir la petite tour pour les cartes électroniques a souffert d'un défaut ne permettant pas de placer cette tour sur l'étage. A cause de ces différentes erreurs, le montage final s'en est retrouvé moins ordonné que prévu, surtout l'étage de puissance où nous n'avions donc plus qu'une base ne permettant pas de maintenir les différents modules.</p>
+
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)
  
<p align="justify">Suite au câblage du système, nous obtenons ainsi le résultat mitigé suivant :</p>
 
  
[[Fichier:Centaure_montage_finale.jpg | thumb | center | 480px | Photo du montage final avec l'étage de puissance en bas et l'étage de commande en haut]]
 
  
<p align="justify">Afin d'obtenir un résultat plus propre, l'étage de commande sera à refaire complètement lorsque l'étage de puissance nécessitera quelques ajustement tels que visser le contacteur à la paroi du robot et ajouter quelques colliers pour regrouper les différents départs de fils.</p>
 
  
  
<BR \>
 
 
<BR \>
 
<BR \>
 
<BR \>
 
<BR \>
Ligne 1 084 : Ligne 1 238 :
 
= Conclusion =
 
= Conclusion =
  
<p align="justify">Ce projet nous a permis d’apprendre beaucoup de choses sur la robotique, la motorisation et la gestion d’énergie dans les systèmes embarqués. En effet, ce projet fut notre première expérience en ce qui  concerne les  systèmes  embarqués à  forte  puissance,  et  mener  ce  projet  par  moi-même  fut l’occasion de me retrouver face à des difficultés que je n’avais jamais rencontrées auparavant. </p>
+
<p align="justify">
 +
 
 +
</p>
 +
 
 +
<p align="justify">
 +
 
 +
</p>
  
<p align="justify">En  effet, travailler  sur ce  genre  de  projet  demande  une  attention  toute  particulière  sur  la sécurité du fait des courants qui peuvent être très importants et qui risquent d'endommager du matériel très couteux. Une  certaine  maitrise  des  différents  éléments  constituants  le  robot nous a donc été nécessaires  et nous avons donc élargi nos connaissances sur les différents appareils, surtout ceux concernant la sécurité des systèmes électriques. </p>
+
<p align="justify">
  
<p align="justify">De  plus,  ce projet m’a  demandé  une  certaine  pluridisciplinarité  propre au département  IMA  étant  donné  qu’il m’a fallu montrer des compétences en électrotechnique, en microélectronique et en informatique. Durant  es  mois  passés  sur  le  Centaure,  j’ai  pu  apporter  pour  les  prochaines  équipes travaillent  sur  ce  projet  une  nouvelle  approche  de  contrôle  du  robot  étant  donné  que  j’ai  apporté l’idée de contrôler ce robot via une commande analogique grâce à un convertisseur numérique vers analogique. Bien que l’état du robot ne permette, finalement, de tester le programme. Ce dernier a pu être testé auparavant et fonctionne correctement. Il conviendra donc de remettre en état le robot avant de continuer à développer les prochains projets. </p>
+
</p>
  
 
<BR \>
 
<BR \>
 
<BR \>
 
<BR \>
 
<BR \>
 
<BR \>
 +
  
 
= Ressources utilisées =
 
= Ressources utilisées =
Ligne 1 098 : Ligne 1 259 :
 
== Sites web ==
 
== Sites web ==
  
* Documentation pour plans électriques :
 
** [http://techelec.e-monsite.com/medias/files/memo-schema-electrotechnique.pdf Exemple de schémas et liste des repères]
 
** [https://slideplayer.fr/slide/10493093/ Schématisation de certains éléments]
 
  
* Logiciel pour plan électriques :
 
** [https://qelectrotech.org/ Site du logiciel libre Qelectrotech]
 
  
* Logiciel pour conception de cartes électroniques :
 
** [https://www.autodesk.com/products/eagle/overview Eagle]
 
  
* Variateurs de vitesse :
+
* 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 :
 +
https://www.digitalocean.com/community/tutorials/how-to-create-a-new-user-and-grant-permissions-in-mysql
 +
** Limiter le nombre de valeur dans une requête SQL :
 +
https://stackoverflow.com/questions/20878089/php-and-mysql-select-a-single-value
  
* Ordinateur :
+
* HTML/CSS :
** [https://www.59hardware.net/articles/processeurs/intel-pentium-g2100t,-i3-3220t-et-i3-3240t:-ivy-bridge-%C3%A0-petits-prix-2012102813135.html?iframe=true&width=90%25&height=90%25all%2Fall%2Fall%2Fall%2Fall%2Fall%2F&limitstart=5&fbclid=IwAR0BUp6l3hkl8rtiptlvkQf2ePrvchrK2J5k8huY6fdQtsT-DsYMPW133Fs Consommation du processeur]
+
** W3School :
 +
https://www.w3schools.com/
 +
** Police type 7 segments :
 +
https://fontlibrary.org/en/font/segment7
  
* Convertisseur 24 VDC vers 12 VDC :
+
* PHP :
** [http://www.farnell.com/datasheets/1772927.pdf?_ga=2.260083470.2081688051.1538052439-927647027.1537431483 Documentation constructeur]
+
** [[https://www.php.net/manual/fr/tutorial.forms.php Formulaires et requêtes POST]]
 +
** [[https://www.php.net/manual/fr/function.mysqli-connect.php SQL Connect]
 +
** [[https://www.php.net/manual/fr/function.mysql-error.php SQL Error]]
 +
** [[https://openclassrooms.com/forum/sujet/boucle-php-pour-creer-un-tableau-html-13827 Création dynamique d’un tableau]]
 +
** [[https://www.youtube.com/watch?v=HsvpKa-erpI Actualiser tableau grâce à JQuery]]
  
* Convertisseur Numérique-analogique (DAC) MCP4725 :
+
* Highcharts :
** [https://learn.adafruit.com/mcp4725-12-bit-dac-tutorial?view=all Tutoriel Adafruit]
+
** [[https://www.highcharts.com/ Site officiel]]
** [https://github.com/adafruit/Adafruit_MCP4725 Bibliothèque]
+
** [[https://openclassrooms.com/forum/sujet/highcharts-avec-php Highcharts et PHP]]
** [https://f-leb.developpez.com/tutoriels/arduino/bus-i2c/ Informations sur le bus I²C]
 
  
* Manette :
 
** [https://cults3d.com/fr/mod%C3%A8le-3d/gadget/diy-controller Exemple de modèle 3D]
 
** [https://itechnofrance.wordpress.com/2013/04/08/utilisation-dun-joystick-partir-de-larduino/ Joystick]
 
** [https://www.brainy-bits.com/arduino-joystick-tutorial/ Joystick]
 
  
* Codeurs :
 
**
 
  
* Interruptions Arduino :
+
Arduino :
** [http://www.locoduino.org/spip.php?article64 Tutoriel sur les interruptions des cartes Arduino]
+
** [[https://www.arduino.cc/en/Reference/Ethernet Librairie Ethernet]]
 +
** [[https://store.arduino.cc/arduino-ethernet-rev3-without-poe Arduino Ethernet Rev 3]]
 +
** [[https://www.instructables.com/id/PART-1-Send-Arduino-data-to-the-Web-PHP-MySQL-D3js/ Envoi des données sur MySQL]]
 +
** [[https://eskimon.fr/tuto-arduino-802-arduino-et-ethernet-client Envoi des données par requête POST]]
 +
** [[https://blog.protoneer.co.nz/arduino-http-post-requests/ Autre exemple de requête POST]]
 +
** [[https://eskimon.fr/tuto-arduino-401-les-entr%C3%A9es-analogiques-de-larduino Récupération des données analogiques]]
  
* Capteurs Sharp :
 
** [https://www.erasme.org/IMG/gp2y0a02_e.pdf Documentation du modèle GP2Y0A02YK]
 
** [https://media.digikey.com/pdf/Data%20Sheets/Sharp%20PDFs/GP2Y3A003K0F.pdf Documentation du modèle GP2Y3A003K0F]
 
** [http://www.societyofrobots.com/sensors_sharpirrange.shtml Principe de fonctionnement]
 
** [https://github.com/guillaume-rico/SharpIR Librairie pour certains capteurs Sharp]
 
  
* Joystick :
+
* Amplificateur d’isolation :
** [https://github.com/adafruit/2-axis-joystick-breakout-board-with-mounting-holes/blob/master/joystick.brd Github vers design d'une carte avec joystick]
+
** [[https://www.mouser.com/datasheet/2/678/V02-3563EN_DS_ACPL-C87x_2016-09-05-909299.pdf Datasheet de l'ACPL-C87B]]
 +
** [[https://www.powerelectronics.com/power-electronics-systems/optical-isolation-amplifiers-support-inverter-voltage-current-and-temperat Utilisation du ACPL-C87X]]  
  
* LED RGB :
+
* Driver de LEDs :
** [https://www.gotronic.fr/art-led-rgb-5-mm-led5rvb-2103.htm Site fournisseur]
+
• [[http://www.farnell.com/datasheets/57504.pdf?_ga=2.83106198.1277133319.1574261698-2107771478.1573500755 Datasheet du MM5451]]
** [https://www.astuces-pratiques.fr/electronique/led-et-calcul-de-la-resistance-serie Documentation sur l'alimentation de LEDs]
+
• [[ https://arduino.stackovernet.com/fr/q/4367 Exemple de programme]]
 +
• [[http://www.bristolwatch.com/ele2/arduino_MM5451.htm Tutoriel]]
  
* Capteur de courant Allegro™ ACS712 :
 
** [https://docs-emea.rs-online.com/webdocs/0d88/0900766b80d885f5.pdf Documentation constructeur]
 
  
* Capteur d'état de la batterie Analog Devices LTC2944 :
+
* Puce Ethernet :
** [https://www.mouser.fr/datasheet/2/609/2944fa-1279557.pdf Documentation constructeur]
+
• [[https://www.mouser.fr/datasheet/2/443/W5100_Datasheet_v1.2.5-586411.pdf W5100]]
 +
 
 +
 
 +
* W5500 :
 +
• [[https://forum.wiznet.io/t/topic/1396 Comparaison W5100 et W5500]]
 +
• [[https://store.arduino.cc/arduino-ethernet-shield-2 Shield Arduino à base de W5500]]
 +
 
 +
* Electronique :
 +
• [[http://nononux.free.fr/index.php?page=elec-brico-outils#!elec-brico-outil-lissage-tension Choix de la capacité de lissage]]
  
 
=Documents Rendus=
 
=Documents Rendus=
 +
==Janvier 2020==
 +
* Rapport du projet au format PDF : [[Fichier:PFE_2019_P4_Rapport.pdf]]
 +
<BR \><BR \>
 +
* Diaporama de soutenance : [[Fichier:PFE_2019_P4_Soutenance.pdf]]
 +
<BR \><BR \>
 +
* 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]]
  
• Rapport :
 
[[Fichier:centaure_2018_rapport.pdf]]
 
<BR \><BR \>
 
• Diaporama de soutenance :
 
[[Fichier:centaure_2018_diapo.pdf]]
 
  
Archive ZIP contenant ce qui a été réalisé durant le projet :
+
==Juin 2020==
[[Fichier:Centaure_archive ZIP.zip]] ([https://1drv.ms/u/s!Agdnb608xp_Rift2zCfKdIWpLIfFMQ lien Onedrive vers l'archive])
+
* 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 :
 +
** Datasheets des composants : [[Fichier:PFE_2019_P4_datasheet.zip]]
 +
** Partie électronique, V4 de la carte principale : [[Fichier:PFE_2019_P4_archive_electronique_principale_v4.zip]]
 +
** Partie électronique, modèles LTSpice : [[Fichier:PFE_2019_P4_LTSpice.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]]

Version actuelle datée du 25 juin 2020 à 21:28


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.


Photo d'un des anciens afficheurs





Description

Photo du panneau de contrôle d'une des paillasses de la salle E001
Photo du panneau de contrôle d'une des paillasses de la salle E001

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.


Photo d'un des anciens afficheurs ayant été détruit


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


Photo du matériel prêté par le tuteur pour réaliser le projet



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

Calendrier prévisionnel créé en septembre traçant les différentes étapes du projet


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 :

Calendrier prévisionnel mis à jour en octobre. En rouge : retard constatés. En orange : retard à prévoir

Mise à jour du 17 novembre :

Calendrier prévisionnel mis à jour en novembre. En rouge : retard constatés. En orange : retard à prévoir

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.

Schéma du montage initialement prévu en début de projet


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.


Photo d'un des anciens afficheurs ayant été détruit


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 :

Croquis du montage prenant en compte le transformateur en entrée pour le signal alternatif, le pont de diodes avec filtre puis le pont diviseur de tension. Pour la partie tension continue, on ajoute un convertisseur continu vers alternatif en entrée de circuit

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 :

Schéma du système comportant 4 blocs distincts


Schéma du bloc permettant la récupération des valeurs de tensions en sortie des générateurs


Schéma du bloc permettant l'affichage des valeurs des tensions sur le banc de tests



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.


Schematic de la carte principale

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 MC74AC1390€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
  • 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.


Schematic de la carte principale mis à jour

Fichier:1920 P4 schematic v3.1.pdf


Ce schematic mis à jour dispose de plusieurs blocs:

  • la partie clone de l'Aduino ethernet :
Bloc du schematic reprenant certaines parties de l'Arduino Ethernet
  • la partie permettant de récupérer la tension aux bornes du générateur de tension alternative :
Bloc du schematic sur la récupération d'une 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) :
Bloc du schematic sur la récupération d'une tension continue
  • le bloc lié au driver de LEDs :
Bloc du schematic exposant le 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


Schematic du premier afficheur ...


... et son PCB


Schematic du second afficheur ...


... et son PCB


Schematic du dernier afficheur ...


... et son PCB


    • 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 :
Capture du routage de la partie top de la carte principale


    • photo du bot
Capture du routage de la partie bot de la carte principale
  • 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 :

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 :


3 * MM5451 + 3 potentiomètre 100 kOhm :

https://forum.arduino.cc/index.php?topic=66090.0

9 (ou 12) * Afficheur 7 segments :

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 :

https://www.digitalocean.com/community/tutorials/how-to-create-a-new-user-and-grant-permissions-in-mysql

    • 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 :

https://www.w3schools.com/

    • Police type 7 segments :

https://fontlibrary.org/en/font/segment7


Arduino :


  • 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






Juin 2020