Robots mobiles : Différence entre versions
(→14e séance) |
(→Realisations concrètes) |
||
Ligne 45 : | Ligne 45 : | ||
** Implantation du code final pour la détection d'obstacles et correction de trajectoires | ** Implantation du code final pour la détection d'obstacles et correction de trajectoires | ||
** Fixation de la foxboard à l'arrière du châssis | ** Fixation de la foxboard à l'arrière du châssis | ||
− | ** | + | ** Système Débian installé sur la fox |
+ | ** Alimentation de la fox par des batteries | ||
+ | ** Configuration de l'accès au réseau par wifi (Dongle Wifi) | ||
+ | ** Gestion du robot par liaison série à l'aide de la fox | ||
+ | ** interface web pour la gestion du robot (Marche/arrêt, commande ...) | ||
+ | ** Commande du robot via l'interface web | ||
+ | |||
* Châssis 2 (Phidgets) | * Châssis 2 (Phidgets) |
Version du 5 avril 2011 à 13:39
Sommaire
- 1 Présentation
- 2 Préparation du projet
- 3 Avancement du projet
- 3.1 Objectifs suggérés par les encadrants
- 3.2 Realisations concrètes
- 3.3 1e séance
- 3.4 2e séance : 28/02/11
- 3.5 3e séance : 04/03/11
- 3.6 4e séance : 07/03/11
- 3.7 5e séance : 10/03/11
- 3.8 6e séance : 14/03/11
- 3.9 7e séance : 17/03/11
- 3.10 8e séance : 21/03/11
- 3.11 9e séance : 24/03/11
- 3.12 10e séance
- 3.13 11e séance
- 3.14 12e séance
- 3.15 13e séance
- 3.16 14e séance
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
- Système Débian installé sur la fox
- Alimentation de la fox par des batteries
- Configuration de l'accès au réseau par wifi (Dongle Wifi)
- Gestion du robot par liaison série à l'aide de la fox
- interface web pour la gestion du robot (Marche/arrêt, commande ...)
- Commande du robot via l'interface web
- 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
- 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]
- Premier 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
- 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!
- Premier châssis
5e séance : 10/03/11
- Objectifs
- Amélioration du programme pour la détection obstacle sur le châssis 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
- Deuxième châssis
- Gestion de l'avancée du robot et du capteur de distance réussie .
- Programmes test.c, interfaceKit-simple.c et MotorControl-simple.c ( programmation bi-threads : thread moteur et thread capteur).
- Élaboration de l’architecture technique du robot.
- Emplacement du servomoteur qui gère la rotation du capteur de distance.
- Emplacement du contrôleur du servomoteur.
- Premier châssis
Difficultés rencontrées
- Deuxième châssis : le programme IR-simple.c qui gere les capteurs infrarouge a un problème ( Solution en cours !)
6e séance : 14/03/11
- Objectifs
- Démarrer la foxboard avec le système Debian
- Travail réalisé
- Premier châssis
- Téléchargement du système 'lego' sur la foxboard
- Initialisation de la liaison série pour la communication avec arduino
- Recherche d'un emplacement sous le châssis pour installer le capteur de couleur
- Second châssis
- Installation du servo moteur et controlleur de servo.
- Test de la fonction Servo-simple.c
- Implatation d'un thread pour gérer le capteur.
- Programmation des méthodes: rotation droite, rotation gauche, avancer et recul.
- Premier châssis
Difficultés rencontrées
- Deuxième châssis : le servomoteur ne tourne pas ( Solution en cours !).
7e séance : 17/03/11
- Objectifs
- Installer le capteur de couleur sur le châssis 1
- Écrire un programme pour tester le capteur de couleur
- Correction du programme de gestion de la liaison série sur la foxboard
- Travail effectué
- Premier châssis
- Test de la liaison série: le robot ne reçoit pas correctement les ordres (bug à corriger dans le programme)
- Le capteur de couleur ne différencie pas correctement les niveaux de gris: l'ampoule peut être défectueuse
- Deuxième châssis
- Test du programme: le robot évite les obstacles devant lui et continue sa trajectoire.
- Mise en ordre des différentes fonctions de gestion du robot dans un fichier test.c
- Test le long d 'un parcours du robot.
- Premier châssis
8e séance : 21/03/11
- Objectifs
A venir
9e séance : 24/03/11
- Objectifs
- Installer le capteur de couleur sur le châssis 2 : lego
- Écrire un programme pour tester le capteur de couleur
- Écrire le foxboard pour la gestion de la liaison série
- Travail réalisé
- Premier châssis
- Utilisation de l'adaptateur pour se connecter en wifi
- Paramétrage du site web pour la commande du robot
- Second châssis
- A venir
- Premier châssis
10e séance
11e séance
12e séance
- Objectifs
- Test supplémentaire sur le capteur de couleur (châssis 1)
- Mise en place des fonctions nécessaires pour la communication par le site web (châssis 1)
- Travail réalisé
- Premier châssis
- Le capteur de couleur ne fonctionne pas en cas de faible éclairement (à changer)
- Ajout des différentes fonctions nécessaires à la commande du robot par le web
- Second châssis
- A venir
- Premier châssis
13e séance
- Objectifs
- Développement de l'interface de commande par le site web (châssis 1)
- Test d'envoi de commande par l'interface web (châssis 1)
- Travail réalisé
- Premier châssis
- Développement des fonctions associées à la liaison série
- Le robot est maintenant commandé par l'interface web
- Second châssis
- A venir
- Premier châssis
14e séance
- Objectifs
- Conception de l'algorithme pour le suivi de trajectoire (châssis 1)
- Réalisation d'un test sur le grand circuit (châssis 1)
- Travail réalisé
- Châssis 1
- Démarrage et arrêt du robot par l'interface web (fichier configure.php et conduire.php)
- Châssis 2
- Châssis 1