Teleguide2012-1 : Différence entre versions

De Wiki de bureau d'études PeiP
(Amélioration)
(La construction du robot)
Ligne 62 : Ligne 62 :
 
   fin tant que
 
   fin tant que
 
   fin
 
   fin
 +
  //L’algorithme consiste donc à recevoir un message Bluetooth, si le message est bien reçu, on regarde le message et on effectue
 +
  une action en fonction de ce message. Ainsi par exemple si l'on reçoit "1", on ordonnera aux moteurs de tourner pour avancer. Si
 +
  l'on reçoit "0", on ordonnera aux moteurs de s’arrêter.
 
[[Fichier:prog1_capture.png]]
 
[[Fichier:prog1_capture.png]]
  

Version du 6 mai 2013 à 06:31

Objectif du robot


Vidéo HD


La but de cette partie est de contrôler un robot Mindstorms à l'aide d'un navigateur internet . Pour cela, on se connecte via WiFi à un micro-ordinateur (Foxboard) comprenant des pages web permettant le contrôle du robot.

Le matériel principal utilisé est :

  • Navigateur Web
  • Foxboard avec interface WiFi et Bluetooth
  • Brique NXT du robot Mindstorm.

Pour transmettre des ordres au robot le navigateur se connecte à la Foxboard en WiFi et accède aux pages Web, selon les actions effectuées sur ces pages Web, la Foxboard envoie les ordres à la brique NXT sous forme de chiffres (1 pour avancer par exemple) qui effectue les actions en fonction du chiffre reçu.

La construction du robot

1/Principe du fonctionnement

Le but étant de pouvoir contrôler le robot via un téléphone, il faut que le robot communique avec l'utlisateur, pour cela il y a plusieurs types de communications qui s'effectuent entre les différents composants du robot.

Dans un premier temps , la connexion entre le robot et le téléphone s'effectue via WiFi implanté sur la FoxBoard, en effet la FoxBoard dispose de plusieurs ports USB où une clé WiFi est insérée. Une fois le téléphone connecté en WiFi avec la FoxBoard, il suffit de se connecter à l'interface de la FoxBoard via l'URL : http://192.168.1.1

Dans un second temps, la FoxBoard doit communiquer avec le boitier NXT Mindstorm afin de transmettre les ordres donnés par l'utilisateur, la connexion FoxBoard vers boitier NXT s'effectue en Bluetooth, la FoxBoard ne disposant pas de système Bluetooth de base, une clé Bluetooth relié par USB est nécessaire. Les ordres sont transmis via un système de boîte aux lettres : il suffit de lui envoyer un octet dans la boite aux lettres n°3 dont les 4 bits de poids forts sont à zéro.

Une fois que le boitier Mindstorm a reçu les ordres, il n'a plus qu'a les transmettre aux servomoteurs.

Voici un schéma récapitulatif.

Schéma explicatif

2/Le châssis

Nous avons commencé par monter le châssis proposé dans la notice, avec trois moteurs , celui-ci ne nous convenait pas pour emporter le matériel nécessaire au fonctionnement de notre robot nous avons alors fabriqué notre propre châssis qui permet de transporter tout le matériel sans problème. Dans un premier temps nous avons utilisé des roues, mais après quelques tests peu concluants, nous avons décidé d'utiliser les chenilles :

Voici une vidéo réalisée après 5 semaines de travail , tout se fait à distance via ordinateur : Fichier:Videorobot.mp4

3/La programmation

/* à détailler, notamment pour indiquer ce que vous voulez faire */

Pour la brique NXT nous avons utilisé la programmation graphique. Pour cela nous avons suivi cet algorithme simple :

  Tant que VRAI
    Réception du signal en Bluetooth et stockage dans la variable texte1
    Si signal reçu alors
       comparaison de texte1 :
            0 : S'arrêter
            1 : Avancer
            2 : Reculer
            3 : Tourner à droite
            4 : Tourner à gauche
            5 : Stockage des valeurs dans deux variables et envoi dans les moteurs
    fin si
  fin tant que
  fin
  //L’algorithme consiste donc à recevoir un message Bluetooth, si le message est bien reçu, on regarde le message et on effectue
  une action en fonction de ce message. Ainsi par exemple si l'on reçoit "1", on ordonnera aux moteurs de tourner pour avancer. Si
  l'on reçoit "0", on ordonnera aux moteurs de s’arrêter. 

Prog1 capture.png

Amélioration

Lors de nos premiers essais de pilotage nous avons trouvé difficile le repérerage via la caméra, en effet la caméra étant fixe certains obstacles ne sont pas visibles. Nous avons donc décidé d'ajouter une fonction au robot : une caméra mobile. Pour cela nous avons dû créer deux images à insérer dans la page web de la Foxboard via le fichier html : nous avons récupérer le fichier HTML de la Foxboard, après avoir fait les modifications nous avons transférer le nouveau fichier ainsi que les images dans la Foxboard grâce à la commande suivante :

     scp conduire.html 192.168.100.1:/var/www/

Voici un aperçu de l'interface de pilotage après la modification :

Modif.png

Par conséquence nous avons du modifier l'algorithme comme suit :

  Tant que VRAI
    Réception du signal en Bluetooth et stockage dans la variable texte1
    Si signal reçu alors
       comparaison de texte1 :
            0 : S'arrêter
            1 : Avancer
            2 : Reculer
            3 : Tourner à droite
            4 : Tourner à gauche
            5 : Stockage des valeurs dans deux variables et envoi dans les moteurs
            6 : Monter la caméra
            7 : Descendre la caméra
    fin si
  fin tant que
  fin

Problèmes rencontrés

1/Trouver un châssis adapté


2/Configuration de la Foxboard


3/Problème mécanique