Cours:RobotArexxCPLD
Les informations contenues dans cette page peuvent encore évoluer. Pensez à la consulter régulièrement
Notre objectif dans ce projet est de réaliser un robot mobile capable de suivre une ligne. Sa particularité est qu'il est commandé à l'aide d'un composant en logique programmable plutôt qu'un microcontrôleur.
Sommaire
Cahier des charges, fonctionnement :
Le robot sera construit sur la base d'un châssis AREXX. Ce châssis comporte :
- deux roues motrices et une roue folle. Chaque roue motrice est commandée par un moteur à courant continu (disposés eux aussi sur le châssis). Pour faire virer le robot, il faudra donc faire varier la vitesse d'une roue par rapport à l'autre,
- un support de piles destiné à recevoir les batteries qui apporteront l'énergie au robot
- un interrupteur permettant de mettre le robot sous tension
- des connecteurs qui permettent de véhiculer des signaux électriques entre les différents PCB (cartes électroniques)
Sur ce châssis, viendront se connecter deux cartes électroniques (PCB) :
- la "carte capteur" qui recevra le(s) capteur(s) destiné(s) à détecter la ligne à suivre,
- la "carte gestion" qui recevra le CPLD renfermant la logique de commande,
montage des cartes capteur et gestion sur le châssis
Votre travail :
Votre travail se déroulera sur les dernières semaines du 2ème semestre et sur l'inter-semestre dans le cadre des modules de "projet tuteuré" (2ème semestre) et du module d'Etudes et Réalisations (Inter-semestre) . Il s'effectuera en groupe et consistera à :
- définir la structure des cartes "capteur" et "gestion" et la faire valider par votre tuteur,
- réaliser les cartes électroniques,
- assembler le robot,
- programmer le CPLD,
- effectuer les tests et valider le fonctionnement du robot,
- confronter votre robot aux robots des autres binômes dans lors d'un challenge qui aura lieu le mardi 25 juin.
Méthode de travail et évaluation :
Le travail s'effectuera en trois phases :
- dans un premier temps vous devez réaliser l'analyse fonctionnelle, les schémas électroniques des cartes et réfléchir à la structure logique à implanter dans le CPLD.
- durant l'inter-semestre qui se déroulera sur 5 journées vous réaliserez les cartes électroniques et la programmation du CPLD .
- le dernier jour du projet, un challenge permettra de valider les performances de votre robot.
Vous serez évalué :
- sur un dossier décrivant l'analyse fonctionnelle, les schémas électroniques des cartes et réfléchir à la structure logique à implanter dans le CPLD
- ce dossier sera à remettre le premier jour de l'inter-semestre.
- à l'inter-semestre sur vos réalisations (cartes électroniques et programme CPLD)
- à la fin de l'inter- semestre en fonction des performances de votre robot, qui seront évaluées lors du challenge.
Le challenge :
Les tests feront l'objet d'un challenge
Ce challenge proposera plusieurs épreuves destinées à évaluer la capacité des robots. Les épreuves seront les suivantes :
- un déplacement en ligne droite (sans suivre de ligne) avec arrêt du robot lors du franchissement d'une ligne d'arrivée
- le robot sera placé à 1 mètre de la ligne d'arrivée
- la ligne sera matérialisée par un scotch noir fixé au sol (environ 8cm)
- le robot ne devra pas franchir la ligne sous peine de pénalité (5 secondes ajouté au temps)
- une pénalité supplémentaire de 5 secondes sera prononcée si le robot ne s'arrête pas
- le robot sera disqualifié s'il ne passe pas sur la ligne d'arrivée (qui fera 40cm de large)
- réalisation de deux tours du robot sur lui-même avec arrêt au franchissement d'une ligne
- un cercle noir de diamètre 80 cm est matérialisé au sol
- une bande noire placée à l'extérieure du cercle matérialise le top tour (elle fera 40cm de long pour 2cm de large)
- le robot est placé juste après le top tour, à l'extérieur du cercle (la distance par rapport au centre du cercle est libre)
- le robot doit faire le tour du cercle et passer 2 fois sur le top tour
- il doit alors s'arrêter dans un délai de 5 secondes maximum
- des pénalités de 5 secondes seront accordées :
- si le robot ne passe pas sur le top tour
- a chaque fois que le robot touche le cercle noir
- si le robot ne s'arrête pas dans le temps imparti
- le robot est disqualifié s'il franchi entièrement le cercle.
- déplacement du robot par télécommande sur un parcours déterminé (voir explications dans le paragraphe "contraintes techniques")
- le robot se déplacera dans des couloirs dont la largeur sera 2 fois la taille du robot
- 4 robots seront disposés de façon symétrique sur le plateau de jeu
- il faudra rejoindre la zone d'arrivée située au milieu du plateau le plus rapidement possible
- les couloirs seront disposés de façon symétrique dans un soucis d'équité
- une pénalité de -1 point sera prononcée pour chaque contact
- les robots se verront attribués dans l'ordre d'arrivée 25/10/5/0 points
- un système de poules avec phase finale permettra de classer les concurrents.
- déplacement autonome du robot sur un parcours défini par une ligne (suiveur de ligne)
- Une ligne noire de largeur variable (minimum 2,5cm) sera tracée sur le sol.
- Le robot devra s'arrêter dès qu'il ne se trouve plus sur la ligne (10 points de pénalités dans le cas contraire)
- Le robot marquera 1 point tous les 10cm parcouru
- Un étudiant par équipe pourra en cas de besoin déplacer légèrement le robot pour la modique pénalité de 5 points.
- Tout robot terminant le circuit aura une bonification de 10 points.
- Les 5 robots les plus rapides à terminer le circuit auront une bonification de 25/15/10/5/2 points.
- Un classement sera effectué après 3 manches sur des circuits éventuellement différents.
Les groupes et les tuteurs
GROUPE TP | Groupe d'étudiants | Tuteur |
---|---|---|
1A | B. Jacquot | |
1B | F. Sisternas | |
2A | W. Kutyla | |
2B | G. Millon |
Contraintes techniques :
Certaines solutions vous sont imposées, notamment en fonction des composants disponibles en magasin. Vous serez donc tenu de respecter les contraintes suivantes:
Le châssis
Il supporte :
- les quatre accumulateurs qui constituent alimentation électrique du robot. La tension aux bornes des accumulateurs varie de 4,5V à 5,5V en fonction de leur charge.
- les moteurs deux qui fonctionnent sous 5V et entraînent les roues motrices ( le courant Moteur est de 400 mA lorsque son rotor est bloqué et de 50 à 60 mA à vide).
- un interrupteur qui permet d'assurer la mise sous tension
La carte "capteur"
- Sa forme est imposée ainsi que l'emplacement et l'implantation des connecteurs (voir les fichiers ci dessous)
- Elle sera alimentée en 3,3V
- Elle supportera le(s) capteur(s) et les connecteurs destinés à transmettre les informations à la carte "gestion",
- Il faudra prévoir un étage permettant de mettre en forme le signal issu de chaque capteur. On utilisera pour cela un comparateur dont le seuil de basculement sera variable pour s'adapter à l'environnement (couleur du sol, couleur de la piste, luminosité...)
La carte "gestion"
Elle supportera :
- le CPLD (EPM3064ALC44-10N) qui doit être alimenté en 3,3V
- un oscillateur à quartz (quartz horloger à la fréquence de 32,768 kHz) et d'un diviseur de type 4060. Cet oscillateur fournira deux fréquences : du 32,768 kHz destiné à la Modulation de Largeur d'Impulsion (MLI) et une autre fréquence à définir, comprise entre 20Hz et 100Hz, destinée à servir d'horloge pour le CPLD
- un connecteur destiné à la programmation du CPLD
- un module XBee pour la réception des signaux issus de la télécommande
- les transistors (MOS) qui permettront de commander les moteurs
- un régulateur de 3,3V pour alimenter les circuits intégrés ( Broche BP du régulateur de tension : il est conseillé d'utiliser une capacité de 100nF)
- Sa forme est imposée ainsi que l'emplacement et l'implantation des connecteurs (voir les fichiers ci dessous)
- Pour faire les tests de programmation, vous disposerez d'un kit de développement (carte DE-10) et du logiciel Quartus
La Télécommande:
La télécommande sera réalisée à partir de modules Xbee (alimentés en 3,3V) qui assureront une liaison série sans fil. L'un d'eux sera utilisé en émetteur à partir d'une télécommande (qu'il faudra réaliser) et l'autre en récepteur (il sera implanté sur le robot). Ces modules se configurent à l'aide du logiciel XCTU. Ils seront utilisés en mode "recopie des entrées" afin que les informations de direction envoyées par la télécommande soient directement transmises au robot.
Le principe de configuration est détaillé sur cette page.
https://alselectro.wordpress.com/2013/09/28/xbee-direct-inputoutput-s1-series-digital-input/
Vous pouvez utiliser jusqu'à 8 entrée/sortie sur les modules Xbee. Chaque broche étant configurable individuellement, on peut imaginer avoir 6 broches en entrée sur la télécommande et 2 broches en sortie (et inversement sur le récepteur !).
On pourra donc éventuellement mettre des leds sur la télécommande pour avoir un retour visuel sur le fonctionnement du robot.
La télécommande doit permettre de guider le robot dans un labyrinthe. Vous pouvez très bien vous contenter de 2 boutons (chaque bouton faisant tourner une roue), ou des solutions plus complexes en utilisant des joysticks par exemple (dans ce cas vous pourrez utiliser un µcontroleur attiny841 qui vous servira de convertisseur analogique numérique), en ayant comme contrainte l'utilisation des modules Xbee juste en recopie de signal logique (maximum 8 bits).
Assemblage :
- les cartes "gestions", "châssis" et "capteur" seront superposées et reliées entre elles par des connecteurs
- la position et l'implantation des connecteurs sur le PCB qui se trouve sur le châssis vous imposeront de respecter la même implantation et les mêmes connexions sur les cartes "gestions" et "capteur"
Conseils pour le Routage :
- vérifiez la cohérence entre les broches des connecteurs des différentes cartes (capteur, châssis, gestion)
- Broche BP du régulateur de tension : il est conseillé d'utiliser une capacité de 100nF
- Placer des condensateurs de 100 nF aux bornes des circuits intégrés
Programmation du CPLD
La programmation d'un CPLD se fait par un connecteur appelé JTAG. Le CPLD étant fabriqué par Altera, on utilise un programmateur appelé USB Blaser capable de se connecter d'un côté au PC et de l'autre à la carte sur laquelle se trouve le CPLD (par le connecteur JTAG).
Composants utilisés
Nom | Type | Boîtier | Librairie Eagle | Référence eagle | Documentation | Fournisseur | Référence |
---|---|---|---|---|---|---|---|
CNY70 | capteur IR réflectif | cny70.lbr | CNY70(Vishay) | CNY70 datasheet | Farnell | ||
LM339D | 4-comparateurs | SOIC14 (CMS) | linear | LM339D ou TLC339D | lm339 datasheet | ||
LM311D | comparateur | SOIC8 (CMS) | linear | LM311D | lm311 datasheet | ||
Led 3mm | |||||||
Resistance | CMS (1206) | ||||||
Potentiomètre | 10k | pot | TRIM_EU-PTSPIN | ||||
CPLD | EPM3064ALC44-10N | PLCC44 | alteraLib.lbr | datasheet MAX3000b | |||
Quartz horloger | 32,768 kHz | crystal | CRYSTALTC26V | ||||
4060D | Diviseur de fréquence | CMS | 40XX | 4060D | 4060 datasheet | ||
AP131-33WG-7 | Régulateur 3,3V (SOT25) | CMS | v-reg | TS520533 | AP131 datasheet | ||
ML10 | Connecteur JTAG | con-harting-ml | ML10 | Doc ci-dessus | |||
SI 2336DS | Transistor NMOS | transistor small signal | BSS123 | datasheet | |||
CGRM4001-G | Diode de roue Libre | diode | CGRM4001-G | datasheet | |||
XBee | traversant | adafruit | XBEE | Xbee et atmega | |||
DTS-6 | bouton traversant | Switch-tact.lbr | |||||
DTSM-6 | bouton CMS | Switch-tact.lbr | |||||
BP1 | bouton traversant 12*12mm | Bplib.lbr |