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