Robots serveurs parisiens

De Learning Lab Environnements Connectés
Sauter à la navigation Sauter à la recherche

Lors de l'option robotique de deuxième année de Télécom Saint Etienne, nous devons réaliser quatre robots. Le projet a été pensé par les professeurs d'électronique de notre école, M. Eric Verney et M. Thierry Bru, en association avec FABLABouffe. Il s'agit de robots serveurs parisiens, en effet c'est en se basant sur le comportement ingrat des serveurs parisiens que l'idée de ces quatre scénarios est née. Le premier robot est Pépé le porte-plateaux, le deuxième Le Gueulard, le troisième Chaud-Devant et enfin le dernier, Hermès. La description de chacun d'eux est donnée postérieurement.

Le workshop se tiendra sur deux semaines à la Préfabrique de l'innovation à l'ancienne manufacture de Saint Etienne, voir plan d'accès

Base robot Stinger et sa carte contrôleur

Partie commune aux robots

Documentation Technique

Déplacement du robot

  • Dans un premier temps, on a installé l'environnement Teensy sous Arduino. Puis, il suffit de compiler et téléverser le programme suivant pour faire fonctionner les deux moteurs :
 - Code Teensy asservissement vitesse moteurs ( en K ) : Fichier:TeensyVSL298AsservissementVitesse.zip

A ce stade, le robot fonctionne par l'intermédiaire d'ordres donnés directement via le moniteur série.

Suiveur de ligne

Pour notre projet, nos robots doivent suivre une ligne noire tracée au sol. Pour effectuer cette action, on choisit d'utiliser deux capteurs "suiveurs de ligne" QRE1113 composés chacun d'un émetteur IR et d'un photo-transistor.

Capteur QRE1113 embarqué sur la base robot


Capteur QRE1113


Après plusieurs tests et ajustements du code Arduino, on arrive à un résultat assez concluant que l'on vous présente dans cette vidéo :

Détection des obstacles

  • On utilisera pour réaliser cette fonction un capteur à ultrasons SRF08 dont vous trouverez la documentation ci joint : Fichier:Capteur SRF08.docx
  • Ce capteur est positionné au milieu à l'avant du robot :
Capteur à ultrasons



  • Le capteur est branché sur le bus I2C de la carte Teensy de commande moteurs (voir pins 18 (SDA) et 19 (SCL) sur le PCB de la carte).
  • Code pour l'arrêt du robot inclus dans le code de suiveur de ligne : Fichier:Suiveur detecteur.zip
  • Voici la vidéo qui montre l'arrêt du robot à la détection d'un obstacle :

Scénario 1 : Pépé le porte plateau

Présentation du scénario

Ce robot a pour but d’apporter quelque chose à une source de chaleur. L’idée première et idéale serait que ce robot dispose d’un plateau avec un capteur ultrason. Celui-ci, à son point de départ, recevrait un objet. Le capteur le détecterait alors et il parcourrait la ligne noire formant son parcours à la recherche d’une source de chaleur, donc d’une personne, afin qu’elle lui prenne l’objet. Le robot ne détectant alors plus d’objet sur son plateau, retournerait à son point de départ dans l’attente d’un nouvel objet à servir.

Documentation technique

Pour faire fonctionner ce robot nous allons utiliser une seule carte Arduino Teensy responsable de la commande des moteurs, du suivi de ligne, de la détection d'obstacle par capteurs ultrasons et du suivi de personnes par capteur Grid-Eye.

Etapes de réalisation

Etape 1 : Mise en place du Grid Eye

  • On suppose dans un premier temps que l'environnement Teensy est opérationnel sous Arduino.
  • Il faut compiler et téléverser le code dédié au Grid Eye : Fichier:Grid-eye.zip
  • Ensuite, il faut procéder aux branchements suivant :
Schéma du branchement


Vérifiez bien que le logiciel Arduino détecte la carte Teensy sur le bon PORT

Etape 2 : Test avec l'interface graphique (GUI)

Etape 3 : Implémentation sur le robot

Robot opérationnel

Scénario 2 : Le Gueulard

Présentation du scénario

Ce robot a pour objectif de stopper le bruit en « gueulant » sur les gens. Le robot se déplacera comme les autres le long du parcours tracé avec une ligne noire. Son capteur, un microphone, sera placé sur celui ci. Lorsque le signal sonore dépassera un seuil donné, le robot se stoppera alors et une phrase préenregistrée sera émise via les haut-parleurs afin de faire taire le perturbateur. Il ne reprendra alors son chemin que lorsque le bruit sera en dessous du seuil.

Il s'agira également d'un robot lunatique, mi-ange, mi-démon. Le robot sera muni d'un capteur couleur. La ligne noire sera parsemée de tâches de couleur (cf photo ci-après). Lorsque le robot détectera la couleur bleu, il énoncera une phrase préenregistrée "gentille" et lorsqu'il détectera du rouge, ce sera alors une phrase préenregistrée "méchante" qui sera émise.

Le robot sera également muni des fonctions "suivi de ligne" et "détection d'obstacles".

Documentation technique

