RobotCompetition2014-1
Sommaire
- 1 Introduction : cadre de travail et présentation du bureau d'étude
- 2 Fonctions du programme
- 3 Bibliographie
- 4 Voir aussi
Introduction : cadre de travail et présentation du bureau d'étude
- Le bureau d'étude est une initiation à la pédagogie par projet dont nous allons être confronté lors de notre cycle ingénieur.Une problématique, des outils adaptés et une "étude" du problème sont nécessaires pour répondre à des objectifs fixés en début de semestre. Nous avons choisi le bureau d'étude IMA parce que nous étions intéressé par le domaine de l'électronique et des systèmes embarqués. C'était donc le bureau d'étude qui paraissait le plus intéressant (aspect construction, programmation et application rapide et concrète du projet étudié.
- En 1ère séance, les professeurs nous ont expliqués ce que nous allons devoir faire : faire faire jouer une partie de football à des robots Mindstorm, pour cela il fallait répartir le travail en plusieurs sous-groupes qui s'occupent respectivement d'une partie d'un ensemble qui permettra à des robots de jouer de manière autonome sur un terrain. Chaque binôme aura donc pour tâche de s'occuper :
- d'une cage de buts (2 au total)
- de robots de compétition (4 au total)
- d'un arbitre
- et d'un robot ramasseur de balle
Après tirage au sort, nous nous sommes vus affectés de la tâche de programmer un robot compétiteur. Nous nous sommes par ailleurs portés volontaires pour l'essai de la dernière génération de robot lego Mindstorm : la série Ev3. Média:boite_mindstormev3.jpeg
Nous avons donc pour cahier de charge le suivant :
- détecter la balle (muni de led infrarouge), les cages de buts (muni de led infrarouge), les limites du terrain (ruban adhésifs colorés), robots adverses
- avancer vers la balle (avec des moteurs)
- s'orienter vers la cage de but adverses et envoyer la balle vers la cage de but adverse, tout en sachant que lorsqu’un robot réceptionne une balle, il ne peut plus effectuer de translation
Pour cela notre robot est équipé de différents capteurs et moteurs ainsi qu'une panoplie de briques (de construction technique) et un "centre nerveux" appelé "brique programmable", permettant de contrôler les différents moteurs vitesse, et lire les valeurs des capteurs pour donner vie au robot. Nous avons donc à notre disposition : - 3 moteurs - différents capteurs : couleur, proximité, capteurs de pression - 1 brique programmable
Le robot : Lego Mindstorm Ev3
Dans un premier temps, par manque cruel d'inspiration et ne sachant pas par où commencer, on s'est référé au manuel fourni dans la boîte et avons choisi de construire le robot se déplaçant avec des "chenilles", et avons ensuite disposé les capteurs de manière à ce qu'ils ne se masquent pas tout en leur permettant de fonctionner correctement et pouvoir permettre ainsi au robot d'interagir avec la balle.
2nde étape du projet : mise en place de l'environnement de programmation
Durant 3 séances après une première construction de notre robot, nous avons cherché à le faire vivre. Nous avons donc essayé d'installer le logiciel Bricxcc sous les conseils avisés des responsables du BE. Bricxcc est un projet permettant de programmer la brique Ev3 avec un langage de programmation proche du C. Après plusieurs tentatives d'installations, nous nous sommes rendus compte que le logiciel Bricxcc ne serait probablement pas notre environnement de programmation. En effet si Bricxcc est totalement et entièrement compatible avec les NXT (permettant ainsi de travailler plus efficacement et de potentiellement faire des choses très difficiles avec l'environnement de programmation graphique conçu pour les NXT); il ne l'est qu'à moitié pour les Ev3, on peut transférer un programme édité par Bricxcc sur la brique Ev3 mais cette dernière ne peut exécuter ce bout de programme. Nous avons eu aussi l'occasion de découvrir un autre logiciel appelé RobotC, qui comme son nom l'indique permet de programmer la brique EV3 en langage C par des fonctions plus complexes permettant plus de possibilité quand à la réalisation du projet. Cependant la version d'essai ne durant que dix jours nous n'avons pas pu essayer beaucoup de fonctions. Il faudra donc réessayer de programmer pour notamment différencier les différents infrarouges détectés
Prise en main du logiciel de programmation graphique et première approche
Une étape incontournable lors du projet est de prendre en main le logiciel de programmation adapté. La programmation se présente comme une interface où l'on doit coller des blocs et de manière très réductrice, on peut dire qu'il s'agit d'un puzzle à assembler (le logiciel est destiné à de très jeunes enfants). Un point important à noter est que l'on peut par analogie à un langage de programmation en "texte", créer des fonctions pour ainsi factoriser le code. Ici ce sont des "blocs", constitués eux-même d'un assemblage de blocs et ainsi, il est aisé de créer un bloc nommé chercher_balle qui permet au robot de chercher la et se diriger vers elle. cela est particulièrement intéressant dans la mesure où le travail devant être fait se résumera à créer des blocs de fonctions exécutant une tâche individuelle bien précise et les agencer dans un ordre dans une boucle pour que l'on ait l'illusion que le robot est autonome.
Fonctions du programme
Il est évidemment que pour programmer efficacement un robot, il faut découper le code en fonctions et agencer ces fonctions selon des conditions. Nous allons vous présenter ces différentes fonctions dans cette partie.
Propulsion du robot
Avancer/reculer
Tourner
Avancer / tourner
Détection de la balle
Utilisation du capteur des couleurs
Utilisation de l'écran
Utilisation des hauts-parleurs
Utilisation du capteur tactile
Utilisation du capteurs de proximité
== Utilisation du
Le système de propulsion de la balle
Nous avons décidé de réaliser un système de propulsion basé sur un mécanisme appelé bielle-manivelle, qui permet de convertir un mouvement de rotation en mouvement de translation. Ce mouvement de translation servira par la suite d'envoyer la balle dans la cage de but adverse. Nous avons utilisé un engrenage et quelques tiges. Il a fallut aussi solidifier et construire autour du piston pour permettre à ce dernier de bien se déplacer sans se désaxer.
Reste ensuite à construire un système pour contenir la balle le temps de la rotation et réussir à la propulser avec beaucoup de force.
Articles connexes
- Lego Mindstorms
- RCX Command Center
- pages des langages NBC / NQC / NXC