Diapositive 1 - Introduction

Download Report

Transcript Diapositive 1 - Introduction

ABAD Zoïlo
CROSA Jason
KOME HU KAM-THU THON Yannick
VERCHERE Lucile
 Introduction
 La marche Hexapode
 Fonctionnement des Servomoteurs
 Étude des dimensions
 Conception
 Électronique
 La télécommande
 Programmation
 Test
 Évolutions futures/possibles
 Conclusion
Au début nous voulions améliorer le robot créé l’année
dernière lors des TPE. Nous voulions le transformer en robot
suiveur de ligne en y rajoutant une caméra et des capteurs.
Cependant, ces améliorations étaient impossible compte tenu
de la fragilité du robot.
Nous avons donc changé d’objectif, et nous avons décidé de
construire un nouveau robot. Ce dernier devrait être plus
stable et plus solide que l’ancien. La solution trouvée fut
l’hexapode, un robot avec six pattes comme les fourmis ou les
scarabées. Bien que le nombre de servomoteurs était un
problème au départ nous avons étudié les différents modèles
possibles et nous avons opté pour une solution avec trois
servomoteurs (un pour deux pattes).
Pour un robot hexapode, la marche la plus courante est le tripode alterné.
Il va se déplacer en soulevant 3 pattes à la fois, c’est à dire les deux
extrêmes d'un côté et la patte centrale du côté opposé. Puis il recommence
en alternant les 3 pattes, et ainsi de suite....
Sur les figures, les couleurs pleines représentent les pattes au sol et les
couleurs hachurées symbolisent les pattes en l'air.
Le Servomoteur est un
moteur utilisé dans le
modélisme, il est commandé
par impulsions et sa position
est vérifié par un
potentiomètre, il est en outre
constitué de plusieurs roues
dentées (4 ensembles de 2
roues dentées, une grande et
une petite) qui a pour fonction
de réduire la vitesse en
augmentant le couple.
Le servomoteur au complet,
une fois assemblé
La roue du moteur entraîne la roue rouge qui entraîne la
roue bleue qui entraîne la roue verte et enfin la roue orange
qui est fixé au palant.
La méthode du PWM (Pulse Width Modulation, en
français modulation en largeur d'impulsion ) consiste a
envoyer très rapidement des impulsions aux moteurs. Ces
impulsions sont d'amplitude égale (0 ou 5V), mais de temps
haut variables.
Normalement le moteur fait la moyenne des temps
haut et des temps bas ce qui lui donne une tension moyenne.
L’intérêt d’un tel procédé est de ne pas réduire la tension
et donc de consommer moins mais de garder une tension
fixe et seulement varier la fréquence en changeant le
rapport temps haut/temps bas.
Les servomoteurs fonctionnent
différemment tout en gardant le
principe du PWM. La période est
constante, c'est la largeur d'impulsion
qui détermine la position de l'axe. La
position milieu correspond à une
largeur d'environ 1,5 ms. Selon l'angle
de rotation souhaité, les impulsions
seront plus brèves ou plus longues.
Mais la période de 20 ms reste tout le
temps la même.
L’électronique intégré dans le
servomoteurs reçoit l'ordre et fait
tourner le moteur dans le sens
demandé jusqu'à ce que le
potentiomètre indique qu’il est arrivé à
la bonne position.
A partir d’images trouvées sur le site de lynxmotion,
nous avons réalisé le robot avec le logiciel de 3D, Solidworks
sans connaître les dimensions réelles du modèle ni ses
proportions.
Nous avons rencontré un problème au niveau des
dimensions des pattes centrale, nous voulions un
débattement maximal mais avec des pièces
résistantes et de même dimension que les autres.
Pour cela nous avons réalisé une animation avec
l’aide de MotionWorks pour étudier les proportions
idéales de toutes les pièces composant les pattes
centrale.
Pré usinage
Nous avons tout d’abord pré-usiné
(coupe en gros) les différentes pièces du
robot grâce à une scie à bande et aux
documents créés sous SolidWorks pour
l’ébauche.
Puis nous avons utilisé
une fraiseuse manuelle à trois
axes. Les pages ci-dessous
montrent les brouillons de
méthodes pour l’usinage.
Nous avons rencontré
certains problèmes au niveau
de la création des 2 plaques
centrales du robot à cause de
leurs grande taille par rapport
à la taille de la fraiseuse et
par rapport au matériaux
initialement prévu : du plexiglace.
Les différentes pièces du robot
après l’usinage.
Le bâtit.
Une fois toutes les pattes usinées, ainsi que
les deux grandes plaques centrales, nous
avons assemblé le tout avec des vis de 3mm
de diamètre, des écrous normaux et
autobloquants, des rondelles normales et
bloqueuses, des axes et des tubes en laiton.
La partie électronique du robot ce résume à
l’interface entre le PIC et les servomoteurs.
Nous avons dû ensuite réaliser la carte de la
caméra qui comprend une alimentation stabilisée et
un émetteur vidéo.
Tous les circuits ont d'abord été réalisé en
platines de test et seulement après en circuit
imprimé.
Carte d’alimentation du robot :
Elle comprend un connecteur, un interrupteur, une diode
de protection, 2 condensateurs pour les parasites et une LED
d’indication de fonctionnement.
Sur le reste de la carte du robot il y a le
microcontrôleur, son horloge, et les
connecteurs pour les servomoteurs et les
capteurs.
La carte de l’émetteur de la camera embarqué
comprend deux connecteurs pour les deux packs de piles
nécessaire, un interrupteur, une diode de protection, un
régulateur 5V, une LED d’indication de fonctionnement, le
connecteur de la camera et enfin le module émetteur.
Une fois le robot terminé, nous avons voulu l’améliorer.
Nous avons donc pensé à rajouter une télécommande pour
pouvoir choisir entre le mode automatique c’est-à-dire le
mode autonome et le mode commande manuelle.
Nous avons tout d’abord étudié les différents schémas
mis a notre disposition sur les magasines pour finalement
nous centrer sur un article d’électronique pratique que nous
avons suivi en modifiant les possibilités pour que cela
corresponde mieux à nos attentes.
Nous avons donc réalisé en premier la partie
électronique de la télécommande, puis le programme
attenant à cette partie.
Voici la partie rajouté a la carte du robot pour recevoir
le code de la télécommande.
Et voici la télécommande, sans le clavier mais avec son
alimentations, l’émetteur, le codeur et son réseaux de
transistor qui permet une alimentation du circuit quand cas
de sollicitations.
Celui de la carte du robot, et celui de le carte de la télécommande,
tout deux réalisé avec Ares.
Pour pouvoir programmer notre robot, nous
avons dû choisir quel langage nous allions
utiliser pour la programmation.
Une fois cette première étape terminée,
nous avons dû faire une étude du PIC16F84A,
le microcontrôleur du robot.
Dans le programme de S –SI nous commençons a
apprendre le C avec le robot Hémisson mais nous n’étions de
toute façons pas assez avancé comparé a la complexité du
programme a réaliser.
Alors nous nous sommes dit, quitte à apprendre à fond un
langage de programmation autant en apprendre un nouveau.
Nous avions la possibilité d’avoir une aide pour apprendre
les bases et nous aider a la conception du programme mais
seulement si nous programmions en assembleur.
L’assembleur est un langage très proche de celui de la
machine, l’étape avant le langage hexadécimal pur.
Il n’y a que 35 instructions possible pour le PIC16f84A
et avec ça tout est réalisable, il suffit de bien les combiner!
Avant d’écrire un programme il faut d’abord le
préparer en le modélisant sous forme d’organigrammes, de
Grafcet, de GEMMA, et de tout autre moyen disponible
permettant une approche progressive.
Premièrement nous étudierons les mouvements que
permet la structure physique du robot et nous ne garderons
que le minimum utiles.
Ensuite nous avons fait un Grafcet pour définir
l’enchainement de ses possibilités pour qu’elles réalisent
un mouvement coordonné et stable
Pour pouvoir le traduire en assembleur, nous avons
transformé ce Grafcet en donnant plus de détails et toutes
les possibilités de transition entre les différentes marche.
Chaque étapes a été ensuite réaliser en organigramme pour
s’approcher de la méthode de programmation.
Une interruption est lorsqu’un événement survint
durant l’exécution du programme, il s’arrête alors là où il en
était puis vas chercher les actions à faire lors d’une telle
interruption.
Nous utilisons une interruption qui ce déclenche tout
les 0.5ms, ce qui nous permet de programmer le PWM.
Nous avons fait un organigramme avec l’interruption
bien que nous l’ayons modifié après car il ne convenait plus.
Ci-dessous les principales caractéristiques
du microcontrôleur et les passages étudiés
du datasheet pour le programme du robot.
Principales astuces de programmation et
méthodes. (MPlab avec hexapode2.asm)
MPlab
Pour la prise en charge de la télécommande au
niveau du programme de l’hexapode nous avons dû
rajouter une interruption sous RB0 qui est la
broche correspondant au code valide, réaliser un
décodeur, et adapter le Grafcet.
(hexapode6_1.asm)
MPlab
Diriger automatiquement le robot vers une source de
chaleur, lumière, bruit
Optimiser le code
Rajouter des capteurs
Améliorer la télécommande et son mode de transmission
Stabiliser et trouver des solution pour l'adhérence
Optimiser la consommation
Ce projet nous a permit d’approfondir beaucoup
de point que l’on aborde en sciences de l’ingénieur et
ainsi de ce préparer à nos futurs choix d’orientation
et de carrière professionnelle.
Nous avons appris beaucoup de chose que
normalement nous ne faisons que survoler ou que nous
ne voyons pas en classe tel que la réalisation
mécanique quelque peu complexe ou encore
l’assembleur qui n’est pas au programme de terminale
ce qui nous donne une avance considérable sur les
années futures si nous continuons sur cette voix.