BUMBLEBEE : Différence entre versions
(→Contrôle à Distance) |
(→Contrôle à Distance) |
||
Ligne 123 : | Ligne 123 : | ||
* si le message reçu est 0, les moteurs s'arrêtent | * si le message reçu est 0, les moteurs s'arrêtent | ||
− | + | * si le message reçu est 1, le robot avance | |
− | + | * si le message reçu est 2, le robot recule | |
− | + | * si le message reçu est 3, le robot tourne à gauche | |
− | + | * et enfin si le message reçu est 4, le robot tourne à droite. | |
{| | {| | ||
|[[Fichier:SiteFOX.jpg|thumb|alt=SiteFOX|SiteFOX]] | |[[Fichier:SiteFOX.jpg|thumb|alt=SiteFOX|SiteFOX]] |
Version du 15 avril 2011 à 09:03
Rapport robot
Sommaire
Présentation du BE (avec les différentes parties)
Le Bureau d’Etude « Coopération entre Robots Mobiles » (IMA) consiste à terme à faire évoluer différents robots ensembles dans un environnement non défini à l’avance. C'est-à-dire : Que les robots communiquent par Bluetooth Qu’ils soient capables de suivre une ligne Capables d’éviter des obstacles Qu’ils soient contrôlables à distance (wifi) Et pour certains groupes, les robots auront des capacités qui leur sont propres, comme un gyroscope et un accéléromètre, un capteur RFID. Pour cela la première étape fut de construire, par binôme, un robot (Lego Mindstorm). Les différentes équipes on fait preuve d’une grande créativité, puisque aucun des robots ne se ressemblent. Puis est venu le moment de programmer. Le travail a été réparti de la façon suivante (par groupe) :
Suivre une ligne Communication entre robot Navigant aux instruments (gyroscope + accéléromètre) Capteur RFID (nous) Robot contrôlé à distance, via le wifi
Our Robot ---> BUMBLEBEE
The Best One
Présentation de notre partie Suiveur RFID
Notre mission était de faire un programme, pour exploiter le capteur RFID (permet d’identifier de manière certaine des transpondeurs RFID (une antenne avec une puce contenant un identifiant unique, parfois reprogrammable)). Donc notre programme consiste en : la recherche d’un transpondeur RFID (en avançant d’une longueur L, en reculant de L, puis léger pivot sur la droite, et ainsi de suite), une fois localisé notre robot se met à la recherche d’une second transpondeur, et ainsi de suite. Avec l’interface de Lego Mindstorm, donne programme ressemble à :
.
Description de l’algorithme RFID
Schema condensé :
Schéma détaillé :
Il se compose en deux parties qui se déroulent simultanément, mais toutes les deux régies par une même variable avec pour valeur préalable « fausse ».
La première (partie haute sur la photo) consiste à ne rien faire s’il ne lit pas le transpondeur, et ceci dans une boucle l’infini. S’il lit le transpondeur, tous les moteurs se stoppent et la variable se réécrit en tant que vrai, et sortie de la boucle.
La deuxième partie régie l’évolution du robot au sol. Si la variable est en valeur « fausse », le robot avance pendant 3 secondes, si la variable est toujours fausse le robot recule pendant 3 secondes, et si la variable est fausse il pivote légèrement sur la droite. Et ceci tant que la variable n’a pas été lue, via la première partie.
Mais tout ceci n’est que pour un transpondeur précis, donc il faut le reproduire autant de fois qu’il y a de transpondeur, en changeant le numéro d’identification dans le programme.
Suiveur Ligne
Un capteur de lumière est aussi intégré à Bumblebee ! Mais ce n'est pas nous qui avons développé cette capacité, le groupe du robot 3PJ (Pierre-Jean et Simon) ! Cette récupération de programme n'a pas été gratuite, nous lui avons donné en échange le programme permettant le contrôle à distance !!
Comme on peut le voir sur la photo, notre capteur de lumière est excentré ! Ce qui apporte une touche d'originalité puisqu'on est les seul à l'avoir excentré !
Sonar
Bumblebee intègre un sonar qui lui permet, lorsqu'il détecte un obstacle à moins de 20cm, de stopper tous les moteurs ainsi que de reculer d'une quinzaine de centimètres pour éviter toute collision.
Cette application a été intégré dans le programme final, via un simple "if".
.
ADM
Bumblebee est également d'une Arme de Destruction Massive (ADM) !
Qui n'est autre qu'un lanceur de billes dernière génération super puissant !
Ce qui lui permet de détruire par utilité (traverser un mur) ou par plaisir ...
.
Contrôle à Distance
Le mode télécommande a demandé plus de travail et des échanges avec les autres groupes (un grand merci à Louis et Antoine pour ce travail magnifique) pour parvenir à un résultat satisfaisant. Tout d'abord, il a fallu installer le système d'exploitation de la Foxboard, y enregistrer l'adresse MAC de la brique NXT afin de faire fonctionner le Bluetooth et y placer les pages Web qui servent d'interface afin de piloter le robot. Ensuite il a fallu créer le programme permettant au robot de savoir ce qu'il devait faire en recevant les différents messages. Le programme est tout d'abord composé d'un bloc "réception de message Bluetooth", puis le message reçu, qui contient une valeur numérique, est transformé en variable. Ensuite un bloc "switch" permet d'associer le message reçu avec une action :
- si le message reçu est 0, les moteurs s'arrêtent
- si le message reçu est 1, le robot avance
- si le message reçu est 2, le robot recule
- si le message reçu est 3, le robot tourne à gauche
- et enfin si le message reçu est 4, le robot tourne à droite.
Les difficultés rencontrées et leur résolution
La première difficulté a été de comprendre le fonctionnement de l’interface de programmation LEGOMINDSTORM qui semble au premier regard assez simple d’utilisation mais qui se révèle difficile à l’application. En effet il faut réussir à combiner certaines commandes entre elles pour que le robot interagisse correctement. Cela s’est également révélé lors des essais pour comprendre le fonctionnement du capteur RFID : il faut enregistrer les transpondeurs dans le programme pour que le robot exécute une action lorsque le capteur arrive au dessus. Une fois ces problèmes réglés grâce aux explications de nos enseignants, on a pu commencer à créer le programme complet. C’est ici que s’est présentée la plus grande difficulté : on ne réussissait pas à faire lire le capteur RFID en continu. La lecture s’exécutait soit à la fin d’une boucle, soit entre chaque commande mais pas en cours d’exécution. Nos professeurs nous ont alors suggéré (et aidé !!) d’introduire des variables dans le programme ce qui a permis de faire une exécution en parallèle et donc de lire en continu.