IMA4 2018/2019 P4

De Wiki de Projets IMA
Révision datée du 24 octobre 2018 à 22:55 par Nhavard (discussion | contributions) (Représentation du système à étudier)


Présentation générale

  • Nom du projet : [Projet CENTAURE]
  • Membre du projet : HAVARD Nicolas
  • Superviseurs du projet : REDON Xavier, BOE Alexandre et VANTROYS Thomas (professeurs de Polytech Lille)
  • Résumé :

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.





Description

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. 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.


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.
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.




Ce projet ayant été travaillé par plusieurs équipes d'étudiants IMA, nous avons à notre disposition des archives :

  • cinq rapports papiers de 2005 à 2009
  • quatre CD-ROM
  • un wiki étudiant

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.



Objectifs

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.

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.

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.




Préparation du projet

Cahier des charges

  • Rendre le robot Centaure commandable à l'aide d'une manette avant le lundi 17 décembre
  • Permettre le relevé de données pouvant être utilisées telles que le couple des moteurs et le niveau de charge des batteries
  • Proposer un coffret en plexiglas pour les différents étages afin d'organiser le câblage entre les différents modules



Choix techniques : matériel et logiciel

Matériel à disposition :
Description Marque Nombre Commentaire Photo
châssis du robot 1 Châssis monté avant le projet
batterie GF 12 22 Y (12V / 22 Ah (C5)) Sonnenschein 2 Environ 8V aux bornes des deux batteries initialement. 12 V après recharge
chargeur et testeur de batterie 12V GT6 ELEC 1
moteurs SRG0131 24V / 15.5 A / 0.35 kW / 10 km/h INVACARE 2 Déjà intégrés au châssis
roue 3 Une roue folle et deux roues de fauteuil roulant. Toutes déjà intégrées au châssis
codeur GC10K-04 11200 Baumer IVO 2 Déjà intégrés au châssis au niveau des roues arrières
variateur de vitesse 8CH2QM.2 Italsea 2 Sur la table, déjà reliés aux moteurs, aux batteries et aux relais
bouton d'arrêt d'urgence 1 En plusieurs parties en dehors du robot
Arduino Mega Arduino 1 Déjà équipée de la carte d'extension, reliée aux relais et prête à être programmée
Arduino MEGA Sensor Shield Arduino 1 Déjà fixé à l'Arduino et à la carte de relais
carte équipée de 4 relais KEYES ver. 4R1B Funduino 1 La carte est déjà reliée aux variateurs de vitesse sur la table
relai 12 VDC Tongling 1 Neuf, encore emballé
capteur infrarouge 2Y3A003 F SHARP 4 3 sont fixés sur l'avant du châssis, 1 détaché
capteur infrarouge 2Y0A02 SHARP 2 Un 2Y0A02 46 fixé à l'arrière du robot et un 2Y0A02 4X dont les fixations ont été détruites et les pins abimés
contacteur LC1D18 Telemecanique 1
convertisseur Tel 5-2422 18-36 VDC -> +/- 12 VDC TracoPower 1
convertisseur TEN40-2411 24 VDC -> 5 VDC (8 A) TracoPower 1 Légèrement abimé, dommages "esthétiques"
écran 4/3 ProLite E430 & E430S iiyama 2 Deux écrans dont un fixé à l'avant du robot
caméra Kinect Microsoft 1 Fixée à l'avant du robot en haut du mât


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) Achat sur RS OU Mouser 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) 2 mètres OU 5 mètres sur RS PDF
résistance 3*2kOhm + 1*50 mOhm
capacité 1*1µF + 2*1nF
batterie 12 V / 35 Ah (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) 1er prix confiance de Norauto 2 99.9 € (2*49,95 €) 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 55,81 € ou 144 € achat sur Mouser ou sur Farnell Datasheet des DD-120 et datasheet du PV24S
fuel gauge LTC2944 24V Analog Devices 1 5,28 € achat sur Mouser Datasheet du LTC2944
LED RGB (pour indiquer l'état de la charge) Kingbright 1 (par lot de 5) 0,908 € (4.54 € les 5) achat sur RS PDF
capteur IR 2Y0A02 (arrière robot) Sharp 1 ou 2 3,89 €/unité (Aliexpress) ou 14,86 €/unité (RS) Aliexpress ou RS Datasheet du GP2Y0A02YK0F
capteur de courant ACS712ELCTR-20A-T pour déterminer le couple des moteurs Allegro Microsystems 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é) Achat sur RS OU sur e.banana-pi.fr Document PDF
Plaque plexiglas 1*1*0,0025 m^3 1 20,70 € Achat sur Leroy Merlin



Liste des tâches à effectuer

Ce projet sera donc découpé en 3 phases principales :


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

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

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




Calendrier prévisionnel

20181012 planning previsionnel.png

Réalisation du Projet

Feuille d'heures

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 0h30 3h30 1h 0h30
Récupération des archives 0h30
Analyse de l'existant (archives, état du système) 3h30 1h
Commande de matériel 5h30h
Documentation 3h 3h30
Rédaction de schémas 5h 5h 2h 1h30
Montage électrique (tests moteurs, câble de puissance) 0h30 2h45 5h30 11h45
Programmation 0h15 0h15
Total 8h 13h30 8h 11h30 14h30 1h30

