SuiveurRFID2012-1 : Différence entre versions
(→Programmation du robot) |
|||
(19 révisions intermédiaires par 4 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
== Construction du robot == | == Construction du robot == | ||
− | [[Fichier:Robot_1.jpg| | + | <include nopre noesc src="/home/pedago/ppeip/include/video-RobotRFID-Final-2012-iframe.html" /> |
+ | <include nopre noesc src="/home/pedago/ppeip/include/video-RobotRFID-2012-iframe.html" /> | ||
+ | <br style="clear: both;"> | ||
+ | |||
+ | [[Fichier:Robot_1.jpg|200px|thumb|right|baseline|Le robot suiveur RFID construit (sans mât)]] | ||
Pour la construction de notre robot, nous avons suivi la notice pour avoir la base du robot, puis nous lui avons ajouté les différents capteurs dont nous avons besoin. | Pour la construction de notre robot, nous avons suivi la notice pour avoir la base du robot, puis nous lui avons ajouté les différents capteurs dont nous avons besoin. | ||
Ligne 7 : | Ligne 11 : | ||
*Le détecteur à Ultrason, qui permet au robot de détecter un obstacle. | *Le détecteur à Ultrason, qui permet au robot de détecter un obstacle. | ||
*Une boussole électronique permettant de suivre un cap. | *Une boussole électronique permettant de suivre un cap. | ||
+ | <br style="clear: both;"> | ||
== Programmation du robot == | == Programmation du robot == | ||
Ligne 12 : | Ligne 17 : | ||
=== La programmation === | === La programmation === | ||
− | La seconde étape nous amène à utiliser le logiciel de programmation | + | [[Fichier:Robot_2.jpg|200px|thumb|right|Ajout du mât pour la boussole]] |
+ | |||
+ | La seconde étape nous amène à utiliser le logiciel de programmation fourni, cependant il ne nous permet pas de programmer le robot exactement comme nous le voulons. La solution est d'utiliser un autre logiciel de programmation, Bricx Command Center, avec un langage proche du C. Il nous a permis de trouver plus facilement un algorithme et de le programmer plus facilement. | ||
Le fonctionnement du robot est le suivant : | Le fonctionnement du robot est le suivant : | ||
− | Au début du parcours, le robot s'oriente vers la première carte (les directions sont | + | Au début du parcours, le robot s'oriente grâce à la boussole vers la première carte (les directions sont connues à l'avance), il avance ensuite tout droit jusqu'à trouver un cercle de couleur. Il cherche la carte dans le cercle à vitesse réduite (la nécessité de baisser la vitesse vient du capteur RFID, à pleine vitesse le capteur ne lit pas les valeurs de la carte), si le capteur de couleur détecte un changement de couleur (c'est à dire quand le robot sort de la zone de couleur), le robot tourne pour se replacer dedans. Dès que la carte est trouvée, il se réoriente vers la prochaine carte (chaque carte à un identifiant et permet de trouver la direction à prendre), toujours avec la boussole. Le robot sort ensuite du cercle et avance pour suivre son parcours. |
+ | <br style="clear: both;"> | ||
+ | |||
+ | === Difficultés rencontrées === | ||
− | |||
Les différents problèmes rencontrés lors de la programmation sont: | Les différents problèmes rencontrés lors de la programmation sont: | ||
− | La précision de la boussole ne permet pas de tomber à coup sûr sur la puce RFID. Il faut donc l'entourer d'un cercle de couleur pour permettre de dévier de la trajectoire. | + | *La précision de la boussole ne permet pas de tomber à coup sûr sur la puce RFID. Il faut donc l'entourer d'un cercle de couleur pour permettre de dévier de la trajectoire. |
+ | |||
+ | *Le capteur de couleur et la boussole sont très sensibles. Le capteur de couleur, dans le mode de fonctionnement que l'on a choisi, ne permet de différencier que six couleurs (blanc, jaune, rouge, vert, bleu et noir). Après quelques test, la couleur verte donne de bons résultats, les autres renvoyait des couleurs erronées. L'autre mode de fonctionnement permet de connaitre les composantes RGB de la couleur, plus précis mais trop lourd à mettre en place. Enfin la boussole est trop sensible aux champs émis par les moteurs, nous l'avons donc fixé sur un mât pour l'isoler. | ||
+ | |||
+ | *Un problème de conversion renvoyait la valeur de la direction donné par la boussole en hexadécimal, alors que nous la comparions avec une valeur décimale. Le robot était alors bloqué. | ||
+ | |||
+ | === Améliorations ajoutées === | ||
+ | |||
+ | *Une fois le robot fonctionnel, nous avons procédé à quelques améliorations de l'algorithme. Dans un premier temps le robot, une fois la carte RFID trouvée, tournait dans le sens des aiguilles d'une montre pour trouver la bonne direction, quel quelle soit. Pour optimiser ce passage, le robot procède à plusieurs test et opérations mathématiques. La boussole renvoie la différence entre l'orientation du robot et le nord (0 à 360°). En définissant la première moitié de ce cercle, on sait si le nouveau cap se trouve à droite ou à gauche du robot. Il tourne alors dans le sens adéquat. | ||
− | + | == Intégration des fonctionnalités == |
Version actuelle datée du 27 mai 2013 à 11:44
Sommaire
Construction du robot
Pour la construction de notre robot, nous avons suivi la notice pour avoir la base du robot, puis nous lui avons ajouté les différents capteurs dont nous avons besoin.
- Le capteur de couleur pour détecter la feuille de couleur.
- Le capteur RFID, pour lire les identifiants de chaque carte.
- Le détecteur à Ultrason, qui permet au robot de détecter un obstacle.
- Une boussole électronique permettant de suivre un cap.
Programmation du robot
La programmation
La seconde étape nous amène à utiliser le logiciel de programmation fourni, cependant il ne nous permet pas de programmer le robot exactement comme nous le voulons. La solution est d'utiliser un autre logiciel de programmation, Bricx Command Center, avec un langage proche du C. Il nous a permis de trouver plus facilement un algorithme et de le programmer plus facilement.
Le fonctionnement du robot est le suivant :
Au début du parcours, le robot s'oriente grâce à la boussole vers la première carte (les directions sont connues à l'avance), il avance ensuite tout droit jusqu'à trouver un cercle de couleur. Il cherche la carte dans le cercle à vitesse réduite (la nécessité de baisser la vitesse vient du capteur RFID, à pleine vitesse le capteur ne lit pas les valeurs de la carte), si le capteur de couleur détecte un changement de couleur (c'est à dire quand le robot sort de la zone de couleur), le robot tourne pour se replacer dedans. Dès que la carte est trouvée, il se réoriente vers la prochaine carte (chaque carte à un identifiant et permet de trouver la direction à prendre), toujours avec la boussole. Le robot sort ensuite du cercle et avance pour suivre son parcours.
Difficultés rencontrées
Les différents problèmes rencontrés lors de la programmation sont:
- La précision de la boussole ne permet pas de tomber à coup sûr sur la puce RFID. Il faut donc l'entourer d'un cercle de couleur pour permettre de dévier de la trajectoire.
- Le capteur de couleur et la boussole sont très sensibles. Le capteur de couleur, dans le mode de fonctionnement que l'on a choisi, ne permet de différencier que six couleurs (blanc, jaune, rouge, vert, bleu et noir). Après quelques test, la couleur verte donne de bons résultats, les autres renvoyait des couleurs erronées. L'autre mode de fonctionnement permet de connaitre les composantes RGB de la couleur, plus précis mais trop lourd à mettre en place. Enfin la boussole est trop sensible aux champs émis par les moteurs, nous l'avons donc fixé sur un mât pour l'isoler.
- Un problème de conversion renvoyait la valeur de la direction donné par la boussole en hexadécimal, alors que nous la comparions avec une valeur décimale. Le robot était alors bloqué.
Améliorations ajoutées
- Une fois le robot fonctionnel, nous avons procédé à quelques améliorations de l'algorithme. Dans un premier temps le robot, une fois la carte RFID trouvée, tournait dans le sens des aiguilles d'une montre pour trouver la bonne direction, quel quelle soit. Pour optimiser ce passage, le robot procède à plusieurs test et opérations mathématiques. La boussole renvoie la différence entre l'orientation du robot et le nord (0 à 360°). En définissant la première moitié de ce cercle, on sait si le nouveau cap se trouve à droite ou à gauche du robot. Il tourne alors dans le sens adéquat.