Nous utiliserons deux cartes Arduino Teensy pour la réalisation de ce robot : une responsable de la commande moteurs, du suivi de ligne, de la détection d'obstacles par capteurs ultrasons et de la détection sonore (détection de bruit) et la deuxième responsable de l'envoi de messages audio avec une audio-cape Arduino.

Fichier:TSC3200 Resumefonctionnement.pdf
Fichier:TSC3200 Datasheet.pdf

Étapes de réalisation

Microphone

Etape 0 : Test du microphone

Cette étape permet de vérifier que le capteur fonctionne correctement. Le but du programme test est d'allumer une LED à partir d'un certain seuil.

Matériel :

Branchements :

  • Brancher VCC (3.3V) et la masse GND à la carte Teensy.
  • Brancher la sortie analogique du microphone à une des pins analogiques de la carte Teensy.
  • Brancher la LED à la masse et à un pin digital de la carte Teensy.

Code : Fichier:Microphone admp401.zip

Vidéo :

Etape 1 : Mise en oeuvre du microphone

Matériel :

  • Une carte Teensy 3.1/3.2
  • Un microphone ADMP401
  • Fils femelle/femelle

Branchements :

Code : Fichier:???.zip

Le robot est alors capable de suivre la ligne, émettre une phrase lorsqu'il entend un bruit trop fort ainsi que se stopper lorsqu'un obstacle se trouve devant lui.

Vidéos :

Capteur couleur

Etape 0 : Test du capteur couleur

Cette étape permet de vérifier que le capteur fonctionne correctement. Le but du programme test est d'allumer la LED de la couleur du scotch détectée par le capteur. Nous avons deux LEDs, une rouge et une bleu.

Matériel :

  • Une carte Teensy 3.1/3.2
  • Un capteur couleur TCS3200
  • Une LED rouge et une LED bleu
  • Fils
  • Scotch de couleur bleu et rouge

Mécanique :

  • Il faut stabiliser le capteur à une distance constante du support sur lequel sera placé le scotch de couleur. Nous avons accroché le capteur couleur sous le robot (cf photo). Si cette étape n'est pas réalisée les valeurs ne seront pas stabilisées. Lors de l'étalonnage et lors de la mesure du test final, il y aura des valeurs trop éloignées les unes des autres ce qui impliquera un non fonctionnement du test.
Fixation du capteur couleur sous le robot


  • Il faut impérativement que la taille du scotch soit supérieure à la distance séparant les photodiodes. Sinon le capteur ne pourra pas fonctionner. Nous mesurons ??????mm.

Branchements :

Brochage pour le test du capteur avec les LED
  • On choisit d'allumer la LED du capteur. La zone colorée est alors éclairée. On élimine ainsi les quelques problèmes liés à l'éclairage environnant non contrôlable qui influenceraient les données du capteur. On a donc une certaine constance dans les données couleur renvoyées par le capteur.
  • Après avoir effectuer les branchements, vérifiez et téléversez le code suivant :

Code : Fichier:Test capteur couleur TCS3200.zip

  • Il faut maintenant étalonner. Positionnez le capteur sur le scotch de couleur, ouvrez le moniteur série. Les quatre valeurs White, Red, Green et Blue s'affichent alors. Il y a un léger écart dû à la sensibilité du capteur entre deux mesures. C'est pourquoi il faut choisir une plage de valeurs pour chaque composante couleur : +/-5 de la valeur plus ou moins stable. Entrez ces valeurs dans le code (boucle if). Faites de même avec l'autre scotch coloré.
  • Vous avez terminé.

Vous pouvez observer que lorsque la capteur se trouve au dessus du scotch de couleur, la LED de la même couleur s'allume.

Vidéo résultat:

Etape 1 : Mise en oeuvre du capteur couleur

Matériel :

  • Une carte Teensy 3.1/3.2
  • Un capteur couleur TCS3200
  • Fils
  • Scotch de couleur bleu et rouge

Mécanique :

  • Comme vu dans l'étape précédente, le scotch doit être assez large pour que les photodiodes reçoivent les informations de la couleur. Nous décidons alors de réaliser un circuit de ce type :
Circuit avec scotchs de couleur


Les scotchs de couleur rouge et bleu sont à différents endroits, de largeur suffisante (photodiodes) mais pas excessive (suivi de ligne) et d'une longueur choisie de telle façon que le capteur puisse détecter la couleur sachant que le robot est en marche. Branchements :

Code : Fichier:???.zip METTRE CODE CAPTEUR COULEUR

Vidéo :

Robot opérationnel

Voici l'allure de notre robot final :

Robot Gueulard vu de dessus
Robot Gueulard vu de dessous













Scénario 3 : Chaud-Devant

Présentation du scénario

Le robot parisien "Chaud-Devant" est un robot suiveur de ligne qui va suivre un itinéraire tracé sur le sol jusqu'à ce qu'il rencontre un obstacle. Le robot va alors s'arrêter et diffuser des messages audios pour qu'on lui libère le passage. Une fois le passage libéré, "Chaud-Devant" reprend sa route.

Documentation technique

