BE 2016-2017
Sommaire
Objectif à atteindre
Comme pour les saisons précédentes vous devez concevoir des robots pour concourir dans un jeu de balle.
Le terrain peut être marqué comme sur le schéma ci-dessous. Durant une manche les joueurs ne peuvent pas sortir du cadre principal. Les bords du terrain sont inclinés pour que la balle revienne vers la zone de jeu. Les lignes permettent de marquer le centre du terrain et les zones de garage des robots. Les robots devront pouvoir distinguer deux types de lignes, peu importe les couleurs.
Une manche est décomposée en plusieurs étapes.
- Le robot ramasseur est invité à sortir de son garage pour aller positionner la balle au centre du terrain. Cette invitation peut se faire après un but ou manuellement en début de partie. Quand la balle est correctement placée le robot ramasseur se gare et prévient les robots joueurs que le jeu peut démarrer.
- Les deux robots joueurs sortent de leur garage et vont chercher la balle en la repérant par leurs capteurs infrarouges. Si un robot capture la balle il demande au but adverse d'allumer sa balise infrarouge. Il essaye alors d'envoyer la balle dans le but. Au moment du tir, il permet au but d'éteindre sa balise.
- Soit le tir est raté et les robots continuent à tenter d'attraper la balle.
- Soit le tir est réussi et le but concerné le confirme, les robots joueurs vont se garer et le robot ramasseur entre en action. Les buts sont chargés d'afficher le score. Pour qu'un but soit marqué, il suffit que la balle rentre dans le but. Le sol du but est en pente pour que la balle ressorte automatiquement.
Une partie est constituée de plusieurs manches.
Matériel à votre disposition pour les robots
Vous devez construire votre robot à base de micro-contrôleur ATMega. Par rapport à la saison précédente vous avez plus de possibilités pour construire ce robot. Les possibilités sont classées de la plus simple à la plus complexe.
- Vous pouvez partir d'un des robots construits lors de la saison précédent. Ces robots ne sont pas forcément totalement fonctionnels mais les parties déjà réalisées peuvent vous faire gagner du temps pour avancer plus sur la programmation du robot.
- Vous pouvez construire un robot à partir d'un des deux chassis proposés, utiliser un Arduino Mega et concevoir un bouclier pour cet Arduino comportant des emplacements pour les divers composants nécessaires (contrôleur moteur, détecteur ultrason, détecteur de lignes, etc).
- Vous pouvez aussi fabriquer votre propre chassis avec deux plaques de plexiglass et y intégrer deux moto-réducteurs et leurs roues ainsi qu'une roue folle. Pour le micro-contrôleur vous pouvez aussi vous passer de l'Arduino Mega et concevoir votre propre circuit intégré à base de micro-contrôleur ATMega328p et de contrôleur moteurs TB6612FNG. Même les détecteurs de lignes peuvent être construits à partir de composants électroniques de base. Seul le sonar ultrason est trop complexe pour être conçu à partir des composants de base.
- Si vous aimez les défis vous pouvez aussi construire un robot avec un moto-réducteur de meilleure qualité et avec une carte électronique réalisée uniquement avec des composants électroniques de surface.
Les montages photographiques ci-dessous présente les éléments permettant de construire un robot sans trop souffrir et les composants de base pour construire un robot plus optimisé et personnalisé.
Des dispositifs mécaniques, comme une pince, peuvent être réalisés en utilisant des servo-moteurs et des pièces en plexiglas ou en MDF découpés à l'aide de la découpeuse laser du Fabricarium.
Pour les fixations vous avez de la visserie (vis, écrous, entretoises).
Votre robot doit aussi repérer les balises infrarouge de la balle et des buts. Vous utiliserez des phototransistors IR pour cela. Le robot doit, enfin, être capable de communiquer avec les autres robots et les buts. La communication se fera via le protocole ZigBee que vous utiliserez comme une communication série par radio-fréquences.
Matériel à votre disposition pour les buts
Les buts sont constitués :
- d'une cage de but à réaliser, par exemple, en plexiglas avec la découpeuse laser ;
- d'une balise infrarouge pouvant être activée à la demande ;
- d'un détecteur de passage de la balle (par phototransistor par exemple) ;
- d'un afficheur 7 segments pour le score.
Consultez les bureau d'études de l'an passé pour comprendre comment réaliser une balise infrarouge avec un micro-contrôleur. Cette année la fonctionnalité de clignotement de la balise à basse fréquence n'est pas nécessaire. Par contre il vous est demandé de gérer un afficheur 7 segments et un bouclier de communication par radio. Le micro-contrôleur de l'an passé, l'ATtiny85, ne sera pas suffisant pour gérer toutes les fonctionnalités du but de cette année. Vous utiliserez donc un Arduino Uno.
Logiciels à utiliser
Pour concevoir un schéma propre du câblage de votre robot vous pouvez utiliser fritzing. Tous les composants de votre robot ne sont pas modélisés dans fritzing. Voici une liste de composants supplémentaires mis au points par des élèves en IMA4 (Julie Debock, Hugo Vandenbunder et Sylvain Verdonck) et revus par les encadrants du bureau d'études :
- détecteur ultrason : Fichier:UltrasonicSensor HCSR04.zip
- détecteur de ligne : Fichier:LineSensor Sparkfun.zip
- capteur de couleurs : Fichier:ColorSensor Adafruit TCS34725.zip
- contrôleur de moteurs : Fichier:MotorDriver Pololu md08a.zip
Pour la conception de circuits imprimés nous vous recommandons le logiciel eagle ou le précédent.
Pour la découpe laser de nombreux utilisateurs utilisent inkscape.
Pour la conception 3D solidwork est très utilisé. Vous pouvez tenter freeCAD si vous cherchez un logiciel plus libre.
Pour le développement avec les plateformes Arduino, utilisez l'environnement du même nom. Si la programmation C++ vous fait peur, n'hésitez pas à ajouter l'outil ardublock à cet environnement.
Pour vous aider dans la conception des circuits imprimés nous vous proposons des circuits modélisés avec fritzing que vous pourrez adapter à vos robots. Ces circuits ont été ébauchés par les élèves IMA4 sus-cités et lourdement modifiés par les encadrants du bureau d'études.
Un premier circuit vous donne un exemple de circuit pour les capteurs de l'avant du robot : Fichier:Robot capteur.zip.
Un second circuit de type bouclier Arduino permet d'éviter tous les câbles entre l'Arduino et les contrôleurs de moteurs : Fichier:Robot bouclier.zip. Ce circuit est prévu pour 4 moteurs, les binômes avec des chassis bi-moteurs devront le simplifier.
Répartition des tâches
Nous n'imposons pas de répartition rigide des tâches. Pour qu'une démonstration puisse se faire en fin de bureau d'étude il faut au moins deux robots joueurs, deux cages de buts et un robot ramasseur. Bien entendu plusieurs parties peuvent avoir lieu en même temps.
Fonctionnement de la cage de but
Deux événements peuvent faire agir la cage de but :
- une balle pénètre dans la cage ;
- un message est envoyé à la cage par un robot.
Pour détecter une balle entrant dans la cage, le plus simple est d'y fixer un phototransistor infrarouge avec un cache adapté pour ne détecter la balle que lorsqu'elle se trouve dans la cage.
Lorsque que la balle est détectée il faut incrémenter le score (ce score est initialisé à zéro lors de la réinitialisation de l'Arduino). Il faut ensuite envoyer un message aux robots pour que les robots joueurs aillent se garer et que le robot ramasseur se mette en action. Le format des messages est a déterminer globalement, doit y figurer un champ destination qui permet de cibler un acteur précis et aussi un champ données pour préciser le message.
Quand un message est envoyé spécifiquement à la cage, c'est à dire qu'elle reconnait son identifiant dans le champs destination, elle doit activer ou arrêter sa balise infrarouge. Mettons que la balise est activée si la donnée est 1 et arrêtée si la donnée est 0.
Le câblage peut se faire en utilisant des plaques à essai ou en concevant un circuit imprimé avec le logiciel eagle.
Robot ramasseur de balle
Un robot ramasseur de balle est constitué comme suit :
- un châssis roulant, un contrôleur pour chaque paire de moteurs, un Arduino Mega2560 ;
- un détecteur ultrason pour éviter les collisions ;
- trois détecteurs de ligne pour suivre efficacement les lignes au sol ;
- des phototransistors infrarouges pour repérer la balle infrarouge ;
- un système de pince basé sur un servo-moteur pour capturer la balle ;
- un bouclier XBee pour communiquer avec les autres acteurs.
Le robot ramasseur de balle peut être activé soit manuellement par un bouton, soit sur réception d'un message lui étant destiné.
Une fois activé le robot se promène en changeant de direction jusqu'à ce qu'il détecte la balle infrarouge. Il se dirige alors vers la balle et la capture avec sa pince.
Le robot se remet à se promener comme précédemment et s'arrête lorsqu'il détecte une ligne de la croix centrale. Il remonte cette ligne dans un sens et il analyse la prochaine intersection avec ses trois capteurs. S'il ne se trouve pas au centre du terrain il se retourne pour remonter la ligne dans l'autre sens. Une fois au centre du terrain, il lâche la balle et va se garer.
Il ne lui reste alors plus qu'à envoyer un message aux robots joueurs pour qu'ils jouent une manche.
Pour détecter les lignes les capteurs doivent être séparés de l'épaisseur des lignes au sol. Ainsi quand le capteur du milieu perdra la ligne, un des deux autres capteurs devrait l'apercevoir. De cette façon le robot saura par quel coté il perd la ligne et pourra tourner en sens inverse pour la retrouver sur le capteur central. Vous pouvez utiliser le temps entre deux pertes de ligne pour avoir une idée de la courbure de la ligne et lancer le robot dans une trajectoire courbe plutôt que rectiligne.
Pour détecter la balle infrarouge plusieurs phototransistors installés dans des caches réduisant leur angle de détection sont nécessaires. A vous de trouver la meilleure répartition sur le châssis pour les détecteurs. Vous pouvez aussi utiliser un plateau rotatif réalisé avec un servo-moteur pour augmenter le champ de vision.
Les éléments de la pince sont à réaliser par impression 3D ou découpe laser de plexiglas.
Robot compétiteur
Un robot compétiteur est constitué comme suit :
- un châssis roulant, un contrôleur pour chaque paire de moteurs, un Arduino Mega2560 ;
- un détecteur ultrason pour ne pas rentrer dans les obstacles ;
- trois détecteurs de ligne pour suivre efficacement les lignes au sol ;
- des phototransistors infrarouges pour repérer la balle infrarouge et les buts ;
- un système de pince basé sur un servo-moteur pour capturer la balle ;
- un système d'éjection de la balle pour tirer ;
- un bouclier XBee pour communiquer avec les autres acteurs.
Un robot compétiteur est activé par un message du robot ramasseur de balle. Il sort alors de son garage pour rentrer sur le terrain.
Une fois sur le terrain le robot s'y promène en changeant de direction lorsqu'il arrive en limite du terrain jusqu'à ce qu'il détecte la balle infrarouge. Il se dirige alors vers la balle et tente de la capturer avec sa pince. Il demande alors au but adverse d'activer sa balise IR.
Le robot tourne jusqu'à trouver le but adverse et tire pour envoyer la balle dans le but. Après avoir tiré, il demande au but adverse d'arrêter sa balise IR.
Si le robot reçoit un message signalant qu'un but a été marqué, il va se garer. Pour cela il parcourt le terrain jusqu'à trouver une ligne de l'aire de jeu. Il suit cette ligne jusqu'à trouver l'intersection qui correspond à son garage.
Pour détecter la balle infrarouge plusieurs phototransistors installés dans des caches réduisant leur angle de détection sont nécessaires. A vous de trouver la meilleure répartition sur le châssis pour les détecteurs. Vous pouvez aussi utiliser un plateau rotatif réalisé avec un servo-moteur pour augmenter le champ de vision.
Les éléments de la pince sont à réaliser par impression 3D ou découpe laser de plexiglas ou bois. Quand la pince se referme elle doit occulter la balle pour que le robot puisse détecter la balise du but.
Réalisations des binômes
Numéro | Elèves | Tâches | Page |
---|---|---|---|
Binôme 1 | Prénom1 Nom1 / Prénom2 Nom2 | Type de robot | Binôme 1 2016/2017 |
Binôme 2 | Prénom1 Nom1 / Prénom2 Nom2 | Type de robot | Binôme 2 2016/2017 |
Binôme 3 | Prénom1 Nom1 / Prénom2 Nom2 | Type de robot | Binôme 3 2016/2017 |
Binôme 4 | Prénom1 Nom1 / Prénom2 Nom2 | Type de robot | Binôme 4 2016/2017 |
Binôme 5 | Prénom1 Nom1 / Prénom2 Nom2 | Type de robot | Binôme 5 2016/2017 |
Binôme 6 | Prénom1 Nom1 / Prénom2 Nom2 | Type de robot | Binôme 6 2016/2017 |
Binôme 7 | Prénom1 Nom1 / Prénom2 Nom2 | Type de robot | Binôme 7 2016/2017 |
Binôme 8 | Prénom1 Nom1 / Prénom2 Nom2 | Type de robot | Binôme 8 2016/2017 |
Binôme 9 | Prénom1 Nom1 / Prénom2 Nom2 | Type de robot | Binôme 9 2016/2017 |
Binôme 10 | Prénom1 Nom1 / Prénom2 Nom2 | Type de robot | Binôme 10 2016/2017 |
Binôme 11 | Prénom1 Nom1 / Prénom2 Nom2 | Type de robot | Binôme 11 2016/2017 |