Robots danseurs
Projet du module Robots Communicants de Telecom Saint-Etienne 2018/2019.
Sommaire
Sujet:
L'utilisateur doit pouvoir commander un robot "maître" à distance au moyen d'une baguette. Deux robots esclaves doivent, en temps réel, imiter les mouvements du maître.
Objectif du projet
Créer une "baguette magique" permettant de donner des ordres de façon fluide et intuitive à un robot-maître, le robot-maître doit ensuite transmettre les ordres qu'il reçoit à un couple de robot-esclaves
La Baguette
La baguette sert à contrôler le robot maître par le biais de ses mouvements. Elle doit donc pouvoir:
- Mesurer les amplitudes et directions de ses accélérations
- Traiter l'information pour en faire des ordres compréhensible par le robot-maître
- Pouvoir communiquer avec le robot-maître
Composants électroniques
Carte de contrôle
La carte Arduino Teensy <ref name="Teensy"> carte Arduino Teensy [1] </ref> a été retenu en raison de son appartenance à l'environnement Arduino ainsi que ça petite taille, facile à intégrer dans la baguette.
Appareil de mesure
Le type de capteur retenu est le gyromètre, il permet de mesurer les accélération linéaire et angulaire des trois direction de l'espace.
Deux gyromètre sont en compétition, la Pololu AltMU-10 v4 <ref name="Pololu"> carte Pololu [2] </ref> et le Grove IMU 10DOF v1.1 <ref name="Grove"> carte Grove [3] </ref>
Critères de choix retenus (trié par ordre d'importance):
- la fiabilité du capteur (absence de valeur aberrantes)
- la taille (il doit être facile à intégrer sur la baguette)
- la facilité de programmation
- la précision (dans le cas ou la vitesse de la baguette serve au pilotage du robot)
Finalement c'est le Pololu qui a été retenu en raison de sa très petite taille par rapport au capteur Grove.
Programmation
Fonctionnement
La baguette fonctionne suivant le principe suivant : appuyer sur le bouton lance la séquence de captation d’ordre qui se poursuit jusqu’à ce qu’il soit relâché. Tant que le bouton est maintenu le dernier ordre envoyé est « gelé » c’est-à-dire que donner un coup de baguette vers la droite puis ne plus bouger enverra le robot vers la droite tant que le bouton sera appuyé.
Liste des ordres disponibles
La liste est ordre est :
- Coup vers l'avant: fait avancer le robot
- Coup vers l'arrière: fait reculer le robot
- Coup vers la droite: fait aller le robot vers la droite
- Coup vers la gauche: fait aller le robot vers la gauche
- Rotation droite: fait tourner le robot dans le sens anti trigonométrique
- Rotation gauche: fait tourner le robot dans le sens trigonométrique
Aspect esthétique
Fabrication
Décorations supplémentaires
Des bandes de led <ref name="LED"> LED strip [4] </ref>
Le Robot-Maître
Composants
- Moteur: Mabuchi rk-370-CA <ref name="Moteur Esclave"> Moteur Esclave [5] </ref>
- Carte de contrôle: Arduino Teensy <ref name="Teensy"/>
- Interface de puissance: Carte fournie par TSE <ref name="Interface de puissance"> Interface de puissance [6] </ref>
Programmation
Le code des robots sera séparé en trois parties distinctes :
- la commande du robot
- la détection d’obstacle
- la communication
Des interruptions sont utilisées par le programme pour récupérer les informations générées par les roues codeuse.
Les Robot-Esclaves
Composants
- Moteur: Hennkwell HG37D670WE12-052
- Carte de contrôle: Arduino Teensy <ref name="Teensy"/>
- Interface de puissance: Carte fournie par TSE <ref name="Interface de puissance"> Interface de puissance [7] </ref>
Programmation
Le programme des robot-esclaves est exactement le même que celui du robot-maître, à la différence près qu'il a été adapté pour fonctionner avec 3 roues et non quatre