Semaine 1 : Introduction au projet et récupération d'archives

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. Ainsi, 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 :

  • Puissance :
  • Commande :
  • 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.
Le robot devra donc être capable d'avancer, de reculer et de tourner à droite comme à gauche.
  • Découverte du projet et de ses objectifs

  • Récupération des archives et regroupement des documents non papier (disques, wiki) sur un drive :
https://1drv.ms/f/s!Agdnb608xp_RifFzM-b3jDG6AuN4-Q
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.

  • Étude des documents et du circuit existant
besoin de schémas

Commande du matériel nécessaire à la finalisation du projet

  • Rédaction du wiki de la semaine passée


  • acquisition d'un voltmètre et test des batteries. On obtient 8V à leurs bornes. Rechargement de ces dernières

APRES RECHARGEMENT, TENSIONS ENTRE 12,5 ET 13,2 V

  • commande de nouveau matériel
    • 4 boutons basiques pour donner les différents ordres au robot. Peut être remplacé par un joystick
    • 12,50 mètres de câble permettant d'obtenir 2,50 m pour chaque bouton et pour avoir le 5V de l'Arduino OU 2,50 mètres de câble ethernet permettant d'avoir la longueur de câble souhaitée déjà gainée
    • 1 ou 2 exemplaires de chaque capteurs IR (2 avant et 1 ou 2 arrière)
    • 2 nouvelles batteries 12 V OU une batterie de 24 V. Dans le but de limiter le coût à 100 € pour l'achat des deux batteries, nous optons pour des batteries "1er prix confiance" de Norauto. Caractéristiques de cette batterie :
      • Tension : 12 V
      • Capacité : 35 Ah
      • Dimensions h*L*l : 0,175*0,207*0,175 m^3
    • 1 convertisseur 24VDC -> 12VDC

D'après le bilan énergétique effectué par Haroun ABDELALI (voir semaine 4 de son wiki), les appareils connectés en 12 VDC nécessitent une puissance maximale totale de 125 W et un courant maximal de 12 A. Le robot ne nécessitant pas d'utiliser ses équipements à puissance maximale, nous choisissons donc un convertisseur pouvant délivrer une puissance de 120 W et un courant de 10 A en sortie.

Refaire le bilan énergétique

    • 1 fuel gauge afin de déterminer avec précision l'état de charge des batteries. Appareil mesurant tension, courant, coulomb et température. Nous choisissons un capteur mesurant des tensions jusqu'au moins 26 V afin de le brancher à l'ensemble des batteries.


  • validation des tests sur table. Nécessite cependant la recharge des batteries


  • les 2 câbles (jaune et violet) de petit diamètre concernent le frein moteur et doivent donc être reliés à la masse


convertisseur possibles :
convertissuer 24VDC->12VDC, 288W et 24A : 144 €
24VDC->12VDC, 150W et 14.4A : 122,26 € (16 semaines de livraison)
24VDC - > 12 VDC, 200W et 19.2 A : 158,12 € (16 semaines)




Représentation du système à étudier

<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.

Schéma visuel du projet Centaure


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

    • 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é.

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

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

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

/!\ 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.


  • deux schémas électriques plus conventionnels :
Schéma électrique du projet Centaure : partie 1
Schéma électrique du projet Centaure : partie 2

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 :

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

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

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



Semaine 3 à 5 : Début des tests du robot et de la rédaction des schémas électriques

La semaine des commandes ayant permis aux batteries d'être rechargées, nous pouvons ainsi débuter les tests du montage fait par les prédécesseurs. La première phase, afin de comprendre comment le variateur de puissance CH2QM fonctionne, 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.
Lors de ces tests, il est impératif que la résistance variable soit à 5 kOhm à l'état initial, avant de faire varier la résistance lorsque le moteur est en phase de mouvement. Ainsi, nous avons pu faire avancer à très faible vitesse les deux moteurs. Cependant, les câbles reliés à la batterie ont rapidement commencé à chauffer, malgré la faible vitesse des moteurs. Nous réitérerons donc l'expérience dans de meilleures conditions.


Concernant la rédaction des circuits, ils sont principalement basés sur les circuits existants en corrigeant les erreurs qui s'y trouvaient. Deux schémas ont été réalisés : un visuel avec des photos des composants et un plus technique aux normes.


  • penser à réaliser des chémas du cablage des moteurs/freins*

=>GM et GBle alimentent moteur droit / GV et GBla alimentent le moteur gauche / pV et pJ commandent respectivement les freins droit et gauche / GN devient 2 pN qui vont vers les deux freins (non polarisés ?)

• début de la programmation des capteurs qui semblent fonctionner correctement


Mesures de la vitesse de la roue ainsi que des tensions batterie/moteur/potar pour différentes valeurs de potar approximatives
Test du convertisseur 24-12

Documents Rendus

...

...