| Enseignant: |
Jérôme Collin, responsable (local M-4013, poste 5060) |
|
| Support technique supplémentaire: | Laurent Tremblay (local M-4008, poste 7181) | |
| Chargés de laboratoire: | Section 1: |
Tristan Rioux (Mardi AM) Raphaël Tremblay (Vendredi AM) |
| Section 2: |
Laurent Bourgon (Mercredi AM) Meriam Ben Rabia (Vendredi PM) |
|
| Section 3: |
Romain Lebbadi-Breteau (Mardi PM) Paul Petibon (Jeudi PM) |
|
Épreuve finale
Chaque équipe dispose de deux robots, mais un seul sera sollicité pour l'épreuve. Cette dernière n'est pas une course. Aucun point ne sera attribué à la rapidité de travail du robot. Ce sont le respect des requis ainsi que la qualité des techniques utilisées qui importent. En cas d'erreur pendant l'exécution, une seule reprise sera autorisée.
Installé sur une table de 4′ x 8′, le parcours inclut trois chemins de ruban adhésif, chacun comportant trois symboles, deux marqueurs jaunes et deux marqueurs rouges. Des poteaux en aluminium de 2″ de diamètre seront aussi placés sur certains de ces marqueurs.
Déroulement de l’épreuve
Pour la première partie de l'épreuve, le robot devra évaluer les trois chemins. Dans un deuxième temps, il sera branché à un ordinateur et, via RS232, fera afficher un rapport sur le terminal.
Évaluation des chemins
Avant de commencer, l'évaluateur placera 0, 1 ou 2 poteaux sur un des chemins de son choix. Chaque poteau doit être placé et centré au-dessus d'un marqueur jaune.
Le robot est ensuite placé sur le chemin en respectant les contraintes suivantes :
Le centre de rotation du robot est au-dessus d'un des marqueurs jaunes (inoccupés) ou rouges.
Le corps du robot est parallèle au chemin de ruban noir.
Le nez du robot pointe vers l'intérieur de la table.
L’image suivante présente les 4 possibilités de placement sur un chemin.
Départ du robot
Une fois le robot placé, l'évaluateur le met sous tension. Le robot attend alors 2 secondes à ne rien faire, puis se met à avancer.
Sur son chemin, il rencontrera des symboles et possiblement des poteaux.
Lorsqu'il rencontre un symbole, il ne lui suffit pas de seulement le traverser et ensuite rejoindre la suite du chemin. Il doit aussi l'identifier.
Face à un poteau, le comportement du robot dépendra du dernier symbole identifié. Ci-dessous, les quatre comportements possibles en fonction des symboles et de la présence d’un poteau. S’il n’y a aucun poteau, le robot ne fait qu’identifier le symbole en poursuivant sa route.
Diode
À 10″ du poteau, le robot allume sa DEL en vert et arrête de bouger pendant 2 secondes. Il avance ensuite vers le poteau jusqu'à ce qu'il se trouve à 4″ de celui-ci puis s’arrête à nouveau.
Pendant ce déplacement de 6″ de long, la DEL doit progressivement passer du vert au rouge. C'est-à-dire que la DEL doit être d'une couleur variable dont la composition (rouge, vert) passe graduellement de (0, 100) à (100, 0) où 0 et 100 sont des pourcentages d'intensité. La progression doit être linéaire. Notez que l’utilisation d’une plage de valeurs allant de 0 à 100 n’est pas imposée et ne sert ici qu’à titre d’exemple.
Le robot attend ensuite que l'évaluateur retire le poteau. Pendant cette attente, il devra vérifier au moins 4 fois par seconde si le poteau est encore présent. Dès qu'il détecte que le chemin est libre, le robot éteint sa DEL, attend 2 secondes, puis se remet en marche.
Moteur
Le robot continue d'avancer et au moment qu'il le juge approprié, il s'écarte du chemin pour effectuer une manœuvre de contournement du poteau. Après le contournement, le robot doit regagner le chemin avant d'avoir atteint le prochain symbole.
Piézoélectrique
À 4″ du poteau, le robot s'arrête et émets 3 courts sons graves de 250 ms séparés de silences de 50 ms. Il laisse ensuite passer 2 secondes puis klaxonne à nouveau. Cette séquence se répète en boucle jusqu'à ce que le poteau soit retiré par l'évaluateur.
Pendant les pauses de 2 secondes, le robot doit vérifier au moins 4 fois par seconde si le poteau est encore présent. Dès qu'il détecte qu'il n'y a plus de poteau, le robot fait jouer une courte mélodie (environ 2 à 3 secondes) puis se remet en marche.
Interrupteur
Le robot s'arrête à 4″ du poteau et effectue la séquence suivante :
rotation antihoraire de 15°
rotation horaire de 30°
rotation antihoraire de 30°
rotation horaire de 30°
rotation antihoraire de 15°
L'évaluateur doit alors retirer le poteau et appuyer sur le bouton Interrupt pour dire au robot que le chemin est libre.
Lorsque le bouton a été appuyé, le robot attend 2 secondes, puis s'assure que le poteau a bien été retiré. Si c'est le cas, il poursuit son chemin. Sinon, il effectue à nouveau la séquence précédente et attend que l'évaluateur appuie sur le bouton à nouveau.
Fin du chemin et enregistrement
Lorsque le robot arrive au bout du chemin (marqueur rouge), il s'arrête et fait clignoter sa DEL à 2 Hz, alternant entre rouge et vert. À ce moment, l'évaluateur devra appuyer sur le bouton Interrupt ce qui indiquera au robot d'enregistrer, pour ce chemin en particulier, les informations suivantes :
La position de départ du robot
Chaque poteau détecté
Si le robot avait déjà en mémoire des informations pour ce chemin spécifique, celles-ci sont écrasées par les nouvelles données.
Dès l'enregistrement complété, le clignotement s'arrête pour laisser la DEL allumée en vert. L'évaluateur met alors le robot hors tension.
S'il reste des chemins à faire parcourir au robot, l'évaluateur place les poteaux et le robot sur le chemin suivant et on recommence la procédure. L'ordre d'évaluation des trois chemins est décidé par l'évaluateur.
Finalement, si les trois chemins ont été parcourus, on passe à la présentation du rapport.
Rapport
L'évaluateur branche le robot à un ordinateur puis lance l'application serieViaUSB. Le robot est ensuite mis sous tension.
Comme mentionné plus tôt, le robot ne fait rien durant les deux premières secondes au démarrage. En fait, durant ce délai il ne bouge pas, mais vérifie si on appuie sur son bouton Interrupt, ce que l'évaluateur devra faire pour signaler au robot d'envoyer son rapport par communication série (RS232).
L'affichage doit présenter en entête le nom de votre robot et votre numéro d'équipe. Le contenu de la table doit ensuite être dessiné. Il n'est pas nécessaire que le tout soit à l'échelle. Il suffit d'une représentation claire. On doit voir les trois chemins et les symboles. Il faut aussi voir l'emplacement des poteaux et les positions de départ du robot représenté comme suit:
(O) : poteau
>>> : robot orienté vers la droite
<<< : robot orienté vers la gauche
Voici un exemple de ce que pourrait avoir l'air le rapport :
Matériel à installer
Un support en bois sur lequel deux capteurs seront déjà installés devra être monté sur votre robot. Les capteurs sont :
capteur de distance GP2Y0A21YK0F
suiveur de ligne Maker Line
Le support devra être installé comme illustré ci-dessous.
Nous vous conseillons de faire une planification de vos branchements avant de commencer à travailler. Ceci pourrait vous éviter des problèmes en cours de développement et plus particulièrement lors de l’intégration des différentes parties de code qui composent votre programme.
Il n'est pas permis d'installer d'autres dispositifs électroniques ou éléments mécaniques sur le robot. De même, il n'est pas permis de modifier l’esthétisme du robot. L'objectif est de conserver l'équité entre les équipes et de concentrer les efforts sur la programmation telle qu'il se doit dans le cadre de ce cours.
Remarque importante
Les bits [4:7] du port B (broches 5, 6, 7 et 8) du ATmega324PA sont utilisés par le ATmega8 lorsque ce dernier programme le ATmega324PA lorsque la commande make install est lancée pour que l'exécutable sur le PC se retrouve en mémoire flash. Donc, si des périphériques branchés sur la carte mère utilisent ces 4 bits les plus significatifs du port B, ils peuvent nuire à la programmation de la carte mère (messages d'erreur sur PC). Il n'y a pas de solution simple à ce problème. Il est fort possible qu'on doive utiliser cette partie du port B. Dans ce cas, il faudra peut-être débrancher ces périphériques à chaque reprogrammation de la carte mère... Dans la mesure du possible, pour éviter cet inconvénient, n'utiliser ces entrées/sorties que si la situation le nécessite (parce que les autres ports sont déjà occupés par d'autres périphériques).