Robots serveurs parisiens : Différence entre versions
| Ligne 139 : | Ligne 139 : | ||
====Etape 1 : Mise en oeuvre du capteur couleur==== | ====Etape 1 : Mise en oeuvre du capteur couleur==== | ||
| + | Matériel : | ||
| + | * Une [https://www.pjrc.com/teensy/teensy31_front_pinout.png carte Teensy] 3.1/3.2 | ||
| + | * Un capteur couleur TCS3200 | ||
| + | * Fils | ||
| + | * Scotch de couleur bleu et rouge | ||
| + | |||
| + | Branchements : | ||
| + | |||
| + | Code : | ||
| + | [[Fichier:???.zip]] METTRE CODE CAPTEUR COULEUR | ||
| + | |||
| + | Vidéo : | ||
==Robot opérationnel== | ==Robot opérationnel== | ||
Version du 12 mai 2016 à 11:06
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
Sommaire
Partie commune aux robots
Documentation Technique
- Le robot fonctionne par l'intermédiaire d'une carte Teensy dont vous avez l'architecture sur le lien suivant : Carte Teensy
- PCB de la carte contenant la Teensy : Fichier:PCB Project TeensyRobotL298N Orange.PDF
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 :
- 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.
- Vous trouverez la Datasheet du capteur QRE1113 dans le lien suivant: https://www.sparkfun.com/datasheets/Robotics/QR_QRE1113.GR.pdf
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 :
- Code Arduino pour le suiveur de ligne : Fichier:Suiveur ligne.zip
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 :
- 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.
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.
Documentation technique
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 :
Vérifiez bien que le logiciel Arduino détecte la carte Teensy sur le bon PORT
- Si vous le souhaitez vous pouvez visualiser les données directement sur le moniteur série.
- Vous pouvez aussi retrouver l'ensemble de cette étape sur le lien Github suivant : https://github.com/racoon-tse/GridEye-Teensy3.1.git
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.
- Capteur sonore SEN 12642 (capteur de base non disponible): Fichier:Résumé datasheet.docx
- Microphone ADMP401 (en remplacement) : Fichier:ADMP401 datasheet.pdf
- Capteur couleur :
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 :
- Une carte Teensy 3.1/3.2
- Un microphone ADMP401
- Une LED
- Fils
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
Vidéo :
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
Branchements :
SCHEMA BRANCHEMENTS
Code :
Fichier:Microphone admp401.zip METTRE CODE TEST CAPTEUR COULEUR
Vidéo :
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
Branchements :
Code : Fichier:???.zip METTRE CODE CAPTEUR COULEUR
Vidéo :
Robot opérationnel
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.
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'obstacle par capteurs ultrasons et une deuxième pour l'envoi de messages audio grâce à une audio-cape.
Documentation technique
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'obstacle.
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 audios 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 :
Faites bien attention d'avoir une masse commune.
Une Teensy va commander le robot et être connecté à 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é à la carte SD contentant 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 audios.
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 de 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é à 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 connection à la carte SD. Si des erreurs surviennent, cela peut être dû à un problème lors du chargement des librairies Audio et SD ou si le micro-contrôleur est 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.
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.
Documentation technique
Etapes de réalisation
Etape 1 : titre étape 1
(Façon tuto)
Etape 2 : titre étape 2
Robot opérationnel
- Pour l'organisation :
Après en avoir discuté un peu avec M. Verney, il faudrait séparer les différentes fonctions des robots. Pour cela, il propose d'utiliser plusieurs cartes.
Notre première idée à été de séparer le robot en 3 "parties" :
- Une partie acquisition/activation de la tache (Interaction entre les capteurs et une première carte et/ou interaction avec un actionneur)
- Une partie traitement et gestion (Carte qui récupère et traite les données pour ensuite donner des ordres)
- Une partie commande moteur (Carte Teensy déjà sur le robot)
Cette arborescence est prévu pour éviter les problèmes de cadencement entre les commandes moteurs, l'acquisition et le traitement des données. En plus du fait de permettre d'être plutôt modulable et de ne pas devoir ré-adapter chaque robot en fonction de ce qu'il doit faire.
- Pour le Wiki :
On remplira le Wiki au fur et à mesure, on pensait faire un code couleur en fonction des groupes et donc des différentes taches avec une partie (une couleur pourquoi pas) qui serait réservé à la motorisation (Déplacement et évitement). En plus, le fonctionnement du wiki de l'année dernière nous semblait vraiment sympa (Avec une gestion au jour le jour), et donc on pensait reprendre la même organisation.
Évidement, tout est ouvert à discussion, n'hésitez pas à venir me frapper pour me dire que ça va pas du tout. :)
PS : Les robots vaincront !