Robots mobiles
Présentation
Le but est de concevoir un robot capable de se déplacer dans un environnement hostile (avec des obstacles). Le robot doit pouvoir être contrôlé à distance par une interface web, l'utilisateur pouvant visualiser l'environnement grâce à une webcam. L'utilisateur ne pouvant pas toujours voir les obstacles à temps ou hors champ de la caméra, c'est au robot de refuser les ordres le faisant entrer en collision avec un obstacle.
Préparation du projet
Matériel requis
- un premier châssis motorisé (disponible en E304 actuellement puis en E306 à terme) :
- moteurs contrôlés par un micro-contrôleur de type Arduino ;
- sonar et capteur de couleur géré par le micro-contrôleur ;
- un second châssis motorisé (disponible en salle après l'interruption pédagogique):
- moteurs contrôlés par Phidgets USB ;
- capteurs contrôlés par une carte Altium ;
- capteurs pour le premier châssis; détecteur de couleurs (à votre charge, commandé) ;
- capteurs pour le second châssis; détecteur d'obstacle, détecteur de couleurs (à votre charge) ;
- carte FoxBoard pour implanter l'algorithme du robot (disponible);
- petit matériel divers :
- connecteur pour le sonar (disponible);
- vis (précisez);
- plateforme Altium.
Commentaires des encadrants sur le matériel
Vous devez vous même donner les références des capteurs à installer sur les châssis. Pour le premier châssis, il est clair que vous devez trouver un capteur de couleurs prévu pour Arduino. Pour le second châssis, il faut trouver des capteurs adaptés à la plateforme Altium. Dans les deux cas le coût doit être ajusté. Le capteur de couleur pour le premier chassis a été commandé. Pour la fixation des détecteur la bande adhésive ne peut être qu'une solution à court terme. Donnez les caractéristiques des pièces nécessaires pour une fixation propre.
Commentaires des élèves sur le matériel
Pour le premier chassis nous avons trouvé le capteur DFRobot Grayscale Sensor ( pour plus d'informations [1] ). Ce dernier est compatible avec l'Arduino. Recherche d'un fournisseur français pour le capteur indiqué précédemment : [2]
Avancement du projet
Objectifs suggérés par les encadrants
- Le premier châssis comporte des LEDs bleues pour des raisons esthétiques, une des ces LEDs est défaillante, résoudre le problème avec le liquide conducteur (attention toute manipulation approximative peut détruire l'électronique du châssis). FAIT
- Installer et gérer le sonar sur le premier châssis, le montage du sonar sur un servo peut être un plus. FAIT
- Sélectionner, acheter, installer et gérer le capteur de couleurs du premier châssis.
Realisations concrètes
- Châssis 1 (arduino)
- Réparation de la LED
- Montage définitif du sonar sur un servomoteur fixé à l'avant du châssis
- Implantation du code final pour la détection d'obstacles et correction de trajectoires
- Fixation de la foxboard à l'arrière du châssis
- Châssis 2 (Phidgets)
- a venir
1e séance
- Prise en main du premier chassis (Arduino) et réparation
- La LED(8) a été réparée avec succès, à l'aide du liquide conducteur
- Capteur Ultrason
- Methode de cablage sur l'arduino: http://www.robot-electronics.co.uk/htm/arduino_examples.htm#SRF05%20Ultrasonic%20Ranger
- Fixation sur le chassis + cablage à l'arduino(solution provisoire)
Insérez le schéma du cablage ! Je vous le rend connecté comme sur [3]
2e séance : 28/02/11
- Objectif
- Prise en main du premier châssis et réalisation d'un programme test pour la commande des moteurs
- Travail réalisé
- Implantation du programme pour les moteurs
- Correction d'une défaillance observée par rapport aux chenilles (ne tourne pas à la même vitesse)
3e séance : 04/03/11
- Objectif
- Prise en main du second châssis
- Prise en main du protocole de communication zigBee
- Commande du servomoteur par la carte Arduino sur le premier châssis
- Détection d'obstacles et déviation
- Travail réalisé
- Premier chassis
- Commande du servomoteur
- Détection d'obstacles par le châssis
- Premier chassis
- Second chassis
- Prise en main du second chassis à l'aide d'exemples recuperés sur le site phidgets.com [4]
- Test du chassis avec une fonction moteur-simple.c qui permet de gérer la vitesse du chassis.
- Test du capteur de distance avec la fonction InterfaceKit-simple.c qui permet de gérer la distance à laquelle se trouve un objet. Ce capteur sera utile pour éviter les obstacles.
- Capteur de couleur pour le second chassis [5]
- Second chassis
4e séance : 07/03/11
- Objectif :
- Commander le robot en mettant en place un programme pour gerer le capteur de distance et la motricité du deuxième chassis.
- Finaliser le programme de gestion du premier chassis.
- Travail réalisé
- Premier châssis
- Finalisation du code pour la détection d'obstables
- Premier châssis
- Second châssis
- Création d 'un programme permettant d’arrêter le robot si le capteur un obstacle a moins de 100 cm du capteur.
- Création d'un répertoire test avec les fonction interface-kit.c Moteur-simple.c de phidget.com et une fonction test.c
- Fichier test.h et Makefile pour la compilation.
- Fonction test.c contient de thread permettant de gérer le capteur de distance et la motricité des roues.
- Test de la fonction test.c : compilation correcte mais résultat décevant en fin de séance!
- Second châssis
5e seance : 10/03/11
- Objectif
- Amelioration du programme pour la detection obstacle sur le chassis 1
- Montage d'un plexiglas sur le châssis 1 pour accueillir la foxboard
- Travail réalisé
- Premier châssis
- Correction du bug sur le contournement d'obstacles
- Perçage et fixation du plexiglas sur le châssis (par l'aide de l'enseignant)
- Montage de la foxboard sur le plexiglas à l'aide de lego et de la colle
- Ordre sur les câbles de connexion grâce à des colliers
- Premier châssis
- Deuxième chassis
- Gestion de l'avancée du robot et du capteur de distance reussie .
- Programmes test.c, interfaceKit-simple.c et MotorControl-simple.c ( programmation bi-threadée : thread moteur et thread capteur).
- Elaboration de l'achitecture technique du robot.
- Emplacement du servo-moteur qui gère la rotation du capteur de distance.
- Emplacement du contrôleur du servo-moteur.
- Gestion de l'avancée du robot et du capteur de distance reussie .
- Deuxième chassis
Difficultés rencontrées
- Deuxième chassis : le programme IR-simple.c qui gere les capteurs infrarouge a un probleme ( Solution en cours !)