<?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=Dsaunder</id>
		<title>Wiki de bureau d'é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=Dsaunder"/>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php/Sp%C3%A9cial:Contributions/Dsaunder"/>
		<updated>2026-04-24T10:28:44Z</updated>
		<subtitle>Contributions de l’utilisateur</subtitle>
		<generator>MediaWiki 1.29.2</generator>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1812</id>
		<title>Robot transporteur</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1812"/>
				<updated>2013-05-08T14:08:41Z</updated>
		
		<summary type="html">&lt;p&gt;Dsaunder : /* La pince de levage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&amp;lt;include nopre noesc src=&amp;quot;/home/pedago/ppeip/include/video-RobotTransporteur-2012-iframe.html&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons vous présenter notre projet pour le bureau d'étude IMA 2012/2013. Nous sommes tous les deux très intéressés par ce département, et ce petit robot nous a passionné dans sa conception et sa programmation. Nous avons choisi de mélanger les différents styles de robots à concevoir, pour proposer une idée personnelle de projet. Notre objectif est de créer un robot autonome qui transporte des objets. Cela passe par deux grandes étapes : la conception d'un système à 4 servomoteurs et la programmations des tâches réalisées en autonomie.&lt;br /&gt;
&lt;br /&gt;
=La Conception=&lt;br /&gt;
&lt;br /&gt;
Le robot est composé deux éléments essentiels : une base motrice et une pince de levage. Il comporte aussi deux capteurs pour le rendre autonome.&lt;br /&gt;
&lt;br /&gt;
==La base motrice==&lt;br /&gt;
&lt;br /&gt;
[[Image:receptacle.jpg|thumb|upright=0.75|alt=receptacle|right|Réceptacle pour boîtes NXT et Foxboard]]&lt;br /&gt;
La base est composée de deux servomoteurs qui sont reliés entre eux pour former un socle solide. En effet, ce socle doit être capable de supporter le poids de deux boites NXT, ainsi que celui de la pince et de l'objet transporté. Les servomoteurs entraînent la rotation de 4 roues sur lesquelles sont fixées des chenilles pour lui permettre d'avancer. La première boite NXT est directement fixée sur les servomoteurs, puis derrière, nous avons mis en place un réceptacle capable de contenir une deuxième boite NXT ou une Foxboard (nous ne savions pas encore comment guider le robot). La structure devait être solide, car on devait encore ajouter la pince de levage sur le dessus. Voici quelques illustrations de la construction.&lt;br /&gt;
&lt;br /&gt;
[[Image:Basemoteur.jpg|thumb|alt=basemoteur|center|Base motrice à chenille, composée de deux servomoteur]]&lt;br /&gt;
&lt;br /&gt;
==La pince de levage==&lt;br /&gt;
&lt;br /&gt;
La pince de levage a été l'objet de toute la première séance, c'était l'élément le plus compliqué à assembler. Nous avons été confronté à plusieurs contraintes : le poids des objets transportés, la résistance du système de levage, et l'adaptation de la forme de la pince.&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord créé une pince composée de deux servomoteurs pour le serrage et un autre pour le levage de la pince, mais ce système était trop lourd et peu pratique à solidariser avec le reste du robot. Nous avons donc évolué vers un système plus léger composé de seulement 2 servomoteurs. Dans ce nouveau système, un servomoteur était dédié à serrer la pince et l'autre à la soulever par un mouvement de rotation. Le problème est que la pince était encore lourde et compliquée à fixer, car tout était accroché à l'avant du véhicule, il y a donc eu un problème de répartition de poids. Inutile de préciser qu'en ajoutant en plus un objet dans la pince, le robot se serait effondré. Nous avons alors pensé à mettre en place une poulie, ce qui a permis de surmonter ces obstacles. &lt;br /&gt;
[[Image:modelepince.jpg|thumb|alt=modelepince|left|Modèle de la pince, avec un bras mobile fixé sur le servomoteur et une barre fixe]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La pince est donc composée de deux parties : &lt;br /&gt;
*Un servomoteur fixé sur le dessus du robot, pour répartir le poids et assurer une fixation solide. Sur ce moteur, nous avons fixé de petits embouts, ainsi que l’extrémité d'un fil. De cette manière quand le moteur tourne, le fil s'enroule autour de ceux-ci. C'est donc la poulie. &lt;br /&gt;
*Un servomoteur relié à l'avant du véhicule par une liaison pivot. Il peut donc se déplacer de haut en bas sans problème. Ce moteur permet de serrer la pince par une rotation d'une des deux branches qui la compose. Vous voyez, à gauche, que la pince est constituée d'une barre fixe sur laquelle s'appuie l'objet quand la pince est en position fermée, et d'une partie partie mobile , liée au moteur (en arc de cercle pour favoriser la prise des objets à transporter) qui change de position pour ouvrir et fermer la pince. L'autre extrémité du fil, provenant de la poulie, est fixée sur la barre fixe. &lt;br /&gt;
&lt;br /&gt;
Nous avons donc une pince qui se ferme pour saisir un objet, puis qui se soulève et redescend grâce à une poulie, pour enfin se rouvrir et déposer l'objet.&lt;br /&gt;
&lt;br /&gt;
==Les capteurs==&lt;br /&gt;
&lt;br /&gt;
Le robot est doté de deux capteurs : un capteur de couleur pour suivre une ligne, et un capteur RFID qui lui sert à détecter les bases sur lesquelles il doit effectuer une action.&lt;br /&gt;
&lt;br /&gt;
Nous avions d'abord pensé à installer un capteur de pression sur la pince pour vérifier si l'objet était bien serré dans la pince. Mais celui-ci s'est avéré inutile après programmation, car le  programme permet de serrer l'objet autant qu'il faut pour que l'objet soit correctement maintenu. La détection de pression n'était donc pas nécessaire.&lt;br /&gt;
&lt;br /&gt;
[[Image:capteur.jpg|thumb|upright=1.25|alt=capteur|right|Emplacement des capteurs sur le robot]]&lt;br /&gt;
En revanche, comme nous voulions faire un robot guidé par des bandes noires au sol, nous avions besoin d'un capteur de couleurs. La difficulté est que ce capteur n'a qu'une très courte portée, c'est pourquoi nous avons du le placer dans un endroit ou il serait immobile, le plus proche du centre de l'avant du robot et le plus proche du sol possible. De cette façon, la détection est bonne, et permet une bonne correction de trajectoire. Cependant, le robot n'était pas conçu pour avoir un capteur à cet endroit, nous l'avons donc décentré un peu. Mais après quelques tests, la position que nous avons choisi, nous a permis d'obtenir une trajectoire correcte. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le capteur RFID a été beaucoup plus simple à installer, car il a une plus grande portée (3cm). Nous l'avons donc placé juste à coté du capteur de couleur. Cet emplacement, permet une bonne détection des cartes RFID,et le robot distingue facilement la position des objets à transporter.&lt;br /&gt;
&lt;br /&gt;
==Robot final==&lt;br /&gt;
&lt;br /&gt;
Voici l'allure de notre robot totalement assemblé, on peut voir les capteurs, la pince, mais surtout le fil qui relie la poulie et la pince.&lt;br /&gt;
[[Image:final.jpg|thumb|upright=1.25|alt=final|center|Robot totalement assemblé]]&lt;br /&gt;
&lt;br /&gt;
=La programmation=&lt;br /&gt;
&lt;br /&gt;
[[Image:arbre1.jpg|thumb|alt=modelepince|left|Modèle de la pince, avec un bras mobile fixé sur le servomoteur et une barre fixe]]&lt;br /&gt;
Nous avons choisi de programmer en langage NXC (Not eXactly C) que nous avons compilé avec l'IDE BricxCC (Bricx Command Center).&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé de faire suivre au robot un ensemble d'action dans un ordre précis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La première partie consiste à initialiser les deux capteurs de couleurs et RFID.&lt;br /&gt;
&lt;br /&gt;
==Les étapes du parcours==&lt;br /&gt;
&lt;br /&gt;
Durant ces phases, le robot suit les lignes de couleurs vertes.&lt;br /&gt;
Dès qu'il détecte une ligne rouge, il essaye de lire la carte RFID présente sur le sol pour savoir s'il faut déposer ou prendre un colis.&lt;br /&gt;
&lt;br /&gt;
/* expliquer les state : gotobaseget... */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==La recherche de ligne==&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, nous avons créer un programme permettant de retrouver une ligne de couleur suivant le raisonnement suivant :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INITIALISER timer A 0 ms&lt;br /&gt;
INITIALISER ligne_trouvee A faux&lt;br /&gt;
TANT QUE ligne_trouvee DIFFERENT DE vrai FAIRE&lt;br /&gt;
   SI detecteur_de_couleur = couleur_ligne&lt;br /&gt;
      ligne_trouvee = vrai&lt;br /&gt;
   FIN SI&lt;br /&gt;
   SI timer &amp;lt; 2500 ms&lt;br /&gt;
      ROBOT tourne a GAUCHE&lt;br /&gt;
   ET SI  timer &amp;lt; 6000 ms&lt;br /&gt;
      ROBOT tourne a DROITE&lt;br /&gt;
   SINON&lt;br /&gt;
      timer = 0 ms&lt;br /&gt;
   FIN SI&lt;br /&gt;
