<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://peip-ima.plil.fr/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ltombazz</id>
	<title>Wiki de bureau d&#039;études PeiP - Contributions de l’utilisateur [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://peip-ima.plil.fr/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ltombazz"/>
	<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php/Sp%C3%A9cial:Contributions/Ltombazz"/>
	<updated>2026-11-10T01:42:47Z</updated>
	<subtitle>Contributions de l’utilisateur</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=4302</id>
		<title>RobotCompetition2014-1</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=4302"/>
		<updated>2015-05-28T11:30:20Z</updated>

		<summary type="html">&lt;p&gt;Ltombazz : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction : cadre de travail et présentation du bureau d&amp;#039;étude =&lt;br /&gt;
&lt;br /&gt;
* Le bureau d&amp;#039;étude est une initiation à la pédagogie par projet dont nous allons être confronté lors de notre cycle ingénieur et même dans notre avenir professionnel. Une problématique, des outils adaptés et une &amp;quot;étude&amp;quot; du problème sont nécessaires pour répondre à des objectifs fixés en début de semestre. Nous avons choisi le bureau d&amp;#039;étude IMA parce que nous étions intéressés par le domaine de l&amp;#039;électronique et des systèmes embarqués. C&amp;#039;était donc le bureau d&amp;#039;étude qui paraissait le plus intéressant par l&amp;#039;aspect constructif, la programmation et l&amp;#039;application rapide et concrète du projet proposé.&lt;br /&gt;
C&amp;#039;était donc le bureau d&amp;#039;étude qui paraissait le plus intéressant par l&amp;#039;aspect construction, programmation ainsi qu&amp;#039;application rapide et concrète du projet proposé.&lt;br /&gt;
&lt;br /&gt;
* En 1ère séance, les enseignants 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&amp;#039;occupent respectivement d&amp;#039;une partie du projet. Ce qui, une fois rassemblé, permettra à des robots de jouer de manière autonome sur un terrain. Il y&amp;#039;a donc un travail individuel pour chaque groupe et une mise en commun nécessaire. Chaque binôme aura donc pour tâche de s&amp;#039;occuper soit :&lt;br /&gt;
** d&amp;#039;une cage de buts (2 au total)&lt;br /&gt;
** de robots de compétition (4 au total)&lt;br /&gt;
** d&amp;#039;un arbitre&lt;br /&gt;
** et d&amp;#039;un robot ramasseur de balle (2 au total)&lt;br /&gt;
&lt;br /&gt;
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&amp;#039;essai de la dernière génération de robot lego Mindstorm : la série Ev3.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boite_mindstormev3.jpeg|300px]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc pour cahier de charge le suivant :&lt;br /&gt;
&lt;br /&gt;
* Détecter et différencier : la balle (muni de leds infrarouges), les cages de buts (muni de led infrarouge de fréquences différentes), les limites du terrain (ruban adhésifs de différentes couleurs ainsi que les robots adverses;&lt;br /&gt;
* Avancer vers la balle (avec des moteurs);&lt;br /&gt;
* Capturer la balle en utilisant le troisième moteur disponible);&lt;br /&gt;
* S&amp;#039;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 doit plus effectuer de translation.&lt;br /&gt;
&lt;br /&gt;
Pour cela notre robot est bien sur équipé de différents capteurs et moteurs ainsi qu&amp;#039;une panoplie de briques lego (de construction technique) et un &amp;quot;centre nerveux&amp;quot; appelé &amp;quot;brique programmable&amp;quot;, permettant de contrôler les différents moteurs, de lire les valeurs des capteurs et lui permettre d&amp;#039;interagir avec son environnement, c&amp;#039;est-à-dire les robots et le terrain.&lt;br /&gt;
&lt;br /&gt;
En résumé, Nous avons donc à notre disposition :&lt;br /&gt;
&lt;br /&gt;
- 3 moteurs;&lt;br /&gt;
&lt;br /&gt;
- 4 capteurs : couleur, proximité, tactile et infrarouge;&lt;br /&gt;
&lt;br /&gt;
- 1 brique programmable.&lt;br /&gt;
&lt;br /&gt;
- un set de construction de robot composé de briques lego techniques&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le robot : Lego Mindstorm Ev3 ==&lt;br /&gt;
Dans un premier temps, par manque d&amp;#039;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&amp;#039;ils ne se masquent pas entre eux, tout en leur permettant de fonctionner correctement et d&amp;#039;interagir avec la balle.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:robot_prototype1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== Seconde étape du projet : mise en place de l&amp;#039;environnement de programmation ==&lt;br /&gt;
* Les trois séances suivantes nous avons cherché à faire &amp;quot;vivre&amp;quot; le robot EV3. Nous avons essayé d&amp;#039;installer le logiciel Bricxcc sous les conseils avisés des responsables du bureau d&amp;#039;étude. Bricxcc est un projet permettant de programmer la brique Ev3 avec un langage de programmation proche du C. Après plusieurs tentatives d&amp;#039;installations, nous nous sommes rendus compte que le logiciel Bricxcc ne serait probablement pas notre environnement de programmation.&lt;br /&gt;
* 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&amp;#039;avec l&amp;#039;environnement de programmation graphique conçu pour les NXT). Il ne l&amp;#039;est cependant qu&amp;#039;à moitié pour les Ev3 puisque nous pouvons transférer un programme édité par Bricxcc sur la brique Ev3 mais cette dernière ne peut pas l&amp;#039;exécuter.&lt;br /&gt;
* Nous avons eu aussi l&amp;#039;occasion de découvrir un autre logiciel appelé RobotC, qui comme son nom l&amp;#039;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&amp;#039;essai ne durant que dix jours nous n&amp;#039;avons pas pu essayer beaucoup de fonctions, ni réaliser un travail approfondi avec le logiciel. De plus, celui-ci ne semblait pas mettre à disposition des fonctions pour détecter les différents infrarouges indispensable à la réalisation du projet.&lt;br /&gt;
&lt;br /&gt;
== Prise en main du logiciel de programmation graphique et première approche ==&lt;br /&gt;
* 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&amp;#039;on doit assembler des blocs et de manière très réductrice, on peut dire qu&amp;#039;il s&amp;#039;agit d&amp;#039;un puzzle à assembler (le logiciel étant destiné à un public de jeune âge).&lt;br /&gt;
* Un point important à noter est que l&amp;#039;on peut par analogie à un langage de programmation en &amp;quot;texte&amp;quot;, créer des fonctions pour ainsi factoriser le code et le rendre plus compréhensible pour le lecteur.&lt;br /&gt;
* Ici ce sont des &amp;quot;blocs&amp;quot;, constitués eux-même d&amp;#039;un assemblage de blocs. Il est ainsi facile de créer un bloc nommé &amp;quot;chercher_balle&amp;quot; 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&amp;#039;on ait l&amp;#039;illusion que le robot est autonome.&lt;br /&gt;
&lt;br /&gt;
[[Média:suivi ligne.mp4]]&lt;br /&gt;
&lt;br /&gt;
= Fonctionnement mécanique =&lt;br /&gt;
&lt;br /&gt;
* Il est évident que pour programmer efficacement un robot il faut pouvoir découper le code en plusieurs sous-codes appelés fonctions et les agencer selon certaines conditions (exemple : si..sinon...fin_si) . Dans cette partie nous allons vous présenter ces différentes fonctions dans des petites séquences vidéos.&lt;br /&gt;
&lt;br /&gt;
== Avancer/ reculer ==&lt;br /&gt;
* Dans cette vidéo de démonstration, nous voyons comment le robot effectue des mouvements basiques de translation et de rotation. On peut bien sur très facilement combiner translation ET rotation.&lt;br /&gt;
&lt;br /&gt;
[[Média:translation_rotation.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Détection de la balle ==&lt;br /&gt;
&lt;br /&gt;
* Ici le robot cherche la balle en s&amp;#039;orientant dans la même direction que celui-ci.&lt;br /&gt;
&lt;br /&gt;
Voici le programme correspondant au mouvement. &amp;#039;&amp;#039;&amp;#039;Il convient cependant de bien correspondre la position des branchements capteurs à celle indiquée au logicielle&amp;#039;&amp;#039;&amp;#039;, au risque de rencontrer des bugs.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:detecter balle.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:detection_balle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur des couleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le capteur de couleur permet au robot de ne pas sortir des limites du terrain. Il permet aussi, sur ordre de l&amp;#039;arbitre de se remettre en place sur le terrain avant un nouveau coup d&amp;#039;envoi.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_couleur_1.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation de l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Grâce à l&amp;#039;écran du robot Mindstorm EV3, doté d&amp;#039;une résolution de 178*128 pixels, il est possible d&amp;#039;afficher des images pré-enregistrées dans la brique et aussi d&amp;#039;y  afficher du texte qui peut être très utile lors de test des valeurs du capteur. Dans cette vidéo, il s&amp;#039;agit entre autre du capteur de proximité.&lt;br /&gt;
&lt;br /&gt;
[[Média:diapo_ecran.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilisation des hauts-parleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le Mindstorm Ev3 est doté d&amp;#039;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&amp;#039;exécution d&amp;#039;une action. Conjointement à l&amp;#039;affichage d&amp;#039;une &amp;quot;émotion&amp;quot; sur l&amp;#039;écran du robot, cela donne vie au robot et on peut trouver une utilité dans l&amp;#039;aspect esthétique de ce dernier.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple haut parleur.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur tactile / des boutons situés sous l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Le robot est doté d&amp;#039;un capteur de pression qui renvoie la valeur 1 ou 0 respectivement si celui-ci est enfoncé ou non. Le robot peut savoir ainsi, s&amp;#039;il a bien attrapé la balle.&lt;br /&gt;
* Il y a des touches de directions situés sous l&amp;#039;écran pour naviguer dans l&amp;#039;interface de la brique. Le bouton en haut à droite permet de sortir d&amp;#039;un menu et de revenir en arrière. Dans le menu principal il permet d&amp;#039;afficher l&amp;#039;invite d&amp;#039;extinction de la brique.&lt;br /&gt;
* Dans cet exemple, le robot s&amp;#039;axe vers la balle, se dirige vers elle et dès qu&amp;#039;il y a contact le robot s&amp;#039;arrête.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_tactile.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteurs de proximité ==&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
Celui-ci est primordial car il permet au robot de voir un obstacle devant lui : robot, mur ou quoi que ce soit d&amp;#039;autre. Ce capteur permet de s&amp;#039;arrêter au niveau de l&amp;#039;obstacle en évitant toute collision. Le bureau d&amp;#039;étude défini d&amp;#039;ailleurs qu&amp;#039;il faut éviter les contacts, ceux-ci occasionnant une usure prématurée du robot.&lt;br /&gt;
&lt;br /&gt;
== Le système de propulsion de la balle ==&lt;br /&gt;
&lt;br /&gt;
* 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 un mouvement de translation. Ce mouvement de translation servira par la suite à envoyer la balle dans la cage de but adverse.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
Voici le programme qui correspond à ce mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Moteur propulsion balle.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple propulsion.mp4]]&lt;br /&gt;
&lt;br /&gt;
* Reste ensuite à construire un système pour contenir la balle le temps de la rotation et réussir à la propulser avec le maximum de puissance possible.&lt;br /&gt;
&lt;br /&gt;
= Test match =&lt;br /&gt;
Nous n&amp;#039;avons pas pu effectuer de test de match, car chacun des groupes finissait de réaliser son robot le jour, de la soutenance vidéo. Il faudrait aussi, imposer comme condition que le premier robot étant certain d&amp;#039;avoir capturé la balle, envoie un ordre au robot adverse de s&amp;#039;immobiliser jusqu&amp;#039;à ce qu&amp;#039;il tire avant de reprendre la balle, en cas de non but; ceci pour qu&amp;#039;il n&amp;#039;y ait bataille de robot.&lt;br /&gt;
&lt;br /&gt;
= Problèmes rencontrés =&lt;br /&gt;
Au cours de notre étude, nous avons rencontrés beaucoup de difficultés :&lt;br /&gt;
* Premièrement : le robot Mindstorm Ev3 est le modèle le plus récent, donc le projet n&amp;#039;a pas assez de recul, les autres groupes ont utilisé les robots Mindstorm NXT et ont disposé du logiciel de programmation Bricxcc, langage utilisé lors des années précédentes et aussi très abouti, car permettant de faire plus de choses que ne le permet le logiciel graphique Lego Mindstorm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Construction mécanique du robot : nous avons également eu des difficultés lors de la construction mécanique du robot ; celui-ci doit être stable et équilibré, embarquer plusieurs capteurs et moteurs, ceux-ci ne devant pas interférer entre eux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Pour ce qui est de la partie logicielle, 2 à 3 séances sont nécessaires pour prendre en main le logiciel. Ensuite il faut réfléchir et comprendre la logique de ce logiciel de programmation graphique. Il y a quelques manipulations à effectuer pour importer des briques (cela sert à rendre compatible avec le EV3 un capteur infrarouge fabriqué pour les NXT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Twiki : Pour ce qui est du twiki, il a fallu modifier d&amp;#039;autres twiki pour en voir la syntaxe et comprendre comment cette dernière fonctionne dans les twiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Il n&amp;#039;est cependant pas possible de discriminer les différentes fréquences des signaux infrarouges (celles des buts et celui de la balle) avec le logiciel graphique. Ce qui rend le bureau d&amp;#039;étude impossible avec le robot EV3 et le système de programmation proposé par LEGO.&lt;br /&gt;
&lt;br /&gt;
= Conclusion : retours sur objectifs =&lt;br /&gt;
&lt;br /&gt;
Par rapport aux objectifs dont nous nous sommes fixés en début d&amp;#039;étude, nous avons réalisé la construction du robot que ce soit sur l&amp;#039;aspect construction mécanique, celui est stable au niveau des déplacement, cependant, il faudra améliorer le système de capture de la balle avant tir vers la cage de but. Quant à la partie logicielle, il est aisé de créer des programmes effectuant la plupart des tâches exigées par le BE mais nous n&amp;#039;avons pas encore résolu le problème qui est de différencier les signaux infrarouge de la balle et de la cage de but.&lt;br /&gt;
&lt;br /&gt;
Nous avons pu, grâce à ce BE, découvrir ce à quoi nous serions confrontés dans notre cursus ingénieur, et d&amp;#039;ailleurs nous avons plutôt aimé, construire le robot avec des legos. Nous nous orientons d&amp;#039;ailleurs vers ce domaine d&amp;#039;étude l&amp;#039;an prochain.&lt;br /&gt;
&lt;br /&gt;
Nous tenons aussi à remercier nos responsables pour leur patience et leur aide tout au long du BE.&lt;br /&gt;
&lt;br /&gt;
= Voir aussi =&lt;br /&gt;
&lt;br /&gt;
== Articles connexes ==&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms Ev3]&lt;br /&gt;
&lt;br /&gt;
== Liens externes ==&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/ Site officiel lego mindstorm]&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/downloads Téléchargements de l&amp;#039;IDE] - Integrated Developpement Environnement, l&amp;#039;environnement de programmation graphique officiel. Celui utilisé lors de ce bureau d&amp;#039;étude.&lt;br /&gt;
&lt;br /&gt;
* [http://bricxcc.sourceforge.net/ Site du projet Bricxcc] - à suivre pour voir l&amp;#039;avancement du projet Bricxcc pour les Ev3&lt;br /&gt;
* [http://www.robotc.net/download/lego/ Site de téléchargement du logiciel de programmation alternatif RobotC]&lt;/div&gt;</summary>
		<author><name>Ltombazz</name></author>
	</entry>
	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3945</id>
		<title>RobotCompetition2014-1</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3945"/>
		<updated>2015-05-10T21:03:25Z</updated>

		<summary type="html">&lt;p&gt;Ltombazz : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction : cadre de travail et présentation du bureau d&amp;#039;étude =&lt;br /&gt;
&lt;br /&gt;
* Le bureau d&amp;#039;étude est une initiation à la pédagogie par projet dont nous allons être confronté lors de notre cycle ingénieur et même dans notre avenir professionnel. Une problématique, des outils adaptés et une &amp;quot;étude&amp;quot; du problème sont nécessaires pour répondre à des objectifs fixés en début de semestre. Nous avons choisi le bureau d&amp;#039;étude IMA parce que nous étions intéressés par le domaine de l&amp;#039;électronique et des systèmes embarqués. C&amp;#039;était donc le bureau d&amp;#039;étude qui paraissait le plus intéressant par l&amp;#039;aspect constructif, la programmation et l&amp;#039;application rapide et concrète du projet proposé.&lt;br /&gt;
C&amp;#039;était donc le bureau d&amp;#039;étude qui paraissait le plus intéressant par l&amp;#039;aspect construction, programmation ainsi qu&amp;#039;application rapide et concrète du projet proposé.&lt;br /&gt;
&lt;br /&gt;
* En 1ère séance, les enseignants 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&amp;#039;occupent respectivement d&amp;#039;une partie du projet. Ce qui, une fois rassemblé, permettra à des robots de jouer de manière autonome sur un terrain. Il y&amp;#039;a donc un travail individuel pour chaque groupe et une mise en commun nécessaire. Chaque binôme aura donc pour tâche de s&amp;#039;occuper soit :&lt;br /&gt;
** d&amp;#039;une cage de buts (2 au total)&lt;br /&gt;
** de robots de compétition (4 au total)&lt;br /&gt;
** d&amp;#039;un arbitre&lt;br /&gt;
** et d&amp;#039;un robot ramasseur de balle (2 au total)&lt;br /&gt;
&lt;br /&gt;
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&amp;#039;essai de la dernière génération de robot lego Mindstorm : la série Ev3.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boite_mindstormev3.jpeg|300px]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc pour cahier de charge le suivant :&lt;br /&gt;
&lt;br /&gt;
* Détecter et différencier : la balle (muni de leds infrarouges), les cages de buts (muni de led infrarouge de fréquences différentes), les limites du terrain (ruban adhésifs de différentes couleurs ainsi que les robots adverses;&lt;br /&gt;
* Avancer vers la balle (avec des moteurs);&lt;br /&gt;
* Capturer la balle en utilisant le troisième moteur disponible);&lt;br /&gt;
* S&amp;#039;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 doit plus effectuer de translation.&lt;br /&gt;
&lt;br /&gt;
Pour cela notre robot est bien sur équipé de différents capteurs et moteurs ainsi qu&amp;#039;une panoplie de briques lego (de construction technique) et un &amp;quot;centre nerveux&amp;quot; appelé &amp;quot;brique programmable&amp;quot;, permettant de contrôler les différents moteurs, de lire les valeurs des capteurs et lui permettre d&amp;#039;interagir avec son environnement, c&amp;#039;est-à-dire les robots et le terrain.&lt;br /&gt;
&lt;br /&gt;
En résumé, Nous avons donc à notre disposition :&lt;br /&gt;
&lt;br /&gt;
- 3 moteurs;&lt;br /&gt;
&lt;br /&gt;
- 4 capteurs : couleur, proximité, tactile et infrarouge;&lt;br /&gt;
&lt;br /&gt;
- 1 brique programmable.&lt;br /&gt;
&lt;br /&gt;
- un set de construction de robot composé de briques lego techniques&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le robot : Lego Mindstorm Ev3 ==&lt;br /&gt;
Dans un premier temps, par manque d&amp;#039;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&amp;#039;ils ne se masquent pas entre eux, tout en leur permettant de fonctionner correctement et d&amp;#039;interagir avec la balle.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:robot_prototype1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== Seconde étape du projet : mise en place de l&amp;#039;environnement de programmation ==&lt;br /&gt;
* Les trois séances suivantes nous avons cherché à faire &amp;quot;vivre&amp;quot; le robot EV3. Nous avons essayé d&amp;#039;installer le logiciel Bricxcc sous les conseils avisés des responsables du bureau d&amp;#039;étude. Bricxcc est un projet permettant de programmer la brique Ev3 avec un langage de programmation proche du C. Après plusieurs tentatives d&amp;#039;installations, nous nous sommes rendus compte que le logiciel Bricxcc ne serait probablement pas notre environnement de programmation.&lt;br /&gt;
* 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&amp;#039;avec l&amp;#039;environnement de programmation graphique conçu pour les NXT). Il ne l&amp;#039;est cependant qu&amp;#039;à moitié pour les Ev3 puisque nous pouvons transférer un programme édité par Bricxcc sur la brique Ev3 mais cette dernière ne peut pas l&amp;#039;exécuter.&lt;br /&gt;
* Nous avons eu aussi l&amp;#039;occasion de découvrir un autre logiciel appelé RobotC, qui comme son nom l&amp;#039;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&amp;#039;essai ne durant que dix jours nous n&amp;#039;avons pas pu essayer beaucoup de fonctions, ni réaliser un travail approfondi avec le logiciel. De plus, celui-ci ne semblait pas mettre à disposition des fonctions pour détecter les différents infrarouges indispensable à la réalisation du projet.&lt;br /&gt;
&lt;br /&gt;
== Prise en main du logiciel de programmation graphique et première approche ==&lt;br /&gt;
* 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&amp;#039;on doit assembler des blocs et de manière très réductrice, on peut dire qu&amp;#039;il s&amp;#039;agit d&amp;#039;un puzzle à assembler (le logiciel étant destiné à un public de jeune âge).&lt;br /&gt;
* Un point important à noter est que l&amp;#039;on peut par analogie à un langage de programmation en &amp;quot;texte&amp;quot;, créer des fonctions pour ainsi factoriser le code et le rendre plus compréhensible pour le lecteur.&lt;br /&gt;
* Ici ce sont des &amp;quot;blocs&amp;quot;, constitués eux-même d&amp;#039;un assemblage de blocs. Il est ainsi facile de créer un bloc nommé &amp;quot;chercher_balle&amp;quot; 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&amp;#039;on ait l&amp;#039;illusion que le robot est autonome.&lt;br /&gt;
&lt;br /&gt;
[[Média:suivi ligne.mp4]]&lt;br /&gt;
&lt;br /&gt;
= Fonctionnement mécanique =&lt;br /&gt;
&lt;br /&gt;
* Il est évident que pour programmer efficacement un robot il faut pouvoir découper le code en plusieurs sous-codes appelés fonctions et les agencer selon certaines conditions (exemple : si..sinon...fin_si) . Dans cette partie nous allons vous présenter ces différentes fonctions dans des petites séquences vidéos.&lt;br /&gt;
&lt;br /&gt;
== Avancer/ reculer ==&lt;br /&gt;
* Dans cette vidéo, nous voyons comment le robot effectue des mouvements basiques de translation et de rotation. On peut bien sur très facilement combiner translation ET rotation.&lt;br /&gt;
&lt;br /&gt;
[[Média:translation_rotation.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Détection de la balle ==&lt;br /&gt;
&lt;br /&gt;
* Ici le robot cherche la balle en s&amp;#039;orientant dans la même direction que celui-ci.&lt;br /&gt;
&lt;br /&gt;
Voici le programme correspondant au mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:detecter balle.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:detection_balle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur des couleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le capteur de couleur permet au robot de ne pas sortir des limites du terrain. Il permet aussi, sur ordre de l&amp;#039;arbitre de se remettre en place sur le terrain avant un nouveau coup d&amp;#039;envoi.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_couleur_1.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation de l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Grâce à l&amp;#039;écran du robot Mindstorm EV3, doté d&amp;#039;une résolution de 178*128 pixels, il est possible d&amp;#039;afficher des images pré-enregistrées dans la brique et aussi d&amp;#039;y  afficher du texte qui peut être très utile lors de test des valeurs du capteur. Dans cette vidéo, il s&amp;#039;agit entre autre du capteur de proximité.&lt;br /&gt;
&lt;br /&gt;
[[Média:diapo_ecran.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilisation des hauts-parleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le Mindstorm Ev3 est doté d&amp;#039;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&amp;#039;exécution d&amp;#039;une action. Conjointement à l&amp;#039;affichage d&amp;#039;une &amp;quot;émotion&amp;quot; sur l&amp;#039;écran du robot, cela donne vie au robot et on peut trouver une utilité dans l&amp;#039;aspect esthétique de ce dernier.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple haut parleur.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur tactile / des boutons situés sous l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Le robot est doté d&amp;#039;un capteur de pression qui renvoie la valeur 1 ou 0 respectivement si celui-ci est enfoncé ou non. Le robot peut savoir ainsi, s&amp;#039;il a bien attrapé la balle.&lt;br /&gt;
* Il y a des touches de directions situés sous l&amp;#039;écran pour naviguer dans l&amp;#039;interface de la brique. Le bouton en haut à droite permet de sortir d&amp;#039;un menu et de revenir en arrière. Dans le menu principal il permet d&amp;#039;afficher l&amp;#039;invite d&amp;#039;extinction de la brique.&lt;br /&gt;
* Dans cet exemple, le robot s&amp;#039;axe vers la balle, se dirige vers elle et dès qu&amp;#039;il y a contact le robot s&amp;#039;arrête.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_tactile.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteurs de proximité ==&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
Celui-ci est primordial car il permet au robot de voir un obstacle devant lui : robot, mur ou quoi que ce soit d&amp;#039;autre. Ce capteur permet de s&amp;#039;arrêter au niveau de l&amp;#039;obstacle en évitant toute collision. Le bureau d&amp;#039;étude défini d&amp;#039;ailleurs qu&amp;#039;il faut éviter les contacts, ceux-ci occasionnant une usure prématurée du robot.&lt;br /&gt;
&lt;br /&gt;
== Le système de propulsion de la balle ==&lt;br /&gt;
&lt;br /&gt;
* 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 un mouvement de translation. Ce mouvement de translation servira par la suite à envoyer la balle dans la cage de but adverse.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
Voici le programme qui correspond à ce mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Moteur propulsion balle.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple propulsion.mp4]]&lt;br /&gt;
&lt;br /&gt;
* Reste ensuite à construire un système pour contenir la balle le temps de la rotation et réussir à la propulser avec le maximum de puissance possible.&lt;br /&gt;
&lt;br /&gt;
= Bluetooth =&lt;br /&gt;
  Comment effectuer une liaison bluetooth avec les robots mindstorms ?&lt;br /&gt;
&lt;br /&gt;
= Test match =&lt;br /&gt;
  À faire au plus tôt : Il s&amp;#039;agit de faire un match et de commencer à effectuer les dernières modifications&lt;br /&gt;
&lt;br /&gt;
= Problèmes rencontrés =&lt;br /&gt;
Au cours de notre étude, nous avons rencontrés beaucoup de difficultés :&lt;br /&gt;
* Premièrement : le robot Mindstorm Ev3 est le modèle le plus récent, donc le projet n&amp;#039;a pas assez de recul, les autres groupes ont utilisé les robots Mindstorm NXT et ont disposé du logiciel de programmation Bricxcc, langage utilisé lors des années précédentes et aussi très abouti, car permettant de faire plus de choses que ne le permet le logiciel graphique Lego Mindstorm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Construction mécanique du robot : nous avons également eu des difficultés lors de la construction mécanique du robot ; celui-ci doit être stable et équilibré, embarquer plusieurs capteurs et moteurs, ceux-ci ne devant pas interférer entre eux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Pour ce qui est de la partie logicielle, 2 à 3 séances sont nécessaires pour prendre en main le logiciel. Ensuite il faut réfléchir et comprendre la logique de ce logiciel de programmation graphique. Il y a quelques manipulations à effectuer pour importer des briques (cela sert à rendre compatible avec le EV3 un capteur infrarouge fabriqué pour les NXT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Twiki : Pour ce qui est du twiki, il a fallu modifier d&amp;#039;autres twiki pour en voir la syntaxe et comprendre comment cette dernière fonctionne dans les twiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Il n&amp;#039;est cependant pas possible de discriminer les différentes fréquences des signaux infrarouges (celles des buts et celui de la balle) avec le logiciel graphique. Ce qui rend le bureau d&amp;#039;étude impossible avec le robot EV3 et le système de programmation proposé par LEGO.&lt;br /&gt;
&lt;br /&gt;
= Voir aussi =&lt;br /&gt;
&lt;br /&gt;
== Articles connexes ==&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms Ev3]&lt;br /&gt;
&lt;br /&gt;
== Liens externes ==&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/ Site officiel lego mindstorm]&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/downloads Téléchargements de l&amp;#039;IDE] - Integrated Developpement Environnement, l&amp;#039;environnement de programmation graphique officiel. Celui utilisé lors de ce bureau d&amp;#039;étude.&lt;br /&gt;
&lt;br /&gt;
* [http://bricxcc.sourceforge.net/ Site du projet Bricxcc] - à suivre pour voir l&amp;#039;avancement du projet Bricxcc pour les Ev3&lt;br /&gt;
* [http://www.robotc.net/download/lego/ Site de téléchargement du logiciel de programmation alternatif RobotC]&lt;/div&gt;</summary>
		<author><name>Ltombazz</name></author>
	</entry>
	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3816</id>
		<title>RobotCompetition2014-1</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3816"/>
		<updated>2015-04-20T07:31:38Z</updated>

		<summary type="html">&lt;p&gt;Ltombazz : /* Fonctionnement mécanique */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction : cadre de travail et présentation du bureau d&amp;#039;étude =&lt;br /&gt;
&lt;br /&gt;
* Le bureau d&amp;#039;étude est une initiation à la pédagogie par projet dont nous allons être confronté lors de notre cycle ingénieur et même dans notre avenir professionnel. Une problématique, des outils adaptés et une &amp;quot;étude&amp;quot; du problème sont nécessaires pour répondre à des objectifs fixés en début de semestre. Nous avons choisi le bureau d&amp;#039;étude IMA parce que nous étions intéressés par le domaine de l&amp;#039;électronique et des systèmes embarqués. C&amp;#039;était donc le bureau d&amp;#039;étude qui paraissait le plus intéressant par l&amp;#039;aspect constructif, la programmation et l&amp;#039;application rapide et concrète du projet proposé.&lt;br /&gt;
&lt;br /&gt;
* En 1ère séance, les enseignants 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&amp;#039;occupent respectivement d&amp;#039;une partie du projet. Ce qui, une fois rassembler, permettra à des robots de jouer de manière autonome sur un terrain. Chaque binôme aura donc pour tâche de s&amp;#039;occuper soit :&lt;br /&gt;
** d&amp;#039;une cage de buts (2 au total)&lt;br /&gt;
** de robots de compétition (4 au total)&lt;br /&gt;
** d&amp;#039;un arbitre&lt;br /&gt;
** et d&amp;#039;un robot ramasseur de balle (2 au total)&lt;br /&gt;
&lt;br /&gt;
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&amp;#039;essai de la dernière génération de robot lego Mindstorm : la série Ev3.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boite_mindstormev3.jpeg|300px]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc pour cahier de charge le suivant :&lt;br /&gt;
&lt;br /&gt;
* 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 de différentes couleurs ainsi que les robots adverses;&lt;br /&gt;
* Avancer vers la balle (avec des moteurs);&lt;br /&gt;
* Attraper la balle (en utilisant le dernier moteur disponible);&lt;br /&gt;
* S&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
Pour cela notre robot est équipé de différents capteurs et moteurs ainsi qu&amp;#039;une panoplie de briques (de construction technique) et un &amp;quot;centre nerveux&amp;quot; appelé &amp;quot;brique programmable&amp;quot;, permettant de contrôler les différents moteurs et de lire les valeurs des capteurs qui donne vie au robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc à notre disposition :&lt;br /&gt;
&lt;br /&gt;
- 3 moteurs;&lt;br /&gt;
&lt;br /&gt;
- 4 capteurs : couleur, proximité, tactile et infrarouge;&lt;br /&gt;
&lt;br /&gt;
- 1 brique programmable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le robot : Lego Mindstorm Ev3 ==&lt;br /&gt;
Dans un premier temps, par manque d&amp;#039;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&amp;#039;ils ne se masquent pas entre eux, tout en leur permettant de fonctionner correctement et d&amp;#039;interagir avec la balle.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:robot_prototype1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== Seconde étape du projet : mise en place de l&amp;#039;environnement de programmation ==&lt;br /&gt;
* Les trois séances suivantes nous avons cherché à faire vivre le robot EV3. Nous avons essayé d&amp;#039;installer le logiciel Bricxcc sous les conseils avisés des responsables du bureau d&amp;#039;étude. Bricxcc est un projet permettant de programmer la brique Ev3 avec un langage de programmation proche du C. Après plusieurs tentatives d&amp;#039;installations, nous nous sommes rendus compte que le logiciel Bricxcc ne serait probablement pas notre environnement de programmation.&lt;br /&gt;
* 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&amp;#039;avec l&amp;#039;environnement de programmation graphique conçu pour les NXT). Il ne l&amp;#039;est cependant qu&amp;#039;à moitié pour les Ev3 puisque nous pouvons transférer un programme édité par Bricxcc sur la brique Ev3 mais cette dernière ne peut pas l&amp;#039;exécuter.&lt;br /&gt;
* Nous avons eu aussi l&amp;#039;occasion de découvrir un autre logiciel appelé RobotC, qui comme son nom l&amp;#039;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&amp;#039;essai ne durant que dix jours nous n&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
== Prise en main du logiciel de programmation graphique et première approche ==&lt;br /&gt;
* 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&amp;#039;on doit assembler des blocs et de manière très réductrice, on peut dire qu&amp;#039;il s&amp;#039;agit d&amp;#039;un puzzle à assembler (le logiciel étant destiné à un jeune âge).&lt;br /&gt;
* Un point important à noter est que l&amp;#039;on peut par analogie à un langage de programmation en &amp;quot;texte&amp;quot;, créer des fonctions pour ainsi factoriser le code et le rendre plus compréhensible pour le lecteur.&lt;br /&gt;
* Ici ce sont des &amp;quot;blocs&amp;quot;, constitués eux-même d&amp;#039;un assemblage de blocs. Il est ainsi facile de créer un bloc nommé &amp;quot;chercher_balle&amp;quot; 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&amp;#039;on ait l&amp;#039;illusion que le robot est autonome.&lt;br /&gt;
&lt;br /&gt;
[[Média:suivi ligne.mp4]]&lt;br /&gt;
&lt;br /&gt;
= Fonctionnement mécanique =&lt;br /&gt;
&lt;br /&gt;
* Il est évident que pour programmer efficacement un robot il faut pouvoir 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.&lt;br /&gt;
&lt;br /&gt;
== Avancer/ reculer ==&lt;br /&gt;
* Dans cette vidéo, nous voyons comment le robot effectue des mouvements basiques de translation et de rotation. On peut bien sur très facilement combiner translation ET rotation.&lt;br /&gt;
&lt;br /&gt;
[[Média:translation_rotation.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Détection de la balle ==&lt;br /&gt;
&lt;br /&gt;
* Ici le robot cherche la balle en s&amp;#039;orientant dans la même direction que celui-ci.&lt;br /&gt;
&lt;br /&gt;
Voici le programme correspondant au mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:detecter balle.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:detection_balle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur des couleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le capteur de couleur permet au robot de ne pas sortir des limites du terrain. Il permet aussi, sur ordre de l&amp;#039;arbitre de se remettre en place sur le terrain avant un nouveau coup d&amp;#039;envoi.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_couleur_1.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation de l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Grâce à l&amp;#039;écran du robot Mindstorm EV3, doté d&amp;#039;une résolution de 178*128 pixel, il est possible d&amp;#039;afficher des images pré-enregistrer dans la brique et aussi d&amp;#039;y  afficher du texte qui peut être très utile lors de test des valeurs du capteur. Dans cette vidéo, il s&amp;#039;agit entre autre du capteur de proximité.&lt;br /&gt;
&lt;br /&gt;
[[Média:diapo_ecran.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilisation des hauts-parleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le Mindstorm Ev3 est doté d&amp;#039;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&amp;#039;exécution d&amp;#039;une action. Conjointement à l&amp;#039;affichage d&amp;#039;une &amp;quot;émotion&amp;quot; sur l&amp;#039;écran du robot, cela donne vie au robot et on peut trouver une utilité dans l&amp;#039;aspect esthétique de ce dernier.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple haut parleur.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur tactile / des boutons situés sous l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Le robot est doté d&amp;#039;un capteur de pression qui renvoie la valeur 1 ou 0 respectivement si celui-ci est enfoncé ou non. Le robot peut savoir ainsi, s&amp;#039;il a bien attrapé la balle.&lt;br /&gt;
* Il y a des touches de directions situés sous l&amp;#039;écran pour naviguer dans l&amp;#039;interface de la brique. Le bouton en haut à droite permet de sortir d&amp;#039;un menu et de revenir en arrière. Dans le menu principal il permet d&amp;#039;afficher l&amp;#039;invite d&amp;#039;extinction de la brique.&lt;br /&gt;
* Dans cet exemple, le robot s&amp;#039;axe vers la balle, se dirige vers elle et dès qu&amp;#039;il y a contact le robot s&amp;#039;arrête.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_tactile.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteurs de proximité ==&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
Celui-ci est primordial car il permet au robot de voir un obstacle devant lui : robot, mur ou quoi que ce soit d&amp;#039;autres. Ce capteur permet de s&amp;#039;arrêter au niveau de l&amp;#039;obstacle en évitant toute collision. Le bureau d&amp;#039;étude défini d&amp;#039;ailleurs qu&amp;#039;il faut éviter les contacts.&lt;br /&gt;
&lt;br /&gt;
== Le système de propulsion de la balle ==&lt;br /&gt;
&lt;br /&gt;
* 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 un mouvement de translation. Ce mouvement de translation servira par la suite d&amp;#039;envoyer la balle dans la cage de but adverse.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
Voici le programme qui correspond à ce mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Moteur propulsion balle.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple propulsion.mp4]]&lt;br /&gt;
&lt;br /&gt;
* Reste ensuite à construire un système pour contenir la balle le temps de la rotation et réussir à la propulser avec le maximum de puissance possible.&lt;br /&gt;
&lt;br /&gt;
= Bluetooth =&lt;br /&gt;
  Comment effectuer une liaison bluetooth avec les robots mindstorms ?&lt;br /&gt;
&lt;br /&gt;
= Test match =&lt;br /&gt;
  À faire au plus tôt : Il s&amp;#039;agit de faire un match et de commencer à effectuer les dernières modifications&lt;br /&gt;
&lt;br /&gt;
= Problèmes rencontrés =&lt;br /&gt;
Au cours de notre étude, nous avons rencontrés beaucoup de difficultés :&lt;br /&gt;
* Premièrement : le robot Mindstorm Ev3 est le modèle le plus récent, donc le projet n&amp;#039;a pas assez de recul, les autres groupes ont utilisé les robots Mindstorm NXT et ont disposé du logiciel de programmation Bricxcc, langage utilisé lors des années précédentes et aussi très abouti, car permettant de faire plus de choses que ne le permet le logiciel graphique Lego Mindstorm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Construction mécanique du robot : nous avons également eu des difficultés lors de la construction mécanique du robot ; celui-ci doit être stable et équilibré, embarquer plusieurs capteurs et moteurs, ceux-ci ne devant pas interférer entre eux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Pour ce qui est de la partie logicielle, 2 à 3 séances suffisent pour prendre en main le logiciel. Ensuite il suffit de réfléchir et comprendre la logique de ce logiciel de programmation graphique. Il y a quelques manipulations à effectuer pour importer des briques (cela sert à rendre compatible avec le EV3 un capteur fabriqué pour les NXT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Twiki : Pour ce qui est du twiki, il a fallu modifier d&amp;#039;autres twiki pour en voir la syntaxe et comprendre comment cette dernière fonctionne dans les twiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Il n&amp;#039;est cependant pas possible de discriminer les différentes fréquences des signaux infrarouges (celles des buts et celui de la balle) avec le logiciel graphique. Ce qui rend le bureau d&amp;#039;étude impossible avec le robot EV3 et le système de programmation proposé par LEGO.&lt;br /&gt;
&lt;br /&gt;
= Voir aussi =&lt;br /&gt;
&lt;br /&gt;
== Articles connexes ==&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms Ev3]&lt;br /&gt;
&lt;br /&gt;
== Liens externes ==&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/ Site officiel lego mindstorm]&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/downloads Téléchargements de l&amp;#039;IDE] - Integrated Developpement Environnement, l&amp;#039;environnement de programmation graphique officiel. Celui utilisé lors de ce bureau d&amp;#039;étude.&lt;br /&gt;
&lt;br /&gt;
* [http://bricxcc.sourceforge.net/ Site du projet Bricxcc] - à suivre pour voir l&amp;#039;avancement du projet Bricxcc pour les Ev3&lt;br /&gt;
* [http://www.robotc.net/download/lego/ Site de téléchargement du logiciel de programmation alternatif RobotC]&lt;/div&gt;</summary>
		<author><name>Ltombazz</name></author>
	</entry>
	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3815</id>
		<title>RobotCompetition2014-1</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3815"/>
		<updated>2015-04-20T07:21:55Z</updated>

		<summary type="html">&lt;p&gt;Ltombazz : Annulation des modifications 3812 de Ltombazz (discussion)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction : cadre de travail et présentation du bureau d&amp;#039;étude =&lt;br /&gt;
&lt;br /&gt;
* Le bureau d&amp;#039;étude est une initiation à la pédagogie par projet dont nous allons être confronté lors de notre cycle ingénieur et même dans notre avenir professionnel. Une problématique, des outils adaptés et une &amp;quot;étude&amp;quot; du problème sont nécessaires pour répondre à des objectifs fixés en début de semestre. Nous avons choisi le bureau d&amp;#039;étude IMA parce que nous étions intéressés par le domaine de l&amp;#039;électronique et des systèmes embarqués. C&amp;#039;était donc le bureau d&amp;#039;étude qui paraissait le plus intéressant par l&amp;#039;aspect constructif, la programmation et l&amp;#039;application rapide et concrète du projet proposé.&lt;br /&gt;
&lt;br /&gt;
* En 1ère séance, les enseignants 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&amp;#039;occupent respectivement d&amp;#039;une partie du projet. Ce qui, une fois rassembler, permettra à des robots de jouer de manière autonome sur un terrain. Chaque binôme aura donc pour tâche de s&amp;#039;occuper soit :&lt;br /&gt;
** d&amp;#039;une cage de buts (2 au total)&lt;br /&gt;
** de robots de compétition (4 au total)&lt;br /&gt;
** d&amp;#039;un arbitre&lt;br /&gt;
** et d&amp;#039;un robot ramasseur de balle (2 au total)&lt;br /&gt;
&lt;br /&gt;
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&amp;#039;essai de la dernière génération de robot lego Mindstorm : la série Ev3.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boite_mindstormev3.jpeg|300px]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc pour cahier de charge le suivant :&lt;br /&gt;
&lt;br /&gt;
* 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 de différentes couleurs ainsi que les robots adverses;&lt;br /&gt;
* Avancer vers la balle (avec des moteurs);&lt;br /&gt;
* Attraper la balle (en utilisant le dernier moteur disponible);&lt;br /&gt;
* S&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
Pour cela notre robot est équipé de différents capteurs et moteurs ainsi qu&amp;#039;une panoplie de briques (de construction technique) et un &amp;quot;centre nerveux&amp;quot; appelé &amp;quot;brique programmable&amp;quot;, permettant de contrôler les différents moteurs et de lire les valeurs des capteurs qui donne vie au robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc à notre disposition :&lt;br /&gt;
&lt;br /&gt;
- 3 moteurs;&lt;br /&gt;
&lt;br /&gt;
- 4 capteurs : couleur, proximité, tactile et infrarouge;&lt;br /&gt;
&lt;br /&gt;
- 1 brique programmable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le robot : Lego Mindstorm Ev3 ==&lt;br /&gt;
Dans un premier temps, par manque d&amp;#039;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&amp;#039;ils ne se masquent pas entre eux, tout en leur permettant de fonctionner correctement et d&amp;#039;interagir avec la balle.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:robot_prototype1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== Seconde étape du projet : mise en place de l&amp;#039;environnement de programmation ==&lt;br /&gt;
* Les trois séances suivantes nous avons cherché à faire vivre le robot EV3. Nous avons essayé d&amp;#039;installer le logiciel Bricxcc sous les conseils avisés des responsables du bureau d&amp;#039;étude. Bricxcc est un projet permettant de programmer la brique Ev3 avec un langage de programmation proche du C. Après plusieurs tentatives d&amp;#039;installations, nous nous sommes rendus compte que le logiciel Bricxcc ne serait probablement pas notre environnement de programmation.&lt;br /&gt;
* 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&amp;#039;avec l&amp;#039;environnement de programmation graphique conçu pour les NXT). Il ne l&amp;#039;est cependant qu&amp;#039;à moitié pour les Ev3 puisque nous pouvons transférer un programme édité par Bricxcc sur la brique Ev3 mais cette dernière ne peut pas l&amp;#039;exécuter.&lt;br /&gt;
* Nous avons eu aussi l&amp;#039;occasion de découvrir un autre logiciel appelé RobotC, qui comme son nom l&amp;#039;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&amp;#039;essai ne durant que dix jours nous n&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
== Prise en main du logiciel de programmation graphique et première approche ==&lt;br /&gt;
* 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&amp;#039;on doit assembler des blocs et de manière très réductrice, on peut dire qu&amp;#039;il s&amp;#039;agit d&amp;#039;un puzzle à assembler (le logiciel étant destiné à un jeune âge).&lt;br /&gt;
* Un point important à noter est que l&amp;#039;on peut par analogie à un langage de programmation en &amp;quot;texte&amp;quot;, créer des fonctions pour ainsi factoriser le code et le rendre plus compréhensible pour le lecteur.&lt;br /&gt;
* Ici ce sont des &amp;quot;blocs&amp;quot;, constitués eux-même d&amp;#039;un assemblage de blocs. Il est ainsi facile de créer un bloc nommé &amp;quot;chercher_balle&amp;quot; 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&amp;#039;on ait l&amp;#039;illusion que le robot est autonome.&lt;br /&gt;
&lt;br /&gt;
[[Média:suivi ligne.mp4]]&lt;br /&gt;
&lt;br /&gt;
= Fonctionnement mécanique =&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
== Avancer/ reculer ==&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
[[Média:translation_rotation.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Détection de la balle ==&lt;br /&gt;
&lt;br /&gt;
* Ici le robot cherche la balle en s&amp;#039;orientant dans la même direction que celui-ci.&lt;br /&gt;
&lt;br /&gt;
Voici le programme correspondant au mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:detecter balle.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:detection_balle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur des couleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le capteur de couleur permet au robot de ne pas sortir des limites du terrain. Il permet aussi, sur ordre de l&amp;#039;arbitre de se remettre en place sur le terrain pour un nouveau coup d&amp;#039;envoi.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_couleur_1.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation de l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Grâce à l&amp;#039;écran du robot Mindstorm Ev3, doté d&amp;#039;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&amp;#039;agit entre autre du capteur de proximité.&lt;br /&gt;
&lt;br /&gt;
[[Média:diapo_ecran.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilisation des hauts-parleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le Mindstorm Ev3 est doté d&amp;#039;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&amp;#039;exécution d&amp;#039;une action. Conjointement à l&amp;#039;affichage d&amp;#039;une &amp;quot;émotion&amp;quot; sur l&amp;#039;écran du robot. Cela donne vie au robot et il peut trouver une utilité dans l&amp;#039;aspect esthétique de ce dernier.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple haut parleur.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur tactile / des boutons situés sous l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Le robot est doté d&amp;#039;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&amp;#039;il a bien attrapé la balle ou pas.&lt;br /&gt;
* Il y a des touches de directions situés sous l&amp;#039;écran pour naviguer dans l&amp;#039;interface de la brique. Le bouton en haut à droite permet de sortir d&amp;#039;un menu et de revenir en arrière. Dans le menu principal il permet d&amp;#039;afficher l&amp;#039;invite pour éteindre la brique.&lt;br /&gt;
* Dans cet exemple, le robot s&amp;#039;axe vers la balle, se dirige vers elle et dès qu&amp;#039;il y a contact le robot s&amp;#039;arrête.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_tactile.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteurs de proximité ==&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;#039;arrêter au niveau de celui-ci sans rentrer en collision.&lt;br /&gt;
&lt;br /&gt;
== Le système de propulsion de la balle ==&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;envoyer la balle dans la cage de but adverse.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
Voici le programme qui correspond à mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Moteur propulsion balle.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple propulsion.mp4]]&lt;br /&gt;
&lt;br /&gt;
* Reste ensuite à construire un système pour contenir la balle le temps de la rotation et réussir à la propulser avec beaucoup de force.&lt;br /&gt;
&lt;br /&gt;
= Bluetooth =&lt;br /&gt;
  Comment effectuer une liaison bluetooth avec les robots mindstorms ?&lt;br /&gt;
&lt;br /&gt;
= Test match =&lt;br /&gt;
  À faire au plus tôt : Il s&amp;#039;agit de faire un match et de commencer à effectuer les dernières modifications&lt;br /&gt;
&lt;br /&gt;
= Problèmes rencontrés =&lt;br /&gt;
Au cours de notre étude, nous avons rencontrés beaucoup de difficultés :&lt;br /&gt;
* Premièrement : le robot Mindstorm Ev3 est le modèle le plus récent, donc le projet n&amp;#039;a pas assez de recul, les autres groupes ont utilisé les robots Mindstorm NXT et ont disposé du logiciel de programmation Bricxcc, langage utilisé lors des années précédentes et aussi très abouti, car permettant de faire plus de choses que ne le permet le logiciel graphique Lego Mindstorm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Construction mécanique du robot : nous avons également eu des difficultés lors de la construction mécanique du robot ; celui-ci doit être stable et équilibré, embarquer plusieurs capteurs et moteurs, ceux-ci ne devant pas interférer entre eux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Pour ce qui est de la partie logicielle, 2 à 3 séances suffisent pour prendre en main le logiciel. Ensuite il suffit de réfléchir et comprendre la logique de ce logiciel de programmation graphique. Il y a quelques manipulations à effectuer pour importer des briques (cela sert à rendre compatible avec le EV3 un capteur fabriqué pour les NXT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Twiki : Pour ce qui est du twiki, il a fallu modifier d&amp;#039;autres twiki pour en voir la syntaxe et comprendre comment cette dernière fonctionne dans les twiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Il n&amp;#039;est cependant pas possible de discriminer les différentes fréquences des signaux infrarouges (celles des buts et celui de la balle) avec le logiciel graphique. Ce qui rend le bureau d&amp;#039;étude impossible avec le robot EV3 et le système de programmation proposé par LEGO.&lt;br /&gt;
&lt;br /&gt;
= Voir aussi =&lt;br /&gt;
&lt;br /&gt;
== Articles connexes ==&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms Ev3]&lt;br /&gt;
&lt;br /&gt;
== Liens externes ==&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/ Site officiel lego mindstorm]&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/downloads Téléchargements de l&amp;#039;IDE] - Integrated Developpement Environnement, l&amp;#039;environnement de programmation graphique officiel. Celui utilisé lors de ce bureau d&amp;#039;étude.&lt;br /&gt;
&lt;br /&gt;
* [http://bricxcc.sourceforge.net/ Site du projet Bricxcc] - à suivre pour voir l&amp;#039;avancement du projet Bricxcc pour les Ev3&lt;br /&gt;
* [http://www.robotc.net/download/lego/ Site de téléchargement du logiciel de programmation alternatif RobotC]&lt;/div&gt;</summary>
		<author><name>Ltombazz</name></author>
	</entry>
	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3814</id>
		<title>RobotCompetition2014-1</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3814"/>
		<updated>2015-04-20T07:21:39Z</updated>

		<summary type="html">&lt;p&gt;Ltombazz : Annulation des modifications 3813 de Ltombazz (discussion)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 1/ Introduction : cadre de travail et présentation du bureau d&amp;#039;étude =&lt;br /&gt;
&lt;br /&gt;
* Le bureau d&amp;#039;étude est une initiation à la pédagogie par projet dont nous allons être confronté lors de notre cycle ingénieur et même dans notre avenir professionnel. Une problématique, des outils adaptés et une &amp;quot;étude&amp;quot; du problème sont nécessaires pour répondre à des objectifs fixés en début de semestre. Nous avons choisi le bureau d&amp;#039;étude IMA parce que nous étions intéressés par le domaine de l&amp;#039;électronique et des systèmes embarqués. C&amp;#039;était donc le bureau d&amp;#039;étude qui paraissait le plus intéressant par l&amp;#039;aspect constructif, la programmation et l&amp;#039;application rapide et concrète du projet proposé.&lt;br /&gt;
&lt;br /&gt;
* En 1ère séance, les enseignants 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&amp;#039;occupent respectivement d&amp;#039;une partie du projet. Ce qui, une fois rassembler, permettra à des robots de jouer de manière autonome sur un terrain. Chaque binôme aura donc pour tâche de s&amp;#039;occuper soit :&lt;br /&gt;
** d&amp;#039;une cage de buts (2 au total)&lt;br /&gt;
** de robots de compétition (4 au total)&lt;br /&gt;
** d&amp;#039;un arbitre&lt;br /&gt;
** et d&amp;#039;un robot ramasseur de balle (2 au total)&lt;br /&gt;
&lt;br /&gt;
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&amp;#039;essai de la dernière génération de robot lego Mindstorm : la série Ev3.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boite_mindstormev3.jpeg|300px]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc pour cahier de charge le suivant :&lt;br /&gt;
&lt;br /&gt;
* 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 de différentes couleurs ainsi que les robots adverses;&lt;br /&gt;
* Avancer vers la balle (avec des moteurs);&lt;br /&gt;
* Attraper la balle (en utilisant le dernier moteur disponible);&lt;br /&gt;
* S&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
Pour cela notre robot est équipé de différents capteurs et moteurs ainsi qu&amp;#039;une panoplie de briques (de construction technique) et un &amp;quot;centre nerveux&amp;quot; appelé &amp;quot;brique programmable&amp;quot;, permettant de contrôler les différents moteurs et de lire les valeurs des capteurs qui donne vie au robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc à notre disposition :&lt;br /&gt;
&lt;br /&gt;
- 3 moteurs;&lt;br /&gt;
&lt;br /&gt;
- 4 capteurs : couleur, proximité, tactile et infrarouge;&lt;br /&gt;
&lt;br /&gt;
- 1 brique programmable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.1/ Le robot : Lego Mindstorm Ev3 ==&lt;br /&gt;
Dans un premier temps, par manque d&amp;#039;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&amp;#039;ils ne se masquent pas entre eux, tout en leur permettant de fonctionner correctement et d&amp;#039;interagir avec la balle.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:robot_prototype1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== 1.2/ Seconde étape du projet : mise en place de l&amp;#039;environnement de programmation ==&lt;br /&gt;
* Les trois séances suivantes nous avons cherché à faire vivre le robot EV3. Nous avons essayé d&amp;#039;installer le logiciel Bricxcc sous les conseils avisés des responsables du bureau d&amp;#039;étude. Bricxcc est un projet permettant de programmer la brique Ev3 avec un langage de programmation proche du C. Après plusieurs tentatives d&amp;#039;installations, nous nous sommes rendus compte que le logiciel Bricxcc ne serait probablement pas notre environnement de programmation.&lt;br /&gt;
* 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&amp;#039;avec l&amp;#039;environnement de programmation graphique conçu pour les NXT). Il ne l&amp;#039;est cependant qu&amp;#039;à moitié pour les Ev3 puisque nous pouvons transférer un programme édité par Bricxcc sur la brique Ev3 mais cette dernière ne peut pas l&amp;#039;exécuter.&lt;br /&gt;
* Nous avons eu aussi l&amp;#039;occasion de découvrir un autre logiciel appelé RobotC, qui comme son nom l&amp;#039;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&amp;#039;essai ne durant que dix jours nous n&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
== 1.3/ Prise en main du logiciel de programmation graphique et première approche ==&lt;br /&gt;
* 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&amp;#039;on doit assembler des blocs et de manière très réductrice, on peut dire qu&amp;#039;il s&amp;#039;agit d&amp;#039;un puzzle à assembler (le logiciel étant destiné à un jeune âge).&lt;br /&gt;
* Un point important à noter est que l&amp;#039;on peut par analogie à un langage de programmation en &amp;quot;texte&amp;quot;, créer des fonctions pour ainsi factoriser le code et le rendre plus compréhensible pour le lecteur.&lt;br /&gt;
* Ici ce sont des &amp;quot;blocs&amp;quot;, constitués eux-même d&amp;#039;un assemblage de blocs. Il est ainsi facile de créer un bloc nommé &amp;quot;chercher_balle&amp;quot; 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&amp;#039;on ait l&amp;#039;illusion que le robot est autonome.&lt;br /&gt;
&lt;br /&gt;
[[Média:suivi ligne.mp4]]&lt;br /&gt;
&lt;br /&gt;
= Fonctionnement mécanique =&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
== Avancer/ reculer ==&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
[[Média:translation_rotation.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Détection de la balle ==&lt;br /&gt;
&lt;br /&gt;
* Ici le robot cherche la balle en s&amp;#039;orientant dans la même direction que celui-ci.&lt;br /&gt;
&lt;br /&gt;
Voici le programme correspondant au mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:detecter balle.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:detection_balle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur des couleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le capteur de couleur permet au robot de ne pas sortir des limites du terrain. Il permet aussi, sur ordre de l&amp;#039;arbitre de se remettre en place sur le terrain pour un nouveau coup d&amp;#039;envoi.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_couleur_1.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation de l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Grâce à l&amp;#039;écran du robot Mindstorm Ev3, doté d&amp;#039;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&amp;#039;agit entre autre du capteur de proximité.&lt;br /&gt;
&lt;br /&gt;
[[Média:diapo_ecran.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilisation des hauts-parleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le Mindstorm Ev3 est doté d&amp;#039;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&amp;#039;exécution d&amp;#039;une action. Conjointement à l&amp;#039;affichage d&amp;#039;une &amp;quot;émotion&amp;quot; sur l&amp;#039;écran du robot. Cela donne vie au robot et il peut trouver une utilité dans l&amp;#039;aspect esthétique de ce dernier.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple haut parleur.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur tactile / des boutons situés sous l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Le robot est doté d&amp;#039;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&amp;#039;il a bien attrapé la balle ou pas.&lt;br /&gt;
* Il y a des touches de directions situés sous l&amp;#039;écran pour naviguer dans l&amp;#039;interface de la brique. Le bouton en haut à droite permet de sortir d&amp;#039;un menu et de revenir en arrière. Dans le menu principal il permet d&amp;#039;afficher l&amp;#039;invite pour éteindre la brique.&lt;br /&gt;
* Dans cet exemple, le robot s&amp;#039;axe vers la balle, se dirige vers elle et dès qu&amp;#039;il y a contact le robot s&amp;#039;arrête.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_tactile.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteurs de proximité ==&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;#039;arrêter au niveau de celui-ci sans rentrer en collision.&lt;br /&gt;
&lt;br /&gt;
== Le système de propulsion de la balle ==&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;envoyer la balle dans la cage de but adverse.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
Voici le programme qui correspond à mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Moteur propulsion balle.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple propulsion.mp4]]&lt;br /&gt;
&lt;br /&gt;
* Reste ensuite à construire un système pour contenir la balle le temps de la rotation et réussir à la propulser avec beaucoup de force.&lt;br /&gt;
&lt;br /&gt;
= Bluetooth =&lt;br /&gt;
  Comment effectuer une liaison bluetooth avec les robots mindstorms ?&lt;br /&gt;
&lt;br /&gt;
= Test match =&lt;br /&gt;
  À faire au plus tôt : Il s&amp;#039;agit de faire un match et de commencer à effectuer les dernières modifications&lt;br /&gt;
&lt;br /&gt;
= Problèmes rencontrés =&lt;br /&gt;
Au cours de notre étude, nous avons rencontrés beaucoup de difficultés :&lt;br /&gt;
* Premièrement : le robot Mindstorm Ev3 est le modèle le plus récent, donc le projet n&amp;#039;a pas assez de recul, les autres groupes ont utilisé les robots Mindstorm NXT et ont disposé du logiciel de programmation Bricxcc, langage utilisé lors des années précédentes et aussi très abouti, car permettant de faire plus de choses que ne le permet le logiciel graphique Lego Mindstorm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Construction mécanique du robot : nous avons également eu des difficultés lors de la construction mécanique du robot ; celui-ci doit être stable et équilibré, embarquer plusieurs capteurs et moteurs, ceux-ci ne devant pas interférer entre eux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Pour ce qui est de la partie logicielle, 2 à 3 séances suffisent pour prendre en main le logiciel. Ensuite il suffit de réfléchir et comprendre la logique de ce logiciel de programmation graphique. Il y a quelques manipulations à effectuer pour importer des briques (cela sert à rendre compatible avec le EV3 un capteur fabriqué pour les NXT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Twiki : Pour ce qui est du twiki, il a fallu modifier d&amp;#039;autres twiki pour en voir la syntaxe et comprendre comment cette dernière fonctionne dans les twiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Il n&amp;#039;est cependant pas possible de discriminer les différentes fréquences des signaux infrarouges (celles des buts et celui de la balle) avec le logiciel graphique. Ce qui rend le bureau d&amp;#039;étude impossible avec le robot EV3 et le système de programmation proposé par LEGO.&lt;br /&gt;
&lt;br /&gt;
= Voir aussi =&lt;br /&gt;
&lt;br /&gt;
== Articles connexes ==&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms Ev3]&lt;br /&gt;
&lt;br /&gt;
== Liens externes ==&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/ Site officiel lego mindstorm]&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/downloads Téléchargements de l&amp;#039;IDE] - Integrated Developpement Environnement, l&amp;#039;environnement de programmation graphique officiel. Celui utilisé lors de ce bureau d&amp;#039;étude.&lt;br /&gt;
&lt;br /&gt;
* [http://bricxcc.sourceforge.net/ Site du projet Bricxcc] - à suivre pour voir l&amp;#039;avancement du projet Bricxcc pour les Ev3&lt;br /&gt;
* [http://www.robotc.net/download/lego/ Site de téléchargement du logiciel de programmation alternatif RobotC]&lt;/div&gt;</summary>
		<author><name>Ltombazz</name></author>
	</entry>
	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3813</id>
		<title>RobotCompetition2014-1</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3813"/>
		<updated>2015-04-20T07:21:06Z</updated>

		<summary type="html">&lt;p&gt;Ltombazz : /* Fonctionnement mécanique */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 1/ Introduction : cadre de travail et présentation du bureau d&amp;#039;étude =&lt;br /&gt;
&lt;br /&gt;
* Le bureau d&amp;#039;étude est une initiation à la pédagogie par projet dont nous allons être confronté lors de notre cycle ingénieur et même dans notre avenir professionnel. Une problématique, des outils adaptés et une &amp;quot;étude&amp;quot; du problème sont nécessaires pour répondre à des objectifs fixés en début de semestre. Nous avons choisi le bureau d&amp;#039;étude IMA parce que nous étions intéressés par le domaine de l&amp;#039;électronique et des systèmes embarqués. C&amp;#039;était donc le bureau d&amp;#039;étude qui paraissait le plus intéressant par l&amp;#039;aspect constructif, la programmation et l&amp;#039;application rapide et concrète du projet proposé.&lt;br /&gt;
&lt;br /&gt;
* En 1ère séance, les enseignants 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&amp;#039;occupent respectivement d&amp;#039;une partie du projet. Ce qui, une fois rassembler, permettra à des robots de jouer de manière autonome sur un terrain. Chaque binôme aura donc pour tâche de s&amp;#039;occuper soit :&lt;br /&gt;
** d&amp;#039;une cage de buts (2 au total)&lt;br /&gt;
** de robots de compétition (4 au total)&lt;br /&gt;
** d&amp;#039;un arbitre&lt;br /&gt;
** et d&amp;#039;un robot ramasseur de balle (2 au total)&lt;br /&gt;
&lt;br /&gt;
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&amp;#039;essai de la dernière génération de robot lego Mindstorm : la série Ev3.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boite_mindstormev3.jpeg|300px]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc pour cahier de charge le suivant :&lt;br /&gt;
&lt;br /&gt;
* 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 de différentes couleurs ainsi que les robots adverses;&lt;br /&gt;
* Avancer vers la balle (avec des moteurs);&lt;br /&gt;
* Attraper la balle (en utilisant le dernier moteur disponible);&lt;br /&gt;
* S&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
Pour cela notre robot est équipé de différents capteurs et moteurs ainsi qu&amp;#039;une panoplie de briques (de construction technique) et un &amp;quot;centre nerveux&amp;quot; appelé &amp;quot;brique programmable&amp;quot;, permettant de contrôler les différents moteurs et de lire les valeurs des capteurs qui donne vie au robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc à notre disposition :&lt;br /&gt;
&lt;br /&gt;
- 3 moteurs;&lt;br /&gt;
&lt;br /&gt;
- 4 capteurs : couleur, proximité, tactile et infrarouge;&lt;br /&gt;
&lt;br /&gt;
- 1 brique programmable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.1/ Le robot : Lego Mindstorm Ev3 ==&lt;br /&gt;
Dans un premier temps, par manque d&amp;#039;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&amp;#039;ils ne se masquent pas entre eux, tout en leur permettant de fonctionner correctement et d&amp;#039;interagir avec la balle.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:robot_prototype1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== 1.2/ Seconde étape du projet : mise en place de l&amp;#039;environnement de programmation ==&lt;br /&gt;
* Les trois séances suivantes nous avons cherché à faire vivre le robot EV3. Nous avons essayé d&amp;#039;installer le logiciel Bricxcc sous les conseils avisés des responsables du bureau d&amp;#039;étude. Bricxcc est un projet permettant de programmer la brique Ev3 avec un langage de programmation proche du C. Après plusieurs tentatives d&amp;#039;installations, nous nous sommes rendus compte que le logiciel Bricxcc ne serait probablement pas notre environnement de programmation.&lt;br /&gt;
* 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&amp;#039;avec l&amp;#039;environnement de programmation graphique conçu pour les NXT). Il ne l&amp;#039;est cependant qu&amp;#039;à moitié pour les Ev3 puisque nous pouvons transférer un programme édité par Bricxcc sur la brique Ev3 mais cette dernière ne peut pas l&amp;#039;exécuter.&lt;br /&gt;
* Nous avons eu aussi l&amp;#039;occasion de découvrir un autre logiciel appelé RobotC, qui comme son nom l&amp;#039;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&amp;#039;essai ne durant que dix jours nous n&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
== 1.3/ Prise en main du logiciel de programmation graphique et première approche ==&lt;br /&gt;
* 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&amp;#039;on doit assembler des blocs et de manière très réductrice, on peut dire qu&amp;#039;il s&amp;#039;agit d&amp;#039;un puzzle à assembler (le logiciel étant destiné à un jeune âge).&lt;br /&gt;
* Un point important à noter est que l&amp;#039;on peut par analogie à un langage de programmation en &amp;quot;texte&amp;quot;, créer des fonctions pour ainsi factoriser le code et le rendre plus compréhensible pour le lecteur.&lt;br /&gt;
* Ici ce sont des &amp;quot;blocs&amp;quot;, constitués eux-même d&amp;#039;un assemblage de blocs. Il est ainsi facile de créer un bloc nommé &amp;quot;chercher_balle&amp;quot; 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&amp;#039;on ait l&amp;#039;illusion que le robot est autonome.&lt;br /&gt;
&lt;br /&gt;
[[Média:suivi ligne.mp4]]&lt;br /&gt;
&lt;br /&gt;
=2/ Fonctionnement mécanique =&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
==2.1/ Avancer/ reculer ==&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
[[Média:translation_rotation.mp4]]&lt;br /&gt;
&lt;br /&gt;
==2.2/ Détection de la balle ==&lt;br /&gt;
&lt;br /&gt;
* Ici le robot cherche la balle en s&amp;#039;orientant dans la même direction que celui-ci.&lt;br /&gt;
&lt;br /&gt;
Voici le programme correspondant au mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:detecter balle.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:detection_balle.mp4]]&lt;br /&gt;
&lt;br /&gt;
==2.3/ Utilisation du capteur des couleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le capteur de couleur permet au robot de ne pas sortir des limites du terrain. Il permet aussi, sur ordre de l&amp;#039;arbitre de se remettre en place sur le terrain pour un nouveau coup d&amp;#039;envoi.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_couleur_1.mp4]]&lt;br /&gt;
&lt;br /&gt;
==2.4/ Utilisation de l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Grâce à l&amp;#039;écran du robot Mindstorm Ev3, doté d&amp;#039;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&amp;#039;agit entre autre du capteur de proximité.&lt;br /&gt;
&lt;br /&gt;
[[Média:diapo_ecran.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==2.5/ Utilisation des hauts-parleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le Mindstorm Ev3 est doté d&amp;#039;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&amp;#039;exécution d&amp;#039;une action. Conjointement à l&amp;#039;affichage d&amp;#039;une &amp;quot;émotion&amp;quot; sur l&amp;#039;écran du robot. Cela donne vie au robot et il peut trouver une utilité dans l&amp;#039;aspect esthétique de ce dernier.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple haut parleur.mp4]]&lt;br /&gt;
&lt;br /&gt;
==2.6/ Utilisation du capteur tactile / des boutons situés sous l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Le robot est doté d&amp;#039;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&amp;#039;il a bien attrapé la balle ou pas.&lt;br /&gt;
* Il y a des touches de directions situés sous l&amp;#039;écran pour naviguer dans l&amp;#039;interface de la brique. Le bouton en haut à droite permet de sortir d&amp;#039;un menu et de revenir en arrière. Dans le menu principal il permet d&amp;#039;afficher l&amp;#039;invite pour éteindre la brique.&lt;br /&gt;
* Dans cet exemple, le robot s&amp;#039;axe vers la balle, se dirige vers elle et dès qu&amp;#039;il y a contact le robot s&amp;#039;arrête.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_tactile.mp4]]&lt;br /&gt;
&lt;br /&gt;
==2.7/ Utilisation du capteurs de proximité ==&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;#039;arrêter au niveau de celui-ci sans rentrer en collision.&lt;br /&gt;
&lt;br /&gt;
==2.8/ Le système de propulsion de la balle ==&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;envoyer la balle dans la cage de but adverse.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
Voici le programme qui correspond à mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Moteur propulsion balle.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple propulsion.mp4]]&lt;br /&gt;
&lt;br /&gt;
* Reste ensuite à construire un système pour contenir la balle le temps de la rotation et réussir à la propulser avec beaucoup de force.&lt;br /&gt;
&lt;br /&gt;
= Bluetooth =&lt;br /&gt;
  Comment effectuer une liaison bluetooth avec les robots mindstorms ?&lt;br /&gt;
&lt;br /&gt;
= Test match =&lt;br /&gt;
  À faire au plus tôt : Il s&amp;#039;agit de faire un match et de commencer à effectuer les dernières modifications&lt;br /&gt;
&lt;br /&gt;
= Problèmes rencontrés =&lt;br /&gt;
Au cours de notre étude, nous avons rencontrés beaucoup de difficultés :&lt;br /&gt;
* Premièrement : le robot Mindstorm Ev3 est le modèle le plus récent, donc le projet n&amp;#039;a pas assez de recul, les autres groupes ont utilisé les robots Mindstorm NXT et ont disposé du logiciel de programmation Bricxcc, langage utilisé lors des années précédentes et aussi très abouti, car permettant de faire plus de choses que ne le permet le logiciel graphique Lego Mindstorm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Construction mécanique du robot : nous avons également eu des difficultés lors de la construction mécanique du robot ; celui-ci doit être stable et équilibré, embarquer plusieurs capteurs et moteurs, ceux-ci ne devant pas interférer entre eux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Pour ce qui est de la partie logicielle, 2 à 3 séances suffisent pour prendre en main le logiciel. Ensuite il suffit de réfléchir et comprendre la logique de ce logiciel de programmation graphique. Il y a quelques manipulations à effectuer pour importer des briques (cela sert à rendre compatible avec le EV3 un capteur fabriqué pour les NXT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Twiki : Pour ce qui est du twiki, il a fallu modifier d&amp;#039;autres twiki pour en voir la syntaxe et comprendre comment cette dernière fonctionne dans les twiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Il n&amp;#039;est cependant pas possible de discriminer les différentes fréquences des signaux infrarouges (celles des buts et celui de la balle) avec le logiciel graphique. Ce qui rend le bureau d&amp;#039;étude impossible avec le robot EV3 et le système de programmation proposé par LEGO.&lt;br /&gt;
&lt;br /&gt;
= Voir aussi =&lt;br /&gt;
&lt;br /&gt;
== Articles connexes ==&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms Ev3]&lt;br /&gt;
&lt;br /&gt;
== Liens externes ==&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/ Site officiel lego mindstorm]&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/downloads Téléchargements de l&amp;#039;IDE] - Integrated Developpement Environnement, l&amp;#039;environnement de programmation graphique officiel. Celui utilisé lors de ce bureau d&amp;#039;étude.&lt;br /&gt;
&lt;br /&gt;
* [http://bricxcc.sourceforge.net/ Site du projet Bricxcc] - à suivre pour voir l&amp;#039;avancement du projet Bricxcc pour les Ev3&lt;br /&gt;
* [http://www.robotc.net/download/lego/ Site de téléchargement du logiciel de programmation alternatif RobotC]&lt;/div&gt;</summary>
		<author><name>Ltombazz</name></author>
	</entry>
	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3812</id>
		<title>RobotCompetition2014-1</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3812"/>
		<updated>2015-04-20T07:19:46Z</updated>

		<summary type="html">&lt;p&gt;Ltombazz : /* Introduction : cadre de travail et présentation du bureau d&amp;#039;étude */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 1/ Introduction : cadre de travail et présentation du bureau d&amp;#039;étude =&lt;br /&gt;
&lt;br /&gt;
* Le bureau d&amp;#039;étude est une initiation à la pédagogie par projet dont nous allons être confronté lors de notre cycle ingénieur et même dans notre avenir professionnel. Une problématique, des outils adaptés et une &amp;quot;étude&amp;quot; du problème sont nécessaires pour répondre à des objectifs fixés en début de semestre. Nous avons choisi le bureau d&amp;#039;étude IMA parce que nous étions intéressés par le domaine de l&amp;#039;électronique et des systèmes embarqués. C&amp;#039;était donc le bureau d&amp;#039;étude qui paraissait le plus intéressant par l&amp;#039;aspect constructif, la programmation et l&amp;#039;application rapide et concrète du projet proposé.&lt;br /&gt;
&lt;br /&gt;
* En 1ère séance, les enseignants 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&amp;#039;occupent respectivement d&amp;#039;une partie du projet. Ce qui, une fois rassembler, permettra à des robots de jouer de manière autonome sur un terrain. Chaque binôme aura donc pour tâche de s&amp;#039;occuper soit :&lt;br /&gt;
** d&amp;#039;une cage de buts (2 au total)&lt;br /&gt;
** de robots de compétition (4 au total)&lt;br /&gt;
** d&amp;#039;un arbitre&lt;br /&gt;
** et d&amp;#039;un robot ramasseur de balle (2 au total)&lt;br /&gt;
&lt;br /&gt;
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&amp;#039;essai de la dernière génération de robot lego Mindstorm : la série Ev3.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boite_mindstormev3.jpeg|300px]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc pour cahier de charge le suivant :&lt;br /&gt;
&lt;br /&gt;
* 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 de différentes couleurs ainsi que les robots adverses;&lt;br /&gt;
* Avancer vers la balle (avec des moteurs);&lt;br /&gt;
* Attraper la balle (en utilisant le dernier moteur disponible);&lt;br /&gt;
* S&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
Pour cela notre robot est équipé de différents capteurs et moteurs ainsi qu&amp;#039;une panoplie de briques (de construction technique) et un &amp;quot;centre nerveux&amp;quot; appelé &amp;quot;brique programmable&amp;quot;, permettant de contrôler les différents moteurs et de lire les valeurs des capteurs qui donne vie au robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc à notre disposition :&lt;br /&gt;
&lt;br /&gt;
- 3 moteurs;&lt;br /&gt;
&lt;br /&gt;
- 4 capteurs : couleur, proximité, tactile et infrarouge;&lt;br /&gt;
&lt;br /&gt;
- 1 brique programmable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.1/ Le robot : Lego Mindstorm Ev3 ==&lt;br /&gt;
Dans un premier temps, par manque d&amp;#039;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&amp;#039;ils ne se masquent pas entre eux, tout en leur permettant de fonctionner correctement et d&amp;#039;interagir avec la balle.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:robot_prototype1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== 1.2/ Seconde étape du projet : mise en place de l&amp;#039;environnement de programmation ==&lt;br /&gt;
* Les trois séances suivantes nous avons cherché à faire vivre le robot EV3. Nous avons essayé d&amp;#039;installer le logiciel Bricxcc sous les conseils avisés des responsables du bureau d&amp;#039;étude. Bricxcc est un projet permettant de programmer la brique Ev3 avec un langage de programmation proche du C. Après plusieurs tentatives d&amp;#039;installations, nous nous sommes rendus compte que le logiciel Bricxcc ne serait probablement pas notre environnement de programmation.&lt;br /&gt;
* 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&amp;#039;avec l&amp;#039;environnement de programmation graphique conçu pour les NXT). Il ne l&amp;#039;est cependant qu&amp;#039;à moitié pour les Ev3 puisque nous pouvons transférer un programme édité par Bricxcc sur la brique Ev3 mais cette dernière ne peut pas l&amp;#039;exécuter.&lt;br /&gt;
* Nous avons eu aussi l&amp;#039;occasion de découvrir un autre logiciel appelé RobotC, qui comme son nom l&amp;#039;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&amp;#039;essai ne durant que dix jours nous n&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
== 1.3/ Prise en main du logiciel de programmation graphique et première approche ==&lt;br /&gt;
* 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&amp;#039;on doit assembler des blocs et de manière très réductrice, on peut dire qu&amp;#039;il s&amp;#039;agit d&amp;#039;un puzzle à assembler (le logiciel étant destiné à un jeune âge).&lt;br /&gt;
* Un point important à noter est que l&amp;#039;on peut par analogie à un langage de programmation en &amp;quot;texte&amp;quot;, créer des fonctions pour ainsi factoriser le code et le rendre plus compréhensible pour le lecteur.&lt;br /&gt;
* Ici ce sont des &amp;quot;blocs&amp;quot;, constitués eux-même d&amp;#039;un assemblage de blocs. Il est ainsi facile de créer un bloc nommé &amp;quot;chercher_balle&amp;quot; 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&amp;#039;on ait l&amp;#039;illusion que le robot est autonome.&lt;br /&gt;
&lt;br /&gt;
[[Média:suivi ligne.mp4]]&lt;br /&gt;
&lt;br /&gt;
= Fonctionnement mécanique =&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
== Avancer/ reculer ==&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
[[Média:translation_rotation.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Détection de la balle ==&lt;br /&gt;
&lt;br /&gt;
* Ici le robot cherche la balle en s&amp;#039;orientant dans la même direction que celui-ci.&lt;br /&gt;
&lt;br /&gt;
Voici le programme correspondant au mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:detecter balle.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:detection_balle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur des couleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le capteur de couleur permet au robot de ne pas sortir des limites du terrain. Il permet aussi, sur ordre de l&amp;#039;arbitre de se remettre en place sur le terrain pour un nouveau coup d&amp;#039;envoi.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_couleur_1.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation de l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Grâce à l&amp;#039;écran du robot Mindstorm Ev3, doté d&amp;#039;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&amp;#039;agit entre autre du capteur de proximité.&lt;br /&gt;
&lt;br /&gt;
[[Média:diapo_ecran.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilisation des hauts-parleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le Mindstorm Ev3 est doté d&amp;#039;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&amp;#039;exécution d&amp;#039;une action. Conjointement à l&amp;#039;affichage d&amp;#039;une &amp;quot;émotion&amp;quot; sur l&amp;#039;écran du robot. Cela donne vie au robot et il peut trouver une utilité dans l&amp;#039;aspect esthétique de ce dernier.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple haut parleur.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur tactile / des boutons situés sous l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Le robot est doté d&amp;#039;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&amp;#039;il a bien attrapé la balle ou pas.&lt;br /&gt;
* Il y a des touches de directions situés sous l&amp;#039;écran pour naviguer dans l&amp;#039;interface de la brique. Le bouton en haut à droite permet de sortir d&amp;#039;un menu et de revenir en arrière. Dans le menu principal il permet d&amp;#039;afficher l&amp;#039;invite pour éteindre la brique.&lt;br /&gt;
* Dans cet exemple, le robot s&amp;#039;axe vers la balle, se dirige vers elle et dès qu&amp;#039;il y a contact le robot s&amp;#039;arrête.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_tactile.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteurs de proximité ==&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;#039;arrêter au niveau de celui-ci sans rentrer en collision.&lt;br /&gt;
&lt;br /&gt;
== Le système de propulsion de la balle ==&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;envoyer la balle dans la cage de but adverse.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
Voici le programme qui correspond à mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Moteur propulsion balle.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple propulsion.mp4]]&lt;br /&gt;
&lt;br /&gt;
* Reste ensuite à construire un système pour contenir la balle le temps de la rotation et réussir à la propulser avec beaucoup de force.&lt;br /&gt;
&lt;br /&gt;
= Bluetooth =&lt;br /&gt;
  Comment effectuer une liaison bluetooth avec les robots mindstorms ?&lt;br /&gt;
&lt;br /&gt;
= Test match =&lt;br /&gt;
  À faire au plus tôt : Il s&amp;#039;agit de faire un match et de commencer à effectuer les dernières modifications&lt;br /&gt;
&lt;br /&gt;
= Problèmes rencontrés =&lt;br /&gt;
Au cours de notre étude, nous avons rencontrés beaucoup de difficultés :&lt;br /&gt;
* Premièrement : le robot Mindstorm Ev3 est le modèle le plus récent, donc le projet n&amp;#039;a pas assez de recul, les autres groupes ont utilisé les robots Mindstorm NXT et ont disposé du logiciel de programmation Bricxcc, langage utilisé lors des années précédentes et aussi très abouti, car permettant de faire plus de choses que ne le permet le logiciel graphique Lego Mindstorm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Construction mécanique du robot : nous avons également eu des difficultés lors de la construction mécanique du robot ; celui-ci doit être stable et équilibré, embarquer plusieurs capteurs et moteurs, ceux-ci ne devant pas interférer entre eux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Pour ce qui est de la partie logicielle, 2 à 3 séances suffisent pour prendre en main le logiciel. Ensuite il suffit de réfléchir et comprendre la logique de ce logiciel de programmation graphique. Il y a quelques manipulations à effectuer pour importer des briques (cela sert à rendre compatible avec le EV3 un capteur fabriqué pour les NXT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Twiki : Pour ce qui est du twiki, il a fallu modifier d&amp;#039;autres twiki pour en voir la syntaxe et comprendre comment cette dernière fonctionne dans les twiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Il n&amp;#039;est cependant pas possible de discriminer les différentes fréquences des signaux infrarouges (celles des buts et celui de la balle) avec le logiciel graphique. Ce qui rend le bureau d&amp;#039;étude impossible avec le robot EV3 et le système de programmation proposé par LEGO.&lt;br /&gt;
&lt;br /&gt;
= Voir aussi =&lt;br /&gt;
&lt;br /&gt;
== Articles connexes ==&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms Ev3]&lt;br /&gt;
&lt;br /&gt;
== Liens externes ==&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/ Site officiel lego mindstorm]&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/downloads Téléchargements de l&amp;#039;IDE] - Integrated Developpement Environnement, l&amp;#039;environnement de programmation graphique officiel. Celui utilisé lors de ce bureau d&amp;#039;étude.&lt;br /&gt;
&lt;br /&gt;
* [http://bricxcc.sourceforge.net/ Site du projet Bricxcc] - à suivre pour voir l&amp;#039;avancement du projet Bricxcc pour les Ev3&lt;br /&gt;
* [http://www.robotc.net/download/lego/ Site de téléchargement du logiciel de programmation alternatif RobotC]&lt;/div&gt;</summary>
		<author><name>Ltombazz</name></author>
	</entry>
	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3811</id>
		<title>RobotCompetition2014-1</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3811"/>
		<updated>2015-04-20T07:18:20Z</updated>

		<summary type="html">&lt;p&gt;Ltombazz : /* Introduction : cadre de travail et présentation du bureau d&amp;#039;étude */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction : cadre de travail et présentation du bureau d&amp;#039;étude =&lt;br /&gt;
&lt;br /&gt;
* Le bureau d&amp;#039;étude est une initiation à la pédagogie par projet dont nous allons être confronté lors de notre cycle ingénieur et même dans notre avenir professionnel. Une problématique, des outils adaptés et une &amp;quot;étude&amp;quot; du problème sont nécessaires pour répondre à des objectifs fixés en début de semestre. Nous avons choisi le bureau d&amp;#039;étude IMA parce que nous étions intéressés par le domaine de l&amp;#039;électronique et des systèmes embarqués. C&amp;#039;était donc le bureau d&amp;#039;étude qui paraissait le plus intéressant par l&amp;#039;aspect constructif, la programmation et l&amp;#039;application rapide et concrète du projet proposé.&lt;br /&gt;
&lt;br /&gt;
* En 1ère séance, les enseignants 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&amp;#039;occupent respectivement d&amp;#039;une partie du projet. Ce qui, une fois rassembler, permettra à des robots de jouer de manière autonome sur un terrain. Chaque binôme aura donc pour tâche de s&amp;#039;occuper soit :&lt;br /&gt;
** d&amp;#039;une cage de buts (2 au total)&lt;br /&gt;
** de robots de compétition (4 au total)&lt;br /&gt;
** d&amp;#039;un arbitre&lt;br /&gt;
** et d&amp;#039;un robot ramasseur de balle (2 au total)&lt;br /&gt;
&lt;br /&gt;
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&amp;#039;essai de la dernière génération de robot lego Mindstorm : la série Ev3.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boite_mindstormev3.jpeg|300px]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc pour cahier de charge le suivant :&lt;br /&gt;
&lt;br /&gt;
* 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 de différentes couleurs ainsi que les robots adverses;&lt;br /&gt;
* Avancer vers la balle (avec des moteurs);&lt;br /&gt;
* Attraper la balle (en utilisant le dernier moteur disponible);&lt;br /&gt;
* S&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
Pour cela notre robot est équipé de différents capteurs et moteurs ainsi qu&amp;#039;une panoplie de briques (de construction technique) et un &amp;quot;centre nerveux&amp;quot; appelé &amp;quot;brique programmable&amp;quot;, permettant de contrôler les différents moteurs et de lire les valeurs des capteurs qui donne vie au robot.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc à notre disposition :&lt;br /&gt;
&lt;br /&gt;
- 3 moteurs;&lt;br /&gt;
&lt;br /&gt;
- 4 capteurs : couleur, proximité, tactile et infrarouge;&lt;br /&gt;
&lt;br /&gt;
- 1 brique programmable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le robot : Lego Mindstorm Ev3 ==&lt;br /&gt;
Dans un premier temps, par manque d&amp;#039;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&amp;#039;ils ne se masquent pas entre eux, tout en leur permettant de fonctionner correctement et d&amp;#039;interagir avec la balle.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:robot_prototype1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== Seconde étape du projet : mise en place de l&amp;#039;environnement de programmation ==&lt;br /&gt;
* Les trois séances suivantes nous avons cherché à faire vivre le robot EV3. Nous avons essayé d&amp;#039;installer le logiciel Bricxcc sous les conseils avisés des responsables du bureau d&amp;#039;étude. Bricxcc est un projet permettant de programmer la brique Ev3 avec un langage de programmation proche du C. Après plusieurs tentatives d&amp;#039;installations, nous nous sommes rendus compte que le logiciel Bricxcc ne serait probablement pas notre environnement de programmation.&lt;br /&gt;
* 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&amp;#039;avec l&amp;#039;environnement de programmation graphique conçu pour les NXT). Il ne l&amp;#039;est cependant qu&amp;#039;à moitié pour les Ev3 puisque nous pouvons transférer un programme édité par Bricxcc sur la brique Ev3 mais cette dernière ne peut pas l&amp;#039;exécuter.&lt;br /&gt;
* Nous avons eu aussi l&amp;#039;occasion de découvrir un autre logiciel appelé RobotC, qui comme son nom l&amp;#039;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&amp;#039;essai ne durant que dix jours nous n&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
== Prise en main du logiciel de programmation graphique et première approche ==&lt;br /&gt;
* 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&amp;#039;on doit assembler des blocs et de manière très réductrice, on peut dire qu&amp;#039;il s&amp;#039;agit d&amp;#039;un puzzle à assembler (le logiciel étant destiné à un jeune âge).&lt;br /&gt;
* Un point important à noter est que l&amp;#039;on peut par analogie à un langage de programmation en &amp;quot;texte&amp;quot;, créer des fonctions pour ainsi factoriser le code et le rendre plus compréhensible pour le lecteur.&lt;br /&gt;
* Ici ce sont des &amp;quot;blocs&amp;quot;, constitués eux-même d&amp;#039;un assemblage de blocs. Il est ainsi facile de créer un bloc nommé &amp;quot;chercher_balle&amp;quot; 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&amp;#039;on ait l&amp;#039;illusion que le robot est autonome.&lt;br /&gt;
&lt;br /&gt;
[[Média:suivi ligne.mp4]]&lt;br /&gt;
&lt;br /&gt;
= Fonctionnement mécanique =&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
== Avancer/ reculer ==&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
[[Média:translation_rotation.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Détection de la balle ==&lt;br /&gt;
&lt;br /&gt;
* Ici le robot cherche la balle en s&amp;#039;orientant dans la même direction que celui-ci.&lt;br /&gt;
&lt;br /&gt;
Voici le programme correspondant au mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:detecter balle.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:detection_balle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur des couleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le capteur de couleur permet au robot de ne pas sortir des limites du terrain. Il permet aussi, sur ordre de l&amp;#039;arbitre de se remettre en place sur le terrain pour un nouveau coup d&amp;#039;envoi.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_couleur_1.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation de l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Grâce à l&amp;#039;écran du robot Mindstorm Ev3, doté d&amp;#039;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&amp;#039;agit entre autre du capteur de proximité.&lt;br /&gt;
&lt;br /&gt;
[[Média:diapo_ecran.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilisation des hauts-parleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le Mindstorm Ev3 est doté d&amp;#039;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&amp;#039;exécution d&amp;#039;une action. Conjointement à l&amp;#039;affichage d&amp;#039;une &amp;quot;émotion&amp;quot; sur l&amp;#039;écran du robot. Cela donne vie au robot et il peut trouver une utilité dans l&amp;#039;aspect esthétique de ce dernier.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple haut parleur.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur tactile / des boutons situés sous l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Le robot est doté d&amp;#039;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&amp;#039;il a bien attrapé la balle ou pas.&lt;br /&gt;
* Il y a des touches de directions situés sous l&amp;#039;écran pour naviguer dans l&amp;#039;interface de la brique. Le bouton en haut à droite permet de sortir d&amp;#039;un menu et de revenir en arrière. Dans le menu principal il permet d&amp;#039;afficher l&amp;#039;invite pour éteindre la brique.&lt;br /&gt;
* Dans cet exemple, le robot s&amp;#039;axe vers la balle, se dirige vers elle et dès qu&amp;#039;il y a contact le robot s&amp;#039;arrête.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_tactile.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteurs de proximité ==&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;#039;arrêter au niveau de celui-ci sans rentrer en collision.&lt;br /&gt;
&lt;br /&gt;
== Le système de propulsion de la balle ==&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;envoyer la balle dans la cage de but adverse.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
Voici le programme qui correspond à mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Moteur propulsion balle.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple propulsion.mp4]]&lt;br /&gt;
&lt;br /&gt;
* Reste ensuite à construire un système pour contenir la balle le temps de la rotation et réussir à la propulser avec beaucoup de force.&lt;br /&gt;
&lt;br /&gt;
= Bluetooth =&lt;br /&gt;
  Comment effectuer une liaison bluetooth avec les robots mindstorms ?&lt;br /&gt;
&lt;br /&gt;
= Test match =&lt;br /&gt;
  À faire au plus tôt : Il s&amp;#039;agit de faire un match et de commencer à effectuer les dernières modifications&lt;br /&gt;
&lt;br /&gt;
= Problèmes rencontrés =&lt;br /&gt;
Au cours de notre étude, nous avons rencontrés beaucoup de difficultés :&lt;br /&gt;
* Premièrement : le robot Mindstorm Ev3 est le modèle le plus récent, donc le projet n&amp;#039;a pas assez de recul, les autres groupes ont utilisé les robots Mindstorm NXT et ont disposé du logiciel de programmation Bricxcc, langage utilisé lors des années précédentes et aussi très abouti, car permettant de faire plus de choses que ne le permet le logiciel graphique Lego Mindstorm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Construction mécanique du robot : nous avons également eu des difficultés lors de la construction mécanique du robot ; celui-ci doit être stable et équilibré, embarquer plusieurs capteurs et moteurs, ceux-ci ne devant pas interférer entre eux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Pour ce qui est de la partie logicielle, 2 à 3 séances suffisent pour prendre en main le logiciel. Ensuite il suffit de réfléchir et comprendre la logique de ce logiciel de programmation graphique. Il y a quelques manipulations à effectuer pour importer des briques (cela sert à rendre compatible avec le EV3 un capteur fabriqué pour les NXT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Twiki : Pour ce qui est du twiki, il a fallu modifier d&amp;#039;autres twiki pour en voir la syntaxe et comprendre comment cette dernière fonctionne dans les twiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Il n&amp;#039;est cependant pas possible de discriminer les différentes fréquences des signaux infrarouges (celles des buts et celui de la balle) avec le logiciel graphique. Ce qui rend le bureau d&amp;#039;étude impossible avec le robot EV3 et le système de programmation proposé par LEGO.&lt;br /&gt;
&lt;br /&gt;
= Voir aussi =&lt;br /&gt;
&lt;br /&gt;
== Articles connexes ==&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms Ev3]&lt;br /&gt;
&lt;br /&gt;
== Liens externes ==&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/ Site officiel lego mindstorm]&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/downloads Téléchargements de l&amp;#039;IDE] - Integrated Developpement Environnement, l&amp;#039;environnement de programmation graphique officiel. Celui utilisé lors de ce bureau d&amp;#039;étude.&lt;br /&gt;
&lt;br /&gt;
* [http://bricxcc.sourceforge.net/ Site du projet Bricxcc] - à suivre pour voir l&amp;#039;avancement du projet Bricxcc pour les Ev3&lt;br /&gt;
* [http://www.robotc.net/download/lego/ Site de téléchargement du logiciel de programmation alternatif RobotC]&lt;/div&gt;</summary>
		<author><name>Ltombazz</name></author>
	</entry>
	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3810</id>
		<title>RobotCompetition2014-1</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3810"/>
		<updated>2015-04-20T07:16:53Z</updated>

		<summary type="html">&lt;p&gt;Ltombazz : /* Introduction : cadre de travail et présentation du bureau d&amp;#039;étude */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction : cadre de travail et présentation du bureau d&amp;#039;étude =&lt;br /&gt;
&lt;br /&gt;
* Le bureau d&amp;#039;étude est une initiation à la pédagogie par projet dont nous allons être confronté lors de notre cycle ingénieur et même dans notre avenir professionnel. Une problématique, des outils adaptés et une &amp;quot;étude&amp;quot; du problème sont nécessaires pour répondre à des objectifs fixés en début de semestre. Nous avons choisi le bureau d&amp;#039;étude IMA parce que nous étions intéressés par le domaine de l&amp;#039;électronique et des systèmes embarqués. C&amp;#039;était donc le bureau d&amp;#039;étude qui paraissait le plus intéressant par l&amp;#039;aspect constructif, la programmation et l&amp;#039;application rapide et concrète du projet proposé.&lt;br /&gt;
&lt;br /&gt;
* En 1ère séance, les enseignants 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&amp;#039;occupent respectivement d&amp;#039;une partie du projet. Ce qui, une fois rassembler, permettra à des robots de jouer de manière autonome sur un terrain. Chaque binôme aura donc pour tâche de s&amp;#039;occuper soit :&lt;br /&gt;
** d&amp;#039;une cage de buts (2 au total)&lt;br /&gt;
** de robots de compétition (4 au total)&lt;br /&gt;
** d&amp;#039;un arbitre&lt;br /&gt;
** et d&amp;#039;un robot ramasseur de balle (2 au total)&lt;br /&gt;
&lt;br /&gt;
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&amp;#039;essai de la dernière génération de robot lego Mindstorm : la série Ev3.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boite_mindstormev3.jpeg|300px]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc pour cahier de charge le suivant :&lt;br /&gt;
&lt;br /&gt;
* 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 de différentes couleurs ainsi que les robots adverses;&lt;br /&gt;
* Avancer vers la balle (avec des moteurs);&lt;br /&gt;
* Attraper la balle (en utilisant le dernier moteur disponible);&lt;br /&gt;
* S&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
Pour cela notre robot est équipé de différents capteurs et moteurs ainsi qu&amp;#039;une panoplie de briques (de construction technique) et un &amp;quot;centre nerveux&amp;quot; appelé &amp;quot;brique programmable&amp;quot;, permettant de contrôler les différents moteurs et de lire les valeurs des capteurs qui donne vie au robot.&lt;br /&gt;
Nous avons donc à notre disposition :&lt;br /&gt;
- 3 moteurs.&lt;br /&gt;
- 4 capteurs : couleur, proximité, tactile et infrarouge.&lt;br /&gt;
- 1 brique programmable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le robot : Lego Mindstorm Ev3 ==&lt;br /&gt;
Dans un premier temps, par manque d&amp;#039;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&amp;#039;ils ne se masquent pas entre eux, tout en leur permettant de fonctionner correctement et d&amp;#039;interagir avec la balle.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:robot_prototype1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== Seconde étape du projet : mise en place de l&amp;#039;environnement de programmation ==&lt;br /&gt;
* Les trois séances suivantes nous avons cherché à faire vivre le robot EV3. Nous avons essayé d&amp;#039;installer le logiciel Bricxcc sous les conseils avisés des responsables du bureau d&amp;#039;étude. Bricxcc est un projet permettant de programmer la brique Ev3 avec un langage de programmation proche du C. Après plusieurs tentatives d&amp;#039;installations, nous nous sommes rendus compte que le logiciel Bricxcc ne serait probablement pas notre environnement de programmation.&lt;br /&gt;
* 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&amp;#039;avec l&amp;#039;environnement de programmation graphique conçu pour les NXT). Il ne l&amp;#039;est cependant qu&amp;#039;à moitié pour les Ev3 puisque nous pouvons transférer un programme édité par Bricxcc sur la brique Ev3 mais cette dernière ne peut pas l&amp;#039;exécuter.&lt;br /&gt;
* Nous avons eu aussi l&amp;#039;occasion de découvrir un autre logiciel appelé RobotC, qui comme son nom l&amp;#039;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&amp;#039;essai ne durant que dix jours nous n&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
== Prise en main du logiciel de programmation graphique et première approche ==&lt;br /&gt;
* 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&amp;#039;on doit assembler des blocs et de manière très réductrice, on peut dire qu&amp;#039;il s&amp;#039;agit d&amp;#039;un puzzle à assembler (le logiciel étant destiné à un jeune âge).&lt;br /&gt;
* Un point important à noter est que l&amp;#039;on peut par analogie à un langage de programmation en &amp;quot;texte&amp;quot;, créer des fonctions pour ainsi factoriser le code et le rendre plus compréhensible pour le lecteur.&lt;br /&gt;
* Ici ce sont des &amp;quot;blocs&amp;quot;, constitués eux-même d&amp;#039;un assemblage de blocs. Il est ainsi facile de créer un bloc nommé &amp;quot;chercher_balle&amp;quot; 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&amp;#039;on ait l&amp;#039;illusion que le robot est autonome.&lt;br /&gt;
&lt;br /&gt;
[[Média:suivi ligne.mp4]]&lt;br /&gt;
&lt;br /&gt;
= Fonctionnement mécanique =&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
== Avancer/ reculer ==&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
[[Média:translation_rotation.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Détection de la balle ==&lt;br /&gt;
&lt;br /&gt;
* Ici le robot cherche la balle en s&amp;#039;orientant dans la même direction que celui-ci.&lt;br /&gt;
&lt;br /&gt;
Voici le programme correspondant au mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:detecter balle.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:detection_balle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur des couleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le capteur de couleur permet au robot de ne pas sortir des limites du terrain. Il permet aussi, sur ordre de l&amp;#039;arbitre de se remettre en place sur le terrain pour un nouveau coup d&amp;#039;envoi.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_couleur_1.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation de l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Grâce à l&amp;#039;écran du robot Mindstorm Ev3, doté d&amp;#039;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&amp;#039;agit entre autre du capteur de proximité.&lt;br /&gt;
&lt;br /&gt;
[[Média:diapo_ecran.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilisation des hauts-parleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le Mindstorm Ev3 est doté d&amp;#039;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&amp;#039;exécution d&amp;#039;une action. Conjointement à l&amp;#039;affichage d&amp;#039;une &amp;quot;émotion&amp;quot; sur l&amp;#039;écran du robot. Cela donne vie au robot et il peut trouver une utilité dans l&amp;#039;aspect esthétique de ce dernier.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple haut parleur.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur tactile / des boutons situés sous l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Le robot est doté d&amp;#039;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&amp;#039;il a bien attrapé la balle ou pas.&lt;br /&gt;
* Il y a des touches de directions situés sous l&amp;#039;écran pour naviguer dans l&amp;#039;interface de la brique. Le bouton en haut à droite permet de sortir d&amp;#039;un menu et de revenir en arrière. Dans le menu principal il permet d&amp;#039;afficher l&amp;#039;invite pour éteindre la brique.&lt;br /&gt;
* Dans cet exemple, le robot s&amp;#039;axe vers la balle, se dirige vers elle et dès qu&amp;#039;il y a contact le robot s&amp;#039;arrête.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_tactile.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteurs de proximité ==&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;#039;arrêter au niveau de celui-ci sans rentrer en collision.&lt;br /&gt;
&lt;br /&gt;
== Le système de propulsion de la balle ==&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;envoyer la balle dans la cage de but adverse.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
Voici le programme qui correspond à mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Moteur propulsion balle.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple propulsion.mp4]]&lt;br /&gt;
&lt;br /&gt;
* Reste ensuite à construire un système pour contenir la balle le temps de la rotation et réussir à la propulser avec beaucoup de force.&lt;br /&gt;
&lt;br /&gt;
= Bluetooth =&lt;br /&gt;
  Comment effectuer une liaison bluetooth avec les robots mindstorms ?&lt;br /&gt;
&lt;br /&gt;
= Test match =&lt;br /&gt;
  À faire au plus tôt : Il s&amp;#039;agit de faire un match et de commencer à effectuer les dernières modifications&lt;br /&gt;
&lt;br /&gt;
= Problèmes rencontrés =&lt;br /&gt;
Au cours de notre étude, nous avons rencontrés beaucoup de difficultés :&lt;br /&gt;
* Premièrement : le robot Mindstorm Ev3 est le modèle le plus récent, donc le projet n&amp;#039;a pas assez de recul, les autres groupes ont utilisé les robots Mindstorm NXT et ont disposé du logiciel de programmation Bricxcc, langage utilisé lors des années précédentes et aussi très abouti, car permettant de faire plus de choses que ne le permet le logiciel graphique Lego Mindstorm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Construction mécanique du robot : nous avons également eu des difficultés lors de la construction mécanique du robot ; celui-ci doit être stable et équilibré, embarquer plusieurs capteurs et moteurs, ceux-ci ne devant pas interférer entre eux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Pour ce qui est de la partie logicielle, 2 à 3 séances suffisent pour prendre en main le logiciel. Ensuite il suffit de réfléchir et comprendre la logique de ce logiciel de programmation graphique. Il y a quelques manipulations à effectuer pour importer des briques (cela sert à rendre compatible avec le EV3 un capteur fabriqué pour les NXT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Twiki : Pour ce qui est du twiki, il a fallu modifier d&amp;#039;autres twiki pour en voir la syntaxe et comprendre comment cette dernière fonctionne dans les twiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Il n&amp;#039;est cependant pas possible de discriminer les différentes fréquences des signaux infrarouges (celles des buts et celui de la balle) avec le logiciel graphique. Ce qui rend le bureau d&amp;#039;étude impossible avec le robot EV3 et le système de programmation proposé par LEGO.&lt;br /&gt;
&lt;br /&gt;
= Voir aussi =&lt;br /&gt;
&lt;br /&gt;
== Articles connexes ==&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms Ev3]&lt;br /&gt;
&lt;br /&gt;
== Liens externes ==&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/ Site officiel lego mindstorm]&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/downloads Téléchargements de l&amp;#039;IDE] - Integrated Developpement Environnement, l&amp;#039;environnement de programmation graphique officiel. Celui utilisé lors de ce bureau d&amp;#039;étude.&lt;br /&gt;
&lt;br /&gt;
* [http://bricxcc.sourceforge.net/ Site du projet Bricxcc] - à suivre pour voir l&amp;#039;avancement du projet Bricxcc pour les Ev3&lt;br /&gt;
* [http://www.robotc.net/download/lego/ Site de téléchargement du logiciel de programmation alternatif RobotC]&lt;/div&gt;</summary>
		<author><name>Ltombazz</name></author>
	</entry>
	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3809</id>
		<title>RobotCompetition2014-1</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3809"/>
		<updated>2015-04-20T07:06:03Z</updated>

		<summary type="html">&lt;p&gt;Ltombazz : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction : cadre de travail et présentation du bureau d&amp;#039;étude =&lt;br /&gt;
&lt;br /&gt;
* Le bureau d&amp;#039;étude est une initiation à la pédagogie par projet dont nous allons être confronté lors de notre cycle ingénieur et même dans notre avenir professionnel. Une problématique, des outils adaptés et une &amp;quot;étude&amp;quot; du problème sont nécessaires pour répondre à des objectifs fixés en début de semestre. Nous avons choisi le bureau d&amp;#039;étude IMA parce que nous étions intéressés par le domaine de l&amp;#039;électronique et des systèmes embarqués. C&amp;#039;était donc le bureau d&amp;#039;étude qui paraissait le plus intéressant par l&amp;#039;aspect constructif, la programmation et l&amp;#039;application rapide et concrète du projet proposé.&lt;br /&gt;
&lt;br /&gt;
* En 1ère séance, les enseignants 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&amp;#039;occupent respectivement d&amp;#039;une partie du projet. Ce qui, une fois rassembler, permettra à des robots de jouer de manière autonome sur un terrain. Chaque binôme aura donc pour tâche de s&amp;#039;occuper soit :&lt;br /&gt;
** d&amp;#039;une cage de buts (2 au total)&lt;br /&gt;
** de robots de compétition (4 au total)&lt;br /&gt;
** d&amp;#039;un arbitre&lt;br /&gt;
** et d&amp;#039;un robot ramasseur de balle (2 au total)&lt;br /&gt;
&lt;br /&gt;
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&amp;#039;essai de la dernière génération de robot lego Mindstorm : la série Ev3.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boite_mindstormev3.jpeg|300px]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc pour cahier de charge le suivant :&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Avancer vers la balle (avec des moteurs)&lt;br /&gt;
* S&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
Pour cela notre robot est équipé de différents capteurs et moteurs ainsi qu&amp;#039;une panoplie de briques (de construction technique) et un &amp;quot;centre nerveux&amp;quot; appelé &amp;quot;brique programmable&amp;quot;, permettant de contrôler les différents moteurs, et de lire les valeurs des capteurs qui donne vie au robot.&lt;br /&gt;
Nous avons donc à notre disposition :&lt;br /&gt;
- 3 moteurs.&lt;br /&gt;
- Différents capteurs : couleur, proximité, capteurs de pression, infrarouge.&lt;br /&gt;
- 1 brique programmable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le robot : Lego Mindstorm Ev3 ==&lt;br /&gt;
Dans un premier temps, par manque cruel d&amp;#039;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 &amp;quot;chenilles&amp;quot;. Nous avons ensuite disposés les capteurs de manière à ce qu&amp;#039;ils ne se masquent pas entre eux, tout en leur permettant de fonctionner correctement et d&amp;#039;interagir avec la balle.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:robot_prototype1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== Seconde étape du projet : mise en place de l&amp;#039;environnement de programmation ==&lt;br /&gt;
* Durant 3 séances après une première construction de notre robot, nous avons cherché à le faire vivre. Nous avons donc essayé d&amp;#039;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&amp;#039;installations, nous nous sommes rendus compte que le logiciel Bricxcc ne serait probablement pas notre environnement de programmation.&lt;br /&gt;
* 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&amp;#039;avec l&amp;#039;environnement de programmation graphique conçu pour les NXT). Il ne l&amp;#039;est cependant qu&amp;#039;à 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&amp;#039;exécuter.&lt;br /&gt;
* Nous avons eu aussi l&amp;#039;occasion de découvrir un autre logiciel appelé RobotC, qui comme son nom l&amp;#039;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&amp;#039;essai ne durant que dix jours nous n&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
== Prise en main du logiciel de programmation graphique et première approche ==&lt;br /&gt;
* 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&amp;#039;on doit assembler des blocs et de manière très réductrice, on peut dire qu&amp;#039;il s&amp;#039;agit d&amp;#039;un puzzle à assembler (le logiciel est destiné à un jeune âge).&lt;br /&gt;
* Un point important à noter est que l&amp;#039;on peut par analogie à un langage de programmation en &amp;quot;texte&amp;quot;, créer des fonctions pour ainsi factoriser le code et le rendre plus compréhensible pour le lecteur.&lt;br /&gt;
* Ici ce sont des &amp;quot;blocs&amp;quot;, constitués eux-même d&amp;#039;un assemblage de blocs. Il est ainsi facile de créer un bloc nommé &amp;quot;chercher_balle&amp;quot; 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&amp;#039;on ait l&amp;#039;illusion que le robot est autonome.&lt;br /&gt;
&lt;br /&gt;
[[Média:suivi ligne.mp4]]&lt;br /&gt;
&lt;br /&gt;
= Fonctionnement mécanique =&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
== Avancer/ reculer ==&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
[[Média:translation_rotation.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Détection de la balle ==&lt;br /&gt;
&lt;br /&gt;
* Ici le robot cherche la balle en s&amp;#039;orientant dans la même direction que celui-ci.&lt;br /&gt;
&lt;br /&gt;
Voici le programme correspondant au mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:detecter balle.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:detection_balle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur des couleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le capteur de couleur permet au robot de ne pas sortir des limites du terrain. Il permet aussi, sur ordre de l&amp;#039;arbitre de se remettre en place sur le terrain pour un nouveau coup d&amp;#039;envoi.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_couleur_1.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation de l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Grâce à l&amp;#039;écran du robot Mindstorm Ev3, doté d&amp;#039;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&amp;#039;agit entre autre du capteur de proximité.&lt;br /&gt;
&lt;br /&gt;
[[Média:diapo_ecran.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilisation des hauts-parleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le Mindstorm Ev3 est doté d&amp;#039;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&amp;#039;exécution d&amp;#039;une action. Conjointement à l&amp;#039;affichage d&amp;#039;une &amp;quot;émotion&amp;quot; sur l&amp;#039;écran du robot. Cela donne vie au robot et il peut trouver une utilité dans l&amp;#039;aspect esthétique de ce dernier.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple haut parleur.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur tactile / des boutons situés sous l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Le robot est doté d&amp;#039;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&amp;#039;il a bien attrapé la balle ou pas.&lt;br /&gt;
* Il y a des touches de directions situés sous l&amp;#039;écran pour naviguer dans l&amp;#039;interface de la brique. Le bouton en haut à droite permet de sortir d&amp;#039;un menu et de revenir en arrière. Dans le menu principal il permet d&amp;#039;afficher l&amp;#039;invite pour éteindre la brique.&lt;br /&gt;
* Dans cet exemple, le robot s&amp;#039;axe vers la balle, se dirige vers elle et dès qu&amp;#039;il y a contact le robot s&amp;#039;arrête.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_tactile.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteurs de proximité ==&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;#039;arrêter au niveau de celui-ci sans rentrer en collision.&lt;br /&gt;
&lt;br /&gt;
== Le système de propulsion de la balle ==&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;envoyer la balle dans la cage de but adverse.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
Voici le programme qui correspond à mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Moteur propulsion balle.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple propulsion.mp4]]&lt;br /&gt;
&lt;br /&gt;
* Reste ensuite à construire un système pour contenir la balle le temps de la rotation et réussir à la propulser avec beaucoup de force.&lt;br /&gt;
&lt;br /&gt;
= Bluetooth =&lt;br /&gt;
  Comment effectuer une liaison bluetooth avec les robots mindstorms ?&lt;br /&gt;
&lt;br /&gt;
= Test match =&lt;br /&gt;
  À faire au plus tôt : Il s&amp;#039;agit de faire un match et de commencer à effectuer les dernières modifications&lt;br /&gt;
&lt;br /&gt;
= Problèmes rencontrés =&lt;br /&gt;
Au cours de notre étude, nous avons rencontrés beaucoup de difficultés :&lt;br /&gt;
* Premièrement : le robot Mindstorm Ev3 est le modèle le plus récent, donc le projet n&amp;#039;a pas assez de recul, les autres groupes ont utilisé les robots Mindstorm NXT et ont disposé du logiciel de programmation Bricxcc, langage utilisé lors des années précédentes et aussi très abouti, car permettant de faire plus de choses que ne le permet le logiciel graphique Lego Mindstorm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Construction mécanique du robot : nous avons également eu des difficultés lors de la construction mécanique du robot ; celui-ci doit être stable et équilibré, embarquer plusieurs capteurs et moteurs, ceux-ci ne devant pas interférer entre eux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Pour ce qui est de la partie logicielle, 2 à 3 séances suffisent pour prendre en main le logiciel. Ensuite il suffit de réfléchir et comprendre la logique de ce logiciel de programmation graphique. Il y a quelques manipulations à effectuer pour importer des briques (cela sert à rendre compatible avec le EV3 un capteur fabriqué pour les NXT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Twiki : Pour ce qui est du twiki, il a fallu modifier d&amp;#039;autres twiki pour en voir la syntaxe et comprendre comment cette dernière fonctionne dans les twiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Il n&amp;#039;est cependant pas possible de discriminer les différentes fréquences des signaux infrarouges (celles des buts et celui de la balle) avec le logiciel graphique. Ce qui rend le bureau d&amp;#039;étude impossible avec le robot EV3 et le système de programmation proposé par LEGO.&lt;br /&gt;
&lt;br /&gt;
= Voir aussi =&lt;br /&gt;
&lt;br /&gt;
== Articles connexes ==&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms Ev3]&lt;br /&gt;
&lt;br /&gt;
== Liens externes ==&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/ Site officiel lego mindstorm]&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/downloads Téléchargements de l&amp;#039;IDE] - Integrated Developpement Environnement, l&amp;#039;environnement de programmation graphique officiel. Celui utilisé lors de ce bureau d&amp;#039;étude.&lt;br /&gt;
&lt;br /&gt;
* [http://bricxcc.sourceforge.net/ Site du projet Bricxcc] - à suivre pour voir l&amp;#039;avancement du projet Bricxcc pour les Ev3&lt;br /&gt;
* [http://www.robotc.net/download/lego/ Site de téléchargement du logiciel de programmation alternatif RobotC]&lt;/div&gt;</summary>
		<author><name>Ltombazz</name></author>
	</entry>
	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3808</id>
		<title>RobotCompetition2014-1</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3808"/>
		<updated>2015-04-20T06:57:14Z</updated>

		<summary type="html">&lt;p&gt;Ltombazz : /* Problèmes rencontrés */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction : cadre de travail et présentation du bureau d&amp;#039;étude =&lt;br /&gt;
&lt;br /&gt;
* Le bureau d&amp;#039;é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 &amp;quot;étude&amp;quot; du problème sont nécessaires pour répondre à des objectifs fixés en début de semestre. Nous avons choisi le bureau d&amp;#039;étude IMA parce que nous étions intéressés par le domaine de l&amp;#039;électronique et des systèmes embarqués. C&amp;#039;était donc le bureau d&amp;#039;étude qui paraissait le plus intéressant par l&amp;#039;aspect constructif, la programmation et l&amp;#039;application rapide et concrète du projet étudié.&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;occupent respectivement d&amp;#039;une partie d&amp;#039;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&amp;#039;occuper :&lt;br /&gt;
** d&amp;#039;une cage de buts (2 au total)&lt;br /&gt;
** de robots de compétition (4 au total)&lt;br /&gt;
** d&amp;#039;un arbitre&lt;br /&gt;
** et d&amp;#039;un robot ramasseur de balle&lt;br /&gt;
&lt;br /&gt;
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&amp;#039;essai de la dernière génération de robot lego Mindstorm : la série Ev3.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boite_mindstormev3.jpeg|300px]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc pour cahier de charge le suivant :&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Avancer vers la balle (avec des moteurs)&lt;br /&gt;
* S&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
Pour cela notre robot est équipé de différents capteurs et moteurs ainsi qu&amp;#039;une panoplie de briques (de construction technique) et un &amp;quot;centre nerveux&amp;quot; appelé &amp;quot;brique programmable&amp;quot;, permettant de contrôler les différents moteurs, et de lire les valeurs des capteurs qui donne vie au robot.&lt;br /&gt;
Nous avons donc à notre disposition :&lt;br /&gt;
- 3 moteurs.&lt;br /&gt;
- Différents capteurs : couleur, proximité, capteurs de pression, infrarouge.&lt;br /&gt;
- 1 brique programmable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le robot : Lego Mindstorm Ev3 ==&lt;br /&gt;
Dans un premier temps, par manque cruel d&amp;#039;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 &amp;quot;chenilles&amp;quot;. Nous avons ensuite disposés les capteurs de manière à ce qu&amp;#039;ils ne se masquent pas entre eux, tout en leur permettant de fonctionner correctement et d&amp;#039;interagir avec la balle.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:robot_prototype1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== Seconde étape du projet : mise en place de l&amp;#039;environnement de programmation ==&lt;br /&gt;
* Durant 3 séances après une première construction de notre robot, nous avons cherché à le faire vivre. Nous avons donc essayé d&amp;#039;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&amp;#039;installations, nous nous sommes rendus compte que le logiciel Bricxcc ne serait probablement pas notre environnement de programmation.&lt;br /&gt;
* 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&amp;#039;avec l&amp;#039;environnement de programmation graphique conçu pour les NXT). Il ne l&amp;#039;est cependant qu&amp;#039;à 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&amp;#039;exécuter.&lt;br /&gt;
* Nous avons eu aussi l&amp;#039;occasion de découvrir un autre logiciel appelé RobotC, qui comme son nom l&amp;#039;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&amp;#039;essai ne durant que dix jours nous n&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
== Prise en main du logiciel de programmation graphique et première approche ==&lt;br /&gt;
* 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&amp;#039;on doit assembler des blocs et de manière très réductrice, on peut dire qu&amp;#039;il s&amp;#039;agit d&amp;#039;un puzzle à assembler (le logiciel est destiné à un jeune âge).&lt;br /&gt;
* Un point important à noter est que l&amp;#039;on peut par analogie à un langage de programmation en &amp;quot;texte&amp;quot;, créer des fonctions pour ainsi factoriser le code et le rendre plus compréhensible pour le lecteur.&lt;br /&gt;
* Ici ce sont des &amp;quot;blocs&amp;quot;, constitués eux-même d&amp;#039;un assemblage de blocs. Il est ainsi facile de créer un bloc nommé &amp;quot;chercher_balle&amp;quot; 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&amp;#039;on ait l&amp;#039;illusion que le robot est autonome.&lt;br /&gt;
&lt;br /&gt;
[[Média:suivi ligne.mp4]]&lt;br /&gt;
&lt;br /&gt;
= Fonctionnement mécanique =&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
== Avancer/ reculer ==&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
[[Média:translation_rotation.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Détection de la balle ==&lt;br /&gt;
&lt;br /&gt;
* Ici le robot cherche la balle en s&amp;#039;orientant dans la même direction que celui-ci.&lt;br /&gt;
&lt;br /&gt;
Voici le programme correspondant au mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:detecter balle.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:detection_balle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur des couleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le capteur de couleur permet au robot de ne pas sortir des limites du terrain. Il permet aussi, sur ordre de l&amp;#039;arbitre de se remettre en place sur le terrain pour un nouveau coup d&amp;#039;envoi.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_couleur_1.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation de l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Grâce à l&amp;#039;écran du robot Mindstorm Ev3, doté d&amp;#039;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&amp;#039;agit entre autre du capteur de proximité.&lt;br /&gt;
&lt;br /&gt;
[[Média:diapo_ecran.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilisation des hauts-parleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le Mindstorm Ev3 est doté d&amp;#039;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&amp;#039;exécution d&amp;#039;une action. Conjointement à l&amp;#039;affichage d&amp;#039;une &amp;quot;émotion&amp;quot; sur l&amp;#039;écran du robot. Cela donne vie au robot et il peut trouver une utilité dans l&amp;#039;aspect esthétique de ce dernier.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple haut parleur.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur tactile / des boutons situés sous l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Le robot est doté d&amp;#039;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&amp;#039;il a bien attrapé la balle ou pas.&lt;br /&gt;
* Il y a des touches de directions situés sous l&amp;#039;écran pour naviguer dans l&amp;#039;interface de la brique. Le bouton en haut à droite permet de sortir d&amp;#039;un menu et de revenir en arrière. Dans le menu principal il permet d&amp;#039;afficher l&amp;#039;invite pour éteindre la brique.&lt;br /&gt;
* Dans cet exemple, le robot s&amp;#039;axe vers la balle, se dirige vers elle et dès qu&amp;#039;il y a contact le robot s&amp;#039;arrête.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_tactile.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteurs de proximité ==&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;#039;arrêter au niveau de celui-ci sans rentrer en collision.&lt;br /&gt;
&lt;br /&gt;
== Le système de propulsion de la balle ==&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;envoyer la balle dans la cage de but adverse.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
Voici le programme qui correspond à mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Moteur propulsion balle.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple propulsion.mp4]]&lt;br /&gt;
&lt;br /&gt;
* Reste ensuite à construire un système pour contenir la balle le temps de la rotation et réussir à la propulser avec beaucoup de force.&lt;br /&gt;
&lt;br /&gt;
= Bluetooth =&lt;br /&gt;
  Comment effectuer une liaison bluetooth avec les robots mindstorms ?&lt;br /&gt;
&lt;br /&gt;
= Test match =&lt;br /&gt;
  À faire au plus tôt : Il s&amp;#039;agit de faire un match et de commencer à effectuer les dernières modifications&lt;br /&gt;
&lt;br /&gt;
= Problèmes rencontrés =&lt;br /&gt;
Au cours de notre étude, nous avons rencontrés beaucoup de difficultés :&lt;br /&gt;
* Premièrement : le robot Mindstorm Ev3 est le modèle le plus récent, donc le projet n&amp;#039;a pas assez de recul, les autres groupes ont utilisé les robots Mindstorm NXT et ont disposé du logiciel de programmation Bricxcc, langage utilisé lors des années précédentes et aussi très abouti, car permettant de faire plus de choses que ne le permet le logiciel graphique Lego Mindstorm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Construction mécanique du robot : nous avons également eu des difficultés lors de la construction mécanique du robot ; celui-ci doit être stable et équilibré, embarquer plusieurs capteurs et moteurs, ceux-ci ne devant pas interférer entre eux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Pour ce qui est de la partie logicielle, 2 à 3 séances suffisent pour prendre en main le logiciel. Ensuite il suffit de réfléchir et comprendre la logique de ce logiciel de programmation graphique. Il y a quelques manipulations à effectuer pour importer des briques (cela sert à rendre compatible avec le EV3 un capteur fabriqué pour les NXT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Twiki : Pour ce qui est du twiki, il a fallu modifier d&amp;#039;autres twiki pour en voir la syntaxe et comprendre comment cette dernière fonctionne dans les twiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Il n&amp;#039;est cependant pas possible de discriminer les différentes fréquences des signaux infrarouges (celles des buts et celui de la balle) avec le logiciel graphique. Ce qui rend le bureau d&amp;#039;étude impossible avec le robot EV3 et le système de programmation proposé par LEGO.&lt;br /&gt;
&lt;br /&gt;
= Voir aussi =&lt;br /&gt;
&lt;br /&gt;
== Articles connexes ==&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms Ev3]&lt;br /&gt;
&lt;br /&gt;
== Liens externes ==&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/ Site officiel lego mindstorm]&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/downloads Téléchargements de l&amp;#039;IDE] - Integrated Developpement Environnement, l&amp;#039;environnement de programmation graphique officiel. Celui utilisé lors de ce bureau d&amp;#039;étude.&lt;br /&gt;
&lt;br /&gt;
* [http://bricxcc.sourceforge.net/ Site du projet Bricxcc] - à suivre pour voir l&amp;#039;avancement du projet Bricxcc pour les Ev3&lt;br /&gt;
* [http://www.robotc.net/download/lego/ Site de téléchargement du logiciel de programmation alternatif RobotC]&lt;/div&gt;</summary>
		<author><name>Ltombazz</name></author>
	</entry>
	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3784</id>
		<title>RobotCompetition2014-1</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3784"/>
		<updated>2015-04-13T07:23:54Z</updated>

		<summary type="html">&lt;p&gt;Ltombazz : /* 2nde étape du projet : mise en place de l&amp;#039;environnement de programmation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction : cadre de travail et présentation du bureau d&amp;#039;étude =&lt;br /&gt;
&lt;br /&gt;
* Le bureau d&amp;#039;é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 &amp;quot;étude&amp;quot; du problème sont nécessaires pour répondre à des objectifs fixés en début de semestre. Nous avons choisi le bureau d&amp;#039;étude IMA parce que nous étions intéressés par le domaine de l&amp;#039;électronique et des systèmes embarqués. C&amp;#039;était donc le bureau d&amp;#039;étude qui paraissait le plus intéressant par l&amp;#039;aspect constructif, la programmation et l&amp;#039;application rapide et concrète du projet étudié.&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;occupent respectivement d&amp;#039;une partie d&amp;#039;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&amp;#039;occuper :&lt;br /&gt;
** d&amp;#039;une cage de buts (2 au total)&lt;br /&gt;
** de robots de compétition (4 au total)&lt;br /&gt;
** d&amp;#039;un arbitre&lt;br /&gt;
** et d&amp;#039;un robot ramasseur de balle&lt;br /&gt;
&lt;br /&gt;
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&amp;#039;essai de la dernière génération de robot lego Mindstorm : la série Ev3.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boite_mindstormev3.jpeg|300px]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc pour cahier de charge le suivant :&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Avancer vers la balle (avec des moteurs)&lt;br /&gt;
* S&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
Pour cela notre robot est équipé de différents capteurs et moteurs ainsi qu&amp;#039;une panoplie de briques (de construction technique) et un &amp;quot;centre nerveux&amp;quot; appelé &amp;quot;brique programmable&amp;quot;, permettant de contrôler les différents moteurs, et de lire les valeurs des capteurs qui donne vie au robot.&lt;br /&gt;
Nous avons donc à notre disposition :&lt;br /&gt;
- 3 moteurs.&lt;br /&gt;
- Différents capteurs : couleur, proximité, capteurs de pression, infrarouge.&lt;br /&gt;
- 1 brique programmable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le robot : Lego Mindstorm Ev3 ==&lt;br /&gt;
Dans un premier temps, par manque cruel d&amp;#039;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 &amp;quot;chenilles&amp;quot;. Nous avons ensuite disposés les capteurs de manière à ce qu&amp;#039;ils ne se masquent pas entre eux, tout en leur permettant de fonctionner correctement et d&amp;#039;interagir avec la balle.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:robot_prototype1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== Seconde étape du projet : mise en place de l&amp;#039;environnement de programmation ==&lt;br /&gt;
* Durant 3 séances après une première construction de notre robot, nous avons cherché à le faire vivre. Nous avons donc essayé d&amp;#039;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&amp;#039;installations, nous nous sommes rendus compte que le logiciel Bricxcc ne serait probablement pas notre environnement de programmation.&lt;br /&gt;
* 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&amp;#039;avec l&amp;#039;environnement de programmation graphique conçu pour les NXT). Il ne l&amp;#039;est cependant qu&amp;#039;à 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&amp;#039;exécuter.&lt;br /&gt;
* Nous avons eu aussi l&amp;#039;occasion de découvrir un autre logiciel appelé RobotC, qui comme son nom l&amp;#039;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&amp;#039;essai ne durant que dix jours nous n&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
== Prise en main du logiciel de programmation graphique et première approche ==&lt;br /&gt;
* 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&amp;#039;on doit assembler des blocs et de manière très réductrice, on peut dire qu&amp;#039;il s&amp;#039;agit d&amp;#039;un puzzle à assembler (le logiciel est destiné à un jeune âge).&lt;br /&gt;
* Un point important à noter est que l&amp;#039;on peut par analogie à un langage de programmation en &amp;quot;texte&amp;quot;, créer des fonctions pour ainsi factoriser le code et le rendre plus compréhensible pour le lecteur.&lt;br /&gt;
* Ici ce sont des &amp;quot;blocs&amp;quot;, constitués eux-même d&amp;#039;un assemblage de blocs. Il est ainsi facile de créer un bloc nommé &amp;quot;chercher_balle&amp;quot; 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&amp;#039;on ait l&amp;#039;illusion que le robot est autonome.&lt;br /&gt;
&lt;br /&gt;
[[Média:suivi ligne.mp4]]&lt;br /&gt;
&lt;br /&gt;
= Fonctionnement mécanique =&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
== Avancer/ reculer ==&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
[[Média:translation_rotation.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Détection de la balle ==&lt;br /&gt;
&lt;br /&gt;
* Ici le robot cherche la balle en s&amp;#039;orientant dans la même direction que celui-ci.&lt;br /&gt;
&lt;br /&gt;
Voici le programme correspondant au mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:detecter balle.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:detection_balle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur des couleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le capteur de couleur permet au robot de ne pas sortir des limites du terrain. Il permet aussi, sur ordre de l&amp;#039;arbitre de se remettre en place sur le terrain pour un nouveau coup d&amp;#039;envoi.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_couleur_1.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation de l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Grâce à l&amp;#039;écran du robot Mindstorm Ev3, doté d&amp;#039;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&amp;#039;agit entre autre du capteur de proximité.&lt;br /&gt;
&lt;br /&gt;
[[Média:diapo_ecran.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilisation des hauts-parleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le Mindstorm Ev3 est doté d&amp;#039;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&amp;#039;exécution d&amp;#039;une action. Conjointement à l&amp;#039;affichage d&amp;#039;une &amp;quot;émotion&amp;quot; sur l&amp;#039;écran du robot. Cela donne vie au robot et il peut trouver une utilité dans l&amp;#039;aspect esthétique de ce dernier.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple haut parleur.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur tactile / des boutons situés sous l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Le robot est doté d&amp;#039;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&amp;#039;il a bien attrapé la balle ou pas.&lt;br /&gt;
* Il y a des touches de directions situés sous l&amp;#039;écran pour naviguer dans l&amp;#039;interface de la brique. Le bouton en haut à droite permet de sortir d&amp;#039;un menu et de revenir en arrière. Dans le menu principal il permet d&amp;#039;afficher l&amp;#039;invite pour éteindre la brique.&lt;br /&gt;
* Dans cet exemple, le robot s&amp;#039;axe vers la balle, se dirige vers elle et dès qu&amp;#039;il y a contact le robot s&amp;#039;arrête.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_tactile.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteurs de proximité ==&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;#039;arrêter au niveau de celui-ci sans rentrer en collision.&lt;br /&gt;
&lt;br /&gt;
== Le système de propulsion de la balle ==&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;envoyer la balle dans la cage de but adverse.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
Voici le programme qui correspond à mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Moteur propulsion balle.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple propulsion.mp4]]&lt;br /&gt;
&lt;br /&gt;
* Reste ensuite à construire un système pour contenir la balle le temps de la rotation et réussir à la propulser avec beaucoup de force.&lt;br /&gt;
&lt;br /&gt;
= Bluetooth =&lt;br /&gt;
  Comment effectuer une liaison bluetooth avec les robots mindstorms ?&lt;br /&gt;
&lt;br /&gt;
= Test match =&lt;br /&gt;
  À faire au plus tôt : Il s&amp;#039;agit de faire un match et de commencer à effectuer les dernières modifications&lt;br /&gt;
&lt;br /&gt;
= Voir aussi =&lt;br /&gt;
&lt;br /&gt;
== Articles connexes ==&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms Ev3]&lt;br /&gt;
&lt;br /&gt;
== Liens externes ==&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/ Site officiel lego mindstorm]&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/downloads Téléchargements de l&amp;#039;IDE] - Integrated Developpement Environnement, l&amp;#039;environnement de programmation graphique officiel. Celui utilisé lors de ce bureau d&amp;#039;étude.&lt;br /&gt;
&lt;br /&gt;
* [http://bricxcc.sourceforge.net/ Site du projet Bricxcc] - à suivre pour voir l&amp;#039;avancement du projet Bricxcc pour les Ev3&lt;br /&gt;
* [http://www.robotc.net/download/lego/ Site de téléchargement du logiciel de programmation alternatif RobotC]&lt;/div&gt;</summary>
		<author><name>Ltombazz</name></author>
	</entry>
	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3783</id>
		<title>RobotCompetition2014-1</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3783"/>
		<updated>2015-04-13T07:02:29Z</updated>

		<summary type="html">&lt;p&gt;Ltombazz : /* Détection de la balle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction : cadre de travail et présentation du bureau d&amp;#039;étude =&lt;br /&gt;
&lt;br /&gt;
* Le bureau d&amp;#039;é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 &amp;quot;étude&amp;quot; du problème sont nécessaires pour répondre à des objectifs fixés en début de semestre. Nous avons choisi le bureau d&amp;#039;étude IMA parce que nous étions intéressés par le domaine de l&amp;#039;électronique et des systèmes embarqués. C&amp;#039;était donc le bureau d&amp;#039;étude qui paraissait le plus intéressant par l&amp;#039;aspect constructif, la programmation et l&amp;#039;application rapide et concrète du projet étudié.&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;occupent respectivement d&amp;#039;une partie d&amp;#039;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&amp;#039;occuper :&lt;br /&gt;
** d&amp;#039;une cage de buts (2 au total)&lt;br /&gt;
** de robots de compétition (4 au total)&lt;br /&gt;
** d&amp;#039;un arbitre&lt;br /&gt;
** et d&amp;#039;un robot ramasseur de balle&lt;br /&gt;
&lt;br /&gt;
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&amp;#039;essai de la dernière génération de robot lego Mindstorm : la série Ev3.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boite_mindstormev3.jpeg|300px]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc pour cahier de charge le suivant :&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Avancer vers la balle (avec des moteurs)&lt;br /&gt;
* S&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
Pour cela notre robot est équipé de différents capteurs et moteurs ainsi qu&amp;#039;une panoplie de briques (de construction technique) et un &amp;quot;centre nerveux&amp;quot; appelé &amp;quot;brique programmable&amp;quot;, permettant de contrôler les différents moteurs, et de lire les valeurs des capteurs qui donne vie au robot.&lt;br /&gt;
Nous avons donc à notre disposition :&lt;br /&gt;
- 3 moteurs.&lt;br /&gt;
- Différents capteurs : couleur, proximité, capteurs de pression, infrarouge.&lt;br /&gt;
- 1 brique programmable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le robot : Lego Mindstorm Ev3 ==&lt;br /&gt;
Dans un premier temps, par manque cruel d&amp;#039;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 &amp;quot;chenilles&amp;quot;. Nous avons ensuite disposés les capteurs de manière à ce qu&amp;#039;ils ne se masquent pas entre eux, tout en leur permettant de fonctionner correctement et d&amp;#039;interagir avec la balle.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:robot_prototype1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== 2nde étape du projet : mise en place de l&amp;#039;environnement de programmation ==&lt;br /&gt;
* Durant 3 séances après une première construction de notre robot, nous avons cherché à le faire vivre. Nous avons donc essayé d&amp;#039;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&amp;#039;installations, nous nous sommes rendus compte que le logiciel Bricxcc ne serait probablement pas notre environnement de programmation.&lt;br /&gt;
* 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&amp;#039;avec l&amp;#039;environnement de programmation graphique conçu pour les NXT). Il ne l&amp;#039;est cependant qu&amp;#039;à 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&amp;#039;exécuter.&lt;br /&gt;
* Nous avons eu aussi l&amp;#039;occasion de découvrir un autre logiciel appelé RobotC, qui comme son nom l&amp;#039;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&amp;#039;essai ne durant que dix jours nous n&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
== Prise en main du logiciel de programmation graphique et première approche ==&lt;br /&gt;
* 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&amp;#039;on doit assembler des blocs et de manière très réductrice, on peut dire qu&amp;#039;il s&amp;#039;agit d&amp;#039;un puzzle à assembler (le logiciel est destiné à un jeune âge).&lt;br /&gt;
* Un point important à noter est que l&amp;#039;on peut par analogie à un langage de programmation en &amp;quot;texte&amp;quot;, créer des fonctions pour ainsi factoriser le code et le rendre plus compréhensible pour le lecteur.&lt;br /&gt;
* Ici ce sont des &amp;quot;blocs&amp;quot;, constitués eux-même d&amp;#039;un assemblage de blocs. Il est ainsi facile de créer un bloc nommé &amp;quot;chercher_balle&amp;quot; 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&amp;#039;on ait l&amp;#039;illusion que le robot est autonome.&lt;br /&gt;
&lt;br /&gt;
[[Média:suivi ligne.mp4]]&lt;br /&gt;
&lt;br /&gt;
= Fonctionnement mécanique =&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
== Avancer/ reculer ==&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
[[Média:translation_rotation.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Détection de la balle ==&lt;br /&gt;
&lt;br /&gt;
* Ici le robot cherche la balle en s&amp;#039;orientant dans la même direction que celui-ci.&lt;br /&gt;
&lt;br /&gt;
Voici le programme correspondant au mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:detecter balle.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:detection_balle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur des couleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le capteur de couleur permet au robot de ne pas sortir des limites du terrain. Il permet aussi, sur ordre de l&amp;#039;arbitre de se remettre en place sur le terrain pour un nouveau coup d&amp;#039;envoi.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_couleur_1.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation de l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Grâce à l&amp;#039;écran du robot Mindstorm Ev3, doté d&amp;#039;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&amp;#039;agit entre autre du capteur de proximité.&lt;br /&gt;
&lt;br /&gt;
[[Média:diapo_ecran.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilisation des hauts-parleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le Mindstorm Ev3 est doté d&amp;#039;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&amp;#039;exécution d&amp;#039;une action. Conjointement à l&amp;#039;affichage d&amp;#039;une &amp;quot;émotion&amp;quot; sur l&amp;#039;écran du robot. Cela donne vie au robot et il peut trouver une utilité dans l&amp;#039;aspect esthétique de ce dernier.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple haut parleur.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur tactile / des boutons situés sous l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Le robot est doté d&amp;#039;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&amp;#039;il a bien attrapé la balle ou pas.&lt;br /&gt;
* Il y a des touches de directions situés sous l&amp;#039;écran pour naviguer dans l&amp;#039;interface de la brique. Le bouton en haut à droite permet de sortir d&amp;#039;un menu et de revenir en arrière. Dans le menu principal il permet d&amp;#039;afficher l&amp;#039;invite pour éteindre la brique.&lt;br /&gt;
* Dans cet exemple, le robot s&amp;#039;axe vers la balle, se dirige vers elle et dès qu&amp;#039;il y a contact le robot s&amp;#039;arrête.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_tactile.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteurs de proximité ==&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;#039;arrêter au niveau de celui-ci sans rentrer en collision.&lt;br /&gt;
&lt;br /&gt;
== Le système de propulsion de la balle ==&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;envoyer la balle dans la cage de but adverse.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
Voici le programme qui correspond à mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Moteur propulsion balle.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple propulsion.mp4]]&lt;br /&gt;
&lt;br /&gt;
* Reste ensuite à construire un système pour contenir la balle le temps de la rotation et réussir à la propulser avec beaucoup de force.&lt;br /&gt;
&lt;br /&gt;
= Bluetooth =&lt;br /&gt;
  Comment effectuer une liaison bluetooth avec les robots mindstorms ?&lt;br /&gt;
&lt;br /&gt;
= Test match =&lt;br /&gt;
  À faire au plus tôt : Il s&amp;#039;agit de faire un match et de commencer à effectuer les dernières modifications&lt;br /&gt;
&lt;br /&gt;
= Voir aussi =&lt;br /&gt;
&lt;br /&gt;
== Articles connexes ==&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms Ev3]&lt;br /&gt;
&lt;br /&gt;
== Liens externes ==&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/ Site officiel lego mindstorm]&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/downloads Téléchargements de l&amp;#039;IDE] - Integrated Developpement Environnement, l&amp;#039;environnement de programmation graphique officiel. Celui utilisé lors de ce bureau d&amp;#039;étude.&lt;br /&gt;
&lt;br /&gt;
* [http://bricxcc.sourceforge.net/ Site du projet Bricxcc] - à suivre pour voir l&amp;#039;avancement du projet Bricxcc pour les Ev3&lt;br /&gt;
* [http://www.robotc.net/download/lego/ Site de téléchargement du logiciel de programmation alternatif RobotC]&lt;/div&gt;</summary>
		<author><name>Ltombazz</name></author>
	</entry>
	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3782</id>
		<title>RobotCompetition2014-1</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3782"/>
		<updated>2015-04-13T07:01:49Z</updated>

		<summary type="html">&lt;p&gt;Ltombazz : /* Détection de la balle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction : cadre de travail et présentation du bureau d&amp;#039;étude =&lt;br /&gt;
&lt;br /&gt;
* Le bureau d&amp;#039;é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 &amp;quot;étude&amp;quot; du problème sont nécessaires pour répondre à des objectifs fixés en début de semestre. Nous avons choisi le bureau d&amp;#039;étude IMA parce que nous étions intéressés par le domaine de l&amp;#039;électronique et des systèmes embarqués. C&amp;#039;était donc le bureau d&amp;#039;étude qui paraissait le plus intéressant par l&amp;#039;aspect constructif, la programmation et l&amp;#039;application rapide et concrète du projet étudié.&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;occupent respectivement d&amp;#039;une partie d&amp;#039;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&amp;#039;occuper :&lt;br /&gt;
** d&amp;#039;une cage de buts (2 au total)&lt;br /&gt;
** de robots de compétition (4 au total)&lt;br /&gt;
** d&amp;#039;un arbitre&lt;br /&gt;
** et d&amp;#039;un robot ramasseur de balle&lt;br /&gt;
&lt;br /&gt;
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&amp;#039;essai de la dernière génération de robot lego Mindstorm : la série Ev3.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boite_mindstormev3.jpeg|300px]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc pour cahier de charge le suivant :&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Avancer vers la balle (avec des moteurs)&lt;br /&gt;
* S&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
Pour cela notre robot est équipé de différents capteurs et moteurs ainsi qu&amp;#039;une panoplie de briques (de construction technique) et un &amp;quot;centre nerveux&amp;quot; appelé &amp;quot;brique programmable&amp;quot;, permettant de contrôler les différents moteurs, et de lire les valeurs des capteurs qui donne vie au robot.&lt;br /&gt;
Nous avons donc à notre disposition :&lt;br /&gt;
- 3 moteurs.&lt;br /&gt;
- Différents capteurs : couleur, proximité, capteurs de pression, infrarouge.&lt;br /&gt;
- 1 brique programmable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le robot : Lego Mindstorm Ev3 ==&lt;br /&gt;
Dans un premier temps, par manque cruel d&amp;#039;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 &amp;quot;chenilles&amp;quot;. Nous avons ensuite disposés les capteurs de manière à ce qu&amp;#039;ils ne se masquent pas entre eux, tout en leur permettant de fonctionner correctement et d&amp;#039;interagir avec la balle.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:robot_prototype1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== 2nde étape du projet : mise en place de l&amp;#039;environnement de programmation ==&lt;br /&gt;
* Durant 3 séances après une première construction de notre robot, nous avons cherché à le faire vivre. Nous avons donc essayé d&amp;#039;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&amp;#039;installations, nous nous sommes rendus compte que le logiciel Bricxcc ne serait probablement pas notre environnement de programmation.&lt;br /&gt;
* 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&amp;#039;avec l&amp;#039;environnement de programmation graphique conçu pour les NXT). Il ne l&amp;#039;est cependant qu&amp;#039;à 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&amp;#039;exécuter.&lt;br /&gt;
* Nous avons eu aussi l&amp;#039;occasion de découvrir un autre logiciel appelé RobotC, qui comme son nom l&amp;#039;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&amp;#039;essai ne durant que dix jours nous n&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
== Prise en main du logiciel de programmation graphique et première approche ==&lt;br /&gt;
* 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&amp;#039;on doit assembler des blocs et de manière très réductrice, on peut dire qu&amp;#039;il s&amp;#039;agit d&amp;#039;un puzzle à assembler (le logiciel est destiné à un jeune âge).&lt;br /&gt;
* Un point important à noter est que l&amp;#039;on peut par analogie à un langage de programmation en &amp;quot;texte&amp;quot;, créer des fonctions pour ainsi factoriser le code et le rendre plus compréhensible pour le lecteur.&lt;br /&gt;
* Ici ce sont des &amp;quot;blocs&amp;quot;, constitués eux-même d&amp;#039;un assemblage de blocs. Il est ainsi facile de créer un bloc nommé &amp;quot;chercher_balle&amp;quot; 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&amp;#039;on ait l&amp;#039;illusion que le robot est autonome.&lt;br /&gt;
&lt;br /&gt;
[[Média:suivi ligne.mp4]]&lt;br /&gt;
&lt;br /&gt;
= Fonctionnement mécanique =&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
== Avancer/ reculer ==&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
[[Média:translation_rotation.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Détection de la balle ==&lt;br /&gt;
&lt;br /&gt;
* Ici le robot cherche la balle en s&amp;#039;orientant dans la même direction que celui-ci.&lt;br /&gt;
&lt;br /&gt;
Voici le programme correspondant au mouvement.&lt;br /&gt;
[[Fichier:detecter balle.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:detection_balle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur des couleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le capteur de couleur permet au robot de ne pas sortir des limites du terrain. Il permet aussi, sur ordre de l&amp;#039;arbitre de se remettre en place sur le terrain pour un nouveau coup d&amp;#039;envoi.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_couleur_1.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation de l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Grâce à l&amp;#039;écran du robot Mindstorm Ev3, doté d&amp;#039;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&amp;#039;agit entre autre du capteur de proximité.&lt;br /&gt;
&lt;br /&gt;
[[Média:diapo_ecran.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilisation des hauts-parleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le Mindstorm Ev3 est doté d&amp;#039;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&amp;#039;exécution d&amp;#039;une action. Conjointement à l&amp;#039;affichage d&amp;#039;une &amp;quot;émotion&amp;quot; sur l&amp;#039;écran du robot. Cela donne vie au robot et il peut trouver une utilité dans l&amp;#039;aspect esthétique de ce dernier.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple haut parleur.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur tactile / des boutons situés sous l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Le robot est doté d&amp;#039;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&amp;#039;il a bien attrapé la balle ou pas.&lt;br /&gt;
* Il y a des touches de directions situés sous l&amp;#039;écran pour naviguer dans l&amp;#039;interface de la brique. Le bouton en haut à droite permet de sortir d&amp;#039;un menu et de revenir en arrière. Dans le menu principal il permet d&amp;#039;afficher l&amp;#039;invite pour éteindre la brique.&lt;br /&gt;
* Dans cet exemple, le robot s&amp;#039;axe vers la balle, se dirige vers elle et dès qu&amp;#039;il y a contact le robot s&amp;#039;arrête.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_tactile.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteurs de proximité ==&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;#039;arrêter au niveau de celui-ci sans rentrer en collision.&lt;br /&gt;
&lt;br /&gt;
== Le système de propulsion de la balle ==&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;envoyer la balle dans la cage de but adverse.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
Voici le programme qui correspond à mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Moteur propulsion balle.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple propulsion.mp4]]&lt;br /&gt;
&lt;br /&gt;
* Reste ensuite à construire un système pour contenir la balle le temps de la rotation et réussir à la propulser avec beaucoup de force.&lt;br /&gt;
&lt;br /&gt;
= Bluetooth =&lt;br /&gt;
  Comment effectuer une liaison bluetooth avec les robots mindstorms ?&lt;br /&gt;
&lt;br /&gt;
= Test match =&lt;br /&gt;
  À faire au plus tôt : Il s&amp;#039;agit de faire un match et de commencer à effectuer les dernières modifications&lt;br /&gt;
&lt;br /&gt;
= Voir aussi =&lt;br /&gt;
&lt;br /&gt;
== Articles connexes ==&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms Ev3]&lt;br /&gt;
&lt;br /&gt;
== Liens externes ==&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/ Site officiel lego mindstorm]&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/downloads Téléchargements de l&amp;#039;IDE] - Integrated Developpement Environnement, l&amp;#039;environnement de programmation graphique officiel. Celui utilisé lors de ce bureau d&amp;#039;étude.&lt;br /&gt;
&lt;br /&gt;
* [http://bricxcc.sourceforge.net/ Site du projet Bricxcc] - à suivre pour voir l&amp;#039;avancement du projet Bricxcc pour les Ev3&lt;br /&gt;
* [http://www.robotc.net/download/lego/ Site de téléchargement du logiciel de programmation alternatif RobotC]&lt;/div&gt;</summary>
		<author><name>Ltombazz</name></author>
	</entry>
	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Detecter_balle.jpg&amp;diff=3781</id>
		<title>Fichier:Detecter balle.jpg</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Detecter_balle.jpg&amp;diff=3781"/>
		<updated>2015-04-13T07:01:29Z</updated>

		<summary type="html">&lt;p&gt;Ltombazz : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ltombazz</name></author>
	</entry>
	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3780</id>
		<title>RobotCompetition2014-1</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3780"/>
		<updated>2015-04-13T06:53:10Z</updated>

		<summary type="html">&lt;p&gt;Ltombazz : /* Le système de propulsion de la balle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction : cadre de travail et présentation du bureau d&amp;#039;étude =&lt;br /&gt;
&lt;br /&gt;
* Le bureau d&amp;#039;é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 &amp;quot;étude&amp;quot; du problème sont nécessaires pour répondre à des objectifs fixés en début de semestre. Nous avons choisi le bureau d&amp;#039;étude IMA parce que nous étions intéressés par le domaine de l&amp;#039;électronique et des systèmes embarqués. C&amp;#039;était donc le bureau d&amp;#039;étude qui paraissait le plus intéressant par l&amp;#039;aspect constructif, la programmation et l&amp;#039;application rapide et concrète du projet étudié.&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;occupent respectivement d&amp;#039;une partie d&amp;#039;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&amp;#039;occuper :&lt;br /&gt;
** d&amp;#039;une cage de buts (2 au total)&lt;br /&gt;
** de robots de compétition (4 au total)&lt;br /&gt;
** d&amp;#039;un arbitre&lt;br /&gt;
** et d&amp;#039;un robot ramasseur de balle&lt;br /&gt;
&lt;br /&gt;
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&amp;#039;essai de la dernière génération de robot lego Mindstorm : la série Ev3.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boite_mindstormev3.jpeg|300px]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc pour cahier de charge le suivant :&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Avancer vers la balle (avec des moteurs)&lt;br /&gt;
* S&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
Pour cela notre robot est équipé de différents capteurs et moteurs ainsi qu&amp;#039;une panoplie de briques (de construction technique) et un &amp;quot;centre nerveux&amp;quot; appelé &amp;quot;brique programmable&amp;quot;, permettant de contrôler les différents moteurs, et de lire les valeurs des capteurs qui donne vie au robot.&lt;br /&gt;
Nous avons donc à notre disposition :&lt;br /&gt;
- 3 moteurs.&lt;br /&gt;
- Différents capteurs : couleur, proximité, capteurs de pression, infrarouge.&lt;br /&gt;
- 1 brique programmable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le robot : Lego Mindstorm Ev3 ==&lt;br /&gt;
Dans un premier temps, par manque cruel d&amp;#039;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 &amp;quot;chenilles&amp;quot;. Nous avons ensuite disposés les capteurs de manière à ce qu&amp;#039;ils ne se masquent pas entre eux, tout en leur permettant de fonctionner correctement et d&amp;#039;interagir avec la balle.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:robot_prototype1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== 2nde étape du projet : mise en place de l&amp;#039;environnement de programmation ==&lt;br /&gt;
* Durant 3 séances après une première construction de notre robot, nous avons cherché à le faire vivre. Nous avons donc essayé d&amp;#039;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&amp;#039;installations, nous nous sommes rendus compte que le logiciel Bricxcc ne serait probablement pas notre environnement de programmation.&lt;br /&gt;
* 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&amp;#039;avec l&amp;#039;environnement de programmation graphique conçu pour les NXT). Il ne l&amp;#039;est cependant qu&amp;#039;à 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&amp;#039;exécuter.&lt;br /&gt;
* Nous avons eu aussi l&amp;#039;occasion de découvrir un autre logiciel appelé RobotC, qui comme son nom l&amp;#039;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&amp;#039;essai ne durant que dix jours nous n&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
== Prise en main du logiciel de programmation graphique et première approche ==&lt;br /&gt;
* 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&amp;#039;on doit assembler des blocs et de manière très réductrice, on peut dire qu&amp;#039;il s&amp;#039;agit d&amp;#039;un puzzle à assembler (le logiciel est destiné à un jeune âge).&lt;br /&gt;
* Un point important à noter est que l&amp;#039;on peut par analogie à un langage de programmation en &amp;quot;texte&amp;quot;, créer des fonctions pour ainsi factoriser le code et le rendre plus compréhensible pour le lecteur.&lt;br /&gt;
* Ici ce sont des &amp;quot;blocs&amp;quot;, constitués eux-même d&amp;#039;un assemblage de blocs. Il est ainsi facile de créer un bloc nommé &amp;quot;chercher_balle&amp;quot; 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&amp;#039;on ait l&amp;#039;illusion que le robot est autonome.&lt;br /&gt;
&lt;br /&gt;
[[Média:suivi ligne.mp4]]&lt;br /&gt;
&lt;br /&gt;
= Fonctionnement mécanique =&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
== Avancer/ reculer ==&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
[[Média:translation_rotation.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Détection de la balle ==&lt;br /&gt;
&lt;br /&gt;
* Ici le robot cherche la balle en s&amp;#039;orientant dans la même direction que celui-ci.&lt;br /&gt;
&lt;br /&gt;
[[Média:detection_balle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur des couleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le capteur de couleur permet au robot de ne pas sortir des limites du terrain. Il permet aussi, sur ordre de l&amp;#039;arbitre de se remettre en place sur le terrain pour un nouveau coup d&amp;#039;envoi.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_couleur_1.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation de l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Grâce à l&amp;#039;écran du robot Mindstorm Ev3, doté d&amp;#039;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&amp;#039;agit entre autre du capteur de proximité.&lt;br /&gt;
&lt;br /&gt;
[[Média:diapo_ecran.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilisation des hauts-parleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le Mindstorm Ev3 est doté d&amp;#039;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&amp;#039;exécution d&amp;#039;une action. Conjointement à l&amp;#039;affichage d&amp;#039;une &amp;quot;émotion&amp;quot; sur l&amp;#039;écran du robot. Cela donne vie au robot et il peut trouver une utilité dans l&amp;#039;aspect esthétique de ce dernier.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple haut parleur.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur tactile / des boutons situés sous l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Le robot est doté d&amp;#039;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&amp;#039;il a bien attrapé la balle ou pas.&lt;br /&gt;
* Il y a des touches de directions situés sous l&amp;#039;écran pour naviguer dans l&amp;#039;interface de la brique. Le bouton en haut à droite permet de sortir d&amp;#039;un menu et de revenir en arrière. Dans le menu principal il permet d&amp;#039;afficher l&amp;#039;invite pour éteindre la brique.&lt;br /&gt;
* Dans cet exemple, le robot s&amp;#039;axe vers la balle, se dirige vers elle et dès qu&amp;#039;il y a contact le robot s&amp;#039;arrête.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_tactile.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteurs de proximité ==&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;#039;arrêter au niveau de celui-ci sans rentrer en collision.&lt;br /&gt;
&lt;br /&gt;
== Le système de propulsion de la balle ==&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;envoyer la balle dans la cage de but adverse.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
Voici le programme qui correspond à mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Moteur propulsion balle.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple propulsion.mp4]]&lt;br /&gt;
&lt;br /&gt;
* Reste ensuite à construire un système pour contenir la balle le temps de la rotation et réussir à la propulser avec beaucoup de force.&lt;br /&gt;
&lt;br /&gt;
= Bluetooth =&lt;br /&gt;
  Comment effectuer une liaison bluetooth avec les robots mindstorms ?&lt;br /&gt;
&lt;br /&gt;
= Test match =&lt;br /&gt;
  À faire au plus tôt : Il s&amp;#039;agit de faire un match et de commencer à effectuer les dernières modifications&lt;br /&gt;
&lt;br /&gt;
= Voir aussi =&lt;br /&gt;
&lt;br /&gt;
== Articles connexes ==&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms Ev3]&lt;br /&gt;
&lt;br /&gt;
== Liens externes ==&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/ Site officiel lego mindstorm]&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/downloads Téléchargements de l&amp;#039;IDE] - Integrated Developpement Environnement, l&amp;#039;environnement de programmation graphique officiel. Celui utilisé lors de ce bureau d&amp;#039;étude.&lt;br /&gt;
&lt;br /&gt;
* [http://bricxcc.sourceforge.net/ Site du projet Bricxcc] - à suivre pour voir l&amp;#039;avancement du projet Bricxcc pour les Ev3&lt;br /&gt;
* [http://www.robotc.net/download/lego/ Site de téléchargement du logiciel de programmation alternatif RobotC]&lt;/div&gt;</summary>
		<author><name>Ltombazz</name></author>
	</entry>
	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3779</id>
		<title>RobotCompetition2014-1</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3779"/>
		<updated>2015-04-13T06:51:55Z</updated>

		<summary type="html">&lt;p&gt;Ltombazz : /* Le système de propulsion de la balle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction : cadre de travail et présentation du bureau d&amp;#039;étude =&lt;br /&gt;
&lt;br /&gt;
* Le bureau d&amp;#039;é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 &amp;quot;étude&amp;quot; du problème sont nécessaires pour répondre à des objectifs fixés en début de semestre. Nous avons choisi le bureau d&amp;#039;étude IMA parce que nous étions intéressés par le domaine de l&amp;#039;électronique et des systèmes embarqués. C&amp;#039;était donc le bureau d&amp;#039;étude qui paraissait le plus intéressant par l&amp;#039;aspect constructif, la programmation et l&amp;#039;application rapide et concrète du projet étudié.&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;occupent respectivement d&amp;#039;une partie d&amp;#039;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&amp;#039;occuper :&lt;br /&gt;
** d&amp;#039;une cage de buts (2 au total)&lt;br /&gt;
** de robots de compétition (4 au total)&lt;br /&gt;
** d&amp;#039;un arbitre&lt;br /&gt;
** et d&amp;#039;un robot ramasseur de balle&lt;br /&gt;
&lt;br /&gt;
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&amp;#039;essai de la dernière génération de robot lego Mindstorm : la série Ev3.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boite_mindstormev3.jpeg|300px]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc pour cahier de charge le suivant :&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Avancer vers la balle (avec des moteurs)&lt;br /&gt;
* S&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
Pour cela notre robot est équipé de différents capteurs et moteurs ainsi qu&amp;#039;une panoplie de briques (de construction technique) et un &amp;quot;centre nerveux&amp;quot; appelé &amp;quot;brique programmable&amp;quot;, permettant de contrôler les différents moteurs, et de lire les valeurs des capteurs qui donne vie au robot.&lt;br /&gt;
Nous avons donc à notre disposition :&lt;br /&gt;
- 3 moteurs.&lt;br /&gt;
- Différents capteurs : couleur, proximité, capteurs de pression, infrarouge.&lt;br /&gt;
- 1 brique programmable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le robot : Lego Mindstorm Ev3 ==&lt;br /&gt;
Dans un premier temps, par manque cruel d&amp;#039;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 &amp;quot;chenilles&amp;quot;. Nous avons ensuite disposés les capteurs de manière à ce qu&amp;#039;ils ne se masquent pas entre eux, tout en leur permettant de fonctionner correctement et d&amp;#039;interagir avec la balle.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:robot_prototype1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== 2nde étape du projet : mise en place de l&amp;#039;environnement de programmation ==&lt;br /&gt;
* Durant 3 séances après une première construction de notre robot, nous avons cherché à le faire vivre. Nous avons donc essayé d&amp;#039;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&amp;#039;installations, nous nous sommes rendus compte que le logiciel Bricxcc ne serait probablement pas notre environnement de programmation.&lt;br /&gt;
* 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&amp;#039;avec l&amp;#039;environnement de programmation graphique conçu pour les NXT). Il ne l&amp;#039;est cependant qu&amp;#039;à 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&amp;#039;exécuter.&lt;br /&gt;
* Nous avons eu aussi l&amp;#039;occasion de découvrir un autre logiciel appelé RobotC, qui comme son nom l&amp;#039;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&amp;#039;essai ne durant que dix jours nous n&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
== Prise en main du logiciel de programmation graphique et première approche ==&lt;br /&gt;
* 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&amp;#039;on doit assembler des blocs et de manière très réductrice, on peut dire qu&amp;#039;il s&amp;#039;agit d&amp;#039;un puzzle à assembler (le logiciel est destiné à un jeune âge).&lt;br /&gt;
* Un point important à noter est que l&amp;#039;on peut par analogie à un langage de programmation en &amp;quot;texte&amp;quot;, créer des fonctions pour ainsi factoriser le code et le rendre plus compréhensible pour le lecteur.&lt;br /&gt;
* Ici ce sont des &amp;quot;blocs&amp;quot;, constitués eux-même d&amp;#039;un assemblage de blocs. Il est ainsi facile de créer un bloc nommé &amp;quot;chercher_balle&amp;quot; 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&amp;#039;on ait l&amp;#039;illusion que le robot est autonome.&lt;br /&gt;
&lt;br /&gt;
[[Média:suivi ligne.mp4]]&lt;br /&gt;
&lt;br /&gt;
= Fonctionnement mécanique =&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
== Avancer/ reculer ==&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
[[Média:translation_rotation.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Détection de la balle ==&lt;br /&gt;
&lt;br /&gt;
* Ici le robot cherche la balle en s&amp;#039;orientant dans la même direction que celui-ci.&lt;br /&gt;
&lt;br /&gt;
[[Média:detection_balle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur des couleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le capteur de couleur permet au robot de ne pas sortir des limites du terrain. Il permet aussi, sur ordre de l&amp;#039;arbitre de se remettre en place sur le terrain pour un nouveau coup d&amp;#039;envoi.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_couleur_1.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation de l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Grâce à l&amp;#039;écran du robot Mindstorm Ev3, doté d&amp;#039;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&amp;#039;agit entre autre du capteur de proximité.&lt;br /&gt;
&lt;br /&gt;
[[Média:diapo_ecran.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilisation des hauts-parleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le Mindstorm Ev3 est doté d&amp;#039;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&amp;#039;exécution d&amp;#039;une action. Conjointement à l&amp;#039;affichage d&amp;#039;une &amp;quot;émotion&amp;quot; sur l&amp;#039;écran du robot. Cela donne vie au robot et il peut trouver une utilité dans l&amp;#039;aspect esthétique de ce dernier.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple haut parleur.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur tactile / des boutons situés sous l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Le robot est doté d&amp;#039;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&amp;#039;il a bien attrapé la balle ou pas.&lt;br /&gt;
* Il y a des touches de directions situés sous l&amp;#039;écran pour naviguer dans l&amp;#039;interface de la brique. Le bouton en haut à droite permet de sortir d&amp;#039;un menu et de revenir en arrière. Dans le menu principal il permet d&amp;#039;afficher l&amp;#039;invite pour éteindre la brique.&lt;br /&gt;
* Dans cet exemple, le robot s&amp;#039;axe vers la balle, se dirige vers elle et dès qu&amp;#039;il y a contact le robot s&amp;#039;arrête.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_tactile.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteurs de proximité ==&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;#039;arrêter au niveau de celui-ci sans rentrer en collision.&lt;br /&gt;
&lt;br /&gt;
== Le système de propulsion de la balle ==&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;envoyer la balle dans la cage de but adverse.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
Voici le programme qui correspond à mouvement.[[Fichier:Moteur propulsion balle.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple propulsion.mp4]]&lt;br /&gt;
&lt;br /&gt;
* Reste ensuite à construire un système pour contenir la balle le temps de la rotation et réussir à la propulser avec beaucoup de force.&lt;br /&gt;
&lt;br /&gt;
= Bluetooth =&lt;br /&gt;
  Comment effectuer une liaison bluetooth avec les robots mindstorms ?&lt;br /&gt;
&lt;br /&gt;
= Test match =&lt;br /&gt;
  À faire au plus tôt : Il s&amp;#039;agit de faire un match et de commencer à effectuer les dernières modifications&lt;br /&gt;
&lt;br /&gt;
= Voir aussi =&lt;br /&gt;
&lt;br /&gt;
== Articles connexes ==&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms Ev3]&lt;br /&gt;
&lt;br /&gt;
== Liens externes ==&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/ Site officiel lego mindstorm]&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/downloads Téléchargements de l&amp;#039;IDE] - Integrated Developpement Environnement, l&amp;#039;environnement de programmation graphique officiel. Celui utilisé lors de ce bureau d&amp;#039;étude.&lt;br /&gt;
&lt;br /&gt;
* [http://bricxcc.sourceforge.net/ Site du projet Bricxcc] - à suivre pour voir l&amp;#039;avancement du projet Bricxcc pour les Ev3&lt;br /&gt;
* [http://www.robotc.net/download/lego/ Site de téléchargement du logiciel de programmation alternatif RobotC]&lt;/div&gt;</summary>
		<author><name>Ltombazz</name></author>
	</entry>
	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3778</id>
		<title>RobotCompetition2014-1</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3778"/>
		<updated>2015-04-13T06:51:33Z</updated>

		<summary type="html">&lt;p&gt;Ltombazz : /* Le système de propulsion de la balle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction : cadre de travail et présentation du bureau d&amp;#039;étude =&lt;br /&gt;
&lt;br /&gt;
* Le bureau d&amp;#039;é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 &amp;quot;étude&amp;quot; du problème sont nécessaires pour répondre à des objectifs fixés en début de semestre. Nous avons choisi le bureau d&amp;#039;étude IMA parce que nous étions intéressés par le domaine de l&amp;#039;électronique et des systèmes embarqués. C&amp;#039;était donc le bureau d&amp;#039;étude qui paraissait le plus intéressant par l&amp;#039;aspect constructif, la programmation et l&amp;#039;application rapide et concrète du projet étudié.&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;occupent respectivement d&amp;#039;une partie d&amp;#039;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&amp;#039;occuper :&lt;br /&gt;
** d&amp;#039;une cage de buts (2 au total)&lt;br /&gt;
** de robots de compétition (4 au total)&lt;br /&gt;
** d&amp;#039;un arbitre&lt;br /&gt;
** et d&amp;#039;un robot ramasseur de balle&lt;br /&gt;
&lt;br /&gt;
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&amp;#039;essai de la dernière génération de robot lego Mindstorm : la série Ev3.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boite_mindstormev3.jpeg|300px]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc pour cahier de charge le suivant :&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Avancer vers la balle (avec des moteurs)&lt;br /&gt;
* S&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
Pour cela notre robot est équipé de différents capteurs et moteurs ainsi qu&amp;#039;une panoplie de briques (de construction technique) et un &amp;quot;centre nerveux&amp;quot; appelé &amp;quot;brique programmable&amp;quot;, permettant de contrôler les différents moteurs, et de lire les valeurs des capteurs qui donne vie au robot.&lt;br /&gt;
Nous avons donc à notre disposition :&lt;br /&gt;
- 3 moteurs.&lt;br /&gt;
- Différents capteurs : couleur, proximité, capteurs de pression, infrarouge.&lt;br /&gt;
- 1 brique programmable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le robot : Lego Mindstorm Ev3 ==&lt;br /&gt;
Dans un premier temps, par manque cruel d&amp;#039;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 &amp;quot;chenilles&amp;quot;. Nous avons ensuite disposés les capteurs de manière à ce qu&amp;#039;ils ne se masquent pas entre eux, tout en leur permettant de fonctionner correctement et d&amp;#039;interagir avec la balle.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:robot_prototype1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== 2nde étape du projet : mise en place de l&amp;#039;environnement de programmation ==&lt;br /&gt;
* Durant 3 séances après une première construction de notre robot, nous avons cherché à le faire vivre. Nous avons donc essayé d&amp;#039;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&amp;#039;installations, nous nous sommes rendus compte que le logiciel Bricxcc ne serait probablement pas notre environnement de programmation.&lt;br /&gt;
* 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&amp;#039;avec l&amp;#039;environnement de programmation graphique conçu pour les NXT). Il ne l&amp;#039;est cependant qu&amp;#039;à 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&amp;#039;exécuter.&lt;br /&gt;
* Nous avons eu aussi l&amp;#039;occasion de découvrir un autre logiciel appelé RobotC, qui comme son nom l&amp;#039;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&amp;#039;essai ne durant que dix jours nous n&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
== Prise en main du logiciel de programmation graphique et première approche ==&lt;br /&gt;
* 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&amp;#039;on doit assembler des blocs et de manière très réductrice, on peut dire qu&amp;#039;il s&amp;#039;agit d&amp;#039;un puzzle à assembler (le logiciel est destiné à un jeune âge).&lt;br /&gt;
* Un point important à noter est que l&amp;#039;on peut par analogie à un langage de programmation en &amp;quot;texte&amp;quot;, créer des fonctions pour ainsi factoriser le code et le rendre plus compréhensible pour le lecteur.&lt;br /&gt;
* Ici ce sont des &amp;quot;blocs&amp;quot;, constitués eux-même d&amp;#039;un assemblage de blocs. Il est ainsi facile de créer un bloc nommé &amp;quot;chercher_balle&amp;quot; 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&amp;#039;on ait l&amp;#039;illusion que le robot est autonome.&lt;br /&gt;
&lt;br /&gt;
[[Média:suivi ligne.mp4]]&lt;br /&gt;
&lt;br /&gt;
= Fonctionnement mécanique =&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
== Avancer/ reculer ==&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
[[Média:translation_rotation.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Détection de la balle ==&lt;br /&gt;
&lt;br /&gt;
* Ici le robot cherche la balle en s&amp;#039;orientant dans la même direction que celui-ci.&lt;br /&gt;
&lt;br /&gt;
[[Média:detection_balle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur des couleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le capteur de couleur permet au robot de ne pas sortir des limites du terrain. Il permet aussi, sur ordre de l&amp;#039;arbitre de se remettre en place sur le terrain pour un nouveau coup d&amp;#039;envoi.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_couleur_1.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation de l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Grâce à l&amp;#039;écran du robot Mindstorm Ev3, doté d&amp;#039;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&amp;#039;agit entre autre du capteur de proximité.&lt;br /&gt;
&lt;br /&gt;
[[Média:diapo_ecran.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilisation des hauts-parleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le Mindstorm Ev3 est doté d&amp;#039;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&amp;#039;exécution d&amp;#039;une action. Conjointement à l&amp;#039;affichage d&amp;#039;une &amp;quot;émotion&amp;quot; sur l&amp;#039;écran du robot. Cela donne vie au robot et il peut trouver une utilité dans l&amp;#039;aspect esthétique de ce dernier.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple haut parleur.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur tactile / des boutons situés sous l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Le robot est doté d&amp;#039;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&amp;#039;il a bien attrapé la balle ou pas.&lt;br /&gt;
* Il y a des touches de directions situés sous l&amp;#039;écran pour naviguer dans l&amp;#039;interface de la brique. Le bouton en haut à droite permet de sortir d&amp;#039;un menu et de revenir en arrière. Dans le menu principal il permet d&amp;#039;afficher l&amp;#039;invite pour éteindre la brique.&lt;br /&gt;
* Dans cet exemple, le robot s&amp;#039;axe vers la balle, se dirige vers elle et dès qu&amp;#039;il y a contact le robot s&amp;#039;arrête.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_tactile.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteurs de proximité ==&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;#039;arrêter au niveau de celui-ci sans rentrer en collision.&lt;br /&gt;
&lt;br /&gt;
== Le système de propulsion de la balle ==&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;envoyer la balle dans la cage de but adverse.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
Voici le programme qui correspond à mouvement.[[Fichier:Moteur propulsion balle.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple propulsion.mp4]]&lt;br /&gt;
&lt;br /&gt;
* Reste ensuite à construire un système pour contenir la balle le temps de la rotation et réussir à la propulser avec beaucoup de force.&lt;br /&gt;
&lt;br /&gt;
= Bluetooth =&lt;br /&gt;
  Comment effectuer une liaison bluetooth avec les robots mindstorms ?&lt;br /&gt;
&lt;br /&gt;
= Test match =&lt;br /&gt;
  À faire au plus tôt : Il s&amp;#039;agit de faire un match et de commencer à effectuer les dernières modifications&lt;br /&gt;
&lt;br /&gt;
= Voir aussi =&lt;br /&gt;
&lt;br /&gt;
== Articles connexes ==&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms Ev3]&lt;br /&gt;
&lt;br /&gt;
== Liens externes ==&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/ Site officiel lego mindstorm]&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/downloads Téléchargements de l&amp;#039;IDE] - Integrated Developpement Environnement, l&amp;#039;environnement de programmation graphique officiel. Celui utilisé lors de ce bureau d&amp;#039;étude.&lt;br /&gt;
&lt;br /&gt;
* [http://bricxcc.sourceforge.net/ Site du projet Bricxcc] - à suivre pour voir l&amp;#039;avancement du projet Bricxcc pour les Ev3&lt;br /&gt;
* [http://www.robotc.net/download/lego/ Site de téléchargement du logiciel de programmation alternatif RobotC]&lt;/div&gt;</summary>
		<author><name>Ltombazz</name></author>
	</entry>
	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Moteur_propulsion_balle.jpg&amp;diff=3777</id>
		<title>Fichier:Moteur propulsion balle.jpg</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Moteur_propulsion_balle.jpg&amp;diff=3777"/>
		<updated>2015-04-13T06:49:28Z</updated>

		<summary type="html">&lt;p&gt;Ltombazz : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ltombazz</name></author>
	</entry>
	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3775</id>
		<title>RobotCompetition2014-1</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3775"/>
		<updated>2015-04-13T06:30:03Z</updated>

		<summary type="html">&lt;p&gt;Ltombazz : /* Utilisation du capteur tactile / des boutons situés sous l&amp;#039;écran */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction : cadre de travail et présentation du bureau d&amp;#039;étude =&lt;br /&gt;
&lt;br /&gt;
* Le bureau d&amp;#039;é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 &amp;quot;étude&amp;quot; du problème sont nécessaires pour répondre à des objectifs fixés en début de semestre. Nous avons choisi le bureau d&amp;#039;étude IMA parce que nous étions intéressés par le domaine de l&amp;#039;électronique et des systèmes embarqués. C&amp;#039;était donc le bureau d&amp;#039;étude qui paraissait le plus intéressant par l&amp;#039;aspect constructif, la programmation et l&amp;#039;application rapide et concrète du projet étudié.&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;occupent respectivement d&amp;#039;une partie d&amp;#039;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&amp;#039;occuper :&lt;br /&gt;
** d&amp;#039;une cage de buts (2 au total)&lt;br /&gt;
** de robots de compétition (4 au total)&lt;br /&gt;
** d&amp;#039;un arbitre&lt;br /&gt;
** et d&amp;#039;un robot ramasseur de balle&lt;br /&gt;
&lt;br /&gt;
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&amp;#039;essai de la dernière génération de robot lego Mindstorm : la série Ev3.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boite_mindstormev3.jpeg|300px]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc pour cahier de charge le suivant :&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Avancer vers la balle (avec des moteurs)&lt;br /&gt;
* S&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
Pour cela notre robot est équipé de différents capteurs et moteurs ainsi qu&amp;#039;une panoplie de briques (de construction technique) et un &amp;quot;centre nerveux&amp;quot; appelé &amp;quot;brique programmable&amp;quot;, permettant de contrôler les différents moteurs, et de lire les valeurs des capteurs qui donne vie au robot.&lt;br /&gt;
Nous avons donc à notre disposition :&lt;br /&gt;
- 3 moteurs.&lt;br /&gt;
- Différents capteurs : couleur, proximité, capteurs de pression, infrarouge.&lt;br /&gt;
- 1 brique programmable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le robot : Lego Mindstorm Ev3 ==&lt;br /&gt;
Dans un premier temps, par manque cruel d&amp;#039;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 &amp;quot;chenilles&amp;quot;. Nous avons ensuite disposés les capteurs de manière à ce qu&amp;#039;ils ne se masquent pas entre eux, tout en leur permettant de fonctionner correctement et d&amp;#039;interagir avec la balle.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:robot_prototype1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== 2nde étape du projet : mise en place de l&amp;#039;environnement de programmation ==&lt;br /&gt;
* Durant 3 séances après une première construction de notre robot, nous avons cherché à le faire vivre. Nous avons donc essayé d&amp;#039;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&amp;#039;installations, nous nous sommes rendus compte que le logiciel Bricxcc ne serait probablement pas notre environnement de programmation.&lt;br /&gt;
* 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&amp;#039;avec l&amp;#039;environnement de programmation graphique conçu pour les NXT). Il ne l&amp;#039;est cependant qu&amp;#039;à 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&amp;#039;exécuter.&lt;br /&gt;
* Nous avons eu aussi l&amp;#039;occasion de découvrir un autre logiciel appelé RobotC, qui comme son nom l&amp;#039;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&amp;#039;essai ne durant que dix jours nous n&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
== Prise en main du logiciel de programmation graphique et première approche ==&lt;br /&gt;
* 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&amp;#039;on doit assembler des blocs et de manière très réductrice, on peut dire qu&amp;#039;il s&amp;#039;agit d&amp;#039;un puzzle à assembler (le logiciel est destiné à un jeune âge).&lt;br /&gt;
* Un point important à noter est que l&amp;#039;on peut par analogie à un langage de programmation en &amp;quot;texte&amp;quot;, créer des fonctions pour ainsi factoriser le code et le rendre plus compréhensible pour le lecteur.&lt;br /&gt;
* Ici ce sont des &amp;quot;blocs&amp;quot;, constitués eux-même d&amp;#039;un assemblage de blocs. Il est ainsi facile de créer un bloc nommé &amp;quot;chercher_balle&amp;quot; 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&amp;#039;on ait l&amp;#039;illusion que le robot est autonome.&lt;br /&gt;
&lt;br /&gt;
[[Média:suivi ligne.mp4]]&lt;br /&gt;
&lt;br /&gt;
= Fonctionnement mécanique =&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
== Avancer/ reculer ==&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
[[Média:translation_rotation.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Détection de la balle ==&lt;br /&gt;
&lt;br /&gt;
* Ici le robot cherche la balle en s&amp;#039;orientant dans la même direction que celui-ci.&lt;br /&gt;
&lt;br /&gt;
[[Média:detection_balle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur des couleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le capteur de couleur permet au robot de ne pas sortir des limites du terrain. Il permet aussi, sur ordre de l&amp;#039;arbitre de se remettre en place sur le terrain pour un nouveau coup d&amp;#039;envoi.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_couleur_1.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation de l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Grâce à l&amp;#039;écran du robot Mindstorm Ev3, doté d&amp;#039;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&amp;#039;agit entre autre du capteur de proximité.&lt;br /&gt;
&lt;br /&gt;
[[Média:diapo_ecran.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilisation des hauts-parleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le Mindstorm Ev3 est doté d&amp;#039;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&amp;#039;exécution d&amp;#039;une action. Conjointement à l&amp;#039;affichage d&amp;#039;une &amp;quot;émotion&amp;quot; sur l&amp;#039;écran du robot. Cela donne vie au robot et il peut trouver une utilité dans l&amp;#039;aspect esthétique de ce dernier.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple haut parleur.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur tactile / des boutons situés sous l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Le robot est doté d&amp;#039;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&amp;#039;il a bien attrapé la balle ou pas.&lt;br /&gt;
* Il y a des touches de directions situés sous l&amp;#039;écran pour naviguer dans l&amp;#039;interface de la brique. Le bouton en haut à droite permet de sortir d&amp;#039;un menu et de revenir en arrière. Dans le menu principal il permet d&amp;#039;afficher l&amp;#039;invite pour éteindre la brique.&lt;br /&gt;
* Dans cet exemple, le robot s&amp;#039;axe vers la balle, se dirige vers elle et dès qu&amp;#039;il y a contact le robot s&amp;#039;arrête.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_tactile.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteurs de proximité ==&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;#039;arrêter au niveau de celui-ci sans rentrer en collision.&lt;br /&gt;
&lt;br /&gt;
== Le système de propulsion de la balle ==&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;envoyer la balle dans la cage de but adverse.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple propulsion.mp4]]&lt;br /&gt;
&lt;br /&gt;
* Reste ensuite à construire un système pour contenir la balle le temps de la rotation et réussir à la propulser avec beaucoup de force.&lt;br /&gt;
&lt;br /&gt;
= Bluetooth =&lt;br /&gt;
  Comment effectuer une liaison bluetooth avec les robots mindstorms ?&lt;br /&gt;
&lt;br /&gt;
= Test match =&lt;br /&gt;
  À faire au plus tôt : Il s&amp;#039;agit de faire un match et de commencer à effectuer les dernières modifications&lt;br /&gt;
&lt;br /&gt;
= Voir aussi =&lt;br /&gt;
&lt;br /&gt;
== Articles connexes ==&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms Ev3]&lt;br /&gt;
&lt;br /&gt;
== Liens externes ==&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/ Site officiel lego mindstorm]&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/downloads Téléchargements de l&amp;#039;IDE] - Integrated Developpement Environnement, l&amp;#039;environnement de programmation graphique officiel. Celui utilisé lors de ce bureau d&amp;#039;étude.&lt;br /&gt;
&lt;br /&gt;
* [http://bricxcc.sourceforge.net/ Site du projet Bricxcc] - à suivre pour voir l&amp;#039;avancement du projet Bricxcc pour les Ev3&lt;br /&gt;
* [http://www.robotc.net/download/lego/ Site de téléchargement du logiciel de programmation alternatif RobotC]&lt;/div&gt;</summary>
		<author><name>Ltombazz</name></author>
	</entry>
	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3765</id>
		<title>RobotCompetition2014-1</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3765"/>
		<updated>2015-04-09T12:40:36Z</updated>

		<summary type="html">&lt;p&gt;Ltombazz : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction : cadre de travail et présentation du bureau d&amp;#039;étude =&lt;br /&gt;
&lt;br /&gt;
* Le bureau d&amp;#039;é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 &amp;quot;étude&amp;quot; du problème sont nécessaires pour répondre à des objectifs fixés en début de semestre. Nous avons choisi le bureau d&amp;#039;étude IMA parce que nous étions intéressés par le domaine de l&amp;#039;électronique et des systèmes embarqués. C&amp;#039;était donc le bureau d&amp;#039;étude qui paraissait le plus intéressant par l&amp;#039;aspect constructif, la programmation et l&amp;#039;application rapide et concrète du projet étudié.&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;occupent respectivement d&amp;#039;une partie d&amp;#039;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&amp;#039;occuper :&lt;br /&gt;
** d&amp;#039;une cage de buts (2 au total)&lt;br /&gt;
** de robots de compétition (4 au total)&lt;br /&gt;
** d&amp;#039;un arbitre&lt;br /&gt;
** et d&amp;#039;un robot ramasseur de balle&lt;br /&gt;
&lt;br /&gt;
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&amp;#039;essai de la dernière génération de robot lego Mindstorm : la série Ev3.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boite_mindstormev3.jpeg|300px]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc pour cahier de charge le suivant :&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Avancer vers la balle (avec des moteurs)&lt;br /&gt;
* S&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
Pour cela notre robot est équipé de différents capteurs et moteurs ainsi qu&amp;#039;une panoplie de briques (de construction technique) et un &amp;quot;centre nerveux&amp;quot; appelé &amp;quot;brique programmable&amp;quot;, permettant de contrôler les différents moteurs, et de lire les valeurs des capteurs qui donne vie au robot.&lt;br /&gt;
Nous avons donc à notre disposition :&lt;br /&gt;
- 3 moteurs.&lt;br /&gt;
- Différents capteurs : couleur, proximité, capteurs de pression, infrarouge.&lt;br /&gt;
- 1 brique programmable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le robot : Lego Mindstorm Ev3 ==&lt;br /&gt;
Dans un premier temps, par manque cruel d&amp;#039;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 &amp;quot;chenilles&amp;quot;. Nous avons ensuite disposés les capteurs de manière à ce qu&amp;#039;ils ne se masquent pas entre eux, tout en leur permettant de fonctionner correctement et d&amp;#039;interagir avec la balle.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:robot_prototype1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== 2nde étape du projet : mise en place de l&amp;#039;environnement de programmation ==&lt;br /&gt;
* Durant 3 séances après une première construction de notre robot, nous avons cherché à le faire vivre. Nous avons donc essayé d&amp;#039;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&amp;#039;installations, nous nous sommes rendus compte que le logiciel Bricxcc ne serait probablement pas notre environnement de programmation.&lt;br /&gt;
* 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&amp;#039;avec l&amp;#039;environnement de programmation graphique conçu pour les NXT). Il ne l&amp;#039;est cependant qu&amp;#039;à 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&amp;#039;exécuter.&lt;br /&gt;
* Nous avons eu aussi l&amp;#039;occasion de découvrir un autre logiciel appelé RobotC, qui comme son nom l&amp;#039;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&amp;#039;essai ne durant que dix jours nous n&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
== Prise en main du logiciel de programmation graphique et première approche ==&lt;br /&gt;
* 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&amp;#039;on doit assembler des blocs et de manière très réductrice, on peut dire qu&amp;#039;il s&amp;#039;agit d&amp;#039;un puzzle à assembler (le logiciel est destiné à un jeune âge).&lt;br /&gt;
* Un point important à noter est que l&amp;#039;on peut par analogie à un langage de programmation en &amp;quot;texte&amp;quot;, créer des fonctions pour ainsi factoriser le code et le rendre plus compréhensible pour le lecteur.&lt;br /&gt;
* Ici ce sont des &amp;quot;blocs&amp;quot;, constitués eux-même d&amp;#039;un assemblage de blocs. Il est ainsi facile de créer un bloc nommé &amp;quot;chercher_balle&amp;quot; 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&amp;#039;on ait l&amp;#039;illusion que le robot est autonome.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:suivi ligne.mp4]]&lt;br /&gt;
&lt;br /&gt;
= Fonctionnement mécanique =&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
== Avancer/ reculer ==&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
[[Média:translation_rotation.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Détection de la balle ==&lt;br /&gt;
&lt;br /&gt;
* Ici le robot cherche la balle en s&amp;#039;orientant dans la même direction que celui-ci.&lt;br /&gt;
&lt;br /&gt;
[[Média:detection_balle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur des couleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le capteur de couleur permet au robot de ne pas sortir des limites du terrain. Il permet aussi, sur ordre de l&amp;#039;arbitre de se remettre en place sur le terrain pour un nouveau coup d&amp;#039;envoi.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_couleur_1.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation de l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Grâce à l&amp;#039;écran du robot Mindstorm Ev3, doté d&amp;#039;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&amp;#039;agit entre autre du capteur de proximité.&lt;br /&gt;
&lt;br /&gt;
[[Média:diapo_ecran.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilisation des hauts-parleurs ==&lt;br /&gt;
&lt;br /&gt;
* Le Mindstorm Ev3 est doté d&amp;#039;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&amp;#039;exécution d&amp;#039;une action. Conjointement à l&amp;#039;affichage d&amp;#039;une &amp;quot;émotion&amp;quot; sur l&amp;#039;écran du robot. Cela donne vie au robot et il peut trouver une utilité dans l&amp;#039;aspect esthétique de ce dernier.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple haut parleur.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur tactile / des boutons situés sous l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
* Le robot est doté d&amp;#039;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&amp;#039;il a bien attrapé la balle ou pas.&lt;br /&gt;
* Il y a des touches de directions situés sous l&amp;#039;écran pour naviguer dans l&amp;#039;interface de la brique. Le bouton en haut à droite permet de sortir d&amp;#039;un menu et de revenir en arrière. Dans le menu principal il permet d&amp;#039;afficher l&amp;#039;invite pour éteindre la brique.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_tactile.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteurs de proximité ==&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
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&amp;#039;arrêter au niveau de celui-ci sans rentrer en collision.&lt;br /&gt;
&lt;br /&gt;
== Le système de propulsion de la balle ==&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;envoyer la balle dans la cage de but adverse.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple propulsion.mp4]]&lt;br /&gt;
&lt;br /&gt;
* Reste ensuite à construire un système pour contenir la balle le temps de la rotation et réussir à la propulser avec beaucoup de force.&lt;br /&gt;
&lt;br /&gt;
= Bluetooth =&lt;br /&gt;
&lt;br /&gt;
= Test match =&lt;br /&gt;
&lt;br /&gt;
=== Articles connexes ===&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms Ev3]&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
= Voir aussi =&lt;br /&gt;
== Articles connexes ==&lt;br /&gt;
&lt;br /&gt;
== Liens externes ==&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/ Site officiel lego mindstorm]&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/downloads Téléchargements de l&amp;#039;IDE] - Integrated Developpement Environnement, l&amp;#039;environnement de programmation graphique officiel. Celui utilisé lors de ce bureau d&amp;#039;étude.&lt;/div&gt;</summary>
		<author><name>Ltombazz</name></author>
	</entry>
	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3764</id>
		<title>RobotCompetition2014-1</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3764"/>
		<updated>2015-04-09T12:38:42Z</updated>

		<summary type="html">&lt;p&gt;Ltombazz : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction : cadre de travail et présentation du bureau d&amp;#039;étude =&lt;br /&gt;
&lt;br /&gt;
* Le bureau d&amp;#039;é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 &amp;quot;étude&amp;quot; du problème sont nécessaires pour répondre à des objectifs fixés en début de semestre. Nous avons choisi le bureau d&amp;#039;étude IMA parce que nous étions intéressés par le domaine de l&amp;#039;électronique et des systèmes embarqués. C&amp;#039;était donc le bureau d&amp;#039;étude qui paraissait le plus intéressant par l&amp;#039;aspect constructif, la programmation et l&amp;#039;application rapide et concrète du projet étudié.&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;occupent respectivement d&amp;#039;une partie d&amp;#039;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&amp;#039;occuper :&lt;br /&gt;
** d&amp;#039;une cage de buts (2 au total)&lt;br /&gt;
** de robots de compétition (4 au total)&lt;br /&gt;
** d&amp;#039;un arbitre&lt;br /&gt;
** et d&amp;#039;un robot ramasseur de balle&lt;br /&gt;
&lt;br /&gt;
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&amp;#039;essai de la dernière génération de robot lego Mindstorm : la série Ev3.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boite_mindstormev3.jpeg|300px]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc pour cahier de charge le suivant :&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Avancer vers la balle (avec des moteurs)&lt;br /&gt;
* S&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
Pour cela notre robot est équipé de différents capteurs et moteurs ainsi qu&amp;#039;une panoplie de briques (de construction technique) et un &amp;quot;centre nerveux&amp;quot; appelé &amp;quot;brique programmable&amp;quot;, permettant de contrôler les différents moteurs, et de lire les valeurs des capteurs qui donne vie au robot.&lt;br /&gt;
Nous avons donc à notre disposition :&lt;br /&gt;
- 3 moteurs.&lt;br /&gt;
- Différents capteurs : couleur, proximité, capteurs de pression, infrarouge.&lt;br /&gt;
- 1 brique programmable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le robot : Lego Mindstorm Ev3 ==&lt;br /&gt;
Dans un premier temps, par manque cruel d&amp;#039;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 &amp;quot;chenilles&amp;quot;. Nous avons ensuite disposés les capteurs de manière à ce qu&amp;#039;ils ne se masquent pas entre eux, tout en leur permettant de fonctionner correctement et d&amp;#039;interagir avec la balle.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:robot_prototype1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== 2nde étape du projet : mise en place de l&amp;#039;environnement de programmation ==&lt;br /&gt;
    Durant 3 séances après une première construction de notre robot, nous avons cherché à le faire vivre. Nous avons donc essayé d&amp;#039;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&amp;#039;installations, nous nous sommes rendus compte que le logiciel Bricxcc ne serait probablement pas notre environnement de programmation.&lt;br /&gt;
   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&amp;#039;avec l&amp;#039;environnement de programmation graphique conçu pour les NXT). Il ne l&amp;#039;est cependant qu&amp;#039;à 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&amp;#039;exécuter.&lt;br /&gt;
   Nous avons eu aussi l&amp;#039;occasion de découvrir un autre logiciel appelé RobotC, qui comme son nom l&amp;#039;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&amp;#039;essai ne durant que dix jours nous n&amp;#039;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.&lt;br /&gt;
&lt;br /&gt;
== Prise en main du logiciel de programmation graphique et première approche ==&lt;br /&gt;
   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&amp;#039;on doit assembler des blocs et de manière très réductrice, on peut dire qu&amp;#039;il s&amp;#039;agit d&amp;#039;un puzzle à assembler (le logiciel est destiné à un jeune âge).&lt;br /&gt;
   Un point important à noter est que l&amp;#039;on peut par analogie à un langage de programmation en &amp;quot;texte&amp;quot;, créer des fonctions pour ainsi factoriser le code et le rendre plus compréhensible pour le lecteur.&lt;br /&gt;
   Ici ce sont des &amp;quot;blocs&amp;quot;, constitués eux-même d&amp;#039;un assemblage de blocs. Il est ainsi facile de créer un bloc nommé &amp;quot;chercher_balle&amp;quot; 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&amp;#039;on ait l&amp;#039;illusion que le robot est autonome.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:suivi ligne.mp4]]&lt;br /&gt;
&lt;br /&gt;
= Fonctionnement mécanique =&lt;br /&gt;
&lt;br /&gt;
   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.&lt;br /&gt;
&lt;br /&gt;
== Avancer/ reculer ==&lt;br /&gt;
   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.&lt;br /&gt;
&lt;br /&gt;
[[Média:translation_rotation.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Détection de la balle ==&lt;br /&gt;
&lt;br /&gt;
   Ici le robot cherche la balle en s&amp;#039;orientant dans la même direction que celui-ci.&lt;br /&gt;
&lt;br /&gt;
[[Média:detection_balle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur des couleurs ==&lt;br /&gt;
&lt;br /&gt;
   Le capteur de couleur permet au robot de ne pas sortir des limites du terrain. Il permet aussi, sur ordre de l&amp;#039;arbitre de se remettre en place sur le terrain pour un nouveau coup d&amp;#039;envoi.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_couleur_1.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation de l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
   Grâce à l&amp;#039;écran du robot Mindstorm Ev3, doté d&amp;#039;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&amp;#039;agit entre autre du capteur de proximité.&lt;br /&gt;
&lt;br /&gt;
[[Média:diapo_ecran.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilisation des hauts-parleurs ==&lt;br /&gt;
&lt;br /&gt;
   Le Mindstorm Ev3 est doté d&amp;#039;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&amp;#039;exécution d&amp;#039;une action. Conjointement à l&amp;#039;affichage d&amp;#039;une &amp;quot;émotion&amp;quot; sur l&amp;#039;écran du robot. Cela donne vie au robot et il peut trouver une utilité dans l&amp;#039;aspect esthétique de ce dernier.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple haut parleur.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur tactile / des boutons situés sous l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
   Le robot est doté d&amp;#039;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&amp;#039;il a bien attrapé la balle ou pas.&lt;br /&gt;
   Il y a des touches de directions situés sous l&amp;#039;écran pour naviguer dans l&amp;#039;interface de la brique. Le bouton en haut à droite permet de sortir d&amp;#039;un menu et de revenir en arrière. Dans le menu principal il permet d&amp;#039;afficher l&amp;#039;invite pour éteindre la brique.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_tactile.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteurs de proximité ==&lt;br /&gt;
&lt;br /&gt;
   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.&lt;br /&gt;
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&amp;#039;arrêter au niveau de celui-ci sans rentrer en collision.&lt;br /&gt;
&lt;br /&gt;
== Le système de propulsion de la balle ==&lt;br /&gt;
&lt;br /&gt;
   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&amp;#039;envoyer la balle dans la cage de but adverse.&lt;br /&gt;
   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.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple propulsion.mp4]]&lt;br /&gt;
&lt;br /&gt;
   Reste ensuite à construire un système pour contenir la balle le temps de la rotation et réussir à la propulser avec beaucoup de force.&lt;br /&gt;
&lt;br /&gt;
= Bluetooth =&lt;br /&gt;
&lt;br /&gt;
= Test match =&lt;br /&gt;
&lt;br /&gt;
=== Articles connexes ===&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms Ev3]&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
= Voir aussi =&lt;br /&gt;
== Articles connexes ==&lt;br /&gt;
&lt;br /&gt;
== Liens externes ==&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/ Site officiel lego mindstorm]&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/downloads Téléchargements de l&amp;#039;IDE] - Integrated Developpement Environnement, l&amp;#039;environnement de programmation graphique officiel. Celui utilisé lors de ce bureau d&amp;#039;étude.&lt;/div&gt;</summary>
		<author><name>Ltombazz</name></author>
	</entry>
	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3763</id>
		<title>RobotCompetition2014-1</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3763"/>
		<updated>2015-04-08T14:27:44Z</updated>

		<summary type="html">&lt;p&gt;Ltombazz : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction : cadre de travail et présentation du bureau d&amp;#039;étude =&lt;br /&gt;
&lt;br /&gt;
* Le bureau d&amp;#039;é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 &amp;quot;étude&amp;quot; du problème sont nécessaires pour répondre à des objectifs fixés en début de semestre. Nous avons choisi le bureau d&amp;#039;étude IMA parce que nous étions intéressé par le domaine de l&amp;#039;électronique et des systèmes embarqués. C&amp;#039;était donc le bureau d&amp;#039;étude qui paraissait le plus intéressant (aspect construction, programmation et application rapide et concrète du projet étudié.&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;occupent respectivement d&amp;#039;une partie d&amp;#039;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&amp;#039;occuper :&lt;br /&gt;
** d&amp;#039;une cage de buts (2 au total)&lt;br /&gt;
** de robots de compétition (4 au total)&lt;br /&gt;
** d&amp;#039;un arbitre&lt;br /&gt;
** et d&amp;#039;un robot ramasseur de balle&lt;br /&gt;
&lt;br /&gt;
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 &lt;br /&gt;
l&amp;#039;essai de la dernière génération de robot lego Mindstorm : la série Ev3.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boite_mindstormev3.jpeg|300px]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc pour cahier de charge le suivant :&lt;br /&gt;
&lt;br /&gt;
* 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&lt;br /&gt;
* avancer vers la balle (avec des moteurs)&lt;br /&gt;
* s&amp;#039;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&lt;br /&gt;
&lt;br /&gt;
Pour cela notre robot est équipé de différents capteurs et moteurs ainsi qu&amp;#039;une panoplie de briques (de construction technique) et un &amp;quot;centre nerveux&amp;quot; appelé &amp;quot;brique programmable&amp;quot;, permettant de contrôler les différents moteurs vitesse, et lire les valeurs des capteurs pour donner vie au robot.&lt;br /&gt;
Nous avons donc à notre disposition :&lt;br /&gt;
- 3 moteurs&lt;br /&gt;
- différents capteurs : couleur, proximité, capteurs de pression&lt;br /&gt;
- 1 brique programmable&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le robot : Lego Mindstorm Ev3 ==&lt;br /&gt;
Dans un premier temps, par manque cruel d&amp;#039;inspiration et ne sachant pas par où commencer, on s&amp;#039;est référé au manuel fourni dans la boîte et avons choisi de construire le robot se déplaçant avec des &amp;quot;chenilles&amp;quot;, et avons ensuite disposé les capteurs de manière à ce qu&amp;#039;ils ne se masquent pas tout en leur permettant de fonctionner correctement et pouvoir permettre ainsi au robot d&amp;#039;interagir avec la balle.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:robot_prototype1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== 2nde étape du projet : mise en place de l&amp;#039;environnement de programmation ==&lt;br /&gt;
Durant 3 séances après une première construction de notre robot, nous avons cherché à le faire vivre. Nous avons donc essayé d&amp;#039;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&amp;#039;installations, nous nous sommes rendus compte que le logiciel Bricxcc ne serait probablement pas notre environnement de programmation.&lt;br /&gt;
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&amp;#039;environnement de programmation graphique conçu pour les NXT); il ne l&amp;#039;est qu&amp;#039;à 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.&lt;br /&gt;
Nous avons eu aussi l&amp;#039;occasion de découvrir un autre logiciel appelé RobotC, qui comme son nom l&amp;#039;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&amp;#039;essai ne durant que dix jours nous n&amp;#039;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&lt;br /&gt;
&lt;br /&gt;
== Prise en main du logiciel de programmation graphique et première approche ==&lt;br /&gt;
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&amp;#039;on doit coller des blocs et de manière très réductrice, on peut dire qu&amp;#039;il s&amp;#039;agit d&amp;#039;un puzzle à assembler (le logiciel est destiné à de très jeunes enfants).&lt;br /&gt;
Un point important à noter est que l&amp;#039;on peut par analogie à un langage de programmation en &amp;quot;texte&amp;quot;, créer des fonctions pour ainsi factoriser le code.&lt;br /&gt;
Ici ce sont des &amp;quot;blocs&amp;quot;, constitués eux-même d&amp;#039;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&amp;#039;on ait l&amp;#039;illusion que le robot est autonome.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:suivi ligne.mp4]]&lt;br /&gt;
&lt;br /&gt;
= Fonctionnement mécanique =&lt;br /&gt;
&lt;br /&gt;
Il est évidemment que pour programmer efficacement un robot, il faut découper le code en plusieurs sous-code appelés fonctions et agencer ces fonctions selon des conditions. Dans cette partie nous allons vous présenter ces différentes fonctions dans des petites séquences vidéos.&lt;br /&gt;
&lt;br /&gt;
== Avancer/ reculer ==&lt;br /&gt;
Dans cette vidéos, nous voyons comment le robot effectue ses mouvements de translation et de rotation. On peut bien sur très facilement combiner translation ET rotation.&lt;br /&gt;
&lt;br /&gt;
[[Média:translation_rotation.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Détection de la balle ==&lt;br /&gt;
&lt;br /&gt;
Ici le robot cherche la balle en s&amp;#039;orientant dans la même direction que celui-ci.&lt;br /&gt;
&lt;br /&gt;
[[Média:detection_balle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur des couleurs ==&lt;br /&gt;
&lt;br /&gt;
Le capteur de couleur permet au robot de ne pas sortir des limites du terrain. Il permet aussi, sur ordre de l&amp;#039;arbitre de se remettre en place sur le terrain pour un nouveau coup d&amp;#039;envoi.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_couleur_1.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation de l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
Grâce à l&amp;#039;écran du robot Mindstorm Ev3, doté d&amp;#039;une résolution de 178*128 pixel, on peut afficher des images pré-enregistrer dans la brique, on peut afficher du texte mais il est très utile lors de test des valeurs du capteur, car il est possible d&amp;#039;afficher aisément les valeurs d&amp;#039;un capteur. Dans la vidéo, il s&amp;#039;agit du capteur de proximité.&lt;br /&gt;
&lt;br /&gt;
[[Média:diapo_ecran.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilisation des hauts-parleurs ==&lt;br /&gt;
&lt;br /&gt;
Le Mindstorm Ev3 est doté d&amp;#039;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&amp;#039;exécution d&amp;#039;une action. Conjointement à l&amp;#039;affichage d&amp;#039;une &amp;quot;émotion&amp;quot; sur l&amp;#039;écran du robot. Cela donne vie à ce dernier et il peut trouver une utilité dans l&amp;#039;aspect esthétique de ce dernier.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple haut parleur.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur tactile / des boutons situés sous l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
Le robot est doté d&amp;#039;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&amp;#039;il a bien attrapé la balle ou pas.&lt;br /&gt;
Il y a des touches de directions dans situés sous l&amp;#039;écran pour naviguer dans l&amp;#039;interface de la brique. Le bouton en haut à droite permet de sortir d&amp;#039;un menu et de revenir en arrière. Dans le menu principal il permet d&amp;#039;afficher l&amp;#039;invite d&amp;#039;arrêt de la brique.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_tactile.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteurs de proximité ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
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&amp;#039;arrêter au niveau de celui-ci sans rentrer en collision.&lt;br /&gt;
&lt;br /&gt;
== Le système de propulsion de la balle ==&lt;br /&gt;
&lt;br /&gt;
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&amp;#039;envoyer la balle dans la cage de but adverse.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple propulsion.mp4]]&lt;br /&gt;
&lt;br /&gt;
Reste ensuite à construire un système pour contenir la balle le temps de la rotation et réussir à la propulser avec beaucoup de force.&lt;br /&gt;
&lt;br /&gt;
= Bluetooth =&lt;br /&gt;
&lt;br /&gt;
= Test match =&lt;br /&gt;
&lt;br /&gt;
=== Articles connexes ===&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms Ev3]&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
= Voir aussi =&lt;br /&gt;
== Articles connexes ==&lt;br /&gt;
&lt;br /&gt;
== Liens externes ==&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/ Site officiel lego mindstorm]&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/downloads Téléchargements de l&amp;#039;IDE] - Integrated Developpement Environnement, l&amp;#039;environnement de programmation graphique officiel. Celui utilisé lors de ce bureau d&amp;#039;étude.&lt;/div&gt;</summary>
		<author><name>Ltombazz</name></author>
	</entry>
	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3762</id>
		<title>RobotCompetition2014-1</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3762"/>
		<updated>2015-04-08T14:27:06Z</updated>

		<summary type="html">&lt;p&gt;Ltombazz : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction : cadre de travail et présentation du bureau d&amp;#039;étude =&lt;br /&gt;
&lt;br /&gt;
* Le bureau d&amp;#039;é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 &amp;quot;étude&amp;quot; du problème sont nécessaires pour répondre à des objectifs fixés en début de semestre. Nous avons choisi le bureau d&amp;#039;étude IMA parce que nous étions intéressé par le domaine de l&amp;#039;électronique et des systèmes embarqués. C&amp;#039;était donc le bureau d&amp;#039;étude qui paraissait le plus intéressant (aspect construction, programmation et application rapide et concrète du projet étudié.&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;occupent respectivement d&amp;#039;une partie d&amp;#039;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&amp;#039;occuper :&lt;br /&gt;
** d&amp;#039;une cage de buts (2 au total)&lt;br /&gt;
** de robots de compétition (4 au total)&lt;br /&gt;
** d&amp;#039;un arbitre&lt;br /&gt;
** et d&amp;#039;un robot ramasseur de balle&lt;br /&gt;
&lt;br /&gt;
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 &lt;br /&gt;
l&amp;#039;essai de la dernière génération de robot lego Mindstorm : la série Ev3.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boite_mindstormev3.jpeg|300px]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc pour cahier de charge le suivant :&lt;br /&gt;
&lt;br /&gt;
* 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&lt;br /&gt;
* avancer vers la balle (avec des moteurs)&lt;br /&gt;
* s&amp;#039;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&lt;br /&gt;
&lt;br /&gt;
Pour cela notre robot est équipé de différents capteurs et moteurs ainsi qu&amp;#039;une panoplie de briques (de construction technique) et un &amp;quot;centre nerveux&amp;quot; appelé &amp;quot;brique programmable&amp;quot;, permettant de contrôler les différents moteurs vitesse, et lire les valeurs des capteurs pour donner vie au robot.&lt;br /&gt;
Nous avons donc à notre disposition :&lt;br /&gt;
- 3 moteurs&lt;br /&gt;
- différents capteurs : couleur, proximité, capteurs de pression&lt;br /&gt;
- 1 brique programmable&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le robot : Lego Mindstorm Ev3 ==&lt;br /&gt;
Dans un premier temps, par manque cruel d&amp;#039;inspiration et ne sachant pas par où commencer, on s&amp;#039;est référé au manuel fourni dans la boîte et avons choisi de construire le robot se déplaçant avec des &amp;quot;chenilles&amp;quot;, et avons ensuite disposé les capteurs de manière à ce qu&amp;#039;ils ne se masquent pas tout en leur permettant de fonctionner correctement et pouvoir permettre ainsi au robot d&amp;#039;interagir avec la balle.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:robot_prototype1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== 2nde étape du projet : mise en place de l&amp;#039;environnement de programmation ==&lt;br /&gt;
Durant 3 séances après une première construction de notre robot, nous avons cherché à le faire vivre. Nous avons donc essayé d&amp;#039;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&amp;#039;installations, nous nous sommes rendus compte que le logiciel Bricxcc ne serait probablement pas notre environnement de programmation.&lt;br /&gt;
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&amp;#039;environnement de programmation graphique conçu pour les NXT); il ne l&amp;#039;est qu&amp;#039;à 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.&lt;br /&gt;
Nous avons eu aussi l&amp;#039;occasion de découvrir un autre logiciel appelé RobotC, qui comme son nom l&amp;#039;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&amp;#039;essai ne durant que dix jours nous n&amp;#039;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&lt;br /&gt;
&lt;br /&gt;
== Prise en main du logiciel de programmation graphique et première approche ==&lt;br /&gt;
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&amp;#039;on doit coller des blocs et de manière très réductrice, on peut dire qu&amp;#039;il s&amp;#039;agit d&amp;#039;un puzzle à assembler (le logiciel est destiné à de très jeunes enfants).&lt;br /&gt;
Un point important à noter est que l&amp;#039;on peut par analogie à un langage de programmation en &amp;quot;texte&amp;quot;, créer des fonctions pour ainsi factoriser le code.&lt;br /&gt;
Ici ce sont des &amp;quot;blocs&amp;quot;, constitués eux-même d&amp;#039;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&amp;#039;on ait l&amp;#039;illusion que le robot est autonome.&lt;br /&gt;
&lt;br /&gt;
[[Média:suivi ligne.mp4]]&lt;br /&gt;
&lt;br /&gt;
= Fonctionnement mécanique =&lt;br /&gt;
&lt;br /&gt;
Il est évidemment que pour programmer efficacement un robot, il faut découper le code en plusieurs sous-code appelés fonctions et agencer ces fonctions selon des conditions. Dans cette partie nous allons vous présenter ces différentes fonctions dans des petites séquences vidéos.&lt;br /&gt;
&lt;br /&gt;
== Avancer/ reculer ==&lt;br /&gt;
Dans cette vidéos, nous voyons comment le robot effectue ses mouvements de translation et de rotation. On peut bien sur très facilement combiner translation ET rotation.&lt;br /&gt;
&lt;br /&gt;
[[Média:translation_rotation.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Détection de la balle ==&lt;br /&gt;
&lt;br /&gt;
Ici le robot cherche la balle en s&amp;#039;orientant dans la même direction que celui-ci.&lt;br /&gt;
&lt;br /&gt;
[[Média:detection_balle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur des couleurs ==&lt;br /&gt;
&lt;br /&gt;
Le capteur de couleur permet au robot de ne pas sortir des limites du terrain. Il permet aussi, sur ordre de l&amp;#039;arbitre de se remettre en place sur le terrain pour un nouveau coup d&amp;#039;envoi.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_couleur_1.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation de l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
Grâce à l&amp;#039;écran du robot Mindstorm Ev3, doté d&amp;#039;une résolution de 178*128 pixel, on peut afficher des images pré-enregistrer dans la brique, on peut afficher du texte mais il est très utile lors de test des valeurs du capteur, car il est possible d&amp;#039;afficher aisément les valeurs d&amp;#039;un capteur. Dans la vidéo, il s&amp;#039;agit du capteur de proximité.&lt;br /&gt;
&lt;br /&gt;
[[Média:diapo_ecran.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilisation des hauts-parleurs ==&lt;br /&gt;
&lt;br /&gt;
Le Mindstorm Ev3 est doté d&amp;#039;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&amp;#039;exécution d&amp;#039;une action. Conjointement à l&amp;#039;affichage d&amp;#039;une &amp;quot;émotion&amp;quot; sur l&amp;#039;écran du robot. Cela donne vie à ce dernier et il peut trouver une utilité dans l&amp;#039;aspect esthétique de ce dernier.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple haut parleur.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur tactile / des boutons situés sous l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
Le robot est doté d&amp;#039;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&amp;#039;il a bien attrapé la balle ou pas.&lt;br /&gt;
Il y a des touches de directions dans situés sous l&amp;#039;écran pour naviguer dans l&amp;#039;interface de la brique. Le bouton en haut à droite permet de sortir d&amp;#039;un menu et de revenir en arrière. Dans le menu principal il permet d&amp;#039;afficher l&amp;#039;invite d&amp;#039;arrêt de la brique.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_tactile.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteurs de proximité ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
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&amp;#039;arrêter au niveau de celui-ci sans rentrer en collision.&lt;br /&gt;
&lt;br /&gt;
== Le système de propulsion de la balle ==&lt;br /&gt;
&lt;br /&gt;
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&amp;#039;envoyer la balle dans la cage de but adverse.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple propulsion.mp4]]&lt;br /&gt;
&lt;br /&gt;
Reste ensuite à construire un système pour contenir la balle le temps de la rotation et réussir à la propulser avec beaucoup de force.&lt;br /&gt;
&lt;br /&gt;
= Bluetooth =&lt;br /&gt;
&lt;br /&gt;
= Test match =&lt;br /&gt;
&lt;br /&gt;
=== Articles connexes ===&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms Ev3]&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
= Voir aussi =&lt;br /&gt;
== Articles connexes ==&lt;br /&gt;
&lt;br /&gt;
== Liens externes ==&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/ Site officiel lego mindstorm]&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/downloads Téléchargements de l&amp;#039;IDE] - Integrated Developpement Environnement, l&amp;#039;environnement de programmation graphique officiel. Celui utilisé lors de ce bureau d&amp;#039;étude.&lt;/div&gt;</summary>
		<author><name>Ltombazz</name></author>
	</entry>
	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3761</id>
		<title>RobotCompetition2014-1</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3761"/>
		<updated>2015-04-08T14:26:40Z</updated>

		<summary type="html">&lt;p&gt;Ltombazz : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction : cadre de travail et présentation du bureau d&amp;#039;étude =&lt;br /&gt;
&lt;br /&gt;
* Le bureau d&amp;#039;é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 &amp;quot;étude&amp;quot; du problème sont nécessaires pour répondre à des objectifs fixés en début de semestre. Nous avons choisi le bureau d&amp;#039;étude IMA parce que nous étions intéressé par le domaine de l&amp;#039;électronique et des systèmes embarqués. C&amp;#039;était donc le bureau d&amp;#039;étude qui paraissait le plus intéressant (aspect construction, programmation et application rapide et concrète du projet étudié.&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;occupent respectivement d&amp;#039;une partie d&amp;#039;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&amp;#039;occuper :&lt;br /&gt;
** d&amp;#039;une cage de buts (2 au total)&lt;br /&gt;
** de robots de compétition (4 au total)&lt;br /&gt;
** d&amp;#039;un arbitre&lt;br /&gt;
** et d&amp;#039;un robot ramasseur de balle&lt;br /&gt;
&lt;br /&gt;
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 &lt;br /&gt;
l&amp;#039;essai de la dernière génération de robot lego Mindstorm : la série Ev3.&lt;br /&gt;
[[Fichier:boite_mindstormev3.jpeg|500px]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc pour cahier de charge le suivant :&lt;br /&gt;
&lt;br /&gt;
* 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&lt;br /&gt;
* avancer vers la balle (avec des moteurs)&lt;br /&gt;
* s&amp;#039;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&lt;br /&gt;
&lt;br /&gt;
Pour cela notre robot est équipé de différents capteurs et moteurs ainsi qu&amp;#039;une panoplie de briques (de construction technique) et un &amp;quot;centre nerveux&amp;quot; appelé &amp;quot;brique programmable&amp;quot;, permettant de contrôler les différents moteurs vitesse, et lire les valeurs des capteurs pour donner vie au robot.&lt;br /&gt;
Nous avons donc à notre disposition :&lt;br /&gt;
- 3 moteurs&lt;br /&gt;
- différents capteurs : couleur, proximité, capteurs de pression&lt;br /&gt;
- 1 brique programmable&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le robot : Lego Mindstorm Ev3 ==&lt;br /&gt;
Dans un premier temps, par manque cruel d&amp;#039;inspiration et ne sachant pas par où commencer, on s&amp;#039;est référé au manuel fourni dans la boîte et avons choisi de construire le robot se déplaçant avec des &amp;quot;chenilles&amp;quot;, et avons ensuite disposé les capteurs de manière à ce qu&amp;#039;ils ne se masquent pas tout en leur permettant de fonctionner correctement et pouvoir permettre ainsi au robot d&amp;#039;interagir avec la balle.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:robot_prototype1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== 2nde étape du projet : mise en place de l&amp;#039;environnement de programmation ==&lt;br /&gt;
Durant 3 séances après une première construction de notre robot, nous avons cherché à le faire vivre. Nous avons donc essayé d&amp;#039;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&amp;#039;installations, nous nous sommes rendus compte que le logiciel Bricxcc ne serait probablement pas notre environnement de programmation.&lt;br /&gt;
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&amp;#039;environnement de programmation graphique conçu pour les NXT); il ne l&amp;#039;est qu&amp;#039;à 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.&lt;br /&gt;
Nous avons eu aussi l&amp;#039;occasion de découvrir un autre logiciel appelé RobotC, qui comme son nom l&amp;#039;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&amp;#039;essai ne durant que dix jours nous n&amp;#039;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&lt;br /&gt;
&lt;br /&gt;
== Prise en main du logiciel de programmation graphique et première approche ==&lt;br /&gt;
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&amp;#039;on doit coller des blocs et de manière très réductrice, on peut dire qu&amp;#039;il s&amp;#039;agit d&amp;#039;un puzzle à assembler (le logiciel est destiné à de très jeunes enfants).&lt;br /&gt;
Un point important à noter est que l&amp;#039;on peut par analogie à un langage de programmation en &amp;quot;texte&amp;quot;, créer des fonctions pour ainsi factoriser le code.&lt;br /&gt;
Ici ce sont des &amp;quot;blocs&amp;quot;, constitués eux-même d&amp;#039;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&amp;#039;on ait l&amp;#039;illusion que le robot est autonome.&lt;br /&gt;
&lt;br /&gt;
[[Média:suivi ligne.mp4]]&lt;br /&gt;
&lt;br /&gt;
= Fonctionnement mécanique =&lt;br /&gt;
&lt;br /&gt;
Il est évidemment que pour programmer efficacement un robot, il faut découper le code en plusieurs sous-code appelés fonctions et agencer ces fonctions selon des conditions. Dans cette partie nous allons vous présenter ces différentes fonctions dans des petites séquences vidéos.&lt;br /&gt;
&lt;br /&gt;
== Avancer/ reculer ==&lt;br /&gt;
Dans cette vidéos, nous voyons comment le robot effectue ses mouvements de translation et de rotation. On peut bien sur très facilement combiner translation ET rotation.&lt;br /&gt;
&lt;br /&gt;
[[Média:translation_rotation.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Détection de la balle ==&lt;br /&gt;
&lt;br /&gt;
Ici le robot cherche la balle en s&amp;#039;orientant dans la même direction que celui-ci.&lt;br /&gt;
&lt;br /&gt;
[[Média:detection_balle.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur des couleurs ==&lt;br /&gt;
&lt;br /&gt;
Le capteur de couleur permet au robot de ne pas sortir des limites du terrain. Il permet aussi, sur ordre de l&amp;#039;arbitre de se remettre en place sur le terrain pour un nouveau coup d&amp;#039;envoi.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_couleur_1.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation de l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
Grâce à l&amp;#039;écran du robot Mindstorm Ev3, doté d&amp;#039;une résolution de 178*128 pixel, on peut afficher des images pré-enregistrer dans la brique, on peut afficher du texte mais il est très utile lors de test des valeurs du capteur, car il est possible d&amp;#039;afficher aisément les valeurs d&amp;#039;un capteur. Dans la vidéo, il s&amp;#039;agit du capteur de proximité.&lt;br /&gt;
&lt;br /&gt;
[[Média:diapo_ecran.mp4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilisation des hauts-parleurs ==&lt;br /&gt;
&lt;br /&gt;
Le Mindstorm Ev3 est doté d&amp;#039;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&amp;#039;exécution d&amp;#039;une action. Conjointement à l&amp;#039;affichage d&amp;#039;une &amp;quot;émotion&amp;quot; sur l&amp;#039;écran du robot. Cela donne vie à ce dernier et il peut trouver une utilité dans l&amp;#039;aspect esthétique de ce dernier.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple haut parleur.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteur tactile / des boutons situés sous l&amp;#039;écran ==&lt;br /&gt;
&lt;br /&gt;
Le robot est doté d&amp;#039;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&amp;#039;il a bien attrapé la balle ou pas.&lt;br /&gt;
Il y a des touches de directions dans situés sous l&amp;#039;écran pour naviguer dans l&amp;#039;interface de la brique. Le bouton en haut à droite permet de sortir d&amp;#039;un menu et de revenir en arrière. Dans le menu principal il permet d&amp;#039;afficher l&amp;#039;invite d&amp;#039;arrêt de la brique.&lt;br /&gt;
&lt;br /&gt;
[[Média:capteur_tactile.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Utilisation du capteurs de proximité ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
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&amp;#039;arrêter au niveau de celui-ci sans rentrer en collision.&lt;br /&gt;
&lt;br /&gt;
== Le système de propulsion de la balle ==&lt;br /&gt;
&lt;br /&gt;
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&amp;#039;envoyer la balle dans la cage de but adverse.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple propulsion.mp4]]&lt;br /&gt;
&lt;br /&gt;
Reste ensuite à construire un système pour contenir la balle le temps de la rotation et réussir à la propulser avec beaucoup de force.&lt;br /&gt;
&lt;br /&gt;
= Bluetooth =&lt;br /&gt;
&lt;br /&gt;
= Test match =&lt;br /&gt;
&lt;br /&gt;
=== Articles connexes ===&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Lego_Mindstorms Lego Mindstorms Ev3]&lt;br /&gt;
&lt;br /&gt;
= Bibliographie =&lt;br /&gt;
&lt;br /&gt;
= Voir aussi =&lt;br /&gt;
== Articles connexes ==&lt;br /&gt;
&lt;br /&gt;
== Liens externes ==&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/ Site officiel lego mindstorm]&lt;br /&gt;
* [http://www.lego.com/fr-fr/mindstorms/downloads Téléchargements de l&amp;#039;IDE] - Integrated Developpement Environnement, l&amp;#039;environnement de programmation graphique officiel. Celui utilisé lors de ce bureau d&amp;#039;étude.&lt;/div&gt;</summary>
		<author><name>Ltombazz</name></author>
	</entry>
	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3686</id>
		<title>RobotCompetition2014-1</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=RobotCompetition2014-1&amp;diff=3686"/>
		<updated>2015-03-23T08:48:00Z</updated>

		<summary type="html">&lt;p&gt;Ltombazz : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction : cadre de travail et présentation du bureau d&amp;#039;étude =&lt;br /&gt;
&lt;br /&gt;
* Le bureau d&amp;#039;é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 &amp;quot;étude&amp;quot; du problème sont nécessaires pour répondre à des objectifs fixés en début de semestre. Nous avons choisi le bureau d&amp;#039;étude IMA parce que nous étions intéressé par le domaine de l&amp;#039;électronique et des systèmes embarqués. C&amp;#039;était donc le bureau d&amp;#039;étude qui paraissait le plus intéressant (aspect construction, programmation et application rapide et concrète du projet étudié.&lt;br /&gt;
&lt;br /&gt;
* 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&amp;#039;occupent respectivement d&amp;#039;une partie d&amp;#039;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&amp;#039;occuper :&lt;br /&gt;
** d&amp;#039;une cage de buts (2 au total)&lt;br /&gt;
** de robots de compétition (4 au total)&lt;br /&gt;
** d&amp;#039;un arbitre&lt;br /&gt;
** et d&amp;#039;un robot ramasseur de balle&lt;br /&gt;
&lt;br /&gt;
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 &lt;br /&gt;
l&amp;#039;essai de la dernière génération de robot lego Mindstorm : la série Ev3.&lt;br /&gt;
[[Média:boite_mindstormev3.jpeg]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc pour cahier de charge le suivant :&lt;br /&gt;
&lt;br /&gt;
* 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&lt;br /&gt;
* avancer vers la balle (avec des moteurs)&lt;br /&gt;
* s&amp;#039;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&lt;br /&gt;
&lt;br /&gt;
Pour cela notre robot est équipé de différents capteurs et moteurs ainsi qu&amp;#039;une panoplie de briques (de construction technique) et un &amp;quot;centre nerveux&amp;quot; appelé &amp;quot;brique programmable&amp;quot;, permettant de contrôler les différents moteurs vitesse, et lire les valeurs des capteurs pour donner vie au robot.&lt;br /&gt;
Nous avons donc à notre disposition :&lt;br /&gt;
- 3 moteurs&lt;br /&gt;
- différents capteurs : couleur, proximité, capteurs de pression&lt;br /&gt;
- 1 brique programmable&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le robot : Lego Mindstorm Ev3 ==&lt;br /&gt;
Dans un premier temps, par manque cruel d&amp;#039;inspiration et ne sachant pas par où commencer, on s&amp;#039;est référé au manuel fourni dans la boîte et avons choisi de construire le robot se déplaçant avec des &amp;quot;chenilles&amp;quot;, et avons ensuite disposé les capteurs de manière à ce qu&amp;#039;ils ne se masquent pas tout en leur permettant de fonctionner correctement et pouvoir permettre ainsi au robot d&amp;#039;interagir avec la balle.&lt;br /&gt;
[[Fichier:robot_prototype1.png]]&lt;br /&gt;
&lt;br /&gt;
== 2nde étape du projet : mise en place de l&amp;#039;environnement de programmation ==&lt;br /&gt;
Durant 3 séances après une première construction de notre robot, nous avons cherché à le faire vivre. Nous avons donc essayé d&amp;#039;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&amp;#039;installations, nous nous sommes rendus compte que le logiciel Bricxcc ne serait probablement pas notre environnement de programmation.&lt;br /&gt;
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&amp;#039;environnement de programmation graphique conçu pour les NXT); il ne l&amp;#039;est qu&amp;#039;à 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.&lt;br /&gt;
Nous avons eu aussi l&amp;#039;occasion de découvrir un autre logiciel appelé RobotC, qui comme son nom l&amp;#039;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&amp;#039;essai ne durant que dix jours nous n&amp;#039;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&lt;br /&gt;
&lt;br /&gt;
== Prise en main du logiciel de programmation graphique et première approche ==&lt;br /&gt;
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&amp;#039;on doit coller des blocs et de manière très réductrice, on peut dire qu&amp;#039;il s&amp;#039;agit d&amp;#039;un puzzle à assembler (le logiciel est destiné à de très jeunes enfants).&lt;br /&gt;
Un point important à noter est que l&amp;#039;on peut par analogie à un langage de programmation en &amp;quot;texte&amp;quot;, créer des fonctions pour ainsi factoriser le code.&lt;br /&gt;
Ici ce sont des &amp;quot;blocs&amp;quot;, constitués eux-même d&amp;#039;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&amp;#039;on ait l&amp;#039;illusion que le robot est autonome.&lt;br /&gt;
&lt;br /&gt;
[[Média:suivi ligne.mp4]]&lt;br /&gt;
&lt;br /&gt;
== Le système de propulsion de la balle ==&lt;br /&gt;
&lt;br /&gt;
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&amp;#039;envoyer la balle dans la cage de but adverse.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[Média:exemple propulsion.mp4]]&lt;br /&gt;
&lt;br /&gt;
Reste ensuite à construire un système pour contenir la balle le temps de la rotation et réussir à la propulser avec beaucoup de force.&lt;/div&gt;</summary>
		<author><name>Ltombazz</name></author>
	</entry>
	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=BE_2014-2015&amp;diff=3215</id>
		<title>BE 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=BE_2014-2015&amp;diff=3215"/>
		<updated>2015-01-19T08:15:44Z</updated>

		<summary type="html">&lt;p&gt;Ltombazz : /* Robots de compétition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Objectif à atteindre =&lt;br /&gt;
&lt;br /&gt;
Le contexte de ce bureau d&amp;#039;études est un jeu de balle. Deux robots se font face sur un terrain (voir ci-dessous), doivent repérer la balle et la propulser dans le but adverse. &lt;br /&gt;
[[Image:TerrainCouleur.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
Les robots ne sont pas les seuls acteurs dans ce jeu. Les buts ont aussi un rôle à assurer, un dispositif de remise de la balle au centre est nécessaire ainsi qu&amp;#039;un arbitre.&lt;br /&gt;
&lt;br /&gt;
Les différents différents rôles des acteurs sont décrits ci-après.&lt;br /&gt;
* Les buts doivent s&amp;#039;annoncer aux robots par infra-rouge. Les buts doivent disposer d&amp;#039;un mécanisme capable de capturer la balle dès qu&amp;#039;elle rentre dans la cage. L&amp;#039;évenement &amp;quot;but marqué&amp;quot; est alors envoyé à l&amp;#039;arbitre. Sur commande de l&amp;#039;arbitre, le but relance la balle vers le centre du terrain.&lt;br /&gt;
* Le rôle principal de l&amp;#039;arbitre est de communiquer avec les autres acteurs (robots et buts). Quand un but est marqué, l&amp;#039;arbitre met le score à jour. Ce score est affiché sur des afficheurs dédiés. C&amp;#039;est aussi l&amp;#039;arbitre qui commande la remise au centre de la balle. Enfin l&amp;#039;arbitre ordonne aux robots de se placer et leur indique quand ils peuvent jouer une manche.&lt;br /&gt;
* Le dispositif de remise au centre de la balle est un robot qui capture la balle et va la déposer au point d&amp;#039;engagement en se repérant sur les marques au sol. Ce robot opère lorsque l&amp;#039;arbitre le demande et prévient l&amp;#039;arbitre lorsque la tâche est réalisée.&lt;br /&gt;
* Les robots ont comme tâche principale de s&amp;#039;approcher de la balle et de la lancer vers le but adverse. Les robots ne peuvent avancer que s&amp;#039;ils ne détectent pas d&amp;#039;obstacle à faible distance. Un robot ne repérant plus la balle peut se replier devant son but pour le bloquer. Un robot de jeu ne peut pas sortir du terrain.&lt;br /&gt;
&lt;br /&gt;
Pour que les robots puissent différencier les buts de la balle, les buts font clignoter leurs LEDs infrarouges suivant un code pré-établi.&lt;br /&gt;
&lt;br /&gt;
Les communications entre les acteurs s&amp;#039;effectuent par &amp;lt;tt&amp;gt;bluetooth&amp;lt;/tt&amp;gt;. Les robots et les buts s&amp;#039;apparient avec l&amp;#039;arbitre et ne communiquent qu&amp;#039;avec lui. Votre premier travail consiste à analyser toutes les informations contenues dans cette page et à établir un schéma des communications qui doivent avoir lieu durant un jeu complet.&lt;br /&gt;
&lt;br /&gt;
= Matériel à votre disposition =&lt;br /&gt;
{| style=&amp;quot;float: right; height: 160px; margin-left:0.2em; border: 1px solid #bbb;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border: 1px solid #bbb;&amp;quot; valign=&amp;quot;top&amp;quot; |[[File:boite_mindstorm.jpg|150px]]&lt;br /&gt;
| style=&amp;quot;border: 1px solid #bbb;&amp;quot; valign=&amp;quot;top&amp;quot; |[[File:ev3.png|120px]]&lt;br /&gt;
|- style=&amp;quot;font-size: 87%; text-align: center;&amp;quot;&lt;br /&gt;
| valign=&amp;quot;center&amp;quot; | Legos Mindstorm&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;float: left; height: 160px; margin-left:0.2em; border: 1px solid #bbb;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border: 1px solid #bbb;&amp;quot; valign=&amp;quot;middle&amp;quot; |[[File:pcduino1.png|150px]]&lt;br /&gt;
| style=&amp;quot;border: 1px solid #bbb;&amp;quot; valign=&amp;quot;top&amp;quot; |[[File:attiny85.png|150px]]&lt;br /&gt;
|- style=&amp;quot;font-size: 87%; text-align: center;&amp;quot;&lt;br /&gt;
| valign=&amp;quot;center&amp;quot; | Système pcDuino1&lt;br /&gt;
| valign=&amp;quot;center&amp;quot; | AVR attiny85&lt;br /&gt;
|}&lt;br /&gt;
Les robots et les buts doivent être réalisées à l&amp;#039;aide de Lego MindStorm. Le Lego va permettre de réaliser le chassis des robots avec sa motorisation et d&amp;#039;y installer divers capteurs. Le Lego permet aussi de réaliser les cages des buts, leur dispositif de capture de la balle et leur dispositif d&amp;#039;éjection.&lt;br /&gt;
&lt;br /&gt;
La communication des robots et des buts vers l&amp;#039;arbitre doit se faire grâce à la technologie &amp;lt;tt&amp;gt;bluetooth&amp;lt;/tt&amp;gt; intégrée au micro-contrôleur MindStorm.&lt;br /&gt;
&lt;br /&gt;
Pour la localisation des buts, des balises doivent être construites à base de LEDs infra-rouges modulées à l&amp;#039;aide d&amp;#039;une fréquence compatible avec les détecteurs des robots. Vous réaliserez un petit circuit électronique à base de micro-contrôleur AVR &amp;lt;tt&amp;gt;tiny85&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour l&amp;#039;arbitre un système embarqué de type pcDuino est nécessaire. Doit lui être adjoint un adaptateur USB &amp;lt;tt&amp;gt;bluetooth&amp;lt;/tt&amp;gt; pour permettre la communication avec les contrôleurs MindStorm. Les afficheurs seront réalisés à partir de platines séries contrôlant des afficheurs 7 segments. Ces platines peuvent être contrôlées via le bus SPI du pcDuino.&lt;br /&gt;
&lt;br /&gt;
Pour la programmation des micro-contrôleurs MindStorm, vous pouvez utiliser le logiciel graphique fourni mais vous êtes encouragés à tester le langage [http://bricxcc.sourceforge.net/nbc/ NXC] (Not eXactly C) qui permet d&amp;#039;écrire efficacement des programmes plus conséquents. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Répartition des tâches =&lt;br /&gt;
&lt;br /&gt;
Chaque binôme va se voir affecter une des problématiques décrites dans les sous-sections suivantes.&lt;br /&gt;
&lt;br /&gt;
== Cage de but ==&lt;br /&gt;
Une cage de but doit comporter les dispositifs décrits ci-dessous.&lt;br /&gt;
* La cage doit émettre un signal infra-rouge pour être facilement repérable par les robots. &lt;br /&gt;
* La cage doit détecter quand la balle rentre dans la cage en la dirigeant précisement vers un capteur de contact.&lt;br /&gt;
* La cage doit signaler un but à l&amp;#039;arbitre.&lt;br /&gt;
* Enfin la cage doit pouvoir expulser la balle quand l&amp;#039;arbitre le demande.&lt;br /&gt;
&lt;br /&gt;
Il existe des sites Web décrivant des montages électroniques pour réaliser une [http://ftcforum.usfirst.org/showthread.php?2147-DIY-IR-Beacon-using-Arduino-or-ATTiny-chip balise infra-rouge]. Votre balise doit pouvoir alterner des séquences d&amp;#039;émission et d&amp;#039;arrêt de période déterminée pour permettre de différencier les buts. Pour aller plus loin, prévoyez une LED classique pour indiquer les période d&amp;#039;émission et d&amp;#039;arrêt ainsi qu&amp;#039;un bouton pour sélectionner la durée en seconde des périodes d&amp;#039;arrêt. Enfin concevez un circuit imprimé pour votre montage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;Elèves&amp;lt;/th&amp;gt; &amp;lt;th&amp;gt;Matériel&amp;lt;/th&amp;gt; &amp;lt;th&amp;gt;Page&amp;lt;/th&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Vivian SENAFFE / Florian SAÏZ &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Boite Lego MindStorm&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;LEDs infra-rouge&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;AVR attiny85&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Composants électroniques pour balise&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[CageBut2014-1|Cage de but 1]] &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Prénom Nom / Prénom Nom &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Boite Lego MindStorm&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;LEDs infra-rouge&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;AVR attiny85&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Composants électroniques pour balise&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[CageBut2014-2|Cage de but 2]] &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Robots de compétition ==&lt;br /&gt;
Lorsque qu&amp;#039;un robot de compétition a repéré la balle, il effectue les actions suivantes.&lt;br /&gt;
* Il se dirige vers la balle pour la capturer. Une fois la balle capturée le robot ne se déplace plus en translation.&lt;br /&gt;
* Il lance la balle vers le but adverse. Une rotation peut être nécessaire pour l&amp;#039;envoi.&lt;br /&gt;
&lt;br /&gt;
D&amp;#039;un point de vue mécanique certains dispositifs doivent être étudiés.&lt;br /&gt;
* Un dispositif de capture de la balle, un simple récupérateur non articulé devrait suffire.&lt;br /&gt;
* Un dispositif de lancement. Vous pouvez considérer le lancement par gravité, en utilisant un servo-moteur ou en utilisant la force centrifuge.&lt;br /&gt;
&lt;br /&gt;
Si le robot ne trouve pas la balle, il peut considérer qu&amp;#039;elle est en possession d&amp;#039;un robot adverse. Dans ce cas, le robot doit se rapprocher de toutes ses roues de son but pour en bloquer l&amp;#039;accès.&lt;br /&gt;
&lt;br /&gt;
En aucun cas, le robot ne doit quitter l&amp;#039;aire de jeu.&lt;br /&gt;
&lt;br /&gt;
Les capteurs nécessaires à un robot de compétition sont décrits ci-dessous.&lt;br /&gt;
* Le capteur infra-rouge pour se diriger vers la balle et estimer la position du but.&lt;br /&gt;
* Le capteur ultra-son pour éviter de percuter les objets (buts et autres robots).&lt;br /&gt;
* Un capteur de couleur pour éviter de sortir du terrain.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;Elèves&amp;lt;/th&amp;gt; &amp;lt;th&amp;gt;Matériel&amp;lt;/th&amp;gt; &amp;lt;th&amp;gt;Page&amp;lt;/th&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Loïc Tombazzi / Eddine Farid Omar &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Boite lego MindStorm&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Capteur infra-rouge&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[RobotCompetition2014-1|Robot de compétition 1]] &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Prénom Nom / Prénom Nom &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Boite lego MindStorm&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Capteur infra-rouge&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[RobotCompetition2014-2|Robot de compétition 2]] &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Arbitre ==&lt;br /&gt;
{| style=&amp;quot;float: right; height: 140px; margin-left:0.2em; border: 1px solid #bbb;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border: 1px solid #bbb;&amp;quot; valign=&amp;quot;top&amp;quot; |[[File:Serie7segments.png|150px]]&lt;br /&gt;
|- style=&amp;quot;font-size: 87%; text-align: center;&amp;quot;&lt;br /&gt;
| valign=&amp;quot;center&amp;quot; | Afficheurs 7 segments&lt;br /&gt;
|}&lt;br /&gt;
L&amp;#039;arbitre est réalisé à partir d&amp;#039;un système embarqué de type pcDuino. Les différentes tâches à réaliser sont décrites ci-dessous.&lt;br /&gt;
* Utiliser le bus SPI du pcDuino pour contrôler l&amp;#039;afficheur 7 segments.&lt;br /&gt;
* Etablir la communication &amp;lt;tt&amp;gt;bluetooth&amp;lt;/tt&amp;gt; avec les robots et les buts, vous pouvez vous baser sur les [[https://peip-ima.polytech-lille.net:40001/archive/FoxLego-2012.tar sources C]] déjà développées les années précédentes.&lt;br /&gt;
* Implanter l&amp;#039;algorithme d&amp;#039;arbitrage décrit ci-après.&lt;br /&gt;
** demander aux cages de but d&amp;#039;éjecter la balle ;&lt;br /&gt;
** demander au ramasseur de balle d&amp;#039;opérer, revenir au premier point en cas d&amp;#039;échec du ramasseur ;&lt;br /&gt;
** demander aux robots de lancer la partie après que le ramasseur de balle ait terminé son travail ;&lt;br /&gt;
** attendre l&amp;#039;événement &amp;quot;but marqué&amp;quot; pour mettre à jour le score, revenir au premier point ;&lt;br /&gt;
** en cas d&amp;#039;attente trop longue, revenir au premier point.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;Elèves&amp;lt;/th&amp;gt; &amp;lt;th&amp;gt;Matériel&amp;lt;/th&amp;gt; &amp;lt;th&amp;gt;Page&amp;lt;/th&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Prénom Nom / Prénom Nom &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;pcDuino&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Adaptateur USB/&amp;lt;tt&amp;gt;bluetooth&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Afficheurs 7 segments&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[ArbitreRobots2014-1|Arbitre 1]] &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Robot ramasseur de balle ==&lt;br /&gt;
Le robot ramasseur de balle doit réaliser les actions décrites ci-dessous.&lt;br /&gt;
* Trouver la balle, se diriger vers elle et la capturer.&lt;br /&gt;
* Trouver le but le plus éloigné et se diriger vers lui.&lt;br /&gt;
* S&amp;#039;arrêter sur la première ligne médiane détectée.&lt;br /&gt;
* Suivre la ligne dans un sens, si la frontière du terrain est détectée inverser le sens de parcours.&lt;br /&gt;
* S&amp;#039;arrêter sur la marque de centre de terrain, relacher la balle.&lt;br /&gt;
* Prévenir l&amp;#039;arbitre.&lt;br /&gt;
* Retourner sur sa base.&lt;br /&gt;
&lt;br /&gt;
Le robot ramasseur de balle se met en marche quand l&amp;#039;arbitre lui demande.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;Elèves&amp;lt;/th&amp;gt; &amp;lt;th&amp;gt;Matériel&amp;lt;/th&amp;gt; &amp;lt;th&amp;gt;Page&amp;lt;/th&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Prénom Nom / Prénom Nom &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Boite lego MindStorm&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Capteur infra-rouge&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[RobotRamasseur2014-1|Robot ramasseur de balle 1]] &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Prénom Nom / Prénom Nom &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Boite lego MindStorm&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Capteur infra-rouge&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[RobotRamasseur2014-2|Robot ramasseur de balle 2]] &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Interaction entre les acteurs =&lt;br /&gt;
Constituez un groupe complet d&amp;#039;acteurs avec 2 cages de buts, 2 robots de compétition, un robot de ramassage de balle et un arbitre.&lt;br /&gt;
Vérifiez que le match se déroule correctement.&lt;br /&gt;
&lt;br /&gt;
= Notation =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Noms !! Rapport Wiki !! Soutenance vidéo !! Total&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ltombazz</name></author>
	</entry>
</feed>