Ce robot, de la même façon que le robot Gueulard, aura besoin de deux cartes Arduino Teensy pour fonctionner : la première pour gérer la commande des moteurs, le suivi de ligne et la détection d'obstacles par capteurs ultrasons et une deuxième pour l'envoi de messages audio grâce à une audio-cape.

Partie Motrice

Le déplacement du robot se base sur le code Arduino présent au début du wiki. On utilise donc le suiveur de ligne avec la détection d'obstacles.

Partie Audio

Pour la partie audio, la solution retenue pour le moment est l'utilisation d'une teensy munie d'un shield audio pour la lecture et la diffusion du message audio. Le message audio, de type .wav, sera enregistré dans une carte SD.

Code pour lancer un message audio préalablement enregistré dans une carte SD (adapté pour le shield audio) : Fichier:Teensy audio.ino.zip

Code pour lancer différents messages audio depuis la carte SD : Fichier:WavFilePlayer.ino.zip

Etapes de réalisation

Montage global

Notre robot suiveur de ligne est composé de deux Teensy 3.2, un shield audio, 2 capteurs suiveur de ligne, 2 télémètres à ultrasons et d'un petit haut-parleur. Les datasheets des différents capteurs ainsi que les sketchs arduino sont disponibles dans la partie "Documentation technique".

  • Voici le schéma pour relier les deux Teensy :
Schéma branchement 2 teensy


Faites bien attention d'avoir une masse commune.

Une Teensy va commander le robot et être connectée à tous les capteurs, c'est sur elle que l'on va uploader le programme servant à asservir les moteurs et qui traitera les différentes données communiquées par les capteurs. La deuxième Teensy sera munie du shield audio et connectée à la carte SD contenant les divers messages vocaux. La Teensy "moteur" va relayer l'information des télémètres via un port digital en émission et un port analogique en réception vers la Teensy "audio", cette information permettra de piloter la diffusion des messages audio.

Le shield audio occupe la majeure partie des pins de la Teensy, seul un port purement analogique est disponible (le port A14), ce qui explique qu'on traite le signal logique envoyé par la Teensy motrice de façon analogique. En pratique, on envoie donc des 0 et des 1 et on reçoit un signal valant approximativement 0 ou 1024. En somme, il y a donc deux fils reliant les teensy, un pour relayer l'information des capteurs et l'autre pour assurer une masse commune.

Etape 1 : Mise en place des capteurs à ultrasons

Tout d'abord, il est nécessaire de mettre en place vos capteurs à ultrasons afin que votre robot puisse détecter un objet se trouvant devant lui. Les capteurs doivent être reliés à l'aide d'une liaison I2C à la Teensy. Voir "Partie commune" pour plus de détails.

Etape 2 : Emission du message vocal

Pour cette partie, il est nécessaire d'avoir la librairie arduino "Audio", qui est normalement téléchargée lors de l'installation du logiciel Teensyduino cependant il peut arriver qu'elle ne se soit pas bien installée. Copiez aussi quelques fichiers .wav sur votre carte SD.

Une fois la Teensy connectée au shield audio, téléversez le code arduino "Teensy audio.ino" et testez la lecture d'un unique fichier .wav ainsi que la connexion à la carte SD. Si des erreurs surviennent, cela peut être dû à un problème lors du chargement des librairies Audio et SD ou dû au micro-contrôleur branché dans le mauvais sens. Votre fichier .wav doit durer plus de quelques secondes (au moins 5s) sinon il n'a pas le temps d'être traité par la Teensy. Si tout fonctionne, téléversez le sketch "WavFilePlayer.ino" qui permet de lire différents fichiers .wav (mais pas de façon simultanée). L'insertion de votre code dans des boucles if() permet de ne diffuser vos messages vocaux que si la Teensy audio reçoit un signal de la Teensy moteur.

Robot opérationnel

  • Voici la vidéo qui résume ce scénario :

Scénario 4 : Hermès

Présentation du scénario

Ce dernier robot est un robot porteur de messages. Le robot, tout comme les autres, se déplacera le long du parcours avec dans celui-ci un point de départ. Les clients peuvent enregistrer un son et le charger via internet afin que le robot délivre ce message. Le robot parcourrait alors la ligne noire formant son parcours à la recherche d’une source de chaleur, donc une personne, afin de lui délivrer le message. Il repartirait alors sur la ligne et retournerait à son point de départ. On peut imaginer aussi que les clients passent leur commande via le robot et que celui-ci délivre leur message au point de départ étant les cuisines.

Documentation technique

Nous allons donc avoir besoin de trois cartes pour ce robot : Une carte Raspberry Pi1 qui va se charger de la partie communication internet (implémentation d'un serveur web) et deux cartes Arduino Teensy : Une pour la commande moteurs, le suivi de ligne, la detection d'obstacle par capteurs ultrasons et le suivi de personnes par capteur Grid-Eye et une pour l'enregistrement et l’émission de messages audio via une audio-cape Arduino.

Etapes de réalisation

Etape 1 : titre étape 1

(Façon tuto)

Etape 2 : titre étape 2

Robot opérationnel