Robot mobile 2013

De Wiki d'activités IMA


Préparation du projet

Présentation

1. Le but est de concevoir un robot capable de se déplacer dans un environnement ayant des obstacles. Contrôlé par utilisateur 2. Le robot doit pouvoir être contrôlé à distance par une interface page web, surlaquelle l'environnement est visualisé grâce à une webcam.

Déplacement automatique

Le robot doit éviter des obstacles grâce à un capteur d'obstacle, il peut aussi bouger suivant une ligne grâce à son capteur de couleur.

Préparation du projet

Matériel requis Un premier châssis motorisé: Moteurs contrôlés par la carte Arduino ; Capteur d'obstacle (sonar) et capteur de couleur; Un webcam Foxboard Batterie de 5 V Un second châssis motorisé: Moteurs contrôlés par Phidgets ; Capteurs contrôlés par une carte Altium ; Un webcam Foxboard Batterie de 5 V


Tâches du projet à réaliser

  • Châssis 1
    • La vérification du montage et de la structure du châssis. Le premier châssis comporte des LEDs bleues pour des raisons esthétiques. Sonar est sur un servomoteur fixé à l'avant du châssis
    • Installer et gérer le capteur de couleurs du premier châssis.
    • Fixation de la foxboard à l'arrière du châssis
    • Système Débian installé sur la foxboard
    • Alimentation de la foxboard par des batteries
    • Configuration de l'accès au réseau par wifi
    • Gestion du robot par liaison série à l'aide de la foxboard
    • Interface web pour la gestion du robot (configuration, contrôle...)
    • Commande du robot via l'interface web
  • Châssis 2 (Phidgets)
    • La vérification du montage du capteur Ultrason , du servoMoteur et du servoControleur sur le robot et de la structure du châssis.
    • Test des fonctions exemples récupérées sur Phidgets
    • Développement du programme de gestion du robot
    • Montage de la foxboard sur le robot
    • Installation de la bibliothèque des phidgets
    • Copie des fonctions de gestion du robot sur la foxboard
    • Développement du programme de commande du robot par une page web
    • Commande web
    • Test du capteur de couleur Avago avec l'Arduino
    • Développement du programme de lecture des données du capteur de couleur par l'arduino et envoi par liaison série à la foxboard
    • Développement du programme de suivi de ligne du robot
    • Configuration de l'accès au réseau par wifi

Test de la webcam sur la foxboard

1-2e séance

3-4e séance

  • Objectif
    • Réparation du montage
    • Programme de test pour Arduino
  • Travail réalisé
    • Implantation du programme pour les moteurs
    • Modifier la connexion pour animer la lumière pour la capteur de couleur

5-7e séance

  • Objectif
    • Tester le sonar pour Arduino
    • Configuration de réseau pour la foxboard
  • Travail réalisé
    • Configuration de Minicom pour la foxboard sous SU
    • Test le fonctionnement du capteur d'obstacle
    • Avancement et arrêt grâce au capteur d'obstacle
  • Problèmes
    • Mauvaise configuration sur la foxboard, la carte interne cassée
    • Gestion des valeurs du capteur pour le déplacement du châssis


8-9e séance

  • Objectif
    • Prise en main du second châssis
    • Prise en main du protocole de communication
    • Commande du servomoteur par la carte Arduino par la détection d'obstacles sur le premier châssis
  • Travail réalisé

-Premier chassis

    • Commande du servomoteur
    • Détection d'obstacles par le châssis
    • Commencement du programme la commande de la communication entre l'interface pages web et le châssis en mode serveur et mode client

-Second chassis

    • Prise en main du second chassis à l'aide d'exemples recuperés sur le site phidgets.com
    • Installation des librairies et de Phidget Control Panel pour Phidgets
    • Recherche d'un logiciel de programmation
    • Problèmes
  • Echec de l'installation à cause de la mémoire sur disque C, mais l'essai de l'installation de Dev C++ sous windows, échec de compilation à cause des librairies statiques .a
  • Incapacité d'éviter les obstacles pour le premier châssis

10-11e séance

  • Objectif :
    • Finition de la commande qui correspond à la rubrique contrôle sur la page web
    • Essai de Phidget sous Linux
    • Réglage de le problème d'éviter un obstacle pour éviter un obstacle
    • Test le capteur de couleur pour le premier châssis
    • Commander le robot en mettant en place un programme pour gerer le capteur de distance et la motricité du deuxième chassis.
    • Programme Arduino pour la contrôle de la page web ('1' avancer, '2' reculer ', '3' tourner à gauche, '4'tourner à droit , '0' Stop)
  • Travail réalisé
    • Finalisation du code pour la détection d'obstables
    • L'essaie en mode serveur et en mode client pour la communication de l'interface page web(le premier châssis contrôlé par la page web)
    • Test HelloWorld.c pour la vérification de la détection de Phidget via USB
    • Test du programme interface-kit.c(pour capteurs) et Moteur-simple.c(pour la vitesse et l'accélération)
  • Problèmes
  • Les messages reçus et émis ne sont pas pareils(Write : un caractère, Read : un octet)

12-13e séance

  • Objectif
    • Programme du déplacement automatique pour le premier châssis
    • Finition de modifier le programme de ordonne.php pour bien passer le message à la foxboard
    • Test du capteur de couleur
  • Travail réalisé
    • Correction du bug sur le contournement d'obstacles
    • Programme du déplacement du premier châssis suivant une ligne en couleur
    • Programme du avancement simple pour le deuxième châssis grâce à le sonar
    • Programme du webcam
  • Problèmes
    • Valeurs de capteur de couleur dépendent beaucoup de l'environnement
    • Échec de charger la batterie du deuxième châssis, chaque foi le rechargeur fait l'alarme

14-15e séance

  • Objectif
    • Finition des trois genres de fonctionnement du châssis Arduino

(contrôlé par l'interface page web, automatique, suivant d'une ligne)

  • Travail réalisé
    • Modification des caractères communiqués entre l'interface page web et le châssis
    • Lancement de webcam
  • Imperfections
    • Les trois genres fonctionnements font séparément
    • Un peu d'instabilité de suivre une ligne

Travail supplémentaire

  • Relier les trois modes en ensemble, tous peuvent être contrôlees par l'interface(sur la rubrique Controle , -> rouge mode wifi, <-bleu mode automatique, ->bleu mode suivante d'une ligne )
  • Ajouter et tester par ajouter le quatrième paramètre (luminosité) pour compenser l'influence de l'environnement(à la partie "capteur couleur")

Résultats

  • Le robot basé sur un micro contrôleur Arduino est opérationnel et prêt à répondre à vos ordres via son interface Web. La mode peut être choisie par l'interface aussi:

-Mode wifi

  • Sur la rubrique Contrôle, les flèches représentent les sens. Stop sert à arrêter le châssis

-Mode automatique

  • Déplacement du châssis bien évitant un ou plusieurs obstacles devants, à droite ou à gauche

Mode suivant une ligne

  • Déplacement exactement sur la ligne collée par terre.

Rapport et source partagée

Fichier:Robotmobile.zip