Teleguide2011-2
Sommaire
Introduction à la partie contrôle à distance
La partie du contrôle à distance a pour but de contrôler un robot Mindstorm à l'aide d'un navigateur internet (machine de type pc ou smartphone). 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 :
- Machine comprenant un navigateur web
- Foxboard avec interface Wifi et Bluetooth
- Brique NXT du robot Mindstorm.
Le contrôle en lui même s'effectue en plusieurs étapes:
- Le navigateur se connecte à la Foxboard via Wifi et arrive sur les pages web.
- Suivant les actions de l'utilisateurs sur cespages web, des Javascripts s'executent et envoient des ordres bluetooth à la brique NXT du robot.
- Le programme implanté des la brique reçoit les ordres (sous forme de chiffre) et executent les actions correspondantes au chiffre reçu.
Image représentant plan de contrôle
Avancée du projet
Etape 1 : Construction du robot
Nous avons d'abord commencé par construire en essayant de suivre un maximum le manuel fourni par Lego. Cependant, le problème du manque d'espace est très vite apparu. Deuxième soucis, un moteur placé à l'avant ne servait à rien. Enfin, si nous voulions suivre le manuel, c'était pour être sur d'avoir un robot solide qui tienne face au poids conséquent des différents composants externes à installer. Nous avons alors décidé de reprendre les fondamentaux du robot typique, mais d'en élargir énormément l'intérieur afin de pouvoir mettre la Foxcom et le mini-PC tranquillement. On a donc obtenu un robot assez large mais compact comportant tous les objets dont nous allions avoir besoin par la suite.
Etape 2 : Familiarisation avec le logiciel Labview (logiciel Mindstorm)
Nous avons commencé par la programmation graphique du logiciel pour comprendre l'utilisation des moteurs et du sensor. Très vite, nous avons été confrontés à des problèmes de communication bluetooth entre la foxboard qui nous a poussé vers la programmation avec le langage NXC (Not Exactly C) qui nécessite un apprentissage de ce langage et des fonctions permettant de diriger chaque composant du robot. Ce langage a plusieurs avantages, il nous a permis de régler chaque mesures plus aisément et précisément(vitesse des moteurs, temps, fréquences de sons, distance, etc) et de ne pas se perdre dans les blocks quand le programme s'épaissit.
Etape 3 : Programmation du code
L'algorithme (simpliste) du programme est le suivant :
Tant que (true)
Reception du message bluetooth
Si il y a un obstacle à moins de 15 cm Alors faire marche arrière jusque 20 cm Fin si
Si (l'instruction est conforme à celle attendu et si elle est différente de la précédente) switch (instruction) cas 0 : On arrête les moteurs cas 1 : On actionne les moteurs pour faire marche arrière cas 2 : On actionne les moteurs pour aller tout droit cas 3 : On actionne les moteurs pour aller à gauche cas 4 : On actionne les moteurs pour aller à droite cas 5 : On actionne les moteurs suivant la direction et la puissance donné par le navigateur de la Foxboard (guidage amélioré) Fin switch Fin si
Fin tant que