Robots mobiles

De Wiki de Projets IMA
Révision datée du 31 mars 2011 à 06:53 par Ynguieye (discussion | contributions) (12e 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
    • Mise en route de la foxboard avec le système 'lego'
  • Châssis 2 (Phidgets)
    • a venir

1e séance

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]

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!

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.

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.

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.

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


10e séance

11e séance

12e séance

  • Objectifs
    • Test supplémentaire sur le capteur de couleur du premier châssis
    • Mise en place des fonctions nécessaires pour la communication par le site web ( premier châssis)
  • Travail réalisé
    • Premier châssis
    • Second châssis