1.13k likes | 1.25k Views
ROBOT E = M6 2005-2006. RCVA N° inscrit : 79. Introduction.
E N D
ROBOT E = M6 2005-2006 RCVA N° inscrit : 79
Introduction L’année 2006 annonce la treizième édition de la Coupe de France de Robotique, qui se déroulera du 24 au 27 mai 2006 dans la Sarthe à la Ferté – Bernard. Ce concours a 13 ans d’existence, et rassemble un nombre important d’équipes formées d’étudiants d’université et de grandes écoles. Cette année le thème est le « Funny Golf ». Deux équipes, deux robots, s’affrontent pendant un match de 90 secondes. L’objectif : mettre le maximum de balle blanche dans ses propres trous, cependant attention aux balles noires. Certaines balles sont déjà présentent sur le terrain, mais des éjecteurs de balles sont disposés autour de l’air de jeux qui peuvent être activé par un contact électrique sur des totems situés sur le terrain et ainsi libérer d’autres balles. Ville d’Avray entame sa neuvième année consécutive dans ce concours. Pour 2006 s’est une équipe de 11 étudiants qui vont relever un défi technologique afin de construire un robot fiable et intelligent. L’équipe va concevoir, réaliser et développer aussi bien l’électronique, la mécanique que les programmes stratégiques.
Sommaire • diapositives • Introduction ………………………………………... 02 • La carte mère ……………………………………... 04 • La carte de puissance ……………………………. 37 • La carte d’interface ……………………………….. 59 • La carte mère 4 couches ………………………… 74 • Le programme …………………………………….. 91
Introduction Notre robot est composé de plusieurs cartes, la carte de puissance, la carte d’interface et la carte mère. Ce chapitre concerne la réalisation de la carte mère. Elle doit gérer plusieurs paramètres : • la stratégie • les déplacements du robot • le repèrage des balles et des totems • le ramassage le pillage et le dépôt des balles • le repèrage de l’adversaire • - l’interface de communication hommes/machine Nous avons dû concevoir la carte mère en essayant de prévoir les besoins futurs et les évolutions possibles.
I) Les échanges avec la carte mère La carte mère communique avec 2 autres cartes, la carte de puissance et la carte interface. Deux types d’échange sont prévus: Bus alimentation et bus des signaux numériques
1) Echange avec la carte de puissance La carte mère récupère les signaux de puissance de la carte de puissance, notamment les alimentations +5V, et +15V ainsi que les masses GND et GNDA. La carte mère envoie les ordres, les données des moteurs à la carte de puissance. Celle-ci va amplifier les signaux et les distribuer aux moteurs. -Brake_turbine (pour arrêter la turbine) -Signe_roue_D et Signe_roue_G (sens de rotation des roues) -Brake_roue (pour stopper les roues) -PWM_roue_G et PWM_roue_D (permet de commander la vitesse des moteurs) -PWM_turbine (pour alimenter les turbines) -Flag (on ne l’utilise pas, mais il a été prévu cf. carte de puissance)
2) Echange avec la carte d’interface La carte interface quant à elle permet de redistribuer les signaux de la carte mère vers l’élément concerné. Elle allège le câblage de la carte mère (cf. compte rendu carte d’interface). -Servo_VENT, Servo_AR, Servo_LG, Servo_entree, servo_LD, -Synchro -essuie_glace -limiteur -rampe 0 à 5 -Recepteur_presence -US_TOTEM -Puissance_turbine -SICK_BN
3) Les périphériques qui communiquent directement avec la carte mère Enfin, la carte mère communique directement avec certains composants tels que : -les lasers -le SICK_entrée -les SICKS_totems -les tétons -la tourelle -les US -la tirette -L’OMRON -Les commandes des amplis de puissance des roues
II) Les différents blocs 1) Le µcontrôleur central Le microcontrôleur utilisé est un ATMEL 89C51 RD2 en boîtier PLCC 44 broches. ->Famille Intel 8 bits noyau 80C52 -> 64 ko de mémoire Flash -> 2 ko de RAM -> 4 ports dont 2 ports P0 et P2 dédiés à l’adressage externe -> Mode 6 cycles avec quartz à 14.7456 Mhz -> 4 sorties PWM disponibles On appelle ce composant µcontrôleur central car il contient le programme avec la gestion du match. Le DATA BUS P0_central permet de transmettre des données entre plusieurs composants tels que le CPLD, les CAN, le PE12316... Ces données peuvent entrer en conflit, il faut donc se servir d’une méthode d’adressage externe (chaque fonction possède une ou plusieurs adresses qui leur permettent de communiquer avec le µContrôleur central). Pour avoir accès au DATA BUS, chaque fonction doit attendre que le µContrôleur central lui donne l’autorisation d’y accéder. Le micro peut contenir 2 Ko de RAM interne nécessaire aux variables déclarées dans le programme informatique. Au dela les données sont considérées comme externes et disponibles sur le port P0 et les adresses sur le port P2 soit 256 valeurs possibles pour l’adressage des circuits I/O.
-P0 est utilisé en entrée/sortie suivant les donnés par exemple en entrée quand les CANs lui renvoient des informations. -P1 est utilisé en sortie, il envoie les informations pour les moteurs par l’intermédiaire d’un connecteur à la carte de puissance. -P2 permet l’adressage externe de P2.0 à P2.4, alors que P2.7 CS_CF permet de sélectionner le PE12316 -P3 : de P3.2 à P3.5, le port est utilisé comme (entrée/sortie), le signal P3.6 est utiliser pour l’écriture WR et P3.7 pour la lecture RD -RD ; ce bit indique la lecture d’une adresse externe. -WR : ce bit indique l’écriture dans une adresse externe.
2) Le CPLD Fonction : Cette fonction sert à effectuer le décodage d’adresse évoqué précédemment. Elle s’articule tout simplement autour d’un CPLD du constructeur Cypress (CY7C341i). Toujours dans un souci de modularité et de simplicité, on utilise un composant programmable plutôt que d’utiliser de simples portes logiques qui surchargeraient la carte. PROBLEME DU ROUTAGE: Pour chaque bloc, la première chose à faire c’est le boîtier : Ici il a fallut dessiner le contour puis les 84 pattes en les espaçant de 0.1 Inch (mesures retrouvé dans la documentation constructeur).
Une fois le boîtier fini il faut créer le symbole que l’on va utiliser pour la connectique : Il faut ensuite relier le symbole au boîtier (assigner les pattes du symbole à celles du boîtier). En créant le symbole il ne faut pas oublier de nommer les 84 pattes pour pouvoir mieux s’y retrouver sur le schéma.
Une fois la connexion finie, le composant est prêt à être utilisé dans un schéma.
3) Les CAN Le robot est équipé de deux lasers, le laser bas pour repérer les balles sur le terrain, le laser haut pour le repérage des totems. Ces lasers permettent de renvoyer une information de distance sous forme d’une tension ou d’un courant analogique variant de 0 à 10V ou de 2mA à 24mA. Les lasers envoient des signaux analogiques alors que le microcontrôleur ne reçoit que les informations sous la forme d’un signal numérique 0-5V. C’est pour cela que l’on utilise des CAN (Convertisseur Analogique/Numérique) sur 12 bits. Par ailleurs un troisième CAN a été prévu pour un gyromètre, qui n’a pas été mis sur le robot. Ce dernier CAN devait être branché en bipolaire +ou – 10V. Nous utilisons des ADS7806P :
Les lasers fournissent une tension de 0 à 10V, alors que les CANs en mode unipolaire ne peuvent recevoir qu’une tension en 0-5V, il faut donc ajouter un pont diviseur de tension entre ces composants, de manière à diviser la tension du laser par deux. Enfin, les CAN sont utilisés en sortie parallèle afin de récupérer le port P0 en parallèle. Entrées : CS_CAN : bit de sélection de CAN, il permet d’accéder au DATA_BUS (entrée/sortie) Byte : bit permettant de sélectionner les 8 bits msb ou les 4 bits lsb. R/C : bit permettant d’autoriser une conversion (R/C=’0’) ou autorise une lecture de conversion (R/C=’1’). Sorties : P0_Central est le data bus qui va vers le microcontrôleur central, il permet à celui-ci de récupérer les conversions fournies par le CAN.
1 -> Début de conversion 2 -> Conversion 3 -> Lecture des msb 4 -> Lecture des lsb Quant le bit /CS=’0’, une conversion débute, le bit /Busy quant à lui est à ‘0’ le temps de la conversion. Si Byte=’0’ et /Busy=’1’ alors on lit les 8 msb. Si Byte=’1’ et /Busy=’1’ alors on lit les 4 lsb.
4) Le Buffer 74HCT573 Diodes diagnostique : Les diodes diagnostiques servent à afficher l’état du bus P0 du μ central on pourra ainsi renvoyer des informations tels que la position du robot en x puis y ou bien le nombre de balles que le robot pense avoir dans le réservoir. Toutes les informations numériques peuvent être affichées en une ou plusieurs fois sur les diodes diagnostiques.
Comme nous le remarquons nous avons utilisé un buffer entre les diodes et le bus P0, l’intérêt est double : - Le buffer permet de maintenir affiché la valeur de P0 à un instant t même si elle n’est plus présente à t + ε. On pourra ainsi lire une valeur sans bloquer l’évolution de P0. Le contrôle de l’instant de mémorisation se fait via CS_DIAG qui provient du CPLD qui est contrôlé par le μ central. - On aurait pu directement passer par le CPLD pour mémoriser l’état de P0. Néanmoins un bref calcul de l’intensité nécessaire pour allumer correctement les diodes : I = 8 x 30mA = 240mA. Une trop forte intensité en sortie du CPLD n’est pas recommandée. De plus les diodes risqueraient de s’allumer trop faiblement. Les diodes servent donc de diagnostique direct et en temps réel et évitent de renvoyer les informations au PC pour les analyses. Elles ont un objectif de débogage pendant la phase de conception, et normalement ne serviront pas en match.
5) Le PE12316 (Gestion des codeurs incrémentaux) a) Introduction Le PE12316 est un encodeur incrémental il permet de traiter les informations renvoyées par les Capteurs incrémentaux, de les transformer en une position de chaque roue. On n’utilise que les 16 premiers bits. On pourra ainsi après traitement connaître la position des deux roues et donc la position du robot. On pourra ainsi via une dérivation de la distance réguler la vitesse et savoir quel est la direction du robot. C’est le microcontrôleur qui réalise la conversion rotation → distance ainsi que après dérivation la vitesse. C’est ainsi qu’on maîtrise l’asservissement des moteurs.
b) Etude de la lecture des données On peut ainsi commander la lecture des données du PE 8 bits par 8 bits et canal par canal. Via les bits An qui sont relié au port P2 (0 : 2). On maîtrise la recopie ou non du signal sur P0 par l’entrée /RD qui est relié au port P3.6 du μ central et au CPLD. On remarque que par construction on ne connecte pas la broche A3 on utilisera donc le compteur en mode 16 bits ignorant les 8 bits MSB. Si on utilise le CF32006 la broche utilisée pour le bit A3 et marqué NC : not connected, en effet le CF32006 est un compteur 16 bits on n’a pas donc de possibilité d’utiliser les 8 MSB 16-23. On n’utilise que 2 des 3 voies possibles, on pourrait rajouter une troisième roue codeuse si nécessaire. * : Valeur par défaut fixée en interne si pin /A3 Non connectée.
c) Etude des signaux CHA et CHB Les capteurs incrémentaux délivrent chacun deux signaux CHA et CHB en quadrature de phase. Ces deux signaux nous permettent de connaître le sens de rotation des roues en observant l’avance ou le retard de CHA par rapport à CHB de ± Π/4 et on connaît la valeur de cette rotation en comptant le nombre d’imputions envoyées. Nous utiliserons le PE en mode 2 (M2 = ‘1’, M1 = ‘0’ et M0=‘1’), on pourra ainsi avoir des informations sur le sens et la valeur de rotation des roues. On peu noter que la valeur de la rotation évolue en temps réel sans l’intervention du μ contrôleur central.
d) Les résistances de Pull-Up On a utilisé des résistances de pull-up entre les codeurs et le PE12316 afin d’être sur des niveaux qu’on a en entrée du PE sur CHA et CHB et d’avoir des fronts propres. Cela est d’autant plus nécessaire que les valeurs de CHA et CHB et leurs calculs sont essentiels à l’estimation de la position du robot mais aussi de l’asservissement en vitesse de celui-ci.
6) Le MAX 235 Le MAX235 sert assurer la transmission des informations envoyées en séries entre le central RD2 et le PC ainsi que entre le μ tourelle et le pc. En effet le μ contrôleur utilise des niveaux TTL et la liaison série du PC : +-10V. Le MAX235 assure donc cette conversion. Observons le schéma d’implantation de ce composant :
Nous avons choisi la version 235 du MAXIM au lieu de la version 233 car nous avons besoin de deux transformations séries et non de une ce qui est le cas pour la version 233. On pourra ainsi avoir : -Sur le connecteur 1 une liaison au μ central ↔ PC -Sur le connecteur 2 une liaison au μ tourelle ↔ PC On pourra ainsi programmer au choix in-situ le μ central ou le μ tourelle en branchant le câble série sur le connecteur 1 ou 2. Par ailleurs 2 programmes diagnostic, permettent de récupérer les infos des 2 micro sur le PC. C’est ainsi qu’on peut récupérer un tableau de nombres, tracer une courbe de réponse d’un asservissement, visualiser l’état de la tourelle, représenter sur un terrain virtuel l’emplacement des balles et totems repérés par les lasers …
7) Le micro processeur 2051 Les servomoteurs sont commandés par un signal PWM, s’est le rapport cyclique de la commande qui fait varier l’angle d’ouverture du servomoteur. Pour la gestion des diverses commandes à envoyer aux servomoteurs nous allons utiliser un microcontrôleur 2051. Entrée : commandes servos (P1 du 2051) mot de 8 bits qui permet de fixer un angle d’ouverture. Sortie : PWM servos (P3 du 2051), 5 signaux rectangulaires périodiques.
8) Le micro processeur Tourelle Principe de la tourelle infrarouge : Une balise est positionnée sur le robot adverse. Notre tourelle infrarouge nous informe sur la position de l’adversaire, le nombre de récepteur détectant la balise nous renseigne sur la direction et la distance du robot. Cependant la distance n’est pas fiable à 100 %. La tourelle fonctionne avec une fréquence de 30kHz. Les 16 temics sont répartis en 2 groupes de 8 sur les deux buffers de la carte, le gauche et le droit.
Entrée : Connect_tourelle, octet venant de la tourelle qui indique quels sont les capteurs ‘éclairés par la balise Sortie : Po_tourelle, mot sur 8 bits, après traitement par le µc, qui envoie les informations distance et cap au CPLD.
I) La carte de puissance 1) Présentation La carte de puissance est un élément essentiel du robot. Elle doit adapter et redistribuer la tension de la batterie afin d'alimenter le robot. La tension de la batterie étant de l'ordre de 30V, il est nécessaire d'abaisser cette tension pour alimenter les composants numériques en 5v et les capteurs en 15v. La carte doit aussi fournir la puissance pour les moteurs des roues du robot à partir de commandes envoyées par la carte mère. La réalisation de cette carte n'est pas aisée car d'importants problèmes apparaissent rapidement: un espace réduit, l'accessibilité de certaines parties, les problèmes électromagnétiques dus aux forts courants...
2) Espace réduit L’espace réservé à l’électronique dans le robot est réduit à cause d'une mécanique difficile qui diminue l’espace déjà petit. Des modifications presque constantes du robot ont nécessité à plusieurs reprises de réadapter la position des composants sur la carte. Toutes ces évolutions pour obtenir une carte qui réponde a toutes les exigences. Une grande partie de la superficie de la carte est prise par les radiateurs qui servent à dissiper la chaleur des amplificateurs de puissance. La forme de la carte qui n'est pas rectangulaire est déterminée par la mécanique, l'emplacement de la batterie, l'arrêt d'urgence... L’espace en bas de la carte ne peut pas être exploité à cause des roues folles et des connecteurs.
3) Accessibilité Un autre paramètre à prendre en compte est l’accessibilité. Plusieurs parties de la carte doivent être accessibles à des endroits donnés. C’est le cas des interrupteurs et des DEL (5 au total) qui permettent d’alimenter les différentes parties. Ils doivent être accessibles par une trappe découpée dans la tôle ce qui implique de les placer au centre de la carte. Il faut aussi séparer l’interrupteur principal et le mettre en évidence pour les arbitres en cas de besoin. Les interrupteurs sont montés sur une petite carte à part fixée sur la carte de puissance par des entretoises. La batterie placée à l’arrière du robot doit se connecter facilement sur la carte. On utilise pour cela une prise rapide mais les pastilles sur la carte doivent être proches de la batterie et placées de telle sorte que le câble possède un accès direct. La carte doit pouvoir être démontée rapidement sans avoir à dessouder ou à démonter tout le robot. Il faut utiliser des connecteurs et les placer de façon à pouvoir les défaire aisément et ce, sans que les câbles traversent d’un bout à l’autre.
4) Problèmes physiques Lors de la réalisation de la carte, il faut faire face à différents problèmes physiques. La carte de puissance transporte de forts courants et à cause des moteurs on peut atteindre des courants maximums élevés au démarrage. Il faut alors des pistes larges qui rendent le routage plus difficile et diminuent la place possible pour les composants. Etant donné qu'il s'agit d'une carte double couche, il est nécessaire d'éviter de faire passer deux pistes l'une au-dessus de l'autre ce qui crée des capacités. A éviter aussi, les angles droits et les vias afin de garder des signaux les plus propres possibles. La carte comporte plusieurs masses : celle de la batterie, puis en sortie des trois convertisseurs DC/DC. Pour éviter les problèmes de masse, il faut toutes les relier entres elles en un point sur la carte (principe de l’étoile). On place aussi un condensateur de découplage à l’arrivée de la batterie sur la carte. Celui ci doit avoir une valeur importante et a donc une taille importante. Les signaux de sortie des convertisseurs DC/DC nécessitent de mettre un condensateur de lissage pour obtenir une allure de signal convenable.
II) Schémas fonctionnels 1) Niveau A0 Le niveau 0 représente les liaisons entre la carte de puissance et le reste du robot. A partir de ce schéma, il faut trouver les blocs fonctionnels qui vont utiliser et regrouper les signaux d’entrée et de sortie. Dans le principe, la carte mère envoie les ordres PWM des moteurs à la carte de puissance. Celle-ci va traiter ces signaux et délivrer la puissance adéquate aux moteurs. La carte de puissance distribue également l’alimentation du robot à partir de la batterie 30V.
2) Niveau A-1 Ce niveau représente le schéma fonctionnel des cartes de puissance. Ces cartes sont composées de 3 blocs principaux : interrupteurs, convertisseurs DC/DC et amplificateurs de puissance.
III) Schémas de routage 1) Schémas de câblage BLOC AMPLIFICATEURS DE PUISSANCE
Quelques règles de routage à respecter : ► Les pistes qui supportent des courants élevés doivent être les plus courtes possibles pour éviter les pertes par effet joules et donc les échauffements. ► La masse doit être la plus court possible pour éviter les pertes car tout le courant passe par la masse. ► Toutes les masses doivent être réunies en un même point. ► Moins il y a de vias, mieux c’est ! ► Espacer les LM18200 pour éviter des zones de températures trop élevées. ► La masse ne doit pas faire le tour de la carte. En effet une boucle de masse crée un champ magnétique néfaste pour les composants. ► Les signaux numériques ne doivent pas être routés sous les tracos sinon risque de perturbation. ► Ne pas mettre le pique de masse sous les interrupteurs !
IV) Choix technologiques 1) Le LM 8200 ► DEFINITION : La réalisation d'une carte de puissance robuste et suffisamment performante n'est pas une chose simple. Cela réclame en particulier le contrôle de la phase de commutation des transistors de puissance (sous peine d'échauffement de ces derniers et tous les problèmes qui en découlent), ce qui passe par une étude rigoureuse de leurs caractéristiques et une maîtrise de la sortie de la commande (pour éviter une configuration dangereuse du pont en H : typiquement en court-circuit). Concevoir et réaliser une carte de puissance opérationnelle et fiable, avec quatre transistors Mos canal N demande un investissement en temps important, or le temps fait toujours défaut à un club de robotique. Les progrès de l'électronique ont permis l’apparition des circuits de puissance intégrant à la fois le pont en H et son pilote. Nous utilisons un de ces circuit : le LM18200. Le LM18200 est un amplificateur regroupant un pont en H et son pilote de la marque National Semi-conducteur.
► CARACTERISTIQUES : Il possède la particularité d'être commandé en PWM (Pulse Width Modulation), c'est à dire que la valeur du courant de sortie dépend du rapport cycle du signal d'entrée. La source électrique provient de la batterie (~30 V). Le LM18200 délivre en continu un courant de 3A et peut atteindre une valeur maximale de 6A. Cependant, cette valeur maximale peut être débitée en continu si l'amplificateur est associé à un gros radiateur. - Vu interne d’un LM18200 -
Il est possible de relier les sorties des LM18200, mettant en parallèle les 2 composants pour pouvoir fournir deux fois plus de puissance au moteur sans griller un ampli. Cette astuce est utilisée pour fournir la puissance aux moteurs des roues. Grâce à ces amplificateurs, il est possible de faire tourner le sens de rotation des moteurs en agissant sur le niveau logique de la patte direction. Les entrées Brake, Direction et PWM viennent de la carte mère. Le thermal flag est lui envoyé vers la carte mère. Le connecteur de puissance récupère les signaux OUTPUT ainsi que le GND. - Principe de l’amplificateur -