<?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=Rlibaert</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=Rlibaert"/>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php/Sp%C3%A9cial:Contributions/Rlibaert"/>
		<updated>2026-04-24T16:10:11Z</updated>
		<subtitle>Contributions de l’utilisateur</subtitle>
		<generator>MediaWiki 1.29.2</generator>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=2137</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=2137"/>
				<updated>2013-05-30T15:48:09Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : /* La programmation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons intégrer différentes fonctions.&lt;br /&gt;
&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
&amp;lt;include nopre noesc src=&amp;quot;/home/pedago/ppeip/include/video-RobotTéléguidé2-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;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;), ainsi qu'une &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les outils nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_SchémaMindstorm.jpg|Schéma de principe&lt;br /&gt;
file:RL_robotV1.jpg|Version 1 du robot&lt;br /&gt;
file:RL_robotV1Piles.jpg|Le changement des piles n'est pas aisé&lt;br /&gt;
file:RL_robotV1Vide.jpg|Le robot débarrassé du NXT et FoxBoard&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_robotV21.jpg&lt;br /&gt;
file:RL_robotV22.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; reçoit par Bluetooth des messages envoyés par la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; et accessible par Wi-Fi depuis un terminal quelconque.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation du boîtier NXT'''&lt;br /&gt;
&lt;br /&gt;
Les fonctions de déplacement contenues dans le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; s'articulent autour d'un algorithme simple. Ceci m'a permis d'utiliser le logiciel de programmation fourni avec le pack &amp;lt;tt&amp;gt;LEGO MindStorms&amp;lt;/tt&amp;gt;, basé sur une programmation en &amp;lt;tt&amp;gt;LabView&amp;lt;/tt&amp;gt; (langage de programmation graphique). Je peux d'ailleurs dire également que c'est un moyen de programmation qui est peu intuitif mais reste cependant efficace. D'autres solutions de programmation existent comme &amp;lt;tt&amp;gt;NXC&amp;lt;/tt&amp;gt; qui est un langage basé sur le C et adapté pour fonctionner avec les boîtiers &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour revenir à l'algorithme même, le mode basique se décompose comme suit :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego1.jpg|400px|thumb|right|Programme final basique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Tant que vrai&lt;br /&gt;
      Recevoir message bluetooth&lt;br /&gt;
      Associer la valeur du message à une variable&lt;br /&gt;
      Si nouveau message&lt;br /&gt;
         Comparaison de la valeur du message&lt;br /&gt;
            0: Arrêt&lt;br /&gt;
            1: Avancer&lt;br /&gt;
            2: Reculer&lt;br /&gt;
            3: Tourner à gauche&lt;br /&gt;
            4: Tourner à droite&lt;br /&gt;
         Fin comparaison&lt;br /&gt;
      Fin si&lt;br /&gt;
      Envoi message de confirmation&lt;br /&gt;
   Fin tant que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du mode total, il suffit simplement d'ajouter un cas n°5 qui récupérera les instructions pour contrôler la puissance à fournir par les moteurs :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego3.jpg|600px|thumb|center|Modèle d'instructions pour le moteur A pour le cas 5]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            5: Récupérer et envoyer les valeurs pour les moteurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut cependant faire attention au fait que les blocs moteurs ne prennent que la valeur absolue du nombre envoyé pour la puissance. Par conséquent il faut vérifier le signe des valeurs reçues avant de les envoyer aux blocs moteurs qui seront alors programmés pour avancer ou reculer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation de la FoxBoard G20'''&lt;br /&gt;
&lt;br /&gt;
La &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; est un 'mini' ordinateur fonctionnant sous &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt;, il est donc possible de la configurer afin de lui faire faire ce que l'on souhaite. En se connectant à la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; (en Ethernet ou par Wi-Fi), il est possible d'y enter des commandes dans un terminal depuis une machine classique sous &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt;, grâce à la commande exécutée en mode Super Utilisateur (su) :&lt;br /&gt;
   ssh root@192.168.100.1  ou  ssh root@192.168.1.1&lt;br /&gt;
La commande change selon le type de connexion (filaire ou non).&lt;br /&gt;
A partir de là, nous sommes en mesure de naviguer dans l'arborescence de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, régler différents paramètres ou encore accéder à diverses informations.&lt;br /&gt;
Par exemple, afin de pouvoir se connecter par Wi-Fi à notre robot, il est nécessaire de régler l'interface Wi-Fi en mode Master. Cependant l'intérêt principal que j'ai trouvé à me connecter en SSH à la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; aura été de pouvoir télécharger des fichiers pour modifier son site de configuration. Je détaillerais la démarche un peu plus tard. &lt;br /&gt;
&lt;br /&gt;
A vrai dire, on ne peut pas vraiment parler de programmation de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, mais plutôt d'une configuration (du moins si on s'en tient à l'objectif de base). On accède à la page de configuration via un navigateur internet, depuis quelque machine que ce soit qui y est connectée, en tapant dans la barre d'adresse :&lt;br /&gt;
   192.168.100.1  ou  192.168.1.1&lt;br /&gt;
Encore une fois, l'adresse diffère selon le type de connexion employée.&lt;br /&gt;
&lt;br /&gt;
C'est à partir de cette page que l'on lance les différents scripts préchargés pour contrôler le robot. C'est aussi là que se trouve la page de contrôle qui envoie les ordres au boîtier &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Modification de l'interface web'''&lt;br /&gt;
&lt;br /&gt;
Une fois la programmation du &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; terminée ainsi que la configuration de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, j'ai pu commencer à m'amuser avec mon robot en le contrôlant grâce à mon téléphone. Je me suis alors rendu compte que l'interface du site était très peu appréciable sur un tel appareil qui n'offre qu'un écran de quelque pouces. J'ai alors imaginé une interface plus épurée et mieux pensée pour un téléphone qui consiste simplement à superposer les boutons de contrôle du robot au dessus de l'image diffusée par la Webcam. J'ai pour cela utilisé les fichiers source qui sont disponibles ici [[https://peip-ima.polytech-lille.net:40001/archive/legowww-2012.tar]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_screenMobile.png|400px|thumb|center|Interface revue pour les mobiles]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour utiliser les fichiers créés dans la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, il faut les transférer. On y parvient grâce à &amp;lt;tt&amp;gt;SCP (Secure Copy Protocol)&amp;lt;/tt&amp;gt; qui permet de transférer des fichiers entre des machines &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt; des fichiers en SSH. La commande :&lt;br /&gt;
   scp file.txt root@192.168.100.1:/home/folder&lt;br /&gt;
Copiera le fichier &amp;lt;tt&amp;gt;file.txt&amp;lt;/tt&amp;gt; dans le dossier &amp;lt;tt&amp;gt;/home/folder&amp;lt;/tt&amp;gt; de la machine &amp;lt;tt&amp;gt;192.168.100.1&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contrôle par accéléromètre'''&lt;br /&gt;
&lt;br /&gt;
Via l'interface mobile, la rose des vents du mode total est remplacée par un contrôle via l'accéléromètre. Il suffit de verrouiller l'orientation de l'écran du téléphone et pencher le téléphone afin de déplacer le robot. Ce mode a aussi l'avantage de débarrasser l'écran de toutes commandes pouvant gêner la vue de la Webcam. Ce mode fonctionne sur les appareils mobiles pourvus du système d'exploitation Android et fonctionne également sur iOS (cependant la vidéo ne semble pas fonctionner).&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est de la partie technique, ce système de contrôle est réalisé simplement grâce à un eventListener utilisé dans un fichier JavaScript associé à la page de la version mobile. Pour faire simple, ce listener récupère les valeurs des angles selon 3 axes de l'espace qui informent sur l'orientation du téléphone. Ces valeurs sont ensuite converties pour donner un cap et une vitesse&lt;br /&gt;
aux moteurs du robot.&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
Je recommande vivement lors de la réalisation des projets de consulter les wikis des autres groupes et aussi des projets réalisées lors des années précédentes.&lt;br /&gt;
De plus je mets ici à disposition les fichiers sources écrits ou modifiés pour ce projet [[Fichier:RL_sources.zip]].&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=2136</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=2136"/>
				<updated>2013-05-30T15:47:48Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : /* La programmation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons intégrer différentes fonctions.&lt;br /&gt;
&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
&amp;lt;include nopre noesc src=&amp;quot;/home/pedago/ppeip/include/video-RobotTéléguidé2-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;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;), ainsi qu'une &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les outils nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_SchémaMindstorm.jpg|Schéma de principe&lt;br /&gt;
file:RL_robotV1.jpg|Version 1 du robot&lt;br /&gt;
file:RL_robotV1Piles.jpg|Le changement des piles n'est pas aisé&lt;br /&gt;
file:RL_robotV1Vide.jpg|Le robot débarrassé du NXT et FoxBoard&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_robotV21.jpg&lt;br /&gt;
file:RL_robotV22.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; reçoit par Bluetooth des messages envoyés par la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; et accessible par Wi-Fi depuis un terminal quelconque.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation du boîtier NXT'''&lt;br /&gt;
&lt;br /&gt;
Les fonctions de déplacement contenues dans le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; s'articulent autour d'un algorithme simple. Ceci m'a permis d'utiliser le logiciel de programmation fourni avec le pack &amp;lt;tt&amp;gt;LEGO MindStorms&amp;lt;/tt&amp;gt;, basé sur une programmation en &amp;lt;tt&amp;gt;LabView&amp;lt;/tt&amp;gt; (langage de programmation graphique). Je peux d'ailleurs dire également que c'est un moyen de programmation qui est peu intuitif mais reste cependant efficace. D'autres solutions de programmation existent comme &amp;lt;tt&amp;gt;NXC&amp;lt;/tt&amp;gt; qui est un langage basé sur le C et adapté pour fonctionner avec les boîtiers &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour revenir à l'algorithme même, le mode basique se décompose comme suit :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego1.jpg|400px|thumb|right|Programme final basique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Tant que vrai&lt;br /&gt;
      Recevoir message bluetooth&lt;br /&gt;
      Associer la valeur du message à une variable&lt;br /&gt;
      Si nouveau message&lt;br /&gt;
         Comparaison de la valeur du message&lt;br /&gt;
            0: Arrêt&lt;br /&gt;
            1: Avancer&lt;br /&gt;
            2: Reculer&lt;br /&gt;
            3: Tourner à gauche&lt;br /&gt;
            4: Tourner à droite&lt;br /&gt;
         Fin comparaison&lt;br /&gt;
      Fin si&lt;br /&gt;
      Envoi message de confirmation&lt;br /&gt;
   Fin tant que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du mode total, il suffit simplement d'ajouter un cas n°5 qui récupérera les instructions pour contrôler la puissance à fournir par les moteurs :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego3.jpg|600px|thumb|center|Modèle d'instructions pour le moteur A pour le cas 5]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            5: Récupérer et envoyer les valeurs pour les moteurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut cependant faire attention au fait que les blocs moteurs ne prennent que la valeur absolue du nombre envoyé pour la puissance. Par conséquent il faut vérifier le signe des valeurs reçues avant de les envoyer aux blocs moteurs qui seront alors programmés pour avancer ou reculer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation de la FoxBoard G20'''&lt;br /&gt;
&lt;br /&gt;
La &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; est un 'mini' ordinateur fonctionnant sous &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt;, il est donc possible de la configurer afin de lui faire faire ce que l'on souhaite. En se connectant à la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; (en Ethernet ou par Wi-Fi), il est possible d'y enter des commandes dans un terminal depuis une machine classique sous &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt;, grâce à la commande exécutée en mode Super Utilisateur (su) :&lt;br /&gt;
   ssh root@192.168.100.1  ou  ssh root@192.168.1.1&lt;br /&gt;
La commande change selon le type de connexion (filaire ou non).&lt;br /&gt;
A partir de là, nous sommes en mesure de naviguer dans l'arborescence de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, régler différents paramètres ou encore accéder à diverses informations.&lt;br /&gt;
Par exemple, afin de pouvoir se connecter par Wi-Fi à notre robot, il est nécessaire de régler l'interface Wi-Fi en mode Master. Cependant l'intérêt principal que j'ai trouvé à me connecter en SSH à la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; aura été de pouvoir télécharger des fichiers pour modifier son site de configuration. Je détaillerais la démarche un peu plus tard. &lt;br /&gt;
&lt;br /&gt;
A vrai dire, on ne peut pas vraiment parler de programmation de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, mais plutôt d'une configuration (du moins si on s'en tient à l'objectif de base). On accède à la page de configuration via un navigateur internet, depuis quelque machine que ce soit qui y est connectée, en tapant dans la barre d'adresse :&lt;br /&gt;
   192.168.100.1  ou  192.168.1.1&lt;br /&gt;
Encore une fois, l'adresse diffère selon le type de connexion employée.&lt;br /&gt;
&lt;br /&gt;
C'est à partir de cette page que l'on lance les différents scripts préchargés pour contrôler le robot. C'est aussi là que se trouve la page de contrôle qui envoie les ordres au boîtier &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Modification de l'interface web'''&lt;br /&gt;
&lt;br /&gt;
Une fois la programmation du &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; terminée ainsi que la configuration de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, j'ai pu commencer à m'amuser avec mon robot en le contrôlant grâce à mon téléphone. Je me suis alors rendu compte que l'interface du site était très peu appréciable sur un tel appareil qui n'offre qu'un écran de quelque pouces. J'ai alors imaginé une interface plus épurée et mieux pensée pour un téléphone qui consiste simplement à superposer les boutons de contrôle du robot au dessus de l'image diffusée par la Webcam. J'ai pour cela utilisé les fichiers source qui sont disponibles ici [[https://peip-ima.polytech-lille.net:40001/archive/legowww-2012.tar]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_screenMobile.png|400px|thumb|center|Interface revue pour les mobiles]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour utiliser les fichiers créés dans la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, il faut les transférer. On y parvient grâce à &amp;lt;tt&amp;gt;SCP (Secure Copy Protocol)&amp;lt;/tt&amp;gt; qui permet de transférer des fichiers entre des machines &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt; des fichiers en SSH. La commande :&lt;br /&gt;
   scp file.txt root@192.168.100.1:/home/folder&lt;br /&gt;
Copiera le fichier &amp;lt;tt&amp;gt;file.txt&amp;lt;/tt&amp;gt; dans le dossier &amp;lt;tt&amp;gt;/home/folder&amp;lt;/tt&amp;gt; de la machine &amp;lt;tt&amp;gt;192.168.100.1&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contrôle par accéléromètre'''&lt;br /&gt;
&lt;br /&gt;
Via l'interface mobile, la rose des vents du mode total est remplacée par un contrôle via l'accéléromètre. Il suffit de verrouiller l'orientation de l'écran du téléphone et pencher le téléphone afin de déplacer le robot. Ce mode a aussi l'avantage de débarrasser l'écran de toutes commandes pouvant gêner la vue de la Webcam. Ce mode fonctionne sur les appareils mobiles pourvus du système d'exploitation Android et fonctionne également sur iOS (cependant la vidéo ne semble pas fonctionner).&lt;br /&gt;
Pour ce qui est de la partie technique, ce système de contrôle est réalisé simplement grâce à un eventListener utilisé dans un fichier JavaScript associé à la page de la version mobile. Pour faire simple, ce listener récupère les valeurs des angles selon 3 axes de l'espace qui informent sur l'orientation du téléphone. Ces valeurs sont ensuite converties pour donner un cap et une vitesse&lt;br /&gt;
aux moteurs du robot.&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
Je recommande vivement lors de la réalisation des projets de consulter les wikis des autres groupes et aussi des projets réalisées lors des années précédentes.&lt;br /&gt;
De plus je mets ici à disposition les fichiers sources écrits ou modifiés pour ce projet [[Fichier:RL_sources.zip]].&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=2135</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=2135"/>
				<updated>2013-05-30T15:41:40Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons intégrer différentes fonctions.&lt;br /&gt;
&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
&amp;lt;include nopre noesc src=&amp;quot;/home/pedago/ppeip/include/video-RobotTéléguidé2-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;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;), ainsi qu'une &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les outils nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_SchémaMindstorm.jpg|Schéma de principe&lt;br /&gt;
file:RL_robotV1.jpg|Version 1 du robot&lt;br /&gt;
file:RL_robotV1Piles.jpg|Le changement des piles n'est pas aisé&lt;br /&gt;
file:RL_robotV1Vide.jpg|Le robot débarrassé du NXT et FoxBoard&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_robotV21.jpg&lt;br /&gt;
file:RL_robotV22.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; reçoit par Bluetooth des messages envoyés par la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; et accessible par Wi-Fi depuis un terminal quelconque.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation du boîtier NXT'''&lt;br /&gt;
&lt;br /&gt;
Les fonctions de déplacement contenues dans le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; s'articulent autour d'un algorithme simple. Ceci m'a permis d'utiliser le logiciel de programmation fourni avec le pack &amp;lt;tt&amp;gt;LEGO MindStorms&amp;lt;/tt&amp;gt;, basé sur une programmation en &amp;lt;tt&amp;gt;LabView&amp;lt;/tt&amp;gt; (langage de programmation graphique). Je peux d'ailleurs dire également que c'est un moyen de programmation qui est peu intuitif mais reste cependant efficace. D'autres solutions de programmation existent comme &amp;lt;tt&amp;gt;NXC&amp;lt;/tt&amp;gt; qui est un langage basé sur le C et adapté pour fonctionner avec les boîtiers &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour revenir à l'algorithme même, le mode basique se décompose comme suit :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego1.jpg|400px|thumb|right|Programme final basique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Tant que vrai&lt;br /&gt;
      Recevoir message bluetooth&lt;br /&gt;
      Associer la valeur du message à une variable&lt;br /&gt;
      Si nouveau message&lt;br /&gt;
         Comparaison de la valeur du message&lt;br /&gt;
            0: Arrêt&lt;br /&gt;
            1: Avancer&lt;br /&gt;
            2: Reculer&lt;br /&gt;
            3: Tourner à gauche&lt;br /&gt;
            4: Tourner à droite&lt;br /&gt;
         Fin comparaison&lt;br /&gt;
      Fin si&lt;br /&gt;
      Envoi message de confirmation&lt;br /&gt;
   Fin tant que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du mode total, il suffit simplement d'ajouter un cas n°5 qui récupérera les instructions pour contrôler la puissance à fournir par les moteurs :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego3.jpg|600px|thumb|center|Modèle d'instructions pour le moteur A pour le cas 5]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            5: Récupérer et envoyer les valeurs pour les moteurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut cependant faire attention au fait que les blocs moteurs ne prennent que la valeur absolue du nombre envoyé pour la puissance. Par conséquent il faut vérifier le signe des valeurs reçues avant de les envoyer aux blocs moteurs qui seront alors programmés pour avancer ou reculer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation de la FoxBoard G20'''&lt;br /&gt;
&lt;br /&gt;
La &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; est un 'mini' ordinateur fonctionnant sous &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt;, il est donc possible de la configurer afin de lui faire faire ce que l'on souhaite. En se connectant à la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; (en Ethernet ou par Wi-Fi), il est possible d'y enter des commandes dans un terminal depuis une machine classique sous &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt;, grâce à la commande exécutée en mode Super Utilisateur (su) :&lt;br /&gt;
   ssh root@192.168.100.1  ou  ssh root@192.168.1.1&lt;br /&gt;
La commande change selon le type de connexion (filaire ou non).&lt;br /&gt;
A partir de là, nous sommes en mesure de naviguer dans l'arborescence de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, régler différents paramètres ou encore accéder à diverses informations.&lt;br /&gt;
Par exemple, afin de pouvoir se connecter par Wi-Fi à notre robot, il est nécessaire de régler l'interface Wi-Fi en mode Master. Cependant l'intérêt principal que j'ai trouvé à me connecter en SSH à la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; aura été de pouvoir télécharger des fichiers pour modifier son site de configuration. Je détaillerais la démarche un peu plus tard. &lt;br /&gt;
&lt;br /&gt;
A vrai dire, on ne peut pas vraiment parler de programmation de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, mais plutôt d'une configuration (du moins si on s'en tient à l'objectif de base). On accède à la page de configuration via un navigateur internet, depuis quelque machine que ce soit qui y est connectée, en tapant dans la barre d'adresse :&lt;br /&gt;
   192.168.100.1  ou  192.168.1.1&lt;br /&gt;
Encore une fois, l'adresse diffère selon le type de connexion employée.&lt;br /&gt;
&lt;br /&gt;
C'est à partir de cette page que l'on lance les différents scripts préchargés pour contrôler le robot. C'est aussi là que se trouve la page de contrôle qui envoie les ordres au boîtier &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Modification de l'interface web'''&lt;br /&gt;
&lt;br /&gt;
Une fois la programmation du &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; terminée ainsi que la configuration de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, j'ai pu commencer à m'amuser avec mon robot en le contrôlant grâce à mon téléphone. Je me suis alors rendu compte que l'interface du site était très peu appréciable sur un tel appareil qui n'offre qu'un écran de quelque pouces. J'ai alors imaginé une interface plus épurée et mieux pensée pour un téléphone qui consiste simplement à superposer les boutons de contrôle du robot au dessus de l'image diffusée par la Webcam. J'ai pour cela utilisé les fichiers source qui sont disponibles ici [[https://peip-ima.polytech-lille.net:40001/archive/legowww-2012.tar]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_screenMobile.png|400px|thumb|center|Interface revue pour les mobiles]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour utiliser les fichiers créés dans la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, il faut les transférer. On y parvient grâce à &amp;lt;tt&amp;gt;SCP (Secure Copy Protocol)&amp;lt;/tt&amp;gt; qui permet de transférer des fichiers entre des machines &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt; des fichiers en SSH. La commande :&lt;br /&gt;
   scp file.txt root@192.168.100.1:/home/folder&lt;br /&gt;
Copiera le fichier &amp;lt;tt&amp;gt;file.txt&amp;lt;/tt&amp;gt; dans le dossier &amp;lt;tt&amp;gt;/home/folder&amp;lt;/tt&amp;gt; de la machine &amp;lt;tt&amp;gt;192.168.100.1&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contrôle par accéléromètre'''&lt;br /&gt;
&lt;br /&gt;
Via l'interface mobile, la rose des vents du mode total est remplacée par un contrôle via l'accéléromètre. Il suffit de verrouiller l'orientation de l'écran du téléphone et pencher le téléphone afin de déplacer le robot. Ce mode a aussi l'avantage de débarrasser l'écran de toutes commandes pouvant gêner la vue de la Webcam. Ce mode fonctionne sur les appareils mobiles pourvus du système d'exploitation Android et fonctionne également sur iOS (cependant la vidéo ne semble pas fonctionner).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
Je recommande vivement lors de la réalisation des projets de consulter les wikis des autres groupes et aussi des projets réalisées lors des années précédentes.&lt;br /&gt;
De plus je mets ici à disposition les fichiers sources écrits ou modifiés pour ce projet [[Fichier:RL_sources.zip]].&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=2134</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=2134"/>
				<updated>2013-05-30T15:37:25Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : /* La programmation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons intégrer différentes fonctions.&lt;br /&gt;
&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
&amp;lt;include nopre noesc src=&amp;quot;/home/pedago/ppeip/include/video-RobotTéléguidé2-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;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;), ainsi qu'une &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les outils nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_SchémaMindstorm.jpg|Schéma de principe&lt;br /&gt;
file:RL_robotV1.jpg|Version 1 du robot&lt;br /&gt;
file:RL_robotV1Piles.jpg|Le changement des piles n'est pas aisé&lt;br /&gt;
file:RL_robotV1Vide.jpg|Le robot débarrassé du NXT et FoxBoard&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_robotV21.jpg&lt;br /&gt;
file:RL_robotV22.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; reçoit par Bluetooth des messages envoyés par la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; et accessible par Wi-Fi depuis un terminal quelconque.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation du boîtier NXT'''&lt;br /&gt;
&lt;br /&gt;
Les fonctions de déplacement contenues dans le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; s'articulent autour d'un algorithme simple. Ceci m'a permis d'utiliser le logiciel de programmation fourni avec le pack &amp;lt;tt&amp;gt;LEGO MindStorms&amp;lt;/tt&amp;gt;, basé sur une programmation en &amp;lt;tt&amp;gt;LabView&amp;lt;/tt&amp;gt; (langage de programmation graphique). Je peux d'ailleurs dire également que c'est un moyen de programmation qui est peu intuitif mais reste cependant efficace. D'autres solutions de programmation existent comme &amp;lt;tt&amp;gt;NXC&amp;lt;/tt&amp;gt; qui est un langage basé sur le C et adapté pour fonctionner avec les boîtiers &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour revenir à l'algorithme même, le mode basique se décompose comme suit :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego1.jpg|400px|thumb|right|Programme final basique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Tant que vrai&lt;br /&gt;
      Recevoir message bluetooth&lt;br /&gt;
      Associer la valeur du message à une variable&lt;br /&gt;
      Si nouveau message&lt;br /&gt;
         Comparaison de la valeur du message&lt;br /&gt;
            0: Arrêt&lt;br /&gt;
            1: Avancer&lt;br /&gt;
            2: Reculer&lt;br /&gt;
            3: Tourner à gauche&lt;br /&gt;
            4: Tourner à droite&lt;br /&gt;
         Fin comparaison&lt;br /&gt;
      Fin si&lt;br /&gt;
      Envoi message de confirmation&lt;br /&gt;
   Fin tant que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du mode total, il suffit simplement d'ajouter un cas n°5 qui récupérera les instructions pour contrôler la puissance à fournir par les moteurs :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego3.jpg|600px|thumb|center|Modèle d'instructions pour le moteur A pour le cas 5]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            5: Récupérer et envoyer les valeurs pour les moteurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut cependant faire attention au fait que les blocs moteurs ne prennent que la valeur absolue du nombre envoyé pour la puissance. Par conséquent il faut vérifier le signe des valeurs reçues avant de les envoyer aux blocs moteurs qui seront alors programmés pour avancer ou reculer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation de la FoxBoard G20'''&lt;br /&gt;
&lt;br /&gt;
La &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; est un 'mini' ordinateur fonctionnant sous &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt;, il est donc possible de la configurer afin de lui faire faire ce que l'on souhaite. En se connectant à la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; (en Ethernet ou par Wi-Fi), il est possible d'y enter des commandes dans un terminal depuis une machine classique sous &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt;, grâce à la commande exécutée en mode Super Utilisateur (su) :&lt;br /&gt;
   ssh root@192.168.100.1  ou  ssh root@192.168.1.1&lt;br /&gt;
La commande change selon le type de connexion (filaire ou non).&lt;br /&gt;
A partir de là, nous sommes en mesure de naviguer dans l'arborescence de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, régler différents paramètres ou encore accéder à diverses informations.&lt;br /&gt;
Par exemple, afin de pouvoir se connecter par Wi-Fi à notre robot, il est nécessaire de régler l'interface Wi-Fi en mode Master. Cependant l'intérêt principal que j'ai trouvé à me connecter en SSH à la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; aura été de pouvoir télécharger des fichiers pour modifier son site de configuration. Je détaillerais la démarche un peu plus tard. &lt;br /&gt;
&lt;br /&gt;
A vrai dire, on ne peut pas vraiment parler de programmation de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, mais plutôt d'une configuration (du moins si on s'en tient à l'objectif de base). On accède à la page de configuration via un navigateur internet, depuis quelque machine que ce soit qui y est connectée, en tapant dans la barre d'adresse :&lt;br /&gt;
   192.168.100.1  ou  192.168.1.1&lt;br /&gt;
Encore une fois, l'adresse diffère selon le type de connexion employée.&lt;br /&gt;
&lt;br /&gt;
C'est à partir de cette page que l'on lance les différents scripts préchargés pour contrôler le robot. C'est aussi là que se trouve la page de contrôle qui envoie les ordres au boîtier &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Modification de l'interface web'''&lt;br /&gt;
&lt;br /&gt;
Une fois la programmation du &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; terminée ainsi que la configuration de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, j'ai pu commencer à m'amuser avec mon robot en le contrôlant grâce à mon téléphone. Je me suis alors rendu compte que l'interface du site était très peu appréciable sur un tel appareil qui n'offre qu'un écran de quelque pouces. J'ai alors imaginé une interface plus épurée et mieux pensée pour un téléphone qui consiste simplement à superposer les boutons de contrôle du robot au dessus de l'image diffusée par la Webcam. J'ai pour cela utilisé les fichiers source qui sont disponibles ici [[https://peip-ima.polytech-lille.net:40001/archive/legowww-2012.tar]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_screenMobile.png|400px|thumb|center|Interface revue pour les mobiles]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour utiliser les fichiers créés dans la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, il faut les transférer. On y parvient grâce à &amp;lt;tt&amp;gt;SCP (Secure Copy Protocol)&amp;lt;/tt&amp;gt; qui permet de transférer des fichiers entre des machines &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt; des fichiers en SSH. La commande :&lt;br /&gt;
   scp file.txt root@192.168.100.1:/home/folder&lt;br /&gt;
Copiera le fichier &amp;lt;tt&amp;gt;file.txt&amp;lt;/tt&amp;gt; dans le dossier &amp;lt;tt&amp;gt;/home/folder&amp;lt;/tt&amp;gt; de la machine &amp;lt;tt&amp;gt;192.168.100.1&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contrôle par accéléromètre'''&lt;br /&gt;
&lt;br /&gt;
Via l'interface mobile, la rose des vents du mode total est remplacée par un contrôle via l'accéléromètre. Il suffit de verrouiller l'orientation de l'écran du téléphone et pencher le téléphone afin de déplacer le robot. Ce mode a aussi l'avantage de débarrasser l'écran de toutes commandes pouvant gêner la vue de la Webcam. Ce mode fonctionne sur les appareils mobiles pourvus du système d'exploitation Android et fonctionne également sur iOS (cependant la vidéo ne semble pas fonctionner).&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1972</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1972"/>
				<updated>2013-05-13T09:43:37Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : /* La programmation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons intégrer différentes fonctions.&lt;br /&gt;
&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
&amp;lt;include nopre noesc src=&amp;quot;/home/pedago/ppeip/include/video-RobotTéléguidé2-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;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;), ainsi qu'une &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les outils nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_SchémaMindstorm.jpg|Schéma de principe&lt;br /&gt;
file:RL_robotV1.jpg|Version 1 du robot&lt;br /&gt;
file:RL_robotV1Piles.jpg|Le changement des piles n'est pas aisé&lt;br /&gt;
file:RL_robotV1Vide.jpg|Le robot débarrassé du NXT et FoxBoard&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_robotV21.jpg&lt;br /&gt;
file:RL_robotV22.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; reçoit par Bluetooth des messages envoyés par la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; et accessible par Wi-Fi depuis un terminal quelconque.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation du boîtier NXT'''&lt;br /&gt;
&lt;br /&gt;
Les fonctions de déplacement contenues dans le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; s'articulent autour d'un algorithme simple. Ceci m'a permis d'utiliser le logiciel de programmation fourni avec le pack &amp;lt;tt&amp;gt;LEGO MindStorms&amp;lt;/tt&amp;gt;, basé sur une programmation en &amp;lt;tt&amp;gt;LabView&amp;lt;/tt&amp;gt; (langage de programmation graphique). Je peux d'ailleurs dire également que c'est un moyen de programmation qui est peu intuitif mais reste cependant efficace. D'autres solutions de programmation existent comme &amp;lt;tt&amp;gt;NXC&amp;lt;/tt&amp;gt; qui est un langage basé sur le C et adapté pour fonctionner avec les boîtiers &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour revenir à l'algorithme même, le mode basique se décompose comme suit :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego1.jpg|400px|thumb|right|Programme final basique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Tant que vrai&lt;br /&gt;
      Recevoir message bluetooth&lt;br /&gt;
      Associer la valeur du message à une variable&lt;br /&gt;
      Si nouveau message&lt;br /&gt;
         Comparaison de la valeur du message&lt;br /&gt;
            0: Arrêt&lt;br /&gt;
            1: Avancer&lt;br /&gt;
            2: Reculer&lt;br /&gt;
            3: Tourner à gauche&lt;br /&gt;
            4: Tourner à droite&lt;br /&gt;
         Fin comparaison&lt;br /&gt;
      Fin si&lt;br /&gt;
      Envoi message de confirmation&lt;br /&gt;
   Fin tant que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du mode total, il suffit simplement d'ajouter un cas n°5 qui récupérera les instructions pour contrôler la puissance à fournir par les moteurs :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego3.jpg|600px|thumb|center|Modèle d'instructions pour le moteur A pour le cas 5]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            5: Récupérer et envoyer les valeurs pour les moteurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut cependant faire attention au fait que les blocs moteurs ne prennent que la valeur absolue du nombre envoyé pour la puissance. Par conséquent il faut vérifier le signe des valeurs reçues avant de les envoyer aux blocs moteurs qui seront alors programmés pour avancer ou reculer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation de la FoxBoard G20'''&lt;br /&gt;
&lt;br /&gt;
La &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; est un 'mini' ordinateur fonctionnant sous &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt;, il est donc possible de la configurer afin de lui faire faire ce que l'on souhaite. En se connectant à la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; (en Ethernet ou par Wi-Fi), il est possible d'y enter des commandes dans un terminal depuis une machine classique sous &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt;, grâce à la commande exécutée en mode Super Utilisateur (su) :&lt;br /&gt;
   ssh root@192.168.100.1  ou  ssh root@192.168.1.1&lt;br /&gt;
La commande change selon le type de connexion (filaire ou non).&lt;br /&gt;
A partir de là, nous sommes en mesure de naviguer dans l'arborescence de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, régler différents paramètres ou encore accéder à diverses informations.&lt;br /&gt;
Par exemple, afin de pouvoir se connecter par Wi-Fi à notre robot, il est nécessaire de régler l'interface Wi-Fi en mode Master. Cependant l'intérêt principal que j'ai trouvé à me connecter en SSH à la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; aura été de pouvoir télécharger des fichiers pour modifier son site de configuration. Je détaillerais la démarche un peu plus tard. &lt;br /&gt;
&lt;br /&gt;
A vrai dire, on ne peut pas vraiment parler de programmation de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, mais plutôt d'une configuration (du moins si on s'en tient à l'objectif de base). On accède à la page de configuration via un navigateur internet, depuis quelque machine que ce soit qui y est connectée, en tapant dans la barre d'adresse :&lt;br /&gt;
   192.168.100.1  ou  192.168.1.1&lt;br /&gt;
Encore une fois, l'adresse diffère selon le type de connexion employée.&lt;br /&gt;
&lt;br /&gt;
C'est à partir de cette page que l'on lance les différents scripts préchargés pour contrôler le robot. C'est aussi là que se trouve la page de contrôle qui envoie les ordres au boîtier &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Modification de l'interface web'''&lt;br /&gt;
&lt;br /&gt;
Une fois la programmation du &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; terminée ainsi que la configuration de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, j'ai pu commencer à m'amuser avec mon robot en le contrôlant grâce à mon téléphone. Je me suis alors rendu compte que l'interface du site était très peu appréciable sur un tel appareil qui n'offre qu'un écran de quelque pouces. J'ai alors imaginé une interface plus épurée et mieux pensée pour un téléphone qui consiste simplement à superposer les boutons de contrôle du robot au dessus de l'image diffusée par la Webcam. J'ai pour cela utilisé les fichiers source qui sont disponibles ici [[https://peip-ima.polytech-lille.net:40001/archive/legowww-2012.tar]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_screenMobile.png|400px|thumb|center|Interface revue pour les mobiles]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour utiliser les fichiers créés dans la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, il faut les transférer. On y parvient grâce à &amp;lt;tt&amp;gt;SCP (Secure Copy Protocol)&amp;lt;/tt&amp;gt; qui permet de transférer des fichiers entre des machines &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt; des fichiers en SSH. La commande :&lt;br /&gt;
   scp file.txt root@192.168.100.1:/home/folder&lt;br /&gt;
Copiera le fichier &amp;lt;tt&amp;gt;file.txt&amp;lt;/tt&amp;gt; dans le dossier &amp;lt;tt&amp;gt;/home/folder&amp;lt;/tt&amp;gt; de la machine &amp;lt;tt&amp;gt;192.168.100.1&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contrôle par accéléromètre'''&lt;br /&gt;
&lt;br /&gt;
Via l'interface mobile, la rose des vents du mode total est remplacée par un contrôle via l'accéléromètre. Il suffit de verrouiller l'orientation de l'écran du téléphone et pencher le téléphone afin de déplacer le robot. Ce mode a aussi l'avantage de débarrasser l'écran de toutes commandes pouvant gêner la vue de la Webcam. Ce mode fonctionne sur les appareils mobiles pourvus du système d'exploitation Android et fonctionne également sur iOS.&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1951</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1951"/>
				<updated>2013-05-13T07:52:58Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : /* La programmation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons intégrer différentes fonctions.&lt;br /&gt;
&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
&amp;lt;include nopre noesc src=&amp;quot;/home/pedago/ppeip/include/video-RobotTéléguidé2-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;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;), ainsi qu'une &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les outils nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_SchémaMindstorm.jpg|Schéma de principe&lt;br /&gt;
file:RL_robotV1.jpg|Version 1 du robot&lt;br /&gt;
file:RL_robotV1Piles.jpg|Le changement des piles n'est pas aisé&lt;br /&gt;
file:RL_robotV1Vide.jpg|Le robot débarrassé du NXT et FoxBoard&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_robotV21.jpg&lt;br /&gt;
file:RL_robotV22.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; reçoit par Bluetooth des messages envoyés par la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; et accessible par Wi-Fi depuis un terminal quelconque.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation du boîtier NXT'''&lt;br /&gt;
&lt;br /&gt;
Les fonctions de déplacement contenues dans le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; s'articulent autour d'un algorithme simple. Ceci m'a permis d'utiliser le logiciel de programmation fourni avec le pack &amp;lt;tt&amp;gt;LEGO MindStorms&amp;lt;/tt&amp;gt;, basé sur une programmation en &amp;lt;tt&amp;gt;LabView&amp;lt;/tt&amp;gt; (langage de programmation graphique). Je peux d'ailleurs dire également que c'est un moyen de programmation qui est peu intuitif mais reste cependant efficace. D'autres solutions de programmation existent comme &amp;lt;tt&amp;gt;NXC&amp;lt;/tt&amp;gt; qui est un langage basé sur le C et adapté pour fonctionner avec les boîtiers &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour revenir à l'algorithme même, le mode basique se décompose comme suit :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego1.jpg|400px|thumb|right|Programme final basique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Tant que vrai&lt;br /&gt;
      Recevoir message bluetooth&lt;br /&gt;
      Associer la valeur du message à une variable&lt;br /&gt;
      Si nouveau message&lt;br /&gt;
         Comparaison de la valeur du message&lt;br /&gt;
            0: Arrêt&lt;br /&gt;
            1: Avancer&lt;br /&gt;
            2: Reculer&lt;br /&gt;
            3: Tourner à gauche&lt;br /&gt;
            4: Tourner à droite&lt;br /&gt;
         Fin comparaison&lt;br /&gt;
      Fin si&lt;br /&gt;
      Envoi message de confirmation&lt;br /&gt;
   Fin tant que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du mode total, il suffit simplement d'ajouter un cas n°5 qui récupérera les instructions pour contrôler la puissance à fournir par les moteurs :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego3.jpg|600px|thumb|center|Modèle d'instructions pour le moteur A pour le cas 5]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            5: Récupérer et envoyer les valeurs pour les moteurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut cependant faire attention au fait que les blocs moteurs ne prennent que la valeur absolue du nombre envoyé pour la puissance. Par conséquent il faut vérifier le signe des valeurs reçues avant de les envoyer aux blocs moteurs qui seront alors programmés pour avancer ou reculer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation de la FoxBoard G20'''&lt;br /&gt;
&lt;br /&gt;
La &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; est un 'mini' ordinateur fonctionnant sous &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt;, il est donc possible de la configurer afin de lui faire faire ce que l'on souhaite. En se connectant à la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; (en Ethernet ou par Wi-Fi), il est possible d'y enter des commandes dans un terminal depuis une machine classique sous &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt;, grâce à la commande exécutée en mode Super Utilisateur (su) :&lt;br /&gt;
   ssh root@192.168.100.1  ou  ssh root@192.168.1.1&lt;br /&gt;
La commande change selon le type de connexion (filaire ou non).&lt;br /&gt;
A partir de là, nous sommes en mesure de naviguer dans l'arborescence de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, régler différents paramètres ou encore accéder à diverses informations.&lt;br /&gt;
Par exemple, afin de pouvoir se connecter par Wi-Fi à notre robot, il est nécessaire de régler l'interface Wi-Fi en mode Master. Cependant l'intérêt principal que j'ai trouvé à me connecter en SSH à la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; aura été de pouvoir télécharger des fichiers pour modifier son site de configuration. Je détaillerais la démarche un peu plus tard. &lt;br /&gt;
&lt;br /&gt;
A vrai dire, on ne peut pas vraiment parler de programmation de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, mais plutôt d'une configuration (du moins si on s'en tient à l'objectif de base). On accède à la page de configuration via un navigateur internet, depuis quelque machine que ce soit qui y est connectée, en tapant dans la barre d'adresse :&lt;br /&gt;
   192.168.100.1  ou  192.168.1.1&lt;br /&gt;
Encore une fois, l'adresse diffère selon le type de connexion employée.&lt;br /&gt;
&lt;br /&gt;
C'est à partir de cette page que l'on lance les différents scripts préchargés pour contrôler le robot. C'est aussi là que se trouve la page de contrôle qui envoie les ordres au boîtier &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Modification de l'interface web'''&lt;br /&gt;
&lt;br /&gt;
Une fois la programmation du &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; terminée ainsi que la configuration de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, j'ai pu commencer à m'amuser avec mon robot en le contrôlant grâce à mon téléphone. Je me suis alors rendu compte que l'interface du site était très peu appréciable sur un tel appareil qui n'offre qu'un écran de quelque pouces. J'ai alors imaginé une interface plus épurée et mieux pensée pour un téléphone qui consiste simplement à superposer les boutons de contrôle du robot au dessus de l'image diffusée par la Webcam. J'ai pour cela utilisé les fichiers source qui sont disponibles ici [[https://peip-ima.polytech-lille.net:40001/archive/legowww-2012.tar]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_screenMobile.png|400px|thumb|center|Interface revue pour les mobiles]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour utiliser les fichiers créés dans la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, il faut les transférer. On y parvient grâce à &amp;lt;tt&amp;gt;SCP (Secure Copy Protocol)&amp;lt;/tt&amp;gt; qui permet de transférer des fichiers entre des machines &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt; des fichiers en SSH. La commande :&lt;br /&gt;
   scp file.txt root@192.168.100.1:/home/folder&lt;br /&gt;
Copiera le fichier &amp;lt;tt&amp;gt;file.txt&amp;lt;/tt&amp;gt; dans le dossier &amp;lt;tt&amp;gt;/home/folder&amp;lt;/tt&amp;gt; de la machine &amp;lt;tt&amp;gt;192.168.100.1&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contrôle par accéléromètre'''&lt;br /&gt;
&lt;br /&gt;
Via l'interface mobile, la rose des vents du mode total est remplacée par un contrôle via l'accéléromètre. Il suffit de verrouiller l'orientation de l'écran du téléphone et pencher le téléphone afin de déplacer le robot. Ce mode a aussi l'avantage de débarrasser l'écran de toutes commandes pouvant gêner la vue de la Webcam. Ce mode ne fonctionne que sur les appareils mobiles pourvus du système d'exploitation Android.&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:RL_progLego3.jpg&amp;diff=1950</id>
		<title>Fichier:RL progLego3.jpg</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:RL_progLego3.jpg&amp;diff=1950"/>
				<updated>2013-05-13T07:50:01Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1949</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1949"/>
				<updated>2013-05-13T07:36:38Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : /* La programmation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons intégrer différentes fonctions.&lt;br /&gt;
&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
&amp;lt;include nopre noesc src=&amp;quot;/home/pedago/ppeip/include/video-RobotTéléguidé2-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;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;), ainsi qu'une &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les outils nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_SchémaMindstorm.jpg|Schéma de principe&lt;br /&gt;
file:RL_robotV1.jpg|Version 1 du robot&lt;br /&gt;
file:RL_robotV1Piles.jpg|Le changement des piles n'est pas aisé&lt;br /&gt;
file:RL_robotV1Vide.jpg|Le robot débarrassé du NXT et FoxBoard&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_robotV21.jpg&lt;br /&gt;
file:RL_robotV22.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; reçoit par Bluetooth des messages envoyés par la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; et accessible par Wi-Fi depuis un terminal quelconque.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation du boîtier NXT'''&lt;br /&gt;
&lt;br /&gt;
Les fonctions de déplacement contenues dans le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; s'articulent autour d'un algorithme simple. Ceci m'a permis d'utiliser le logiciel de programmation fourni avec le pack &amp;lt;tt&amp;gt;LEGO MindStorms&amp;lt;/tt&amp;gt;, basé sur une programmation en &amp;lt;tt&amp;gt;LabView&amp;lt;/tt&amp;gt; (langage de programmation graphique). Je peux d'ailleurs dire également que c'est un moyen de programmation qui est peu intuitif mais reste cependant efficace. D'autres solutions de programmation existent comme &amp;lt;tt&amp;gt;NXC&amp;lt;/tt&amp;gt; qui est un langage basé sur le C et adapté pour fonctionner avec les boîtiers &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour revenir à l'algorithme même, le mode basique se décompose comme suit :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego1.jpg|400px|thumb|right|Programme final basique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Tant que vrai&lt;br /&gt;
      Recevoir message bluetooth&lt;br /&gt;
      Associer la valeur du message à une variable&lt;br /&gt;
      Si nouveau message&lt;br /&gt;
         Comparaison de la valeur du message&lt;br /&gt;
            0: Arrêt&lt;br /&gt;
            1: Avancer&lt;br /&gt;
            2: Reculer&lt;br /&gt;
            3: Tourner à gauche&lt;br /&gt;
            4: Tourner à droite&lt;br /&gt;
         Fin comparaison&lt;br /&gt;
      Fin si&lt;br /&gt;
      Envoi message de confirmation&lt;br /&gt;
   Fin tant que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du mode total, il suffit simplement d'ajouter un cas n°5 qui récupérera les instructions pour contrôler la puissance à fournir par les moteurs :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego2.jpg|600px|thumb|center|Modèle d'instructions pour le moteur A pour le cas 5]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            5: Récupérer et envoyer les valeurs pour les moteurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation de la FoxBoard G20'''&lt;br /&gt;
&lt;br /&gt;
La &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; est un 'mini' ordinateur fonctionnant sous &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt;, il est donc possible de la configurer afin de lui faire faire ce que l'on souhaite. En se connectant à la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; (en Ethernet ou par Wi-Fi), il est possible d'y enter des commandes dans un terminal depuis une machine classique sous &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt;, grâce à la commande exécutée en mode Super Utilisateur (su) :&lt;br /&gt;
   ssh root@192.168.100.1  ou  ssh root@192.168.1.1&lt;br /&gt;
La commande change selon le type de connexion (filaire ou non).&lt;br /&gt;
A partir de là, nous sommes en mesure de naviguer dans l'arborescence de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, régler différents paramètres ou encore accéder à diverses informations.&lt;br /&gt;
Par exemple, afin de pouvoir se connecter par Wi-Fi à notre robot, il est nécessaire de régler l'interface Wi-Fi en mode Master. Cependant l'intérêt principal que j'ai trouvé à me connecter en SSH à la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; aura été de pouvoir télécharger des fichiers pour modifier son site de configuration. Je détaillerais la démarche un peu plus tard. &lt;br /&gt;
&lt;br /&gt;
A vrai dire, on ne peut pas vraiment parler de programmation de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, mais plutôt d'une configuration (du moins si on s'en tient à l'objectif de base). On accède à la page de configuration via un navigateur internet, depuis quelque machine que ce soit qui y est connectée, en tapant dans la barre d'adresse :&lt;br /&gt;
   192.168.100.1  ou  192.168.1.1&lt;br /&gt;
Encore une fois, l'adresse diffère selon le type de connexion employée.&lt;br /&gt;
&lt;br /&gt;
C'est à partir de cette page que l'on lance les différents scripts préchargés pour contrôler le robot. C'est aussi là que se trouve la page de contrôle qui envoie les ordres au boîtier &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Modification de l'interface web'''&lt;br /&gt;
&lt;br /&gt;
Une fois la programmation du &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; terminée ainsi que la configuration de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, j'ai pu commencer à m'amuser avec mon robot en le contrôlant grâce à mon téléphone. Je me suis alors rendu compte que l'interface du site était très peu appréciable sur un tel appareil qui n'offre qu'un écran de quelque pouces. J'ai alors imaginé une interface plus épurée et mieux pensée pour un téléphone qui consiste simplement à superposer les boutons de contrôle du robot au dessus de l'image diffusée par la Webcam. J'ai pour cela utilisé les fichiers source qui sont disponibles ici [[https://peip-ima.polytech-lille.net:40001/archive/legowww-2012.tar]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_screenMobile.png|400px|thumb|center|Interface revue pour les mobiles]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour utiliser les fichiers créés dans la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, il faut les transférer. On y parvient grâce à &amp;lt;tt&amp;gt;SCP (Secure Copy Protocol)&amp;lt;/tt&amp;gt; qui permet de transférer des fichiers entre des machines &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt; des fichiers en SSH. La commande :&lt;br /&gt;
   scp file.txt root@192.168.100.1:/home/folder&lt;br /&gt;
Copiera le fichier &amp;lt;tt&amp;gt;file.txt&amp;lt;/tt&amp;gt; dans le dossier &amp;lt;tt&amp;gt;/home/folder&amp;lt;/tt&amp;gt; de la machine &amp;lt;tt&amp;gt;192.168.100.1&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contrôle par accéléromètre'''&lt;br /&gt;
&lt;br /&gt;
Via l'interface mobile, la rose des vents du mode total est remplacée par un contrôle via l'accéléromètre. Il suffit de verrouiller l'orientation de l'écran du téléphone et pencher le téléphone afin de déplacer le robot. Ce mode a aussi l'avantage de débarrasser l'écran de toutes commandes pouvant gêner la vue de la Webcam. Ce mode ne fonctionne que sur les appareils mobiles pourvus du système d'exploitation Android.&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1948</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1948"/>
				<updated>2013-05-13T07:36:15Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : /* La programmation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons intégrer différentes fonctions.&lt;br /&gt;
&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
&amp;lt;include nopre noesc src=&amp;quot;/home/pedago/ppeip/include/video-RobotTéléguidé2-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;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;), ainsi qu'une &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les outils nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_SchémaMindstorm.jpg|Schéma de principe&lt;br /&gt;
file:RL_robotV1.jpg|Version 1 du robot&lt;br /&gt;
file:RL_robotV1Piles.jpg|Le changement des piles n'est pas aisé&lt;br /&gt;
file:RL_robotV1Vide.jpg|Le robot débarrassé du NXT et FoxBoard&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_robotV21.jpg&lt;br /&gt;
file:RL_robotV22.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; reçoit par Bluetooth des messages envoyés par la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; et accessible par Wi-Fi depuis un terminal quelconque.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation du boîtier NXT'''&lt;br /&gt;
&lt;br /&gt;
Les fonctions de déplacement contenues dans le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; s'articulent autour d'un algorithme simple. Ceci m'a permis d'utiliser le logiciel de programmation fourni avec le pack &amp;lt;tt&amp;gt;LEGO MindStorms&amp;lt;/tt&amp;gt;, basé sur une programmation en &amp;lt;tt&amp;gt;LabView&amp;lt;/tt&amp;gt; (langage de programmation graphique). Je peux d'ailleurs dire également que c'est un moyen de programmation qui est peu intuitif mais reste cependant efficace. D'autres solutions de programmation existent comme &amp;lt;tt&amp;gt;NXC&amp;lt;/tt&amp;gt; qui est un langage basé sur le C et adapté pour fonctionner avec les boîtiers &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour revenir à l'algorithme même, le mode basique se décompose comme suit :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego1.jpg|400px|thumb|right|Programme final basique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Tant que vrai&lt;br /&gt;
      Recevoir message bluetooth&lt;br /&gt;
      Associer la valeur du message à une variable&lt;br /&gt;
      Si nouveau message&lt;br /&gt;
         Comparaison de la valeur du message&lt;br /&gt;
            0: Arrêt&lt;br /&gt;
            1: Avancer&lt;br /&gt;
            2: Reculer&lt;br /&gt;
            3: Tourner à gauche&lt;br /&gt;
            4: Tourner à droite&lt;br /&gt;
         Fin comparaison&lt;br /&gt;
      Fin si&lt;br /&gt;
      Envoi message de confirmation&lt;br /&gt;
   Fin tant que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du mode total, il suffit simplement d'ajouter un cas n°5 qui récupérera les instructions pour contrôler la puissance à fournir par les moteurs :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego2.jpg|600px|thumb|center|Modèle d'instructions pour le moteur A pour le cas 5]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            5: Récupérer et envoyer les valeurs pour les moteurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation de la FoxBoard G20'''&lt;br /&gt;
&lt;br /&gt;
La &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; est un 'mini' ordinateur fonctionnant sous &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt;, il est donc possible de la configurer afin de lui faire faire ce que l'on souhaite. En se connectant à la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; (en Ethernet ou par Wi-Fi), il est possible d'y enter des commandes dans un terminal depuis une machine classique sous &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt;, grâce à la commande exécutée en mode Super Utilisateur (su) :&lt;br /&gt;
   ssh root@192.168.100.1  ou  ssh root@192.168.1.1&lt;br /&gt;
La commande change selon le type de connexion (filaire ou non).&lt;br /&gt;
A partir de là, nous sommes en mesure de naviguer dans l'arborescence de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, régler différents paramètres ou encore accéder à diverses informations.&lt;br /&gt;
Par exemple, afin de pouvoir se connecter par Wi-Fi à notre robot, il est nécessaire de régler l'interface Wi-Fi en mode Master. Cependant l'intérêt principal que j'ai trouvé à me connecter en SSH à la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; aura été de pouvoir télécharger des fichiers pour modifier son site de configuration. Je détaillerais la démarche un peu plus tard. &lt;br /&gt;
&lt;br /&gt;
A vrai dire, on ne peut pas vraiment parler de programmation de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, mais plutôt d'une configuration (du moins si on s'en tient à l'objectif de base). On accède à la page de configuration via un navigateur internet, depuis quelque machine que ce soit qui y est connectée, en tapant dans la barre d'adresse :&lt;br /&gt;
   192.168.100.1  ou  192.168.1.1&lt;br /&gt;
Encore une fois, l'adresse diffère selon le type de connexion employée.&lt;br /&gt;
&lt;br /&gt;
C'est à partir de cette page que l'on lance les différents scripts préchargés pour contrôler le robot. C'est aussi là que se trouve la page de contrôle qui envoie les ordres au boîtier &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Modification de l'interface web'''&lt;br /&gt;
&lt;br /&gt;
Une fois la programmation du &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; terminée ainsi que la configuration de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, j'ai pu commencer à m'amuser avec mon robot en le contrôlant grâce à mon téléphone. Je me suis alors rendu compte que l'interface du site était très peu appréciable sur un tel appareil qui n'offre qu'un écran de quelque pouces. J'ai alors imaginé une interface plus épurée et mieux pensée pour un téléphone qui consiste simplement à superposer les boutons de contrôle du robot au dessus de l'image diffusée par la Webcam. J'ai pour cela utilisé les fichiers source qui sont disponibles ici [[https://peip-ima.polytech-lille.net:40001/archive/legowww-2012.tar]].&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_screenMobile.png|400px|thumb|center|Interface revue pour les mobiles]]&lt;br /&gt;
&lt;br /&gt;
Pour utiliser les fichiers créés dans la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, il faut les transférer. On y parvient grâce à &amp;lt;tt&amp;gt;SCP (Secure Copy Protocol)&amp;lt;/tt&amp;gt; qui permet de transférer des fichiers entre des machines &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt; des fichiers en SSH. La commande :&lt;br /&gt;
   scp file.txt root@192.168.100.1:/home/folder&lt;br /&gt;
Copiera le fichier &amp;lt;tt&amp;gt;file.txt&amp;lt;/tt&amp;gt; dans le dossier &amp;lt;tt&amp;gt;/home/folder&amp;lt;/tt&amp;gt; de la machine &amp;lt;tt&amp;gt;192.168.100.1&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contrôle par accéléromètre'''&lt;br /&gt;
&lt;br /&gt;
Via l'interface mobile, la rose des vents du mode total est remplacée par un contrôle via l'accéléromètre. Il suffit de verrouiller l'orientation de l'écran du téléphone et pencher le téléphone afin de déplacer le robot. Ce mode a aussi l'avantage de débarrasser l'écran de toutes commandes pouvant gêner la vue de la Webcam. Ce mode ne fonctionne que sur les appareils mobiles pourvus du système d'exploitation Android.&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1946</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1946"/>
				<updated>2013-05-13T07:29:48Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : /* La programmation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons intégrer différentes fonctions.&lt;br /&gt;
&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
&amp;lt;include nopre noesc src=&amp;quot;/home/pedago/ppeip/include/video-RobotTéléguidé2-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;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;), ainsi qu'une &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les outils nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_SchémaMindstorm.jpg|Schéma de principe&lt;br /&gt;
file:RL_robotV1.jpg|Version 1 du robot&lt;br /&gt;
file:RL_robotV1Piles.jpg|Le changement des piles n'est pas aisé&lt;br /&gt;
file:RL_robotV1Vide.jpg|Le robot débarrassé du NXT et FoxBoard&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_robotV21.jpg&lt;br /&gt;
file:RL_robotV22.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; reçoit par Bluetooth des messages envoyés par la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; et accessible par Wi-Fi depuis un terminal quelconque.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation du boîtier NXT'''&lt;br /&gt;
&lt;br /&gt;
Les fonctions de déplacement contenues dans le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; s'articulent autour d'un algorithme simple. Ceci m'a permis d'utiliser le logiciel de programmation fourni avec le pack &amp;lt;tt&amp;gt;LEGO MindStorms&amp;lt;/tt&amp;gt;, basé sur une programmation en &amp;lt;tt&amp;gt;LabView&amp;lt;/tt&amp;gt; (langage de programmation graphique). Je peux d'ailleurs dire également que c'est un moyen de programmation qui est peu intuitif mais reste cependant efficace. D'autres solutions de programmation existent comme &amp;lt;tt&amp;gt;NXC&amp;lt;/tt&amp;gt; qui est un langage basé sur le C et adapté pour fonctionner avec les boîtiers &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour revenir à l'algorithme même, le mode basique se décompose comme suit :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego1.jpg|400px|thumb|right|Programme final basique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Tant que vrai&lt;br /&gt;
      Recevoir message bluetooth&lt;br /&gt;
      Associer la valeur du message à une variable&lt;br /&gt;
      Si nouveau message&lt;br /&gt;
         Comparaison de la valeur du message&lt;br /&gt;
            0: Arrêt&lt;br /&gt;
            1: Avancer&lt;br /&gt;
            2: Reculer&lt;br /&gt;
            3: Tourner à gauche&lt;br /&gt;
            4: Tourner à droite&lt;br /&gt;
         Fin comparaison&lt;br /&gt;
      Fin si&lt;br /&gt;
      Envoi message de confirmation&lt;br /&gt;
   Fin tant que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du mode total, il suffit simplement d'ajouter un cas n°5 qui récupérera les instructions pour contrôler la puissance à fournir par les moteurs :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego2.jpg|600px|thumb|center|Modèle d'instructions pour le moteur A pour le cas 5]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            5: Récupérer et envoyer les valeurs pour les moteurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation de la FoxBoard G20'''&lt;br /&gt;
&lt;br /&gt;
La &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; est un 'mini' ordinateur fonctionnant sous &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt;, il est donc possible de la configurer afin de lui faire faire ce que l'on souhaite. En se connectant à la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; (en Ethernet ou par Wi-Fi), il est possible d'y enter des commandes dans un terminal depuis une machine classique sous &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt;, grâce à la commande exécutée en mode Super Utilisateur (su) :&lt;br /&gt;
   ssh root@192.168.100.1  ou  ssh root@192.168.1.1&lt;br /&gt;
La commande change selon le type de connexion (filaire ou non).&lt;br /&gt;
A partir de là, nous sommes en mesure de naviguer dans l'arborescence de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, régler différents paramètres ou encore accéder à diverses informations.&lt;br /&gt;
Par exemple, afin de pouvoir se connecter par Wi-Fi à notre robot, il est nécessaire de régler l'interface Wi-Fi en mode Master. Cependant l'intérêt principal que j'ai trouvé à me connecter en SSH à la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; aura été de pouvoir télécharger des fichiers pour modifier son site de configuration. Je détaillerais la démarche un peu plus tard. &lt;br /&gt;
&lt;br /&gt;
A vrai dire, on ne peut pas vraiment parler de programmation de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, mais plutôt d'une configuration (du moins si on s'en tient à l'objectif de base). On accède à la page de configuration via un navigateur internet, depuis quelque machine que ce soit qui y est connectée, en tapant dans la barre d'adresse :&lt;br /&gt;
   192.168.100.1  ou  192.168.1.1&lt;br /&gt;
Encore une fois, l'adresse diffère selon le type de connexion employée.&lt;br /&gt;
&lt;br /&gt;
C'est à partir de cette page que l'on lance les différents scripts préchargés pour contrôler le robot. C'est aussi là que se trouve la page de contrôle qui envoie les ordres au boîtier &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Modification de l'interface web'''&lt;br /&gt;
&lt;br /&gt;
Une fois la programmation du &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; terminée ainsi que la configuration de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, j'ai pu commencer à m'amuser avec mon robot en le contrôlant grâce à mon téléphone. Je me suis alors rendu compte que l'interface du site était très peu appréciable sur un tel appareil qui n'offre qu'un écran de quelque pouces. J'ai alors imaginé une interface plus épurée et mieux pensée pour un téléphone qui consiste simplement à superposer les boutons de contrôle du robot au dessus de l'image diffusée par la Webcam. J'ai pour cela utilisé les fichiers source qui sont disponibles ici [[https://peip-ima.polytech-lille.net:40001/archive/legowww-2012.tar]].&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_screenMobile.png|400px|thumb|center|Interface revue pour les mobiles]]&lt;br /&gt;
&lt;br /&gt;
Pour utiliser les fichiers créés dans la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, il faut les transférer. On y parvient grâce à &amp;lt;tt&amp;gt;SCP (Secure Copy Protocol)&amp;lt;/tt&amp;gt; qui permet de transférer des fichiers entre des machines &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt; des fichiers en SSH. La commande :&lt;br /&gt;
   scp file.txt root@192.168.100.1:/home/folder&lt;br /&gt;
Copiera le fichier &amp;lt;tt&amp;gt;file.txt&amp;lt;/tt&amp;gt; dans le dossier &amp;lt;tt&amp;gt;/home/folder&amp;lt;/tt&amp;gt; de la machine &amp;lt;tt&amp;gt;192.168.100.1&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour la suite, une amélioration est en cours de développement et permettrait de contrôler le robot grâce au gyroscope/accéléromètre (?) qui équipe maintenant la majorité des appareils mobiles.&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:RL_screenMobile.png&amp;diff=1945</id>
		<title>Fichier:RL screenMobile.png</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:RL_screenMobile.png&amp;diff=1945"/>
				<updated>2013-05-13T07:26:44Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1688</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1688"/>
				<updated>2013-03-25T07:37:52Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons nous débrouiller pour y intégrer différentes fonctions.&lt;br /&gt;
&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;), ainsi qu'une &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les outils nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_SchémaMindstorm.jpg|Schéma de principe&lt;br /&gt;
file:RL_robotV1.jpg|Version 1 du robot&lt;br /&gt;
file:RL_robotV1Piles.jpg|Le changement des piles n'est pas aisé&lt;br /&gt;
file:RL_robotV1Vide.jpg|Le robot débarrassé du NXT et FoxBoard&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_robotV21.jpg&lt;br /&gt;
file:RL_robotV22.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; reçoit par Bluetooth des messages envoyés par la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; et accessible par Wi-Fi depuis un terminal quelconque.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation du boîtier NXT'''&lt;br /&gt;
&lt;br /&gt;
Les fonctions de déplacement contenues dans le &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; s'articulent autour d'un algorithme simple. Ceci m'a permis d'utiliser le logiciel de programmation fourni avec le pack &amp;lt;tt&amp;gt;LEGO MindStorms&amp;lt;/tt&amp;gt;, basé sur une programmation en &amp;lt;tt&amp;gt;LabView&amp;lt;/tt&amp;gt; (langage de programmation graphique). Je peux d'ailleurs dire également que c'est un moyen de programmation qui est peu intuitif mais reste cependant efficace. D'autres solutions de programmation existent comme &amp;lt;tt&amp;gt;NXC&amp;lt;/tt&amp;gt; qui est un langage basé sur le C et adapté pour fonctionner avec les boîtiers &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour revenir à l'algorithme même, le mode basique se décompose comme suit :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego1.jpg|400px|thumb|right|Programme final basique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Tant que vrai&lt;br /&gt;
      Recevoir message bluetooth&lt;br /&gt;
      Associer la valeur du message à une variable&lt;br /&gt;
      Si nouveau message&lt;br /&gt;
         Comparaison de la valeur du message&lt;br /&gt;
            0: Arrêt&lt;br /&gt;
            1: Avancer&lt;br /&gt;
            2: Reculer&lt;br /&gt;
            3: Tourner à gauche&lt;br /&gt;
            4: Tourner à droite&lt;br /&gt;
         Fin comparaison&lt;br /&gt;
      Fin si&lt;br /&gt;
      Envoi message de confirmation&lt;br /&gt;
   Fin tant que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du mode total, il suffit simplement d'ajouter un cas n°5 qui récupérera les instructions pour contrôler la puissance à fournir par les moteurs :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego2.jpg|600px|thumb|center|Modèle d'instructions pour le moteur A pour le cas 5]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            5: Récupérer et envoyer les valeurs pour les moteurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation de la FoxBoard G20'''&lt;br /&gt;
&lt;br /&gt;
La &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; est un 'mini' ordinateur fonctionnant sous &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt;, il est donc possible de la configurer afin de lui faire faire ce que l'on souhaite. En se connectant à la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; (en Ethernet ou par Wi-Fi), il est possible d'y enter des commandes dans un terminal depuis une machine classique sous &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt;, grâce à la commande exécutée en mode Super Utilisateur (su) :&lt;br /&gt;
   ssh root@192.168.100.1  ou  ssh root@192.168.1.1&lt;br /&gt;
La commande change selon le type de connexion (filaire ou non).&lt;br /&gt;
A partir de la, nous sommes en mesure de naviguer dans l'arborescence de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, régler différents paramètres ou encore accéder à diverses informations.&lt;br /&gt;
Par exemple, afin de pouvoir se connecter par Wi-Fi à notre robot, il est nécessaire de régler l'interface Wi-Fi en mode Master. Cependant l'intérêt principal que j'ai trouvé à me connecter en SSH à la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt; aura été de pouvoir télécharger des fichier pour modifier son site de configuration. Je détaillerais la démarche un peu plus tard. &lt;br /&gt;
&lt;br /&gt;
A vrai dire, on ne peut pas vraiment parler de programmation de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, mais plutôt d'une configuration (du moins si on s'en tient à l'objectif de base). On accède à la page de configuration via un navigateur internet, depuis quelque machine que ce soit qui y est connectée, en tapant dans la barre d'adresse :&lt;br /&gt;
   192.168.100.1  ou  192.168.1.1&lt;br /&gt;
Encore une fois, l'adresse diffère selon le type de connexion employée.&lt;br /&gt;
&lt;br /&gt;
C'est à partir de cette page que l'on lance les différents scripts préchargés pour contrôler le robot. C'est aussi là que se trouve la page de contrôle qui envoie les ordres au boîtier &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Modification de l'interface web'''&lt;br /&gt;
&lt;br /&gt;
Une fois la programmation du &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; terminée ainsi que la configuration de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, j'ai pu commencer à m'amuser avec mon robot en le contrôlant grâce à mon téléphone. Je me suis alors rendu compte que l'interface du site était très peu appréciable sur un tel appareil qui n'offre qu'un écran de quelque pouces. J'ai alors imaginé une interface plus épurée et mieux pensée pour un téléphone qui consiste simplement à superposer les boutons de contrôle du robot au dessus de l'image diffusée par la Webcam. J'ai pour cela utilisé les fichiers source qui sont disponibles ici [[https://peip-ima.polytech-lille.net:40001/archive/legowww-2012.tar]].&lt;br /&gt;
&lt;br /&gt;
'''''Screenshot nécessaire'''''&lt;br /&gt;
&lt;br /&gt;
Pour utiliser les fichiers créés dans la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, il faut les transférer. On y parvient grâce à &amp;lt;tt&amp;gt;SCP (Secure Copy Protocol)&amp;lt;/tt&amp;gt; qui permet de transférer des fichiers entre des machines &amp;lt;tt&amp;gt;Linux&amp;lt;/tt&amp;gt; des fichiers en SSH. La commande :&lt;br /&gt;
   scp file.txt root@192.168.100.1:/home/folder&lt;br /&gt;
Copiera le fichier &amp;lt;tt&amp;gt;file.txt&amp;lt;/tt&amp;gt; dans le dossier &amp;lt;tt&amp;gt;/home/folder&amp;lt;/tt&amp;gt; de la machine &amp;lt;tt&amp;gt;192.168.100.1&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour la suite, une amélioration est en cours de développement et permettrait de contrôler le robot grâce au gyroscope/accéléromètre (?) qui équipe maintenant la majorité des appareils mobiles.&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1668</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1668"/>
				<updated>2013-03-18T07:58:16Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : /* La programmation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons nous débrouiller pour y intégrer différentes fonctions.&lt;br /&gt;
&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le NXT), ainsi qu'une FoxBoard (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les outils nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_SchémaMindstorm.jpg|Schéma de principe&lt;br /&gt;
file:RL_robotV1.jpg|Version 1 du robot&lt;br /&gt;
file:RL_robotV1Piles.jpg|Le changement des piles n'est pas aisé&lt;br /&gt;
file:RL_robotV1Vide.jpg|Le robot débarassé du NXT et FoxBoard&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_robotV21.jpg&lt;br /&gt;
file:RL_robotV22.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le NXT dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le NXT reçoit par Bluetooth des messages envoyés par la FoxBoard. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la FoxBoard et accessible par Wi-Fi depuis un terminal quelconque.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation du boîtier NXT'''&lt;br /&gt;
&lt;br /&gt;
Les fonctions de déplacement contenues dans le NXT s'articulent autour d'un algorithme simple. Ceci m'a permis d'utiliser le logiciel de programmation fourni avec le pack LEGO MindStorms, basé sur une programmation en LabView (langage de programmation graphique). Je peux d'ailleurs dire également que c'est un moyen de programmation qui est peu intuitif mais reste cependant efficace. D'autres solutions de programmation existent comme NXC qui est un langage basé sur le C et adapté pour fonctionner avec les boîtiers NXT.&lt;br /&gt;
&lt;br /&gt;
Pour revenir à l'algorithme même, le mode basique se décompose comme suit :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego1.jpg|400px|thumb|right|Programme final basique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Tant que vrai&lt;br /&gt;
      Recevoir message bluetooth&lt;br /&gt;
      Associer la valeur du message à une variable&lt;br /&gt;
      Si nouveau message&lt;br /&gt;
         Comparaison de la valeur du message&lt;br /&gt;
            0: Arrêt&lt;br /&gt;
            1: Avancer&lt;br /&gt;
            2: Reculer&lt;br /&gt;
            3: Tourner à gauche&lt;br /&gt;
            4: Tourner à droite&lt;br /&gt;
         Fin comparaison&lt;br /&gt;
      Fin si&lt;br /&gt;
      Envoi message de confirmation&lt;br /&gt;
   Fin tant que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du mode total, il suffit simplement d'ajouter un cas n°5 qui récupèrera les instructions pour contrôler la puissance à fournir par les moteurs :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego2.jpg|600px|thumb|center|Modèle d'instructions pour le moteur A pour le cas 5]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            5: Récupérer et envoyer les valeurs pour les moteurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation de la FoxBoard G20'''&lt;br /&gt;
&lt;br /&gt;
La FoxBoard est un 'mini' ordinateur fonctionnant sous Linux, il est donc possible de la configurer afin de lui faire faire ce que l'on souhaite. En se connectant à la FoxBoard (en ethernet ou par Wi-Fi), il est possible d'y enter des commandes dans un terminal depuis une machine classique sous Linux, grâce à la commande exécutée en mode Super Utilisateur (su) :&lt;br /&gt;
   ssh root@192.168.100.1  ou  ssh root@192.168.1.1&lt;br /&gt;
La commande change selon le type de connexion (filaire ou non).&lt;br /&gt;
A partir de la, nous sommes en mesure de naviguer dans l'arborescence de la FoxBoard, régler différents paramètres ou encore accéder à diverses informations.&lt;br /&gt;
Par exemple, afin de pouvoir se connecter par Wi-Fi à notre robot, il est nécessaire de régler l'interface Wi-Fi en mode Master. Cependant l'intérêt principal que j'ai trouvé à me connecter en ssh à la FoxBoard aura été de pouvoir télécharger des fichier pour modifier son site de configuration. Je détaillerais la démarche un peu plus tard. &lt;br /&gt;
&lt;br /&gt;
A vrai dire, on ne peut pas vraiment parler de programmation de la FoxBoard, mais plutôt d'une configuration (du moins si on s'en tient à l'objectif de base). On accède à la page de configuration via un navigateur internet, depuis quelque machine que ce soit qui y est connectée, en tapant dans la barre d'adresse :&lt;br /&gt;
   192.168.100.1  ou  192.168.1.1&lt;br /&gt;
Encore une fois, l'adresse diffère selon le type de connexion employée.&lt;br /&gt;
&lt;br /&gt;
C'est à partir de cette page que l'on lance les différents scripts préchargés pour contrôler le robot. C'est aussi là que se trouve la page de contrôle qui envoie les ordres au boitier NXT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Modification de l'interface web'''&lt;br /&gt;
&lt;br /&gt;
Une fois la programmation du &amp;lt;tt&amp;gt;NXT&amp;lt;/tt&amp;gt; terminée ainsi que la configuration de la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, j'ai pu commencer à m'amuser avec mon robot en le contrôlant grâce à mon téléphone. Je me suis alors rendu compte que l'interface du site était très peu appréciable sur un tel appareil qui n'offre qu'un écran de quelque pouces. J'ai alors imaginé une interface plus épurée et mieux pensée pour un téléphone qui consiste simplement à superposer les boutons de contrôle du robot au dessus de l'image diffusée par la WebCam. J'ai pour cela utilisé les fichiers source qui sont disponibles ici [[https://peip-ima.polytech-lille.net:40001/archive/legowww-2012.tar]].&lt;br /&gt;
&lt;br /&gt;
'''''Screenshot nécessaire'''''&lt;br /&gt;
&lt;br /&gt;
Pour utiliser les fichiers créés dans la &amp;lt;tt&amp;gt;FoxBoard&amp;lt;/tt&amp;gt;, il faut les transférer. On y parvient grâce à &amp;lt;tt&amp;gt;SCP (Secure Copy Protocol)&amp;lt;/tt&amp;gt; qui permet de transférer des fichiers entre des machines Linux des fichiers en SSH. La commande :&lt;br /&gt;
   scp file.txt root@192.168.100.1:/home/folder&lt;br /&gt;
Copiera le fichier &amp;lt;tt&amp;gt;file.txt&amp;lt;/tt&amp;gt; dans le dossier &amp;lt;tt&amp;gt;/home/folder&amp;lt;/tt&amp;gt; de la machine &amp;lt;tt&amp;gt;192.168.100.1&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour la suite, une amélioration est en cours de développement et permettrait de contrôler le robot grâce au gyroscope/accéléromètre (?) qui équipe maintenant la majorité des appareils mobiles.&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1659</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1659"/>
				<updated>2013-03-18T07:29:32Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : /* La programmation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons nous débrouiller pour y intégrer différentes fonctions.&lt;br /&gt;
&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le NXT), ainsi qu'une FoxBoard (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les outils nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_SchémaMindstorm.jpg|Schéma de principe&lt;br /&gt;
file:RL_robotV1.jpg|Version 1 du robot&lt;br /&gt;
file:RL_robotV1Piles.jpg|Le changement des piles n'est pas aisé&lt;br /&gt;
file:RL_robotV1Vide.jpg|Le robot débarassé du NXT et FoxBoard&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_robotV21.jpg&lt;br /&gt;
file:RL_robotV22.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le NXT dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le NXT reçoit par Bluetooth des messages envoyés par la FoxBoard. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la FoxBoard et accessible par Wi-Fi depuis un terminal quelconque.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation du boîtier NXT'''&lt;br /&gt;
&lt;br /&gt;
Les fonctions de déplacement contenues dans le NXT s'articulent autour d'un algorithme simple. Ceci m'a permis d'utiliser le logiciel de programmation fourni avec le pack LEGO MindStorms, basé sur une programmation en LabView (langage de programmation graphique). Je peux d'ailleurs dire également que c'est un moyen de programmation qui est peu intuitif mais reste cependant efficace. D'autres solutions de programmation existent comme NXC qui est un langage basé sur le C et adapté pour fonctionner avec les boîtiers NXT.&lt;br /&gt;
&lt;br /&gt;
Pour revenir à l'algorithme même, le mode basique se décompose comme suit :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego1.jpg|400px|thumb|right|Programme final basique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Tant que vrai&lt;br /&gt;
      Recevoir message bluetooth&lt;br /&gt;
      Associer la valeur du message à une variable&lt;br /&gt;
      Si nouveau message&lt;br /&gt;
         Comparaison de la valeur du message&lt;br /&gt;
            0: Arrêt&lt;br /&gt;
            1: Avancer&lt;br /&gt;
            2: Reculer&lt;br /&gt;
            3: Tourner à gauche&lt;br /&gt;
            4: Tourner à droite&lt;br /&gt;
         Fin comparaison&lt;br /&gt;
      Fin si&lt;br /&gt;
      Envoi message de confirmation&lt;br /&gt;
   Fin tant que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du mode total, il suffit simplement d'ajouter un cas n°5 qui récupèrera les instructions pour contrôler la puissance à fournir par les moteurs :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego2.jpg|600px|thumb|center|Modèle d'instructions pour le moteur A pour le cas 5]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            5: Récupérer et envoyer les valeurs pour les moteurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation de la FoxBoard G20'''&lt;br /&gt;
&lt;br /&gt;
La FoxBoard est un 'mini' ordinateur fonctionnant sous Linux, il est donc possible de la configurer afin de lui faire faire ce que l'on souhaite. En se connectant à la FoxBoard (en ethernet ou par Wi-Fi), il est possible d'y enter des commandes dans un terminal depuis une machine classique sous Linux, grâce à la commande exécutée en mode Super Utilisateur (su) :&lt;br /&gt;
   ssh root@192.168.100.1  ou  ssh root@192.168.1.1&lt;br /&gt;
La commande change selon le type de connexion (filaire ou non).&lt;br /&gt;
A partir de la, nous sommes en mesure de naviguer dans l'arborescence de la FoxBoard, régler différents paramètres ou encore accéder à diverses informations.&lt;br /&gt;
Par exemple, afin de pouvoir se connecter par Wi-Fi à notre robot, il est nécessaire de régler l'interface Wi-Fi en mode Master. Cependant l'intérêt principal que j'ai trouvé à me connecter en ssh à la FoxBoard aura été de pouvoir télécharger des fichier pour modifier son site de configuration. Je détaillerais la démarche un peu plus tard. &lt;br /&gt;
&lt;br /&gt;
A vrai dire, on ne peut pas vraiment parler de programmation de la FoxBoard, mais plutôt d'une configuration (du moins si on s'en tient à l'objectif de base). On accède à la page de configuration via un navigateur internet, depuis quelque machine que ce soit qui y est connectée, en tapant dans la barre d'adresse :&lt;br /&gt;
   192.168.100.1  ou  192.168.1.1&lt;br /&gt;
Encore une fois, l'adresse diffère selon le type de connexion employée.&lt;br /&gt;
&lt;br /&gt;
C'est à partir de cette page que l'on lance les différents scripts préchargés pour contrôler le robot. C'est aussi là que se trouve la page de contrôle qui envoie les ordres au boitier NXT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois la programmation du NXT terminée ainsi que la configuration de la FoxBoard, j'ai pu commencer à m'amuser avec mon robot en le contrôlant grâce à mon téléphone. Je me suis alors rendu compte que l'interface du site était très peu appréciable sur un tel appareil qui n'offre qu'un écran de quelque pouces. J'ai alors imaginé une interface plus épurée et mieux pensée pour un téléphone qui consiste simplement à superposer les boutons de contrôle du robot au dessus de l'image diffusée par la WebCam.&lt;br /&gt;
&lt;br /&gt;
'''''Screenshot nécessaire''''' &lt;br /&gt;
&lt;br /&gt;
Pour la suite, une amélioration est en cours de développement et permettrait de contrôler le robot grâce au gyroscope/accéléromètre (?) qui équipe maintenant la majorité des appareils mobiles.&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1658</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1658"/>
				<updated>2013-03-18T07:28:25Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : /* La programmation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons nous débrouiller pour y intégrer différentes fonctions.&lt;br /&gt;
&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le NXT), ainsi qu'une FoxBoard (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les outils nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_SchémaMindstorm.jpg|Schéma de principe&lt;br /&gt;
file:RL_robotV1.jpg|Version 1 du robot&lt;br /&gt;
file:RL_robotV1Piles.jpg|Le changement des piles n'est pas aisé&lt;br /&gt;
file:RL_robotV1Vide.jpg|Le robot débarassé du NXT et FoxBoard&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_robotV21.jpg&lt;br /&gt;
file:RL_robotV22.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le NXT dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le NXT reçoit par Bluetooth des messages envoyés par la FoxBoard. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la FoxBoard et accessible par Wi-Fi depuis un terminal quelconque.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation du boîtier NXT'''&lt;br /&gt;
&lt;br /&gt;
Les fonctions de déplacement contenues dans le NXT s'articulent autour d'un algorithme simple. Ceci m'a permis d'utiliser le logiciel de programmation fourni avec le pack LEGO MindStorms, basé sur une programmation en LabView (langage de programmation graphique). Je peux d'ailleurs dire également que c'est un moyen de programmation qui est peu intuitif mais reste cependant efficace. D'autres solutions de programmation existent comme NXC qui est un langage basé sur le C et adapté pour fonctionner avec les boîtiers NXT.&lt;br /&gt;
&lt;br /&gt;
Pour revenir à l'algorithme même, le mode basique se décompose comme suit :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego1.jpg|400px|thumb|right|Programme final basique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Tant que vrai&lt;br /&gt;
      Recevoir message bluetooth&lt;br /&gt;
      Associer la valeur du message à une variable&lt;br /&gt;
      Si nouveau message&lt;br /&gt;
         Comparaison de la valeur du message&lt;br /&gt;
            0: Arrêt&lt;br /&gt;
            1: Avancer&lt;br /&gt;
            2: Reculer&lt;br /&gt;
            3: Tourner à gauche&lt;br /&gt;
            4: Tourner à droite&lt;br /&gt;
         Fin comparaison&lt;br /&gt;
      Fin si&lt;br /&gt;
      Envoi message de confirmation&lt;br /&gt;
   Fin tant que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du mode total, il suffit simplement d'ajouter un cas n°5 qui récupèrera les instructions pour contrôler la puissance à fournir par les moteurs :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego2.jpg|600px|thumb|center|Programme final total]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            5: Récupérer et envoyer les valeurs pour les moteurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation de la FoxBoard G20'''&lt;br /&gt;
&lt;br /&gt;
La FoxBoard est un 'mini' ordinateur fonctionnant sous Linux, il est donc possible de la configurer afin de lui faire faire ce que l'on souhaite. En se connectant à la FoxBoard (en ethernet ou par Wi-Fi), il est possible d'y enter des commandes dans un terminal depuis une machine classique sous Linux, grâce à la commande exécutée en mode Super Utilisateur (su) :&lt;br /&gt;
   ssh root@192.168.100.1  ou  ssh root@192.168.1.1&lt;br /&gt;
La commande change selon le type de connexion (filaire ou non).&lt;br /&gt;
A partir de la, nous sommes en mesure de naviguer dans l'arborescence de la FoxBoard, régler différents paramètres ou encore accéder à diverses informations.&lt;br /&gt;
Par exemple, afin de pouvoir se connecter par Wi-Fi à notre robot, il est nécessaire de régler l'interface Wi-Fi en mode Master. Cependant l'intérêt principal que j'ai trouvé à me connecter en ssh à la FoxBoard aura été de pouvoir télécharger des fichier pour modifier son site de configuration. Je détaillerais la démarche un peu plus tard. &lt;br /&gt;
&lt;br /&gt;
A vrai dire, on ne peut pas vraiment parler de programmation de la FoxBoard, mais plutôt d'une configuration (du moins si on s'en tient à l'objectif de base). On accède à la page de configuration via un navigateur internet, depuis quelque machine que ce soit qui y est connectée, en tapant dans la barre d'adresse :&lt;br /&gt;
   192.168.100.1  ou  192.168.1.1&lt;br /&gt;
Encore une fois, l'adresse diffère selon le type de connexion employée.&lt;br /&gt;
&lt;br /&gt;
C'est à partir de cette page que l'on lance les différents scripts préchargés pour contrôler le robot. C'est aussi là que se trouve la page de contrôle qui envoie les ordres au boitier NXT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois la programmation du NXT terminée ainsi que la configuration de la FoxBoard, j'ai pu commencer à m'amuser avec mon robot en le contrôlant grâce à mon téléphone. Je me suis alors rendu compte que l'interface du site était très peu appréciable sur un tel appareil qui n'offre qu'un écran de quelque pouces. J'ai alors imaginé une interface plus épurée et mieux pensée pour un téléphone qui consiste simplement à superposer les boutons de contrôle du robot au dessus de l'image diffusée par la WebCam.&lt;br /&gt;
&lt;br /&gt;
'''''Screenshot nécessaire''''' &lt;br /&gt;
&lt;br /&gt;
Pour la suite, une amélioration est en cours de développement et permettrait de contrôler le robot grâce au gyroscope/accéléromètre (?) qui équipe maintenant la majorité des appareils mobiles.&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:RL_progLego2.jpg&amp;diff=1657</id>
		<title>Fichier:RL progLego2.jpg</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:RL_progLego2.jpg&amp;diff=1657"/>
				<updated>2013-03-18T07:27:33Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1656</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1656"/>
				<updated>2013-03-18T07:27:10Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : /* La programmation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons nous débrouiller pour y intégrer différentes fonctions.&lt;br /&gt;
&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le NXT), ainsi qu'une FoxBoard (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les outils nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_SchémaMindstorm.jpg|Schéma de principe&lt;br /&gt;
file:RL_robotV1.jpg|Version 1 du robot&lt;br /&gt;
file:RL_robotV1Piles.jpg|Le changement des piles n'est pas aisé&lt;br /&gt;
file:RL_robotV1Vide.jpg|Le robot débarassé du NXT et FoxBoard&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_robotV21.jpg&lt;br /&gt;
file:RL_robotV22.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le NXT dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le NXT reçoit par Bluetooth des messages envoyés par la FoxBoard. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la FoxBoard et accessible par Wi-Fi depuis un terminal quelconque.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation du boîtier NXT'''&lt;br /&gt;
&lt;br /&gt;
Les fonctions de déplacement contenues dans le NXT s'articulent autour d'un algorithme simple. Ceci m'a permis d'utiliser le logiciel de programmation fourni avec le pack LEGO MindStorms, basé sur une programmation en LabView (langage de programmation graphique). Je peux d'ailleurs dire également que c'est un moyen de programmation qui est peu intuitif mais reste cependant efficace. D'autres solutions de programmation existent comme NXC qui est un langage basé sur le C et adapté pour fonctionner avec les boîtiers NXT.&lt;br /&gt;
&lt;br /&gt;
Pour revenir à l'algorithme même, le mode basique se décompose comme suit :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego1.jpg|400px|thumb|right|Programme final basique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Tant que vrai&lt;br /&gt;
      Recevoir message bluetooth&lt;br /&gt;
      Associer la valeur du message à une variable&lt;br /&gt;
      Si nouveau message&lt;br /&gt;
         Comparaison de la valeur du message&lt;br /&gt;
            0: Arrêt&lt;br /&gt;
            1: Avancer&lt;br /&gt;
            2: Reculer&lt;br /&gt;
            3: Tourner à gauche&lt;br /&gt;
            4: Tourner à droite&lt;br /&gt;
         Fin comparaison&lt;br /&gt;
      Fin si&lt;br /&gt;
      Envoi message de confirmation&lt;br /&gt;
   Fin tant que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du mode total, il suffit simplement d'ajouter un cas n°5 qui récupèrera les instructions pour contrôler la puissance à fournir par les moteurs :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego2.jpg|450px|thumb|center|Programme final total]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            5: Récupérer et envoyer les valeurs pour les moteurs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation de la FoxBoard G20'''&lt;br /&gt;
&lt;br /&gt;
La FoxBoard est un 'mini' ordinateur fonctionnant sous Linux, il est donc possible de la configurer afin de lui faire faire ce que l'on souhaite. En se connectant à la FoxBoard (en ethernet ou par Wi-Fi), il est possible d'y enter des commandes dans un terminal depuis une machine classique sous Linux, grâce à la commande exécutée en mode Super Utilisateur (su) :&lt;br /&gt;
   ssh root@192.168.100.1  ou  ssh root@192.168.1.1&lt;br /&gt;
La commande change selon le type de connexion (filaire ou non).&lt;br /&gt;
A partir de la, nous sommes en mesure de naviguer dans l'arborescence de la FoxBoard, régler différents paramètres ou encore accéder à diverses informations.&lt;br /&gt;
Par exemple, afin de pouvoir se connecter par Wi-Fi à notre robot, il est nécessaire de régler l'interface Wi-Fi en mode Master. Cependant l'intérêt principal que j'ai trouvé à me connecter en ssh à la FoxBoard aura été de pouvoir télécharger des fichier pour modifier son site de configuration. Je détaillerais la démarche un peu plus tard. &lt;br /&gt;
&lt;br /&gt;
A vrai dire, on ne peut pas vraiment parler de programmation de la FoxBoard, mais plutôt d'une configuration (du moins si on s'en tient à l'objectif de base). On accède à la page de configuration via un navigateur internet, depuis quelque machine que ce soit qui y est connectée, en tapant dans la barre d'adresse :&lt;br /&gt;
   192.168.100.1  ou  192.168.1.1&lt;br /&gt;
Encore une fois, l'adresse diffère selon le type de connexion employée.&lt;br /&gt;
&lt;br /&gt;
C'est à partir de cette page que l'on lance les différents scripts préchargés pour contrôler le robot. C'est aussi là que se trouve la page de contrôle qui envoie les ordres au boitier NXT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois la programmation du NXT terminée ainsi que la configuration de la FoxBoard, j'ai pu commencer à m'amuser avec mon robot en le contrôlant grâce à mon téléphone. Je me suis alors rendu compte que l'interface du site était très peu appréciable sur un tel appareil qui n'offre qu'un écran de quelque pouces. J'ai alors imaginé une interface plus épurée et mieux pensée pour un téléphone qui consiste simplement à superposer les boutons de contrôle du robot au dessus de l'image diffusée par la WebCam.&lt;br /&gt;
&lt;br /&gt;
'''''Screenshot nécessaire''''' &lt;br /&gt;
&lt;br /&gt;
Pour la suite, une amélioration est en cours de développement et permettrait de contrôler le robot grâce au gyroscope/accéléromètre (?) qui équipe maintenant la majorité des appareils mobiles.&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1644</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1644"/>
				<updated>2013-03-14T22:47:53Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons nous débrouiller pour y intégrer différentes fonctions.&lt;br /&gt;
&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le NXT), ainsi qu'une FoxBoard (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les outils nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_SchémaMindstorm.jpg|Schéma de principe&lt;br /&gt;
file:RL_robotV1.jpg|Version 1 du robot&lt;br /&gt;
file:RL_robotV1Piles.jpg|Le changement des piles n'est pas aisé&lt;br /&gt;
file:RL_robotV1Vide.jpg|Le robot débarassé du NXT et FoxBoard&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_robotV21.jpg&lt;br /&gt;
file:RL_robotV22.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le NXT dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le NXT reçoit par Bluetooth des messages envoyés par la FoxBoard. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la FoxBoard et accessible par Wi-Fi depuis un terminal quelconque.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation du boîtier NXT'''&lt;br /&gt;
&lt;br /&gt;
Les fonctions de déplacement contenues dans le NXT s'articulent autour d'un algorithme simple. Ceci m'a permis d'utiliser le logiciel de programmation fourni avec le pack LEGO MindStorms, basé sur une programmation en LabView (langage de programmation graphique). Je peux d'ailleurs dire également que c'est un moyen de programmation qui est peu intuitif mais reste cependant efficace. D'autres solutions de programmation existent comme NXC qui est un langage basé sur le C et adapté pour fonctionner avec les boîtiers NXT.&lt;br /&gt;
&lt;br /&gt;
Pour revenir à l'algorithme même, il se décompose comme suit :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego1.jpg|400px|thumb|right|Programme final v1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Tant que vrai&lt;br /&gt;
      Recevoir message bluetooth&lt;br /&gt;
      Associer la valeur du message à une variable&lt;br /&gt;
      Si nouveau message&lt;br /&gt;
         Comparaison de la valeur du message&lt;br /&gt;
            0: Arrêt&lt;br /&gt;
            1: Avancer&lt;br /&gt;
            2: Reculer&lt;br /&gt;
            3: Tourner à gauche&lt;br /&gt;
            4: Tourner à droite&lt;br /&gt;
         Fin comparaison&lt;br /&gt;
      Fin si&lt;br /&gt;
      Envoi message de confirmation&lt;br /&gt;
   Fin tant que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Programmation de la FoxBoard G20'''&lt;br /&gt;
&lt;br /&gt;
La FoxBoard est un 'mini' ordinateur fonctionnant sous Linux, il est donc possible de la configurer afin de lui faire faire ce que l'on souhaite. En se connectant à la FoxBoard (en ethernet ou par Wi-Fi), il est possible d'y enter des commandes dans un terminal depuis une machine classique sous Linux, grâce à la commande exécutée en mode Super Utilisateur (su) :&lt;br /&gt;
   ssh root@192.168.100.1  ou  ssh root@192.168.1.1&lt;br /&gt;
La commande change selon le type de connexion (filaire ou non).&lt;br /&gt;
A partir de la, nous sommes en mesure de naviguer dans l'arborescence de la FoxBoard, régler différents paramètres ou encore accéder à diverses informations.&lt;br /&gt;
Par exemple, afin de pouvoir se connecter par Wi-Fi à notre robot, il est nécessaire de régler l'interface Wi-Fi en mode Master. Cependant l'intérêt principal que j'ai trouvé à me connecter en ssh à la FoxBoard aura été de pouvoir télécharger des fichier pour modifier son site de configuration. Je détaillerais la démarche un peu plus tard. &lt;br /&gt;
&lt;br /&gt;
A vrai dire, on ne peut pas vraiment parler de programmation de la FoxBoard, mais plutôt d'une configuration (du moins si on s'en tient à l'objectif de base). On accède à la page de configuration via un navigateur internet, depuis quelque machine que ce soit qui y est connectée, en tapant dans la barre d'adresse :&lt;br /&gt;
   192.168.100.1  ou  192.168.1.1&lt;br /&gt;
Encore une fois, l'adresse diffère selon le type de connexion employée.&lt;br /&gt;
&lt;br /&gt;
C'est à partir de cette page que l'on lance les différents scripts préchargés pour contrôler le robot. C'est aussi là que se trouve la page de contrôle qui envoie les ordres au boitier NXT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois la programmation du NXT terminée ainsi que la configuration de la FoxBoard, j'ai pu commencer à m'amuser avec mon robot en le contrôlant grâce à mon téléphone. Je me suis alors rendu compte que l'interface du site était très peu appréciable sur un tel appareil qui n'offre qu'un écran de quelque pouces. J'ai alors imaginé une interface plus épurée et mieux pensée pour un téléphone qui consiste simplement à superposer les boutons de contrôle du robot au dessus de l'image diffusée par la WebCam.&lt;br /&gt;
&lt;br /&gt;
'''''Screenshot nécessaire''''' &lt;br /&gt;
&lt;br /&gt;
Pour la suite, une amélioration est en cours de développement et permettrait de contrôler le robot grâce au gyroscope/accéléromètre (?) qui équipe maintenant la majorité des appareils mobiles.&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:RL_robotV22.jpg&amp;diff=1643</id>
		<title>Fichier:RL robotV22.jpg</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:RL_robotV22.jpg&amp;diff=1643"/>
				<updated>2013-03-14T22:45:15Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1642</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1642"/>
				<updated>2013-03-14T22:45:14Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : /* La construction du robot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons nous débrouiller pour y intégrer différentes fonctions.&lt;br /&gt;
&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le NXT), ainsi qu'une FoxBoard (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les outils nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_SchémaMindstorm.jpg|Schéma de principe&lt;br /&gt;
file:RL_robotV1.jpg|Version 1 du robot&lt;br /&gt;
file:RL_robotV1Piles.jpg|Le changement des piles n'est pas aisé&lt;br /&gt;
file:RL_robotV1Vide.jpg|Le robot débarassé du NXT et FoxBoard&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_robotV21.jpg&lt;br /&gt;
file:RL_robotV22.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le NXT dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le NXT reçoit par Bluetooth des messages envoyés par la FoxBoard. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la FoxBoard et accessible par Wi-Fi depuis un terminal quelconque.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation du boîtier NXT'''&lt;br /&gt;
&lt;br /&gt;
Les fonctions de déplacement contenues dans le NXT s'articulent autour d'un algorithme simple. Ceci m'a permis d'utiliser le logiciel de programmation fourni avec le pack LEGO MindStorms, basé sur une programmation en LabView (langage de programmation graphique). Je peux d'ailleurs dire également que c'est un moyen de programmation qui est peu intuitif mais reste cependant efficace. D'autres solutions de programmation existent comme NXC qui est un langage basé sur le C et adapté pour fonctionner avec les boîtiers NXT.&lt;br /&gt;
&lt;br /&gt;
Pour revenir à l'algorithme même, il se décompose comme suit :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego1.jpg|400px|thumb|right|Programme final v1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Tant que vrai&lt;br /&gt;
      Recevoir message bluetooth&lt;br /&gt;
      Associer la valeur du message à une variable&lt;br /&gt;
      Si nouveau message&lt;br /&gt;
         Comparaison de la valeur du message&lt;br /&gt;
            0: Arrêt&lt;br /&gt;
            1: Avancer&lt;br /&gt;
            2: Reculer&lt;br /&gt;
            3: Tourner à gauche&lt;br /&gt;
            4: Tourner à droite&lt;br /&gt;
         Fin comparaison&lt;br /&gt;
      Fin si&lt;br /&gt;
      Envoi message de confirmation&lt;br /&gt;
   Fin tant que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Programmation de la FoxBoard G20'''&lt;br /&gt;
&lt;br /&gt;
La FoxBoard est un 'mini' ordinateur fonctionnant sous Linux, il est donc possible de la configurer afin de lui faire faire ce que l'on souhaite. En se connectant à la FoxBoard (en ethernet ou par Wi-Fi), il est possible d'y enter des commandes dans un terminal depuis une machine classique sous Linux, grâce à la commande exécutée en mode Super Utilisateur (su) :&lt;br /&gt;
   ssh root@192.168.100.1  ou  ssh root@192.168.1.1&lt;br /&gt;
La commande change selon le type de connexion (filaire ou non).&lt;br /&gt;
A partir de la, nous sommes en mesure de naviguer dans l'arborescence de la FoxBoard, régler différents paramètres ou encore accéder à diverses informations.&lt;br /&gt;
Par exemple, afin de pouvoir se connecter par Wi-Fi à notre robot, il est nécessaire de régler l'interface Wi-Fi en mode Master. Cependant l'intérêt principal que j'ai trouvé à me connecter en ssh à la FoxBoard aura été de pouvoir télécharger des fichier pour modifier son site de configuration. Je détaillerais la démarche un peu plus tard. &lt;br /&gt;
&lt;br /&gt;
A vrai dire, on ne peut pas vraiment parler de programmation de la FoxBoard, mais plutôt d'une configuration (du moins si on s'en tient à l'objectif de base). On accède à la page de configuration via un navigateur internet, depuis quelque machine que ce soit qui y est connectée, en tapant dans la barre d'adresse :&lt;br /&gt;
   192.168.100.1  ou  192.168.1.1&lt;br /&gt;
Encore une fois, l'adresse diffère selon le type de connexion employée.&lt;br /&gt;
&lt;br /&gt;
C'est à partir de cette page que l'on lance les différents scripts préchargés pour contrôler le robot. C'est aussi là que se trouve la page de contrôle qui envoie les ordres au boitier NXT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois la programmation du NXT terminée ainsi que la configuration de la FoxBoard, j'ai pu commencer à m'amuser avec mon robot en le contrôlant grâce à mon téléphone. Je me suis alors rendu compte que l'interface du site était très peu appréciable sur un tel appareil qui n'offre qu'un écran de quelque pouces. J'ai alors imaginé une interface plus épurée et mieux pensée pour un téléphone qui consiste simplement à superposer les boutons de contrôle du robot au dessus de l'image diffusée par la WebCam.&lt;br /&gt;
&lt;br /&gt;
'''''Screenshot nécessaire''''' &lt;br /&gt;
&lt;br /&gt;
Pour la suite, une amélioration est en cours de développement et permettrait de contrôler le robot grâce au gyroscope/accéléromètre (?) qui équipe maintenant la majorité des appareils mobiles.&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:RL_robotV21.jpg&amp;diff=1641</id>
		<title>Fichier:RL robotV21.jpg</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:RL_robotV21.jpg&amp;diff=1641"/>
				<updated>2013-03-14T22:44:19Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1640</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1640"/>
				<updated>2013-03-14T22:41:55Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : /* La construction du robot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons nous débrouiller pour y intégrer différentes fonctions.&lt;br /&gt;
&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le NXT), ainsi qu'une FoxBoard (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les outils nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_SchémaMindstorm.jpg|Schéma de principe&lt;br /&gt;
file:RL_robotV1.jpg|Version 1 du robot&lt;br /&gt;
file:RL_robotV1Piles.jpg|Le changement des piles n'est pas aisé&lt;br /&gt;
file:RL_robotV1Vide.jpg|Le robot débarassé du NXT et FoxBoard&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le NXT dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le NXT reçoit par Bluetooth des messages envoyés par la FoxBoard. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la FoxBoard et accessible par Wi-Fi depuis un terminal quelconque.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation du boîtier NXT'''&lt;br /&gt;
&lt;br /&gt;
Les fonctions de déplacement contenues dans le NXT s'articulent autour d'un algorithme simple. Ceci m'a permis d'utiliser le logiciel de programmation fourni avec le pack LEGO MindStorms, basé sur une programmation en LabView (langage de programmation graphique). Je peux d'ailleurs dire également que c'est un moyen de programmation qui est peu intuitif mais reste cependant efficace. D'autres solutions de programmation existent comme NXC qui est un langage basé sur le C et adapté pour fonctionner avec les boîtiers NXT.&lt;br /&gt;
&lt;br /&gt;
Pour revenir à l'algorithme même, il se décompose comme suit :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego1.jpg|400px|thumb|right|Programme final v1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Tant que vrai&lt;br /&gt;
      Recevoir message bluetooth&lt;br /&gt;
      Associer la valeur du message à une variable&lt;br /&gt;
      Si nouveau message&lt;br /&gt;
         Comparaison de la valeur du message&lt;br /&gt;
            0: Arrêt&lt;br /&gt;
            1: Avancer&lt;br /&gt;
            2: Reculer&lt;br /&gt;
            3: Tourner à gauche&lt;br /&gt;
            4: Tourner à droite&lt;br /&gt;
         Fin comparaison&lt;br /&gt;
      Fin si&lt;br /&gt;
      Envoi message de confirmation&lt;br /&gt;
   Fin tant que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Programmation de la FoxBoard G20'''&lt;br /&gt;
&lt;br /&gt;
La FoxBoard est un 'mini' ordinateur fonctionnant sous Linux, il est donc possible de la configurer afin de lui faire faire ce que l'on souhaite. En se connectant à la FoxBoard (en ethernet ou par Wi-Fi), il est possible d'y enter des commandes dans un terminal depuis une machine classique sous Linux, grâce à la commande exécutée en mode Super Utilisateur (su) :&lt;br /&gt;
   ssh root@192.168.100.1  ou  ssh root@192.168.1.1&lt;br /&gt;
La commande change selon le type de connexion (filaire ou non).&lt;br /&gt;
A partir de la, nous sommes en mesure de naviguer dans l'arborescence de la FoxBoard, régler différents paramètres ou encore accéder à diverses informations.&lt;br /&gt;
Par exemple, afin de pouvoir se connecter par Wi-Fi à notre robot, il est nécessaire de régler l'interface Wi-Fi en mode Master. Cependant l'intérêt principal que j'ai trouvé à me connecter en ssh à la FoxBoard aura été de pouvoir télécharger des fichier pour modifier son site de configuration. Je détaillerais la démarche un peu plus tard. &lt;br /&gt;
&lt;br /&gt;
A vrai dire, on ne peut pas vraiment parler de programmation de la FoxBoard, mais plutôt d'une configuration (du moins si on s'en tient à l'objectif de base). On accède à la page de configuration via un navigateur internet, depuis quelque machine que ce soit qui y est connectée, en tapant dans la barre d'adresse :&lt;br /&gt;
   192.168.100.1  ou  192.168.1.1&lt;br /&gt;
Encore une fois, l'adresse diffère selon le type de connexion employée.&lt;br /&gt;
&lt;br /&gt;
C'est à partir de cette page que l'on lance les différents scripts préchargés pour contrôler le robot. C'est aussi là que se trouve la page de contrôle qui envoie les ordres au boitier NXT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois la programmation du NXT terminée ainsi que la configuration de la FoxBoard, j'ai pu commencer à m'amuser avec mon robot en le contrôlant grâce à mon téléphone. Je me suis alors rendu compte que l'interface du site était très peu appréciable sur un tel appareil qui n'offre qu'un écran de quelque pouces. J'ai alors imaginé une interface plus épurée et mieux pensée pour un téléphone qui consiste simplement à superposer les boutons de contrôle du robot au dessus de l'image diffusée par la WebCam.&lt;br /&gt;
&lt;br /&gt;
'''''Screenshot nécessaire''''' &lt;br /&gt;
&lt;br /&gt;
Pour la suite, une amélioration est en cours de développement et permettrait de contrôler le robot grâce au gyroscope/accéléromètre (?) qui équipe maintenant la majorité des appareils mobiles.&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1639</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1639"/>
				<updated>2013-03-14T22:41:19Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : /* La construction du robot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons nous débrouiller pour y intégrer différentes fonctions.&lt;br /&gt;
&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le NXT), ainsi qu'une FoxBoard (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les outils nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. &lt;br /&gt;
&lt;br /&gt;
'''''Schéma et photos à ajouter'''''&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_SchémaMindstorm.jpg|Schéma de principe&lt;br /&gt;
file:RL_robotV1.jpg|Version 1 du robot&lt;br /&gt;
file:RL_robotV1Piles.jpg|Le changement des piles n'est pas aisé&lt;br /&gt;
file:RL_robotV1Vide.jpg|Le robot débarassé du NXT et FoxBoard&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le NXT dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le NXT reçoit par Bluetooth des messages envoyés par la FoxBoard. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la FoxBoard et accessible par Wi-Fi depuis un terminal quelconque.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation du boîtier NXT'''&lt;br /&gt;
&lt;br /&gt;
Les fonctions de déplacement contenues dans le NXT s'articulent autour d'un algorithme simple. Ceci m'a permis d'utiliser le logiciel de programmation fourni avec le pack LEGO MindStorms, basé sur une programmation en LabView (langage de programmation graphique). Je peux d'ailleurs dire également que c'est un moyen de programmation qui est peu intuitif mais reste cependant efficace. D'autres solutions de programmation existent comme NXC qui est un langage basé sur le C et adapté pour fonctionner avec les boîtiers NXT.&lt;br /&gt;
&lt;br /&gt;
Pour revenir à l'algorithme même, il se décompose comme suit :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego1.jpg|400px|thumb|right|Programme final v1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Tant que vrai&lt;br /&gt;
      Recevoir message bluetooth&lt;br /&gt;
      Associer la valeur du message à une variable&lt;br /&gt;
      Si nouveau message&lt;br /&gt;
         Comparaison de la valeur du message&lt;br /&gt;
            0: Arrêt&lt;br /&gt;
            1: Avancer&lt;br /&gt;
            2: Reculer&lt;br /&gt;
            3: Tourner à gauche&lt;br /&gt;
            4: Tourner à droite&lt;br /&gt;
         Fin comparaison&lt;br /&gt;
      Fin si&lt;br /&gt;
      Envoi message de confirmation&lt;br /&gt;
   Fin tant que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Programmation de la FoxBoard G20'''&lt;br /&gt;
&lt;br /&gt;
La FoxBoard est un 'mini' ordinateur fonctionnant sous Linux, il est donc possible de la configurer afin de lui faire faire ce que l'on souhaite. En se connectant à la FoxBoard (en ethernet ou par Wi-Fi), il est possible d'y enter des commandes dans un terminal depuis une machine classique sous Linux, grâce à la commande exécutée en mode Super Utilisateur (su) :&lt;br /&gt;
   ssh root@192.168.100.1  ou  ssh root@192.168.1.1&lt;br /&gt;
La commande change selon le type de connexion (filaire ou non).&lt;br /&gt;
A partir de la, nous sommes en mesure de naviguer dans l'arborescence de la FoxBoard, régler différents paramètres ou encore accéder à diverses informations.&lt;br /&gt;
Par exemple, afin de pouvoir se connecter par Wi-Fi à notre robot, il est nécessaire de régler l'interface Wi-Fi en mode Master. Cependant l'intérêt principal que j'ai trouvé à me connecter en ssh à la FoxBoard aura été de pouvoir télécharger des fichier pour modifier son site de configuration. Je détaillerais la démarche un peu plus tard. &lt;br /&gt;
&lt;br /&gt;
A vrai dire, on ne peut pas vraiment parler de programmation de la FoxBoard, mais plutôt d'une configuration (du moins si on s'en tient à l'objectif de base). On accède à la page de configuration via un navigateur internet, depuis quelque machine que ce soit qui y est connectée, en tapant dans la barre d'adresse :&lt;br /&gt;
   192.168.100.1  ou  192.168.1.1&lt;br /&gt;
Encore une fois, l'adresse diffère selon le type de connexion employée.&lt;br /&gt;
&lt;br /&gt;
C'est à partir de cette page que l'on lance les différents scripts préchargés pour contrôler le robot. C'est aussi là que se trouve la page de contrôle qui envoie les ordres au boitier NXT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois la programmation du NXT terminée ainsi que la configuration de la FoxBoard, j'ai pu commencer à m'amuser avec mon robot en le contrôlant grâce à mon téléphone. Je me suis alors rendu compte que l'interface du site était très peu appréciable sur un tel appareil qui n'offre qu'un écran de quelque pouces. J'ai alors imaginé une interface plus épurée et mieux pensée pour un téléphone qui consiste simplement à superposer les boutons de contrôle du robot au dessus de l'image diffusée par la WebCam.&lt;br /&gt;
&lt;br /&gt;
'''''Screenshot nécessaire''''' &lt;br /&gt;
&lt;br /&gt;
Pour la suite, une amélioration est en cours de développement et permettrait de contrôler le robot grâce au gyroscope/accéléromètre (?) qui équipe maintenant la majorité des appareils mobiles.&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:RL_robotV1Vide.jpg&amp;diff=1638</id>
		<title>Fichier:RL robotV1Vide.jpg</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:RL_robotV1Vide.jpg&amp;diff=1638"/>
				<updated>2013-03-14T22:40:46Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:RL_robotV1Piles.jpg&amp;diff=1637</id>
		<title>Fichier:RL robotV1Piles.jpg</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:RL_robotV1Piles.jpg&amp;diff=1637"/>
				<updated>2013-03-14T22:39:18Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:RL_robotV1.jpg&amp;diff=1636</id>
		<title>Fichier:RL robotV1.jpg</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:RL_robotV1.jpg&amp;diff=1636"/>
				<updated>2013-03-14T22:38:00Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1635</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1635"/>
				<updated>2013-03-13T17:36:19Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons nous débrouiller pour y intégrer différentes fonctions.&lt;br /&gt;
&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le NXT), ainsi qu'une FoxBoard (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les outils nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. &lt;br /&gt;
&lt;br /&gt;
'''''Schéma et photos à ajouter'''''&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
file:RL_SchémaMindstorm.jpg|Schéma de principe&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le NXT dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le NXT reçoit par Bluetooth des messages envoyés par la FoxBoard. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la FoxBoard et accessible par Wi-Fi depuis un terminal quelconque.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation du boîtier NXT'''&lt;br /&gt;
&lt;br /&gt;
Les fonctions de déplacement contenues dans le NXT s'articulent autour d'un algorithme simple. Ceci m'a permis d'utiliser le logiciel de programmation fourni avec le pack LEGO MindStorms, basé sur une programmation en LabView (langage de programmation graphique). Je peux d'ailleurs dire également que c'est un moyen de programmation qui est peu intuitif mais reste cependant efficace. D'autres solutions de programmation existent comme NXC qui est un langage basé sur le C et adapté pour fonctionner avec les boîtiers NXT.&lt;br /&gt;
&lt;br /&gt;
Pour revenir à l'algorithme même, il se décompose comme suit :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego1.jpg|400px|thumb|right|Programme final v1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Tant que vrai&lt;br /&gt;
      Recevoir message bluetooth&lt;br /&gt;
      Associer la valeur du message à une variable&lt;br /&gt;
      Si nouveau message&lt;br /&gt;
         Comparaison de la valeur du message&lt;br /&gt;
            0: Arrêt&lt;br /&gt;
            1: Avancer&lt;br /&gt;
            2: Reculer&lt;br /&gt;
            3: Tourner à gauche&lt;br /&gt;
            4: Tourner à droite&lt;br /&gt;
         Fin comparaison&lt;br /&gt;
      Fin si&lt;br /&gt;
      Envoi message de confirmation&lt;br /&gt;
   Fin tant que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Programmation de la FoxBoard G20'''&lt;br /&gt;
&lt;br /&gt;
La FoxBoard est un 'mini' ordinateur fonctionnant sous Linux, il est donc possible de la configurer afin de lui faire faire ce que l'on souhaite. En se connectant à la FoxBoard (en ethernet ou par Wi-Fi), il est possible d'y enter des commandes dans un terminal depuis une machine classique sous Linux, grâce à la commande exécutée en mode Super Utilisateur (su) :&lt;br /&gt;
   ssh root@192.168.100.1  ou  ssh root@192.168.1.1&lt;br /&gt;
La commande change selon le type de connexion (filaire ou non).&lt;br /&gt;
A partir de la, nous sommes en mesure de naviguer dans l'arborescence de la FoxBoard, régler différents paramètres ou encore accéder à diverses informations.&lt;br /&gt;
Par exemple, afin de pouvoir se connecter par Wi-Fi à notre robot, il est nécessaire de régler l'interface Wi-Fi en mode Master. Cependant l'intérêt principal que j'ai trouvé à me connecter en ssh à la FoxBoard aura été de pouvoir télécharger des fichier pour modifier son site de configuration. Je détaillerais la démarche un peu plus tard. &lt;br /&gt;
&lt;br /&gt;
A vrai dire, on ne peut pas vraiment parler de programmation de la FoxBoard, mais plutôt d'une configuration (du moins si on s'en tient à l'objectif de base). On accède à la page de configuration via un navigateur internet, depuis quelque machine que ce soit qui y est connectée, en tapant dans la barre d'adresse :&lt;br /&gt;
   192.168.100.1  ou  192.168.1.1&lt;br /&gt;
Encore une fois, l'adresse diffère selon le type de connexion employée.&lt;br /&gt;
&lt;br /&gt;
C'est à partir de cette page que l'on lance les différents scripts préchargés pour contrôler le robot. C'est aussi là que se trouve la page de contrôle qui envoie les ordres au boitier NXT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois la programmation du NXT terminée ainsi que la configuration de la FoxBoard, j'ai pu commencer à m'amuser avec mon robot en le contrôlant grâce à mon téléphone. Je me suis alors rendu compte que l'interface du site était très peu appréciable sur un tel appareil qui n'offre qu'un écran de quelque pouces. J'ai alors imaginé une interface plus épurée et mieux pensée pour un téléphone qui consiste simplement à superposer les boutons de contrôle du robot au dessus de l'image diffusée par la WebCam.&lt;br /&gt;
&lt;br /&gt;
'''''Screenshot nécessaire''''' &lt;br /&gt;
&lt;br /&gt;
Pour la suite, une amélioration est en cours de développement et permettrait de contrôler le robot grâce au gyroscope/accéléromètre (?) qui équipe maintenant la majorité des appareils mobiles.&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1634</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1634"/>
				<updated>2013-03-13T17:33:30Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : /* La construction du robot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons nous débrouiller pour y intégrer différentes fonctions.&lt;br /&gt;
&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le NXT), ainsi qu'une FoxBoard (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les outils nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. &lt;br /&gt;
&lt;br /&gt;
'''''Schéma et photos à ajouter'''''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_SchémaMindstorm.jpg]]&lt;br /&gt;
&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le NXT dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le NXT reçoit par Bluetooth des messages envoyés par la FoxBoard. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la FoxBoard et accessible par Wi-Fi depuis un terminal quelconque.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation du boîtier NXT'''&lt;br /&gt;
&lt;br /&gt;
Les fonctions de déplacement contenues dans le NXT s'articulent autour d'un algorithme simple. Ceci m'a permis d'utiliser le logiciel de programmation fourni avec le pack LEGO MindStorms, basé sur une programmation en LabView (langage de programmation graphique). Je peux d'ailleurs dire également que c'est un moyen de programmation qui est peu intuitif mais reste cependant efficace. D'autres solutions de programmation existent comme NXC qui est un langage basé sur le C et adapté pour fonctionner avec les boîtiers NXT.&lt;br /&gt;
&lt;br /&gt;
Pour revenir à l'algorithme même, il se décompose comme suit :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego1.jpg|400px|thumb|right|Programme final v1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Tant que vrai&lt;br /&gt;
      Recevoir message bluetooth&lt;br /&gt;
      Associer la valeur du message à une variable&lt;br /&gt;
      Si nouveau message&lt;br /&gt;
         Comparaison de la valeur du message&lt;br /&gt;
            0: Arrêt&lt;br /&gt;
            1: Avancer&lt;br /&gt;
            2: Reculer&lt;br /&gt;
            3: Tourner à gauche&lt;br /&gt;
            4: Tourner à droite&lt;br /&gt;
         Fin comparaison&lt;br /&gt;
      Fin si&lt;br /&gt;
      Envoi message de confirmation&lt;br /&gt;
   Fin tant que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Programmation de la FoxBoard G20'''&lt;br /&gt;
&lt;br /&gt;
La FoxBoard est un 'mini' ordinateur fonctionnant sous Linux, il est donc possible de la configurer afin de lui faire faire ce que l'on souhaite. En se connectant à la FoxBoard (en ethernet ou par Wi-Fi), il est possible d'y enter des commandes dans un terminal depuis une machine classique sous Linux, grâce à la commande exécutée en mode Super Utilisateur (su) :&lt;br /&gt;
   ssh root@192.168.100.1  ou  ssh root@192.168.1.1&lt;br /&gt;
La commande change selon le type de connexion (filaire ou non).&lt;br /&gt;
A partir de la, nous sommes en mesure de naviguer dans l'arborescence de la FoxBoard, régler différents paramètres ou encore accéder à diverses informations.&lt;br /&gt;
Par exemple, afin de pouvoir se connecter par Wi-Fi à notre robot, il est nécessaire de régler l'interface Wi-Fi en mode Master. Cependant l'intérêt principal que j'ai trouvé à me connecter en ssh à la FoxBoard aura été de pouvoir télécharger des fichier pour modifier son site de configuration. Je détaillerais la démarche un peu plus tard. &lt;br /&gt;
&lt;br /&gt;
A vrai dire, on ne peut pas vraiment parler de programmation de la FoxBoard, mais plutôt d'une configuration (du moins si on s'en tient à l'objectif de base). On accède à la page de configuration via un navigateur internet, depuis quelque machine que ce soit qui y est connectée, en tapant dans la barre d'adresse :&lt;br /&gt;
   192.168.100.1  ou  192.168.1.1&lt;br /&gt;
Encore une fois, l'adresse diffère selon le type de connexion employée.&lt;br /&gt;
&lt;br /&gt;
C'est à partir de cette page que l'on lance les différents scripts préchargés pour contrôler le robot. C'est aussi là que se trouve la page de contrôle qui envoie les ordres au boitier NXT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois la programmation du NXT terminée ainsi que la configuration de la FoxBoard, j'ai pu commencer à m'amuser avec mon robot en le contrôlant grâce à mon téléphone. Je me suis alors rendu compte que l'interface du site était très peu appréciable sur un tel appareil qui n'offre qu'un écran de quelque pouces. J'ai alors imaginé une interface plus épurée et mieux pensée pour un téléphone qui consiste simplement à superposer les boutons de contrôle du robot au dessus de l'image diffusée par la WebCam.&lt;br /&gt;
&lt;br /&gt;
'''''Screenshot nécessaire''''' &lt;br /&gt;
&lt;br /&gt;
Pour la suite, une amélioration est en cours de développement et permettrait de contrôler le robot grâce au gyroscope/accéléromètre (?) qui équipe maintenant la majorité des appareils mobiles.&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:RL_Sch%C3%A9maMindstorm.jpg&amp;diff=1633</id>
		<title>Fichier:RL SchémaMindstorm.jpg</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:RL_Sch%C3%A9maMindstorm.jpg&amp;diff=1633"/>
				<updated>2013-03-13T17:25:34Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : Principe de fonctionnement MindStorm&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Principe de fonctionnement MindStorm&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1632</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1632"/>
				<updated>2013-03-13T16:17:49Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : /* La construction du robot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons nous débrouiller pour y intégrer différentes fonctions.&lt;br /&gt;
&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le NXT), ainsi qu'une FoxBoard (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les outils nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. '''''Schéma et photos à ajouter'''''&lt;br /&gt;
&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le NXT dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le NXT reçoit par Bluetooth des messages envoyés par la FoxBoard. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la FoxBoard et accessible par Wi-Fi depuis un terminal quelconque.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation du boîtier NXT'''&lt;br /&gt;
&lt;br /&gt;
Les fonctions de déplacement contenues dans le NXT s'articulent autour d'un algorithme simple. Ceci m'a permis d'utiliser le logiciel de programmation fourni avec le pack LEGO MindStorms, basé sur une programmation en LabView (langage de programmation graphique). Je peux d'ailleurs dire également que c'est un moyen de programmation qui est peu intuitif mais reste cependant efficace. D'autres solutions de programmation existent comme NXC qui est un langage basé sur le C et adapté pour fonctionner avec les boîtiers NXT.&lt;br /&gt;
&lt;br /&gt;
Pour revenir à l'algorithme même, il se décompose comme suit :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego1.jpg|400px|thumb|right|Programme final v1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Tant que vrai&lt;br /&gt;
      Recevoir message bluetooth&lt;br /&gt;
      Associer la valeur du message à une variable&lt;br /&gt;
      Si nouveau message&lt;br /&gt;
         Comparaison de la valeur du message&lt;br /&gt;
            0: Arrêt&lt;br /&gt;
            1: Avancer&lt;br /&gt;
            2: Reculer&lt;br /&gt;
            3: Tourner à gauche&lt;br /&gt;
            4: Tourner à droite&lt;br /&gt;
         Fin comparaison&lt;br /&gt;
      Fin si&lt;br /&gt;
      Envoi message de confirmation&lt;br /&gt;
   Fin tant que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Programmation de la FoxBoard G20'''&lt;br /&gt;
&lt;br /&gt;
La FoxBoard est un 'mini' ordinateur fonctionnant sous Linux, il est donc possible de la configurer afin de lui faire faire ce que l'on souhaite. En se connectant à la FoxBoard (en ethernet ou par Wi-Fi), il est possible d'y enter des commandes dans un terminal depuis une machine classique sous Linux, grâce à la commande exécutée en mode Super Utilisateur (su) :&lt;br /&gt;
   ssh root@192.168.100.1  ou  ssh root@192.168.1.1&lt;br /&gt;
La commande change selon le type de connexion (filaire ou non).&lt;br /&gt;
A partir de la, nous sommes en mesure de naviguer dans l'arborescence de la FoxBoard, régler différents paramètres ou encore accéder à diverses informations.&lt;br /&gt;
Par exemple, afin de pouvoir se connecter par Wi-Fi à notre robot, il est nécessaire de régler l'interface Wi-Fi en mode Master. Cependant l'intérêt principal que j'ai trouvé à me connecter en ssh à la FoxBoard aura été de pouvoir télécharger des fichier pour modifier son site de configuration. Je détaillerais la démarche un peu plus tard. &lt;br /&gt;
&lt;br /&gt;
A vrai dire, on ne peut pas vraiment parler de programmation de la FoxBoard, mais plutôt d'une configuration (du moins si on s'en tient à l'objectif de base). On accède à la page de configuration via un navigateur internet, depuis quelque machine que ce soit qui y est connectée, en tapant dans la barre d'adresse :&lt;br /&gt;
   192.168.100.1  ou  192.168.1.1&lt;br /&gt;
Encore une fois, l'adresse diffère selon le type de connexion employée.&lt;br /&gt;
&lt;br /&gt;
C'est à partir de cette page que l'on lance les différents scripts préchargés pour contrôler le robot. C'est aussi là que se trouve la page de contrôle qui envoie les ordres au boitier NXT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois la programmation du NXT terminée ainsi que la configuration de la FoxBoard, j'ai pu commencer à m'amuser avec mon robot en le contrôlant grâce à mon téléphone. Je me suis alors rendu compte que l'interface du site était très peu appréciable sur un tel appareil qui n'offre qu'un écran de quelque pouces. J'ai alors imaginé une interface plus épurée et mieux pensée pour un téléphone qui consiste simplement à superposer les boutons de contrôle du robot au dessus de l'image diffusée par la WebCam.&lt;br /&gt;
&lt;br /&gt;
'''''Screenshot nécessaire''''' &lt;br /&gt;
&lt;br /&gt;
Pour la suite, une amélioration est en cours de développement et permettrait de contrôler le robot grâce au gyroscope/accéléromètre (?) qui équipe maintenant la majorité des appareils mobiles.&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1595</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1595"/>
				<updated>2013-03-11T14:22:10Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : /* La programmation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons nous débrouiller pour y intégrer différentes fonctions.&lt;br /&gt;
&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le NXT), ainsi qu'une FoxBoard (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les modules nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. '''''Schéma et photos à ajouter'''''&lt;br /&gt;
&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le NXT dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le NXT reçoit par Bluetooth des messages envoyés par la FoxBoard. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la FoxBoard et accessible par Wi-Fi depuis un terminal quelconque.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation du boîtier NXT'''&lt;br /&gt;
&lt;br /&gt;
Les fonctions de déplacement contenues dans le NXT s'articulent autour d'un algorithme simple. Ceci m'a permis d'utiliser le logiciel de programmation fourni avec le pack LEGO MindStorms, basé sur une programmation en LabView (langage de programmation graphique). Je peux d'ailleurs dire également que c'est un moyen de programmation qui est peu intuitif mais reste cependant efficace. D'autres solutions de programmation existent comme NXC qui est un langage basé sur le C et adapté pour fonctionner avec les boîtiers NXT.&lt;br /&gt;
&lt;br /&gt;
Pour revenir à l'algorithme même, il se décompose comme suit :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego1.jpg|400px|thumb|right|Programme final v1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Tant que vrai&lt;br /&gt;
      Recevoir message bluetooth&lt;br /&gt;
      Associer la valeur du message à une variable&lt;br /&gt;
      Si nouveau message&lt;br /&gt;
         Comparaison de la valeur du message&lt;br /&gt;
            0: Arrêt&lt;br /&gt;
            1: Avancer&lt;br /&gt;
            2: Reculer&lt;br /&gt;
            3: Tourner à gauche&lt;br /&gt;
            4: Tourner à droite&lt;br /&gt;
         Fin comparaison&lt;br /&gt;
      Fin si&lt;br /&gt;
      Envoi message de confirmation&lt;br /&gt;
   Fin tant que&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Programmation de la FoxBoard G20'''&lt;br /&gt;
&lt;br /&gt;
La FoxBoard est un 'mini' ordinateur fonctionnant sous Linux, il est donc possible de la configurer afin de lui faire faire ce que l'on souhaite. En se connectant à la FoxBoard (en ethernet ou par Wi-Fi), il est possible d'y enter des commandes dans un terminal depuis une machine classique sous Linux, grâce à la commande exécutée en mode Super Utilisateur (su) :&lt;br /&gt;
   ssh root@192.168.100.1  ou  ssh root@192.168.1.1&lt;br /&gt;
La commande change selon le type de connexion (filaire ou non).&lt;br /&gt;
A partir de la, nous sommes en mesure de naviguer dans l'arborescence de la FoxBoard, régler différents paramètres ou encore accéder à diverses informations.&lt;br /&gt;
Par exemple, afin de pouvoir se connecter par Wi-Fi à notre robot, il est nécessaire de régler l'interface Wi-Fi en mode Master. Cependant l'intérêt principal que j'ai trouvé à me connecter en ssh à la FoxBoard aura été de pouvoir télécharger des fichier pour modifier son site de configuration. Je détaillerais la démarche un peu plus tard. &lt;br /&gt;
&lt;br /&gt;
A vrai dire, on ne peut pas vraiment parler de programmation de la FoxBoard, mais plutôt d'une configuration (du moins si on s'en tient à l'objectif de base). On accède à la page de configuration via un navigateur internet, depuis quelque machine que ce soit qui y est connectée, en tapant dans la barre d'adresse :&lt;br /&gt;
   192.168.100.1  ou  192.168.1.1&lt;br /&gt;
Encore une fois, l'adresse diffère selon le type de connexion employée.&lt;br /&gt;
&lt;br /&gt;
C'est à partir de cette page que l'on lance les différents scripts préchargés pour contrôler le robot. C'est aussi là que se trouve la page de contrôle qui envoie les ordres au boitier NXT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois la programmation du NXT terminée ainsi que la configuration de la FoxBoard, j'ai pu commencer à m'amuser avec mon robot en le contrôlant grâce à mon téléphone. Je me suis alors rendu compte que l'interface du site était très peu appréciable sur un tel appareil qui n'offre qu'un écran de quelque pouces. J'ai alors imaginé une interface plus épurée et mieux pensée pour un téléphone qui consiste simplement à superposer les boutons de contrôle du robot au dessus de l'image diffusée par la WebCam.&lt;br /&gt;
&lt;br /&gt;
'''''Screenshot nécessaire''''' &lt;br /&gt;
&lt;br /&gt;
Pour la suite, une amélioration est en cours de développement et permettrait de contrôler le robot grâce au gyroscope/accéléromètre (?) qui équipe maintenant la majorité des appareils mobiles.&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1594</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1594"/>
				<updated>2013-03-11T13:49:48Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : /* La programmation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons nous débrouiller pour y intégrer différentes fonctions.&lt;br /&gt;
&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le NXT), ainsi qu'une FoxBoard (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les modules nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. '''''Schéma et photos à ajouter'''''&lt;br /&gt;
&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le NXT dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le NXT reçoit par Bluetooth des messages envoyés par la FoxBoard. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la FoxBoard et accessible par Wi-Fi depuis un terminal quelconque.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation du boîtier NXT'''&lt;br /&gt;
&lt;br /&gt;
Les fonctions de déplacement contenues dans le NXT s'articulent autour d'un algorithme simple. Ceci m'a permis d'utiliser le logiciel de programmation fourni avec le pack LEGO MindStorms, basé sur une programmation en LabView (langage de programmation graphique). Je peux d'ailleurs dire également que c'est un moyen de programmation qui est peu intuitif mais reste cependant efficace. D'autres solutions de programmation existent comme NXC qui est un langage basé sur le C et adapté pour fonctionner avec les boîtiers NXT.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego1.jpg|600px|thumb|right|Programme final v1]]&lt;br /&gt;
&lt;br /&gt;
Pour revenir à l'algorithme même, il se décompose comme suit :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Tant que vrai&lt;br /&gt;
      Recevoir message bluetooth&lt;br /&gt;
      Associer la valeur du message à une variable&lt;br /&gt;
      Si nouveau message&lt;br /&gt;
         Comparaison de la valeur du message&lt;br /&gt;
            0: Arrêt&lt;br /&gt;
            1: Avancer&lt;br /&gt;
            2: Reculer&lt;br /&gt;
            3: Tourner à gauche&lt;br /&gt;
            4: Tourner à droite&lt;br /&gt;
         Fin comparaison&lt;br /&gt;
      Fin si&lt;br /&gt;
      Envoi message de confirmation&lt;br /&gt;
   Fin tant que&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1593</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1593"/>
				<updated>2013-03-11T13:47:32Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons nous débrouiller pour y intégrer différentes fonctions.&lt;br /&gt;
&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le NXT), ainsi qu'une FoxBoard (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les modules nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. '''''Schéma et photos à ajouter'''''&lt;br /&gt;
&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le NXT dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le NXT reçoit par Bluetooth des messages envoyés par la FoxBoard. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la FoxBoard et accessible par Wi-Fi depuis un terminal quelconque.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation du boîtier NXT'''&lt;br /&gt;
&lt;br /&gt;
Les fonctions de déplacement contenues dans le NXT s'articulent autour d'un algorithme simple. Ceci m'a permis d'utiliser le logiciel de programmation fourni avec le pack LEGO MindStorms, basé sur une programmation en LabView (langage de programmation graphique). Je peux d'ailleurs dire également que c'est un moyen de programmation qui est peu intuitif mais reste cependant efficace. D'autres solutions de programmation existent comme NXC qui est un langage basé sur le C et adapté pour fonctionner avec les boîtiers NXT.&lt;br /&gt;
&lt;br /&gt;
Pour revenir à l'algorithme même, il se décompose comme suit :&lt;br /&gt;
   Tant que vrai&lt;br /&gt;
      Recevoir message bluetooth&lt;br /&gt;
      Associer la valeur du message à une variable&lt;br /&gt;
      Si nouveau message&lt;br /&gt;
         Comparaison de la valeur du message&lt;br /&gt;
            0: Arrêt&lt;br /&gt;
            1: Avancer&lt;br /&gt;
            2: Reculer&lt;br /&gt;
            3: Tourner à gauche&lt;br /&gt;
            4: Tourner à droite&lt;br /&gt;
         Fin comparaison&lt;br /&gt;
      Fin si&lt;br /&gt;
      Envoi message de confirmation&lt;br /&gt;
   Fin tant que&lt;br /&gt;
&lt;br /&gt;
Le programme final se résume ainsi :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:RL_progLego1.jpg|600px|thumb|center|Programme final v1]]&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:RL_progLego1.jpg&amp;diff=1592</id>
		<title>Fichier:RL progLego1.jpg</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Fichier:RL_progLego1.jpg&amp;diff=1592"/>
				<updated>2013-03-11T13:41:50Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : Permière version fonctionnelle du programme NXT&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Permière version fonctionnelle du programme NXT&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1572</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1572"/>
				<updated>2013-03-07T16:50:48Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons nous débrouiller pour y intégrer différentes fonctions.&lt;br /&gt;
&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le NXT), ainsi qu'une FoxBoard (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les modules nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. '''''Schéma et photos à ajouter'''''&lt;br /&gt;
&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le NXT dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le NXT reçoit par Bluetooth des messages envoyés par la FoxBoard. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la FoxBoard et accessible par Wi-Fi depuis un terminal quelconque.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Programmation du boîtier NXT'''&lt;br /&gt;
&lt;br /&gt;
Les fonctions de déplacement contenues dans le NXT s'articulent autour d'un algorithme simple. Ceci m'a permis d'utiliser le logiciel de programmation fourni avec le pack LEGO MindStorms, basé sur une programmation en LabView (langage de programmation graphique). Je peux d'ailleurs dire également que c'est un moyen de programmation qui est peu intuitif mais reste cependant efficace. D'autres solutions de programmation existent comme NXC qui est un langage basé sur le C et adapté pour fonctionner avec les boîtiers NXT.&lt;br /&gt;
&lt;br /&gt;
Pour revenir à l'algorithme même, il se décompose comme suit :&lt;br /&gt;
   Tant que vrai&lt;br /&gt;
      Recevoir message bluetooth&lt;br /&gt;
      Associer la valeur du message à une variable&lt;br /&gt;
      Si nouveau message&lt;br /&gt;
         Comparaison de la valeur du message&lt;br /&gt;
            0: Arrêt&lt;br /&gt;
            1: Avancer&lt;br /&gt;
            2: Reculer&lt;br /&gt;
            3: Tourner à gauche&lt;br /&gt;
            4: Tourner à droite&lt;br /&gt;
         Fin comparaison&lt;br /&gt;
      Fin si&lt;br /&gt;
   Fin tant que&lt;br /&gt;
&lt;br /&gt;
Le programme final se résume ainsi :[[Fichier:Exemple.jpg]]&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1552</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1552"/>
				<updated>2013-03-07T12:32:43Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : /* La construction du robot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons nous débrouiller pour y intégrer différentes fonctions.&lt;br /&gt;
&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le NXT), ainsi qu'une FoxBoard (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les modules nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. '''''Schéma et photos à ajouter'''''&lt;br /&gt;
&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le NXT dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le NXT reçoit par Bluetooth des messages envoyés par la FoxBoard. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la FoxBoard et accessible par Wi-Fi depuis un terminal quelconque.&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1551</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1551"/>
				<updated>2013-03-07T12:31:52Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : /* Objectifs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons nous débrouiller pour y intégrer différentes fonctions.&lt;br /&gt;
&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le NXT), ainsi qu'une FoxBoard (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les modules nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. '''Schéma et photos à ajouter'''&lt;br /&gt;
&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le NXT dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le NXT reçoit par Bluetooth des messages envoyés par la FoxBoard. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la FoxBoard et accessible par Wi-Fi depuis un terminal quelconque.&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1550</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1550"/>
				<updated>2013-03-07T12:31:25Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : /* La construction du robot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons nous débrouiller pour y intégrer différentes fonctions.&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. &lt;br /&gt;
&lt;br /&gt;
Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le NXT), ainsi qu'une FoxBoard (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les modules nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même très utile pour le pilotage. '''Schéma et photos à ajouter'''&lt;br /&gt;
&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le NXT dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le NXT reçoit par Bluetooth des messages envoyés par la FoxBoard. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la FoxBoard et accessible par Wi-Fi depuis un terminal quelconque.&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1549</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1549"/>
				<updated>2013-03-07T12:30:17Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : /* La programmation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons nous débrouiller pour y intégrer différentes fonctions.&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le NXT), ainsi qu'une FoxBoard (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les modules nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même bien utile pour le pilotage. '''Schéma et photos à ajouter'''&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le NXT dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le NXT reçoit par Bluetooth des messages envoyés par la FoxBoard. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la FoxBoard et accessible par Wi-Fi depuis un terminal quelconque.&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1548</id>
		<title>Teleguide2012-2</title>
		<link rel="alternate" type="text/html" href="https://peip-ima.plil.fr/mediawiki/index.php?title=Teleguide2012-2&amp;diff=1548"/>
				<updated>2013-03-07T12:29:15Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : Page créée avec « == Objectifs == Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité ... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs ==&lt;br /&gt;
Le but de ce Bureau d'études IMA est de nous faire découvrir une partie du programme, ainsi que la méthode de travail des étudiants de cette spécialité en nous plongeant directement dans la pratique.&lt;br /&gt;
Pour cela nous nous sommes attribués une série de mini-projets consistant à réaliser un robot totalement autonome. Tout nos robots sont basés sur une &amp;quot;voiture&amp;quot; à laquelle nous devons nous débrouiller pour y intégrer différentes fonctions.&lt;br /&gt;
La suite de cette page portera sur le robot téléguidé, qui repose sur une idée simple : commander un robot à moyenne distance à partir d'un appareil tel qu'un téléphone (à vrai dire la manipulation peut se faire depuis quelque appareil que ce soit dans la mesure où il est équipé d'un module Wi-Fi et d'un navigateur internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La construction du robot ==&lt;br /&gt;
Comme la majorité d'entre nous, j'ai d'abord commencé par suivre le manuel LEGO MindStorms pour créer une première base de mon robot, qui s'avère être une bonne initiative étant donné que cette base est particulièrement adapté à la fonction première des robots qui est de se déplacer de façon autonome. Par la suite il fut nécessaire d'adapter cette base en fonction du matériel nécessaire à utiliser et des fonctions secondaires à apporter. Pour ma part, le module de contrôle des moteurs (le NXT), ainsi qu'une FoxBoard (modèle G20), sont nécessaires à la réalisation du robot téléguidé. Bien sûr, il faut rajouter à cela les modules nécessaires à la communication entre les différents terminaux à savoir des dongles Bluetooth et Wi-Fi. Une Webcam est également embarquée, pas indispensable mais tout de même bien utile pour le pilotage. '''Schéma et photos à ajouter'''&lt;br /&gt;
Après avoir intégré sur le robot tout le matériel nécessaire, je me suis rendu compte à quel point l'ensemble était lourd et déséquilibré. De plus un 3ème moteur provenant du modèle de base de la documentation restait inutilisé. J'ai donc procédé à une révision du châssis pour aboutir à une version finale du robot (du moins au niveau matériel).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La programmation ==&lt;br /&gt;
'''Principe de fonctionnement'''&lt;br /&gt;
Comme nous l'avons vu précédemment, plusieurs éléments sont intégrés au robot. Le premier est le NXT dont le rôle est d'actionner les moteurs pour déplacer le robot. Pour cela le NXT reçoit par Bluetooth des messages envoyés par la FoxBoard. Ces messages sont envoyés grâce grâce à une page internet qui est stockée dans la mémoire de la FoxBoard et accessible par Wi-Fi depuis un terminal quelconque.&lt;/div&gt;</summary>
		<author><name>Rlibaert</name></author>	</entry>

	<entry>
		<id>https://peip-ima.plil.fr/mediawiki/index.php?title=BE_2012-2013&amp;diff=1226</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=1226"/>
				<updated>2013-01-24T16:07:39Z</updated>
		
		<summary type="html">&lt;p&gt;Rlibaert : /* Robot téléguidé avec système embarqué */&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; [[Synchronize2011-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;  {Vos prénoms et noms ici} &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, d'une part au bloc contrôleur du MindStorm et d'autre part aux panneaux solaires. Un régulateur entre les panneaux et la batterie peut être nécessaire. Réalisez aussi un dispositif électronique indépendant capable de coller le relai d'alimentation du MindStorm dès que la charge de la batterie est raisonnable. 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;
&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;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt; Déborah Saunders et Jean Wasilewski &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;
Le robot vient récupérer un objet avec 4 servo-moteurs&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>Rlibaert</name></author>	</entry>

	</feed>