robot vierzon
TRANSCRIPT
ROBOT VIERZON
Projet tutoré
Semestre 3
2013 - 2014
ChadliHadjar Rudy Tuchowski AbdoulNdoye Nicolas Desvignes
Robot Vierzon
1
Introduction ....................................................................................................... 3
Diagramme de Gantt .......................................................................................... 4
Cahier des charges ............................................................................................. 5
Découpage fonctionnel ...................................................................................... 7
FP1 : Détecter les obstacles ................................................................................ 8
Capteur infrarouge .......................................................................................... 8
Capteurs moustaches : .................................................................................. 10
FP2 : Se repérer ................................................................................................ 11
1) La balise (émission) ................................................................................. 11
FP1 : Choix du code ................................................................................... 11
FP2 : Création du code ............................................................................... 11
FP3 : Modulation ........................................................................................ 12
FP4 : Emission ............................................................................................ 12
2) La balise de réception ............................................................................. 13
FP1 : Capter le signal : ................................................................................ 13
FP2 : Décoder l’information : ..................................................................... 13
La boussole : ................................................................................................. 15
FP3 : Se déplacer .............................................................................................. 17
Driver moteur :.............................................................................................. 17
FP4 : Gérer l’arrivée ......................................................................................... 20
Capteur optique ............................................................................................ 20
FP5 : Communiquer .......................................................................................... 21
Programmation ............................................................................................. 21
1) La commande des moteurs ..................................................................... 21
SOMMAIRE
Robot Vierzon
2
2) La détection d’obstacles.......................................................................... 22
3) L’évitement d’obstacles .......................................................................... 22
4) Le suivi de la balise .................................................................................. 22
5) Fonctions optionnelles ............................................................................ 22
Programme de détection d’obstacles : ....................................................... 23
Programme de gestion du moteur : ........................................................... 24
Conclusion ........................................................................................................ 25
Robot Vierzon
3
Introduction
Le projet « Robot PIC 18 Vierzon » fait partie du concours de robotique
GEII à Vierzon. Il doit être capable d’éviter des obstacles tout en se dirigeant
vers un point d’arrivé et cela avant ses adversaires.
Le concours possède un règlement disponible sur le site internet du concours,
règlement que tous les robots participants doivent respecter.
Le cahier des charges doit donc bien être respecté y compris les contraintes
dictées par le règlement, pour cela nous somme une équipe de 4 étudiants
avec chacun des rôles bien spécifiques pour mener à bien notre projet et ainsi
permettre à notre robot de peut-être gagner le concours.
Robot Vierzon
4
Diagramme de Gantt
Robot Vierzon
5
Cahier des charges
o Dimension :
30 cm de hauteur, 30 cm de largeur et 40 cm de longueur.
o Prise Jack :
Jack de départ doit être obligatoirement utilisé et retiré au top départ.
o Alimentation :
Autonome en énergie, le robot utilise obligatoirement une batterie de 12V/1.2Ah au plomb
gélifié.
o Arrêt d’urgence :
Toujours opérationnel et facile d’accès et permet de couper la partie puissance.
o Indicateur d’arrivée :
Le robot doit s’arrêter au-dessus de sa zone d’arrivée puis éclater son ballon
o Balises
Dimension n’excède pas un cube de 20 cm de côté.
o Temps limite
Le robot à 90secondes pour arriver à son coin.
o Collisions
Le robot ne doit pas être agressif ou perturber d’une quelconque façon ses adversaires.
o Modification piste
La piste peut être modifié mais restant dans le même esprit.
Robot Vierzon
6
Robot Vierzon
7
FP5
Découpage fonctionnel
FP1
Détecter les obstacles
FP2
Se repérer
FP3
Se déplacer
FP4
Gérer l’arrivée
FP1 : La détection d’obstacles (adversaire ou non) se fera à l’aide de capteurs infrarouges et de
capteurs moustaches.
FP2 : Après avoir détecté les éventuels obstacles, une boussole ainsi que des balises permettront
au robot de pouvoir se repérer et savoir qu’elle trajectoire prendre afin de se rendre sur sa zone
d’arrivée.
FP3 : Une fois que toutes les informations utiles au robot ont été prises en compte et mémorisé, il
devra se déplacer à l’aide de moteur.
FP4 : Pour pouvoir gérer l’arrivée, un capteur optique détectant la ligne ainsi que la balise sont
nécessaire.
FP5 : Le microcontrôleur sera aux centre de toutes les commandes est permettra de gérer toutes
les informations reçu à travers les capteurs etc.. Et selon elles guider le robot à la victoire.
Microcontrôleur
Robot Vierzon
8
FP1 : Détecter les obstacles Afin de pouvoir détecter d’éventuels obstacles qui se trouvent devant le robot, nous placerons à
l’avant de ce dernier, 2 capteurs. Ces capteurs seront disposés de façon stratégique afin de détecter
les obstacles sur une zone optimale.
Nous décidons donc pour le moment, de les placer comme sur le schéma ci-dessous mais ce
placement ne pour devenir définitif qu’après les tests sur le robot.
Nous choisirons un capteur infrarouge, qui selon ses caractéristiques (ci-dessous) correspond
bien à ce que l’on cherche.
Capteur infrarouge
Etude du capteur infrarouge GP2D12 :
Fonctionne sous 5V
Le GP2D12 est constitué de deux parties :
- La partie émettrice : une LED émet un rayon infrarouge, qui est réfléchi sur l’obstacle
- La partie réceptrice : une barrette photoréceptrice reçoit le rayon réfléchi.
Capteurs
Avant du robot
Base émettrice Base réceptrice
Robot Vierzon
9
Le capteur a une portée de 10cm à 80cm comme on peut le voir sur ce schéma.
La tension récupéré en sortie du capteur est en fonction de la distance (mais est non-linéaire) cette
valeur analogique sera par la suite convertie à l’aide d’un convertisseur analogique-numérique (CAN)
du microcontrôleur afin qu’elle puisse être utilisé pour programmer la trajectoire du robot.
La courbe ci-dessous issue de la datasheet représente la tension Vo en fonction de la distance :
Objet
Objet
Objet
10cm< distance< 80cm 80cm< distance distance< 10cm
distance
Robot Vierzon
10
Capteurs moustaches :
Nous avons décidé de placer trois capteurs moustaches à l’avant du robot, ces capteurs permettront
principalement la détection d’une collision. Si un défaut est survenu au niveau des capteurs
infrarouge et qu’ils ne peuvent détecter l’obstacle, ces capteurs le feront.
Ces capteurs auront la priorité sur les autres car d’après le règlement, les obstacles ne doivent être
déplacés sous peine de disqualifications de la partie.
C’est pour cela que lorsque un de ces capteurs s’enclenche, il déclenchera par la suite l’arrêt du robot
afin d’effectuer une marche arrière.
Le placement des capteurs sur le robot peuvent être modifié cela dépendra des résultats lors des
essais.
Principe de fonctionnement :
Il s’agit d’un interrupteur, quand il est « fermé » il y a contact le potentiel est mis à la masse et
lorsqu’il est « ouvert » le potentiel va à 5V grâce à la résistance.
Le microcontrôleur, reçoit donc soit des « 1 » soit des « 0 » (fonctionnement TOR)
Capteurs moustaches
Avant du robot
Robot Vierzon
11
FP2 : Se repérer
1) La balise (émission)
La balise infrarouge est une partie à part entière du système, elle permet au robot de savoir où se
situe son point d’arrivée.
Du côté de la réception le robot embarquera un récepteur infrarouge qui captera les rayons émit par
la balise et donc donnera l’information au robot afin de savoir s’il doit tourner ou non pour se
mettre en face de celle-ci. On obtient donc le découpage fonctionnel suivant :
FP1 : Choix du code
La piste comportant 4 robots et donc 4 balises IR, nous devons
coder l’information envoyée par la balise afin de ne pas capter ou
émettre un signal autre que le nôtre. Pour ce faire, Nous avons
opté pour un code qui pourra être changé à tout moment.
Nous allons utiliser s donc 4 switches, ce qui nous donne 16
possibilités, cela permettant la quasi-certitude de ne pas
rencontrer un même code chez les adversaires.
FP2 : Création du code
Pour réaliser l’encodage, nous avons choisi le
composant MC145026. Ce composant a pour but
D’émettre un code protégé par une adresse sur 9 bits.
Notre objectif étant seulement de repérer la balise,
nous n’avons nullement besoin de transmettre de
données. Pour cela les entrées de données (D6 à D9)
seront reliées à la masse. Les bits d’adresse envoyés
par l’encodeur seront donc configurables grâce un
switch quatre interrupteurs qui permettra de modifier
le code si deux robots transmettent le même code.
Afin d’obtenir la validation de la transmission, il faut
que le robot reçoive deux trames de signal (broche
VT=1(Valid Transmit)).
FP1 :
Choixdu
code
FP4 :
Emission
FP2 :
Création du
code
FP3 :
Modulation
Robot Vierzon
12
FP3 : Modulation
Pour augmenter la portée de notre signal
et éviter au maximum les interférences, nous allons le ha
cher à une fréquence de 38 kHz pour une sortie en
fréquence de l’encodeur de 1.71kHz (meilleurs résultats).
Nous avions eu à réaliser un tel montage en 1ere année
(codage RC5 pour télécommande TV → 36 kHz).
Nous utilisons
donc un montage extrait de la datasheet du MC145026 :
l’oscillateur à portes NAND HC4011.
On obtient donc le signal haché en sortie du Hc4011
Afin de déterminer les valeurs des composants à mettre en œuvre, Nous avons appliqué le calcul vu
en 1ere année : 𝑓 = 2 ∗ 𝜏 ∗ ln 3 −1 = 38𝑘𝐻𝑧 avec 𝜏 = 𝑅𝐶
On obtient donc :
𝑅1 = 220𝑘Ω 𝑅2 = 33𝑘Ω 𝐶 = 220𝑝𝐹
On ajoute également un potentiomètre en série à la résistance R2 afin de pouvoir régler la fréquence
de sortie à exactement 38kHz et qui nous permet d’obtenir un signal carré quasi parfait.
FP4 : Emission
Matériellement la balise compte un total de 15 LEDs permettant de couvrir l’intégralité de la piste
(90°). Sachant que nous avons une alimentation de 12
Volts (batterie), 5 LEDs seront mises en série, de cette
façon, même si une LED venait à tomber en panne, la
balise continuerait d’émettre. La tension à leurs bornes
est de 9 Volts avec une résistance de 82Ω permettant de
limiter l’intensité de courant. Ceci étant répété deux fois
en parallèle.
Un transistor MOSFET permettra d’amplifier le signal
codé au LEDs en leur donnant une tension de Vcc.
Robot Vierzon
13
Cependant ce type de balise entrainait un problème de
détection en raison de la disposition des ledsinfrarouges ,c’est
la raison pour laquelle nous avons décidé d’utiliser une balise
avec des leds concentrées au même endroits ce qui permet une
détection plus précise.
Pour améliorer le fonctionnement de cette balise il a fallu changer certaines résistances qui ne
convenait pas ainsi qu’un composant devenu défaillant après avoir effectué plusieurs tests.
2) La balise de réception
Le signal ayant été préalablement haché, nous ne pouvons pas l’utiliser comme tel à partir d’un
phototransistor. Nous avons donc choisi un capteur TSOP1738 qui capte et démodule à des
fréquences d’oscillations de 38kHz.
Le signal en sortie du TSOP etant au niveau haut au repos. On doit donc l’inverser avant de l’utiliser.
Ce signal va ensuite rentrer dans le décodeur MC145027.
FP1 : Capter le signal :
Il y a deux capteurs qui couvrent un champ de 10° positionné sur les côtés du robot, si le capteur
gauche capte la balise émettrice alors le robot saura qu’il doit s’orienter vers la gauche, idem pour le
capteur droit. Alors si les deux capteurs reçoivent le signal de l’émetteur le robot sait qu’il est dans la
bonne diagonale. Les signaux seront donc, comme dit précédemment, reçus par le TSOP1738.
FP2 : Décoder l’information :
Les bus de données sortent du capteur par la sortie OUT et entrent dans
l’entrée des données du décodeur MC145027(Din).Le décodeur va
recevoir par l’intermédiaire du capteur une série de deux trames
d’adressages en une séquence de codes L’adresse est sur 5bits, nous
avons donc 32 adresses possibles. Une tension Vt sera alors obtenue
lorsque l'adresse de l'émetteur sera la même que celle du récepteur. Les
FP1 :
Capter le
Signal
FP2 :
Décoder
L’information
FP3 :
Info détectée
transmission
validée
Robot Vierzon
14
données de l’encodeur et du décodeur ayant étés connectés à la masse.
Ayant étudié les fonctions principales il a fallu créer le circuit électrique complet à partir des
datasheets des 3 composants principaux utilisés : le capteur infrarouge, l’encodeur et le décodeur.
En effet il a d’abord fallu étudier le décodeur MC145027 :
Comme nous l’avons dit précédemment, nous avons choisis d’utiliser une fréquence de 1.71kHz pour
l’oscillateur interne de l’encodeur et du décodeur car après de nombreux essais ce soit pour ces
fréquences que le système fonctionne le mieux. Ce qui nous donne d’après le tableau :
𝑅1 = 47kΩ
𝐶1 = 22𝑛𝐹
𝑅2 = 220kΩ
𝐶2 = 0.1µ𝐹
Placement des capteurs :
Pour ce qui est du placement des capteurs IR, nous déterminerons les meilleurs placements possibles
en pratique, les capteurs étant entourés par un tube en pvc afin de ne pouvoir percevoir les rayons
émis par la balise que lorsque que le robot est en face ou un peu décalé par rapport à cette dernière
Robot Vierzon
15
(10°)
On aura une certaine tension pour Vt selon la distance de transmission, il suffira de regarder de quel
côté il s'agit pour voir lequel des capteurs a émis Vt.
La boussole :
Afin de pouvoir se déplacer, notre robot utilisera une boussole, qui lui permettra de recevoir
continuellement des informations sur sa position est ainsi se déplacer en modifiant son trajet pour
atteindre l’arrivée.
La boussole utilisée est la ParallaxCompass HM55B.
Principe de fonctionnement :
Le circuit intégré HM55B, est directement relié au microcontrôleur PIC 18452 à l’aide d’un protocole
similaire à l’I2C.
Les broches P4, P5, P6 sont celles qui sont reliées au PIC. Ce circuit est alimenté en +5V.
o CSB -> broche de sélection du composant (au niveau bas) o CLK -> broche d’horloge de la liaison série générée par le microcontrôleur o Din -> broche d’entrée des commandes pour activer la boussole o Dout -> broche de lecture des champs magnétiques
Ce circuit permet de mesurer les composantes
vectorielles « x » et « y » d’un champs
magnétique.
La relation 𝜃 = − arctan 𝑥
𝑦 permet de
calculer l’angle par rapport au Nord.
(Réalisé par le PIC)
Robot Vierzon
16
Comme on peut le voir sur cette image issue
de la datasheet, la mesure de l’angle se fait
toujours par rapport au Nord magnétique.
Robot Vierzon
17
FP3 : Se déplacer Driver moteur :
Pour effectuer les déplacements du robot nous avons besoin de 2 moteurs à courant continu
alimentés en 12V qui seront commandés par le PIC18F452 grâce au module CCP.
Pour se faire nous devons passer par un driver moteur de référence L298 dont la structure est la
suivante :
Le L298 est un circuit intégré à 15 ou 20 broches selon le type de composant utilisé, en effet il y a le
Multiwatt15 qui possède 15 broches et le PowerS020 qui possède 20 broches.Le L298 est un
conducteur à fort courant et tensionde pont conçu pour résister aux niveaux logiques TTL basiques et
pour commander différentes charges inductives dans notre cas il s’agit de la commande des 2
moteurs.
Robot Vierzon
18
On contrôle le courant traversant la charge grâce aux résistances RSA et RSB présentent sur les
broches Sense A et Sense B.
Un condensateur de 100nF doit être connecté sur les tensions d’alimentations.
Schéma de câblage des moteurs :
Entrées du driver moteur relié aux
broches du pic 18F452.
Les PWM sont reliées aux entrées
ENA et ENB.
4 diodes de roues libres afin de
protéger les transistors du pont en H.
Il y a également un moteur à courant continu afin de crever le ballon une fois arrivé à la
positionvoulue.
Les diodes doivent être choisies avec une tension de seuil la
plus basse possible dans le cas du courant le plus défavorable.
Le courant maximum traversant le moteur ne doit pas dépasser
2 ampères sinon il faudrait modifier la configuration pour une
structure en parallèle afin d’avoir moins de courant dans
chaque branche.
Robot Vierzon
19
Hacheur survolteur :
Afin d’augmenter la vitesse de rotation des moteurs on utilise un hacheur survolteur qui permet de
doubler la tension d’alimentation des moteurs en passant de 12 volt à 24 volt pour se faire on utilise
un convertisseur DC-DC de référence MC34063.
Afin d’avoir la tension voulue en sortie on calcule les
valeurs des différents composants après avoir mesuré la
valeur d’une inductance donnée de 200µH à partir de
cette valeur d’inductance on détermine les autres
composants à l’aide de la datasheet .
Ainsi on obtient :
Co=220µF
CT=1.5nF
A l’aide des données extraites de
la datasheet du MC34063 on
effectue les calculs afin de
déterminer les composants afin
d’avoir le fonctionnement voulu
pour le survolteur.
Des tests sont ensuite effectué
afin de vérifier le fonctionnement.
Pour finir le routage de la carte est
effectué.
Robot Vierzon
20
Bande blanche
réfléchissante
FP4 : Gérer l’arrivée La zone d’arrivée est marquée d’un scotch blanc réfléchissant au sol comme nous l’avons vu
précédemment. Arrivé à cet endroit le robot doit avoir un partie significative sur ce scotch c’est-à-
dire une bonne partie du robot doit se trouver dessus. Une fois au-dessus de sa zone d’arrivée, le
robot doit être totalement arrêté et détecter la ligne blanche ainsi que sa balise (afin d’être sûre de
ne pas être en camp adverse) et pourra alors éclater son ballon.
Afin de pouvoir gérer l’arrivée du robot à l’endroit où est situé la balise, et ainsi permettre l’arrêt
complet du robot, nous décidons de placer un capteur optique à l’avant du robot pour permettre la
détection de la ligne blanche. La tension de sortie délivrée Vcapteur augmentera lorsque la ligne
blanche est détectée par ce capteur.
Capteur optique (OPB704) :
RT : résistance qui limite le courant dans le transistor RD : résistance de polarisation de la diode Réfléchis grâce à la surface de la ligne blanche, les photons envoyés par la diode à infrarouge sont
par la suite captés par le phototransistor qui passe en régime saturé. C’est à ce moment-là que la
tension de sortie est nulle.
Lorsque le capteur n’est pas sur la bande réfléchissante, aucune lumière n’est capté par le transistor,
il se bloque, la tension de sortie devient égale à Vcapteur.
La valeur de Vcapteur sera ensuite convertie afin des pouvoir l’utiliser à l’aide du microcontrôleur et
permettre au robot de remplir toutes les conditions d’arrivées.
Position du robot Vcapteur
Sur la ligne VCC
Pas sur la ligne 0
VCC
VCC
RD RT
ID
Vcapteur
IC
Infrarouge
Robot Vierzon
21
FP5 : Communiquer Programmation
Le programme du robot va se décomposer en 4 grandes parties :
La commande des moteurs.
La détection d’obstacles.
L’évitement d’obstacles.
Le suivi de la balise.
Mais, dans un premier temps, il faut déterminer les ports utilisés et dans quel but.
Ports Utilisation
RA0 Capteur infrarouge gauche (analogique) RA1 Capteur infrarouge droit (analogique) RA2 Capteur balise droit RA3 Capteur balise gauche RA4 Enable LCD RA5 Données boussole RB0 Horloge boussole RB1 Enable boussole RC0 Ecriture / Lecture LCD RC1 Commande PWM moteur droit RC2 Commande PWM moteur gauche RC3 Capteur moustache droit RC4 Capteur moustache gauche RC5 Capteur moustache centre RC6 Capteur détection zone arrivée RC7 Commande moteur balon RD0 Sélection sens rotation moteur droit RD1 RD2 Sélection sens rotation moteur gauche RD3 RD4 à RD7 Données LCD
1) La commande des moteurs
La vitesse de rotation des deux moteurs va être gérée en PWM avec des rapports cycliques variant
suivant si l’on veut aller en ligne droite ou tourner. Ces rapports cycliques seront déterminés lors de
tests. Mais l’on peut d’ores et déjà envisager un rapport cyclique élevé lors d’une avance en ligne
droite, et une réduction des rapports cycliques des deux moteurs lors d’un virage. La réduction du
rapport cyclique du moteur lié à la roue intérieure au virage sera bien entendu nettement supérieure
à celui de la roue extérieure.
Il sera aussi possible d’inverser le sens de rotation des moteurs pour reculer si le robot se retrouve
contre un obstacle.
Robot Vierzon
22
2) La détection d’obstacles
La détection d’obstacles sera effectuée par la lecture des données provenant des capteurs
infrarouges placés sur le robot. Nous avons choisis de transmettre une valeur analogique, il faudra
donc utiliser les entrées CAN du PIC18F452.
Si la valeur lue passe sous le seuil des 40cm, la procédure d’évitement d’obstacle sera appelée. Dans
le cas contraire, la procédure de suivi de la balise sera appelée.
3) L’évitement d’obstacles
Cette fonction consistera à faire tourner le robot de manière à dévier le moins possible de la
trajectoire la plus courte pour atteindre la balise. Il devra tourner jusqu’à ce que l’obstacle ne soit
plus détecté, continuer sur ce cap durant un certain laps de temps (qui sera mesuré en pratique),
puis reprendre le cap de la balise. A ce moment-là, si un obstacle est à nouveau détecté, c’est qu’il
n’a pas gardé son cap suffisamment longtemps, il le reprendra donc à nouveau durant un laps de
temps.
Il faudra faire attention à ce que le robot ne s’éloigne pas de la balise suite à la détection de plusieurs
obstacles consécutifs ou d’une bordure par exemple. Pour cela, nous fixerons un angle maximum de
déviation par rapport à l’axe liant le robot à la balise de 90°. Si le robot franchit cette limite, il devra
tenter de contourner l’obstacle par l’autre côté. Cet angle pourra être ajusté en pratique si nous nous
rendons compte qu’il est trop restrictif.
4) Le suivi de la balise
Ici, le but sera, si aucun obstacle n’est détecté, de mettre le robot sur le cap de la balise. Ceci sera
réalisé grâce à deux capteurs infrarouges montés en différentiel. Il faudra donc utiliser le CAN du PIC
encore une fois.
Les ajustements de cap se feront de manière très douce, les rapports cycliques des deux moteurs
seront donc faiblement différents. Ceci afin de ne pas trop ralentir le robot et d’éviter une avance
saccadée ou en zigzag.
5) Fonctions optionnelles
Enfin, nous pensons à une fonction supplémentaire qui permettra de forcer le robot à suivre un
certain cap durant une certaine période au lancement. Cela permettra d’éviter un premier obstacle
suivant le parcours.
Robot Vierzon
23
Programme de détection d’obstacles :
Capteur droit <= CAN
Capteur gauche <= CAN
Capteur droit
<Vmin et Capteur
gauche <Vmin
Mode = 4
Capteur droit
<Vmin
Evitement gauche
Capteur gauche
<Vmin
Evitement droit
Appel fonction moteur
Mode = 1
Robot Vierzon
24
Programme de gestion du moteur :
Moteur Droit : Avant
Initialisation PWM
Moteur Gauche : Avant
Initialisation PWM
Mode == 1
?
Mode == 2
?
Moteur Droit : Avant
Initialisation PWM
Moteur Gauche : OFF
Mode == 3
? Moteur Droit : OFF
Moteur Gauche : Avant
Initialisation PWM
Mode == 4
?
Moteur Droit : Arrière
Moteur Gauche : Arrière
Robot Vierzon
25
Conclusion
Le choix des composants a été entièrement décidé mais il peut y avoir quelques modifications sur le
nombre de capteurs utilisé, par exemple.
Constitué ainsi, les différents fonctions et blocs permettent le bon fonctionnement, qui pour nous est
le plus optimal pour le moment et aussi de bien répondre au cahier des charges prenant en compte
toutes les contraintes.
Les différentes stratégies évolueront certainement car à postériori il est difficile de visualisé toutes
celles qu’on peut utiliser. Mais une fois le robot réalisé cela sera bien plus facile.
L’étude de quelques composants (jamais étudiés auparavant), comme pour la balise ou même
encore la boussole, a été un peu plus difficile bien que très importante à faire afin de bien pouvoir
comprendre le fonctionnement et donc de faire des choix efficaces.