RobotCompetition2014-1 : Différence entre versions
Ligne 33 : | Ligne 33 : | ||
== 2nde étape du projet : mise en place de l'environnement de programmation == | == 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 compatible avec les NXT (permettant ainsi de travailler plus efficacement et de potentiellement faire des programmes plus complexe qu'avec l'environnement de programmation graphique conçu pour les NXT). Il ne l'est cependant qu'à moitié pour les Ev3 puisque nous pouvons transférer un programme édité par Bricxcc sur la brique Ev3 mais cette dernière ne peut l'exécuter. | |
− | + | * 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. De plus, celui-ci ne semblait pas mettre à disposition des fonctions pour détecter les différents infrarouges indispensable à la réalisation du projet. | |
== Prise en main du logiciel de programmation graphique et première approche == | == 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 assembler 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é à un jeune âge). | |
− | + | * 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 et le rendre plus compréhensible pour le lecteur. | |
− | + | * Ici ce sont des "blocs", constitués eux-même d'un assemblage de blocs. Il est ainsi facile de créer un bloc nommé "chercher_balle" qui permet au robot de chercher la balle et de se diriger vers elle. Ceci 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 en ordre dans une boucle pour que l'on ait l'illusion que le robot est autonome. | |
[[Fichier:suivi ligne.mp4]] | [[Fichier:suivi ligne.mp4]] | ||
Ligne 46 : | Ligne 46 : | ||
= Fonctionnement mécanique = | = Fonctionnement mécanique = | ||
− | + | * Il est évident que pour programmer efficacement un robot il faut découper le code en plusieurs sous-codes appelés fonctions et les agencer selon certaines conditions. Dans cette partie nous allons vous présenter ces différentes fonctions dans des petites séquences vidéos. | |
== Avancer/ reculer == | == Avancer/ reculer == | ||
− | + | * Dans cette vidéo, nous voyons comment le robot effectue ses mouvements de translation et de rotation. On peut bien sur très facilement combiner translation ET rotation. | |
[[Média:translation_rotation.mp4]] | [[Média:translation_rotation.mp4]] | ||
Ligne 55 : | Ligne 55 : | ||
== Détection de la balle == | == Détection de la balle == | ||
− | + | * Ici le robot cherche la balle en s'orientant dans la même direction que celui-ci. | |
[[Média:detection_balle.mp4]] | [[Média:detection_balle.mp4]] | ||
Ligne 61 : | Ligne 61 : | ||
== Utilisation du capteur des couleurs == | == Utilisation du capteur des couleurs == | ||
− | + | * Le capteur de couleur permet au robot de ne pas sortir des limites du terrain. Il permet aussi, sur ordre de l'arbitre de se remettre en place sur le terrain pour un nouveau coup d'envoi. | |
[[Média:capteur_couleur_1.mp4]] | [[Média:capteur_couleur_1.mp4]] | ||
Ligne 67 : | Ligne 67 : | ||
== Utilisation de l'écran == | == Utilisation de l'écran == | ||
− | + | * Grâce à l'écran du robot Mindstorm Ev3, doté d'une résolution de 178*128 pixel, on peut afficher des images pré-enregistrer dans la brique, y afficher du texte qui peut être très utile lors de test des valeurs du capteur. Dans cette vidéo, il s'agit entre autre du capteur de proximité. | |
[[Média:diapo_ecran.mp4]] | [[Média:diapo_ecran.mp4]] | ||
Ligne 74 : | Ligne 74 : | ||
== Utilisation des hauts-parleurs == | == Utilisation des hauts-parleurs == | ||
− | + | * Le Mindstorm Ev3 est doté d'un haut parleur, qui émet des sons lors du téléversement de fichier-programme dans la brique. On peut aussi facilement enregistrer des sons pour les lire lors de l'exécution d'une action. Conjointement à l'affichage d'une "émotion" sur l'écran du robot. Cela donne vie au robot et il peut trouver une utilité dans l'aspect esthétique de ce dernier. | |
[[Média:exemple haut parleur.mp4]] | [[Média:exemple haut parleur.mp4]] | ||
Ligne 80 : | Ligne 80 : | ||
== Utilisation du capteur tactile / des boutons situés sous l'écran == | == Utilisation du capteur tactile / des boutons situés sous l'écran == | ||
− | + | * Le robot est doté d'un capteur de pression, qui renvoie la valeur 1 ou 0, selon que celui-ci soit enfoncé ou pas. Le robot peut savoir ainsi, s'il a bien attrapé la balle ou pas. | |
− | + | * Il y a des touches de directions situés sous l'écran pour naviguer dans l'interface de la brique. Le bouton en haut à droite permet de sortir d'un menu et de revenir en arrière. Dans le menu principal il permet d'afficher l'invite pour éteindre la brique. | |
[[Média:capteur_tactile.mp4]] | [[Média:capteur_tactile.mp4]] | ||
Ligne 87 : | Ligne 87 : | ||
== Utilisation du capteurs de proximité == | == Utilisation du capteurs de proximité == | ||
− | + | * Le capteur de proximité ressemble à une tête, probablement un clin d’œil des développeurs du projet, celui devant permettre au robot de voir. | |
Celui-ci est primordial car il permet au robot de voir un obstacle devant lui : robot, mur ou quoi que ce soit lui permet de s'arrêter au niveau de celui-ci sans rentrer en collision. | Celui-ci est primordial car il permet au robot de voir un obstacle devant lui : robot, mur ou quoi que ce soit lui permet de s'arrêter au niveau de celui-ci sans rentrer en collision. | ||
== Le système de propulsion de la balle == | == 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. | |
[[Média:exemple propulsion.mp4]] | [[Média:exemple propulsion.mp4]] | ||
− | + | * Reste ensuite à construire un système pour contenir la balle le temps de la rotation et réussir à la propulser avec beaucoup de force. | |
= Bluetooth = | = Bluetooth = |
Version du 9 avril 2015 à 12:40
Sommaire
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és 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 par l'aspect constructif, la programmation et l'application rapide et concrète du projet étudié.
- En 1ère séance, les professeurs nous ont expliqués ce que nous allions devoir réaliser : 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. Ce 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 affecter 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.
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 de fréquences différentes), 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 adverse et y envoyer la balle, 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, et de lire les valeurs des capteurs qui donne vie au robot. Nous avons donc à notre disposition : - 3 moteurs. - Différents capteurs : couleur, proximité, capteurs de pression, infrarouge. - 1 brique programmable.
Le robot : Lego Mindstorm Ev3
Dans un premier temps, par manque cruel d'inspiration et ne sachant pas par où commencer, nous nous sommes référés au manuel fourni dans la boîte et avons choisi de construire le robot se déplaçant avec des "chenilles". Nous avons ensuite disposés les capteurs de manière à ce qu'ils ne se masquent pas entre eux, tout en leur permettant de fonctionner correctement et 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 compatible avec les NXT (permettant ainsi de travailler plus efficacement et de potentiellement faire des programmes plus complexe qu'avec l'environnement de programmation graphique conçu pour les NXT). Il ne l'est cependant qu'à moitié pour les Ev3 puisque nous pouvons transférer un programme édité par Bricxcc sur la brique Ev3 mais cette dernière ne peut l'exécuter.
- 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. De plus, celui-ci ne semblait pas mettre à disposition des fonctions pour détecter les différents infrarouges indispensable à la réalisation du projet.
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 assembler 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é à un jeune âge).
- 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 et le rendre plus compréhensible pour le lecteur.
- Ici ce sont des "blocs", constitués eux-même d'un assemblage de blocs. Il est ainsi facile de créer un bloc nommé "chercher_balle" qui permet au robot de chercher la balle et de se diriger vers elle. Ceci 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 en ordre dans une boucle pour que l'on ait l'illusion que le robot est autonome.
Fonctionnement mécanique
- Il est évident que pour programmer efficacement un robot il faut découper le code en plusieurs sous-codes appelés fonctions et les agencer selon certaines conditions. Dans cette partie nous allons vous présenter ces différentes fonctions dans des petites séquences vidéos.
Avancer/ reculer
- Dans cette vidéo, nous voyons comment le robot effectue ses mouvements de translation et de rotation. On peut bien sur très facilement combiner translation ET rotation.
Média:translation_rotation.mp4
Détection de la balle
- Ici le robot cherche la balle en s'orientant dans la même direction que celui-ci.
Utilisation du capteur des couleurs
- Le capteur de couleur permet au robot de ne pas sortir des limites du terrain. Il permet aussi, sur ordre de l'arbitre de se remettre en place sur le terrain pour un nouveau coup d'envoi.
Utilisation de l'écran
- Grâce à l'écran du robot Mindstorm Ev3, doté d'une résolution de 178*128 pixel, on peut afficher des images pré-enregistrer dans la brique, y afficher du texte qui peut être très utile lors de test des valeurs du capteur. Dans cette vidéo, il s'agit entre autre du capteur de proximité.
Utilisation des hauts-parleurs
- Le Mindstorm Ev3 est doté d'un haut parleur, qui émet des sons lors du téléversement de fichier-programme dans la brique. On peut aussi facilement enregistrer des sons pour les lire lors de l'exécution d'une action. Conjointement à l'affichage d'une "émotion" sur l'écran du robot. Cela donne vie au robot et il peut trouver une utilité dans l'aspect esthétique de ce dernier.
Média:exemple haut parleur.mp4
Utilisation du capteur tactile / des boutons situés sous l'écran
- Le robot est doté d'un capteur de pression, qui renvoie la valeur 1 ou 0, selon que celui-ci soit enfoncé ou pas. Le robot peut savoir ainsi, s'il a bien attrapé la balle ou pas.
- Il y a des touches de directions situés sous l'écran pour naviguer dans l'interface de la brique. Le bouton en haut à droite permet de sortir d'un menu et de revenir en arrière. Dans le menu principal il permet d'afficher l'invite pour éteindre la brique.
Utilisation du capteurs de proximité
- Le capteur de proximité ressemble à une tête, probablement un clin d’œil des développeurs du projet, celui devant permettre au robot de voir.
Celui-ci est primordial car il permet au robot de voir un obstacle devant lui : robot, mur ou quoi que ce soit lui permet de s'arrêter au niveau de celui-ci sans rentrer en collision.
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.
Bluetooth
Test match
Articles connexes
Bibliographie
Voir aussi
Articles connexes
Liens externes
- Site officiel lego mindstorm
- Téléchargements de l'IDE - Integrated Developpement Environnement, l'environnement de programmation graphique officiel. Celui utilisé lors de ce bureau d'étude.