Teleguide2012-2

De Wiki de bureau d'études PeiP

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é en nous plongeant directement dans la pratique.

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 "voiture" à laquelle nous devons nous débrouiller pour y intégrer différentes fonctions.

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).


La construction du robot

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 très utile pour le pilotage. Schéma et photos à ajouter

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).


La programmation

Principe de fonctionnement

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.


Programmation du boîtier NXT

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.

Pour revenir à l'algorithme même, il se décompose comme suit :

  Tant que vrai
     Recevoir message bluetooth
     Associer la valeur du message à une variable
     Si nouveau message
        Comparaison de la valeur du message
           0: Arrêt
           1: Avancer
           2: Reculer
           3: Tourner à gauche
           4: Tourner à droite
        Fin comparaison
     Fin si
     Envoi message de confirmation
  Fin tant que

Le programme final se résume ainsi :

Programme final v1