IMA3/IMA4 2019/2021 P2+ : Différence entre versions

De Wiki de Projets IMA
(Liste des tâches à effectuer)
(Documents Rendus)
 
(99 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 10 : Ligne 10 :
 
*'''Calendrier'''
 
*'''Calendrier'''
 
**'''Debut du projet''' : 17 Mai 2021  
 
**'''Debut du projet''' : 17 Mai 2021  
**'''Fin du projet''' : xx Juin 2021
+
**'''Fin du projet''' : 29 Juin 2021
  
 
==Description==
 
==Description==
 
ce projet s'intègre dans le cadre de la formation des élèves ingénieurs de<br>  
 
ce projet s'intègre dans le cadre de la formation des élèves ingénieurs de<br>  
 
Polytech Lille, étudiante dans la filiaire Systèmes Embarqués.Il consiste à<br>  
 
Polytech Lille, étudiante dans la filiaire Systèmes Embarqués.Il consiste à<br>  
à terminer l'avancement et la mise sur pieds du robot.
+
à terminer l'avancement et la mise sur pied du robot.
  
 
==Objectifs==
 
==Objectifs==
Ligne 31 : Ligne 31 :
 
==Liste des tâches à effectuer==
 
==Liste des tâches à effectuer==
 
; Terminer l'agencement matériel
 
; Terminer l'agencement matériel
: faire le design sur onshape dela vitre de couverture supérieure
+
: faire le design sur onshape de la vitre de couverture supérieure
: intaller et s'assurer de démontage facile du deuxième boutton d'arrêt d'urgence sur cette vitre
+
: installer et s'assurer de démontage facile du deuxième bouton d'arrêt d'urgence sur cette vitre
 
: moyen de recharge des batteries.
 
: moyen de recharge des batteries.
  
; Fonctionnement des battéries
+
; Fonctionnement des batteries
: faire fonctionner les battéries
+
: faire fonctionner les batteries
: reprogrammer l'arduino et lancer chaque roue 1s
+
: reprogrammer l'Arduino et lancer chaque roue 1s
  
 
; Module de direction du robot
 
; Module de direction du robot
: realiser une carte avec connecteur RJ11 pour une manette
+
: réaliser une carte avec connecteur RJ11 pour une manette
: realisation de la manette avec le joystick pour commander le robot
+
: réalisation de la manette avec le joystick pour commander le robot
 
: programme de l'arduino pour que les roues soient commandées par la manette
 
: programme de l'arduino pour que les roues soient commandées par la manette
  
 
; Montage des capteurs  
 
; Montage des capteurs  
 
: Terminer l'installation de tous les capteurs
 
: Terminer l'installation de tous les capteurs
: connecter tous les capteurs à l'arduino de façon esthétique avec les cables adaptés
+
: connecter tous les capteurs à l'Arduino de façon esthétique avec les câbles adaptés
: refaire la carte de l'arduino pour inserer les trous des 4 cables rajoutés
+
: refaire la carte de l'Arduino pour insérer les trous des 4 câbles rajoutés
: Reecrire le code de l'Arduino pour arreter le robot en cas d'obstacle
+
: Réécrire le code de l'Arduino pour arrêter le robot en cas d'obstacle
  
 
==Calendrier prévisionnel==
 
==Calendrier prévisionnel==
Ligne 55 : Ligne 55 :
  
 
==Prologue==
 
==Prologue==
==Semaine 1==
+
==Semaine 1 & 2==
==Semaine 2==
+
1.'''Prise en main du travail fait '''<br>
 +
En parcourant de long en large les rapports des groupes qui ont précédemment travaillé sur le robot Centaure , j'ai constaté qu'une large partie du travail avait déjà été entamé , notamment concernant la construction mécanique.les connecteurs Molex permettant de contrôler les variateurs ont bien été branchés.Le chargeur/testeur de batterie a lui aussi été reçu.<br>
  
=Documents Rendus=
+
2.'''Installation et réalisation du capot de dessus'''<br>
 +
[[Fichier:capot.png|right|thumb|"Capot supérieur Robot"]]
 +
Grâce au logiciel Onshape, j'ai réalisé une représentation 3D de cette partie et grâce à l'imprimante laser du Fabricarum de [[Polytech Lille]], je l'ai conçue.<br>
 +
L'installation du bouton d'arrêt d'urgence est réalisée avec succès mais une seule des vis prévues pour ce bouton sur le capot entre, ceci est due à la conception d'un rayon plus grand que prévu.<br>
 +
Mais j'ai pu constater que ce petit écart de dimensionnement permet d'avoir un désassemblage facile par la suite.Néanmoins si je constate une erreur dû à cela on pourra toujours refaire une découpe avec un diamètre du trou plus petit. <br>
 +
 
 +
3.'''Alimentation des moteurs'''<br>
 +
je dispose de 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.<br>
 +
'''Attention: il est impératif de desserrer les freins en injectant du 24V sur les deux petits fils (jaune et violet) allant vers les moteurs'''<br>
 +
Afin de recharger les batteries , on dispose d'un :<br>
 +
**chargeur/testeur de batterie
 +
[[Fichier:Batterie-en-recharge.jpg|500px|center|thumb|"chargeur"]] [[Fichier:Voltmetre.jpg|100px|right|thumb|"voltmètre"]]
 +
 
 +
 
 +
Concernant le test de batterie , grâce à un voltmètre j'ai pu tester si les batteries étaient déchargées ou pleinement chargées.
 +
sachant qu'avec ce chargeur ,la pleine charge peut indiquer une valeur supérieure à 12,79 V. Cela peu aller à un poil au dessus de 13V. Sachant qu’après l’avoir débrancher elle redescend à 12,8 12,9V.<br>
 +
 
 +
Le travail sur la conception de la carte PCB relié à l’Arduino n'a pas été bien explicité sur le wiki. du fait de ce manque d'informations j'ai pris contact avec les élèves qui travaillaient dessus avant moi. J'attends donc leur réponse. En parallèle j'ai retravaillé sur le bouton d’arrêt d'urgence qui était pas bien fixé et sur l'écriture du code Arduino.
 +
[[Fichier:Roues_tournent.mp4|thumb|Mise en mouvement des roues|320x320px]]
 +
<br>
 +
 
 +
4.'''Explication code Arduino'''<br>
 +
Aujourd'hui le code Arduino écrit pour faire avancer les deux roues a fonctionné parfaitement comme sur la vidéo ci-dessous.<br>
 +
En début de code j'ai défini les sorties analogiques correspondantes à l'avance/recul des roues gauches et droites. mais aussi les variables correspondants aux variateurs qui gèrent les moteurs.Pour finir j'ai simplement écrit les syntaxes d'activation des moteurs. 
 +
 
 +
5.'''Création de la manette'''<br>
 +
[[Fichier:Pcb_manette.png|500px|center|thumb|"PCB MANETTE"]] <br>
 +
Le premier essai de conception de la manette du robot cette fois ci avec deux joysticks.le soucis étant une intersection de certains liens entre eux qui créons un court_circuit ultérieurement à l'utilisation.Mais après le problème a été réglé.
 +
 
 +
 
 +
Fichier Fritzing Mar : [[File:Manette_mar2.zip]]      Dernière version
 +
 
 +
==Semaine 3 & 4 ==
 +
La semaine a démarré avec la suite du travail sur le PCB de la carte arduino.<br>
 +
J'ai continué entre temps à faire l'inventaire du matériel manquant  matériel qui a été commandé.
 +
 
 +
En parallèle la soudure de carte pcb de la manette avec les deux joysticks , la prise RJ , la led et la résistance a été faite.<br>
 +
De plus le support de plexiglas de cette carte a été réalisée sur Onshape
 +
 
 +
 
 +
1.'''Processus création du pcb de la carte arduino''' <br>
 +
[[Fichier:Schematic_carte_pcb1.png|500px|center|thumb|"schematic pcb carte arduino"]] <br>
 +
En s'inspirant de la carte précédente , j'ai donc gardé les éléments comme les connecteur des variateurs, les ports des relais de variateurs , la prise RJ11.<br>
 +
Mais en vu de rajouter les 6 capteurs présents sur les côtés du robot centaure, j'ai rajouté un connecteur HE10. J'ai fait quelques ajustements pour avoir un rendu esthétiquement correct.<br>
 +
En vu de rendre la carte le moins possible encombrée , j'ai changé les 2 convertisseurs numérique-analogique en intégrant certains de leurs éléments à la carte.
 +
[[Fichier:Pcb_carte_arduino.png|500px|center|thumb|"pcb carte arduino"]] <br>
 +
 
 +
Fichier Fritzing Mar terminé: [[File:Arduino_pcb_mar.zip]] avec schematic modélisé.
 +
 
 +
==Semaine 5 & 6==
 +
1.'''Finition manette''' <br>
 +
En début de cette semaine le soudage des composants de la manette et le support ont été finalisé.
 +
[[Fichier:Finition_manette.jpg|500px|center|thumb|"Finition manette"]]
 +
2.'''Explication code joystick''' <br>
 +
Grâce à un câble RJ11 , j'ai connecté la manette à la carte et l’Arduino à l'ordinateur. la première partie du code sert à l'initialisation des variables notamment les pins analogiques où des axes horizontal et vertical du joystick.
 +
Plus précisément ici l'axe vertical sert à:
 +
                                          * l'avance avant (joystick vers le haut) et à
 +
                                          * l'avance arrière (joystick vers le bas).
 +
Et l'axe Horizontal permet de gérer ici la vitesse des roues:
 +
                                          * plus on va à droite  plus la vitesse augmente
 +
                                          * plus on va à gauche plus la vitesse diminue
 +
3.'''Maquettage câbles capteurs''' <br>
 +
j'ai opté pour l'utilisation d'un câble nappe, il sera découpé afin qu'il soit le plus possible uni.il sera connecté sur la carte PCB au connecteur 20 pins.
 +
 
 +
4.'''Test carte PCB ''' <br>
 +
*La led RGB <br>
 +
Le routage de la led rgb n'a pas été fait correctement fait en effet l'anode de cette dernière devait être placé à droite, on a donc manuellement grâce des coup de gratture et de rafistolage au fil en cuivre, on a pu remédier à ce problème et grâce au 'code Arduino test RGB'  j'ai fait varier les couleurs de la led RGB.
 +
*Les leds <br>
 +
Au premier test sur les leds, elles ne se sont pas allumées j'ai donc pensé que le fait de les avoir connectées aux pins RXi/TXi servant pour les communication etait le problème. Mais après une inspection approfondie , je me suis rendu compte de les avoir mal connectées , j'avais inversé l'anode et la cathode. Rectifiant cette erreur , et en faisant un test Arduino on allume ben toutes les leds , mais il faut remarquer que celles branchées aux pins RX1 et TX1 s'allument afin d'indiquer le transfert d'information vers la carte Arduino.
 +
*Les DAC <br>
 +
ici j'ai fait varier la tensions de 5 à 0 V et j'ai observé à l'aide d'un voltmètre. Par ailleurs il faut declarer les deux ADC afin d'éviter toute erreur.
 +
 
 +
5.'''Installation nouvelle carte'''<br>
 +
On effectue le câble le plus basique qui permet de faire tourner simplement les roues. Mais après envoi du même code de mon pc ver l’arduino du Centaure  avec les nouvelles initialisation des pins, la mise sous tension de ce dernier fait s'éteindre mon ordinateur , qui ne se rallumera plus.<br>
 +
Après consultation avec des Ingénieurs de Polytech Lille , on a constaté que la carte mère avait totalement grillé certainement dû à un court-circuit au niveau du port usb.
 +
Ceci dit j’ai essayé de circonscrire ou ce trouvait la défaillance dans mon circuit j’ai donc procédé comme suit :
 +
*Dans un premier temps , en effectuant des tests sur l’Arduino j’ai
 +
constater qu’elle était grillée. Le port usb transmettait du courant à l’Arduino mais la détection du port était défaillante.
 +
 
 +
*Ensuite j’ai reconnecté l’ancienne carte PCB et j’ai refait
 +
les branchements basiques , j’ai ensuite testé le claquement des relais en injectant du  5 v sur chacune des pins liés aux leds des relais présents et elles se sont toutes allumées.J’en ai conclu que les relais n’avaient pas été affectés.
 +
 
 +
*Enfin j’ai reconnecté les deux variateurs et un des deux seulement
 +
Marchaient, mais après une vérification je me suis rendu compte que la connexion du deuxième variateur devait être décalée d’un rang .
 +
J’ai donc fait les changements nécessaires et j’ai pu refaire tourner les roues.
 +
6.'''Conclusion'''<br>
 +
On a donc conclu que la connexion des pins du variateur sur la carte qui n’ a pas très bien été explicitée a très certainement été la cause du court circuit sur le PC portable et l’Arduino en place.Ceci aurait effectivement pu être évitée car j’aurai dû récupérer la datasheet des variateurs afin de savoir exactement comment connecter les différents pins.
 +
 
 +
==Documents Rendus==
 +
'''Code Arduino''' : [[:Fichier:Code_turn_wheel.zip]] <br>
 +
'''Code Arduino avec joystick''': [[:Fichier:Code_Joystick_Wheel.zip]]<br>
 +
'''Code Arduino RGB''': [[:Fichier:Blink_RGB.zip]]<br>
 +
'''Code Arduino Leds''': [[:Fichier:Blink_LEDS.zip]]<br>
 +
'''Code Arduino IC2''': [[:Fichier:Test_ic2.zip]] permet de récupérer les adresses des 2 ADC.<br>
 +
'''Code Arduino ADC''': [[:Fichier:Test_adc.zip]]<br>
 +
'''datasheet variateurs''': [[:Fichier:VariateurCC.pdf]]<br>
 +
'''Rapport''': [[:Fichier:RAPPORT_PROJET_STAGE_Marlene_IMA4.pdf]]<br>

Version actuelle datée du 29 juin 2021 à 08:54



Présentation Générale

  • Projet : ROBOT AUTONOME CENTAURE
    • Encadrant : Xavier Redon
  • Lieu de la formation : Polytech Lille, Lille , France
  • Réalisé par : Marlène Kameni
  • Calendrier
    • Debut du projet : 17 Mai 2021
    • Fin du projet : 29 Juin 2021

Description

ce projet s'intègre dans le cadre de la formation des élèves ingénieurs de
Polytech Lille, étudiante dans la filiaire Systèmes Embarqués.Il consiste à
à terminer l'avancement et la mise sur pied du robot.

Objectifs

Rendre opérationnel le robot Centaure au niveau de l'étage commande.

Préparation du projet

Cahier des charges

  • terminer l'agencement interne du robot, e.g. terminer les supports des différents composants et réaliser un câblage organisé et maintenable
  • inaliser les modules permettant de diriger le robot en filaire (manette) et sans fil (télécommande infrarouge)
  • finaliser l'implantation des capteurs à courte distance (optique et de contact)
  • finaliser la programmation de l'étage micro-contrôleur pour permettre la conduite du robot avec les moyens cités plus haut et en intégrant un arrêt d'urgence en cas de détection d'obstacle

Choix techniques : matériel et logiciel

Liste des tâches à effectuer

Terminer l'agencement matériel
faire le design sur onshape de la vitre de couverture supérieure
installer et s'assurer de démontage facile du deuxième bouton d'arrêt d'urgence sur cette vitre
moyen de recharge des batteries.
Fonctionnement des batteries
faire fonctionner les batteries
reprogrammer l'Arduino et lancer chaque roue 1s
Module de direction du robot
réaliser une carte avec connecteur RJ11 pour une manette
réalisation de la manette avec le joystick pour commander le robot
programme de l'arduino pour que les roues soient commandées par la manette
Montage des capteurs
Terminer l'installation de tous les capteurs
connecter tous les capteurs à l'Arduino de façon esthétique avec les câbles adaptés
refaire la carte de l'Arduino pour insérer les trous des 4 câbles rajoutés
Réécrire le code de l'Arduino pour arrêter le robot en cas d'obstacle

Calendrier prévisionnel

Réalisation du Projet

Prologue

Semaine 1 & 2

1.Prise en main du travail fait
En parcourant de long en large les rapports des groupes qui ont précédemment travaillé sur le robot Centaure , j'ai constaté qu'une large partie du travail avait déjà été entamé , notamment concernant la construction mécanique.les connecteurs Molex permettant de contrôler les variateurs ont bien été branchés.Le chargeur/testeur de batterie a lui aussi été reçu.

2.Installation et réalisation du capot de dessus

"Capot supérieur Robot"

Grâce au logiciel Onshape, j'ai réalisé une représentation 3D de cette partie et grâce à l'imprimante laser du Fabricarum de Polytech Lille, je l'ai conçue.
L'installation du bouton d'arrêt d'urgence est réalisée avec succès mais une seule des vis prévues pour ce bouton sur le capot entre, ceci est due à la conception d'un rayon plus grand que prévu.
Mais j'ai pu constater que ce petit écart de dimensionnement permet d'avoir un désassemblage facile par la suite.Néanmoins si je constate une erreur dû à cela on pourra toujours refaire une découpe avec un diamètre du trou plus petit.

3.Alimentation des moteurs
je dispose de 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.
Attention: il est impératif de desserrer les freins en injectant du 24V sur les deux petits fils (jaune et violet) allant vers les moteurs
Afin de recharger les batteries , on dispose d'un :

    • chargeur/testeur de batterie
"chargeur"
"voltmètre"


Concernant le test de batterie , grâce à un voltmètre j'ai pu tester si les batteries étaient déchargées ou pleinement chargées. sachant qu'avec ce chargeur ,la pleine charge peut indiquer une valeur supérieure à 12,79 V. Cela peu aller à un poil au dessus de 13V. Sachant qu’après l’avoir débrancher elle redescend à 12,8 12,9V.

Le travail sur la conception de la carte PCB relié à l’Arduino n'a pas été bien explicité sur le wiki. du fait de ce manque d'informations j'ai pris contact avec les élèves qui travaillaient dessus avant moi. J'attends donc leur réponse. En parallèle j'ai retravaillé sur le bouton d’arrêt d'urgence qui était pas bien fixé et sur l'écriture du code Arduino.


4.Explication code Arduino
Aujourd'hui le code Arduino écrit pour faire avancer les deux roues a fonctionné parfaitement comme sur la vidéo ci-dessous.
En début de code j'ai défini les sorties analogiques correspondantes à l'avance/recul des roues gauches et droites. mais aussi les variables correspondants aux variateurs qui gèrent les moteurs.Pour finir j'ai simplement écrit les syntaxes d'activation des moteurs.

5.Création de la manette

"PCB MANETTE"

Le premier essai de conception de la manette du robot cette fois ci avec deux joysticks.le soucis étant une intersection de certains liens entre eux qui créons un court_circuit ultérieurement à l'utilisation.Mais après le problème a été réglé.


Fichier Fritzing Mar : Fichier:Manette mar2.zip Dernière version

Semaine 3 & 4

La semaine a démarré avec la suite du travail sur le PCB de la carte arduino.
J'ai continué entre temps à faire l'inventaire du matériel manquant matériel qui a été commandé.

En parallèle la soudure de carte pcb de la manette avec les deux joysticks , la prise RJ , la led et la résistance a été faite.
De plus le support de plexiglas de cette carte a été réalisée sur Onshape


1.Processus création du pcb de la carte arduino

"schematic pcb carte arduino"

En s'inspirant de la carte précédente , j'ai donc gardé les éléments comme les connecteur des variateurs, les ports des relais de variateurs , la prise RJ11.
Mais en vu de rajouter les 6 capteurs présents sur les côtés du robot centaure, j'ai rajouté un connecteur HE10. J'ai fait quelques ajustements pour avoir un rendu esthétiquement correct.
En vu de rendre la carte le moins possible encombrée , j'ai changé les 2 convertisseurs numérique-analogique en intégrant certains de leurs éléments à la carte.

"pcb carte arduino"

Fichier Fritzing Mar terminé: Fichier:Arduino pcb mar.zip avec schematic modélisé.

Semaine 5 & 6

1.Finition manette
En début de cette semaine le soudage des composants de la manette et le support ont été finalisé.

"Finition manette"

2.Explication code joystick
Grâce à un câble RJ11 , j'ai connecté la manette à la carte et l’Arduino à l'ordinateur. la première partie du code sert à l'initialisation des variables notamment les pins analogiques où des axes horizontal et vertical du joystick. Plus précisément ici l'axe vertical sert à:

                                          * l'avance avant (joystick vers le haut) et à
                                          * l'avance arrière (joystick vers le bas).

Et l'axe Horizontal permet de gérer ici la vitesse des roues:

                                          * plus on va à droite  plus la vitesse augmente 
                                          * plus on va à gauche plus la vitesse diminue

3.Maquettage câbles capteurs
j'ai opté pour l'utilisation d'un câble nappe, il sera découpé afin qu'il soit le plus possible uni.il sera connecté sur la carte PCB au connecteur 20 pins.

4.Test carte PCB

  • La led RGB

Le routage de la led rgb n'a pas été fait correctement fait en effet l'anode de cette dernière devait être placé à droite, on a donc manuellement grâce des coup de gratture et de rafistolage au fil en cuivre, on a pu remédier à ce problème et grâce au 'code Arduino test RGB' j'ai fait varier les couleurs de la led RGB.

  • Les leds

Au premier test sur les leds, elles ne se sont pas allumées j'ai donc pensé que le fait de les avoir connectées aux pins RXi/TXi servant pour les communication etait le problème. Mais après une inspection approfondie , je me suis rendu compte de les avoir mal connectées , j'avais inversé l'anode et la cathode. Rectifiant cette erreur , et en faisant un test Arduino on allume ben toutes les leds , mais il faut remarquer que celles branchées aux pins RX1 et TX1 s'allument afin d'indiquer le transfert d'information vers la carte Arduino.

  • Les DAC

ici j'ai fait varier la tensions de 5 à 0 V et j'ai observé à l'aide d'un voltmètre. Par ailleurs il faut declarer les deux ADC afin d'éviter toute erreur.

5.Installation nouvelle carte
On effectue le câble le plus basique qui permet de faire tourner simplement les roues. Mais après envoi du même code de mon pc ver l’arduino du Centaure avec les nouvelles initialisation des pins, la mise sous tension de ce dernier fait s'éteindre mon ordinateur , qui ne se rallumera plus.
Après consultation avec des Ingénieurs de Polytech Lille , on a constaté que la carte mère avait totalement grillé certainement dû à un court-circuit au niveau du port usb. Ceci dit j’ai essayé de circonscrire ou ce trouvait la défaillance dans mon circuit j’ai donc procédé comme suit :

  • Dans un premier temps , en effectuant des tests sur l’Arduino j’ai

constater qu’elle était grillée. Le port usb transmettait du courant à l’Arduino mais la détection du port était défaillante.

  • Ensuite j’ai reconnecté l’ancienne carte PCB et j’ai refait

les branchements basiques , j’ai ensuite testé le claquement des relais en injectant du 5 v sur chacune des pins liés aux leds des relais présents et elles se sont toutes allumées.J’en ai conclu que les relais n’avaient pas été affectés.

  • Enfin j’ai reconnecté les deux variateurs et un des deux seulement

Marchaient, mais après une vérification je me suis rendu compte que la connexion du deuxième variateur devait être décalée d’un rang . J’ai donc fait les changements nécessaires et j’ai pu refaire tourner les roues. 6.Conclusion
On a donc conclu que la connexion des pins du variateur sur la carte qui n’ a pas très bien été explicitée a très certainement été la cause du court circuit sur le PC portable et l’Arduino en place.Ceci aurait effectivement pu être évitée car j’aurai dû récupérer la datasheet des variateurs afin de savoir exactement comment connecter les différents pins.

Documents Rendus

Code Arduino : Fichier:Code_turn_wheel.zip
Code Arduino avec joystick: Fichier:Code_Joystick_Wheel.zip
Code Arduino RGB: Fichier:Blink_RGB.zip
Code Arduino Leds: Fichier:Blink_LEDS.zip
Code Arduino IC2: Fichier:Test_ic2.zip permet de récupérer les adresses des 2 ADC.
Code Arduino ADC: Fichier:Test_adc.zip
datasheet variateurs: Fichier:VariateurCC.pdf
Rapport: Fichier:RAPPORT_PROJET_STAGE_Marlene_IMA4.pdf