INCREMENTER timer DE 1 ms&lt;br /&gt;
FIN TANT QUE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette solution nous a permis de faire fonctionner le robot avec toutes les autres parties du programme. Cependant, il était plutôt long pour trouver les lignes de couleurs sur sa droite.&lt;br /&gt;
&lt;br /&gt;
Cette problématique nous a amenés à écrire un deuxième algorithme permettant de retrouver une ligne plus rapidement, quelque soit le côté où elle se trouve par rapport au robot.&lt;br /&gt;
/* rajouter l'algo */&lt;br /&gt;
&lt;br /&gt;
Nous avons donc créer un algorithme dit d'exagération de recherche, c'est à dire qu'il cherche pendant un cours laps de temps dans une direction, puis dans l'autre sens pendant une durée plus importante. Le robot répète ces deux opérations pendant un certain nombre de fois, en augmentant à chaque fois un peu plus la durée de recherche. Si au bout d'un nombre d'itération le robot ne trouve toujours pas la ligne, on lui ordonne de faire demi-tour.&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des tests comparatifs, nous sommes arrivés à la conclusion que le robot était, avec le deuxième programme, 50 à 60 % plus rapide.&lt;br /&gt;
&lt;br /&gt;
==La reconnaissance RFID==&lt;br /&gt;
&lt;br /&gt;
De façon à pouvoir lire les cartes RFID avec le capteur RFID, nous avons choisi d'utiliser une librairie externe OpenSource.&lt;br /&gt;
&lt;br /&gt;
Cette librairie est disponible à [https://code.google.com/p/pobot-playground/source/browse/trunk/PobotKey/Projects/Lego+NXT/NXC/RFIDlib.nxc l'adresse suivante]&lt;br /&gt;
&lt;br /&gt;
/* preciser que au départ modulo 2, mais on choisi modulo 3 car sinon erreur */&lt;br /&gt;
Cette librairie nous permet de récupérer les 5 informations disponibles sur la carte. De façon à pouvoir les traiter nous avons décider d'utiliser le secteur numéro quatre, et d'effectuer un modulo 3 sur la valeur. En fonction de la réponse, le robot est programmé pour effectuer des tâches particulières:&lt;br /&gt;
&lt;br /&gt;
* 0 : Ces cartes sont retirées car la réponse 0 est identique à la réponse du lecteur en cas d'erreur&lt;br /&gt;
* 1 : La valeur 1 ordonne au robot de récupérer un objet s'il n'en a pas actuellement&lt;br /&gt;
* 2 : La valeur 1 ordonne au robot de déposer l'objet qu'il tient s'il en a un actuellement&lt;br /&gt;
&lt;br /&gt;
==La communication entre les deux boîtiers NXT==&lt;br /&gt;
&lt;br /&gt;
Bien qu'au début nous avions commencé le projet dans l'optique d'utiliser un seul boitier NXT. Cependant, nous avons été contraint d'opter pour deux boitier car un seul ne peut commander que 3 servomoteurs, et il nous était nécessaire d'utiliser quatre servomoteurs. Nous avons donc décider d'utiliser ces deux boitiers, et de les faire communiquer par la technologie Bluetooth.&lt;br /&gt;
&lt;br /&gt;
Cela nous à donc amener à utiliser une bibliothèque externe OpenSource, qui nous permet d'utiliser plus simplement la fonctionnalité Bluetooth.&lt;br /&gt;
&lt;br /&gt;
La page Web de cette librairie est la [http://robotics.benedettelli.com/BT_NXC.htm suivante].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lorsque le robot se trouve sur une base, et qu'il doit récupérer un colis, le boitier NXT maître (celui contrôlant les moteurs de déplacement) envoie au NXT esclave l'instruction &amp;quot;PRENDRE COLIS&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
L'instruction est envoyée en boucle tant que le NXT esclave ne lui renvoi pas l'instruction &amp;quot;COLIS EMBARQUÉ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De façon analogue, lorsque le robot se trouve sur une base et qu'il doit déposer un colis, le boitier NXT maître envoie au NXT esclave l'instruction &amp;quot;DEPOSER COLIS&amp;quot; tant que l'esclave ne lui renvoie pas l'instruction &amp;quot;COLIS DÉPOSÉ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Toutes les instructions sont envoyées à l'aide de la boîte 0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, pour éviter que le robot ne démarre alors que la connection Bluetooth n'est pas active, nous avons utilisé un programme qui nous permet de vérifier au démarrage que les deux boîtiers sont bien connectés.&lt;br /&gt;
&lt;br /&gt;
Voici un schéma résumant les rôles de chacun des boitiers :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:communication.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
=L'intégration des fonctionnalité=&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé à intégrer les fonctionnalité supplémentaire lors de la séance du 7/03. Le robot doit : &lt;br /&gt;
*être contrôlable à distance avec une webcam par l’intermédiaire du site internet de la Foxboard&lt;br /&gt;
*pouvoir lire des RFID pour se localiser sur le circuit&lt;br /&gt;
*suivre une ligne discontinue et emprunter des voies de garage&lt;br /&gt;
&lt;br /&gt;
==Ajouts des nouveaux éléments==&lt;br /&gt;
&lt;br /&gt;
Nous avons équipé le robot d'une Foxboard que nous avons placé sur le dessus du robot avec la webcam pour répartir le poids. De plus nous avons ajouté un capteur boussole pour que le robot puisse suivre une ligne discontinue. L'architecture générale du robot n'a pas changée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Contrôle à distance==&lt;br /&gt;
&lt;br /&gt;
Pour le contrôle à distance nous avons dus intégrer la Foxboard sur notre robot. La Foxboard est équipée de plusieurs éléments : &lt;br /&gt;
*une carte Wifi pour la communication entre le site internet du robot et la Foxboard.&lt;br /&gt;
*une clé Bluetooth pour les échanges d'informations entre le boitier NXT maître et la Foxboard.&lt;br /&gt;
*une webcam pour visualiser en direct ce que voit le robot depuis le site internet. &lt;br /&gt;
&lt;br /&gt;
Le contrôle a distance s'est effectué en deux temps : &lt;br /&gt;
*La programmation des actions en fonction du &amp;quot;bouton&amp;quot; sur lequel on clique.&lt;br /&gt;
*Une amélioration du site dédié au contrôle par Foxboard.&lt;br /&gt;
&lt;br /&gt;
/* Préciser */&lt;br /&gt;
&lt;br /&gt;
==Lecture des RFID==&lt;br /&gt;
&lt;br /&gt;
Pendant l'intégration des fonctionnalités, nous avons utilisé les RFID de deux manières différentes. D'une part pour séquencer notre algorithme de suivi de ligne, et d'autre part pour se repérer en temps réel sur le circuit. La première chose indispensable était donc la création d'une base de données RFID. Pour cela nous avons scanné toutes les RFID pour choisir les informations les plus pertinentes à utiliser afin de les distinguer.Chaque carte a donc pu être reconnue comme unique par le robot.&lt;br /&gt;
&lt;br /&gt;
Lors du suivi de la ligne les RFID indiquent au robot comment il doit se comporter. Il y a 7 étapes différentes : &lt;br /&gt;
*Aller chercher l'objet&lt;br /&gt;
*Entrer dans la base de récupération de l'objet&lt;br /&gt;
*Sortir de cette base &lt;br /&gt;
*Aller déposer l'objet&lt;br /&gt;
*Passer en mode ligne discontinue&lt;br /&gt;
*Entrer dans la base de dépôt de l'objet&lt;br /&gt;
*Sortir de cette base&lt;br /&gt;
&lt;br /&gt;
Le suivi du robot en temps réel s'effectue par transmission de la dernière carte RFID scannée. Le NXT envoi l'information à la Foxboard qui l'envoi au site internet, on voit alors la dernière base où s'est trouvé le robot sur le site internet.&lt;br /&gt;
&lt;br /&gt;
==Les lignes discontinues==&lt;br /&gt;
&lt;br /&gt;
Pour intégrer cette fonction nous nous sommes fortement inspirés du code réalisé par Alexandre Jouy et Kévin De Arriba. En effet, leur code permettait de suivre une direction donnée à partir de la boussole. Nous avons modifié ce code afin qu'il convienne à notre algorithme séquentiel. Nous avons aussi dus définir la direction à prendre selon la carte RFID scannée. Au final, nous utilisons une version simplifiée du code de Kévin et Alexandre. &lt;br /&gt;
&lt;br /&gt;
/* A revoir  */&lt;br /&gt;
Lorsque le robot scanne une RFID qui lui indique de passer en mode discontinu, il suit la direction qu'on lui impose jusqu'à ce qu'il retrouve la ligne verte (ligne principale du circuit).&lt;/div&gt;</summary>
		<author><name>Dsaunder</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1811</id>
		<title>Robot transporteur</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1811"/>
				<updated>2013-05-08T14:08:14Z</updated>
		
		<summary type="html">&lt;p&gt;Dsaunder : /* La pince de levage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&amp;lt;include nopre noesc src=&amp;quot;/home/pedago/ppeip/include/video-RobotTransporteur-2012-iframe.html&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons vous présenter notre projet pour le bureau d'étude IMA 2012/2013. Nous sommes tous les deux très intéressés par ce département, et ce petit robot nous a passionné dans sa conception et sa programmation. Nous avons choisi de mélanger les différents styles de robots à concevoir, pour proposer une idée personnelle de projet. Notre objectif est de créer un robot autonome qui transporte des objets. Cela passe par deux grandes étapes : la conception d'un système à 4 servomoteurs et la programmations des tâches réalisées en autonomie.&lt;br /&gt;
&lt;br /&gt;
=La Conception=&lt;br /&gt;
&lt;br /&gt;
Le robot est composé deux éléments essentiels : une base motrice et une pince de levage. Il comporte aussi deux capteurs pour le rendre autonome.&lt;br /&gt;
&lt;br /&gt;
==La base motrice==&lt;br /&gt;
&lt;br /&gt;
[[Image:receptacle.jpg|thumb|upright=0.75|alt=receptacle|right|Réceptacle pour boîtes NXT et Foxboard]]&lt;br /&gt;
La base est composée de deux servomoteurs qui sont reliés entre eux pour former un socle solide. En effet, ce socle doit être capable de supporter le poids de deux boites NXT, ainsi que celui de la pince et de l'objet transporté. Les servomoteurs entraînent la rotation de 4 roues sur lesquelles sont fixées des chenilles pour lui permettre d'avancer. La première boite NXT est directement fixée sur les servomoteurs, puis derrière, nous avons mis en place un réceptacle capable de contenir une deuxième boite NXT ou une Foxboard (nous ne savions pas encore comment guider le robot). La structure devait être solide, car on devait encore ajouter la pince de levage sur le dessus. Voici quelques illustrations de la construction.&lt;br /&gt;
&lt;br /&gt;
[[Image:Basemoteur.jpg|thumb|alt=basemoteur|center|Base motrice à chenille, composée de deux servomoteur]]&lt;br /&gt;
&lt;br /&gt;
==La pince de levage==&lt;br /&gt;
&lt;br /&gt;
La pince de levage a été l'objet de toute la première séance, c'était l'élément le plus compliqué à assembler. Nous avons été confronté à plusieurs contraintes : le poids des objets transportés, la résistance du système de levage, et l'adaptation de la forme de la pince.&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord créé une pince composée de deux servomoteurs pour le serrage et un autre pour le levage de la pince, mais ce système était trop lourd et peu pratique à solidariser avec le reste du robot. Nous avons donc évolué vers un système plus léger composé de seulement 2 servomoteurs. Dans ce nouveau système, un servomoteur était dédié à serrer la pince et l'autre à la soulever par un mouvement de rotation. Le problème est que la pince était encore lourde et compliquée à fixer, car tout était accroché à l'avant du véhicule, il y a donc eu un problème de répartition de poids. Inutile de préciser qu'en ajoutant en plus un objet dans la pince, le robot se serait effondré. Nous avons alors pensé à mettre en place une poulie, ce qui a permis de surmonter ces obstacles. &lt;br /&gt;
[[Image:modelepince.jpg|thumb|alt=modelepince|left|Modèle de la pince, avec un bras mobile fixé sur le servomoteur et une barre fixe]]&lt;br /&gt;
&lt;br /&gt;
La pince est donc composée de deux parties : &lt;br /&gt;
*Un servomoteur fixé sur le dessus du robot, pour répartir le poids et assurer une fixation solide. Sur ce moteur, nous avons fixé de petits embouts, ainsi que l’extrémité d'un fil. De cette manière quand le moteur tourne, le fil s'enroule autour de ceux-ci. C'est donc la poulie. &lt;br /&gt;
*Un servomoteur relié à l'avant du véhicule par une liaison pivot. Il peut donc se déplacer de haut en bas sans problème. Ce moteur permet de serrer la pince par une rotation d'une des deux branches qui la compose. Vous voyez, à gauche, que la pince est constituée d'une barre fixe sur laquelle s'appuie l'objet quand la pince est en position fermée, et d'une partie partie mobile , liée au moteur (en arc de cercle pour favoriser la prise des objets à transporter) qui change de position pour ouvrir et fermer la pince. L'autre extrémité du fil, provenant de la poulie, est fixée sur la barre fixe. &lt;br /&gt;
&lt;br /&gt;
Nous avons donc une pince qui se ferme pour saisir un objet, puis qui se soulève et redescend grâce à une poulie, pour enfin se rouvrir et déposer l'objet.&lt;br /&gt;
&lt;br /&gt;
==Les capteurs==&lt;br /&gt;
&lt;br /&gt;
Le robot est doté de deux capteurs : un capteur de couleur pour suivre une ligne, et un capteur RFID qui lui sert à détecter les bases sur lesquelles il doit effectuer une action.&lt;br /&gt;
&lt;br /&gt;
Nous avions d'abord pensé à installer un capteur de pression sur la pince pour vérifier si l'objet était bien serré dans la pince. Mais celui-ci s'est avéré inutile après programmation, car le  programme permet de serrer l'objet autant qu'il faut pour que l'objet soit correctement maintenu. La détection de pression n'était donc pas nécessaire.&lt;br /&gt;
&lt;br /&gt;
[[Image:capteur.jpg|thumb|upright=1.25|alt=capteur|right|Emplacement des capteurs sur le robot]]&lt;br /&gt;
En revanche, comme nous voulions faire un robot guidé par des bandes noires au sol, nous avions besoin d'un capteur de couleurs. La difficulté est que ce capteur n'a qu'une très courte portée, c'est pourquoi nous avons du le placer dans un endroit ou il serait immobile, le plus proche du centre de l'avant du robot et le plus proche du sol possible. De cette façon, la détection est bonne, et permet une bonne correction de trajectoire. Cependant, le robot n'était pas conçu pour avoir un capteur à cet endroit, nous l'avons donc décentré un peu. Mais après quelques tests, la position que nous avons choisi, nous a permis d'obtenir une trajectoire correcte. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le capteur RFID a été beaucoup plus simple à installer, car il a une plus grande portée (3cm). Nous l'avons donc placé juste à coté du capteur de couleur. Cet emplacement, permet une bonne détection des cartes RFID,et le robot distingue facilement la position des objets à transporter.&lt;br /&gt;
&lt;br /&gt;
==Robot final==&lt;br /&gt;
&lt;br /&gt;
Voici l'allure de notre robot totalement assemblé, on peut voir les capteurs, la pince, mais surtout le fil qui relie la poulie et la pince.&lt;br /&gt;
[[Image:final.jpg|thumb|upright=1.25|alt=final|center|Robot totalement assemblé]]&lt;br /&gt;
&lt;br /&gt;
=La programmation=&lt;br /&gt;
&lt;br /&gt;
[[Image:arbre1.jpg|thumb|alt=modelepince|left|Modèle de la pince, avec un bras mobile fixé sur le servomoteur et une barre fixe]]&lt;br /&gt;
Nous avons choisi de programmer en langage NXC (Not eXactly C) que nous avons compilé avec l'IDE BricxCC (Bricx Command Center).&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé de faire suivre au robot un ensemble d'action dans un ordre précis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La première partie consiste à initialiser les deux capteurs de couleurs et RFID.&lt;br /&gt;
&lt;br /&gt;
==Les étapes du parcours==&lt;br /&gt;
&lt;br /&gt;
Durant ces phases, le robot suit les lignes de couleurs vertes.&lt;br /&gt;
Dès qu'il détecte une ligne rouge, il essaye de lire la carte RFID présente sur le sol pour savoir s'il faut déposer ou prendre un colis.&lt;br /&gt;
&lt;br /&gt;
/* expliquer les state : gotobaseget... */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==La recherche de ligne==&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, nous avons créer un programme permettant de retrouver une ligne de couleur suivant le raisonnement suivant :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INITIALISER timer A 0 ms&lt;br /&gt;
INITIALISER ligne_trouvee A faux&lt;br /&gt;
TANT QUE ligne_trouvee DIFFERENT DE vrai FAIRE&lt;br /&gt;
   SI detecteur_de_couleur = couleur_ligne&lt;br /&gt;
      ligne_trouvee = vrai&lt;br /&gt;
   FIN SI&lt;br /&gt;
   SI timer &amp;lt; 2500 ms&lt;br /&gt;
      ROBOT tourne a GAUCHE&lt;br /&gt;
   ET SI  timer &amp;lt; 6000 ms&lt;br /&gt;
      ROBOT tourne a DROITE&lt;br /&gt;
   SINON&lt;br /&gt;
      timer = 0 ms&lt;br /&gt;
   FIN SI&lt;br /&gt;
INCREMENTER timer DE 1 ms&lt;br /&gt;
FIN TANT QUE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette solution nous a permis de faire fonctionner le robot avec toutes les autres parties du programme. Cependant, il était plutôt long pour trouver les lignes de couleurs sur sa droite.&lt;br /&gt;
&lt;br /&gt;
Cette problématique nous a amenés à écrire un deuxième algorithme permettant de retrouver une ligne plus rapidement, quelque soit le côté où elle se trouve par rapport au robot.&lt;br /&gt;
/* rajouter l'algo */&lt;br /&gt;
&lt;br /&gt;
Nous avons donc créer un algorithme dit d'exagération de recherche, c'est à dire qu'il cherche pendant un cours laps de temps dans une direction, puis dans l'autre sens pendant une durée plus importante. Le robot répète ces deux opérations pendant un certain nombre de fois, en augmentant à chaque fois un peu plus la durée de recherche. Si au bout d'un nombre d'itération le robot ne trouve toujours pas la ligne, on lui ordonne de faire demi-tour.&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des tests comparatifs, nous sommes arrivés à la conclusion que le robot était, avec le deuxième programme, 50 à 60 % plus rapide.&lt;br /&gt;
&lt;br /&gt;
==La reconnaissance RFID==&lt;br /&gt;
&lt;br /&gt;
De façon à pouvoir lire les cartes RFID avec le capteur RFID, nous avons choisi d'utiliser une librairie externe OpenSource.&lt;br /&gt;
&lt;br /&gt;
Cette librairie est disponible à [https://code.google.com/p/pobot-playground/source/browse/trunk/PobotKey/Projects/Lego+NXT/NXC/RFIDlib.nxc l'adresse suivante]&lt;br /&gt;
&lt;br /&gt;
/* preciser que au départ modulo 2, mais on choisi modulo 3 car sinon erreur */&lt;br /&gt;
Cette librairie nous permet de récupérer les 5 informations disponibles sur la carte. De façon à pouvoir les traiter nous avons décider d'utiliser le secteur numéro quatre, et d'effectuer un modulo 3 sur la valeur. En fonction de la réponse, le robot est programmé pour effectuer des tâches particulières:&lt;br /&gt;
&lt;br /&gt;
* 0 : Ces cartes sont retirées car la réponse 0 est identique à la réponse du lecteur en cas d'erreur&lt;br /&gt;
* 1 : La valeur 1 ordonne au robot de récupérer un objet s'il n'en a pas actuellement&lt;br /&gt;
* 2 : La valeur 1 ordonne au robot de déposer l'objet qu'il tient s'il en a un actuellement&lt;br /&gt;
&lt;br /&gt;
==La communication entre les deux boîtiers NXT==&lt;br /&gt;
&lt;br /&gt;
Bien qu'au début nous avions commencé le projet dans l'optique d'utiliser un seul boitier NXT. Cependant, nous avons été contraint d'opter pour deux boitier car un seul ne peut commander que 3 servomoteurs, et il nous était nécessaire d'utiliser quatre servomoteurs. Nous avons donc décider d'utiliser ces deux boitiers, et de les faire communiquer par la technologie Bluetooth.&lt;br /&gt;
&lt;br /&gt;
Cela nous à donc amener à utiliser une bibliothèque externe OpenSource, qui nous permet d'utiliser plus simplement la fonctionnalité Bluetooth.&lt;br /&gt;
&lt;br /&gt;
La page Web de cette librairie est la [http://robotics.benedettelli.com/BT_NXC.htm suivante].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lorsque le robot se trouve sur une base, et qu'il doit récupérer un colis, le boitier NXT maître (celui contrôlant les moteurs de déplacement) envoie au NXT esclave l'instruction &amp;quot;PRENDRE COLIS&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
L'instruction est envoyée en boucle tant que le NXT esclave ne lui renvoi pas l'instruction &amp;quot;COLIS EMBARQUÉ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De façon analogue, lorsque le robot se trouve sur une base et qu'il doit déposer un colis, le boitier NXT maître envoie au NXT esclave l'instruction &amp;quot;DEPOSER COLIS&amp;quot; tant que l'esclave ne lui renvoie pas l'instruction &amp;quot;COLIS DÉPOSÉ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Toutes les instructions sont envoyées à l'aide de la boîte 0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, pour éviter que le robot ne démarre alors que la connection Bluetooth n'est pas active, nous avons utilisé un programme qui nous permet de vérifier au démarrage que les deux boîtiers sont bien connectés.&lt;br /&gt;
&lt;br /&gt;
Voici un schéma résumant les rôles de chacun des boitiers :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:communication.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
=L'intégration des fonctionnalité=&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé à intégrer les fonctionnalité supplémentaire lors de la séance du 7/03. Le robot doit : &lt;br /&gt;
*être contrôlable à distance avec une webcam par l’intermédiaire du site internet de la Foxboard&lt;br /&gt;
*pouvoir lire des RFID pour se localiser sur le circuit&lt;br /&gt;
*suivre une ligne discontinue et emprunter des voies de garage&lt;br /&gt;
&lt;br /&gt;
==Ajouts des nouveaux éléments==&lt;br /&gt;
&lt;br /&gt;
Nous avons équipé le robot d'une Foxboard que nous avons placé sur le dessus du robot avec la webcam pour répartir le poids. De plus nous avons ajouté un capteur boussole pour que le robot puisse suivre une ligne discontinue. L'architecture générale du robot n'a pas changée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Contrôle à distance==&lt;br /&gt;
&lt;br /&gt;
Pour le contrôle à distance nous avons dus intégrer la Foxboard sur notre robot. La Foxboard est équipée de plusieurs éléments : &lt;br /&gt;
*une carte Wifi pour la communication entre le site internet du robot et la Foxboard.&lt;br /&gt;
*une clé Bluetooth pour les échanges d'informations entre le boitier NXT maître et la Foxboard.&lt;br /&gt;
*une webcam pour visualiser en direct ce que voit le robot depuis le site internet. &lt;br /&gt;
&lt;br /&gt;
Le contrôle a distance s'est effectué en deux temps : &lt;br /&gt;
*La programmation des actions en fonction du &amp;quot;bouton&amp;quot; sur lequel on clique.&lt;br /&gt;
*Une amélioration du site dédié au contrôle par Foxboard.&lt;br /&gt;
&lt;br /&gt;
/* Préciser */&lt;br /&gt;
&lt;br /&gt;
==Lecture des RFID==&lt;br /&gt;
&lt;br /&gt;
Pendant l'intégration des fonctionnalités, nous avons utilisé les RFID de deux manières différentes. D'une part pour séquencer notre algorithme de suivi de ligne, et d'autre part pour se repérer en temps réel sur le circuit. La première chose indispensable était donc la création d'une base de données RFID. Pour cela nous avons scanné toutes les RFID pour choisir les informations les plus pertinentes à utiliser afin de les distinguer.Chaque carte a donc pu être reconnue comme unique par le robot.&lt;br /&gt;
&lt;br /&gt;
Lors du suivi de la ligne les RFID indiquent au robot comment il doit se comporter. Il y a 7 étapes différentes : &lt;br /&gt;
*Aller chercher l'objet&lt;br /&gt;
*Entrer dans la base de récupération de l'objet&lt;br /&gt;
*Sortir de cette base &lt;br /&gt;
*Aller déposer l'objet&lt;br /&gt;
*Passer en mode ligne discontinue&lt;br /&gt;
*Entrer dans la base de dépôt de l'objet&lt;br /&gt;
*Sortir de cette base&lt;br /&gt;
&lt;br /&gt;
Le suivi du robot en temps réel s'effectue par transmission de la dernière carte RFID scannée. Le NXT envoi l'information à la Foxboard qui l'envoi au site internet, on voit alors la dernière base où s'est trouvé le robot sur le site internet.&lt;br /&gt;
&lt;br /&gt;
==Les lignes discontinues==&lt;br /&gt;
&lt;br /&gt;
Pour intégrer cette fonction nous nous sommes fortement inspirés du code réalisé par Alexandre Jouy et Kévin De Arriba. En effet, leur code permettait de suivre une direction donnée à partir de la boussole. Nous avons modifié ce code afin qu'il convienne à notre algorithme séquentiel. Nous avons aussi dus définir la direction à prendre selon la carte RFID scannée. Au final, nous utilisons une version simplifiée du code de Kévin et Alexandre. &lt;br /&gt;
&lt;br /&gt;
/* A revoir  */&lt;br /&gt;
Lorsque le robot scanne une RFID qui lui indique de passer en mode discontinu, il suit la direction qu'on lui impose jusqu'à ce qu'il retrouve la ligne verte (ligne principale du circuit).&lt;/div&gt;</summary>
		<author><name>Dsaunder</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1810</id>
		<title>Robot transporteur</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1810"/>
				<updated>2013-05-08T14:07:19Z</updated>
		
		<summary type="html">&lt;p&gt;Dsaunder : /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&amp;lt;include nopre noesc src=&amp;quot;/home/pedago/ppeip/include/video-RobotTransporteur-2012-iframe.html&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons vous présenter notre projet pour le bureau d'étude IMA 2012/2013. Nous sommes tous les deux très intéressés par ce département, et ce petit robot nous a passionné dans sa conception et sa programmation. Nous avons choisi de mélanger les différents styles de robots à concevoir, pour proposer une idée personnelle de projet. Notre objectif est de créer un robot autonome qui transporte des objets. Cela passe par deux grandes étapes : la conception d'un système à 4 servomoteurs et la programmations des tâches réalisées en autonomie.&lt;br /&gt;
&lt;br /&gt;
=La Conception=&lt;br /&gt;
&lt;br /&gt;
Le robot est composé deux éléments essentiels : une base motrice et une pince de levage. Il comporte aussi deux capteurs pour le rendre autonome.&lt;br /&gt;
&lt;br /&gt;
==La base motrice==&lt;br /&gt;
&lt;br /&gt;
[[Image:receptacle.jpg|thumb|upright=0.75|alt=receptacle|right|Réceptacle pour boîtes NXT et Foxboard]]&lt;br /&gt;
La base est composée de deux servomoteurs qui sont reliés entre eux pour former un socle solide. En effet, ce socle doit être capable de supporter le poids de deux boites NXT, ainsi que celui de la pince et de l'objet transporté. Les servomoteurs entraînent la rotation de 4 roues sur lesquelles sont fixées des chenilles pour lui permettre d'avancer. La première boite NXT est directement fixée sur les servomoteurs, puis derrière, nous avons mis en place un réceptacle capable de contenir une deuxième boite NXT ou une Foxboard (nous ne savions pas encore comment guider le robot). La structure devait être solide, car on devait encore ajouter la pince de levage sur le dessus. Voici quelques illustrations de la construction.&lt;br /&gt;
&lt;br /&gt;
[[Image:Basemoteur.jpg|thumb|alt=basemoteur|center|Base motrice à chenille, composée de deux servomoteur]]&lt;br /&gt;
&lt;br /&gt;
==La pince de levage==&lt;br /&gt;
&lt;br /&gt;
La pince de levage a été l'objet de toute la première séance, c'était l'élément le plus compliqué à assembler. Nous avons été confronté à plusieurs contraintes : le poids des objets transportés, la résistance du système de levage, et l'adaptation de la forme de la pince.&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord créé une pince composée de deux servomoteurs pour le serrage et un autre pour le levage de la pince, mais ce système était trop lourd et peu pratique à solidariser avec le reste du robot. Nous avons donc évolué vers un système plus léger composé de seulement 2 servomoteurs. Dans ce nouveau système, un servomoteur était dédié à serrer la pince et l'autre à la soulever par un mouvement de rotation. Le problème est que la pince était encore lourde et compliquée à fixer, car tout était accroché à l'avant du véhicule, il y a donc eu un problème de répartition de poids. Inutile de préciser qu'en ajoutant en plus un objet dans la pince, le robot se serait effondré. Nous avons alors pensé à mettre en place une poulie, ce qui a permis de surmonter ces obstacles. &lt;br /&gt;
&lt;br /&gt;
[[Image:modelepince.jpg|thumb|alt=modelepince|left|Modèle de la pince, avec un bras mobile fixé sur le servomoteur et une barre fixe]]&lt;br /&gt;
La pince est donc composée de deux parties : &lt;br /&gt;
*Un servomoteur fixé sur le dessus du robot, pour répartir le poids et assurer une fixation solide. Sur ce moteur, nous avons fixé de petits embouts, ainsi que l’extrémité d'un fil. De cette manière quand le moteur tourne, le fil s'enroule autour de ceux-ci. C'est donc la poulie. &lt;br /&gt;
*Un servomoteur relié à l'avant du véhicule par une liaison pivot. Il peut donc se déplacer de haut en bas sans problème. Ce moteur permet de serrer la pince par une rotation d'une des deux branches qui la compose. Vous voyez, à gauche, que la pince est constituée d'une barre fixe sur laquelle s'appuie l'objet quand la pince est en position fermée, et d'une partie partie mobile , liée au moteur (en arc de cercle pour favoriser la prise des objets à transporter) qui change de position pour ouvrir et fermer la pince. L'autre extrémité du fil, provenant de la poulie, est fixée sur la barre fixe. &lt;br /&gt;
&lt;br /&gt;
Nous avons donc une pince qui se ferme pour saisir un objet, puis qui se soulève et redescend grâce à une poulie, pour enfin se rouvrir et déposer l'objet.&lt;br /&gt;
&lt;br /&gt;
==Les capteurs==&lt;br /&gt;
&lt;br /&gt;
Le robot est doté de deux capteurs : un capteur de couleur pour suivre une ligne, et un capteur RFID qui lui sert à détecter les bases sur lesquelles il doit effectuer une action.&lt;br /&gt;
&lt;br /&gt;
Nous avions d'abord pensé à installer un capteur de pression sur la pince pour vérifier si l'objet était bien serré dans la pince. Mais celui-ci s'est avéré inutile après programmation, car le  programme permet de serrer l'objet autant qu'il faut pour que l'objet soit correctement maintenu. La détection de pression n'était donc pas nécessaire.&lt;br /&gt;
&lt;br /&gt;
[[Image:capteur.jpg|thumb|upright=1.25|alt=capteur|right|Emplacement des capteurs sur le robot]]&lt;br /&gt;
En revanche, comme nous voulions faire un robot guidé par des bandes noires au sol, nous avions besoin d'un capteur de couleurs. La difficulté est que ce capteur n'a qu'une très courte portée, c'est pourquoi nous avons du le placer dans un endroit ou il serait immobile, le plus proche du centre de l'avant du robot et le plus proche du sol possible. De cette façon, la détection est bonne, et permet une bonne correction de trajectoire. Cependant, le robot n'était pas conçu pour avoir un capteur à cet endroit, nous l'avons donc décentré un peu. Mais après quelques tests, la position que nous avons choisi, nous a permis d'obtenir une trajectoire correcte. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le capteur RFID a été beaucoup plus simple à installer, car il a une plus grande portée (3cm). Nous l'avons donc placé juste à coté du capteur de couleur. Cet emplacement, permet une bonne détection des cartes RFID,et le robot distingue facilement la position des objets à transporter.&lt;br /&gt;
&lt;br /&gt;
==Robot final==&lt;br /&gt;
&lt;br /&gt;
Voici l'allure de notre robot totalement assemblé, on peut voir les capteurs, la pince, mais surtout le fil qui relie la poulie et la pince.&lt;br /&gt;
[[Image:final.jpg|thumb|upright=1.25|alt=final|center|Robot totalement assemblé]]&lt;br /&gt;
&lt;br /&gt;
=La programmation=&lt;br /&gt;
&lt;br /&gt;
[[Image:arbre1.jpg|thumb|alt=modelepince|left|Modèle de la pince, avec un bras mobile fixé sur le servomoteur et une barre fixe]]&lt;br /&gt;
Nous avons choisi de programmer en langage NXC (Not eXactly C) que nous avons compilé avec l'IDE BricxCC (Bricx Command Center).&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé de faire suivre au robot un ensemble d'action dans un ordre précis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La première partie consiste à initialiser les deux capteurs de couleurs et RFID.&lt;br /&gt;
&lt;br /&gt;
==Les étapes du parcours==&lt;br /&gt;
&lt;br /&gt;
Durant ces phases, le robot suit les lignes de couleurs vertes.&lt;br /&gt;
Dès qu'il détecte une ligne rouge, il essaye de lire la carte RFID présente sur le sol pour savoir s'il faut déposer ou prendre un colis.&lt;br /&gt;
&lt;br /&gt;
/* expliquer les state : gotobaseget... */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==La recherche de ligne==&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, nous avons créer un programme permettant de retrouver une ligne de couleur suivant le raisonnement suivant :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INITIALISER timer A 0 ms&lt;br /&gt;
INITIALISER ligne_trouvee A faux&lt;br /&gt;
TANT QUE ligne_trouvee DIFFERENT DE vrai FAIRE&lt;br /&gt;
   SI detecteur_de_couleur = couleur_ligne&lt;br /&gt;
      ligne_trouvee = vrai&lt;br /&gt;
   FIN SI&lt;br /&gt;
   SI timer &amp;lt; 2500 ms&lt;br /&gt;
      ROBOT tourne a GAUCHE&lt;br /&gt;
   ET SI  timer &amp;lt; 6000 ms&lt;br /&gt;
      ROBOT tourne a DROITE&lt;br /&gt;
   SINON&lt;br /&gt;
      timer = 0 ms&lt;br /&gt;
   FIN SI&lt;br /&gt;
INCREMENTER timer DE 1 ms&lt;br /&gt;
FIN TANT QUE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette solution nous a permis de faire fonctionner le robot avec toutes les autres parties du programme. Cependant, il était plutôt long pour trouver les lignes de couleurs sur sa droite.&lt;br /&gt;
&lt;br /&gt;
Cette problématique nous a amenés à écrire un deuxième algorithme permettant de retrouver une ligne plus rapidement, quelque soit le côté où elle se trouve par rapport au robot.&lt;br /&gt;
/* rajouter l'algo */&lt;br /&gt;
&lt;br /&gt;
Nous avons donc créer un algorithme dit d'exagération de recherche, c'est à dire qu'il cherche pendant un cours laps de temps dans une direction, puis dans l'autre sens pendant une durée plus importante. Le robot répète ces deux opérations pendant un certain nombre de fois, en augmentant à chaque fois un peu plus la durée de recherche. Si au bout d'un nombre d'itération le robot ne trouve toujours pas la ligne, on lui ordonne de faire demi-tour.&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des tests comparatifs, nous sommes arrivés à la conclusion que le robot était, avec le deuxième programme, 50 à 60 % plus rapide.&lt;br /&gt;
&lt;br /&gt;
==La reconnaissance RFID==&lt;br /&gt;
&lt;br /&gt;
De façon à pouvoir lire les cartes RFID avec le capteur RFID, nous avons choisi d'utiliser une librairie externe OpenSource.&lt;br /&gt;
&lt;br /&gt;
Cette librairie est disponible à [https://code.google.com/p/pobot-playground/source/browse/trunk/PobotKey/Projects/Lego+NXT/NXC/RFIDlib.nxc l'adresse suivante]&lt;br /&gt;
&lt;br /&gt;
/* preciser que au départ modulo 2, mais on choisi modulo 3 car sinon erreur */&lt;br /&gt;
Cette librairie nous permet de récupérer les 5 informations disponibles sur la carte. De façon à pouvoir les traiter nous avons décider d'utiliser le secteur numéro quatre, et d'effectuer un modulo 3 sur la valeur. En fonction de la réponse, le robot est programmé pour effectuer des tâches particulières:&lt;br /&gt;
&lt;br /&gt;
* 0 : Ces cartes sont retirées car la réponse 0 est identique à la réponse du lecteur en cas d'erreur&lt;br /&gt;
* 1 : La valeur 1 ordonne au robot de récupérer un objet s'il n'en a pas actuellement&lt;br /&gt;
* 2 : La valeur 1 ordonne au robot de déposer l'objet qu'il tient s'il en a un actuellement&lt;br /&gt;
&lt;br /&gt;
==La communication entre les deux boîtiers NXT==&lt;br /&gt;
&lt;br /&gt;
Bien qu'au début nous avions commencé le projet dans l'optique d'utiliser un seul boitier NXT. Cependant, nous avons été contraint d'opter pour deux boitier car un seul ne peut commander que 3 servomoteurs, et il nous était nécessaire d'utiliser quatre servomoteurs. Nous avons donc décider d'utiliser ces deux boitiers, et de les faire communiquer par la technologie Bluetooth.&lt;br /&gt;
&lt;br /&gt;
Cela nous à donc amener à utiliser une bibliothèque externe OpenSource, qui nous permet d'utiliser plus simplement la fonctionnalité Bluetooth.&lt;br /&gt;
&lt;br /&gt;
La page Web de cette librairie est la [http://robotics.benedettelli.com/BT_NXC.htm suivante].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lorsque le robot se trouve sur une base, et qu'il doit récupérer un colis, le boitier NXT maître (celui contrôlant les moteurs de déplacement) envoie au NXT esclave l'instruction &amp;quot;PRENDRE COLIS&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
L'instruction est envoyée en boucle tant que le NXT esclave ne lui renvoi pas l'instruction &amp;quot;COLIS EMBARQUÉ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De façon analogue, lorsque le robot se trouve sur une base et qu'il doit déposer un colis, le boitier NXT maître envoie au NXT esclave l'instruction &amp;quot;DEPOSER COLIS&amp;quot; tant que l'esclave ne lui renvoie pas l'instruction &amp;quot;COLIS DÉPOSÉ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Toutes les instructions sont envoyées à l'aide de la boîte 0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, pour éviter que le robot ne démarre alors que la connection Bluetooth n'est pas active, nous avons utilisé un programme qui nous permet de vérifier au démarrage que les deux boîtiers sont bien connectés.&lt;br /&gt;
&lt;br /&gt;
Voici un schéma résumant les rôles de chacun des boitiers :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:communication.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
=L'intégration des fonctionnalité=&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé à intégrer les fonctionnalité supplémentaire lors de la séance du 7/03. Le robot doit : &lt;br /&gt;
*être contrôlable à distance avec une webcam par l’intermédiaire du site internet de la Foxboard&lt;br /&gt;
*pouvoir lire des RFID pour se localiser sur le circuit&lt;br /&gt;
*suivre une ligne discontinue et emprunter des voies de garage&lt;br /&gt;
&lt;br /&gt;
==Ajouts des nouveaux éléments==&lt;br /&gt;
&lt;br /&gt;
Nous avons équipé le robot d'une Foxboard que nous avons placé sur le dessus du robot avec la webcam pour répartir le poids. De plus nous avons ajouté un capteur boussole pour que le robot puisse suivre une ligne discontinue. L'architecture générale du robot n'a pas changée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Contrôle à distance==&lt;br /&gt;
&lt;br /&gt;
Pour le contrôle à distance nous avons dus intégrer la Foxboard sur notre robot. La Foxboard est équipée de plusieurs éléments : &lt;br /&gt;
*une carte Wifi pour la communication entre le site internet du robot et la Foxboard.&lt;br /&gt;
*une clé Bluetooth pour les échanges d'informations entre le boitier NXT maître et la Foxboard.&lt;br /&gt;
*une webcam pour visualiser en direct ce que voit le robot depuis le site internet. &lt;br /&gt;
&lt;br /&gt;
Le contrôle a distance s'est effectué en deux temps : &lt;br /&gt;
*La programmation des actions en fonction du &amp;quot;bouton&amp;quot; sur lequel on clique.&lt;br /&gt;
*Une amélioration du site dédié au contrôle par Foxboard.&lt;br /&gt;
&lt;br /&gt;
/* Préciser */&lt;br /&gt;
&lt;br /&gt;
==Lecture des RFID==&lt;br /&gt;
&lt;br /&gt;
Pendant l'intégration des fonctionnalités, nous avons utilisé les RFID de deux manières différentes. D'une part pour séquencer notre algorithme de suivi de ligne, et d'autre part pour se repérer en temps réel sur le circuit. La première chose indispensable était donc la création d'une base de données RFID. Pour cela nous avons scanné toutes les RFID pour choisir les informations les plus pertinentes à utiliser afin de les distinguer.Chaque carte a donc pu être reconnue comme unique par le robot.&lt;br /&gt;
&lt;br /&gt;
Lors du suivi de la ligne les RFID indiquent au robot comment il doit se comporter. Il y a 7 étapes différentes : &lt;br /&gt;
*Aller chercher l'objet&lt;br /&gt;
*Entrer dans la base de récupération de l'objet&lt;br /&gt;
*Sortir de cette base &lt;br /&gt;
*Aller déposer l'objet&lt;br /&gt;
*Passer en mode ligne discontinue&lt;br /&gt;
*Entrer dans la base de dépôt de l'objet&lt;br /&gt;
*Sortir de cette base&lt;br /&gt;
&lt;br /&gt;
Le suivi du robot en temps réel s'effectue par transmission de la dernière carte RFID scannée. Le NXT envoi l'information à la Foxboard qui l'envoi au site internet, on voit alors la dernière base où s'est trouvé le robot sur le site internet.&lt;br /&gt;
&lt;br /&gt;
==Les lignes discontinues==&lt;br /&gt;
&lt;br /&gt;
Pour intégrer cette fonction nous nous sommes fortement inspirés du code réalisé par Alexandre Jouy et Kévin De Arriba. En effet, leur code permettait de suivre une direction donnée à partir de la boussole. Nous avons modifié ce code afin qu'il convienne à notre algorithme séquentiel. Nous avons aussi dus définir la direction à prendre selon la carte RFID scannée. Au final, nous utilisons une version simplifiée du code de Kévin et Alexandre. &lt;br /&gt;
&lt;br /&gt;
/* A revoir  */&lt;br /&gt;
Lorsque le robot scanne une RFID qui lui indique de passer en mode discontinu, il suit la direction qu'on lui impose jusqu'à ce qu'il retrouve la ligne verte (ligne principale du circuit).&lt;/div&gt;</summary>
		<author><name>Dsaunder</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1809</id>
		<title>Robot transporteur</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1809"/>
				<updated>2013-05-08T14:06:32Z</updated>
		
		<summary type="html">&lt;p&gt;Dsaunder : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&amp;lt;include nopre noesc src=&amp;quot;/home/pedago/ppeip/include/video-RobotTransporteur-2012-iframe.html&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
Nous allons vous présenter notre projet pour le bureau d'étude IMA 2012/2013. Nous sommes tous les deux très intéressés par ce département, et ce petit robot nous a passionné dans sa conception et sa programmation. Nous avons choisi de mélanger les différents styles de robots à concevoir, pour proposer une idée personnelle de projet. Notre objectif est de créer un robot autonome qui transporte des objets. Cela passe par deux grandes étapes : la conception d'un système à 4 servomoteurs et la programmations des tâches réalisées en autonomie.&lt;br /&gt;
&lt;br /&gt;
=La Conception=&lt;br /&gt;
&lt;br /&gt;
Le robot est composé deux éléments essentiels : une base motrice et une pince de levage. Il comporte aussi deux capteurs pour le rendre autonome.&lt;br /&gt;
&lt;br /&gt;
==La base motrice==&lt;br /&gt;
&lt;br /&gt;
[[Image:receptacle.jpg|thumb|upright=0.75|alt=receptacle|right|Réceptacle pour boîtes NXT et Foxboard]]&lt;br /&gt;
La base est composée de deux servomoteurs qui sont reliés entre eux pour former un socle solide. En effet, ce socle doit être capable de supporter le poids de deux boites NXT, ainsi que celui de la pince et de l'objet transporté. Les servomoteurs entraînent la rotation de 4 roues sur lesquelles sont fixées des chenilles pour lui permettre d'avancer. La première boite NXT est directement fixée sur les servomoteurs, puis derrière, nous avons mis en place un réceptacle capable de contenir une deuxième boite NXT ou une Foxboard (nous ne savions pas encore comment guider le robot). La structure devait être solide, car on devait encore ajouter la pince de levage sur le dessus. Voici quelques illustrations de la construction.&lt;br /&gt;
&lt;br /&gt;
[[Image:Basemoteur.jpg|thumb|alt=basemoteur|center|Base motrice à chenille, composée de deux servomoteur]]&lt;br /&gt;
&lt;br /&gt;
==La pince de levage==&lt;br /&gt;
&lt;br /&gt;
La pince de levage a été l'objet de toute la première séance, c'était l'élément le plus compliqué à assembler. Nous avons été confronté à plusieurs contraintes : le poids des objets transportés, la résistance du système de levage, et l'adaptation de la forme de la pince.&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord créé une pince composée de deux servomoteurs pour le serrage et un autre pour le levage de la pince, mais ce système était trop lourd et peu pratique à solidariser avec le reste du robot. Nous avons donc évolué vers un système plus léger composé de seulement 2 servomoteurs. Dans ce nouveau système, un servomoteur était dédié à serrer la pince et l'autre à la soulever par un mouvement de rotation. Le problème est que la pince était encore lourde et compliquée à fixer, car tout était accroché à l'avant du véhicule, il y a donc eu un problème de répartition de poids. Inutile de préciser qu'en ajoutant en plus un objet dans la pince, le robot se serait effondré. Nous avons alors pensé à mettre en place une poulie, ce qui a permis de surmonter ces obstacles. &lt;br /&gt;
&lt;br /&gt;
[[Image:modelepince.jpg|thumb|alt=modelepince|left|Modèle de la pince, avec un bras mobile fixé sur le servomoteur et une barre fixe]]&lt;br /&gt;
La pince est donc composée de deux parties : &lt;br /&gt;
*Un servomoteur fixé sur le dessus du robot, pour répartir le poids et assurer une fixation solide. Sur ce moteur, nous avons fixé de petits embouts, ainsi que l’extrémité d'un fil. De cette manière quand le moteur tourne, le fil s'enroule autour de ceux-ci. C'est donc la poulie. &lt;br /&gt;
*Un servomoteur relié à l'avant du véhicule par une liaison pivot. Il peut donc se déplacer de haut en bas sans problème. Ce moteur permet de serrer la pince par une rotation d'une des deux branches qui la compose. Vous voyez, à gauche, que la pince est constituée d'une barre fixe sur laquelle s'appuie l'objet quand la pince est en position fermée, et d'une partie partie mobile , liée au moteur (en arc de cercle pour favoriser la prise des objets à transporter) qui change de position pour ouvrir et fermer la pince. L'autre extrémité du fil, provenant de la poulie, est fixée sur la barre fixe. &lt;br /&gt;
&lt;br /&gt;
Nous avons donc une pince qui se ferme pour saisir un objet, puis qui se soulève et redescend grâce à une poulie, pour enfin se rouvrir et déposer l'objet.&lt;br /&gt;
&lt;br /&gt;
==Les capteurs==&lt;br /&gt;
&lt;br /&gt;
Le robot est doté de deux capteurs : un capteur de couleur pour suivre une ligne, et un capteur RFID qui lui sert à détecter les bases sur lesquelles il doit effectuer une action.&lt;br /&gt;
&lt;br /&gt;
Nous avions d'abord pensé à installer un capteur de pression sur la pince pour vérifier si l'objet était bien serré dans la pince. Mais celui-ci s'est avéré inutile après programmation, car le  programme permet de serrer l'objet autant qu'il faut pour que l'objet soit correctement maintenu. La détection de pression n'était donc pas nécessaire.&lt;br /&gt;
&lt;br /&gt;
[[Image:capteur.jpg|thumb|upright=1.25|alt=capteur|right|Emplacement des capteurs sur le robot]]&lt;br /&gt;
En revanche, comme nous voulions faire un robot guidé par des bandes noires au sol, nous avions besoin d'un capteur de couleurs. La difficulté est que ce capteur n'a qu'une très courte portée, c'est pourquoi nous avons du le placer dans un endroit ou il serait immobile, le plus proche du centre de l'avant du robot et le plus proche du sol possible. De cette façon, la détection est bonne, et permet une bonne correction de trajectoire. Cependant, le robot n'était pas conçu pour avoir un capteur à cet endroit, nous l'avons donc décentré un peu. Mais après quelques tests, la position que nous avons choisi, nous a permis d'obtenir une trajectoire correcte. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le capteur RFID a été beaucoup plus simple à installer, car il a une plus grande portée (3cm). Nous l'avons donc placé juste à coté du capteur de couleur. Cet emplacement, permet une bonne détection des cartes RFID,et le robot distingue facilement la position des objets à transporter.&lt;br /&gt;
&lt;br /&gt;
==Robot final==&lt;br /&gt;
&lt;br /&gt;
Voici l'allure de notre robot totalement assemblé, on peut voir les capteurs, la pince, mais surtout le fil qui relie la poulie et la pince.&lt;br /&gt;
[[Image:final.jpg|thumb|upright=1.25|alt=final|center|Robot totalement assemblé]]&lt;br /&gt;
&lt;br /&gt;
=La programmation=&lt;br /&gt;
&lt;br /&gt;
[[Image:arbre1.jpg|thumb|alt=modelepince|left|Modèle de la pince, avec un bras mobile fixé sur le servomoteur et une barre fixe]]&lt;br /&gt;
Nous avons choisi de programmer en langage NXC (Not eXactly C) que nous avons compilé avec l'IDE BricxCC (Bricx Command Center).&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé de faire suivre au robot un ensemble d'action dans un ordre précis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La première partie consiste à initialiser les deux capteurs de couleurs et RFID.&lt;br /&gt;
&lt;br /&gt;
==Les étapes du parcours==&lt;br /&gt;
&lt;br /&gt;
Durant ces phases, le robot suit les lignes de couleurs vertes.&lt;br /&gt;
Dès qu'il détecte une ligne rouge, il essaye de lire la carte RFID présente sur le sol pour savoir s'il faut déposer ou prendre un colis.&lt;br /&gt;
&lt;br /&gt;
/* expliquer les state : gotobaseget... */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==La recherche de ligne==&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, nous avons créer un programme permettant de retrouver une ligne de couleur suivant le raisonnement suivant :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INITIALISER timer A 0 ms&lt;br /&gt;
INITIALISER ligne_trouvee A faux&lt;br /&gt;
TANT QUE ligne_trouvee DIFFERENT DE vrai FAIRE&lt;br /&gt;
   SI detecteur_de_couleur = couleur_ligne&lt;br /&gt;
      ligne_trouvee = vrai&lt;br /&gt;
   FIN SI&lt;br /&gt;
   SI timer &amp;lt; 2500 ms&lt;br /&gt;
      ROBOT tourne a GAUCHE&lt;br /&gt;
   ET SI  timer &amp;lt; 6000 ms&lt;br /&gt;
      ROBOT tourne a DROITE&lt;br /&gt;
   SINON&lt;br /&gt;
      timer = 0 ms&lt;br /&gt;
   FIN SI&lt;br /&gt;
INCREMENTER timer DE 1 ms&lt;br /&gt;
FIN TANT QUE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette solution nous a permis de faire fonctionner le robot avec toutes les autres parties du programme. Cependant, il était plutôt long pour trouver les lignes de couleurs sur sa droite.&lt;br /&gt;
&lt;br /&gt;
Cette problématique nous a amenés à écrire un deuxième algorithme permettant de retrouver une ligne plus rapidement, quelque soit le côté où elle se trouve par rapport au robot.&lt;br /&gt;
/* rajouter l'algo */&lt;br /&gt;
&lt;br /&gt;
Nous avons donc créer un algorithme dit d'exagération de recherche, c'est à dire qu'il cherche pendant un cours laps de temps dans une direction, puis dans l'autre sens pendant une durée plus importante. Le robot répète ces deux opérations pendant un certain nombre de fois, en augmentant à chaque fois un peu plus la durée de recherche. Si au bout d'un nombre d'itération le robot ne trouve toujours pas la ligne, on lui ordonne de faire demi-tour.&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des tests comparatifs, nous sommes arrivés à la conclusion que le robot était, avec le deuxième programme, 50 à 60 % plus rapide.&lt;br /&gt;
&lt;br /&gt;
==La reconnaissance RFID==&lt;br /&gt;
&lt;br /&gt;
De façon à pouvoir lire les cartes RFID avec le capteur RFID, nous avons choisi d'utiliser une librairie externe OpenSource.&lt;br /&gt;
&lt;br /&gt;
Cette librairie est disponible à [https://code.google.com/p/pobot-playground/source/browse/trunk/PobotKey/Projects/Lego+NXT/NXC/RFIDlib.nxc l'adresse suivante]&lt;br /&gt;
&lt;br /&gt;
/* preciser que au départ modulo 2, mais on choisi modulo 3 car sinon erreur */&lt;br /&gt;
Cette librairie nous permet de récupérer les 5 informations disponibles sur la carte. De façon à pouvoir les traiter nous avons décider d'utiliser le secteur numéro quatre, et d'effectuer un modulo 3 sur la valeur. En fonction de la réponse, le robot est programmé pour effectuer des tâches particulières:&lt;br /&gt;
&lt;br /&gt;
* 0 : Ces cartes sont retirées car la réponse 0 est identique à la réponse du lecteur en cas d'erreur&lt;br /&gt;
* 1 : La valeur 1 ordonne au robot de récupérer un objet s'il n'en a pas actuellement&lt;br /&gt;
* 2 : La valeur 1 ordonne au robot de déposer l'objet qu'il tient s'il en a un actuellement&lt;br /&gt;
&lt;br /&gt;
==La communication entre les deux boîtiers NXT==&lt;br /&gt;
&lt;br /&gt;
Bien qu'au début nous avions commencé le projet dans l'optique d'utiliser un seul boitier NXT. Cependant, nous avons été contraint d'opter pour deux boitier car un seul ne peut commander que 3 servomoteurs, et il nous était nécessaire d'utiliser quatre servomoteurs. Nous avons donc décider d'utiliser ces deux boitiers, et de les faire communiquer par la technologie Bluetooth.&lt;br /&gt;
&lt;br /&gt;
Cela nous à donc amener à utiliser une bibliothèque externe OpenSource, qui nous permet d'utiliser plus simplement la fonctionnalité Bluetooth.&lt;br /&gt;
&lt;br /&gt;
La page Web de cette librairie est la [http://robotics.benedettelli.com/BT_NXC.htm suivante].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lorsque le robot se trouve sur une base, et qu'il doit récupérer un colis, le boitier NXT maître (celui contrôlant les moteurs de déplacement) envoie au NXT esclave l'instruction &amp;quot;PRENDRE COLIS&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
L'instruction est envoyée en boucle tant que le NXT esclave ne lui renvoi pas l'instruction &amp;quot;COLIS EMBARQUÉ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De façon analogue, lorsque le robot se trouve sur une base et qu'il doit déposer un colis, le boitier NXT maître envoie au NXT esclave l'instruction &amp;quot;DEPOSER COLIS&amp;quot; tant que l'esclave ne lui renvoie pas l'instruction &amp;quot;COLIS DÉPOSÉ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Toutes les instructions sont envoyées à l'aide de la boîte 0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, pour éviter que le robot ne démarre alors que la connection Bluetooth n'est pas active, nous avons utilisé un programme qui nous permet de vérifier au démarrage que les deux boîtiers sont bien connectés.&lt;br /&gt;
&lt;br /&gt;
Voici un schéma résumant les rôles de chacun des boitiers :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:communication.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
=L'intégration des fonctionnalité=&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé à intégrer les fonctionnalité supplémentaire lors de la séance du 7/03. Le robot doit : &lt;br /&gt;
*être contrôlable à distance avec une webcam par l’intermédiaire du site internet de la Foxboard&lt;br /&gt;
*pouvoir lire des RFID pour se localiser sur le circuit&lt;br /&gt;
*suivre une ligne discontinue et emprunter des voies de garage&lt;br /&gt;
&lt;br /&gt;
==Ajouts des nouveaux éléments==&lt;br /&gt;
&lt;br /&gt;
Nous avons équipé le robot d'une Foxboard que nous avons placé sur le dessus du robot avec la webcam pour répartir le poids. De plus nous avons ajouté un capteur boussole pour que le robot puisse suivre une ligne discontinue. L'architecture générale du robot n'a pas changée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Contrôle à distance==&lt;br /&gt;
&lt;br /&gt;
Pour le contrôle à distance nous avons dus intégrer la Foxboard sur notre robot. La Foxboard est équipée de plusieurs éléments : &lt;br /&gt;
*une carte Wifi pour la communication entre le site internet du robot et la Foxboard.&lt;br /&gt;
*une clé Bluetooth pour les échanges d'informations entre le boitier NXT maître et la Foxboard.&lt;br /&gt;
*une webcam pour visualiser en direct ce que voit le robot depuis le site internet. &lt;br /&gt;
&lt;br /&gt;
Le contrôle a distance s'est effectué en deux temps : &lt;br /&gt;
*La programmation des actions en fonction du &amp;quot;bouton&amp;quot; sur lequel on clique.&lt;br /&gt;
*Une amélioration du site dédié au contrôle par Foxboard.&lt;br /&gt;
&lt;br /&gt;
/* Préciser */&lt;br /&gt;
&lt;br /&gt;
==Lecture des RFID==&lt;br /&gt;
&lt;br /&gt;
Pendant l'intégration des fonctionnalités, nous avons utilisé les RFID de deux manières différentes. D'une part pour séquencer notre algorithme de suivi de ligne, et d'autre part pour se repérer en temps réel sur le circuit. La première chose indispensable était donc la création d'une base de données RFID. Pour cela nous avons scanné toutes les RFID pour choisir les informations les plus pertinentes à utiliser afin de les distinguer.Chaque carte a donc pu être reconnue comme unique par le robot.&lt;br /&gt;
&lt;br /&gt;
Lors du suivi de la ligne les RFID indiquent au robot comment il doit se comporter. Il y a 7 étapes différentes : &lt;br /&gt;
*Aller chercher l'objet&lt;br /&gt;
*Entrer dans la base de récupération de l'objet&lt;br /&gt;
*Sortir de cette base &lt;br /&gt;
*Aller déposer l'objet&lt;br /&gt;
*Passer en mode ligne discontinue&lt;br /&gt;
*Entrer dans la base de dépôt de l'objet&lt;br /&gt;
*Sortir de cette base&lt;br /&gt;
&lt;br /&gt;
Le suivi du robot en temps réel s'effectue par transmission de la dernière carte RFID scannée. Le NXT envoi l'information à la Foxboard qui l'envoi au site internet, on voit alors la dernière base où s'est trouvé le robot sur le site internet.&lt;br /&gt;
&lt;br /&gt;
==Les lignes discontinues==&lt;br /&gt;
&lt;br /&gt;
Pour intégrer cette fonction nous nous sommes fortement inspirés du code réalisé par Alexandre Jouy et Kévin De Arriba. En effet, leur code permettait de suivre une direction donnée à partir de la boussole. Nous avons modifié ce code afin qu'il convienne à notre algorithme séquentiel. Nous avons aussi dus définir la direction à prendre selon la carte RFID scannée. Au final, nous utilisons une version simplifiée du code de Kévin et Alexandre. &lt;br /&gt;
&lt;br /&gt;
/* A revoir  */&lt;br /&gt;
Lorsque le robot scanne une RFID qui lui indique de passer en mode discontinu, il suit la direction qu'on lui impose jusqu'à ce qu'il retrouve la ligne verte (ligne principale du circuit).&lt;/div&gt;</summary>
		<author><name>Dsaunder</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1671</id>
		<title>Robot transporteur</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1671"/>
				<updated>2013-03-18T08:03:00Z</updated>
		
		<summary type="html">&lt;p&gt;Dsaunder : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&lt;br /&gt;
Nous allons vous présentez notre projet pour le bureau d'étude IMA 2012/2013. Nous sommes tous les deux très intéressé par ce département, et ce petit robot nous a passionné dans sa conception et sa programmation. Nous avons choisi de mélanger les différents style de robot à concevoir, pour proposer une idée personnelle de projet. Notre objectif est de créer un robot autonome qui transporte des objets. Cela passe par deux grandes étapes : la conception d'un système à 4 servomoteurs et la programmations des tâches réalisées en autonomie.&lt;br /&gt;
&lt;br /&gt;
=La Conception=&lt;br /&gt;
&lt;br /&gt;
Le robot est composé deux éléments essentiels : une base motrice et une pince de levage. Il comporte aussi deux capteurs pour le rendre autonome.&lt;br /&gt;
&lt;br /&gt;
==La base motrice==&lt;br /&gt;
&lt;br /&gt;
[[Image:receptacle.jpg|thumb|upright=0.75|alt=receptacle|right|Réceptacle pour boîtes NXT et Foxboard]]&lt;br /&gt;
La base est composée de deux servomoteurs qui sont reliés entre eux pour former un socle solide. En effet, ce socle doit être capable de supporter le poids de deux boites NXT, ainsi que celui de la pince et de l'objet transporté. Les servomoteurs entraînent la rotation de 4 roues sur lesquelles sont fixées des chenilles pour lui permettre d'avancer. La première boite NXT est directement fixée sur les servomoteurs, puis derrière, nous avons mis en place un réceptacle capable de contenir une deuxième boite NXT ou une Foxboard (nous ne savions pas encore comment guider le robot). La structure devait être solide, car on devait encore ajouter la pince de levage sur le dessus. Voici quelques illustration de la construction.&lt;br /&gt;
&lt;br /&gt;
[[Image:Basemoteur.jpg|thumb|alt=basemoteur|center|Base motrice à chenille, composée de deux servomoteur]] &lt;br /&gt;
&lt;br /&gt;
==La pince de levage==&lt;br /&gt;
&lt;br /&gt;
La pince de levage a été l'objet de toute la première séance, c'était l'élément le plus compliqué à assembler. Nous avons été confronté à plusieurs contraintes : le poids des objets transporté, la résistance du système de levage, et l'adaptation de la forme de la pince.&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord crée une pince composée de deux servomoteurs pour le serrage et un autre pour le levage de la pince, mais ce système était trop lourd et peu pratique à solidariser avec le reste du robot. Nous avons donc évolué vers un système plus léger composé de seulement 2 servomoteurs. Dans ce nouveau système, un servomoteurs était dédié à serrer la pince et l'autre à la soulever par un mouvement de rotation. Le problème est que la pince était encore lourde et compliquée à fixer, car tout était accroché à l'avant du véhicule, il y a donc eu un problème de répartition de poids.Inutile de préciser qu'en ajoutant en plus un objet dans la pince, le robot se serait effondré.Nous avons alors pensé à mettre en place une poulie, ce qui a permis de surpasser tout ces obstacles. &lt;br /&gt;
&lt;br /&gt;
[[Image:modelepince.jpg|thumb|alt=modelepince|left|Modèle de la pince, avec un bras mobile fixé sur le servomoteur et une barre fixe]]&lt;br /&gt;
La pince est donc composée de deux parties : &lt;br /&gt;
*Un servomoteur fixé sur le dessus du robot, pour répartir le poids et assurer une fixation solide. Sur ce moteur, nous avons fixer de petits embouts, ainsi que l’extrémité d'un fil. De cette manière quand le moteur tourne, le fil s'enroule autour de ceux-ci. C'est donc la poulie. &lt;br /&gt;
*Un servomoteur relié à l'avant du véhicule par une liaison pivot. Il peut donc se déplacer de haut en bas sans problème. Ce moteur permet de serrer la pince par une rotation d'une des deux branches qui la compose. Vous voyez, à gauche, que la pince est constituée d'une barre fixe sur laquelle s'appuie l'objet quand la pince est en position fermée, et d'une partie partie mobile , liée au moteur (en arc de cercle pour favoriser la prise des objets à transporter) qui change de position pour ouvrir et fermer la pince. L'autre extrémité du fil, provenant de la poulie, est fixée sur la barre fixe. &lt;br /&gt;
&lt;br /&gt;
Nous avons donc une pince qui se ferme pour saisir un objet, puis qui se soulève et redescend grâce à une poulie, pour enfin se rouvrir et déposer l'objet.&lt;br /&gt;
&lt;br /&gt;
==Les capteurs==&lt;br /&gt;
&lt;br /&gt;
Le robot est doté de deux capteur : un capteur de couleur pour suivre une ligne, et un capteur RFID qui lui sert à détecter les bases sur lesquelles il doit effectuer une action.&lt;br /&gt;
&lt;br /&gt;
Nous avions d'abord pensé à installer un capteur de pression sur la pince pour vérifier si l'objet était bien serrer dans la pince. Mais celui-ci s'est avéré inutile après programmation, car le  programme permet de serrer l'objet autant qu'il faut pour que l'objet soit correctement maintenu. La détection de pression n'était donc pas nécessaire.&lt;br /&gt;
&lt;br /&gt;
[[Image:capteur.jpg|thumb|upright=1.25|alt=capteur|right|Emplacement des capteurs sur le robot]]&lt;br /&gt;
En revanche,comme nous voulions faire un robot guider par des lignes de scotch noires au sol, nous avions besoin d'un capteur de couleurs. La difficulté est que ce capteur n'a qu'une très courte portée, c'est pourquoi nous avons du le placer dans un endroit ou il serait immobile, le plus proche du centre de l'avant du robot et le plus proche du sol possible. De cette façon, la détection est bonne continue, et permet une bonne correction de trajectoire. Cependant, le robot n'était pas conçu pour avoir un capteur à cet endroit, nous l'avons donc décentré un peu. Mais après quelques test, la position que nous avons choisi, nous a permis d'obtenir une trajectoire correcte. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le capteur RFID a été beaucoup plus simple à installer, car il a une plus grande portée (3cm). Nous l'avons donc placé juste à coté du capteur de couleur. Cet emplacement, permet une bonne détection des cartes RFID,et le robot distingue facilement la position des objets à transporter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Robot final==&lt;br /&gt;
&lt;br /&gt;
Voici l'allure de notre robot totalement assemblé, on peut voir les capteurs, la pince, mais surtout le fil qui relie la poulie et la pince.&lt;br /&gt;
[[Image:final.jpg|thumb|upright=1.25|alt=final|center|Robot totalement assemblé]]&lt;br /&gt;
&lt;br /&gt;
=La programmation=&lt;br /&gt;
&lt;br /&gt;
[[Image:arbre1.jpg|thumb|alt=modelepince|left|Modèle de la pince, avec un bras mobile fixé sur le servomoteur et une barre fixe]]&lt;br /&gt;
Nous avons choisi de programmer en langage NXC (Not eXactly C) que nous avons compilé avec l'IDE BricxCC (Bricx Command Center).&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé de faire suivre au robot un ensemble d'action dans un ordre précis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La première partie consiste à initialiser les deux capteurs de couleurs et RFID.&lt;br /&gt;
&lt;br /&gt;
==Les étapes du parcours==&lt;br /&gt;
&lt;br /&gt;
Durant ces phases, le robot suit les lignes de couleurs vertes.&lt;br /&gt;
Dès qu'il détecte une ligne rouge, il essaye de lire la carte RFID présente sur le sol pour savoir s'il faut déposer ou prendre un colis.&lt;br /&gt;
&lt;br /&gt;
/* expliquer les state : gotobaseget... */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==La recherche de ligne==&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, nous avons créer un programme permettant de retrouver une ligne de couleur suivant le raisonnement suivant :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INITIALISER timer A 0 ms&lt;br /&gt;
INITIALISER ligne_trouvee A faux&lt;br /&gt;
TANT QUE ligne_trouvee DIFFERENT DE vrai FAIRE&lt;br /&gt;
   SI detecteur_de_couleur = couleur_ligne&lt;br /&gt;
      ligne_trouvee = vrai&lt;br /&gt;
   FIN SI&lt;br /&gt;
   SI timer &amp;lt; 2500 ms&lt;br /&gt;
      ROBOT tourne a GAUCHE&lt;br /&gt;
   ET SI  timer &amp;lt; 6000 ms&lt;br /&gt;
      ROBOT tourne a DROITE&lt;br /&gt;
   SINON&lt;br /&gt;
      timer = 0 ms&lt;br /&gt;
   FIN SI&lt;br /&gt;
INCREMENTER timer DE 1 ms&lt;br /&gt;
FIN TANT QUE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette solution nous a permis de faire fonctionner le robot avec toutes les autres parties du programme. Cependant, il était plutôt long pour trouver les lignes de couleurs sur sa droite.&lt;br /&gt;
&lt;br /&gt;
Cette problématique nous a amenés à écrire un deuxième algorithme permettant de retrouver une ligne plus rapidement, quelque soit le côté où elle se trouve par rapport au robot.&lt;br /&gt;
/* rajouter l'algo */&lt;br /&gt;
&lt;br /&gt;
Nous avons donc créer un algorithme dit d'exagération de recherche, c'est à dire qu'il cherche pendant un cours lapse de temps dans une direction, puis dans l'autre sens pendant une durée plus importante. Le robot répète ces deux opérations pendant un certain nombre de fois, en augmentant à chaque fois un peu plus la durée de recherche. Si au bout d'un nombre d'itération le robot ne trouve toujours pas la ligne, on lui ordonne de faire demi-tour.&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des tests comparatifs, nous sommes arrivés à la conclusion que le robot était, avec le deuxième programme, 50 à 60 % plus rapide.&lt;br /&gt;
&lt;br /&gt;
==La reconnaissance RFID==&lt;br /&gt;
&lt;br /&gt;
De façon à pouvoir lire les cartes RFID avec le capteur RFID, nous avons choisi d'utiliser une librairie externe OpenSource.&lt;br /&gt;
&lt;br /&gt;
Cette librairie est disponible à [https://code.google.com/p/pobot-playground/source/browse/trunk/PobotKey/Projects/Lego+NXT/NXC/RFIDlib.nxc l'adresse suivante]&lt;br /&gt;
&lt;br /&gt;
/* preciser que au départ modulo 2, mais on choisi modulo 3 car sinon erreur */&lt;br /&gt;
Cette librairie nous permet de récupérer les 5 informations disponibles sur la carte. De façon à pouvoir les traiter nous avons décider d'utiliser le secteur numéro quatre, et d'effectuer un modulo 3 sur la valeur. En fonction de la réponse, le robot est programmé pour effectuer des tâches particulières:&lt;br /&gt;
&lt;br /&gt;
* 0 : Ces cartes sont retirées car la réponse 0 est identique à la réponse du lecteur en cas d'erreur&lt;br /&gt;
* 1 : La valeur 1 ordonne au robot de récupérer un objet s'il n'en a pas actuellement&lt;br /&gt;
* 2 : La valeur 1 ordonne au robot de déposer l'objet qu'il tient s'il en a un actuellement&lt;br /&gt;
&lt;br /&gt;
==La communication entre les deux boîtiers NXT==&lt;br /&gt;
&lt;br /&gt;
Une fois encore, nous avons était amenés à utiliser une bibliothèque externe OpenSource, qui nous permet d'utiliser plus simplement la fonctionnalité Bluetooth.&lt;br /&gt;
&lt;br /&gt;
La page Web de cette librairie est la [http://robotics.benedettelli.com/BT_NXC.htm suivante].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lorsque le robot se trouve sur une base, et qu'il doit récupérer un colis, le boitier NXT maître (celui contrôlant les moteurs de déplacement) envoie au NXT esclave l'instruction &amp;quot;PRENDRE COLIS&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
L'instruction est envoyée en boucle tant que le NXT esclave ne lui renvoi pas l'instruction &amp;quot;COLIS EMBARQUÉ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De façon analogue, lorsque le robot se trouve sur une base et qu'il doit déposer un colis, le boitier NXT maître envoie au NXT esclave l'instruction &amp;quot;DEPOSER COLIS&amp;quot; tant que l'esclave ne lui renvoie pas l'instruction &amp;quot;COLIS DÉPOSÉ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Toutes les instructions sont envoyées à l'aide de la boîte 0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De plus, pour éviter que le robot ne démarre alors que la connection Bluetooth n'est pas active, nous avons utilisé un programme qui nous permet de vérifier au démarrage que les deux boîtiers sont bien connectés.&lt;br /&gt;
&lt;br /&gt;
=L'intégration des fonctionnalité=&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé à intégrer les fonctionnalité supplémentaire lors de la séance du 7/03. Le robot doit : &lt;br /&gt;
*être contrôlable à distance avec une webcam par l’intermédiaire du site internet de la Foxboard&lt;br /&gt;
*pouvoir lire des RFID pour se localiser sur le circuit&lt;br /&gt;
*tenir ses distances avec les autres robots&lt;br /&gt;
*emprunter des voies de garage en vérifiant si elles ne sont pas déja occupées.&lt;br /&gt;
&lt;br /&gt;
==Contrôle à distance==&lt;/div&gt;</summary>
		<author><name>Dsaunder</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1584</id>
		<title>Robot transporteur</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1584"/>
				<updated>2013-03-11T07:19:55Z</updated>
		
		<summary type="html">&lt;p&gt;Dsaunder : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&lt;br /&gt;
Nous allons vous présentez notre projet pour le bureau d'étude IMA 2012/2013. Nous sommes tous les deux très intéressé par ce département, et ce petit robot nous a passionné dans sa conception et sa programmation. Nous avons choisi de mélanger les différents style de robot à concevoir, pour proposer une idée personnelle de projet. Notre objectif est de créer un robot autonome qui transporte des objets. Cela passe par deux grandes étapes : la conception d'un système à 4 servomoteurs et la programmations des tâches réalisées en autonomie.&lt;br /&gt;
&lt;br /&gt;
=La Conception=&lt;br /&gt;
&lt;br /&gt;
Le robot est composé deux éléments essentiels : une base motrice et une pince de levage. Il comporte aussi deux capteurs pour le rendre autonome.&lt;br /&gt;
&lt;br /&gt;
==La base motrice==&lt;br /&gt;
&lt;br /&gt;
[[Image:receptacle.jpg|thumb|upright=0.75|alt=receptacle|right|Réceptacle pour boîtes NXT et Foxboard]]&lt;br /&gt;
La base est composée de deux servomoteurs qui sont reliés entre eux pour former un socle solide. En effet, ce socle doit être capable de supporter le poids de deux boites NXT, ainsi que celui de la pince et de l'objet transporté. Les servomoteurs entraînent la rotation de 4 roues sur lesquelles sont fixées des chenilles pour lui permettre d'avancer. La première boite NXT est directement fixée sur les servomoteurs, puis derrière, nous avons mis en place un réceptacle capable de contenir une deuxième boite NXT ou une Foxboard (nous ne savions pas encore comment guider le robot). La structure devait être solide, car on devait encore ajouter la pince de levage sur le dessus. Voici quelques illustration de la construction.&lt;br /&gt;
&lt;br /&gt;
[[Image:Basemoteur.jpg|thumb|alt=basemoteur|center|Base motrice à chenille, composée de deux servomoteur]] &lt;br /&gt;
&lt;br /&gt;
==La pince de levage==&lt;br /&gt;
&lt;br /&gt;
La pince de levage a été l'objet de toute la première séance, c'était l'élément le plus compliqué à assembler. Nous avons été confronté à plusieurs contraintes : le poids des objets transporté, la résistance du système de levage, et l'adaptation de la forme de la pince.&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord crée une pince composée de deux servomoteurs pour le serrage et un autre pour le levage de la pince, mais ce système était trop lourd et peu pratique à solidariser avec le reste du robot. Nous avons donc évolué vers un système plus léger composé de seulement 2 servomoteurs. Dans ce nouveau système, un servomoteurs était dédié à serrer la pince et l'autre à la soulever par un mouvement de rotation. Le problème est que la pince était encore lourde et compliquée à fixer, car tout était accroché à l'avant du véhicule, il y a donc eu un problème de répartition de poids.Inutile de préciser qu'en ajoutant en plus un objet dans la pince, le robot se serait effondré.Nous avons alors pensé à mettre en place une poulie, ce qui a permis de surpasser tout ces obstacles. &lt;br /&gt;
&lt;br /&gt;
[[Image:modelepince.jpg|thumb|alt=modelepince|left|Modèle de la pince, avec un bras mobile fixé sur le servomoteur et une barre fixe]]&lt;br /&gt;
La pince est donc composée de deux parties : &lt;br /&gt;
*Un servomoteur fixé sur le dessus du robot, pour répartir le poids et assurer une fixation solide. Sur ce moteur, nous avons fixer de petits embouts, ainsi que l’extrémité d'un fil. De cette manière quand le moteur tourne, le fil s'enroule autour de ceux-ci. C'est donc la poulie. &lt;br /&gt;
*Un servomoteur relié à l'avant du véhicule par une liaison pivot. Il peut donc se déplacer de haut en bas sans problème. Ce moteur permet de serrer la pince par une rotation d'une des deux branches qui la compose. Vous voyez, à gauche, que la pince est constituée d'une barre fixe sur laquelle s'appuie l'objet quand la pince est en position fermée, et d'une partie partie mobile , liée au moteur (en arc de cercle pour favoriser la prise des objets à transporter) qui change de position pour ouvrir et fermer la pince. L'autre extrémité du fil, provenant de la poulie, est fixée sur la barre fixe. &lt;br /&gt;
&lt;br /&gt;
Nous avons donc une pince qui se ferme pour saisir un objet, puis qui se soulève et redescend grâce à une poulie, pour enfin se rouvrir et déposer l'objet.&lt;br /&gt;
&lt;br /&gt;
''/* attention à ne pas confondre &amp;quot;er&amp;quot; et &amp;quot;é&amp;quot; .. */''&lt;br /&gt;
&lt;br /&gt;
==Les capteurs==&lt;br /&gt;
&lt;br /&gt;
Le robot est doté de deux capteur : un capteur de couleur pour suivre une ligne, et un capteur RFID qui lui sert à détecter les bases sur lesquelles il doit effectuer une action.&lt;br /&gt;
&lt;br /&gt;
Nous avions d'abord pensé à installer un capteur de pression sur la pince pour vérifier si l'objet était bien serrer dans la pince. Mais celui-ci s'est avéré inutile après programmation, car le  programme permet de serrer l'objet autant qu'il faut pour que l'objet soit correctement maintenu. La détection de pression n'était donc pas nécessaire.&lt;br /&gt;
&lt;br /&gt;
[[Image:capteur.jpg|thumb|upright=1.25|alt=capteur|right|Emplacement des capteurs sur le robot]]&lt;br /&gt;
En revanche,comme nous voulions faire un robot guider par des lignes de scotch noires au sol, nous avions besoin d'un capteur de couleurs. La difficulté est que ce capteur n'a qu'une très courte portée, c'est pourquoi nous avons du le placer dans un endroit ou il serait immobile, le plus proche du centre de l'avant du robot et le plus proche du sol possible. De cette façon, la détection est bonne continue, et permet une bonne correction de trajectoire. Cependant, le robot n'était pas conçu pour avoir un capteur à cet endroit, nous l'avons donc décentré un peu. Mais après quelques test, la position que nous avons choisi, nous a permis d'obtenir une trajectoire correcte. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le capteur RFID a été beaucoup plus simple à installer, car il a une plus grande portée (3cm). Nous l'avons donc placé juste à coté du capteur de couleur. Cet emplacement, permet une bonne détection des cartes RFID,et le robot distingue facilement la position des objets à transporter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Robot final==&lt;br /&gt;
&lt;br /&gt;
Voici l'allure de notre robot totalement assemblé, on peut voir les capteurs, la pince, mais surtout le fil qui relie la poulie et la pince.&lt;br /&gt;
[[Image:final.jpg|thumb|upright=1.25|alt=final|center|Robot totalement assemblé]]&lt;br /&gt;
&lt;br /&gt;
=La programmation=&lt;br /&gt;
&lt;br /&gt;
[[Image:arbre1.jpg|thumb|alt=modelepince|left|Modèle de la pince, avec un bras mobile fixé sur le servomoteur et une barre fixe]]&lt;br /&gt;
Nous avons choisi de programmer en langage NXC (Not eXactly C) que nous avons compilé avec l'IDE BricxCC (Bricx Command Center).&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé de faire suivre au robot un ensemble d'action dans un ordre précis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La première partie consiste à initialiser les deux capteurs de couleurs et RFID.&lt;br /&gt;
&lt;br /&gt;
==Les recherches de base==&lt;br /&gt;
&lt;br /&gt;
Durant ces phases, le robot suit les lignes de couleurs vertes.&lt;br /&gt;
Dès qu'il détecte une ligne rouge, il essaye de lire la carte RFID présente sur le sol pour savoir s'il faut déposer ou prendre un colis.&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;br /&gt;
==La recherche de ligne==&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, nous avons créer un programme permettant de retrouver une ligne de couleur suivant le raisonnement suivant :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INITIALISER timer A 0 ms&lt;br /&gt;
INITIALISER ligne_trouvee A faux&lt;br /&gt;
TANT QUE ligne_trouvee DIFFERENT DE vrai FAIRE&lt;br /&gt;
   SI detecteur_de_couleur = couleur_ligne&lt;br /&gt;
      ligne_trouvee = vrai&lt;br /&gt;
   FIN SI&lt;br /&gt;
   SI timer &amp;lt; 2500 ms&lt;br /&gt;
      ROBOT tourne a GAUCHE&lt;br /&gt;
   ET SI  timer &amp;lt; 6000 ms&lt;br /&gt;
      ROBOT tourne a DROITE&lt;br /&gt;
   SINON&lt;br /&gt;
      timer = 0 ms&lt;br /&gt;
   FIN SI&lt;br /&gt;
INCREMENTER timer DE 1 ms&lt;br /&gt;
FIN TANT QUE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette solution nous a permis de faire fonctionner le robot avec toutes les autres parties du programme. Cependant, il était plutôt long pour trouver les lignes de couleurs sur sa droite.&lt;br /&gt;
&lt;br /&gt;
Cette problématique nous a amenés à écrire un deuxième algorithme permettant de retrouver une ligne plus rapidement, quelque soit le côté où elle se trouve par rapport au robot.&lt;br /&gt;
&lt;br /&gt;
=L'intégration des fonctionnalité=&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé à intégrer les fonctionnalité supplémentaire lors de la séance du 7/03. Le robot doit : &lt;br /&gt;
*être contrôlable à distance avec une webcam par l’intermédiaire du site internet de la Foxboard&lt;br /&gt;
*pouvoir lire des RFID pour se situer sur le circuit&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Contrôle à distance==&lt;/div&gt;</summary>
		<author><name>Dsaunder</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1495</id>
		<title>Robot transporteur</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1495"/>
				<updated>2013-03-04T07:50:27Z</updated>
		
		<summary type="html">&lt;p&gt;Dsaunder : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''/* des coquilles / fautes à corriger =&amp;gt; revoir l'utilisation de l'infinitif / participe */''&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
Nous allons vous présentez notre projet pour le bureau d'étude IMA 2012/2013. Nous sommes tous les deux très intéressé par ce département, et ce petit robot nous a passionné dans sa conception et sa programmation. Nous avons choisi de mélanger les différents style de robot à concevoir, pour proposer une idée personnelle de projet. Notre objectif est de créer un robot autonome qui transporte des objets. Cela passe par deux grandes étapes : la conception d'un système à 4 servomoteurs et la programmations des tâches réalisées en autonomie.&lt;br /&gt;
&lt;br /&gt;
=La Conception=&lt;br /&gt;
&lt;br /&gt;
Le robot est composé deux éléments essentiels : une base motrice et une pince de levage. Il comporte aussi deux capteurs pour le rendre autonome.&lt;br /&gt;
&lt;br /&gt;
==La base motrice==&lt;br /&gt;
&lt;br /&gt;
[[Image:receptacle.jpg|thumb|upright=0.75|alt=receptacle|right|Réceptacle pour boîtes NXT et Foxboard]]&lt;br /&gt;
La base est composée de deux servomoteurs qui sont reliés entre eux pour former un socle solide. En effet, ce socle doit être capable de supporter le poids de deux boites NXT, ainsi que celui de la pince et de l'objet transporté. Les servomoteurs entraînent la rotation de 4 roues sur lesquelles sont fixées des chenilles pour lui permettre d'avancer. La première boite NXT est directement fixée sur les servomoteurs, puis derrière, nous avons mis en place un réceptacle capable de contenir une deuxième boite NXT ou une Foxboard (nous ne savions pas encore comment guider le robot). La structure devait être solide, car on devait encore ajouter la pince de levage sur le dessus. Voici quelques illustration de la construction.&lt;br /&gt;
&lt;br /&gt;
[[Image:Basemoteur.jpg|thumb|alt=basemoteur|center|Base motrice à chenille, composée de deux servomoteur]] &lt;br /&gt;
&lt;br /&gt;
==La pince de levage==&lt;br /&gt;
&lt;br /&gt;
La pince de levage a été l'objet de toute la première séance, c'était l'élément le plus compliqué à assembler. Nous avons été confronté à plusieurs contraintes : le poids des objets transporté, la résistance du système de levage, et l'adaptation de la forme de la pince.&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord crée une pince composée de deux servomoteurs pour le serrage et un autre pour le levage de la pince, mais ce système était trop lourd et peu pratique à solidariser avec le reste du robot. Nous avons donc évolué vers un système plus léger composé de seulement 2 servomoteurs. Dans ce nouveau système, un servomoteurs était dédié à serrer la pince et l'autre à la soulever par un mouvement de rotation. Le problème est que la pince était encore lourde et compliquée à fixer, car tout était accroché à l'avant du véhicule, il y a donc eu un problème de répartition de poids.Inutile de préciser qu'en ajoutant en plus un objet dans la pince, le robot se serait effondré.Nous avons alors pensé à mettre en place une poulie, ce qui a permis de surpasser tout ces obstacles. &lt;br /&gt;
&lt;br /&gt;
[[Image:modelepince.jpg|thumb|alt=modelepince|left|Modèle de la pince, avec un bras mobile fixé sur le servomoteur et une barre fixe]]&lt;br /&gt;
La pince est donc composée de deux parties : &lt;br /&gt;
*Un servomoteur fixé sur le dessus du robot, pour répartir le poids et assurer une fixation solide. Sur ce moteur, nous avons fixer de petits embouts, ainsi que l’extrémité d'un fil. De cette manière quand le moteur tourne, le fil s'enroule autour de ceux-ci. C'est donc la poulie. &lt;br /&gt;
*Un servomoteur relié à l'avant du véhicule par une liaison pivot. Il peut donc se déplacer de haut en bas sans problème. Ce moteur permet de serrer la pince par une rotation d'une des deux branches qui la compose. Vous voyez, à gauche, que la pince est constituée d'une barre fixe sur laquelle s'appuie l'objet quand la pince est en position fermée, et d'une partie partie mobile , liée au moteur (en arc de cercle pour favoriser la prise des objets à transporter) qui change de position pour ouvrir et fermer la pince. L'autre extrémité du fil, provenant de la poulie, est fixée sur la barre fixe. &lt;br /&gt;
&lt;br /&gt;
Nous avons donc une pince qui se ferme pour saisir un objet, puis qui se soulève et redescend grâce à une poulie, pour enfin se rouvrir et déposer l'objet.&lt;br /&gt;
&lt;br /&gt;
''/* attention à ne pas confondre &amp;quot;er&amp;quot; et &amp;quot;é&amp;quot; .. */''&lt;br /&gt;
&lt;br /&gt;
==Les capteurs==&lt;br /&gt;
&lt;br /&gt;
Le robot est doté de deux capteur : un capteur de couleur pour suivre une ligne, et un capteur RFID qui lui sert à détecter les bases sur lesquelles il doit effectuer une action.&lt;br /&gt;
&lt;br /&gt;
Nous avions d'abord pensé à installer un capteur de pression sur la pince pour vérifier si l'objet était bien serrer dans la pince. Mais celui-ci s'est avéré inutile après programmation, car le  programme permet de serrer l'objet autant qu'il faut pour que l'objet soit correctement maintenu. La détection de pression n'était donc pas nécessaire.&lt;br /&gt;
&lt;br /&gt;
[[Image:capteur.jpg|thumb|upright=1.25|alt=capteur|right|Emplacement des capteurs sur le robot]]&lt;br /&gt;
En revanche,comme nous voulions faire un robot guider par des lignes de scotch noires au sol, nous avions besoin d'un capteur de couleurs. La difficulté est que ce capteur n'a qu'une très courte portée, c'est pourquoi nous avons du le placer dans un endroit ou il serait immobile, le plus proche du centre de l'avant du robot et le plus proche du sol possible. De cette façon, la détection est bonne continue, et permet une bonne correction de trajectoire. Cependant, le robot n'était pas conçu pour avoir un capteur à cet endroit, nous l'avons donc décentré un peu. Mais après quelques test, la position que nous avons choisi, nous a permis d'obtenir une trajectoire correcte. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le capteur RFID a été beaucoup plus simple à installer, car il a une plus grande portée (3cm). Nous l'avons donc placé juste à coté du capteur de couleur. Cet emplacement, permet une bonne détection des cartes RFID,et le robot distingue facilement la position des objets à transporter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Robot final==&lt;br /&gt;
&lt;br /&gt;
Voici l'allure de notre robot totalement assemblé, on peut voir les capteurs, la pince, mais surtout le fil qui relie la poulie et la pince.&lt;br /&gt;
[[Image:final.jpg|thumb|upright=1.25|alt=final|center|Robot totalement assemblé]]&lt;br /&gt;
&lt;br /&gt;
=La programmation=&lt;br /&gt;
&lt;br /&gt;
[[Image:arbre1.jpg|thumb|alt=modelepince|left|Modèle de la pince, avec un bras mobile fixé sur le servomoteur et une barre fixe]]&lt;br /&gt;
Nous avons choisi de programmer en langage NXC (Not eXactly C) que nous avons compilé avec l'IDE BricxCC (Bricx Command Center).&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé de faire suivre au robot un ensemble d'action dans un ordre précis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La première partie consiste à initialiser les deux capteurs de couleurs et RFID.&lt;/div&gt;</summary>
		<author><name>Dsaunder</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1350</id>
		<title>Robot transporteur</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1350"/>
				<updated>2013-02-26T20:25:46Z</updated>
		
		<summary type="html">&lt;p&gt;Dsaunder : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&lt;br /&gt;
Nous allons vous présentez notre projet pour le bureau d'étude IMA 2012/2013. Nous sommes tous les deux très intéressé par ce département, et ce petit robot nous a passionné dans sa conception et sa programmation. Nous avons choisi de mélanger les différents style de robot à concevoir, pour proposer une idée personnelle de projet. Notre objectif est de créer un robot autonome qui transporte des objets. Cela passe par deux grandes étapes : la conception d'un système à 4 servomoteurs et la programmations des tâches réalisées en autonomie.&lt;br /&gt;
&lt;br /&gt;
=La Conception=&lt;br /&gt;
&lt;br /&gt;
Le robot est composé deux éléments essentiels : une base motrice et une pince de levage. Il comporte aussi deux capteurs pour le rendre autonome.&lt;br /&gt;
&lt;br /&gt;
==La base motrice==&lt;br /&gt;
&lt;br /&gt;
[[Image:receptacle.jpg|thumb|upright=0.75|alt=receptacle|right|Réceptacle pour boîtes NXT et Foxboard]]&lt;br /&gt;
La base est composé de deux servomoteurs qui sont reliés entre eux pour formé un socle solide. En effet, ce socle doit être capable de supporter le poids de deux boites NXT, ainsi que celui de la pince et de l'objet transporté. Les servomoteur entraînent la rotation de 4 roues sur lesquelles sont fixées des chenilles pour lui permettre d'avancer. La première boite NXT est directement fixée sur les servomoteurs, puis derrière, nous avons mis en place un réceptacle capable de contenir une deuxième boite NXT ou une Foxboard (nous ne savions pas encore comment guider le robot) La structure devait être solide, car on devait encore ajouter la pince de levage sur le dessus. Voici quelques illustration de la construction.&lt;br /&gt;
&lt;br /&gt;
[[Image:Basemoteur.jpg|thumb|alt=basemoteur|center|Base motrice à chenille, composée de deux servomoteur]] &lt;br /&gt;
&lt;br /&gt;
==La pince de levage==&lt;br /&gt;
&lt;br /&gt;
La pince de levage a été l'objet de toute la première séance, et aussi l'élément le plus compliquer à assembler. Nous avons été confronté à plusieurs contraintes : le poids des objets transporté, la résistance du système de levage, et l'adaptation de la forme de la pince.&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord crée une pince composé de deux servomoteurs pour le serrage et un autre pour le levage de la pince, mais ce système était trop lourd et peu pratique à solidariser avec le reste du robot. Nous avons donc évoluer vers un système plus léger composer de seulement 2 servomoteurs. Dans ce nouveau système, un servomoteurs était dédié à serrer la pince et l'autre à la soulevée par un mouvement de rotation. Le problème est que la pince était encore lourde et très peu facile à fixer, car tout était accrocher à l'avant du véhicule, il y a donc eu un problème de répartition de poids.Inutile de préciser qu'en ajoutant en plus un objet dans la pince, le robot se serait effondré.Nous avons alors pensé à mettre en place une poulie, qui a permis de surpasser tout ces obstacles. &lt;br /&gt;
&lt;br /&gt;
[[Image:modelepince.jpg|thumb|alt=modelepince|left|Modèle de la pince, avec un bras mobile fixé sur le servomoteur et une barre fixe]]&lt;br /&gt;
La pince est donc composé de deux partie : &lt;br /&gt;
*Un servomoteur fixé sur le dessus du robot, pour répartir le poids et assurer une fixation solide. Sur ce moteur, nous avons fixer de petits embouts, ainsi que l’extrémité d'un fil. De cette manière quand le moteur tourne, le fil s'enroule autour d'eux. C'est donc la poulie. &lt;br /&gt;
*Un servomoteur relié à l'avant du véhicule par une liaison pivot. Il peut donc se déplacer de haut en bas sans problème. Ce moteur permet de serrer la pince par une rotation d'une des deux branches qui la compose. Vous verrez ci-dessous que la pince est constituée d'une barre fixe sur laquelle s'appuie l'objet quand la pince est en position fermée, et d'une partie partie mobile , liée au moteur (en arc de cercle pour favoriser la prise des objets à transporté) qui change de position pour ouvrir et fermer la pince. L'autre extrémité du fil, provenant de la poulie, est fixé sur la barre fixe. &lt;br /&gt;
&lt;br /&gt;
Nous avons donc une pince qui se ferme pour saisir un objet, puis qui se soulève et redescend grâce à une poulie, pour enfin se rouvrir et déposer l'objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Les capteurs==&lt;br /&gt;
&lt;br /&gt;
Le robot est doté de deux capteur : un capteur de couleur pour suivre une ligne, et un capteur RFID qui lui sert à détecté les bases sur lesquelles il doit effectuer une action.&lt;br /&gt;
&lt;br /&gt;
Nous avions d'abord penser à installer un capteur de pression sur la pince pour vérifier si l'objet était bien serrer dans la pince. Mais celui-ci s'est avéré inutile après programmation, car le  programme permet de serrer l'objet autant qu'il faut pour que l'objet soit correctement maintenu. La détection de pression n'était donc pas nécessaire.&lt;br /&gt;
&lt;br /&gt;
[[Image:capteur.jpg|thumb|upright=1.25|alt=capteur|right|Emplacement des capteurs sur le robot]]&lt;br /&gt;
En revanche,comme nous voulions faire un robot guider par des lignes de scotch noires au sol, nous avions besoin d'un capteur de couleurs. La difficulté est que ce capteur n'a qu'une très courte portée, c'est pourquoi nous avons du le placer dans un endroit ou il serait immobile, le plus proche du centre de l'avant du robot et le plus proche du sol possible. De cette façon, la détection est bonne continue, et permet une bonne correction de trajectoire. Cependant, le robot n'était pas conçu pour avoir un capteur à cet endroit, nous l'avons donc décentré un peu. Mais après quelques test, la position que nous avons choisi, nous a permis d'obtenir une trajectoire correcte. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le capteur RFID a été beaucoup plus simple à installé, car il a une plus grande portée (3cm). Nous l'avons donc placé juste à coté du capteur de couleur. Cet emplacement, permet une bonne détection des cartes RFID,et le robot distingue facilement la position des objets a transporter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Robot final==&lt;br /&gt;
&lt;br /&gt;
Voici l'allure de notre robot totalement assemblé, on peut voir les capteurs, la pince, mais surtout le fil qui relie la poulie et la pince.&lt;br /&gt;
[[Image:final.jpg|thumb|upright=1.25|alt=final|center|Robot totalement assemblé]]&lt;br /&gt;
&lt;br /&gt;
=La programmation=&lt;br /&gt;
&lt;br /&gt;
Nous avons choisi de programmer en langage NXC (Not eXactly C) que nous avons compiler avec l'IDE BricxCC (Bricx Command Center).&lt;br /&gt;
&lt;br /&gt;
==Gestion de la pince==&lt;br /&gt;
&lt;br /&gt;
Le programme que nous avons conçu, se décompose en 4 partie :&lt;br /&gt;
* serrer la pince : cette fonction reçoit un ordre de la boîte maître qui lui dit de serrer la pince.&lt;br /&gt;
* lever la pince : la pince est remontée en effectuant une rotation de 3 tours environ de la poulie.&lt;br /&gt;
* baisser la pince : elle effectue l'inverse de la fonction pour lever la pince.&lt;br /&gt;
* ouvrir la pince : cette fonction ouvre la pince et indique au maître que l'objet a été déposé.&lt;br /&gt;
&lt;br /&gt;
Le problème majeur, a été d’enchaîner ses tâches de manières fluide. Ce problème était en partie du aux pertes de données Bluetooth. &lt;br /&gt;
&lt;br /&gt;
==Gestion des déplacements==&lt;br /&gt;
&lt;br /&gt;
==Gestion des connexions Bluetooth==&lt;br /&gt;
&lt;br /&gt;
Pour gérer les connexions Bluetooth, nous avons inclus une bibliothèque bluetooth dans notre programme. Cela nous a permis d'utiliser un certain nombre de fonctions prédéfinies pour faire communiquer nos boîtes NXT entre elles.&lt;/div&gt;</summary>
		<author><name>Dsaunder</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Final.jpg&amp;diff=1349</id>
		<title>Fichier:Final.jpg</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Final.jpg&amp;diff=1349"/>
				<updated>2013-02-26T20:22:23Z</updated>
		
		<summary type="html">&lt;p&gt;Dsaunder : Montage final du robot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Montage final du robot&lt;/div&gt;</summary>
		<author><name>Dsaunder</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1348</id>
		<title>Robot transporteur</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1348"/>
				<updated>2013-02-26T20:18:34Z</updated>
		
		<summary type="html">&lt;p&gt;Dsaunder : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&lt;br /&gt;
Nous allons vous présentez notre projet pour le bureau d'étude IMA 2012/2013. Nous sommes tous les deux très intéressé par ce département, et ce petit robot nous a passionné dans sa conception et sa programmation. Nous avons choisi de mélanger les différents style de robot à concevoir, pour proposer une idée personnelle de projet. Notre objectif est de créer un robot autonome qui transporte des objets. Cela passe par deux grandes étapes : la conception d'un système à 4 servomoteurs et la programmations des tâches réalisées en autonomie.&lt;br /&gt;
&lt;br /&gt;
=La Conception=&lt;br /&gt;
&lt;br /&gt;
Le robot est composé deux éléments essentiels : une base motrice et une pince de levage. Il comporte aussi deux capteurs pour le rendre autonome.&lt;br /&gt;
&lt;br /&gt;
==La base motrice==&lt;br /&gt;
&lt;br /&gt;
[[Image:receptacle.jpg|thumb|upright=0.75|alt=receptacle|right|Réceptacle pour boîtes NXT et Foxboard]]&lt;br /&gt;
La base est composé de deux servomoteurs qui sont reliés entre eux pour formé un socle solide. En effet, ce socle doit être capable de supporter le poids de deux boites NXT, ainsi que celui de la pince et de l'objet transporté. Les servomoteur entraînent la rotation de 4 roues sur lesquelles sont fixées des chenilles pour lui permettre d'avancer. La première boite NXT est directement fixée sur les servomoteurs, puis derrière, nous avons mis en place un réceptacle capable de contenir une deuxième boite NXT ou une Foxboard (nous ne savions pas encore comment guider le robot) La structure devait être solide, car on devait encore ajouter la pince de levage sur le dessus. Voici quelques illustration de la construction.&lt;br /&gt;
&lt;br /&gt;
[[Image:Basemoteur.jpg|thumb|alt=basemoteur|center|Base motrice à chenille, composée de deux servomoteur]] &lt;br /&gt;
&lt;br /&gt;
==La pince de levage==&lt;br /&gt;
&lt;br /&gt;
La pince de levage a été l'objet de toute la première séance, et aussi l'élément le plus compliquer à assembler. Nous avons été confronté à plusieurs contraintes : le poids des objets transporté, la résistance du système de levage, et l'adaptation de la forme de la pince.&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord crée une pince composé de deux servomoteurs pour le serrage et un autre pour le levage de la pince, mais ce système était trop lourd et peu pratique à solidariser avec le reste du robot. Nous avons donc évoluer vers un système plus léger composer de seulement 2 servomoteurs. Dans ce nouveau système, un servomoteurs était dédié à serrer la pince et l'autre à la soulevée par un mouvement de rotation. Le problème est que la pince était encore lourde et très peu facile à fixer, car tout était accrocher à l'avant du véhicule, il y a donc eu un problème de répartition de poids.Inutile de préciser qu'en ajoutant en plus un objet dans la pince, le robot se serait effondré.Nous avons alors pensé à mettre en place une poulie, qui a permis de surpasser tout ces obstacles. &lt;br /&gt;
&lt;br /&gt;
[[Image:modelepince.jpg|thumb|alt=modelepince|left|Modèle de la pince, avec un bras mobile fixé sur le servomoteur et une barre fixe]]&lt;br /&gt;
La pince est donc composé de deux partie : &lt;br /&gt;
*Un servomoteur fixé sur le dessus du robot, pour répartir le poids et assurer une fixation solide. Sur ce moteur, nous avons fixer de petits embouts, ainsi que l’extrémité d'un fil. De cette manière quand le moteur tourne, le fil s'enroule autour d'eux. C'est donc la poulie. &lt;br /&gt;
*Un servomoteur relié à l'avant du véhicule par une liaison pivot. Il peut donc se déplacer de haut en bas sans problème. Ce moteur permet de serrer la pince par une rotation d'une des deux branches qui la compose. Vous verrez ci-dessous que la pince est constituée d'une barre fixe sur laquelle s'appuie l'objet quand la pince est en position fermée, et d'une partie partie mobile , liée au moteur (en arc de cercle pour favoriser la prise des objets à transporté) qui change de position pour ouvrir et fermer la pince. L'autre extrémité du fil, provenant de la poulie, est fixé sur la barre fixe. &lt;br /&gt;
&lt;br /&gt;
Nous avons donc une pince qui se ferme pour saisir un objet, puis qui se soulève et redescend grâce à une poulie, pour enfin se rouvrir et déposer l'objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Les capteurs==&lt;br /&gt;
&lt;br /&gt;
Le robot est doté de deux capteur : un capteur de couleur pour suivre une ligne, et un capteur RFID qui lui sert à détecté les bases sur lesquelles il doit effectuer une action.&lt;br /&gt;
&lt;br /&gt;
Nous avions d'abord penser à installer un capteur de pression sur la pince pour vérifier si l'objet était bien serrer dans la pince. Mais celui-ci s'est avéré inutile après programmation, car le  programme permet de serrer l'objet autant qu'il faut pour que l'objet soit correctement maintenu. La détection de pression n'était donc pas nécessaire.&lt;br /&gt;
&lt;br /&gt;
[[Image:capteur.jpg|thumb|upright=1.25|alt=capteur|right|Emplacement des capteurs sur le robot]]&lt;br /&gt;
En revanche,comme nous voulions faire un robot guider par des lignes de scotch noires au sol, nous avions besoin d'un capteur de couleurs. La difficulté est que ce capteur n'a qu'une très courte portée, c'est pourquoi nous avons du le placer dans un endroit ou il serait immobile, le plus proche du centre de l'avant du robot et le plus proche du sol possible. De cette façon, la détection est bonne continue, et permet une bonne correction de trajectoire. Cependant, le robot n'était pas conçu pour avoir un capteur à cet endroit, nous l'avons donc décentré un peu. Mais après quelques test, la position que nous avons choisi, nous a permis d'obtenir une trajectoire correcte. &lt;br /&gt;
&lt;br /&gt;
Le capteur RFID a été beaucoup plus simple à installé, car il a une plus grande portée (3cm). Nous l'avons donc placé juste à coté du capteur de couleur. Cet emplacement, permet une bonne détection des cartes RFID,et le robot distingue facilement la position des objets a transporter.&lt;br /&gt;
&lt;br /&gt;
=La programmation=&lt;br /&gt;
&lt;br /&gt;
Nous avons choisi de programmer en langage NXC (Not eXactly C) que nous avons compiler avec l'IDE BricxCC (Bricx Command Center).&lt;br /&gt;
&lt;br /&gt;
==Gestion de la pince==&lt;br /&gt;
&lt;br /&gt;
Le programme que nous avons conçu, se décompose en 4 partie :&lt;br /&gt;
* serrer la pince : cette fonction reçoit un ordre de la boîte maître qui lui dit de serrer la pince.&lt;br /&gt;
* lever la pince : la pince est remontée en effectuant une rotation de 3 tours environ de la poulie.&lt;br /&gt;
* baisser la pince : elle effectue l'inverse de la fonction pour lever la pince.&lt;br /&gt;
* ouvrir la pince : cette fonction ouvre la pince et indique au maître que l'objet a été déposé.&lt;br /&gt;
&lt;br /&gt;
Le problème majeur, a été d’enchaîner ses tâches de manières fluide. Ce problème était en partie du aux pertes de données Bluetooth. &lt;br /&gt;
&lt;br /&gt;
==Gestion des déplacements==&lt;br /&gt;
&lt;br /&gt;
==Gestion des connexions Bluetooth==&lt;br /&gt;
&lt;br /&gt;
Pour gérer les connexions Bluetooth, nous avons inclus une bibliothèque bluetooth dans notre programme. Cela nous a permis d'utiliser un certain nombre de fonctions prédéfinies pour faire communiquer nos boîtes NXT entre elles.&lt;/div&gt;</summary>
		<author><name>Dsaunder</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Capteur.jpg&amp;diff=1347</id>
		<title>Fichier:Capteur.jpg</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Capteur.jpg&amp;diff=1347"/>
				<updated>2013-02-26T20:15:58Z</updated>
		
		<summary type="html">&lt;p&gt;Dsaunder : photo capteurs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;photo capteurs&lt;/div&gt;</summary>
		<author><name>Dsaunder</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1346</id>
		<title>Robot transporteur</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1346"/>
				<updated>2013-02-26T19:59:18Z</updated>
		
		<summary type="html">&lt;p&gt;Dsaunder : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&lt;br /&gt;
Nous allons vous présentez notre projet pour le bureau d'étude IMA 2012/2013. Nous sommes tous les deux très intéressé par ce département, et ce petit robot nous a passionné dans sa conception et sa programmation. Nous avons choisi de mélanger les différents style de robot à concevoir, pour proposer une idée personnelle de projet. Notre objectif est de créer un robot autonome qui transporte des objets. Cela passe par deux grandes étapes : la conception d'un système à 4 servomoteurs et la programmations des tâches réalisées en autonomie.&lt;br /&gt;
&lt;br /&gt;
=La Conception=&lt;br /&gt;
&lt;br /&gt;
Le robot est composé deux éléments essentiels : une base motrice et une pince de levage. Il comporte aussi deux capteurs pour le rendre autonome.&lt;br /&gt;
&lt;br /&gt;
==La base motrice==&lt;br /&gt;
&lt;br /&gt;
[[Image:receptacle.jpg|thumb|upright=0.75|alt=receptacle|right|Réceptacle pour boîtes NXT et Foxboard]]&lt;br /&gt;
La base est composé de deux servomoteurs qui sont reliés entre eux pour formé un socle solide. En effet, ce socle doit être capable de supporter le poids de deux boites NXT, ainsi que celui de la pince et de l'objet transporté. Les servomoteur entraînent la rotation de 4 roues sur lesquelles sont fixées des chenilles pour lui permettre d'avancer. La première boite NXT est directement fixée sur les servomoteurs, puis derrière, nous avons mis en place un réceptacle capable de contenir une deuxième boite NXT ou une Foxboard (nous ne savions pas encore comment guider le robot) La structure devait être solide, car on devait encore ajouter la pince de levage sur le dessus. Voici quelques illustration de la construction.&lt;br /&gt;
&lt;br /&gt;
[[Image:Basemoteur.jpg|thumb|alt=basemoteur|center|Base motrice à chenille, composée de deux servomoteur]] &lt;br /&gt;
&lt;br /&gt;
==La pince de levage==&lt;br /&gt;
&lt;br /&gt;
La pince de levage a été l'objet de toute la première séance, et aussi l'élément le plus compliquer à assembler. Nous avons été confronté à plusieurs contraintes : le poids des objets transporté, la résistance du système de levage, et l'adaptation de la forme de la pince.&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord crée une pince composé de deux servomoteurs pour le serrage et un autre pour le levage de la pince, mais ce système était trop lourd et peu pratique à solidariser avec le reste du robot. Nous avons donc évoluer vers un système plus léger composer de seulement 2 servomoteurs. Dans ce nouveau système, un servomoteurs était dédié à serrer la pince et l'autre à la soulevée par un mouvement de rotation. Le problème est que la pince était encore lourde et très peu facile à fixer, car tout était accrocher à l'avant du véhicule, il y a donc eu un problème de répartition de poids.Inutile de préciser qu'en ajoutant en plus un objet dans la pince, le robot se serait effondré.Nous avons alors pensé à mettre en place une poulie, qui a permis de surpasser tout ces obstacles. &lt;br /&gt;
&lt;br /&gt;
[[Image:modelepince.jpg|thumb|alt=modelepince|left|Modèle de la pince, avec un bras mobile fixé sur le servomoteur et une barre fixe]]&lt;br /&gt;
La pince est donc composé de deux partie : &lt;br /&gt;
*Un servomoteur fixé sur le dessus du robot, pour répartir le poids et assurer une fixation solide. Sur ce moteur, nous avons fixer de petits embouts, ainsi que l’extrémité d'un fil. De cette manière quand le moteur tourne, le fil s'enroule autour d'eux. C'est donc la poulie. &lt;br /&gt;
*Un servomoteur relié à l'avant du véhicule par une liaison pivot. Il peut donc se déplacer de haut en bas sans problème. Ce moteur permet de serrer la pince par une rotation d'une des deux branches qui la compose. Vous verrez ci-dessous que la pince est constituée d'une barre fixe sur laquelle s'appuie l'objet quand la pince est en position fermée, et d'une partie partie mobile , liée au moteur (en arc de cercle pour favoriser la prise des objets à transporté) qui change de position pour ouvrir et fermer la pince. L'autre extrémité du fil, provenant de la poulie, est fixé sur la barre fixe. &lt;br /&gt;
&lt;br /&gt;
Nous avons donc une pince qui se ferme pour saisir un objet, puis qui se soulève et redescend grâce à une poulie, pour enfin se rouvrir et déposer l'objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Les capteurs==&lt;br /&gt;
&lt;br /&gt;
Le robot est doté de deux capteur : un capteur de couleur pour suivre une ligne, et un capteur RFID qui lui sert à détecté les bases sur lesquelles il doit effectuer une action.&lt;br /&gt;
&lt;br /&gt;
Nous avions d'abord penser à installer un capteur de pression sur la pince pour vérifier si l'objet était bien serrer dans la pince. Mais celui-ci s'est avéré inutile après programmation, car le  programme permet de serrer l'objet autant qu'il faut pour que l'objet soit correctement maintenu. La détection de pression n'était donc pas nécessaire.&lt;br /&gt;
&lt;br /&gt;
En revanche,comme nous voulions faire un robot guider par des lignes de scotch noires au sol, nous avions besoin d'un capteur de couleurs. La difficulté est que ce capteur n'a qu'une très courte portée, c'est pourquoi nous avons du le placer dans un endroit ou il serait immobile, le plus proche du centre de l'avant du robot et le plus proche du sol possible. De cette façon, la détection est bonne continue, et permet une bonne correction de trajectoire. Cependant, le robot n'était pas conçu pour avoir un capteur à cet endroit, nous l'avons donc décentré un peu. Mais après quelques test, la position que nous avons choisi, nous a permis d'obtenir une trajectoire correcte. &lt;br /&gt;
&lt;br /&gt;
Le capteur RFID a été beaucoup plus simple à installé, car il a une plus grande portée (3cm). Nous l'avons donc placé juste à coté du capteur de couleur. Cet emplacement, permet une bonne détection des cartes RFID,et le robot distingue facilement la position des objets a transporter.&lt;br /&gt;
&lt;br /&gt;
=La programmation=&lt;br /&gt;
&lt;br /&gt;
Nous avons choisi de programmer en langage NXC (Not eXactly C) que nous avons compiler avec l'IDE BricxCC (Bricx Command Center).&lt;br /&gt;
&lt;br /&gt;
==Gestion de la pince==&lt;br /&gt;
&lt;br /&gt;
Le programme que nous avons conçu, se décompose en 4 partie :&lt;br /&gt;
* serrer la pince : cette fonction reçoit un ordre de la boîte maître qui lui dit de serrer la pince.&lt;br /&gt;
* lever la pince : la pince est remontée en effectuant une rotation de 3 tours environ de la poulie.&lt;br /&gt;
* baisser la pince : elle effectue l'inverse de la fonction pour lever la pince.&lt;br /&gt;
* ouvrir la pince : cette fonction ouvre la pince et indique au maître que l'objet a été déposé.&lt;br /&gt;
&lt;br /&gt;
Le problème majeur, a été d’enchaîner ses tâches de manières fluide. Ce problème était en partie du aux pertes de données Bluetooth. &lt;br /&gt;
&lt;br /&gt;
==Gestion des déplacements==&lt;br /&gt;
&lt;br /&gt;
==Gestion des connexions Bluetooth==&lt;br /&gt;
&lt;br /&gt;
Pour gérer les connexions Bluetooth, nous avons inclus une bibliothèque bluetooth dans notre programme. Cela nous a permis d'utiliser un certain nombre de fonctions prédéfinies pour faire communiquer nos boîtes NXT entre elles.&lt;/div&gt;</summary>
		<author><name>Dsaunder</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1258</id>
		<title>Robot transporteur</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1258"/>
				<updated>2013-02-20T10:52:23Z</updated>
		
		<summary type="html">&lt;p&gt;Dsaunder : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&lt;br /&gt;
Nous allons vous présentez notre projet pour le bureau d'étude IMA 2012/2013. Nous sommes tous les deux très intéressé par ce département, et ce petit robot nous a passionné dans sa conception et sa programmation. Nous avons choisi de mélanger les différents style de robot à concevoir, pour proposer une idée personnelle de projet. Notre objectif est de créer un robot autonome qui transporte des objets. Cela passe par deux grandes étapes : la conception d'un système à 4 servomoteurs et la programmations des tâches réalisées en autonomie.&lt;br /&gt;
&lt;br /&gt;
=La Conception=&lt;br /&gt;
&lt;br /&gt;
Le robot est composé deux éléments essentiels : une base motrice et une pince de levage. Il comporte aussi deux capteurs pour le rendre autonome.&lt;br /&gt;
&lt;br /&gt;
==La base motrice==&lt;br /&gt;
&lt;br /&gt;
[[Image:receptacle.jpg|thumb|upright=0.75|alt=receptacle|right|Réceptacle pour boîtes NXT et Foxboard]]&lt;br /&gt;
La base est composé de deux servomoteurs qui sont reliés entre eux pour formé un socle solide. En effet, ce socle doit être capable de supporter le poids de deux boites NXT, ainsi que celui de la pince et de l'objet transporté. Les servomoteur entraînent la rotation de 4 roues sur lesquelles sont fixées des chenilles pour lui permettre d'avancer. La première boite NXT est directement fixée sur les servomoteurs, puis derrière, nous avons mis en place un réceptacle capable de contenir une deuxième boite NXT ou une Foxboard (nous ne savions pas encore comment guider le robot) La structure devait être solide, car on devait encore ajouter la pince de levage sur le dessus. Voici quelques illustration de la construction.&lt;br /&gt;
&lt;br /&gt;
[[Image:Basemoteur.jpg|thumb|alt=basemoteur|center|Base motrice à chenille, composée de deux servomoteur]] &lt;br /&gt;
&lt;br /&gt;
==La pince de levage==&lt;br /&gt;
&lt;br /&gt;
La pince de levage a été l'objet de toute la première séance, et aussi l'élément le plus compliquer à assembler. Nous avons été confronté à plusieurs contraintes : le poids des objets transporté, la résistance du système de levage, et l'adaptation de la forme de la pince.&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord crée une pince composé de deux servomoteurs pour le serrage et un autre pour le levage de la pince, mais ce système était trop lourd et peu pratique à solidariser avec le reste du robot. Nous avons donc évoluer vers un système plus léger composer de seulement 2 servomoteurs. Dans ce nouveau système, un servomoteurs était dédié à serrer la pince et l'autre à la soulevée par un mouvement de rotation. Le problème est que la pince était encore lourde et très peu facile à fixer, car tout était accrocher à l'avant du véhicule, il y a donc eu un problème de répartition de poids.Inutile de préciser qu'en ajoutant en plus un objet dans la pince, le robot se serait effondré.Nous avons alors pensé à mettre en place une poulie, qui a permis de surpasser tout ces obstacles. &lt;br /&gt;
&lt;br /&gt;
[[Image:modelepince.jpg|thumb|alt=modelepince|left|Modèle de la pince, avec un bras mobile fixé sur le servomoteur et une barre fixe]]&lt;br /&gt;
La pince est donc composé de deux partie : &lt;br /&gt;
*Un servomoteur fixé sur le dessus du robot, pour répartir le poids et assurer une fixation solide. Sur ce moteur, nous avons fixer de petits embouts, ainsi que l’extrémité d'un fil. De cette manière quand le moteur tourne, le fil s'enroule autour d'eux. C'est donc la poulie. &lt;br /&gt;
*Un servomoteur relié à l'avant du véhicule par une liaison pivot. Il peut donc se déplacer de haut en bas sans problème. Ce moteur permet de serrer la pince par une rotation d'une des deux branches qui la compose. Vous verrez ci-dessous que la pince est constituée d'une barre fixe sur laquelle s'appuie l'objet quand la pince est en position fermée, et d'une partie partie mobile , liée au moteur (en arc de cercle pour favoriser la prise des objets à transporté) qui change de position pour ouvrir et fermer la pince. L'autre extrémité du fil, provenant de la poulie, est fixé sur la barre fixe. &lt;br /&gt;
&lt;br /&gt;
Nous avons donc une pince qui se ferme pour saisir un objet, puis qui se soulève et redescend grâce à une poulie, pour enfin se rouvrir et déposer l'objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Les capteurs==&lt;br /&gt;
&lt;br /&gt;
Le robot est doté de deux capteur : un capteur de couleur pour suivre une ligne, et un capteur RFID qui lui sert à détecté les bases sur lesquelles il doit effectuer une action.&lt;br /&gt;
&lt;br /&gt;
Nous avions d'abord penser à installer un capteur de pression sur la pince pour vérifier si l'objet était bien serrer dans la pince. Mais celui-ci s'est avéré inutile après programmation, car le  programme permet de serrer l'objet autant qu'il faut pour que l'objet soit correctement maintenu. La détection de pression n'était donc pas nécessaire.&lt;br /&gt;
&lt;br /&gt;
En revanche,comme nous voulions faire un robot guider par des lignes de scotch noires au sol, nous avions besoin d'un capteur de couleurs. La difficulté est que ce capteur n'a qu'une très courte portée, c'est pourquoi nous avons du le placer dans un endroit ou il serait immobile, le plus proche du centre de l'avant du robot et le plus proche du sol possible. De cette façon, la détection est bonne continue, et permet une bonne correction de trajectoire. Cependant, le robot n'était pas conçu pour avoir un capteur à cet endroit, nous l'avons donc décentré un peu. Mais après quelques test, la position que nous avons choisi, nous a permis d'obtenir une trajectoire correcte. &lt;br /&gt;
&lt;br /&gt;
Le capteur RFID a été beaucoup plus simple à installé, car il a une plus grande portée (3cm). Nous l'avons donc placée au même niveau que le capteur de couleur, et de façon symétrique. Cet emplacement, permet une bonne détection des cartes RFID,et le robot distingue facilement la position des objets a transporter.&lt;br /&gt;
&lt;br /&gt;
=La programmation=&lt;br /&gt;
&lt;br /&gt;
Nous avons choisi de programmer en langage NXC (Not eXactly C) que nous avons compiler avec l'IDE BricxCC (Bricx Command Center).&lt;br /&gt;
&lt;br /&gt;
==Gestion de la pince==&lt;br /&gt;
&lt;br /&gt;
Le programme que nous avons conçu, se décompose en 4 partie :&lt;br /&gt;
* serrer la pince : cette fonction ...&lt;br /&gt;
* lever la pince : ...&lt;br /&gt;
* baisser la pince : ...&lt;br /&gt;
* ouvrir la pince : ...&lt;br /&gt;
&lt;br /&gt;
Le problème majeur, a été d’enchaîner ses tâches de manières fluide. Ce problème était en partie du aux pertes de données Bluetooth. &lt;br /&gt;
&lt;br /&gt;
==Gestion des déplacements==&lt;br /&gt;
&lt;br /&gt;
==Gestion des connexions Bluetooth==&lt;br /&gt;
&lt;br /&gt;
Pour gérer les connexions Bluetooth, nous avons inclus une bibliothèque bluetooth dans notre programme. Cela nous a permis d'utiliser un certain nombre de fonctions prédéfinies pour faire communiquer nos boîtes NXT entre elles.&lt;/div&gt;</summary>
		<author><name>Dsaunder</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1257</id>
		<title>Robot transporteur</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1257"/>
				<updated>2013-02-20T10:44:04Z</updated>
		
		<summary type="html">&lt;p&gt;Dsaunder : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&lt;br /&gt;
Nous allons vous présentez notre projet pour le bureau d'étude IMA 2012/2013. Nous sommes tous les deux très intéressé par ce département, et ce petit robot nous a passionné dans sa conception et sa programmation. Nous avons choisi de mélanger les différents style de robot à concevoir, pour proposer une idée personnelle de projet. Notre objectif est de créer un robot autonome qui transporte des objets. Cela passe par deux grandes étapes : la conception d'un système à 4 servomoteurs et la programmations des tâches réalisées en autonomie.&lt;br /&gt;
&lt;br /&gt;
=La Conception=&lt;br /&gt;
&lt;br /&gt;
Le robot est composé deux éléments essentiels : une base motrice et une pince de levage. Il comporte aussi deux capteurs pour le rendre autonome.&lt;br /&gt;
&lt;br /&gt;
==La base motrice==&lt;br /&gt;
&lt;br /&gt;
[[Image:receptacle.jpg|thumb|upright=0.75|alt=receptacle|right|Réceptacle pour boîtes NXT et Foxboard]]&lt;br /&gt;
La base est composé de deux servomoteurs qui sont reliés entre eux pour formé un socle solide. En effet, ce socle doit être capable de supporter le poids de deux boites NXT, ainsi que celui de la pince et de l'objet transporté. Les servomoteur entraînent la rotation de 4 roues sur lesquelles sont fixées des chenilles pour lui permettre d'avancer. La première boite NXT est directement fixée sur les servomoteurs, puis derrière, nous avons mis en place un réceptacle capable de contenir une deuxième boite NXT ou une Foxboard (nous ne savions pas encore comment guider le robot) La structure devait être solide, car on devait encore ajouter la pince de levage sur le dessus. Voici quelques illustration de la construction.&lt;br /&gt;
&lt;br /&gt;
[[Image:Basemoteur.jpg|thumb|alt=basemoteur|center|Base motrice à chenille, composée de deux servomoteur]] &lt;br /&gt;
&lt;br /&gt;
==La pince de levage==&lt;br /&gt;
&lt;br /&gt;
La pince de levage a été l'objet de toute la première séance, et aussi l'élément le plus compliquer à assembler. Nous avons été confronté à plusieurs contraintes : le poids des objets transporté, la résistance du système de levage, et l'adaptation de la forme de la pince.&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord crée une pince composé de deux servomoteurs pour le serrage et un autre pour le levage de la pince, mais ce système était trop lourd et peu pratique à solidariser avec le reste du robot. Nous avons donc évoluer vers un système plus léger composer de seulement 2 servomoteurs. Dans ce nouveau système, un servomoteurs était dédié à serrer la pince et l'autre à la soulevée par un mouvement de rotation. Le problème est que la pince était encore lourde et très peu facile à fixer, car tout était accrocher à l'avant du véhicule, il y a donc eu un problème de répartition de poids.Inutile de préciser qu'en ajoutant en plus un objet dans la pince, le robot se serait effondré.Nous avons alors pensé à mettre en place une poulie, qui a permis de surpasser tout ces obstacles. &lt;br /&gt;
&lt;br /&gt;
[[Image:modelepince.jpg|thumb|alt=modelepince|left|Modèle de la pince, avec un bras mobile fixé sur le servomoteur et une barre fixe]]&lt;br /&gt;
La pince est donc composé de deux partie : &lt;br /&gt;
*Un servomoteur fixé sur le dessus du robot, pour répartir le poids et assurer une fixation solide. Sur ce moteur, nous avons fixer de petits embouts, ainsi que l’extrémité d'un fil. De cette manière quand le moteur tourne, le fil s'enroule autour d'eux. C'est donc la poulie. &lt;br /&gt;
*Un servomoteur relié à l'avant du véhicule par une liaison pivot. Il peut donc se déplacer de haut en bas sans problème. Ce moteur permet de serrer la pince par une rotation d'une des deux branches qui la compose. Vous verrez ci-dessous que la pince est constituée d'une barre fixe sur laquelle s'appuie l'objet quand la pince est en position fermée, et d'une partie partie mobile , liée au moteur (en arc de cercle pour favoriser la prise des objets à transporté) qui change de position pour ouvrir et fermer la pince. L'autre extrémité du fil, provenant de la poulie, est fixé sur la barre fixe. &lt;br /&gt;
&lt;br /&gt;
Nous avons donc une pince qui se ferme pour saisir un objet, puis qui se soulève et redescend grâce à une poulie, pour enfin se rouvrir et déposer l'objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Les capteurs==&lt;br /&gt;
&lt;br /&gt;
Le robot est doté de deux capteur : un capteur de couleur pour suivre une ligne, et un capteur RFID qui lui sert à détecté les bases sur lesquelles il doit effectuer une action.&lt;br /&gt;
&lt;br /&gt;
Nous avions d'abord penser à installer un capteur de pression sur la pince pour vérifier si l'objet était bien serrer dans la pince. Mais celui-ci s'est avéré inutile après programmation, car le  programme permet de serrer l'objet autant qu'il faut pour que l'objet soit correctement maintenu. La détection de pression n'était donc pas nécessaire.&lt;br /&gt;
&lt;br /&gt;
En revanche,comme nous voulions faire un robot guider par des lignes de scotch noires au sol, nous avions besoin d'un capteur de couleurs. La difficulté est que ce capteur n'a qu'une très courte portée, c'est pourquoi nous avons du le placer dans un endroit ou il serait immobile, le plus proche du centre de l'avant du robot et le plus proche du sol possible. De cette façon, la détection est bonne continue, et permet une bonne correction de trajectoire. Cependant, le robot n'était pas conçu pour avoir un capteur à cet endroit, nous l'avons donc décentré un peu. Mais après quelques test, la position que nous avons choisi, nous a permis d'obtenir une trajectoire correcte. &lt;br /&gt;
&lt;br /&gt;
Le capteur RFID a été beaucoup plus simple à installé, car il a une plus grande portée (3cm). Nous l'avons donc placée au même niveau que le capteur de couleur, et de façon symétrique. Cet emplacement, permet une bonne détection des cartes RFID,et le robot distingue facilement la position des objets a transporter.&lt;br /&gt;
&lt;br /&gt;
=La programmation=&lt;br /&gt;
&lt;br /&gt;
==Gestion de la pince==&lt;br /&gt;
&lt;br /&gt;
Le programme que nous avons conçu, se décompose en 4 partie :&lt;br /&gt;
* serrer la pince : cette fonction ...&lt;br /&gt;
* lever la pince : ...&lt;br /&gt;
* baisser la pince : ...&lt;br /&gt;
* ouvrir la pince : ...&lt;br /&gt;
&lt;br /&gt;
Le problème majeur, a été d'enchainer ses tâches de manières fluide. Ce problème était en partie du aux pertes de données Bluetooth. &lt;br /&gt;
&lt;br /&gt;
==Gestion des déplacements==&lt;br /&gt;
&lt;br /&gt;
==Gestion des connexions Bluetooth==&lt;/div&gt;</summary>
		<author><name>Dsaunder</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Modelepince.jpg&amp;diff=1256</id>
		<title>Fichier:Modelepince.jpg</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Modelepince.jpg&amp;diff=1256"/>
				<updated>2013-02-20T10:37:48Z</updated>
		
		<summary type="html">&lt;p&gt;Dsaunder : modèle de la pince&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;modèle de la pince&lt;/div&gt;</summary>
		<author><name>Dsaunder</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1254</id>
		<title>Robot transporteur</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1254"/>
				<updated>2013-02-18T20:07:05Z</updated>
		
		<summary type="html">&lt;p&gt;Dsaunder : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&lt;br /&gt;
Nous allons vous présentez notre projet pour le bureau d'étude IMA 2012/2013. Nous sommes tous les deux très intéressé par ce département, et ce petit robot nous a passionné dans sa conception et sa programmation. Nous avons choisi de mélanger les différents style de robot à concevoir, pour proposer une idée personnelle de projet. Notre objectif est de créer un robot autonome qui transporte des objets. Cela passe par deux grandes étapes : la conception d'un système à 4 servomoteurs et la programmations des tâches réalisées en autonomie.&lt;br /&gt;
&lt;br /&gt;
=La Conception=&lt;br /&gt;
&lt;br /&gt;
Le robot est composé deux éléments essentiels : une base motrice et une pince de levage. Il comporte aussi deux capteurs pour le rendre autonome.&lt;br /&gt;
&lt;br /&gt;
==La base motrice==&lt;br /&gt;
&lt;br /&gt;
[[Image:receptacle.jpg|thumb|upright=0.75|alt=receptacle|right|Réceptacle pour boîtes NXT et Foxboard]]&lt;br /&gt;
La base est composé de deux servomoteurs qui sont reliés entre eux pour formé un socle solide. En effet, ce socle doit être capable de supporter le poids de deux boites NXT, ainsi que celui de la pince et de l'objet transporté. Les servomoteur entraînent la rotation de 4 roues sur lesquelles sont fixées des chenilles pour lui permettre d'avancer. La première boite NXT est directement fixée sur les servomoteurs, puis derrière, nous avons mis en place un réceptacle capable de contenir une deuxième boite NXT ou une Foxboard (nous ne savions pas encore comment guider le robot) La structure devait être solide, car on devait encore ajouter la pince de levage sur le dessus. Voici quelques illustration de la construction.&lt;br /&gt;
&lt;br /&gt;
[[Image:Basemoteur.jpg|thumb|alt=basemoteur|center|Base motrice à chenille, composée de deux servomoteur]] &lt;br /&gt;
&lt;br /&gt;
==La pince de levage==&lt;br /&gt;
&lt;br /&gt;
La pince de levage a été l'objet de toute la première séance, et aussi l'élément le plus compliquer à assembler. Nous avons été confronté à plusieurs contraintes : le poids des objets transporté, la résistance du système de levage, et l'adaptation de la forme de la pince.&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord crée une pince composé de deux servomoteurs pour le serrage et un autre pour le levage de la pince, mais ce système était trop lourd et peu pratique à solidariser avec le reste du robot. Nous avons donc évoluer vers un système plus léger composer de seulement 2 servomoteurs. Dans ce nouveau système, un servomoteurs était dédié à serrer la pince et l'autre à la soulevée par un mouvement de rotation. Le problème est que la pince était encore lourde et très peu facile à fixer, car tout était accrocher à l'avant du véhicule, il y a donc eu un problème de répartition de poids.Inutile de préciser qu'en ajoutant en plus un objet dans la pince, le robot se serait effondré.Nous avons alors pensé à mettre en place une poulie, qui a permis de surpasser tout ces obstacles. &lt;br /&gt;
&lt;br /&gt;
La pince est donc composé de deux partie : &lt;br /&gt;
*Un servomoteur fixé sur le dessus du robot, pour répartir le poids et assurer une fixation solide. Sur ce moteur, nous avons fixer de petits embouts, ainsi que l’extrémité d'un fil. De cette manière quand le moteur tourne, le fil s'enroule autour d'eux. C'est donc la poulie. &lt;br /&gt;
*Un servomoteur relié à l'avant du véhicule par une liaison pivot. Il peut donc se déplacer de haut en bas sans problème. Ce moteur permet de serrer la pince par une rotation d'une des deux branches qui la compose. Vous verrez ci-dessous que la pince est constituée d'une barre fixe sur laquelle s'appuie l'objet quand la pince est en position fermée, et d'une partie partie mobile , liée au moteur (en arc de cercle pour favoriser la prise des objets à transporté) qui change de position pour ouvrir et fermer la pince. L'autre extrémité du fil, provenant de la poulie, est fixé sur la barre fixe. &lt;br /&gt;
&lt;br /&gt;
Nous avons donc une pince qui se ferme pour saisir un objet, puis qui se soulève et redescend grâce à une poulie, pour enfin se rouvrir et déposer l'objet.&lt;br /&gt;
&lt;br /&gt;
==Les capteurs==&lt;br /&gt;
&lt;br /&gt;
Le robot est doté de deux capteur : un capteur de couleur pour suivre une ligne, et un capteur RFID qui lui sert à détecté les bases sur lesquelles il doit effectuer une action.&lt;br /&gt;
&lt;br /&gt;
Nous avions d'abord penser à installer un capteur de pression sur la pince pour vérifier si l'objet était bien serrer dans la pince. Mais celui-ci s'est avéré inutile après programmation, car le  programme permet de serrer l'objet autant qu'il faut pour que l'objet soit correctement maintenu. La détection de pression n'était donc pas nécessaire.&lt;br /&gt;
&lt;br /&gt;
En revanche,comme nous voulions faire un robot guider par des lignes de scotch noires au sol, nous avions besoin d'un capteur de couleurs. La difficulté est que ce capteur n'a qu'une très courte portée, c'est pourquoi nous avons du le placer dans un endroit ou il serait immobile, le plus proche du centre de l'avant du robot et le plus proche du sol possible. De cette façon, la détection est bonne continue, et permet une bonne correction de trajectoire. Cependant, le robot n'était pas conçu pour avoir un capteur à cet endroit, nous l'avons donc décentré un peu. Mais après quelques test, la position que nous avons choisi, nous a permis d'obtenir une trajectoire correcte. &lt;br /&gt;
&lt;br /&gt;
Le capteur RFID a été beaucoup plus simple à installé, car il a une plus grande portée (3cm). Nous l'avons donc placée au même niveau que le capteur de couleur, et de façon symétrique. Cet emplacement, permet une bonne détection des cartes RFID,et le robot distingue facilement la position des objets a transporter.&lt;br /&gt;
&lt;br /&gt;
=La programmation=&lt;br /&gt;
&lt;br /&gt;
==Gestion de la pince==&lt;br /&gt;
&lt;br /&gt;
Le programme que nous avons conçu, se décompose en 4 partie :&lt;br /&gt;
* serrer la pince : cette fonction ...&lt;br /&gt;
* lever la pince : ...&lt;br /&gt;
* baisser la pince : ...&lt;br /&gt;
* ouvrir la pince : ...&lt;br /&gt;
&lt;br /&gt;
Le problème majeur, a été d'enchainer ses tâches de manières fluide. Ce problème était en partie du aux pertes de données Bluetooth. &lt;br /&gt;
&lt;br /&gt;
==Gestion des déplacements==&lt;br /&gt;
&lt;br /&gt;
==Gestion des connexions Bluetooth==&lt;/div&gt;</summary>
		<author><name>Dsaunder</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Receptacle.jpg&amp;diff=1253</id>
		<title>Fichier:Receptacle.jpg</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Receptacle.jpg&amp;diff=1253"/>
				<updated>2013-02-18T20:03:06Z</updated>
		
		<summary type="html">&lt;p&gt;Dsaunder : a téléversé une nouvelle version de « Fichier:Receptacle.jpg » : receptacle&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;receptacle&lt;/div&gt;</summary>
		<author><name>Dsaunder</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Receptacle.jpg&amp;diff=1252</id>
		<title>Fichier:Receptacle.jpg</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Receptacle.jpg&amp;diff=1252"/>
				<updated>2013-02-18T19:53:09Z</updated>
		
		<summary type="html">&lt;p&gt;Dsaunder : receptacle&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;receptacle&lt;/div&gt;</summary>
		<author><name>Dsaunder</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1251</id>
		<title>Robot transporteur</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1251"/>
				<updated>2013-02-18T18:33:59Z</updated>
		
		<summary type="html">&lt;p&gt;Dsaunder : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&lt;br /&gt;
Nous allons vous présentez notre projet pour le bureau d'étude IMA 2012/2013. Nous sommes tous les deux très intéressé par ce département, et ce petit robot nous a passionné dans sa conception et sa programmation. Nous avons choisi de mélanger les différents style de robot à concevoir, pour proposer une idée personnelle de projet. Notre objectif est de créer un robot autonome qui transporte des objets. Cela passe par deux grandes étapes : la conception d'un système à 4 servomoteurs et la programmations des tâches réalisées en autonomie.&lt;br /&gt;
&lt;br /&gt;
=La Conception=&lt;br /&gt;
&lt;br /&gt;
Le robot est composé deux éléments essentiels : une base motrice et une pince de levage. Il comporte aussi deux capteurs pour le rendre autonome.&lt;br /&gt;
&lt;br /&gt;
==La base motrice==&lt;br /&gt;
&lt;br /&gt;
La base est composé de deux servomoteurs qui sont reliés entre eux pour formé un socle solide. En effet, ce socle doit être capable de supporter le poids de deux boites NXT, ainsi que celui de la pince et de l'objet transporté. Les servomoteur entraînent la rotation de 4 roues sur lesquelles sont fixées des chenilles pour lui permettre d'avancer. La première boite NXT est directement fixée sur les servomoteurs, puis derrière, nous avons mis en place un réceptacle capable de contenir une deuxième boite NXT ou une Foxboard (nous ne savions pas encore comment guider le robot) La structure devait être solide, car on devait encore ajouter la pince de levage sur le dessus. Voici quelques illustration de la construction.&lt;br /&gt;
&lt;br /&gt;
[[Image:Basemoteur.jpg|thumb|alt=basemoteur|center|Base motrice à chenille, composée de deux servomoteur]]&lt;br /&gt;
&lt;br /&gt;
==La pince de levage==&lt;br /&gt;
&lt;br /&gt;
La pince de levage a été l'objet de toute la première séance, et aussi l'élément le plus compliquer à assembler. Nous avons été confronté à plusieurs contraintes : le poids des objets transporté, la résistance du système de levage, et l'adaptation de la forme de la pince.&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord crée une pince composé de deux servomoteurs pour le serrage et un autre pour le levage de la pince, mais ce système était trop lourd et peu pratique à solidariser avec le reste du robot. Nous avons donc évoluer vers un système plus léger composer de seulement 2 servomoteurs. Dans ce nouveau système, un servomoteurs était dédié à serrer la pince et l'autre à la soulevée par un mouvement de rotation. Le problème est que la pince était encore lourde et très peu facile à fixer, car tout était accrocher à l'avant du véhicule, il y a donc eu un problème de répartition de poids.Inutile de préciser qu'en ajoutant en plus un objet dans la pince, le robot se serait effondré.Nous avons alors pensé à mettre en place une poulie, qui a permis de surpasser tout ces obstacles. &lt;br /&gt;
&lt;br /&gt;
La pince est donc composé de deux partie : &lt;br /&gt;
*Un servomoteur fixé sur le dessus du robot, pour répartir le poids et assurer une fixation solide. Sur ce moteur, nous avons fixer de petits embouts, ainsi que l’extrémité d'un fil. De cette manière quand le moteur tourne, le fil s'enroule autour d'eux. C'est donc la poulie. &lt;br /&gt;
*Un servomoteur relié à l'avant du véhicule par une liaison pivot. Il peut donc se déplacer de haut en bas sans problème. Ce moteur permet de serrer la pince par une rotation d'une des deux branches qui la compose. Vous verrez ci-dessous que la pince est constituée d'une barre fixe sur laquelle s'appuie l'objet quand la pince est en position fermée, et d'une partie partie mobile , liée au moteur (en arc de cercle pour favoriser la prise des objets à transporté) qui change de position pour ouvrir et fermer la pince. L'autre extrémité du fil, provenant de la poulie, est fixé sur la barre fixe. &lt;br /&gt;
&lt;br /&gt;
Nous avons donc une pince qui se ferme pour saisir un objet, puis qui se soulève et redescend grâce à une poulie, pour enfin se rouvrir et déposer l'objet.&lt;br /&gt;
&lt;br /&gt;
==Les capteurs==&lt;br /&gt;
&lt;br /&gt;
Le robot est doté de deux capteur : un capteur de couleur pour suivre une ligne, et un capteur RFID qui lui sert à détecté les bases sur lesquelles il doit effectuer une action.&lt;br /&gt;
&lt;br /&gt;
Nous avions d'abord penser à installer un capteur de pression sur la pince pour vérifier si l'objet était bien serrer dans la pince. Mais celui-ci s'est avéré inutile après programmation, car le  programme permet de serrer l'objet autant qu'il faut pour que l'objet soit correctement maintenu. La détection de pression n'était donc pas nécessaire.&lt;br /&gt;
&lt;br /&gt;
En revanche,comme nous voulions faire un robot guider par des lignes de scotch noires au sol, nous avions besoin d'un capteur de couleurs. La difficulté est que ce capteur n'a qu'une très courte portée, c'est pourquoi nous avons du le placer dans un endroit ou il serait immobile, le plus proche du centre de l'avant du robot et le plus proche du sol possible. De cette façon, la détection est bonne continue, et permet une bonne correction de trajectoire. Cependant, le robot n'était pas conçu pour avoir un capteur à cet endroit, nous l'avons donc décentré un peu. Mais après quelques test, la position que nous avons choisi, nous a permis d'obtenir une trajectoire correcte. &lt;br /&gt;
&lt;br /&gt;
Le capteur RFID a été beaucoup plus simple à installé, car il a une plus grande portée (3cm). Nous l'avons donc placée au même niveau que le capteur de couleur, et de façon symétrique. Cet emplacement, permet une bonne détection des cartes RFID,et le robot distingue facilement la position des objets a transporter.&lt;br /&gt;
&lt;br /&gt;
=La programmation=&lt;br /&gt;
&lt;br /&gt;
==Gestion de la pince==&lt;br /&gt;
&lt;br /&gt;
Le programme que nous avons conçu, se décompose en 4 partie :&lt;br /&gt;
* serrer la pince : cette fonction ...&lt;br /&gt;
* lever la pince : ...&lt;br /&gt;
* baisser la pince : ...&lt;br /&gt;
* ouvrir la pince : ...&lt;br /&gt;
&lt;br /&gt;
Le problème majeur, a été d'enchainer ses tâches de manières fluide. Ce problème était en partie du aux pertes de données Bluetooth. &lt;br /&gt;
&lt;br /&gt;
==Gestion des déplacements==&lt;br /&gt;
&lt;br /&gt;
==Gestion des connexions Bluetooth==&lt;/div&gt;</summary>
		<author><name>Dsaunder</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Basemoteur.jpg&amp;diff=1250</id>
		<title>Fichier:Basemoteur.jpg</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:Basemoteur.jpg&amp;diff=1250"/>
				<updated>2013-02-18T18:23:49Z</updated>
		
		<summary type="html">&lt;p&gt;Dsaunder : Base motrice à chenille, composée de deux servomoteurs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Base motrice à chenille, composée de deux servomoteurs&lt;/div&gt;</summary>
		<author><name>Dsaunder</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1248</id>
		<title>Robot transporteur</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1248"/>
				<updated>2013-02-14T16:02:12Z</updated>
		
		<summary type="html">&lt;p&gt;Dsaunder : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&lt;br /&gt;
Nous allons vous présentez notre projet pour le bureau d'étude IMA 2012/2013. Nous sommes tous les deux très intéressé par ce département, et ce petit robot nous a passionné dans sa conception et sa programmation. Nous avons choisi de mélanger les différents style de robot à concevoir, pour proposer une idée personnelle de projet. Notre objectif est de créer un robot autonome qui transporte des objets. Cela passe par deux grandes étapes : la conception d'un système à 4 servomoteurs et la programmations des tâches réalisées en autonomie.&lt;br /&gt;
&lt;br /&gt;
=La Conception=&lt;br /&gt;
&lt;br /&gt;
Le robot est composé deux éléments essentiels : une base motrice et une pince de levage. Il comporte aussi deux capteurs pour le rendre autonome.&lt;br /&gt;
&lt;br /&gt;
==La base motrice==&lt;br /&gt;
&lt;br /&gt;
La base est composé de deux servomoteurs qui sont reliés entre eux pour formé un socle solide. En effet, ce socle doit être capable de supporter le poids de deux boites NXT, ainsi que celui de la pince et de l'objet transporté. Les servomoteur entraînent la rotation de 4 roues sur lesquelles sont fixées des chenilles pour lui permettre d'avancer. La première boite NXT est directement fixée sur les servomoteurs, puis derrière, nous avons mis en place un réceptacle capable de contenir une deuxième boite NXT ou une Foxboard (nous ne savions pas encore comment guider le robot) La structure devait être solide, car on devait encore ajouter la pince de levage sur le dessus. Voici quelques illustration de la construction.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==La pince de levage==&lt;br /&gt;
&lt;br /&gt;
La pince de levage a été l'objet de toute la première séance, et aussi l'élément le plus compliquer à assembler. Nous avons été confronté à plusieurs contraintes : le poids des objets transporté, la résistance du système de levage, et l'adaptation de la forme de la pince.&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord crée une pince composé de deux servomoteurs pour le serrage et un autre pour le levage de la pince, mais ce système était trop lourd et peu pratique à solidariser avec le reste du robot. Nous avons donc évoluer vers un système plus léger composer de seulement 2 servomoteurs. Dans ce nouveau système, un servomoteurs était dédié à serrer la pince et l'autre à la soulevée par un mouvement de rotation. Le problème est que la pince était encore lourde et très peu facile à fixer, car tout était accrocher à l'avant du véhicule, il y a donc eu un problème de répartition de poids.Inutile de préciser qu'en ajoutant en plus un objet dans la pince, le robot se serait effondré.Nous avons alors pensé à mettre en place une poulie, qui a permis de surpasser tout ces obstacles. &lt;br /&gt;
&lt;br /&gt;
La pince est donc composé de deux partie : &lt;br /&gt;
*Un servomoteur fixé sur le dessus du robot, pour répartir le poids et assurer une fixation solide. Sur ce moteur, nous avons fixer de petits embouts, ainsi que l’extrémité d'un fil. De cette manière quand le moteur tourne, le fil s'enroule autour d'eux. C'est donc la poulie. &lt;br /&gt;
*Un servomoteur relié à l'avant du véhicule par une liaison pivot. Il peut donc se déplacer de haut en bas sans problème. Ce moteur permet de serrer la pince par une rotation d'une des deux branches qui la compose. Vous verrez ci-dessous que la pince est constituée d'une barre fixe sur laquelle s'appuie l'objet quand la pince est en position fermée, et d'une partie partie mobile , liée au moteur (en arc de cercle pour favoriser la prise des objets à transporté) qui change de position pour ouvrir et fermer la pince. L'autre extrémité du fil, provenant de la poulie, est fixé sur la barre fixe. &lt;br /&gt;
&lt;br /&gt;
Nous avons donc une pince qui se ferme pour saisir un objet, puis qui se soulève et redescend grâce à une poulie, pour enfin se rouvrir et déposer l'objet.&lt;br /&gt;
&lt;br /&gt;
==Les capteurs==&lt;br /&gt;
&lt;br /&gt;
Le robot est doté de deux capteur : un capteur de couleur pour suivre une ligne, et un capteur RFID qui lui sert à détecté les bases sur lesquelles il doit effectuer une action.&lt;br /&gt;
&lt;br /&gt;
Nous avions d'abord penser à installer un capteur de pression sur la pince pour vérifier si l'objet était bien serrer dans la pince. Mais celui-ci s'est avéré inutile après programmation, car le  programme permet de serrer l'objet autant qu'il faut pour que l'objet soit correctement maintenu. La détection de pression n'était donc pas nécessaire.&lt;br /&gt;
&lt;br /&gt;
En revanche,comme nous voulions faire un robot guider par des lignes de scotch noires au sol, nous avions besoin d'un capteur de couleurs. La difficulté est que ce capteur n'a qu'une très courte portée, c'est pourquoi nous avons du le placer dans un endroit ou il serait immobile, le plus proche du centre de l'avant du robot et le plus proche du sol possible. De cette façon, la détection est bonne continue, et permet une bonne correction de trajectoire. Cependant, le robot n'était pas conçu pour avoir un capteur à cet endroit, nous l'avons donc décentré un peu. Mais après quelques test, la position que nous avons choisi, nous a permis d'obtenir une trajectoire correcte. &lt;br /&gt;
&lt;br /&gt;
Le capteur RFID a été beaucoup plus simple à installé, car il a une plus grande portée (3cm). Nous l'avons donc placée au même niveau que le capteur de couleur, et de façon symétrique. Cet emplacement, permet une bonne détection des cartes RFID,et le robot distingue facilement la position des objets a transporter.&lt;br /&gt;
&lt;br /&gt;
=La programmation=&lt;br /&gt;
&lt;br /&gt;
==Gestion de la pince==&lt;br /&gt;
&lt;br /&gt;
Le programme que nous avons conçu, se décompose en 4 partie :&lt;br /&gt;
* serrer la pince : cette fonction ...&lt;br /&gt;
* lever la pince : ...&lt;br /&gt;
* baisser la pince : ...&lt;br /&gt;
* ouvrir la pince : ...&lt;br /&gt;
&lt;br /&gt;
Le problème majeur, a été d'enchainer ses tâches de manières fluide. Ce problème était en partie du aux pertes de données Bluetooth. &lt;br /&gt;
&lt;br /&gt;
==Gestion des déplacements==&lt;br /&gt;
&lt;br /&gt;
==Gestion des connexions Bluetooth==&lt;/div&gt;</summary>
		<author><name>Dsaunder</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1243</id>
		<title>Robot transporteur</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1243"/>
				<updated>2013-02-09T17:55:46Z</updated>
		
		<summary type="html">&lt;p&gt;Dsaunder : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&lt;br /&gt;
Nous allons vous présentez notre projet pour le bureau d'étude IMA 2012/2013. Nous sommes tous les deux très intéressé par ce département, et ce petit robot nous a passionné dans sa conception et sa programmation. Nous avons choisi de mélanger les différents style de robot à concevoir, pour proposer une idée personnelle de projet. Notre objectif est de créer un robot autonome qui transporte des objets. Cela passe par deux grandes étapes : la conception d'un système à 4 servomoteurs et la programmations des tâches réalisées en autonomie.&lt;br /&gt;
&lt;br /&gt;
=La Conception=&lt;br /&gt;
&lt;br /&gt;
Le robot est composé deux éléments essentiels : une base motrice et une pince de levage. Il comporte aussi deux capteurs pour le rendre autonome.&lt;br /&gt;
&lt;br /&gt;
==La base motrice==&lt;br /&gt;
&lt;br /&gt;
La base est composé de deux servomoteurs qui sont reliés entre eux pour formé un socle solide. En effet, ce socle doit être capable de supporter le poids de deux boites NXT, ainsi que celui de la pince et de l'objet transporté. Les servomoteur entraînent la rotation de 4 roues sur lesquelles sont fixées des chenilles pour lui permettre d'avancer. La première boite NXT est directement fixée sur les servomoteurs, puis derrière, nous avons mis en place un réceptacle capable de contenir une deuxième boite NXT ou une Foxboard (nous ne savions pas encore comment guider le robot) La structure devait être solide, car on devait encore ajouter la pince de levage sur le dessus. Voici quelques illustration de la construction.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==La pince de levage==&lt;br /&gt;
&lt;br /&gt;
La pince de levage a été l'objet de toute la première séance, et aussi l'élément le plus compliquer à assembler. Nous avons été confronté à plusieurs contraintes : le poids des objets transporté, la résistance du système de levage, et l'adaptation de la forme de la pince.&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord crée une pince composé de deux servomoteurs pour le serrage et un autre pour le levage de la pince, mais ce système était trop lourd et peu pratique à solidariser avec le reste du robot. Nous avons donc évoluer vers un système plus léger composer de seulement 2 servomoteurs. Dans ce nouveau système, un servomoteurs était dédié à serrer la pince et l'autre à la soulevée par un mouvement de rotation. Le problème est que la pince était encore lourde et très peu facile à fixer, car tout était accrocher à l'avant du véhicule, il y a donc eu un problème de répartition de poids.Inutile de préciser qu'en ajoutant en plus un objet dans la pince, le robot se serait effondré.Nous avons alors pensé à mettre en place une poulie, qui a permis de surpasser tout ces obstacles. &lt;br /&gt;
&lt;br /&gt;
La pince est donc composé de deux partie : &lt;br /&gt;
*Un servomoteur fixé sur le dessus du robot, pour répartir le poids et assurer une fixation solide. Sur ce moteur, nous avons fixer de petits embouts, ainsi que l’extrémité d'un fil. De cette manière quand le moteur tourne, le fil s'enroule autour d'eux. C'est donc la poulie. &lt;br /&gt;
*Un servomoteur relié à l'avant du véhicule par une liaison pivot. Il peut donc se déplacer de haut en bas sans problème. Ce moteur permet de serrer la pince par une rotation d'une des deux branches qui la compose. Vous verrez ci-dessous que la pince est constituée d'une barre fixe sur laquelle s'appuie l'objet quand la pince est en position fermée, et d'une partie partie mobile , liée au moteur (en arc de cercle pour favoriser la prise des objets à transporté) qui change de position pour ouvrir et fermer la pince. L'autre extrémité du fil, provenant de la poulie, est fixé sur la barre fixe. &lt;br /&gt;
&lt;br /&gt;
Nous avons donc une pince qui se ferme pour saisir un objet, puis qui se soulève et redescend grâce à une poulie, pour enfin se rouvrir et déposer l'objet.&lt;br /&gt;
&lt;br /&gt;
==Les capteurs==&lt;br /&gt;
&lt;br /&gt;
Le robot est doté de deux capteur : un capteur de couleur pour suivre une ligne, et un capteur RFID qui lui sert à détecté les bases sur lesquelles il doit effectuer une action.&lt;br /&gt;
&lt;br /&gt;
Nous avions d'abord penser à installer un capteur de pression sur la pince pour vérifier si l'objet était bien serrer dans la pince. Mais celui-ci s'est avéré inutile après programmation, car le  programme permet de serrer l'objet autant qu'il faut pour que l'objet soit correctement maintenu. La détection de pression n'était donc pas nécessaire.&lt;br /&gt;
&lt;br /&gt;
En revanche,comme nous voulions faire un robot guider par des lignes de scotch noires au sol, nous avions besoin d'un capteur de couleurs. La difficulté est que ce capteur n'a qu'une très courte portée, c'est pourquoi nous avons du le placer dans un endroit ou il serait immobile, le plus proche du centre de l'avant du robot et le plus proche du sol possible. De cette façon, la détection est bonne continue, et permet une bonne correction de trajectoire. Cependant, le robot n'était pas conçu pour avoir un capteur à cet endroit, nous l'avons donc décentré un peu. Mais après quelques test, la position que nous avons choisi, nous a permis d'obtenir une trajectoire correcte. &lt;br /&gt;
&lt;br /&gt;
le capteur RFID a été beaucoup plus simple à installé, car il a une plus grande portée (3cm). Nous l'avons donc placée complètement à l'avant et au centre, autrement dit sur l'extrémité de la barre fixe de la pince. Cet emplacement, permet une bonne détection des cartes RFID, le robot distingue facilement la position des objets a transporter.&lt;/div&gt;</summary>
		<author><name>Dsaunder</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1242</id>
		<title>Robot transporteur</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Robot_transporteur&amp;diff=1242"/>
				<updated>2013-02-07T16:53:11Z</updated>
		
		<summary type="html">&lt;p&gt;Dsaunder : Page créée avec « ==Introduction==  Nous allons vous présentez notre projet pour le bureau d'étude IMA 2012/2013. Nous sommes tous les deux très intéressé par ce département, et ce petit... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
Nous allons vous présentez notre projet pour le bureau d'étude IMA 2012/2013. Nous sommes tous les deux très intéressé par ce département, et ce petit robot nous a passionné dans sa conception et sa programmation. Nous avons choisi de mélanger les différents style de robot à concevoir, pour proposer une idée personnelle de projet. Notre objectif est de créer un robot autonome qui transporte des objets. Cela passe par deux grandes étapes : la conception d'un système à 4 servomoteurs et la programmations des tâches réalisées en autonomie.&lt;br /&gt;
&lt;br /&gt;
==La Conception==&lt;br /&gt;
&lt;br /&gt;
Le robot est composé deux éléments essentiels : une base motrice et une pince de levage.&lt;br /&gt;
&lt;br /&gt;
=La base motrice=&lt;br /&gt;
&lt;br /&gt;
La base est composé de deux servomoteurs qui sont reliés entre eux pour formé un socle solide. En effet, ce socle doit être capable de supporter le poids de deux boites NXT, ainsi que celui de la pince et de l'objet transporté. Voici quelques illustration de la construction.&lt;br /&gt;
&lt;br /&gt;
=La pince de levage=&lt;br /&gt;
&lt;br /&gt;
La pince de levage a été l'objet de toute la première séance, et aussi l'élément le plus compliquer à assembler. Nous avons été confronté à plusieurs contraintes : le poids des objets transporté, la résistance du système de levage, et l'adaptation de la forme de la pince.&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord fait une pince composé de deux servomoteurs pour se resserré et un autre pour lever la pince, mais ce système était trop lourd et peu pratique à solidariser avec le reste du robot. Nous avons donc évoluer vers un système plus léger composer de seulement 2 servomoteurs. Dans ce nouveau système, un servomoteurs était dédié à serrer la pince et l'autre à soulevé celle-ci par un mouvement de rotation. Le problème est que la pince était encore lourde et très peu facile à fixer, car tout était accrocher à l'avant du véhicule, il y a donc eu un problème de répartition de poids.Inutile de préciser qu'en ajoutant en plus un objet dans la pince, le robot se serait effondré.Nous avons alors pensé à mettre en place une poulie, qui a permis de surpasser tout ces obstacles. &lt;br /&gt;
&lt;br /&gt;
La pince est donc composé de deux partie : &lt;br /&gt;
*Un servomoteur fixer sur le dessus du robot, pour répartir le poids et assurer une fixation solide.&lt;/div&gt;</summary>
		<author><name>Dsaunder</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=BE_2012-2013&amp;diff=1241</id>
		<title>BE 2012-2013</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=BE_2012-2013&amp;diff=1241"/>
				<updated>2013-02-07T15:50:45Z</updated>
		
		<summary type="html">&lt;p&gt;Dsaunder : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= But à atteindre =&lt;br /&gt;
&lt;br /&gt;
Ce bureau d'étude a comme finalité la construction de robots patrouilleurs. Ces robots doivent parcourir de façon semi-autonome un espace en accumulant des données. Ces données peuvent être, par exemple, des images de leur environnement ou le résultat d'écoutes WiFi. Un robot semi-autonome est un robot capable de se déplacer dans son espace sans intervention humaine en suivant un balisage quelconque (marquage au sol, tags RFID, sons particuliers, etc). Un humain doit cependant pouvoir prendre le contrôle partiel ou total d'un robot. Le contrôle partiel consiste à faire varier la vitesse du robot, le sens du parcours du robot, etc. Le contrôle total consiste à gérer complétement le déplacement du robot, même si ce dernier évite encore les collisions (que le contrôleur pourrait ne pas avoir pu prévoir). Les robots doivent aussi pouvoir communiquer entre eux pour s'échanger des informations de positionnement, pour pouvoir s'éviter ou pour pouvoir se regrouper (par exemple pour pouvoir explorer en détail un lieu particulier). A ce propos il est fondamental que les robots sachent se positionner pour pouvoir annoter les informations envoyées ou stockées (images ou données).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Matériel à votre disposition =&lt;br /&gt;
&lt;br /&gt;
[[Image:boite_mindstorm.jpg|150px|right]]&lt;br /&gt;
[[Image:foxboard.jpg|150px|left]]&lt;br /&gt;
Les couches basses du robot seront réalisées à l'aide de Lego MindStorm. Le Lego va permettre de réaliser le chassis avec sa motorisation et d'y installer divers capteurs. Il est même possible d'assurer une certaine communication entre robots grâce à la technologie &amp;lt;tt&amp;gt;bluetooth&amp;lt;/tt&amp;gt; intégrée au micro-contrôleur MindStorm. Pour aller plus loin, il est nécessaire d'embarquer un micro-PC de type FoxBoard sur le robot. C'est ce micro-PC qui fera faire les acquisitions d'images ou les analyses WiFi et c'est à lui que le micro-contrôleur du MindStorm pourra envoyer ses données de localisation.&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. Par la suite les résultats devront être incorporés dans chaque robot pour obtenir un robot tel que décrit plus haut. Notez que tous les robots doivent savoir s'arrêter quand un obstacle se présente devant eux (utilisation du sonar MindStorm).&lt;br /&gt;
&lt;br /&gt;
== Robot suiveur de ligne ==&lt;br /&gt;
Vous devez créer un robot capable de suivre une courbe discontinue au sol. Le robot doit être capable de réaliser les actions ci-dessous.&lt;br /&gt;
* en cas de perte du marquage, tourner dans un sens puis dans l'autre pour tenter de le retrouver avec des angles de plus en plus grands ;&lt;br /&gt;
* si le marquage ne peut pas être retrouvé, se remettre dans la position de la perte initiale et partir tout droit ;&lt;br /&gt;
* se remettre dans l'axe du marquage lorsque ce marquage est retrouvé ;&lt;br /&gt;
* s'arrêter quand un obstacle se présente devant lui et repartir si l'obstacle disparait ;&lt;br /&gt;
* changer de parcours sur commande, c'est à dire emprunter un parcours d'une couleur différente dès qu'il est rencontré ;&lt;br /&gt;
* inverser son sens de parcours.&lt;br /&gt;
&lt;br /&gt;
Voici des exemples de parcours discontinus pouvant être suivis dans les deux sens.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Parcours-carre.png|Parcours carré&lt;br /&gt;
File:Parcours-cercle.png‎|Parcours avec arcs&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&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; {Floriane Chevalier} &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;Scotch de couleur&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[SuiveurLigne2012-1|Robot suiveur de ligne 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;
== Robots synchronisés ==&lt;br /&gt;
Cette étude sera menée par deux binômes. Vos deux robots doivent être capables de se synchroniser. Il vous est demandé de réaliser le comportement suivant :&lt;br /&gt;
&lt;br /&gt;
* séparés, les robots avancent tout droit et s'arrêtent dès qu'ils détectent un obstacle avec leur sonar ;&lt;br /&gt;
* les deux robots doivent pouvoir être couplés côte à côte ;&lt;br /&gt;
* dans le mode couplé, les robots avancent quand aucun obstacle n'est détecté par leurs sonars ;&lt;br /&gt;
* dans le mode couplé, si un robot détecte un obstacle et l'autre non le couple tourne dans la direction où aucun obstacle n'est détecté.&lt;br /&gt;
&lt;br /&gt;
La communication entre les deux robots se fait par &amp;lt;tt&amp;gt;bluetooth&amp;lt;/tt&amp;gt;.&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; {DUPLOUY Corentin &amp;amp; DRIOUICH Safouane} &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;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Synchronize2012-1|Robot communicant 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;  {COUENNE Bastien} &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;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Synchronize2012-2|Robot communicant 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;
== Robot suiveur RFID ==&lt;br /&gt;
Vous doterez votre robot d'un lecteur RFID et d'un équipement de type boussole. Votre robot doit être capable de réaliser les opérations ci-après :&lt;br /&gt;
&lt;br /&gt;
* trouver sous une marque de couleur précise (feuille A4, disque, ...) une carte RFID ;&lt;br /&gt;
* partir dans une direction donnée ; le robot s'oriente avec la boussole puis se lance avec ses deux moteurs sans tenter de corriger la trajectoire ;&lt;br /&gt;
* mémoriser des caps en fonction des identifiants des cartes RFID.&lt;br /&gt;
&lt;br /&gt;
Par la suite vous intégrez ces trois fonctionnalités pour obtenir un robot capable de suivre une trajectoire matérialisée par des marques sous lesquelles une carte RFID est dissimulée.&lt;br /&gt;
Quand le robot détecte une marque via son capteur de couleur, il se met à chercher l'emplacement exact de la carte RFID. Une fois la carte localisée, le robot trouve le prochain cap à suivre en fonction de l'identifiant de la carte RFID. Le robot s'oriente sur ce cap avec sa boussole puis se lance vers la marque suivante. Et ainsi de suite.&lt;br /&gt;
&lt;br /&gt;
Voici un exemple de parcours en suivant des marques RFID.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Parcours-marques.png|Parcours RFID&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&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; Jouy Alexandre - De Arriba Kévin &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;Module RFID&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Cartes RFID&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;module boussole&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Marques de couleur&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[SuiveurRFID2012-1|Robot suiveur RFID 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 naviguant aux instruments ==&lt;br /&gt;
Vous doterez votre robot d'une boussole ou d'un gyroscope pour lui permettre de connaitre précisement sa direction. Vous devez réaliser les actions décrites dans la suite.&lt;br /&gt;
&lt;br /&gt;
* Vous commencerez par faire en sorte que votre robot sache avancer en ligne droite, pour cela vous utiliserez le contrôle PID décrit sur la page [http://wikipedia.org/wiki/PID_controller WikiPedia]. Pour simplifier ce qui est dit sur cette page, sachez le principe appliqué à votre robot va être d'effectuer des corrections sur la trajectoire en utilisant des rotations. L'angle de ces rotations va être calculé en fonction de l'erreur de trajectoire indiqué par l'instrument. Plus exactement par la somme d'une constante multipliée par l'erreur instantanée, d'une autre constante multipliée par l'intégrale de l'erreur et enfin d'une dernière constante multipliée par la dérivée de l'erreur. A vous de trouver les valeurs adaptées des trois constantes.&lt;br /&gt;
&lt;br /&gt;
* Par la suite faites en sorte que votre robot sache contourner les obstacles au plus juste. Au plus juste signifiant qu'il tournera vers la droite ou vers la gauche en jugeant où se trouve le chemin le plus libre. L'algorithme à appliquer consiste à tourner le robot d'un angle faible dans un sens puis dans l'autre et de lire les resultats du sonar. Si les deux mesures indiquent un obstacle trop proche, l'angle est augmenté et le procédé répété. Dès qu'une trajectoire indique un chemin libre ou du moins un obstacle à distance suffisante, le robot avance en ligne droite suivant cette trajectoire. L'instrument doit être utilisée ici pour vérifier que le robot effectue précisement des rotations des angles souhaités et qu'il sache revenir en position initiale pour éventuellement recommencer avec un angle plus grand.&lt;br /&gt;
&lt;br /&gt;
* Pour permettre de suivre le comportement du robot, faites afficher sur la brique de contrôle MindStorm l'angle de rotation pour le dernier contournement et la distance parcourue le long de la dernière ligne droite.&lt;br /&gt;
&lt;br /&gt;
Intégrez les comportements pour obtenir un robot capable de contourner les obstacles avec un minimum d'intelligence.&lt;br /&gt;
&lt;br /&gt;
Voici un exemple de contournement d'obstacle avec l'algorithme décrit.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Parcours-boussole.png|Contournement d'obstacle&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&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; Bailet Jérôme - Teneur Timothée&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;Module boussole&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Module gyroscope&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Instrument2012-1|Robot aux instruments 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 solaire ==&lt;br /&gt;
Le but est de concevoir un robot capable de trouver le meilleur point de rechargement solaire dans une pièce et de se mettre en mode de rechargement&lt;br /&gt;
tout en étant capable de se réveiller après une période de charge. Vous devez réaliser les actions décrites dans la suite.&lt;br /&gt;
&lt;br /&gt;
* Votre robot doit déjà être capable de se déplacer dans une pièce en évitant les obstacles et de mesurer l'ensoleillement en différents points. L'algorithme de recherche du point idéal pourrait être de se déplacer à volonté (on suppose la pièce fermée) en calculant l'ensoleillement maximal. Au bout d'un temps défini, le robot compare l'ensoleillement local au maximum trouvé dans son premier parcours et s'arrête dès qu'il tombe sur un ensoleillement égal à une fraction du maximum (80% par exemple). &lt;br /&gt;
&lt;br /&gt;
* Concevez une alimentation ad hoc. Par exemple une batterie rechargeable pour MindStorm connectée, via des relais ou transistors, d'une part au bloc contrôleur du MindStorm et d'autre part au panneau solaire. Un régulateur entre les panneaux et la batterie sera nécessaire. Réalisez aussi un dispositif électronique indépendant (superviseur) capable de coller le relai d'alimentation du MindStorm dès que la charge de la batterie est raisonnable. Vous pourrez vous appuyer sur des composants intégrés de recharge de batterie (de type DS2715) et sur une supervision impliquant un microcontroleur Atmel AVR (au départ un arduino, puis transfert sur un microcontroleur seul). Commencez par lister le matériel nécessaire pour passer la commande.&lt;br /&gt;
&lt;br /&gt;
* Il ne vous reste plus qu'à écrire le comportement du robot quand il trouve son coin au soleil. A savoir, coller le relai de charge de sa batterie tout en se suicidant en decollant son relai d'alimentation. Il lui faut aussi décoller le relai de chargement quand il se réveille.&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; {Geiger Emilien}&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: red;&amp;quot;&amp;gt;Batterie rechargeable pour MindStorm&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Panneaux solaires&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Modules relais&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Dispositif électronique de réveil&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Solaire2012-1|Robot solaire 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 téléguidé avec système embarqué ==&lt;br /&gt;
Votre robot doit pouvoir être radio-guidé par un contrôleur. Le dit contrôleur peut diriger le robot au vu de l'image de la webcam embarquée. L'acquisition de la webcam et sa diffusion par WiFi est assuré par un système embarqué FoxBoard. La FoxBoard vous sera livrée configurée mais il faudra l'embarquer dans votre robot avec tous ses accessoires (webcam, module &amp;lt;tt&amp;gt;bluetooth&amp;lt;/tt&amp;gt;, boitier de piles). Un calcul du temps d'autonomie doit être effectué. Dans un premier temps le radio-guidage peut se faire à l'aide du logiciel MindStorm par &amp;lt;tt&amp;gt;bluetooth&amp;lt;/tt&amp;gt;. Dans un second temps il faut étudier la possibilité d'un radio-guidage par WiFi, les ordres étant transmis par un navigateur Web au serveur Web de la FoxBoard puis transmis au micro-contrôleur MindStorm par &amp;lt;tt&amp;gt;bluetooth&amp;lt;/tt&amp;gt;. Vous aurez le choix de programmer votre robot avec le logiciel MindStorm ou avec un langage de bas niveau proche du langage C (voir la page web [http://www.eggwall.com/2011/08/lego-nxt-mindstorm-with-linux.html]).&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; Jean-Christophe Fabrici,Gunst Nicolas &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;Téléphone Android&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;FoxBoard avec webcam, interface WiFi, convertisseur &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;Boitier piles&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Teleguide2012-1|Robot téléguidé 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; Libaert Romain &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;Téléphone Android&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;FoxBoard avec webcam, interface WiFi, convertisseur &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;Boitier piles&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Teleguide2012-1|Robot téléguidé 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 récupérateur d'objet ==&lt;br /&gt;
&lt;br /&gt;
L'objectif est de créer un robot capable de récupérer un objet situé sur une base RFID et de le transporter vers une autre base, elle aussi signalée par une RFID.&lt;br /&gt;
&lt;br /&gt;
Le robot doit être capable de réaliser les actions suivantes : &lt;br /&gt;
&lt;br /&gt;
* Suivre une ligne et détecter les RFID sur son chemin.&lt;br /&gt;
* Lire les RFID pour savoir ce que le robot doit faire : Soulever un objet ou le déposer.&lt;br /&gt;
* Communiquer par Bluetooth entre deux boites NXT (utilisation de 4 servo moteurs).&lt;br /&gt;
&lt;br /&gt;
Le robot est donc constitué de deux éléments essentiel une base motrice et une pince.&lt;br /&gt;
Nous avons en premier lieu créer la base motrice avec deux servomoteurs avec un socle permettant de placer deux boites NXT. Puis, nous avons utiliser deux autre servomoteurs pour construire une pince, l'un d'eux sert de poulie et l'autre permet de faire pression sur l'objet a soulever.&lt;br /&gt;
De plus, on utilise deux capteurs : un capteur de couleur pour que le robot suive une ligne, et un capteur RFID qui détecte les bases sur lesquelles une action doit avoir lieu.&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; Saunders Déborah - Wasilewski Jean &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;Module RFID&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Cartes RFID&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Scotch de couleur&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Robot transporteur]] &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;
= Intégration des fonctionnalités =&lt;br /&gt;
Une fois toutes les études terminées et les solutions implantées (sous forme de briques personnalisées par exemple), vous doterez votre robot des fonctionnalités nécessaires à la réalisation de la démonstration finale. Votre robot doit être capable de suivre des marquages discontinus au sol, être capable de communiquer avec les autres robots, être capable de se repérer dans l'espace en repérant des cartes RFID et enfin doit embarquer une FoxBoard avec une connexion WiFi et une webcam.&lt;br /&gt;
&lt;br /&gt;
Les robots peuvent se trouver soit dans un mode autonome soit dans un mode téléguidé. Dans le mode téléguidé, le robot est contrôlé à l'aide d'un téléphone Android connecté sur le réseau WiFi de l'école. Il doit être possible de le faire avancer, reculer ou tourner. Il doit être possible aussi d'obtenir une image de la webcam.&lt;br /&gt;
&lt;br /&gt;
Le comportement en mode autonome est plus complexe :&lt;br /&gt;
* le robot tente de suivre un marquage de couleur au sol, ce marquage peut être discontinu, la boussole est utilisée pour passer en ligne droite d'un marquage à l'autre et pour suivre les marquages ;&lt;br /&gt;
* le contrôleur peut demander à un robot de changer de sens de parcours ou de changer de couleur de parcours ;&lt;br /&gt;
* les robots communiquent à leur FoxBoard la couleur du parcours suivi, le dernier tag RFID détecté et la position de leur boussole ;&lt;br /&gt;
* ces informations sont diffusées entre les FoxBoard, elles sont aussi capable d'indiquer la position des robots sur une carte ;&lt;br /&gt;
* quand une FoxBoard s'aperçoit qu'un parcours est utilisé par moins de robots qu'un autre parcours, elle peut demander à son robot de changer de couleur de parcours pour équilibrer le nombre de robots.&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;Matériel&amp;lt;/th&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Boite lego MindStorm&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Module RFID&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Module boussole&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Module gyroscope&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Téléphone Android&amp;lt;/td&amp;gt; &lt;br /&gt;
     &amp;lt;td&amp;gt;FoxBoard&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;WebCam&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Adaptateur USB/WiFi&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Adaptateur BlueTooth&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Hub USB&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Boitier piles&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Piles rechargeables&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;Nombre&amp;lt;/th&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;8/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt; &lt;br /&gt;
     &amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt;1/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;8/8 (deux non testés)&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;100/100&amp;lt;/span&amp;gt;&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;
Pour configurer la FoxBoard avec tout le matériel nécessaire, suivez les [[FoxBoard pour MindStorm 2012|instructions]].&lt;br /&gt;
&lt;br /&gt;
Pour une description du système à obtenir suivez la [[FoxBoard MindStorm système 2012|flèche]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Démonstration finale =&lt;br /&gt;
Pour la démonstration finale vous tracerez une grande piste comprenant au moins deux parcours (voir schéma ci-dessous). Des cartes RFID doivent être disposées en des points précis de chaque parcours. Vous placerez vos robots sur l'un des parcours, tous orientés dans le même sens. Les robots vont cheminer un certain temps sur ce parcours (l'occasion de vérifier le bon suivi du marquage au sol et que les robots savent tenir leurs distances). Ils doivent ensuite se répartir automatiquement sur les deux parcours disponibles. Un contrôleur ordonne à son robot de changer de sens de parcours. Les robots devraient se bloquer. Le contrôleur téléguide le robot pour le sortir du parcours, les autres robots devraient se débloquer.&lt;br /&gt;
&lt;br /&gt;
Voici un exemple de double parcours.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Parcours-double.png|Parcours double&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Notation =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Noms !! Partie I !! Partie II !! 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>Dsaunder</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=BE_2012-2013&amp;diff=1240</id>
		<title>BE 2012-2013</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=BE_2012-2013&amp;diff=1240"/>
				<updated>2013-02-07T12:13:51Z</updated>
		
		<summary type="html">&lt;p&gt;Dsaunder : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= But à atteindre =&lt;br /&gt;
&lt;br /&gt;
Ce bureau d'étude a comme finalité la construction de robots patrouilleurs. Ces robots doivent parcourir de façon semi-autonome un espace en accumulant des données. Ces données peuvent être, par exemple, des images de leur environnement ou le résultat d'écoutes WiFi. Un robot semi-autonome est un robot capable de se déplacer dans son espace sans intervention humaine en suivant un balisage quelconque (marquage au sol, tags RFID, sons particuliers, etc). Un humain doit cependant pouvoir prendre le contrôle partiel ou total d'un robot. Le contrôle partiel consiste à faire varier la vitesse du robot, le sens du parcours du robot, etc. Le contrôle total consiste à gérer complétement le déplacement du robot, même si ce dernier évite encore les collisions (que le contrôleur pourrait ne pas avoir pu prévoir). Les robots doivent aussi pouvoir communiquer entre eux pour s'échanger des informations de positionnement, pour pouvoir s'éviter ou pour pouvoir se regrouper (par exemple pour pouvoir explorer en détail un lieu particulier). A ce propos il est fondamental que les robots sachent se positionner pour pouvoir annoter les informations envoyées ou stockées (images ou données).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Matériel à votre disposition =&lt;br /&gt;
&lt;br /&gt;
[[Image:boite_mindstorm.jpg|150px|right]]&lt;br /&gt;
[[Image:foxboard.jpg|150px|left]]&lt;br /&gt;
Les couches basses du robot seront réalisées à l'aide de Lego MindStorm. Le Lego va permettre de réaliser le chassis avec sa motorisation et d'y installer divers capteurs. Il est même possible d'assurer une certaine communication entre robots grâce à la technologie &amp;lt;tt&amp;gt;bluetooth&amp;lt;/tt&amp;gt; intégrée au micro-contrôleur MindStorm. Pour aller plus loin, il est nécessaire d'embarquer un micro-PC de type FoxBoard sur le robot. C'est ce micro-PC qui fera faire les acquisitions d'images ou les analyses WiFi et c'est à lui que le micro-contrôleur du MindStorm pourra envoyer ses données de localisation.&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. Par la suite les résultats devront être incorporés dans chaque robot pour obtenir un robot tel que décrit plus haut. Notez que tous les robots doivent savoir s'arrêter quand un obstacle se présente devant eux (utilisation du sonar MindStorm).&lt;br /&gt;
&lt;br /&gt;
== Robot suiveur de ligne ==&lt;br /&gt;
Vous devez créer un robot capable de suivre une courbe discontinue au sol. Le robot doit être capable de réaliser les actions ci-dessous.&lt;br /&gt;
* en cas de perte du marquage, tourner dans un sens puis dans l'autre pour tenter de le retrouver avec des angles de plus en plus grands ;&lt;br /&gt;
* si le marquage ne peut pas être retrouvé, se remettre dans la position de la perte initiale et partir tout droit ;&lt;br /&gt;
* se remettre dans l'axe du marquage lorsque ce marquage est retrouvé ;&lt;br /&gt;
* s'arrêter quand un obstacle se présente devant lui et repartir si l'obstacle disparait ;&lt;br /&gt;
* changer de parcours sur commande, c'est à dire emprunter un parcours d'une couleur différente dès qu'il est rencontré ;&lt;br /&gt;
* inverser son sens de parcours.&lt;br /&gt;
&lt;br /&gt;
Voici des exemples de parcours discontinus pouvant être suivis dans les deux sens.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Parcours-carre.png|Parcours carré&lt;br /&gt;
File:Parcours-cercle.png‎|Parcours avec arcs&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&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; {Floriane Chevalier} &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;Scotch de couleur&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[SuiveurLigne2012-1|Robot suiveur de ligne 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;
== Robots synchronisés ==&lt;br /&gt;
Cette étude sera menée par deux binômes. Vos deux robots doivent être capables de se synchroniser. Il vous est demandé de réaliser le comportement suivant :&lt;br /&gt;
&lt;br /&gt;
* séparés, les robots avancent tout droit et s'arrêtent dès qu'ils détectent un obstacle avec leur sonar ;&lt;br /&gt;
* les deux robots doivent pouvoir être couplés côte à côte ;&lt;br /&gt;
* dans le mode couplé, les robots avancent quand aucun obstacle n'est détecté par leurs sonars ;&lt;br /&gt;
* dans le mode couplé, si un robot détecte un obstacle et l'autre non le couple tourne dans la direction où aucun obstacle n'est détecté.&lt;br /&gt;
&lt;br /&gt;
La communication entre les deux robots se fait par &amp;lt;tt&amp;gt;bluetooth&amp;lt;/tt&amp;gt;.&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; {DUPLOUY Corentin &amp;amp; DRIOUICH Safouane} &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;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Synchronize2012-1|Robot communicant 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;  {COUENNE Bastien} &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;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Synchronize2012-2|Robot communicant 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;
== Robot suiveur RFID ==&lt;br /&gt;
Vous doterez votre robot d'un lecteur RFID et d'un équipement de type boussole. Votre robot doit être capable de réaliser les opérations ci-après :&lt;br /&gt;
&lt;br /&gt;
* trouver sous une marque de couleur précise (feuille A4, disque, ...) une carte RFID ;&lt;br /&gt;
* partir dans une direction donnée ; le robot s'oriente avec la boussole puis se lance avec ses deux moteurs sans tenter de corriger la trajectoire ;&lt;br /&gt;
* mémoriser des caps en fonction des identifiants des cartes RFID.&lt;br /&gt;
&lt;br /&gt;
Par la suite vous intégrez ces trois fonctionnalités pour obtenir un robot capable de suivre une trajectoire matérialisée par des marques sous lesquelles une carte RFID est dissimulée.&lt;br /&gt;
Quand le robot détecte une marque via son capteur de couleur, il se met à chercher l'emplacement exact de la carte RFID. Une fois la carte localisée, le robot trouve le prochain cap à suivre en fonction de l'identifiant de la carte RFID. Le robot s'oriente sur ce cap avec sa boussole puis se lance vers la marque suivante. Et ainsi de suite.&lt;br /&gt;
&lt;br /&gt;
Voici un exemple de parcours en suivant des marques RFID.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Parcours-marques.png|Parcours RFID&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&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; Jouy Alexandre - De Arriba Kévin &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;Module RFID&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Cartes RFID&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;module boussole&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Marques de couleur&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[SuiveurRFID2012-1|Robot suiveur RFID 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 naviguant aux instruments ==&lt;br /&gt;
Vous doterez votre robot d'une boussole ou d'un gyroscope pour lui permettre de connaitre précisement sa direction. Vous devez réaliser les actions décrites dans la suite.&lt;br /&gt;
&lt;br /&gt;
* Vous commencerez par faire en sorte que votre robot sache avancer en ligne droite, pour cela vous utiliserez le contrôle PID décrit sur la page [http://wikipedia.org/wiki/PID_controller WikiPedia]. Pour simplifier ce qui est dit sur cette page, sachez le principe appliqué à votre robot va être d'effectuer des corrections sur la trajectoire en utilisant des rotations. L'angle de ces rotations va être calculé en fonction de l'erreur de trajectoire indiqué par l'instrument. Plus exactement par la somme d'une constante multipliée par l'erreur instantanée, d'une autre constante multipliée par l'intégrale de l'erreur et enfin d'une dernière constante multipliée par la dérivée de l'erreur. A vous de trouver les valeurs adaptées des trois constantes.&lt;br /&gt;
&lt;br /&gt;
* Par la suite faites en sorte que votre robot sache contourner les obstacles au plus juste. Au plus juste signifiant qu'il tournera vers la droite ou vers la gauche en jugeant où se trouve le chemin le plus libre. L'algorithme à appliquer consiste à tourner le robot d'un angle faible dans un sens puis dans l'autre et de lire les resultats du sonar. Si les deux mesures indiquent un obstacle trop proche, l'angle est augmenté et le procédé répété. Dès qu'une trajectoire indique un chemin libre ou du moins un obstacle à distance suffisante, le robot avance en ligne droite suivant cette trajectoire. L'instrument doit être utilisée ici pour vérifier que le robot effectue précisement des rotations des angles souhaités et qu'il sache revenir en position initiale pour éventuellement recommencer avec un angle plus grand.&lt;br /&gt;
&lt;br /&gt;
* Pour permettre de suivre le comportement du robot, faites afficher sur la brique de contrôle MindStorm l'angle de rotation pour le dernier contournement et la distance parcourue le long de la dernière ligne droite.&lt;br /&gt;
&lt;br /&gt;
Intégrez les comportements pour obtenir un robot capable de contourner les obstacles avec un minimum d'intelligence.&lt;br /&gt;
&lt;br /&gt;
Voici un exemple de contournement d'obstacle avec l'algorithme décrit.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Parcours-boussole.png|Contournement d'obstacle&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&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; Bailet Jérôme - Teneur Timothée&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;Module boussole&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Module gyroscope&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Instrument2012-1|Robot aux instruments 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 solaire ==&lt;br /&gt;
Le but est de concevoir un robot capable de trouver le meilleur point de rechargement solaire dans une pièce et de se mettre en mode de rechargement&lt;br /&gt;
tout en étant capable de se réveiller après une période de charge. Vous devez réaliser les actions décrites dans la suite.&lt;br /&gt;
&lt;br /&gt;
* Votre robot doit déjà être capable de se déplacer dans une pièce en évitant les obstacles et de mesurer l'ensoleillement en différents points. L'algorithme de recherche du point idéal pourrait être de se déplacer à volonté (on suppose la pièce fermée) en calculant l'ensoleillement maximal. Au bout d'un temps défini, le robot compare l'ensoleillement local au maximum trouvé dans son premier parcours et s'arrête dès qu'il tombe sur un ensoleillement égal à une fraction du maximum (80% par exemple). &lt;br /&gt;
&lt;br /&gt;
* Concevez une alimentation ad hoc. Par exemple une batterie rechargeable pour MindStorm connectée, via des relais ou transistors, d'une part au bloc contrôleur du MindStorm et d'autre part au panneau solaire. Un régulateur entre les panneaux et la batterie sera nécessaire. Réalisez aussi un dispositif électronique indépendant (superviseur) capable de coller le relai d'alimentation du MindStorm dès que la charge de la batterie est raisonnable. Vous pourrez vous appuyer sur des composants intégrés de recharge de batterie (de type DS2715) et sur une supervision impliquant un microcontroleur Atmel AVR (au départ un arduino, puis transfert sur un microcontroleur seul). Commencez par lister le matériel nécessaire pour passer la commande.&lt;br /&gt;
&lt;br /&gt;
* Il ne vous reste plus qu'à écrire le comportement du robot quand il trouve son coin au soleil. A savoir, coller le relai de charge de sa batterie tout en se suicidant en decollant son relai d'alimentation. Il lui faut aussi décoller le relai de chargement quand il se réveille.&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; {Geiger Emilien}&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: red;&amp;quot;&amp;gt;Batterie rechargeable pour MindStorm&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Panneaux solaires&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Modules relais&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Dispositif électronique de réveil&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Solaire2012-1|Robot solaire 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 téléguidé avec système embarqué ==&lt;br /&gt;
Votre robot doit pouvoir être radio-guidé par un contrôleur. Le dit contrôleur peut diriger le robot au vu de l'image de la webcam embarquée. L'acquisition de la webcam et sa diffusion par WiFi est assuré par un système embarqué FoxBoard. La FoxBoard vous sera livrée configurée mais il faudra l'embarquer dans votre robot avec tous ses accessoires (webcam, module &amp;lt;tt&amp;gt;bluetooth&amp;lt;/tt&amp;gt;, boitier de piles). Un calcul du temps d'autonomie doit être effectué. Dans un premier temps le radio-guidage peut se faire à l'aide du logiciel MindStorm par &amp;lt;tt&amp;gt;bluetooth&amp;lt;/tt&amp;gt;. Dans un second temps il faut étudier la possibilité d'un radio-guidage par WiFi, les ordres étant transmis par un navigateur Web au serveur Web de la FoxBoard puis transmis au micro-contrôleur MindStorm par &amp;lt;tt&amp;gt;bluetooth&amp;lt;/tt&amp;gt;. Vous aurez le choix de programmer votre robot avec le logiciel MindStorm ou avec un langage de bas niveau proche du langage C (voir la page web [http://www.eggwall.com/2011/08/lego-nxt-mindstorm-with-linux.html]).&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; Jean-Christophe Fabrici,Gunst Nicolas &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;Téléphone Android&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;FoxBoard avec webcam, interface WiFi, convertisseur &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;Boitier piles&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Teleguide2012-1|Robot téléguidé 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; Libaert Romain &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;Téléphone Android&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;FoxBoard avec webcam, interface WiFi, convertisseur &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;Boitier piles&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Teleguide2012-1|Robot téléguidé 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 récupérateur d'objet ==&lt;br /&gt;
&lt;br /&gt;
L'objectif est de créer un robot capable de récupérer un objet situé sur une base RFID et de le transporter vers une autre base, elle aussi signalée par une RFID.&lt;br /&gt;
&lt;br /&gt;
Le robot doit être capable de réaliser les actions suivantes : &lt;br /&gt;
&lt;br /&gt;
* Suivre une ligne et détecter les RFID sur son chemin.&lt;br /&gt;
* Lire les RFID pour savoir ce que le robot doit faire : Soulever un objet ou le déposer.&lt;br /&gt;
* Communiquer par Bluetooth entre deux boites NXT (utilisation de 4 servo moteurs).&lt;br /&gt;
&lt;br /&gt;
Le robot est donc constitué de deux éléments essentiel une base motrice et une pince.&lt;br /&gt;
&lt;br /&gt;
Nous avons en premier lieu créer la base motrice avec deux servomoteurs avec un socle permettant de placer deux boites NXT. Puis, nous avons utiliser deux autre servomoteurs pour construire une pince, l'un d'eux sert de poulie et l'autre permet de faire pression sur l'objet a soulever.&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; Saunders Déborah - Wasilewski Jean &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;Module RFID&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Cartes RFID&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Scotch de couleur&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Robot transporteur]] &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;
= Intégration des fonctionnalités =&lt;br /&gt;
Une fois toutes les études terminées et les solutions implantées (sous forme de briques personnalisées par exemple), vous doterez votre robot des fonctionnalités nécessaires à la réalisation de la démonstration finale. Votre robot doit être capable de suivre des marquages discontinus au sol, être capable de communiquer avec les autres robots, être capable de se repérer dans l'espace en repérant des cartes RFID et enfin doit embarquer une FoxBoard avec une connexion WiFi et une webcam.&lt;br /&gt;
&lt;br /&gt;
Les robots peuvent se trouver soit dans un mode autonome soit dans un mode téléguidé. Dans le mode téléguidé, le robot est contrôlé à l'aide d'un téléphone Android connecté sur le réseau WiFi de l'école. Il doit être possible de le faire avancer, reculer ou tourner. Il doit être possible aussi d'obtenir une image de la webcam.&lt;br /&gt;
&lt;br /&gt;
Le comportement en mode autonome est plus complexe :&lt;br /&gt;
* le robot tente de suivre un marquage de couleur au sol, ce marquage peut être discontinu, la boussole est utilisée pour passer en ligne droite d'un marquage à l'autre et pour suivre les marquages ;&lt;br /&gt;
* le contrôleur peut demander à un robot de changer de sens de parcours ou de changer de couleur de parcours ;&lt;br /&gt;
* les robots communiquent à leur FoxBoard la couleur du parcours suivi, le dernier tag RFID détecté et la position de leur boussole ;&lt;br /&gt;
* ces informations sont diffusées entre les FoxBoard, elles sont aussi capable d'indiquer la position des robots sur une carte ;&lt;br /&gt;
* quand une FoxBoard s'aperçoit qu'un parcours est utilisé par moins de robots qu'un autre parcours, elle peut demander à son robot de changer de couleur de parcours pour équilibrer le nombre de robots.&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;Matériel&amp;lt;/th&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Boite lego MindStorm&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Module RFID&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Module boussole&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Module gyroscope&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Téléphone Android&amp;lt;/td&amp;gt; &lt;br /&gt;
     &amp;lt;td&amp;gt;FoxBoard&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;WebCam&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Adaptateur USB/WiFi&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Adaptateur BlueTooth&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Hub USB&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Boitier piles&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Piles rechargeables&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;Nombre&amp;lt;/th&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;8/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt; &lt;br /&gt;
     &amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt;1/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;8/8 (deux non testés)&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;100/100&amp;lt;/span&amp;gt;&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;
Pour configurer la FoxBoard avec tout le matériel nécessaire, suivez les [[FoxBoard pour MindStorm 2012|instructions]].&lt;br /&gt;
&lt;br /&gt;
Pour une description du système à obtenir suivez la [[FoxBoard MindStorm système 2012|flèche]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Démonstration finale =&lt;br /&gt;
Pour la démonstration finale vous tracerez une grande piste comprenant au moins deux parcours (voir schéma ci-dessous). Des cartes RFID doivent être disposées en des points précis de chaque parcours. Vous placerez vos robots sur l'un des parcours, tous orientés dans le même sens. Les robots vont cheminer un certain temps sur ce parcours (l'occasion de vérifier le bon suivi du marquage au sol et que les robots savent tenir leurs distances). Ils doivent ensuite se répartir automatiquement sur les deux parcours disponibles. Un contrôleur ordonne à son robot de changer de sens de parcours. Les robots devraient se bloquer. Le contrôleur téléguide le robot pour le sortir du parcours, les autres robots devraient se débloquer.&lt;br /&gt;
&lt;br /&gt;
Voici un exemple de double parcours.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Parcours-double.png|Parcours double&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Notation =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Noms !! Partie I !! Partie II !! 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>Dsaunder</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=BE_2012-2013&amp;diff=1238</id>
		<title>BE 2012-2013</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=BE_2012-2013&amp;diff=1238"/>
				<updated>2013-02-04T09:04:30Z</updated>
		
		<summary type="html">&lt;p&gt;Dsaunder : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= But à atteindre =&lt;br /&gt;
&lt;br /&gt;
Ce bureau d'étude a comme finalité la construction de robots patrouilleurs. Ces robots doivent parcourir de façon semi-autonome un espace en accumulant des données. Ces données peuvent être, par exemple, des images de leur environnement ou le résultat d'écoutes WiFi. Un robot semi-autonome est un robot capable de se déplacer dans son espace sans intervention humaine en suivant un balisage quelconque (marquage au sol, tags RFID, sons particuliers, etc). Un humain doit cependant pouvoir prendre le contrôle partiel ou total d'un robot. Le contrôle partiel consiste à faire varier la vitesse du robot, le sens du parcours du robot, etc. Le contrôle total consiste à gérer complétement le déplacement du robot, même si ce dernier évite encore les collisions (que le contrôleur pourrait ne pas avoir pu prévoir). Les robots doivent aussi pouvoir communiquer entre eux pour s'échanger des informations de positionnement, pour pouvoir s'éviter ou pour pouvoir se regrouper (par exemple pour pouvoir explorer en détail un lieu particulier). A ce propos il est fondamental que les robots sachent se positionner pour pouvoir annoter les informations envoyées ou stockées (images ou données).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Matériel à votre disposition =&lt;br /&gt;
&lt;br /&gt;
[[Image:boite_mindstorm.jpg|150px|right]]&lt;br /&gt;
[[Image:foxboard.jpg|150px|left]]&lt;br /&gt;
Les couches basses du robot seront réalisées à l'aide de Lego MindStorm. Le Lego va permettre de réaliser le chassis avec sa motorisation et d'y installer divers capteurs. Il est même possible d'assurer une certaine communication entre robots grâce à la technologie &amp;lt;tt&amp;gt;bluetooth&amp;lt;/tt&amp;gt; intégrée au micro-contrôleur MindStorm. Pour aller plus loin, il est nécessaire d'embarquer un micro-PC de type FoxBoard sur le robot. C'est ce micro-PC qui fera faire les acquisitions d'images ou les analyses WiFi et c'est à lui que le micro-contrôleur du MindStorm pourra envoyer ses données de localisation.&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. Par la suite les résultats devront être incorporés dans chaque robot pour obtenir un robot tel que décrit plus haut. Notez que tous les robots doivent savoir s'arrêter quand un obstacle se présente devant eux (utilisation du sonar MindStorm).&lt;br /&gt;
&lt;br /&gt;
== Robot suiveur de ligne ==&lt;br /&gt;
Vous devez créer un robot capable de suivre une courbe discontinue au sol. Le robot doit être capable de réaliser les actions ci-dessous.&lt;br /&gt;
* en cas de perte du marquage, tourner dans un sens puis dans l'autre pour tenter de le retrouver avec des angles de plus en plus grands ;&lt;br /&gt;
* si le marquage ne peut pas être retrouvé, se remettre dans la position de la perte initiale et partir tout droit ;&lt;br /&gt;
* se remettre dans l'axe du marquage lorsque ce marquage est retrouvé ;&lt;br /&gt;
* s'arrêter quand un obstacle se présente devant lui et repartir si l'obstacle disparait ;&lt;br /&gt;
* changer de parcours sur commande, c'est à dire emprunter un parcours d'une couleur différente dès qu'il est rencontré ;&lt;br /&gt;
* inverser son sens de parcours.&lt;br /&gt;
&lt;br /&gt;
Voici des exemples de parcours discontinus pouvant être suivis dans les deux sens.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Parcours-carre.png|Parcours carré&lt;br /&gt;
File:Parcours-cercle.png‎|Parcours avec arcs&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&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; {Floriane Chevalier} &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;Scotch de couleur&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[SuiveurLigne2012-1|Robot suiveur de ligne 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;
== Robots synchronisés ==&lt;br /&gt;
Cette étude sera menée par deux binômes. Vos deux robots doivent être capables de se synchroniser. Il vous est demandé de réaliser le comportement suivant :&lt;br /&gt;
&lt;br /&gt;
* séparés, les robots avancent tout droit et s'arrêtent dès qu'ils détectent un obstacle avec leur sonar ;&lt;br /&gt;
* les deux robots doivent pouvoir être couplés côte à côte ;&lt;br /&gt;
* dans le mode couplé, les robots avancent quand aucun obstacle n'est détecté par leurs sonars ;&lt;br /&gt;
* dans le mode couplé, si un robot détecte un obstacle et l'autre non le couple tourne dans la direction où aucun obstacle n'est détecté.&lt;br /&gt;
&lt;br /&gt;
La communication entre les deux robots se fait par &amp;lt;tt&amp;gt;bluetooth&amp;lt;/tt&amp;gt;.&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; {DUPLOUY Corentin &amp;amp; DRIOUICH Safouane} &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;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Synchronize2012-1|Robot communicant 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;  {COUENNE Bastien} &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;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Synchronize2012-2|Robot communicant 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;
== Robot suiveur RFID ==&lt;br /&gt;
Vous doterez votre robot d'un lecteur RFID et d'un équipement de type boussole. Votre robot doit être capable de réaliser les opérations ci-après :&lt;br /&gt;
&lt;br /&gt;
* trouver sous une marque de couleur précise (feuille A4, disque, ...) une carte RFID ;&lt;br /&gt;
* partir dans une direction donnée ; le robot s'oriente avec la boussole puis se lance avec ses deux moteurs sans tenter de corriger la trajectoire ;&lt;br /&gt;
* mémoriser des caps en fonction des identifiants des cartes RFID.&lt;br /&gt;
&lt;br /&gt;
Par la suite vous intégrez ces trois fonctionnalités pour obtenir un robot capable de suivre une trajectoire matérialisée par des marques sous lesquelles une carte RFID est dissimulée.&lt;br /&gt;
Quand le robot détecte une marque via son capteur de couleur, il se met à chercher l'emplacement exact de la carte RFID. Une fois la carte localisée, le robot trouve le prochain cap à suivre en fonction de l'identifiant de la carte RFID. Le robot s'oriente sur ce cap avec sa boussole puis se lance vers la marque suivante. Et ainsi de suite.&lt;br /&gt;
&lt;br /&gt;
Voici un exemple de parcours en suivant des marques RFID.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Parcours-marques.png|Parcours RFID&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&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; Jouy Alexandre - De Arriba Kévin &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;Module RFID&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Cartes RFID&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;module boussole&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Marques de couleur&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[SuiveurRFID2012-1|Robot suiveur RFID 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 naviguant aux instruments ==&lt;br /&gt;
Vous doterez votre robot d'une boussole ou d'un gyroscope pour lui permettre de connaitre précisement sa direction. Vous devez réaliser les actions décrites dans la suite.&lt;br /&gt;
&lt;br /&gt;
* Vous commencerez par faire en sorte que votre robot sache avancer en ligne droite, pour cela vous utiliserez le contrôle PID décrit sur la page [http://wikipedia.org/wiki/PID_controller WikiPedia]. Pour simplifier ce qui est dit sur cette page, sachez le principe appliqué à votre robot va être d'effectuer des corrections sur la trajectoire en utilisant des rotations. L'angle de ces rotations va être calculé en fonction de l'erreur de trajectoire indiqué par l'instrument. Plus exactement par la somme d'une constante multipliée par l'erreur instantanée, d'une autre constante multipliée par l'intégrale de l'erreur et enfin d'une dernière constante multipliée par la dérivée de l'erreur. A vous de trouver les valeurs adaptées des trois constantes.&lt;br /&gt;
&lt;br /&gt;
* Par la suite faites en sorte que votre robot sache contourner les obstacles au plus juste. Au plus juste signifiant qu'il tournera vers la droite ou vers la gauche en jugeant où se trouve le chemin le plus libre. L'algorithme à appliquer consiste à tourner le robot d'un angle faible dans un sens puis dans l'autre et de lire les resultats du sonar. Si les deux mesures indiquent un obstacle trop proche, l'angle est augmenté et le procédé répété. Dès qu'une trajectoire indique un chemin libre ou du moins un obstacle à distance suffisante, le robot avance en ligne droite suivant cette trajectoire. L'instrument doit être utilisée ici pour vérifier que le robot effectue précisement des rotations des angles souhaités et qu'il sache revenir en position initiale pour éventuellement recommencer avec un angle plus grand.&lt;br /&gt;
&lt;br /&gt;
* Pour permettre de suivre le comportement du robot, faites afficher sur la brique de contrôle MindStorm l'angle de rotation pour le dernier contournement et la distance parcourue le long de la dernière ligne droite.&lt;br /&gt;
&lt;br /&gt;
Intégrez les comportements pour obtenir un robot capable de contourner les obstacles avec un minimum d'intelligence.&lt;br /&gt;
&lt;br /&gt;
Voici un exemple de contournement d'obstacle avec l'algorithme décrit.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Parcours-boussole.png|Contournement d'obstacle&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&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; Bailet Jérôme - Teneur Timothée&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;Module boussole&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Module gyroscope&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Instrument2012-1|Robot aux instruments 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 solaire ==&lt;br /&gt;
Le but est de concevoir un robot capable de trouver le meilleur point de rechargement solaire dans une pièce et de se mettre en mode de rechargement&lt;br /&gt;
tout en étant capable de se réveiller après une période de charge. Vous devez réaliser les actions décrites dans la suite.&lt;br /&gt;
&lt;br /&gt;
* Votre robot doit déjà être capable de se déplacer dans une pièce en évitant les obstacles et de mesurer l'ensoleillement en différents points. L'algorithme de recherche du point idéal pourrait être de se déplacer à volonté (on suppose la pièce fermée) en calculant l'ensoleillement maximal. Au bout d'un temps défini, le robot compare l'ensoleillement local au maximum trouvé dans son premier parcours et s'arrête dès qu'il tombe sur un ensoleillement égal à une fraction du maximum (80% par exemple). &lt;br /&gt;
&lt;br /&gt;
* Concevez une alimentation ad hoc. Par exemple une batterie rechargeable pour MindStorm connectée, via des relais ou transistors, d'une part au bloc contrôleur du MindStorm et d'autre part au panneau solaire. Un régulateur entre les panneaux et la batterie sera nécessaire. Réalisez aussi un dispositif électronique indépendant (superviseur) capable de coller le relai d'alimentation du MindStorm dès que la charge de la batterie est raisonnable. Vous pourrez vous appuyer sur des composants intégrés de recharge de batterie (de type DS2715) et sur une supervision impliquant un microcontroleur Atmel AVR (au départ un arduino, puis transfert sur un microcontroleur seul). Commencez par lister le matériel nécessaire pour passer la commande.&lt;br /&gt;
&lt;br /&gt;
* Il ne vous reste plus qu'à écrire le comportement du robot quand il trouve son coin au soleil. A savoir, coller le relai de charge de sa batterie tout en se suicidant en decollant son relai d'alimentation. Il lui faut aussi décoller le relai de chargement quand il se réveille.&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; {Geiger Emilien}&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: red;&amp;quot;&amp;gt;Batterie rechargeable pour MindStorm&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Panneaux solaires&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Modules relais&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Dispositif électronique de réveil&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Solaire2012-1|Robot solaire 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 téléguidé avec système embarqué ==&lt;br /&gt;
Votre robot doit pouvoir être radio-guidé par un contrôleur. Le dit contrôleur peut diriger le robot au vu de l'image de la webcam embarquée. L'acquisition de la webcam et sa diffusion par WiFi est assuré par un système embarqué FoxBoard. La FoxBoard vous sera livrée configurée mais il faudra l'embarquer dans votre robot avec tous ses accessoires (webcam, module &amp;lt;tt&amp;gt;bluetooth&amp;lt;/tt&amp;gt;, boitier de piles). Un calcul du temps d'autonomie doit être effectué. Dans un premier temps le radio-guidage peut se faire à l'aide du logiciel MindStorm par &amp;lt;tt&amp;gt;bluetooth&amp;lt;/tt&amp;gt;. Dans un second temps il faut étudier la possibilité d'un radio-guidage par WiFi, les ordres étant transmis par un navigateur Web au serveur Web de la FoxBoard puis transmis au micro-contrôleur MindStorm par &amp;lt;tt&amp;gt;bluetooth&amp;lt;/tt&amp;gt;. Vous aurez le choix de programmer votre robot avec le logiciel MindStorm ou avec un langage de bas niveau proche du langage C (voir la page web [http://www.eggwall.com/2011/08/lego-nxt-mindstorm-with-linux.html]).&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; Jean-Christophe Fabrici,Gunst Nicolas &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;Téléphone Android&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;FoxBoard avec webcam, interface WiFi, convertisseur &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;Boitier piles&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Teleguide2012-1|Robot téléguidé 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; Libaert Romain &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;Téléphone Android&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;FoxBoard avec webcam, interface WiFi, convertisseur &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;Boitier piles&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Teleguide2012-1|Robot téléguidé 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 récupérateur d'objet ==&lt;br /&gt;
&lt;br /&gt;
L'objectif est de créer un robot capable de récupérer un objet situé sur une base RFID et de le transporter vers une autre base, elle aussi signalée par une RFID.&lt;br /&gt;
&lt;br /&gt;
Le robot doit être capable de réaliser les actions suivantes : &lt;br /&gt;
&lt;br /&gt;
* Suivre une ligne et détecter les RFID sur son chemin.&lt;br /&gt;
* Lire les RFID pour savoir ce que le robot doit faire : Soulever un objet ou le déposer.&lt;br /&gt;
* Communiquer par Bluetooth entre deux boites NXT (utilisation de 4 servo moteurs).&lt;br /&gt;
&lt;br /&gt;
Le robot est donc constitué de deux éléments essentiel une base motrice et une pince.&lt;br /&gt;
&lt;br /&gt;
Nous avons en premier lieu créer la base motrice avec deux servomoteurs avec un socle permettant de placer deux boites NXT. Puis, nous avons utiliser &lt;br /&gt;
Par la suite nous avons intégrer un troisième servomoteur pour pouvoir soulever la pince. La pince est commandé par un quatrième servomoteur.&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; Saunders Déborah - Wasilewski Jean &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;Module RFID&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Cartes RFID&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Scotch de couleur&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Robot transporteur]] &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;
= Intégration des fonctionnalités =&lt;br /&gt;
Une fois toutes les études terminées et les solutions implantées (sous forme de briques personnalisées par exemple), vous doterez votre robot des fonctionnalités nécessaires à la réalisation de la démonstration finale. Votre robot doit être capable de suivre des marquages discontinus au sol, être capable de communiquer avec les autres robots, être capable de se repérer dans l'espace en repérant des cartes RFID et enfin doit embarquer une FoxBoard avec une connexion WiFi et une webcam.&lt;br /&gt;
&lt;br /&gt;
Les robots peuvent se trouver soit dans un mode autonome soit dans un mode téléguidé. Dans le mode téléguidé, le robot est contrôlé à l'aide d'un téléphone Android connecté sur le réseau WiFi de l'école. Il doit être possible de le faire avancer, reculer ou tourner. Il doit être possible aussi d'obtenir une image de la webcam.&lt;br /&gt;
&lt;br /&gt;
Le comportement en mode autonome est plus complexe :&lt;br /&gt;
* le robot tente de suivre un marquage de couleur au sol, ce marquage peut être discontinu, la boussole est utilisée pour passer en ligne droite d'un marquage à l'autre et pour suivre les marquages ;&lt;br /&gt;
* le contrôleur peut demander à un robot de changer de sens de parcours ou de changer de couleur de parcours ;&lt;br /&gt;
* les robots communiquent à leur FoxBoard la couleur du parcours suivi, le dernier tag RFID détecté et la position de leur boussole ;&lt;br /&gt;
* ces informations sont diffusées entre les FoxBoard, elles sont aussi capable d'indiquer la position des robots sur une carte ;&lt;br /&gt;
* quand une FoxBoard s'aperçoit qu'un parcours est utilisé par moins de robots qu'un autre parcours, elle peut demander à son robot de changer de couleur de parcours pour équilibrer le nombre de robots.&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;Matériel&amp;lt;/th&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Boite lego MindStorm&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Module RFID&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Module boussole&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Module gyroscope&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Téléphone Android&amp;lt;/td&amp;gt; &lt;br /&gt;
     &amp;lt;td&amp;gt;FoxBoard&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;WebCam&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Adaptateur USB/WiFi&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Adaptateur BlueTooth&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Hub USB&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Boitier piles&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Piles rechargeables&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;Nombre&amp;lt;/th&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;8/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt; &lt;br /&gt;
     &amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt;1/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;8/8 (deux non testés)&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;100/100&amp;lt;/span&amp;gt;&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;
Pour configurer la FoxBoard avec tout le matériel nécessaire, suivez les [[FoxBoard pour MindStorm 2012|instructions]].&lt;br /&gt;
&lt;br /&gt;
Pour une description du système à obtenir suivez la [[FoxBoard MindStorm système 2012|flèche]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Démonstration finale =&lt;br /&gt;
Pour la démonstration finale vous tracerez une grande piste comprenant au moins deux parcours (voir schéma ci-dessous). Des cartes RFID doivent être disposées en des points précis de chaque parcours. Vous placerez vos robots sur l'un des parcours, tous orientés dans le même sens. Les robots vont cheminer un certain temps sur ce parcours (l'occasion de vérifier le bon suivi du marquage au sol et que les robots savent tenir leurs distances). Ils doivent ensuite se répartir automatiquement sur les deux parcours disponibles. Un contrôleur ordonne à son robot de changer de sens de parcours. Les robots devraient se bloquer. Le contrôleur téléguide le robot pour le sortir du parcours, les autres robots devraient se débloquer.&lt;br /&gt;
&lt;br /&gt;
Voici un exemple de double parcours.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Parcours-double.png|Parcours double&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Notation =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Noms !! Partie I !! Partie II !! 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>Dsaunder</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=BE_2012-2013&amp;diff=1237</id>
		<title>BE 2012-2013</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=BE_2012-2013&amp;diff=1237"/>
				<updated>2013-02-04T08:33:20Z</updated>
		
		<summary type="html">&lt;p&gt;Dsaunder : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= But à atteindre =&lt;br /&gt;
&lt;br /&gt;
Ce bureau d'étude a comme finalité la construction de robots patrouilleurs. Ces robots doivent parcourir de façon semi-autonome un espace en accumulant des données. Ces données peuvent être, par exemple, des images de leur environnement ou le résultat d'écoutes WiFi. Un robot semi-autonome est un robot capable de se déplacer dans son espace sans intervention humaine en suivant un balisage quelconque (marquage au sol, tags RFID, sons particuliers, etc). Un humain doit cependant pouvoir prendre le contrôle partiel ou total d'un robot. Le contrôle partiel consiste à faire varier la vitesse du robot, le sens du parcours du robot, etc. Le contrôle total consiste à gérer complétement le déplacement du robot, même si ce dernier évite encore les collisions (que le contrôleur pourrait ne pas avoir pu prévoir). Les robots doivent aussi pouvoir communiquer entre eux pour s'échanger des informations de positionnement, pour pouvoir s'éviter ou pour pouvoir se regrouper (par exemple pour pouvoir explorer en détail un lieu particulier). A ce propos il est fondamental que les robots sachent se positionner pour pouvoir annoter les informations envoyées ou stockées (images ou données).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Matériel à votre disposition =&lt;br /&gt;
&lt;br /&gt;
[[Image:boite_mindstorm.jpg|150px|right]]&lt;br /&gt;
[[Image:foxboard.jpg|150px|left]]&lt;br /&gt;
Les couches basses du robot seront réalisées à l'aide de Lego MindStorm. Le Lego va permettre de réaliser le chassis avec sa motorisation et d'y installer divers capteurs. Il est même possible d'assurer une certaine communication entre robots grâce à la technologie &amp;lt;tt&amp;gt;bluetooth&amp;lt;/tt&amp;gt; intégrée au micro-contrôleur MindStorm. Pour aller plus loin, il est nécessaire d'embarquer un micro-PC de type FoxBoard sur le robot. C'est ce micro-PC qui fera faire les acquisitions d'images ou les analyses WiFi et c'est à lui que le micro-contrôleur du MindStorm pourra envoyer ses données de localisation.&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. Par la suite les résultats devront être incorporés dans chaque robot pour obtenir un robot tel que décrit plus haut. Notez que tous les robots doivent savoir s'arrêter quand un obstacle se présente devant eux (utilisation du sonar MindStorm).&lt;br /&gt;
&lt;br /&gt;
== Robot suiveur de ligne ==&lt;br /&gt;
Vous devez créer un robot capable de suivre une courbe discontinue au sol. Le robot doit être capable de réaliser les actions ci-dessous.&lt;br /&gt;
* en cas de perte du marquage, tourner dans un sens puis dans l'autre pour tenter de le retrouver avec des angles de plus en plus grands ;&lt;br /&gt;
* si le marquage ne peut pas être retrouvé, se remettre dans la position de la perte initiale et partir tout droit ;&lt;br /&gt;
* se remettre dans l'axe du marquage lorsque ce marquage est retrouvé ;&lt;br /&gt;
* s'arrêter quand un obstacle se présente devant lui et repartir si l'obstacle disparait ;&lt;br /&gt;
* changer de parcours sur commande, c'est à dire emprunter un parcours d'une couleur différente dès qu'il est rencontré ;&lt;br /&gt;
* inverser son sens de parcours.&lt;br /&gt;
&lt;br /&gt;
Voici des exemples de parcours discontinus pouvant être suivis dans les deux sens.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Parcours-carre.png|Parcours carré&lt;br /&gt;
File:Parcours-cercle.png‎|Parcours avec arcs&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&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; {Floriane Chevalier} &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;Scotch de couleur&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[SuiveurLigne2012-1|Robot suiveur de ligne 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;
== Robots synchronisés ==&lt;br /&gt;
Cette étude sera menée par deux binômes. Vos deux robots doivent être capables de se synchroniser. Il vous est demandé de réaliser le comportement suivant :&lt;br /&gt;
&lt;br /&gt;
* séparés, les robots avancent tout droit et s'arrêtent dès qu'ils détectent un obstacle avec leur sonar ;&lt;br /&gt;
* les deux robots doivent pouvoir être couplés côte à côte ;&lt;br /&gt;
* dans le mode couplé, les robots avancent quand aucun obstacle n'est détecté par leurs sonars ;&lt;br /&gt;
* dans le mode couplé, si un robot détecte un obstacle et l'autre non le couple tourne dans la direction où aucun obstacle n'est détecté.&lt;br /&gt;
&lt;br /&gt;
La communication entre les deux robots se fait par &amp;lt;tt&amp;gt;bluetooth&amp;lt;/tt&amp;gt;.&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; {DUPLOUY Corentin &amp;amp; DRIOUICH Safouane} &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;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Synchronize2012-1|Robot communicant 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;  {COUENNE Bastien} &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;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Synchronize2012-2|Robot communicant 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;
== Robot suiveur RFID ==&lt;br /&gt;
Vous doterez votre robot d'un lecteur RFID et d'un équipement de type boussole. Votre robot doit être capable de réaliser les opérations ci-après :&lt;br /&gt;
&lt;br /&gt;
* trouver sous une marque de couleur précise (feuille A4, disque, ...) une carte RFID ;&lt;br /&gt;
* partir dans une direction donnée ; le robot s'oriente avec la boussole puis se lance avec ses deux moteurs sans tenter de corriger la trajectoire ;&lt;br /&gt;
* mémoriser des caps en fonction des identifiants des cartes RFID.&lt;br /&gt;
&lt;br /&gt;
Par la suite vous intégrez ces trois fonctionnalités pour obtenir un robot capable de suivre une trajectoire matérialisée par des marques sous lesquelles une carte RFID est dissimulée.&lt;br /&gt;
Quand le robot détecte une marque via son capteur de couleur, il se met à chercher l'emplacement exact de la carte RFID. Une fois la carte localisée, le robot trouve le prochain cap à suivre en fonction de l'identifiant de la carte RFID. Le robot s'oriente sur ce cap avec sa boussole puis se lance vers la marque suivante. Et ainsi de suite.&lt;br /&gt;
&lt;br /&gt;
Voici un exemple de parcours en suivant des marques RFID.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Parcours-marques.png|Parcours RFID&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&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; Jouy Alexandre - De Arriba Kévin &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;Module RFID&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Cartes RFID&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;module boussole&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Marques de couleur&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[SuiveurRFID2012-1|Robot suiveur RFID 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 naviguant aux instruments ==&lt;br /&gt;
Vous doterez votre robot d'une boussole ou d'un gyroscope pour lui permettre de connaitre précisement sa direction. Vous devez réaliser les actions décrites dans la suite.&lt;br /&gt;
&lt;br /&gt;
* Vous commencerez par faire en sorte que votre robot sache avancer en ligne droite, pour cela vous utiliserez le contrôle PID décrit sur la page [http://wikipedia.org/wiki/PID_controller WikiPedia]. Pour simplifier ce qui est dit sur cette page, sachez le principe appliqué à votre robot va être d'effectuer des corrections sur la trajectoire en utilisant des rotations. L'angle de ces rotations va être calculé en fonction de l'erreur de trajectoire indiqué par l'instrument. Plus exactement par la somme d'une constante multipliée par l'erreur instantanée, d'une autre constante multipliée par l'intégrale de l'erreur et enfin d'une dernière constante multipliée par la dérivée de l'erreur. A vous de trouver les valeurs adaptées des trois constantes.&lt;br /&gt;
&lt;br /&gt;
* Par la suite faites en sorte que votre robot sache contourner les obstacles au plus juste. Au plus juste signifiant qu'il tournera vers la droite ou vers la gauche en jugeant où se trouve le chemin le plus libre. L'algorithme à appliquer consiste à tourner le robot d'un angle faible dans un sens puis dans l'autre et de lire les resultats du sonar. Si les deux mesures indiquent un obstacle trop proche, l'angle est augmenté et le procédé répété. Dès qu'une trajectoire indique un chemin libre ou du moins un obstacle à distance suffisante, le robot avance en ligne droite suivant cette trajectoire. L'instrument doit être utilisée ici pour vérifier que le robot effectue précisement des rotations des angles souhaités et qu'il sache revenir en position initiale pour éventuellement recommencer avec un angle plus grand.&lt;br /&gt;
&lt;br /&gt;
* Pour permettre de suivre le comportement du robot, faites afficher sur la brique de contrôle MindStorm l'angle de rotation pour le dernier contournement et la distance parcourue le long de la dernière ligne droite.&lt;br /&gt;
&lt;br /&gt;
Intégrez les comportements pour obtenir un robot capable de contourner les obstacles avec un minimum d'intelligence.&lt;br /&gt;
&lt;br /&gt;
Voici un exemple de contournement d'obstacle avec l'algorithme décrit.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Parcours-boussole.png|Contournement d'obstacle&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&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; Bailet Jérôme - Teneur Timothée&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;Module boussole&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Module gyroscope&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Instrument2012-1|Robot aux instruments 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 solaire ==&lt;br /&gt;
Le but est de concevoir un robot capable de trouver le meilleur point de rechargement solaire dans une pièce et de se mettre en mode de rechargement&lt;br /&gt;
tout en étant capable de se réveiller après une période de charge. Vous devez réaliser les actions décrites dans la suite.&lt;br /&gt;
&lt;br /&gt;
* Votre robot doit déjà être capable de se déplacer dans une pièce en évitant les obstacles et de mesurer l'ensoleillement en différents points. L'algorithme de recherche du point idéal pourrait être de se déplacer à volonté (on suppose la pièce fermée) en calculant l'ensoleillement maximal. Au bout d'un temps défini, le robot compare l'ensoleillement local au maximum trouvé dans son premier parcours et s'arrête dès qu'il tombe sur un ensoleillement égal à une fraction du maximum (80% par exemple). &lt;br /&gt;
&lt;br /&gt;
* Concevez une alimentation ad hoc. Par exemple une batterie rechargeable pour MindStorm connectée, via des relais ou transistors, d'une part au bloc contrôleur du MindStorm et d'autre part au panneau solaire. Un régulateur entre les panneaux et la batterie sera nécessaire. Réalisez aussi un dispositif électronique indépendant (superviseur) capable de coller le relai d'alimentation du MindStorm dès que la charge de la batterie est raisonnable. Vous pourrez vous appuyer sur des composants intégrés de recharge de batterie (de type DS2715) et sur une supervision impliquant un microcontroleur Atmel AVR (au départ un arduino, puis transfert sur un microcontroleur seul). Commencez par lister le matériel nécessaire pour passer la commande.&lt;br /&gt;
&lt;br /&gt;
* Il ne vous reste plus qu'à écrire le comportement du robot quand il trouve son coin au soleil. A savoir, coller le relai de charge de sa batterie tout en se suicidant en decollant son relai d'alimentation. Il lui faut aussi décoller le relai de chargement quand il se réveille.&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; {Geiger Emilien}&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: red;&amp;quot;&amp;gt;Batterie rechargeable pour MindStorm&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Panneaux solaires&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Modules relais&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Dispositif électronique de réveil&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Solaire2012-1|Robot solaire 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 téléguidé avec système embarqué ==&lt;br /&gt;
Votre robot doit pouvoir être radio-guidé par un contrôleur. Le dit contrôleur peut diriger le robot au vu de l'image de la webcam embarquée. L'acquisition de la webcam et sa diffusion par WiFi est assuré par un système embarqué FoxBoard. La FoxBoard vous sera livrée configurée mais il faudra l'embarquer dans votre robot avec tous ses accessoires (webcam, module &amp;lt;tt&amp;gt;bluetooth&amp;lt;/tt&amp;gt;, boitier de piles). Un calcul du temps d'autonomie doit être effectué. Dans un premier temps le radio-guidage peut se faire à l'aide du logiciel MindStorm par &amp;lt;tt&amp;gt;bluetooth&amp;lt;/tt&amp;gt;. Dans un second temps il faut étudier la possibilité d'un radio-guidage par WiFi, les ordres étant transmis par un navigateur Web au serveur Web de la FoxBoard puis transmis au micro-contrôleur MindStorm par &amp;lt;tt&amp;gt;bluetooth&amp;lt;/tt&amp;gt;. Vous aurez le choix de programmer votre robot avec le logiciel MindStorm ou avec un langage de bas niveau proche du langage C (voir la page web [http://www.eggwall.com/2011/08/lego-nxt-mindstorm-with-linux.html]).&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; Jean-Christophe Fabrici,Gunst Nicolas &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;Téléphone Android&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;FoxBoard avec webcam, interface WiFi, convertisseur &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;Boitier piles&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Teleguide2012-1|Robot téléguidé 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; Libaert Romain &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;Téléphone Android&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;FoxBoard avec webcam, interface WiFi, convertisseur &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;Boitier piles&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[Teleguide2012-1|Robot téléguidé 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;
= Intégration des fonctionnalités =&lt;br /&gt;
Une fois toutes les études terminées et les solutions implantées (sous forme de briques personnalisées par exemple), vous doterez votre robot des fonctionnalités nécessaires à la réalisation de la démonstration finale. Votre robot doit être capable de suivre des marquages discontinus au sol, être capable de communiquer avec les autres robots, être capable de se repérer dans l'espace en repérant des cartes RFID et enfin doit embarquer une FoxBoard avec une connexion WiFi et une webcam.&lt;br /&gt;
&lt;br /&gt;
Les robots peuvent se trouver soit dans un mode autonome soit dans un mode téléguidé. Dans le mode téléguidé, le robot est contrôlé à l'aide d'un téléphone Android connecté sur le réseau WiFi de l'école. Il doit être possible de le faire avancer, reculer ou tourner. Il doit être possible aussi d'obtenir une image de la webcam.&lt;br /&gt;
&lt;br /&gt;
Le comportement en mode autonome est plus complexe :&lt;br /&gt;
* le robot tente de suivre un marquage de couleur au sol, ce marquage peut être discontinu, la boussole est utilisée pour passer en ligne droite d'un marquage à l'autre et pour suivre les marquages ;&lt;br /&gt;
* le contrôleur peut demander à un robot de changer de sens de parcours ou de changer de couleur de parcours ;&lt;br /&gt;
* les robots communiquent à leur FoxBoard la couleur du parcours suivi, le dernier tag RFID détecté et la position de leur boussole ;&lt;br /&gt;
* ces informations sont diffusées entre les FoxBoard, elles sont aussi capable d'indiquer la position des robots sur une carte ;&lt;br /&gt;
* quand une FoxBoard s'aperçoit qu'un parcours est utilisé par moins de robots qu'un autre parcours, elle peut demander à son robot de changer de couleur de parcours pour équilibrer le nombre de robots.&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;Matériel&amp;lt;/th&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Boite lego MindStorm&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Module RFID&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Module boussole&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Module gyroscope&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Téléphone Android&amp;lt;/td&amp;gt; &lt;br /&gt;
     &amp;lt;td&amp;gt;FoxBoard&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;WebCam&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Adaptateur USB/WiFi&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Adaptateur BlueTooth&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Hub USB&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Boitier piles&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;Piles rechargeables&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;Nombre&amp;lt;/th&amp;gt;&lt;br /&gt;
     &amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;8/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt; &lt;br /&gt;
     &amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt;1/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;8/8 (deux non testés)&amp;lt;/span&amp;gt;&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;8/8&amp;lt;/span&amp;gt;&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;100/100&amp;lt;/span&amp;gt;&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;
Pour configurer la FoxBoard avec tout le matériel nécessaire, suivez les [[FoxBoard pour MindStorm 2012|instructions]].&lt;br /&gt;
&lt;br /&gt;
Pour une description du système à obtenir suivez la [[FoxBoard MindStorm système 2012|flèche]].&lt;br /&gt;
&lt;br /&gt;
= Robot récupérateur d'objet =&lt;br /&gt;
&lt;br /&gt;
--Élèves--&lt;br /&gt;
&lt;br /&gt;
Déborah Saunders et Jean Wasilewski&lt;br /&gt;
&lt;br /&gt;
--But--&lt;br /&gt;
&lt;br /&gt;
L'objectif est de créer un robot capable de récupérer un objet cylindrique et de pouvoir se déplacer avec.&lt;br /&gt;
&lt;br /&gt;
--Réalisation--&lt;br /&gt;
&lt;br /&gt;
Nous avons en premier lieu créer une base avec deux servomoteurs avec un socle permettant de placer une boîte Foxboard (pour l'intégration d'autres systèmes) et un automate Mindstorm.&lt;br /&gt;
Par la suite nous avons intégrer un troisième servomoteur pour pouvoir soulever la pince. La pince est commandé par un quatrième servomoteur.&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; Saunders Déborah - Wasilewski Jean &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;Module RFID&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Cartes RFID&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Scotch de couleur&amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; [[SuiveurRFID2012-1|Robot suiveur RFID 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;
= Démonstration finale =&lt;br /&gt;
Pour la démonstration finale vous tracerez une grande piste comprenant au moins deux parcours (voir schéma ci-dessous). Des cartes RFID doivent être disposées en des points précis de chaque parcours. Vous placerez vos robots sur l'un des parcours, tous orientés dans le même sens. Les robots vont cheminer un certain temps sur ce parcours (l'occasion de vérifier le bon suivi du marquage au sol et que les robots savent tenir leurs distances). Ils doivent ensuite se répartir automatiquement sur les deux parcours disponibles. Un contrôleur ordonne à son robot de changer de sens de parcours. Les robots devraient se bloquer. Le contrôleur téléguide le robot pour le sortir du parcours, les autres robots devraient se débloquer.&lt;br /&gt;
&lt;br /&gt;
Voici un exemple de double parcours.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Parcours-double.png|Parcours double&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Notation =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Noms !! Partie I !! Partie II !! 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>Dsaunder</name></author>	</entry>

	</feed>