SE5 2023/2024 P3
Présentation du Robot Centaure
Le robot Centaure est un robot d’accueil créé en 2004 par des élèves ingénieurs. Il peut avoir une discussion avec une personne et pouvoir la guider au sein de Polytech.
Préparation du projet
Calendrier prévisionnel
Afin d'avoir une bonne gestion de projet, j'ai choisi le diagramme de Gantt pour bien organiser les taches pour la réalisation de mon projet.
Cahier de charge
Je dois réaliser plusieurs tâches. Tout d’abord :
-Suite à l’état des lieux, une mission principale se dessine, sécuriser le robot en retravaillant le câblage et l’organisation .
-Etude générale du robot en se basant sur les anciens rapports.
-Commande du robot à travers la manette.
-finaliser l'implantation des capteurs.
Une fois ces tâches effectuées on peut envisager un contrôle de plus haut niveau du robot par caméra.
Spécifications technique
Partie Commande : Afin de développer la partie commande j'utilise l'IDE d'Arduino pour la programmation des différentes fonctionnalités.
L’environnement de développement intégrée Arduino est un environnement facile à utiliser et en même temps contient plusieurs bibliothèques déjà installées .
Pour la partie matériel ,j'utilise :
- Arduino MEGA :
Arduino est un excellent outil pour développer des objets interactifs. Il existe de nombreuses bibliothèques permettant de faire des choses complexes, comme écrire sur des cartes SD, des écrans LCD, analyser des GPS, ainsi que des bibliothèques pour faire des choses simples, comme des boutons ou allumer une lumière.
L'Arduino Mega offre plus de broches d'E/S numériques (54 contre 14) et analogiques (16 contre 6), ainsi qu'une mémoire Flash plus grande (256 Ko contre 32 Ko) par rapport à l'Arduino Uno.
-Shield Arduino:
Carte d'interface permettant de raccorder facilement les modules capteurs et les actionneurs Grove à une carte Arduino.Développé par les anciennes promotions équipé par deux ADCs pour la commande des variateurs de vitesse.
-Relais électromécanique:
L'utilisation d'un module relais avec Arduino offre de nombreux avantages. Tout d'abord, il permet à Arduino de contrôler des appareils qui nécessitent une tension ou un courant plus élevé que ce que le microcontrôleur peut fournir.Dans notre cas ,c’est le contrôle du variateur.
Partie puissance :
Dans la partie puissance on trouve plusieurs composants choisis en se basant sur les performances du système et avoir une consommation minimale d’énergie pour éviter les dissipations.
-Deux variateurs de vitesse 8CH2QM :
-Deux moteurs DC:
-moteurs SRG0131 24V / 15.5 A / 0.35 kW / 10 km/h Ces moteurs ont un courant de pic d’approximativement 30-35A. En régime normal, leur consommation est d’environ 8A.
-Un convertisseur DC/DC :
Tension d’entrée : 16,8…31,2V (Recommandée : 24V) Tension de sortie : 12 VDC Courant de sortie : 12,5A
-Un convertisseur DC/DC:
Tension d’entrée : 19…36V (Recommandée : 24V) Tension de sortie : 12 VDC Courant de sortie : 12,5A
-Un contacteur:
Les contacteurs sont des équipements de sécurité majeurs. Leur fonctionnement est toujours le même : un circuit de commande en courant faible (<2A) permet, grâce à une bobine, de fermer les contacts (équivalents à des interrupteurs) du circuit de courant fort (>2A).
Porte 5 fusibles :
On trouve aussi une carte mère avec une mémoire SSD , un écran et une caméra Kinect pour le traitement d’image.
- La combinaison entre les deux parties va permettre de former notre Robot.
Le projet est décomposé en deux parties :
- La première partie est la commande manuelle du Robot: grâce à des programmes informatiques téléversés dans le microcontrôleur de la carte Arduino , on peut contrôler notre robot.
-La deuxième partie est la commande automatique du robot à travers la caméra: grâce à des algorithmes d’intelligence artificielle , le robot peut prendre des décisions tout seul .
La partie commande va permettre d’actionner la partie puissance pour faire tourner les moteurs DC.
Suivi du Projet
Semaine 1
Début du projet le 11/10/2024
du 11/10 au 13/10
-la recherche des rapports des années précédentes sur le robot centaure.
-Compréhension de l’architecture du Robot
- Vérification de la charge des batteries.
- Développement d’un code arduino pour faire avancer le robot sans commande pour vérifier le fonctionnement des moteurs.7-Développement d’un code pour tester le joystick.
Problèmes rencontrés:
Une des deux batteries se déchargent rapidement d’où la nécessité d'acheter une autre batterie avec les mêmes dimensions Problème d’alimentation des deux variateurs de vitesse (absence de tension)
Le test de code n’est pas possible en attendant d’avoir la batterie et de pouvoir alimenter les variateurs correctement.
Semaine 2
J'ai commencé par la recherche des solutions pour les problèmes rencontrés dans la première semaine.Tout d'abord, pour les batteries je n'ai pas encore trouvé les batteries avec les dimensions souhaitées par suite j'ai pris la décision d'utiliser les mêmes batteries en attendant de trouver les mêmes dimensions mais en garantissant une charge continue des batteries comme ça je peux avoir les 24V pour l'alimentation des différents composants.
Pour l'alimentation des deux variateurs, après deux jours de recherche j'ai trouvé que le fil qui lie le premier variateur et le contacteur est défaillant et par suite j'étais obligé de le changer pour alimenter le premier variateur.
La partie puissance fonctionne et donc j'ai passé à tester la partie commande en utilisant le joystick.A cause du problème d'alimentation les deux variateurs ne peuvent pas pas fonctionner en même temps mais le code fonctionne.
Comme vous voyez dans la vidéo , juste un seul moteur qui tourne et donc j'ai fait fait du débogage en utilisant des prints dans le programme pour savoir la source du problème mais apparemment tout marche nickel et pour confirmer l'hypothèse de l'alimentation , j'ai fait un programme pour faire tourner les moteurs sans joystick.
Résumé:
-Problème des variateurs résolu -
Je suis encore à la recherche des batteries avec les mêmes dimensions.
-Le programme fonctionne.
Durant les vacances , je vais essayer de développer plus le programme de la partie commande et en même temps développer des algorithmes d'intelligence artificielle pour la commande automatique.
Semaine3
La semaine 3 a commencé par la soutenance intermédiaire dont laquelle j'ai présenté mon état d'avancement et les taches à venir. J'ai eu plusieurs remarques de la part du Jury à propos de la méthodologie de travail et le faite que je dois prioriser les taches les plus importantes.
En ce qui concerne la présentation de mon état d'avancement ,j'avais présenté 3 points:
-Le test des moteurs par commande directe avec arduino.
-La commande de joystick non réussi car les batteries se déchargeait.
-En attendant la réception des batteries ,j'ai commencé par le développement du joystick virtuel. Dans cette partie j'ai commencé par définir les protocoles utilisé pour lier le serveur et le client et le serveur et l'arduino.
le protocole série est RS232.
Node.js est une plateforme logicielle libre en JavaScript, orientée vers les applications réseau évènementielles hautement concurrentes.
En résumé : j'utilise HTML ,CSS pour le frontend et Javascript avec NodeJS pour le Back-end ,comme ça j'aurai une interface Web qui contient un joystick virtuel pour commander le robot .
- Développement d'un algorithmes de reconnaissance vocale et de détection de visage.
Après la réception des deux batteries , je me suis lancé dans la partie commande du robot par joystick physique.J'ai commencé par charger les batteries et de les installer dans le Robot.Le code du Joystick physique était déjà prêt ,il fallait juste avoir des batteries en bonne état. Le résultat est comme suit:
Après plusieurs tests du code de Joystick Physique , j'ai rencontré le même problème des batteries qui se déchargent et donc ça montre que le problème ne provient pas des batteries.
Hypothèse 1 : les freins des moteurs non desserrés et par suite le circuit consomme plus que prévu et ça permet de décharger les batteries. Pour vérifier cette hypothèse , j'ai démonté le premier étage et de chercher le câble responsable de l'alimentation des freins Sachant que les freins doit être alimentés par 24V.
Après l'identification du câble responsable ,j'ai procédé à la mesure de la tension jusqu'au contacteur .Après les mesures de chaque point du chemin d'alimentation j'ai trouvé que la tension 24V est présente et donc logiquement le problème ne provient pas des freins des moteurs.
Hypothèse 2 : Un composant du circuit consomme plus que d'habitude.
Pour confirmer cette hypothèse, Monsieur Redon m'a proposé de voir avec Monsieur Chevalier pour trouver une solution à cette problématique.
Pour vérifier cette hypothèse ,j'ai posé plusieurs étapes :
- Vérification du courant sortant des batteries.
-Débrancher l'étage de commande et tester le courant sortant des deux batteries
En général ça va être un débogage de composant par composant pour trouver le composant qui consomme le courant.
Monsieur Redon m'a fait la remarque de l'organisation du Robot surtout la partie la commande ,donc en attendant de trouver la solution du problème , j'ai fait la conception d'un shield en se basant sur ce que les groupes précédents ont fait comme travail.
Un shield équipé par 2 DACs et un port RJ11 et un emplacement pour brancher les capteurs.
Pour la partie Joystick virtuel ,j'ai implémenté un serveur
semaine 4 et 5
ces deux semaines ont connu la finalisation de plusieurs tâches:
Finalisation de la page web pour le joystick virtuel : comme mentionné précédemment que j'ai utilisé les langages HTML,CSS pour le Frontend et javascript,NodeJS pour le Backend.