﻿<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://bacasable.arpitania.eu//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lo.brandon</id>
	<title>Learning Lab Environnements Connectés - Contributions de l’utilisateur [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://bacasable.arpitania.eu//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lo.brandon"/>
	<link rel="alternate" type="text/html" href="https://bacasable.arpitania.eu//index.php?title=Sp%C3%A9cial:Contributions/Lo.brandon"/>
	<updated>2026-04-08T15:14:08Z</updated>
	<subtitle>Contributions de l’utilisateur</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10419</id>
		<title>Robots danseurs</title>
		<link rel="alternate" type="text/html" href="https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10419"/>
		<updated>2019-05-23T16:06:44Z</updated>

		<summary type="html">&lt;p&gt;Lo.brandon : /* Robot maître ou esclave et communication */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projet du module Robots Communicants de Telecom Saint-Etienne 2018/2019.&amp;lt;br /&amp;gt;&lt;br /&gt;
= Sujet =&lt;br /&gt;
L'utilisateur doit pouvoir commander un robot &amp;quot;maître&amp;quot; à distance au moyen d'une baguette. Deux robots esclaves doivent, en temps réel, imiter les mouvements du maître.&lt;br /&gt;
&lt;br /&gt;
= Objectif du projet =&lt;br /&gt;
&lt;br /&gt;
Créer une &amp;quot;baguette magique&amp;quot; permettant de donner des ordres de façon fluide et intuitive à un robot-maître qui doit ensuite transmettre les ordres qu'il reçoit à un couple de robot-esclaves&lt;br /&gt;
&lt;br /&gt;
== Diagrammes fonctionnels ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe1.png|thumb|center|Diagramme fonctionnel d'odre 1]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe_2t.png|800px|thumb|center|Diagramme fonctionnel d'odre 2]]&lt;br /&gt;
&lt;br /&gt;
== Spécifications fonctionnelles ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Spécifications fonctionnelles&lt;br /&gt;
|-&lt;br /&gt;
|Fonction principale&lt;br /&gt;
|Diriger des robots avec une baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 1&lt;br /&gt;
|Établir une communication entre les robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 2&lt;br /&gt;
|Empêcher les ordres non voulus&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 3&lt;br /&gt;
|Implémenter un feedback physique à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 4&lt;br /&gt;
|Implémenter un feedback lumineux à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 5&lt;br /&gt;
|Implémenter un feedback lumineux aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 6&lt;br /&gt;
|Implémenter un feedback sonore aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 7&lt;br /&gt;
|Créer des chorégraphies&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= La Baguette =&lt;br /&gt;
&lt;br /&gt;
La baguette sert à contrôler le robot maître par le biais de ses mouvements.&lt;br /&gt;
&lt;br /&gt;
Elle doit donc pouvoir:&lt;br /&gt;
*Mesurer les amplitudes et directions de ses accélérations linéaire et rotative&lt;br /&gt;
*Traiter l'information pour en faire des ordres compréhensible par le robot-maître &lt;br /&gt;
*Pouvoir communiquer avec le robot-maître via le protocole BLE&lt;br /&gt;
*Donner un feedback physique à l'aide d'un vibro-moteur placé au niveau de la poignée de la baguette&lt;br /&gt;
*Donner un feedback visuel à l'aide d'un ruban de LEDS fixé sur la baguette&lt;br /&gt;
&lt;br /&gt;
== Composants électroniques utilisés ==&lt;br /&gt;
&lt;br /&gt;
=== Carte de contrôle ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Esp.jpg|vignette|ESP32 Thing]]&lt;br /&gt;
La [https://learn.sparkfun.com/tutorials/esp32-thing-hookup-guide/all carte Sparkfun esp32 thing] a été retenu en raison de sa communication BLE malgré sa grande taille comparé à la [https://www.pjrc.com/teensy/ carte Arduino Teensy].&lt;br /&gt;
&lt;br /&gt;
Cette carte est alimentée via une batterie de 3.6V et 600mAh.&lt;br /&gt;
&lt;br /&gt;
La carte de contrôle et l'appareil de mesure communiquent ensemble par communication I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Appareil de mesure ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pololu_flo.jpg|vignette|Gyromètre retenu : Pololu AltMU-10 v4 (avec ses axes)]]&lt;br /&gt;
Le type de capteur retenu est le gyromètre, il permet de mesurer les accélérations linéaires et angulaires des trois directions de l'espace.&lt;br /&gt;
&lt;br /&gt;
Deux gyromètres sont en compétition, la [https://www.pololu.com/product/2470 Pololu AltMU-10 v4] et le [http://wiki.seeedstudio.com/Grove-IMU_10DOF/ Grove IMU 10DOF v1.1]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Critères de choix retenus (triés par ordre d'importance):&lt;br /&gt;
# la fiabilité du capteur (absence de valeurs aberrantes)&lt;br /&gt;
# la taille (il doit être facile à intégrer sur la baguette)&lt;br /&gt;
# la facilité de programmation &lt;br /&gt;
# la précision (dans le cas où la vitesse de la baguette serve au pilotage du robot)&lt;br /&gt;
&lt;br /&gt;
Finalement c'est le Pololu qui a été retenu en raison de sa très petite taille par rapport au capteur Grove.&lt;br /&gt;
&lt;br /&gt;
=== Bouton poussoir ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Bp_flo.jpg|vignette|Bouton poussoir retenu]]&lt;br /&gt;
Nous avons fait le choix d'ajouter un bouton poussoir sur notre baguette pour que celle-ci sache quand est-ce que nous voulons envoyer des ordres ou pas. Ce qui permettra à l'utilisateur de pouvoir garder la baguette en main sans devoir faire attention à ses mouvements ou sans devoir éteindre la baguette lorsque nous ne voulons pas envoyer d'ordre. &lt;br /&gt;
&lt;br /&gt;
Ce bouton nous permettra également de déterminer dans quel mode nous voulons guider le robot maître (qui sera expliqué plus bas).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Vibreur ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Vibro.jpg|vignette|Vibro-moteur retenu : grove vibro moteur 1.3]]&lt;br /&gt;
Un vibreur a été ajouté à la baguette pour avoir un retour sur le bon envoie de l'instruction. Attention, la vibration est seulement ici pour dire qu'une instruction a été envoyée avec succès et non pas pour notifier sa bonne réception sur le robot maître. Par conséquent, il se peut que la baguette vibre sans pour autant que le robot maître interprète correctement les ordres et les réalise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ruban de led ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ruban_flo.jpg|vignette|Ruban de leds retenu :  NeoPixel ADA1507 RGB 1m 144 leds]]&lt;br /&gt;
Un [https://www.adafruit.com/product/1506 ruban de LED] est enroulé autour de la baguette pour coller au mieux au coté ludique des robots.&lt;br /&gt;
&lt;br /&gt;
Ses fonctionnalités sont :&lt;br /&gt;
&lt;br /&gt;
Dans le mode manuel :&lt;br /&gt;
&lt;br /&gt;
*Prendre une couleur différente pour chaque ordre&lt;br /&gt;
*Plus l'ordre est maintenu plus le nombre de led illuminées augmente&lt;br /&gt;
*Si on envoie un ordre différent, les led &amp;quot;redescendent&amp;quot; rapidement avant de &amp;quot;remonter&amp;quot; dans une autre couleur&lt;br /&gt;
*Si le bouton est relâché les led &amp;quot;redescendent&amp;quot; et sont par conséquent toutes éteintes.&lt;br /&gt;
&lt;br /&gt;
Dans le mode automatique :&lt;br /&gt;
&lt;br /&gt;
*Eclairage en arc-en-ciel pour la chorégraphie 1&lt;br /&gt;
*Eclairage fluide avec des changements de couleur pour la chorégraphie 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La bande de led est alimentée via une batterie de 5V différente de la batterie alimentant l'ESP32.&lt;br /&gt;
&lt;br /&gt;
== Les différents modes ==&lt;br /&gt;
&lt;br /&gt;
=== Mode manuel ===&lt;br /&gt;
&lt;br /&gt;
Ce mode permet de synchroniser les robots aux mouvements de la baguette. C'est le mode utilisé par défaut lorsqu'on alimente la baguette.&lt;br /&gt;
&lt;br /&gt;
La liste des ordres est la suivante (s'enclenche en maintenant appuyé le bouton poussoir pendant l'action en cours)  :&lt;br /&gt;
*Coup vers l'avant: fait avancer le robot&lt;br /&gt;
*Coup vers l'arrière: fait reculer le robot&lt;br /&gt;
*Coup vers la droite: fait aller le robot vers la droite&lt;br /&gt;
*Coup vers la gauche: fait aller le robot vers la gauche&lt;br /&gt;
*Rotation droite: fait tourner le robot dans le sens horaire&lt;br /&gt;
*Rotation gauche: fait tourner le robot dans le sens trigonométrique&lt;br /&gt;
&lt;br /&gt;
Une fois que le bouton poussoir est relâché, cela sera interpréter comme un stop et les robots devront s'arrêter.&lt;br /&gt;
&lt;br /&gt;
=== Mode automatique ===&lt;br /&gt;
&lt;br /&gt;
Ce mode permet de lancer une chorégraphie sans tenir compte des mouvements de la baguette. Celui-ci est activé à l'aide d'une combinaison de mouvements et d'appuis sur le bouton poussoir.&lt;br /&gt;
&lt;br /&gt;
Nous avons la possibilité de lancer deux chorégraphies au choix :&lt;br /&gt;
*Chorégraphie 1 : Coup vers la gauche de la baguette + appui court sur le BP&lt;br /&gt;
*Chorégraphie 2 : Coup vers la droite de la baguette + appui court sur le BP&lt;br /&gt;
&lt;br /&gt;
Afin d'éviter qu'une chorégraphie se répète en boucle, un simple appui sur le bouton poussoir arrêtera la chorégraphie une fois celle-ci terminée.&lt;br /&gt;
&lt;br /&gt;
Pour les deux chorégraphies, le robot maître lancera une musique en même temps (voir plus bas).&lt;br /&gt;
&lt;br /&gt;
== Rendu final de la baguette magique ==&lt;br /&gt;
&lt;br /&gt;
=== Conception ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Solid.jpg|800px|La baguette modélisée sous Solid]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La baguette a été modélisée sur SolidWorks puis imprimée en 3D.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fabrication/Assemblage ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Baguette1.jpg|800px|La baguette vue en coupe avec les composants]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Baguette2.jpg|800px|La baguette]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne les différents programmes (tests + final) et les schémas de câblage, se rendre sur : [[https://ujm.webgroup.fr/index.php?title=Robots_danseurs_technique Documentation technique]]&lt;br /&gt;
&lt;br /&gt;
= Le Robot-Maître =&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Robot maitre.jpg|vignette|Photo du robot-maître]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: [http://www.kysanelectronics.com/graphics/RK-370CA.pdf Mabuchi rk-370-CA]&lt;br /&gt;
*Carte de contrôle: Arduino Teensy et Sparkfun esp32 communicant ensemble par UART&lt;br /&gt;
*Interface de puissance: [https://ujm.webgroup.fr/images/7/7a/PCB_Robot4Voies.pdf Carte fournie par TSE]&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
*Régulateur de tension : Traco Power&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
Le code des robots sera séparé en trois parties distinctes : &lt;br /&gt;
*la commande du robot&lt;br /&gt;
*la communication&lt;br /&gt;
&lt;br /&gt;
Des interruptions sont utilisées par le programme pour récupérer les informations générées par les roues codeuse afin de soulager le processeur.&lt;br /&gt;
&lt;br /&gt;
=== La commande du robot ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Communication.png|vignette|droite|Schéma de communication global]]&lt;br /&gt;
&lt;br /&gt;
Les moteurs sont pilotés via différentes fonctions:&lt;br /&gt;
*Avancer&lt;br /&gt;
*Reculer&lt;br /&gt;
*Aller à droite&lt;br /&gt;
*Aller à gauche&lt;br /&gt;
*Aller en biais en haut à droite&lt;br /&gt;
*Aller en biais en haut à gauche&lt;br /&gt;
*Aller en biais en bas à droite&lt;br /&gt;
*Aller en biais en bas à gauche&lt;br /&gt;
*Rotation dans le sens trigonométrique&lt;br /&gt;
*Rotation dans le sens anti trigonométrique&lt;br /&gt;
&lt;br /&gt;
=== La communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le robot-maître reçoit ses ordres de la baguette par bluetooth.&lt;br /&gt;
&lt;br /&gt;
La communication avec les robot-esclaves se fait via une communication Wi-Fi, le robot-maître crée un serveur auquel se connecte les robot-esclaves pour récupérer leurs ordres.&lt;br /&gt;
&lt;br /&gt;
= Les Robot-Esclaves =&lt;br /&gt;
[[Fichier:Robot esclave.jpg|vignette|droite|Photo d'un des robot-esclaves]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: Hennkwell HG37D670WE12-052&lt;br /&gt;
*Carte de contrôle: Arduino Teensy&lt;br /&gt;
*Interface de puissance: Carte fournie par TSE&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Les robot-esclaves reçoivent exactement les mêmes ordres que ceux reçu par le robot-maître étant donné que le programme est le même pour les 3 robots.&lt;br /&gt;
&lt;br /&gt;
= Amélioration à apporter =&lt;br /&gt;
&lt;br /&gt;
== La baguette ==&lt;br /&gt;
&lt;br /&gt;
- Trouver un moyen plus optimal d'acquérir les mouvements pour effectuer des gestes plus souples (avoir un meilleur algorithme ou mieux exploiter le capteur en jouant sur l'accéléromètre et le gyroscope).&lt;br /&gt;
&lt;br /&gt;
- Utiliser les 2 cœurs présents sur l'ESP32 pour contrôler d'un côté les jeux de lumières et de l'autre, la gestion d'acquisition, traitement de données, envoie BLE et vibration de la baguette. Cette optimisation permettrait d'avoir un algorithme plus soigné.&lt;br /&gt;
&lt;br /&gt;
- Avoir un feedback visuel au niveau de la télécommande sur les instructions envoyées par la baguette. Exemple : écran LCD qui afficherait les instructions envoyées par BLE.&lt;br /&gt;
&lt;br /&gt;
- Trouver le moyen d'allumer ou éteindre facilement la baguette. Egalement penser à avoir un voyant pour savoir dans quel état est la baguette (on ou off).&lt;br /&gt;
&lt;br /&gt;
- Réduire le temps de latence entre l'envoie des mouvements baguette et l'exécution des mouvements du robot maître.&lt;br /&gt;
&lt;br /&gt;
- Optimiser l'algorithme pour activer le mode automatique ou manuel. En effet, la baguette bascule en mode manuel qu'au bout d'1s environ après appuie et maintien du bouton. Ce qui empêche toute acquisition durant cette temporisation (ne dérange pas dans l'utilisation mais requiert tout de même une optimisation).&lt;br /&gt;
&lt;br /&gt;
- Réduire l'épaisseur de la baguette et l'allonger pour correspondre au mieux au design d'une baguette.&lt;br /&gt;
&lt;br /&gt;
== Robot maître ou esclave et communication ==&lt;br /&gt;
&lt;br /&gt;
- Réduire le nombre des batteries sur les robots (maître et esclave).&lt;br /&gt;
&lt;br /&gt;
- Améliorer l'asservissement des robots.&lt;br /&gt;
&lt;br /&gt;
- Améliorer le mode automatique en implémentant des chorégraphies qui vont avec les musiques.&lt;br /&gt;
&lt;br /&gt;
- Améliorer l'algorithme de mode automatique pour pouvoir interrompre le robot au milieu de sa chorégraphie (à l'heure actuel, le robot termine sa chorégraphie et s'arrête seulement s'il a reçu l'ordre STOP, sinon il continue de danser).&lt;br /&gt;
&lt;br /&gt;
- Mieux gérer le système de musique pour qu'elle se joue que pendant le chorégraphie.&lt;br /&gt;
&lt;br /&gt;
- Implémenter une fonction de &amp;quot;calibrage&amp;quot; qui mettrait le maître dans une certaine position et les esclaves derrière lui (formant ainsi un triangle par exemple). Cette fonction configurera les robots de manière &amp;quot;orchestré&amp;quot; qui permettra un contrôle du robot maître et de ses esclaves cohérent.&lt;br /&gt;
&lt;br /&gt;
- Calibrer les vitesses des robots pour qu'elles soient compatibles lors de leur contrôle.&lt;br /&gt;
&lt;br /&gt;
- Avoir le même nombre de roues motrices sur chaque robot. On a rencontré un problème sur les robots esclaves qui n'ont pas le même comportement que le robot maître pour certaines directions (dû au nombre de roues motrices).&lt;br /&gt;
&lt;br /&gt;
- Réduire le temps de latence de l'envoie des mouvements du robot maître au robot esclave pour plus de cohérence.&lt;br /&gt;
&lt;br /&gt;
- Transmettre l'ordre de chorégraphie du robot maître aux robots esclaves pour que tout le monde danse. Penser à la synchronisation de chaque robot pour avoir une danse cohérente.&lt;br /&gt;
&lt;br /&gt;
= Références externes =&lt;br /&gt;
&lt;br /&gt;
[[https://ujm.webgroup.fr/index.php?title=Robots_danseurs_technique Documentation technique]]&lt;/div&gt;</summary>
		<author><name>Lo.brandon</name></author>
		
	</entry>
	<entry>
		<id>https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10418</id>
		<title>Robots danseurs</title>
		<link rel="alternate" type="text/html" href="https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10418"/>
		<updated>2019-05-23T16:01:44Z</updated>

		<summary type="html">&lt;p&gt;Lo.brandon : /* Amélioration à apporter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projet du module Robots Communicants de Telecom Saint-Etienne 2018/2019.&amp;lt;br /&amp;gt;&lt;br /&gt;
= Sujet =&lt;br /&gt;
L'utilisateur doit pouvoir commander un robot &amp;quot;maître&amp;quot; à distance au moyen d'une baguette. Deux robots esclaves doivent, en temps réel, imiter les mouvements du maître.&lt;br /&gt;
&lt;br /&gt;
= Objectif du projet =&lt;br /&gt;
&lt;br /&gt;
Créer une &amp;quot;baguette magique&amp;quot; permettant de donner des ordres de façon fluide et intuitive à un robot-maître qui doit ensuite transmettre les ordres qu'il reçoit à un couple de robot-esclaves&lt;br /&gt;
&lt;br /&gt;
== Diagrammes fonctionnels ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe1.png|thumb|center|Diagramme fonctionnel d'odre 1]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe_2t.png|800px|thumb|center|Diagramme fonctionnel d'odre 2]]&lt;br /&gt;
&lt;br /&gt;
== Spécifications fonctionnelles ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Spécifications fonctionnelles&lt;br /&gt;
|-&lt;br /&gt;
|Fonction principale&lt;br /&gt;
|Diriger des robots avec une baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 1&lt;br /&gt;
|Établir une communication entre les robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 2&lt;br /&gt;
|Empêcher les ordres non voulus&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 3&lt;br /&gt;
|Implémenter un feedback physique à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 4&lt;br /&gt;
|Implémenter un feedback lumineux à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 5&lt;br /&gt;
|Implémenter un feedback lumineux aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 6&lt;br /&gt;
|Implémenter un feedback sonore aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 7&lt;br /&gt;
|Créer des chorégraphies&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= La Baguette =&lt;br /&gt;
&lt;br /&gt;
La baguette sert à contrôler le robot maître par le biais de ses mouvements.&lt;br /&gt;
&lt;br /&gt;
Elle doit donc pouvoir:&lt;br /&gt;
*Mesurer les amplitudes et directions de ses accélérations linéaire et rotative&lt;br /&gt;
*Traiter l'information pour en faire des ordres compréhensible par le robot-maître &lt;br /&gt;
*Pouvoir communiquer avec le robot-maître via le protocole BLE&lt;br /&gt;
*Donner un feedback physique à l'aide d'un vibro-moteur placé au niveau de la poignée de la baguette&lt;br /&gt;
*Donner un feedback visuel à l'aide d'un ruban de LEDS fixé sur la baguette&lt;br /&gt;
&lt;br /&gt;
== Composants électroniques utilisés ==&lt;br /&gt;
&lt;br /&gt;
=== Carte de contrôle ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Esp.jpg|vignette|ESP32 Thing]]&lt;br /&gt;
La [https://learn.sparkfun.com/tutorials/esp32-thing-hookup-guide/all carte Sparkfun esp32 thing] a été retenu en raison de sa communication BLE malgré sa grande taille comparé à la [https://www.pjrc.com/teensy/ carte Arduino Teensy].&lt;br /&gt;
&lt;br /&gt;
Cette carte est alimentée via une batterie de 3.6V et 600mAh.&lt;br /&gt;
&lt;br /&gt;
La carte de contrôle et l'appareil de mesure communiquent ensemble par communication I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Appareil de mesure ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pololu_flo.jpg|vignette|Gyromètre retenu : Pololu AltMU-10 v4 (avec ses axes)]]&lt;br /&gt;
Le type de capteur retenu est le gyromètre, il permet de mesurer les accélérations linéaires et angulaires des trois directions de l'espace.&lt;br /&gt;
&lt;br /&gt;
Deux gyromètres sont en compétition, la [https://www.pololu.com/product/2470 Pololu AltMU-10 v4] et le [http://wiki.seeedstudio.com/Grove-IMU_10DOF/ Grove IMU 10DOF v1.1]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Critères de choix retenus (triés par ordre d'importance):&lt;br /&gt;
# la fiabilité du capteur (absence de valeurs aberrantes)&lt;br /&gt;
# la taille (il doit être facile à intégrer sur la baguette)&lt;br /&gt;
# la facilité de programmation &lt;br /&gt;
# la précision (dans le cas où la vitesse de la baguette serve au pilotage du robot)&lt;br /&gt;
&lt;br /&gt;
Finalement c'est le Pololu qui a été retenu en raison de sa très petite taille par rapport au capteur Grove.&lt;br /&gt;
&lt;br /&gt;
=== Bouton poussoir ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Bp_flo.jpg|vignette|Bouton poussoir retenu]]&lt;br /&gt;
Nous avons fait le choix d'ajouter un bouton poussoir sur notre baguette pour que celle-ci sache quand est-ce que nous voulons envoyer des ordres ou pas. Ce qui permettra à l'utilisateur de pouvoir garder la baguette en main sans devoir faire attention à ses mouvements ou sans devoir éteindre la baguette lorsque nous ne voulons pas envoyer d'ordre. &lt;br /&gt;
&lt;br /&gt;
Ce bouton nous permettra également de déterminer dans quel mode nous voulons guider le robot maître (qui sera expliqué plus bas).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Vibreur ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Vibro.jpg|vignette|Vibro-moteur retenu : grove vibro moteur 1.3]]&lt;br /&gt;
Un vibreur a été ajouté à la baguette pour avoir un retour sur le bon envoie de l'instruction. Attention, la vibration est seulement ici pour dire qu'une instruction a été envoyée avec succès et non pas pour notifier sa bonne réception sur le robot maître. Par conséquent, il se peut que la baguette vibre sans pour autant que le robot maître interprète correctement les ordres et les réalise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ruban de led ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ruban_flo.jpg|vignette|Ruban de leds retenu :  NeoPixel ADA1507 RGB 1m 144 leds]]&lt;br /&gt;
Un [https://www.adafruit.com/product/1506 ruban de LED] est enroulé autour de la baguette pour coller au mieux au coté ludique des robots.&lt;br /&gt;
&lt;br /&gt;
Ses fonctionnalités sont :&lt;br /&gt;
&lt;br /&gt;
Dans le mode manuel :&lt;br /&gt;
&lt;br /&gt;
*Prendre une couleur différente pour chaque ordre&lt;br /&gt;
*Plus l'ordre est maintenu plus le nombre de led illuminées augmente&lt;br /&gt;
*Si on envoie un ordre différent, les led &amp;quot;redescendent&amp;quot; rapidement avant de &amp;quot;remonter&amp;quot; dans une autre couleur&lt;br /&gt;
*Si le bouton est relâché les led &amp;quot;redescendent&amp;quot; et sont par conséquent toutes éteintes.&lt;br /&gt;
&lt;br /&gt;
Dans le mode automatique :&lt;br /&gt;
&lt;br /&gt;
*Eclairage en arc-en-ciel pour la chorégraphie 1&lt;br /&gt;
*Eclairage fluide avec des changements de couleur pour la chorégraphie 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La bande de led est alimentée via une batterie de 5V différente de la batterie alimentant l'ESP32.&lt;br /&gt;
&lt;br /&gt;
== Les différents modes ==&lt;br /&gt;
&lt;br /&gt;
=== Mode manuel ===&lt;br /&gt;
&lt;br /&gt;
Ce mode permet de synchroniser les robots aux mouvements de la baguette. C'est le mode utilisé par défaut lorsqu'on alimente la baguette.&lt;br /&gt;
&lt;br /&gt;
La liste des ordres est la suivante (s'enclenche en maintenant appuyé le bouton poussoir pendant l'action en cours)  :&lt;br /&gt;
*Coup vers l'avant: fait avancer le robot&lt;br /&gt;
*Coup vers l'arrière: fait reculer le robot&lt;br /&gt;
*Coup vers la droite: fait aller le robot vers la droite&lt;br /&gt;
*Coup vers la gauche: fait aller le robot vers la gauche&lt;br /&gt;
*Rotation droite: fait tourner le robot dans le sens horaire&lt;br /&gt;
*Rotation gauche: fait tourner le robot dans le sens trigonométrique&lt;br /&gt;
&lt;br /&gt;
Une fois que le bouton poussoir est relâché, cela sera interpréter comme un stop et les robots devront s'arrêter.&lt;br /&gt;
&lt;br /&gt;
=== Mode automatique ===&lt;br /&gt;
&lt;br /&gt;
Ce mode permet de lancer une chorégraphie sans tenir compte des mouvements de la baguette. Celui-ci est activé à l'aide d'une combinaison de mouvements et d'appuis sur le bouton poussoir.&lt;br /&gt;
&lt;br /&gt;
Nous avons la possibilité de lancer deux chorégraphies au choix :&lt;br /&gt;
*Chorégraphie 1 : Coup vers la gauche de la baguette + appui court sur le BP&lt;br /&gt;
*Chorégraphie 2 : Coup vers la droite de la baguette + appui court sur le BP&lt;br /&gt;
&lt;br /&gt;
Afin d'éviter qu'une chorégraphie se répète en boucle, un simple appui sur le bouton poussoir arrêtera la chorégraphie une fois celle-ci terminée.&lt;br /&gt;
&lt;br /&gt;
Pour les deux chorégraphies, le robot maître lancera une musique en même temps (voir plus bas).&lt;br /&gt;
&lt;br /&gt;
== Rendu final de la baguette magique ==&lt;br /&gt;
&lt;br /&gt;
=== Conception ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Solid.jpg|800px|La baguette modélisée sous Solid]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La baguette a été modélisée sur SolidWorks puis imprimée en 3D.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fabrication/Assemblage ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Baguette1.jpg|800px|La baguette vue en coupe avec les composants]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Baguette2.jpg|800px|La baguette]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne les différents programmes (tests + final) et les schémas de câblage, se rendre sur : [[https://ujm.webgroup.fr/index.php?title=Robots_danseurs_technique Documentation technique]]&lt;br /&gt;
&lt;br /&gt;
= Le Robot-Maître =&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Robot maitre.jpg|vignette|Photo du robot-maître]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: [http://www.kysanelectronics.com/graphics/RK-370CA.pdf Mabuchi rk-370-CA]&lt;br /&gt;
*Carte de contrôle: Arduino Teensy et Sparkfun esp32 communicant ensemble par UART&lt;br /&gt;
*Interface de puissance: [https://ujm.webgroup.fr/images/7/7a/PCB_Robot4Voies.pdf Carte fournie par TSE]&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
*Régulateur de tension : Traco Power&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
Le code des robots sera séparé en trois parties distinctes : &lt;br /&gt;
*la commande du robot&lt;br /&gt;
*la communication&lt;br /&gt;
&lt;br /&gt;
Des interruptions sont utilisées par le programme pour récupérer les informations générées par les roues codeuse afin de soulager le processeur.&lt;br /&gt;
&lt;br /&gt;
=== La commande du robot ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Communication.png|vignette|droite|Schéma de communication global]]&lt;br /&gt;
&lt;br /&gt;
Les moteurs sont pilotés via différentes fonctions:&lt;br /&gt;
*Avancer&lt;br /&gt;
*Reculer&lt;br /&gt;
*Aller à droite&lt;br /&gt;
*Aller à gauche&lt;br /&gt;
*Aller en biais en haut à droite&lt;br /&gt;
*Aller en biais en haut à gauche&lt;br /&gt;
*Aller en biais en bas à droite&lt;br /&gt;
*Aller en biais en bas à gauche&lt;br /&gt;
*Rotation dans le sens trigonométrique&lt;br /&gt;
*Rotation dans le sens anti trigonométrique&lt;br /&gt;
&lt;br /&gt;
=== La communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le robot-maître reçoit ses ordres de la baguette par bluetooth.&lt;br /&gt;
&lt;br /&gt;
La communication avec les robot-esclaves se fait via une communication Wi-Fi, le robot-maître crée un serveur auquel se connecte les robot-esclaves pour récupérer leurs ordres.&lt;br /&gt;
&lt;br /&gt;
= Les Robot-Esclaves =&lt;br /&gt;
[[Fichier:Robot esclave.jpg|vignette|droite|Photo d'un des robot-esclaves]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: Hennkwell HG37D670WE12-052&lt;br /&gt;
*Carte de contrôle: Arduino Teensy&lt;br /&gt;
*Interface de puissance: Carte fournie par TSE&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Les robot-esclaves reçoivent exactement les mêmes ordres que ceux reçu par le robot-maître étant donné que le programme est le même pour les 3 robots.&lt;br /&gt;
&lt;br /&gt;
= Amélioration à apporter =&lt;br /&gt;
&lt;br /&gt;
== La baguette ==&lt;br /&gt;
&lt;br /&gt;
- Trouver un moyen plus optimal d'acquérir les mouvements pour effectuer des gestes plus souples (avoir un meilleur algorithme ou mieux exploiter le capteur en jouant sur l'accéléromètre et le gyroscope).&lt;br /&gt;
&lt;br /&gt;
- Utiliser les 2 cœurs présents sur l'ESP32 pour contrôler d'un côté les jeux de lumières et de l'autre, la gestion d'acquisition, traitement de données, envoie BLE et vibration de la baguette. Cette optimisation permettrait d'avoir un algorithme plus soigné.&lt;br /&gt;
&lt;br /&gt;
- Avoir un feedback visuel au niveau de la télécommande sur les instructions envoyées par la baguette. Exemple : écran LCD qui afficherait les instructions envoyées par BLE.&lt;br /&gt;
&lt;br /&gt;
- Trouver le moyen d'allumer ou éteindre facilement la baguette. Egalement penser à avoir un voyant pour savoir dans quel état est la baguette (on ou off).&lt;br /&gt;
&lt;br /&gt;
- Réduire le temps de latence entre l'envoie des mouvements baguette et l'exécution des mouvements du robot maître.&lt;br /&gt;
&lt;br /&gt;
- Optimiser l'algorithme pour activer le mode automatique ou manuel. En effet, la baguette bascule en mode manuel qu'au bout d'1s environ après appuie et maintien du bouton. Ce qui empêche toute acquisition durant cette temporisation (ne dérange pas dans l'utilisation mais requiert tout de même une optimisation).&lt;br /&gt;
&lt;br /&gt;
- Réduire l'épaisseur de la baguette et l'allonger pour correspondre au mieux au design d'une baguette.&lt;br /&gt;
&lt;br /&gt;
== Robot maître ou esclave et communication ==&lt;br /&gt;
&lt;br /&gt;
- Réduire le nombre des batteries sur les robots (maître et esclave).&lt;br /&gt;
&lt;br /&gt;
- Améliorer l'asservissement des robots.&lt;br /&gt;
&lt;br /&gt;
- Améliorer le mode automatique en implémentant des chorégraphies qui vont avec les musiques.&lt;br /&gt;
&lt;br /&gt;
- Améliorer l'algorithme de mode automatique pour pouvoir interrompre le robot au milieu de sa chorégraphie (à l'heure actuel, le robot termine sa chorégraphie et s'arrête seulement s'il a reçu l'ordre STOP, sinon il continue de danser).&lt;br /&gt;
&lt;br /&gt;
- Mieux gérer le système de musique pour qu'elle se joue que pendant le chorégraphie.&lt;br /&gt;
&lt;br /&gt;
- Implémenter une fonction de &amp;quot;calibrage&amp;quot; qui mettrait le maître dans une certaine position et les esclaves derrière lui (formant ainsi un triangle par exemple). Cette fonction configurera les robots de manière &amp;quot;orchestré&amp;quot; qui permettra un contrôle du robot maître et de ses esclaves cohérent.&lt;br /&gt;
&lt;br /&gt;
- Calibrer les vitesses des robots pour qu'elles soient compatibles lors de leur contrôle.&lt;br /&gt;
&lt;br /&gt;
- Avoir le même nombre de roues motrices sur chaque robot. On a rencontré un problème sur les robots esclaves qui n'ont pas le même comportement que le robot maître pour certaines directions (dû au nombre de roues motrices).&lt;br /&gt;
&lt;br /&gt;
- Réduire le temps de latence de l'envoie des mouvements du robot maître au robot esclave pour plus de cohérence.&lt;br /&gt;
&lt;br /&gt;
= Références externes =&lt;br /&gt;
&lt;br /&gt;
[[https://ujm.webgroup.fr/index.php?title=Robots_danseurs_technique Documentation technique]]&lt;/div&gt;</summary>
		<author><name>Lo.brandon</name></author>
		
	</entry>
	<entry>
		<id>https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10417</id>
		<title>Robots danseurs</title>
		<link rel="alternate" type="text/html" href="https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10417"/>
		<updated>2019-05-23T15:41:56Z</updated>

		<summary type="html">&lt;p&gt;Lo.brandon : /* Amélioration à apporter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projet du module Robots Communicants de Telecom Saint-Etienne 2018/2019.&amp;lt;br /&amp;gt;&lt;br /&gt;
= Sujet =&lt;br /&gt;
L'utilisateur doit pouvoir commander un robot &amp;quot;maître&amp;quot; à distance au moyen d'une baguette. Deux robots esclaves doivent, en temps réel, imiter les mouvements du maître.&lt;br /&gt;
&lt;br /&gt;
= Objectif du projet =&lt;br /&gt;
&lt;br /&gt;
Créer une &amp;quot;baguette magique&amp;quot; permettant de donner des ordres de façon fluide et intuitive à un robot-maître qui doit ensuite transmettre les ordres qu'il reçoit à un couple de robot-esclaves&lt;br /&gt;
&lt;br /&gt;
== Diagrammes fonctionnels ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe1.png|thumb|center|Diagramme fonctionnel d'odre 1]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe_2t.png|800px|thumb|center|Diagramme fonctionnel d'odre 2]]&lt;br /&gt;
&lt;br /&gt;
== Spécifications fonctionnelles ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Spécifications fonctionnelles&lt;br /&gt;
|-&lt;br /&gt;
|Fonction principale&lt;br /&gt;
|Diriger des robots avec une baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 1&lt;br /&gt;
|Établir une communication entre les robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 2&lt;br /&gt;
|Empêcher les ordres non voulus&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 3&lt;br /&gt;
|Implémenter un feedback physique à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 4&lt;br /&gt;
|Implémenter un feedback lumineux à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 5&lt;br /&gt;
|Implémenter un feedback lumineux aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 6&lt;br /&gt;
|Implémenter un feedback sonore aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 7&lt;br /&gt;
|Créer des chorégraphies&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= La Baguette =&lt;br /&gt;
&lt;br /&gt;
La baguette sert à contrôler le robot maître par le biais de ses mouvements.&lt;br /&gt;
&lt;br /&gt;
Elle doit donc pouvoir:&lt;br /&gt;
*Mesurer les amplitudes et directions de ses accélérations linéaire et rotative&lt;br /&gt;
*Traiter l'information pour en faire des ordres compréhensible par le robot-maître &lt;br /&gt;
*Pouvoir communiquer avec le robot-maître via le protocole BLE&lt;br /&gt;
*Donner un feedback physique à l'aide d'un vibro-moteur placé au niveau de la poignée de la baguette&lt;br /&gt;
*Donner un feedback visuel à l'aide d'un ruban de LEDS fixé sur la baguette&lt;br /&gt;
&lt;br /&gt;
== Composants électroniques utilisés ==&lt;br /&gt;
&lt;br /&gt;
=== Carte de contrôle ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Esp.jpg|vignette|ESP32 Thing]]&lt;br /&gt;
La [https://learn.sparkfun.com/tutorials/esp32-thing-hookup-guide/all carte Sparkfun esp32 thing] a été retenu en raison de sa communication BLE malgré sa grande taille comparé à la [https://www.pjrc.com/teensy/ carte Arduino Teensy].&lt;br /&gt;
&lt;br /&gt;
Cette carte est alimentée via une batterie de 3.6V et 600mAh.&lt;br /&gt;
&lt;br /&gt;
La carte de contrôle et l'appareil de mesure communiquent ensemble par communication I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Appareil de mesure ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pololu_flo.jpg|vignette|Gyromètre retenu : Pololu AltMU-10 v4 (avec ses axes)]]&lt;br /&gt;
Le type de capteur retenu est le gyromètre, il permet de mesurer les accélérations linéaires et angulaires des trois directions de l'espace.&lt;br /&gt;
&lt;br /&gt;
Deux gyromètres sont en compétition, la [https://www.pololu.com/product/2470 Pololu AltMU-10 v4] et le [http://wiki.seeedstudio.com/Grove-IMU_10DOF/ Grove IMU 10DOF v1.1]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Critères de choix retenus (triés par ordre d'importance):&lt;br /&gt;
# la fiabilité du capteur (absence de valeurs aberrantes)&lt;br /&gt;
# la taille (il doit être facile à intégrer sur la baguette)&lt;br /&gt;
# la facilité de programmation &lt;br /&gt;
# la précision (dans le cas où la vitesse de la baguette serve au pilotage du robot)&lt;br /&gt;
&lt;br /&gt;
Finalement c'est le Pololu qui a été retenu en raison de sa très petite taille par rapport au capteur Grove.&lt;br /&gt;
&lt;br /&gt;
=== Bouton poussoir ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Bp_flo.jpg|vignette|Bouton poussoir retenu]]&lt;br /&gt;
Nous avons fait le choix d'ajouter un bouton poussoir sur notre baguette pour que celle-ci sache quand est-ce que nous voulons envoyer des ordres ou pas. Ce qui permettra à l'utilisateur de pouvoir garder la baguette en main sans devoir faire attention à ses mouvements ou sans devoir éteindre la baguette lorsque nous ne voulons pas envoyer d'ordre. &lt;br /&gt;
&lt;br /&gt;
Ce bouton nous permettra également de déterminer dans quel mode nous voulons guider le robot maître (qui sera expliqué plus bas).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Vibreur ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Vibro.jpg|vignette|Vibro-moteur retenu : grove vibro moteur 1.3]]&lt;br /&gt;
Un vibreur a été ajouté à la baguette pour avoir un retour sur le bon envoie de l'instruction. Attention, la vibration est seulement ici pour dire qu'une instruction a été envoyée avec succès et non pas pour notifier sa bonne réception sur le robot maître. Par conséquent, il se peut que la baguette vibre sans pour autant que le robot maître interprète correctement les ordres et les réalise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ruban de led ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ruban_flo.jpg|vignette|Ruban de leds retenu :  NeoPixel ADA1507 RGB 1m 144 leds]]&lt;br /&gt;
Un [https://www.adafruit.com/product/1506 ruban de LED] est enroulé autour de la baguette pour coller au mieux au coté ludique des robots.&lt;br /&gt;
&lt;br /&gt;
Ses fonctionnalités sont :&lt;br /&gt;
&lt;br /&gt;
Dans le mode manuel :&lt;br /&gt;
&lt;br /&gt;
*Prendre une couleur différente pour chaque ordre&lt;br /&gt;
*Plus l'ordre est maintenu plus le nombre de led illuminées augmente&lt;br /&gt;
*Si on envoie un ordre différent, les led &amp;quot;redescendent&amp;quot; rapidement avant de &amp;quot;remonter&amp;quot; dans une autre couleur&lt;br /&gt;
*Si le bouton est relâché les led &amp;quot;redescendent&amp;quot; et sont par conséquent toutes éteintes.&lt;br /&gt;
&lt;br /&gt;
Dans le mode automatique :&lt;br /&gt;
&lt;br /&gt;
*Eclairage en arc-en-ciel pour la chorégraphie 1&lt;br /&gt;
*Eclairage fluide avec des changements de couleur pour la chorégraphie 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La bande de led est alimentée via une batterie de 5V différente de la batterie alimentant l'ESP32.&lt;br /&gt;
&lt;br /&gt;
== Les différents modes ==&lt;br /&gt;
&lt;br /&gt;
=== Mode manuel ===&lt;br /&gt;
&lt;br /&gt;
Ce mode permet de synchroniser les robots aux mouvements de la baguette. C'est le mode utilisé par défaut lorsqu'on alimente la baguette.&lt;br /&gt;
&lt;br /&gt;
La liste des ordres est la suivante (s'enclenche en maintenant appuyé le bouton poussoir pendant l'action en cours)  :&lt;br /&gt;
*Coup vers l'avant: fait avancer le robot&lt;br /&gt;
*Coup vers l'arrière: fait reculer le robot&lt;br /&gt;
*Coup vers la droite: fait aller le robot vers la droite&lt;br /&gt;
*Coup vers la gauche: fait aller le robot vers la gauche&lt;br /&gt;
*Rotation droite: fait tourner le robot dans le sens horaire&lt;br /&gt;
*Rotation gauche: fait tourner le robot dans le sens trigonométrique&lt;br /&gt;
&lt;br /&gt;
Une fois que le bouton poussoir est relâché, cela sera interpréter comme un stop et les robots devront s'arrêter.&lt;br /&gt;
&lt;br /&gt;
=== Mode automatique ===&lt;br /&gt;
&lt;br /&gt;
Ce mode permet de lancer une chorégraphie sans tenir compte des mouvements de la baguette. Celui-ci est activé à l'aide d'une combinaison de mouvements et d'appuis sur le bouton poussoir.&lt;br /&gt;
&lt;br /&gt;
Nous avons la possibilité de lancer deux chorégraphies au choix :&lt;br /&gt;
*Chorégraphie 1 : Coup vers la gauche de la baguette + appui court sur le BP&lt;br /&gt;
*Chorégraphie 2 : Coup vers la droite de la baguette + appui court sur le BP&lt;br /&gt;
&lt;br /&gt;
Afin d'éviter qu'une chorégraphie se répète en boucle, un simple appui sur le bouton poussoir arrêtera la chorégraphie une fois celle-ci terminée.&lt;br /&gt;
&lt;br /&gt;
Pour les deux chorégraphies, le robot maître lancera une musique en même temps (voir plus bas).&lt;br /&gt;
&lt;br /&gt;
== Rendu final de la baguette magique ==&lt;br /&gt;
&lt;br /&gt;
=== Conception ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Solid.jpg|800px|La baguette modélisée sous Solid]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La baguette a été modélisée sur SolidWorks puis imprimée en 3D.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fabrication/Assemblage ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Baguette1.jpg|800px|La baguette vue en coupe avec les composants]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Baguette2.jpg|800px|La baguette]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne les différents programmes (tests + final) et les schémas de câblage, se rendre sur : [[https://ujm.webgroup.fr/index.php?title=Robots_danseurs_technique Documentation technique]]&lt;br /&gt;
&lt;br /&gt;
= Le Robot-Maître =&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Robot maitre.jpg|vignette|Photo du robot-maître]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: [http://www.kysanelectronics.com/graphics/RK-370CA.pdf Mabuchi rk-370-CA]&lt;br /&gt;
*Carte de contrôle: Arduino Teensy et Sparkfun esp32 communicant ensemble par UART&lt;br /&gt;
*Interface de puissance: [https://ujm.webgroup.fr/images/7/7a/PCB_Robot4Voies.pdf Carte fournie par TSE]&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
*Régulateur de tension : Traco Power&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
Le code des robots sera séparé en trois parties distinctes : &lt;br /&gt;
*la commande du robot&lt;br /&gt;
*la communication&lt;br /&gt;
&lt;br /&gt;
Des interruptions sont utilisées par le programme pour récupérer les informations générées par les roues codeuse afin de soulager le processeur.&lt;br /&gt;
&lt;br /&gt;
=== La commande du robot ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Communication.png|vignette|droite|Schéma de communication global]]&lt;br /&gt;
&lt;br /&gt;
Les moteurs sont pilotés via différentes fonctions:&lt;br /&gt;
*Avancer&lt;br /&gt;
*Reculer&lt;br /&gt;
*Aller à droite&lt;br /&gt;
*Aller à gauche&lt;br /&gt;
*Aller en biais en haut à droite&lt;br /&gt;
*Aller en biais en haut à gauche&lt;br /&gt;
*Aller en biais en bas à droite&lt;br /&gt;
*Aller en biais en bas à gauche&lt;br /&gt;
*Rotation dans le sens trigonométrique&lt;br /&gt;
*Rotation dans le sens anti trigonométrique&lt;br /&gt;
&lt;br /&gt;
=== La communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le robot-maître reçoit ses ordres de la baguette par bluetooth.&lt;br /&gt;
&lt;br /&gt;
La communication avec les robot-esclaves se fait via une communication Wi-Fi, le robot-maître crée un serveur auquel se connecte les robot-esclaves pour récupérer leurs ordres.&lt;br /&gt;
&lt;br /&gt;
= Les Robot-Esclaves =&lt;br /&gt;
[[Fichier:Robot esclave.jpg|vignette|droite|Photo d'un des robot-esclaves]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: Hennkwell HG37D670WE12-052&lt;br /&gt;
*Carte de contrôle: Arduino Teensy&lt;br /&gt;
*Interface de puissance: Carte fournie par TSE&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Les robot-esclaves reçoivent exactement les mêmes ordres que ceux reçu par le robot-maître étant donné que le programme est le même pour les 3 robots.&lt;br /&gt;
&lt;br /&gt;
= Amélioration à apporter =&lt;br /&gt;
&lt;br /&gt;
- Trouver un moyen plus optimal d'acquérir les mouvements pour effectuer des gestes plus souples (avoir un meilleur algorithme ou mieux exploiter le capteur en jouant sur l'accéléromètre et le gyroscope).&lt;br /&gt;
&lt;br /&gt;
- Utiliser les 2 cœurs présents sur l'ESP32 pour contrôler d'un côté les jeux de lumières et de l'autre, la gestion d'acquisition, traitement de données, envoie BLE et vibration de la baguette.&lt;br /&gt;
&lt;br /&gt;
- Avoir un feedback visuel au niveau de la télécommande sur les instructions envoyées par la baguette. Exemple : écran LCD qui afficherai les instructions envoyées par BLE.&lt;br /&gt;
&lt;br /&gt;
- Réduire le temps de latence entre l'envoie des mouvements baguette et l'exécution des mouvements du robot maître.&lt;br /&gt;
&lt;br /&gt;
- Réduire le temps de latence de l'envoie des mouvements du robot maître au robot esclave.&lt;br /&gt;
&lt;br /&gt;
- Réduire l'épaisseur de la baguette et l'allonger.&lt;br /&gt;
&lt;br /&gt;
- Réduire le nombre des batteries sur les robots (maître et esclave).&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
= Références externes =&lt;br /&gt;
&lt;br /&gt;
[[https://ujm.webgroup.fr/index.php?title=Robots_danseurs_technique Documentation technique]]&lt;/div&gt;</summary>
		<author><name>Lo.brandon</name></author>
		
	</entry>
	<entry>
		<id>https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10416</id>
		<title>Robots danseurs</title>
		<link rel="alternate" type="text/html" href="https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10416"/>
		<updated>2019-05-23T15:39:45Z</updated>

		<summary type="html">&lt;p&gt;Lo.brandon : /* Amélioration à apporter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projet du module Robots Communicants de Telecom Saint-Etienne 2018/2019.&amp;lt;br /&amp;gt;&lt;br /&gt;
= Sujet =&lt;br /&gt;
L'utilisateur doit pouvoir commander un robot &amp;quot;maître&amp;quot; à distance au moyen d'une baguette. Deux robots esclaves doivent, en temps réel, imiter les mouvements du maître.&lt;br /&gt;
&lt;br /&gt;
= Objectif du projet =&lt;br /&gt;
&lt;br /&gt;
Créer une &amp;quot;baguette magique&amp;quot; permettant de donner des ordres de façon fluide et intuitive à un robot-maître qui doit ensuite transmettre les ordres qu'il reçoit à un couple de robot-esclaves&lt;br /&gt;
&lt;br /&gt;
== Diagrammes fonctionnels ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe1.png|thumb|center|Diagramme fonctionnel d'odre 1]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe_2t.png|800px|thumb|center|Diagramme fonctionnel d'odre 2]]&lt;br /&gt;
&lt;br /&gt;
== Spécifications fonctionnelles ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Spécifications fonctionnelles&lt;br /&gt;
|-&lt;br /&gt;
|Fonction principale&lt;br /&gt;
|Diriger des robots avec une baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 1&lt;br /&gt;
|Établir une communication entre les robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 2&lt;br /&gt;
|Empêcher les ordres non voulus&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 3&lt;br /&gt;
|Implémenter un feedback physique à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 4&lt;br /&gt;
|Implémenter un feedback lumineux à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 5&lt;br /&gt;
|Implémenter un feedback lumineux aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 6&lt;br /&gt;
|Implémenter un feedback sonore aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 7&lt;br /&gt;
|Créer des chorégraphies&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= La Baguette =&lt;br /&gt;
&lt;br /&gt;
La baguette sert à contrôler le robot maître par le biais de ses mouvements.&lt;br /&gt;
&lt;br /&gt;
Elle doit donc pouvoir:&lt;br /&gt;
*Mesurer les amplitudes et directions de ses accélérations linéaire et rotative&lt;br /&gt;
*Traiter l'information pour en faire des ordres compréhensible par le robot-maître &lt;br /&gt;
*Pouvoir communiquer avec le robot-maître via le protocole BLE&lt;br /&gt;
*Donner un feedback physique à l'aide d'un vibro-moteur placé au niveau de la poignée de la baguette&lt;br /&gt;
*Donner un feedback visuel à l'aide d'un ruban de LEDS fixé sur la baguette&lt;br /&gt;
&lt;br /&gt;
== Composants électroniques utilisés ==&lt;br /&gt;
&lt;br /&gt;
=== Carte de contrôle ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Esp.jpg|vignette|ESP32 Thing]]&lt;br /&gt;
La [https://learn.sparkfun.com/tutorials/esp32-thing-hookup-guide/all carte Sparkfun esp32 thing] a été retenu en raison de sa communication BLE malgré sa grande taille comparé à la [https://www.pjrc.com/teensy/ carte Arduino Teensy].&lt;br /&gt;
&lt;br /&gt;
Cette carte est alimentée via une batterie de 3.6V et 600mAh.&lt;br /&gt;
&lt;br /&gt;
La carte de contrôle et l'appareil de mesure communiquent ensemble par communication I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Appareil de mesure ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pololu_flo.jpg|vignette|Gyromètre retenu : Pololu AltMU-10 v4 (avec ses axes)]]&lt;br /&gt;
Le type de capteur retenu est le gyromètre, il permet de mesurer les accélérations linéaires et angulaires des trois directions de l'espace.&lt;br /&gt;
&lt;br /&gt;
Deux gyromètres sont en compétition, la [https://www.pololu.com/product/2470 Pololu AltMU-10 v4] et le [http://wiki.seeedstudio.com/Grove-IMU_10DOF/ Grove IMU 10DOF v1.1]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Critères de choix retenus (triés par ordre d'importance):&lt;br /&gt;
# la fiabilité du capteur (absence de valeurs aberrantes)&lt;br /&gt;
# la taille (il doit être facile à intégrer sur la baguette)&lt;br /&gt;
# la facilité de programmation &lt;br /&gt;
# la précision (dans le cas où la vitesse de la baguette serve au pilotage du robot)&lt;br /&gt;
&lt;br /&gt;
Finalement c'est le Pololu qui a été retenu en raison de sa très petite taille par rapport au capteur Grove.&lt;br /&gt;
&lt;br /&gt;
=== Bouton poussoir ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Bp_flo.jpg|vignette|Bouton poussoir retenu]]&lt;br /&gt;
Nous avons fait le choix d'ajouter un bouton poussoir sur notre baguette pour que celle-ci sache quand est-ce que nous voulons envoyer des ordres ou pas. Ce qui permettra à l'utilisateur de pouvoir garder la baguette en main sans devoir faire attention à ses mouvements ou sans devoir éteindre la baguette lorsque nous ne voulons pas envoyer d'ordre. &lt;br /&gt;
&lt;br /&gt;
Ce bouton nous permettra également de déterminer dans quel mode nous voulons guider le robot maître (qui sera expliqué plus bas).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Vibreur ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Vibro.jpg|vignette|Vibro-moteur retenu : grove vibro moteur 1.3]]&lt;br /&gt;
Un vibreur a été ajouté à la baguette pour avoir un retour sur le bon envoie de l'instruction. Attention, la vibration est seulement ici pour dire qu'une instruction a été envoyée avec succès et non pas pour notifier sa bonne réception sur le robot maître. Par conséquent, il se peut que la baguette vibre sans pour autant que le robot maître interprète correctement les ordres et les réalise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ruban de led ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ruban_flo.jpg|vignette|Ruban de leds retenu :  NeoPixel ADA1507 RGB 1m 144 leds]]&lt;br /&gt;
Un [https://www.adafruit.com/product/1506 ruban de LED] est enroulé autour de la baguette pour coller au mieux au coté ludique des robots.&lt;br /&gt;
&lt;br /&gt;
Ses fonctionnalités sont :&lt;br /&gt;
&lt;br /&gt;
Dans le mode manuel :&lt;br /&gt;
&lt;br /&gt;
*Prendre une couleur différente pour chaque ordre&lt;br /&gt;
*Plus l'ordre est maintenu plus le nombre de led illuminées augmente&lt;br /&gt;
*Si on envoie un ordre différent, les led &amp;quot;redescendent&amp;quot; rapidement avant de &amp;quot;remonter&amp;quot; dans une autre couleur&lt;br /&gt;
*Si le bouton est relâché les led &amp;quot;redescendent&amp;quot; et sont par conséquent toutes éteintes.&lt;br /&gt;
&lt;br /&gt;
Dans le mode automatique :&lt;br /&gt;
&lt;br /&gt;
*Eclairage en arc-en-ciel pour la chorégraphie 1&lt;br /&gt;
*Eclairage fluide avec des changements de couleur pour la chorégraphie 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La bande de led est alimentée via une batterie de 5V différente de la batterie alimentant l'ESP32.&lt;br /&gt;
&lt;br /&gt;
== Les différents modes ==&lt;br /&gt;
&lt;br /&gt;
=== Mode manuel ===&lt;br /&gt;
&lt;br /&gt;
Ce mode permet de synchroniser les robots aux mouvements de la baguette. C'est le mode utilisé par défaut lorsqu'on alimente la baguette.&lt;br /&gt;
&lt;br /&gt;
La liste des ordres est la suivante (s'enclenche en maintenant appuyé le bouton poussoir pendant l'action en cours)  :&lt;br /&gt;
*Coup vers l'avant: fait avancer le robot&lt;br /&gt;
*Coup vers l'arrière: fait reculer le robot&lt;br /&gt;
*Coup vers la droite: fait aller le robot vers la droite&lt;br /&gt;
*Coup vers la gauche: fait aller le robot vers la gauche&lt;br /&gt;
*Rotation droite: fait tourner le robot dans le sens horaire&lt;br /&gt;
*Rotation gauche: fait tourner le robot dans le sens trigonométrique&lt;br /&gt;
&lt;br /&gt;
Une fois que le bouton poussoir est relâché, cela sera interpréter comme un stop et les robots devront s'arrêter.&lt;br /&gt;
&lt;br /&gt;
=== Mode automatique ===&lt;br /&gt;
&lt;br /&gt;
Ce mode permet de lancer une chorégraphie sans tenir compte des mouvements de la baguette. Celui-ci est activé à l'aide d'une combinaison de mouvements et d'appuis sur le bouton poussoir.&lt;br /&gt;
&lt;br /&gt;
Nous avons la possibilité de lancer deux chorégraphies au choix :&lt;br /&gt;
*Chorégraphie 1 : Coup vers la gauche de la baguette + appui court sur le BP&lt;br /&gt;
*Chorégraphie 2 : Coup vers la droite de la baguette + appui court sur le BP&lt;br /&gt;
&lt;br /&gt;
Afin d'éviter qu'une chorégraphie se répète en boucle, un simple appui sur le bouton poussoir arrêtera la chorégraphie une fois celle-ci terminée.&lt;br /&gt;
&lt;br /&gt;
Pour les deux chorégraphies, le robot maître lancera une musique en même temps (voir plus bas).&lt;br /&gt;
&lt;br /&gt;
== Rendu final de la baguette magique ==&lt;br /&gt;
&lt;br /&gt;
=== Conception ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Solid.jpg|800px|La baguette modélisée sous Solid]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La baguette a été modélisée sur SolidWorks puis imprimée en 3D.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fabrication/Assemblage ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Baguette1.jpg|800px|La baguette vue en coupe avec les composants]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Baguette2.jpg|800px|La baguette]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne les différents programmes (tests + final) et les schémas de câblage, se rendre sur : [[https://ujm.webgroup.fr/index.php?title=Robots_danseurs_technique Documentation technique]]&lt;br /&gt;
&lt;br /&gt;
= Le Robot-Maître =&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Robot maitre.jpg|vignette|Photo du robot-maître]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: [http://www.kysanelectronics.com/graphics/RK-370CA.pdf Mabuchi rk-370-CA]&lt;br /&gt;
*Carte de contrôle: Arduino Teensy et Sparkfun esp32 communicant ensemble par UART&lt;br /&gt;
*Interface de puissance: [https://ujm.webgroup.fr/images/7/7a/PCB_Robot4Voies.pdf Carte fournie par TSE]&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
*Régulateur de tension : Traco Power&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
Le code des robots sera séparé en trois parties distinctes : &lt;br /&gt;
*la commande du robot&lt;br /&gt;
*la communication&lt;br /&gt;
&lt;br /&gt;
Des interruptions sont utilisées par le programme pour récupérer les informations générées par les roues codeuse afin de soulager le processeur.&lt;br /&gt;
&lt;br /&gt;
=== La commande du robot ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Communication.png|vignette|droite|Schéma de communication global]]&lt;br /&gt;
&lt;br /&gt;
Les moteurs sont pilotés via différentes fonctions:&lt;br /&gt;
*Avancer&lt;br /&gt;
*Reculer&lt;br /&gt;
*Aller à droite&lt;br /&gt;
*Aller à gauche&lt;br /&gt;
*Aller en biais en haut à droite&lt;br /&gt;
*Aller en biais en haut à gauche&lt;br /&gt;
*Aller en biais en bas à droite&lt;br /&gt;
*Aller en biais en bas à gauche&lt;br /&gt;
*Rotation dans le sens trigonométrique&lt;br /&gt;
*Rotation dans le sens anti trigonométrique&lt;br /&gt;
&lt;br /&gt;
=== La communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le robot-maître reçoit ses ordres de la baguette par bluetooth.&lt;br /&gt;
&lt;br /&gt;
La communication avec les robot-esclaves se fait via une communication Wi-Fi, le robot-maître crée un serveur auquel se connecte les robot-esclaves pour récupérer leurs ordres.&lt;br /&gt;
&lt;br /&gt;
= Les Robot-Esclaves =&lt;br /&gt;
[[Fichier:Robot esclave.jpg|vignette|droite|Photo d'un des robot-esclaves]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: Hennkwell HG37D670WE12-052&lt;br /&gt;
*Carte de contrôle: Arduino Teensy&lt;br /&gt;
*Interface de puissance: Carte fournie par TSE&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Les robot-esclaves reçoivent exactement les mêmes ordres que ceux reçu par le robot-maître étant donné que le programme est le même pour les 3 robots.&lt;br /&gt;
&lt;br /&gt;
= Amélioration à apporter =&lt;br /&gt;
&lt;br /&gt;
- Utiliser les 2 cœurs présents sur l'ESP32 pour contrôler d'un côté les jeux de lumières et de l'autre, la gestion d'acquisition, traitement de données, envoie BLE et vibration de la baguette.&lt;br /&gt;
&lt;br /&gt;
- Avoir un feedback visuel au niveau de la télécommande sur les instructions envoyées par la baguette. Exemple : écran LCD qui afficherai les instructions envoyées par BLE.&lt;br /&gt;
&lt;br /&gt;
- Réduire le temps de latence entre l'envoie des mouvements baguette et l'exécution des mouvements du robot maître.&lt;br /&gt;
&lt;br /&gt;
- Réduire le temps de latence de l'envoie des mouvements du robot maître au robot esclave.&lt;br /&gt;
&lt;br /&gt;
- Réduire l'épaisseur de la baguette et l'allonger.&lt;br /&gt;
&lt;br /&gt;
- Réduire le nombre des batteries sur les robots (maître et esclave).&lt;br /&gt;
&lt;br /&gt;
= Références externes =&lt;br /&gt;
&lt;br /&gt;
[[https://ujm.webgroup.fr/index.php?title=Robots_danseurs_technique Documentation technique]]&lt;/div&gt;</summary>
		<author><name>Lo.brandon</name></author>
		
	</entry>
	<entry>
		<id>https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10415</id>
		<title>Robots danseurs</title>
		<link rel="alternate" type="text/html" href="https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10415"/>
		<updated>2019-05-23T15:39:16Z</updated>

		<summary type="html">&lt;p&gt;Lo.brandon : /* Amélioration à apporter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projet du module Robots Communicants de Telecom Saint-Etienne 2018/2019.&amp;lt;br /&amp;gt;&lt;br /&gt;
= Sujet =&lt;br /&gt;
L'utilisateur doit pouvoir commander un robot &amp;quot;maître&amp;quot; à distance au moyen d'une baguette. Deux robots esclaves doivent, en temps réel, imiter les mouvements du maître.&lt;br /&gt;
&lt;br /&gt;
= Objectif du projet =&lt;br /&gt;
&lt;br /&gt;
Créer une &amp;quot;baguette magique&amp;quot; permettant de donner des ordres de façon fluide et intuitive à un robot-maître qui doit ensuite transmettre les ordres qu'il reçoit à un couple de robot-esclaves&lt;br /&gt;
&lt;br /&gt;
== Diagrammes fonctionnels ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe1.png|thumb|center|Diagramme fonctionnel d'odre 1]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe_2t.png|800px|thumb|center|Diagramme fonctionnel d'odre 2]]&lt;br /&gt;
&lt;br /&gt;
== Spécifications fonctionnelles ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Spécifications fonctionnelles&lt;br /&gt;
|-&lt;br /&gt;
|Fonction principale&lt;br /&gt;
|Diriger des robots avec une baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 1&lt;br /&gt;
|Établir une communication entre les robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 2&lt;br /&gt;
|Empêcher les ordres non voulus&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 3&lt;br /&gt;
|Implémenter un feedback physique à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 4&lt;br /&gt;
|Implémenter un feedback lumineux à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 5&lt;br /&gt;
|Implémenter un feedback lumineux aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 6&lt;br /&gt;
|Implémenter un feedback sonore aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 7&lt;br /&gt;
|Créer des chorégraphies&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= La Baguette =&lt;br /&gt;
&lt;br /&gt;
La baguette sert à contrôler le robot maître par le biais de ses mouvements.&lt;br /&gt;
&lt;br /&gt;
Elle doit donc pouvoir:&lt;br /&gt;
*Mesurer les amplitudes et directions de ses accélérations linéaire et rotative&lt;br /&gt;
*Traiter l'information pour en faire des ordres compréhensible par le robot-maître &lt;br /&gt;
*Pouvoir communiquer avec le robot-maître via le protocole BLE&lt;br /&gt;
*Donner un feedback physique à l'aide d'un vibro-moteur placé au niveau de la poignée de la baguette&lt;br /&gt;
*Donner un feedback visuel à l'aide d'un ruban de LEDS fixé sur la baguette&lt;br /&gt;
&lt;br /&gt;
== Composants électroniques utilisés ==&lt;br /&gt;
&lt;br /&gt;
=== Carte de contrôle ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Esp.jpg|vignette|ESP32 Thing]]&lt;br /&gt;
La [https://learn.sparkfun.com/tutorials/esp32-thing-hookup-guide/all carte Sparkfun esp32 thing] a été retenu en raison de sa communication BLE malgré sa grande taille comparé à la [https://www.pjrc.com/teensy/ carte Arduino Teensy].&lt;br /&gt;
&lt;br /&gt;
Cette carte est alimentée via une batterie de 3.6V et 600mAh.&lt;br /&gt;
&lt;br /&gt;
La carte de contrôle et l'appareil de mesure communiquent ensemble par communication I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Appareil de mesure ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pololu_flo.jpg|vignette|Gyromètre retenu : Pololu AltMU-10 v4 (avec ses axes)]]&lt;br /&gt;
Le type de capteur retenu est le gyromètre, il permet de mesurer les accélérations linéaires et angulaires des trois directions de l'espace.&lt;br /&gt;
&lt;br /&gt;
Deux gyromètres sont en compétition, la [https://www.pololu.com/product/2470 Pololu AltMU-10 v4] et le [http://wiki.seeedstudio.com/Grove-IMU_10DOF/ Grove IMU 10DOF v1.1]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Critères de choix retenus (triés par ordre d'importance):&lt;br /&gt;
# la fiabilité du capteur (absence de valeurs aberrantes)&lt;br /&gt;
# la taille (il doit être facile à intégrer sur la baguette)&lt;br /&gt;
# la facilité de programmation &lt;br /&gt;
# la précision (dans le cas où la vitesse de la baguette serve au pilotage du robot)&lt;br /&gt;
&lt;br /&gt;
Finalement c'est le Pololu qui a été retenu en raison de sa très petite taille par rapport au capteur Grove.&lt;br /&gt;
&lt;br /&gt;
=== Bouton poussoir ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Bp_flo.jpg|vignette|Bouton poussoir retenu]]&lt;br /&gt;
Nous avons fait le choix d'ajouter un bouton poussoir sur notre baguette pour que celle-ci sache quand est-ce que nous voulons envoyer des ordres ou pas. Ce qui permettra à l'utilisateur de pouvoir garder la baguette en main sans devoir faire attention à ses mouvements ou sans devoir éteindre la baguette lorsque nous ne voulons pas envoyer d'ordre. &lt;br /&gt;
&lt;br /&gt;
Ce bouton nous permettra également de déterminer dans quel mode nous voulons guider le robot maître (qui sera expliqué plus bas).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Vibreur ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Vibro.jpg|vignette|Vibro-moteur retenu : grove vibro moteur 1.3]]&lt;br /&gt;
Un vibreur a été ajouté à la baguette pour avoir un retour sur le bon envoie de l'instruction. Attention, la vibration est seulement ici pour dire qu'une instruction a été envoyée avec succès et non pas pour notifier sa bonne réception sur le robot maître. Par conséquent, il se peut que la baguette vibre sans pour autant que le robot maître interprète correctement les ordres et les réalise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ruban de led ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ruban_flo.jpg|vignette|Ruban de leds retenu :  NeoPixel ADA1507 RGB 1m 144 leds]]&lt;br /&gt;
Un [https://www.adafruit.com/product/1506 ruban de LED] est enroulé autour de la baguette pour coller au mieux au coté ludique des robots.&lt;br /&gt;
&lt;br /&gt;
Ses fonctionnalités sont :&lt;br /&gt;
&lt;br /&gt;
Dans le mode manuel :&lt;br /&gt;
&lt;br /&gt;
*Prendre une couleur différente pour chaque ordre&lt;br /&gt;
*Plus l'ordre est maintenu plus le nombre de led illuminées augmente&lt;br /&gt;
*Si on envoie un ordre différent, les led &amp;quot;redescendent&amp;quot; rapidement avant de &amp;quot;remonter&amp;quot; dans une autre couleur&lt;br /&gt;
*Si le bouton est relâché les led &amp;quot;redescendent&amp;quot; et sont par conséquent toutes éteintes.&lt;br /&gt;
&lt;br /&gt;
Dans le mode automatique :&lt;br /&gt;
&lt;br /&gt;
*Eclairage en arc-en-ciel pour la chorégraphie 1&lt;br /&gt;
*Eclairage fluide avec des changements de couleur pour la chorégraphie 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La bande de led est alimentée via une batterie de 5V différente de la batterie alimentant l'ESP32.&lt;br /&gt;
&lt;br /&gt;
== Les différents modes ==&lt;br /&gt;
&lt;br /&gt;
=== Mode manuel ===&lt;br /&gt;
&lt;br /&gt;
Ce mode permet de synchroniser les robots aux mouvements de la baguette. C'est le mode utilisé par défaut lorsqu'on alimente la baguette.&lt;br /&gt;
&lt;br /&gt;
La liste des ordres est la suivante (s'enclenche en maintenant appuyé le bouton poussoir pendant l'action en cours)  :&lt;br /&gt;
*Coup vers l'avant: fait avancer le robot&lt;br /&gt;
*Coup vers l'arrière: fait reculer le robot&lt;br /&gt;
*Coup vers la droite: fait aller le robot vers la droite&lt;br /&gt;
*Coup vers la gauche: fait aller le robot vers la gauche&lt;br /&gt;
*Rotation droite: fait tourner le robot dans le sens horaire&lt;br /&gt;
*Rotation gauche: fait tourner le robot dans le sens trigonométrique&lt;br /&gt;
&lt;br /&gt;
Une fois que le bouton poussoir est relâché, cela sera interpréter comme un stop et les robots devront s'arrêter.&lt;br /&gt;
&lt;br /&gt;
=== Mode automatique ===&lt;br /&gt;
&lt;br /&gt;
Ce mode permet de lancer une chorégraphie sans tenir compte des mouvements de la baguette. Celui-ci est activé à l'aide d'une combinaison de mouvements et d'appuis sur le bouton poussoir.&lt;br /&gt;
&lt;br /&gt;
Nous avons la possibilité de lancer deux chorégraphies au choix :&lt;br /&gt;
*Chorégraphie 1 : Coup vers la gauche de la baguette + appui court sur le BP&lt;br /&gt;
*Chorégraphie 2 : Coup vers la droite de la baguette + appui court sur le BP&lt;br /&gt;
&lt;br /&gt;
Afin d'éviter qu'une chorégraphie se répète en boucle, un simple appui sur le bouton poussoir arrêtera la chorégraphie une fois celle-ci terminée.&lt;br /&gt;
&lt;br /&gt;
Pour les deux chorégraphies, le robot maître lancera une musique en même temps (voir plus bas).&lt;br /&gt;
&lt;br /&gt;
== Rendu final de la baguette magique ==&lt;br /&gt;
&lt;br /&gt;
=== Conception ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Solid.jpg|800px|La baguette modélisée sous Solid]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La baguette a été modélisée sur SolidWorks puis imprimée en 3D.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fabrication/Assemblage ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Baguette1.jpg|800px|La baguette vue en coupe avec les composants]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Baguette2.jpg|800px|La baguette]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne les différents programmes (tests + final) et les schémas de câblage, se rendre sur : [[https://ujm.webgroup.fr/index.php?title=Robots_danseurs_technique Documentation technique]]&lt;br /&gt;
&lt;br /&gt;
= Le Robot-Maître =&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Robot maitre.jpg|vignette|Photo du robot-maître]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: [http://www.kysanelectronics.com/graphics/RK-370CA.pdf Mabuchi rk-370-CA]&lt;br /&gt;
*Carte de contrôle: Arduino Teensy et Sparkfun esp32 communicant ensemble par UART&lt;br /&gt;
*Interface de puissance: [https://ujm.webgroup.fr/images/7/7a/PCB_Robot4Voies.pdf Carte fournie par TSE]&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
*Régulateur de tension : Traco Power&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
Le code des robots sera séparé en trois parties distinctes : &lt;br /&gt;
*la commande du robot&lt;br /&gt;
*la communication&lt;br /&gt;
&lt;br /&gt;
Des interruptions sont utilisées par le programme pour récupérer les informations générées par les roues codeuse afin de soulager le processeur.&lt;br /&gt;
&lt;br /&gt;
=== La commande du robot ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Communication.png|vignette|droite|Schéma de communication global]]&lt;br /&gt;
&lt;br /&gt;
Les moteurs sont pilotés via différentes fonctions:&lt;br /&gt;
*Avancer&lt;br /&gt;
*Reculer&lt;br /&gt;
*Aller à droite&lt;br /&gt;
*Aller à gauche&lt;br /&gt;
*Aller en biais en haut à droite&lt;br /&gt;
*Aller en biais en haut à gauche&lt;br /&gt;
*Aller en biais en bas à droite&lt;br /&gt;
*Aller en biais en bas à gauche&lt;br /&gt;
*Rotation dans le sens trigonométrique&lt;br /&gt;
*Rotation dans le sens anti trigonométrique&lt;br /&gt;
&lt;br /&gt;
=== La communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le robot-maître reçoit ses ordres de la baguette par bluetooth.&lt;br /&gt;
&lt;br /&gt;
La communication avec les robot-esclaves se fait via une communication Wi-Fi, le robot-maître crée un serveur auquel se connecte les robot-esclaves pour récupérer leurs ordres.&lt;br /&gt;
&lt;br /&gt;
= Les Robot-Esclaves =&lt;br /&gt;
[[Fichier:Robot esclave.jpg|vignette|droite|Photo d'un des robot-esclaves]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: Hennkwell HG37D670WE12-052&lt;br /&gt;
*Carte de contrôle: Arduino Teensy&lt;br /&gt;
*Interface de puissance: Carte fournie par TSE&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Les robot-esclaves reçoivent exactement les mêmes ordres que ceux reçu par le robot-maître étant donné que le programme est le même pour les 3 robots.&lt;br /&gt;
&lt;br /&gt;
= Amélioration à apporter =&lt;br /&gt;
&lt;br /&gt;
- Utiliser les 2 cœurs présents sur l'ESP32 pour contrôler d'un côté les jeux de lumières et de l'autre, la gestion d'acquisition, traitement de données, envoie BLE et vibration de la baguette.&lt;br /&gt;
- Avoir un feedback visuel au niveau de la télécommande sur les instructions envoyées par la baguette. Exemple : écran LCD qui afficherai les instructions envoyées par BLE.&lt;br /&gt;
- Réduire le temps de latence entre l'envoie des mouvements baguette et l'exécution des mouvements du robot maître.&lt;br /&gt;
- Réduire le temps de latence de l'envoie des mouvements du robot maître au robot esclave.&lt;br /&gt;
- Réduire l'épaisseur de la baguette et l'allonger.&lt;br /&gt;
- Réduire le nombre des batteries sur les robots (maître et esclave).&lt;br /&gt;
&lt;br /&gt;
= Références externes =&lt;br /&gt;
&lt;br /&gt;
[[https://ujm.webgroup.fr/index.php?title=Robots_danseurs_technique Documentation technique]]&lt;/div&gt;</summary>
		<author><name>Lo.brandon</name></author>
		
	</entry>
	<entry>
		<id>https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10414</id>
		<title>Robots danseurs</title>
		<link rel="alternate" type="text/html" href="https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10414"/>
		<updated>2019-05-23T15:34:25Z</updated>

		<summary type="html">&lt;p&gt;Lo.brandon : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projet du module Robots Communicants de Telecom Saint-Etienne 2018/2019.&amp;lt;br /&amp;gt;&lt;br /&gt;
= Sujet =&lt;br /&gt;
L'utilisateur doit pouvoir commander un robot &amp;quot;maître&amp;quot; à distance au moyen d'une baguette. Deux robots esclaves doivent, en temps réel, imiter les mouvements du maître.&lt;br /&gt;
&lt;br /&gt;
= Objectif du projet =&lt;br /&gt;
&lt;br /&gt;
Créer une &amp;quot;baguette magique&amp;quot; permettant de donner des ordres de façon fluide et intuitive à un robot-maître qui doit ensuite transmettre les ordres qu'il reçoit à un couple de robot-esclaves&lt;br /&gt;
&lt;br /&gt;
== Diagrammes fonctionnels ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe1.png|thumb|center|Diagramme fonctionnel d'odre 1]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe_2t.png|800px|thumb|center|Diagramme fonctionnel d'odre 2]]&lt;br /&gt;
&lt;br /&gt;
== Spécifications fonctionnelles ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Spécifications fonctionnelles&lt;br /&gt;
|-&lt;br /&gt;
|Fonction principale&lt;br /&gt;
|Diriger des robots avec une baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 1&lt;br /&gt;
|Établir une communication entre les robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 2&lt;br /&gt;
|Empêcher les ordres non voulus&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 3&lt;br /&gt;
|Implémenter un feedback physique à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 4&lt;br /&gt;
|Implémenter un feedback lumineux à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 5&lt;br /&gt;
|Implémenter un feedback lumineux aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 6&lt;br /&gt;
|Implémenter un feedback sonore aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 7&lt;br /&gt;
|Créer des chorégraphies&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= La Baguette =&lt;br /&gt;
&lt;br /&gt;
La baguette sert à contrôler le robot maître par le biais de ses mouvements.&lt;br /&gt;
&lt;br /&gt;
Elle doit donc pouvoir:&lt;br /&gt;
*Mesurer les amplitudes et directions de ses accélérations linéaire et rotative&lt;br /&gt;
*Traiter l'information pour en faire des ordres compréhensible par le robot-maître &lt;br /&gt;
*Pouvoir communiquer avec le robot-maître via le protocole BLE&lt;br /&gt;
*Donner un feedback physique à l'aide d'un vibro-moteur placé au niveau de la poignée de la baguette&lt;br /&gt;
*Donner un feedback visuel à l'aide d'un ruban de LEDS fixé sur la baguette&lt;br /&gt;
&lt;br /&gt;
== Composants électroniques utilisés ==&lt;br /&gt;
&lt;br /&gt;
=== Carte de contrôle ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Esp.jpg|vignette|ESP32 Thing]]&lt;br /&gt;
La [https://learn.sparkfun.com/tutorials/esp32-thing-hookup-guide/all carte Sparkfun esp32 thing] a été retenu en raison de sa communication BLE malgré sa grande taille comparé à la [https://www.pjrc.com/teensy/ carte Arduino Teensy].&lt;br /&gt;
&lt;br /&gt;
Cette carte est alimentée via une batterie de 3.6V et 600mAh.&lt;br /&gt;
&lt;br /&gt;
La carte de contrôle et l'appareil de mesure communiquent ensemble par communication I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Appareil de mesure ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pololu_flo.jpg|vignette|Gyromètre retenu : Pololu AltMU-10 v4 (avec ses axes)]]&lt;br /&gt;
Le type de capteur retenu est le gyromètre, il permet de mesurer les accélérations linéaires et angulaires des trois directions de l'espace.&lt;br /&gt;
&lt;br /&gt;
Deux gyromètres sont en compétition, la [https://www.pololu.com/product/2470 Pololu AltMU-10 v4] et le [http://wiki.seeedstudio.com/Grove-IMU_10DOF/ Grove IMU 10DOF v1.1]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Critères de choix retenus (triés par ordre d'importance):&lt;br /&gt;
# la fiabilité du capteur (absence de valeurs aberrantes)&lt;br /&gt;
# la taille (il doit être facile à intégrer sur la baguette)&lt;br /&gt;
# la facilité de programmation &lt;br /&gt;
# la précision (dans le cas où la vitesse de la baguette serve au pilotage du robot)&lt;br /&gt;
&lt;br /&gt;
Finalement c'est le Pololu qui a été retenu en raison de sa très petite taille par rapport au capteur Grove.&lt;br /&gt;
&lt;br /&gt;
=== Bouton poussoir ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Bp_flo.jpg|vignette|Bouton poussoir retenu]]&lt;br /&gt;
Nous avons fait le choix d'ajouter un bouton poussoir sur notre baguette pour que celle-ci sache quand est-ce que nous voulons envoyer des ordres ou pas. Ce qui permettra à l'utilisateur de pouvoir garder la baguette en main sans devoir faire attention à ses mouvements ou sans devoir éteindre la baguette lorsque nous ne voulons pas envoyer d'ordre. &lt;br /&gt;
&lt;br /&gt;
Ce bouton nous permettra également de déterminer dans quel mode nous voulons guider le robot maître (qui sera expliqué plus bas).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Vibreur ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Vibro.jpg|vignette|Vibro-moteur retenu : grove vibro moteur 1.3]]&lt;br /&gt;
Un vibreur a été ajouté à la baguette pour avoir un retour sur le bon envoie de l'instruction. Attention, la vibration est seulement ici pour dire qu'une instruction a été envoyée avec succès et non pas pour notifier sa bonne réception sur le robot maître. Par conséquent, il se peut que la baguette vibre sans pour autant que le robot maître interprète correctement les ordres et les réalise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ruban de led ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ruban_flo.jpg|vignette|Ruban de leds retenu :  NeoPixel ADA1507 RGB 1m 144 leds]]&lt;br /&gt;
Un [https://www.adafruit.com/product/1506 ruban de LED] est enroulé autour de la baguette pour coller au mieux au coté ludique des robots.&lt;br /&gt;
&lt;br /&gt;
Ses fonctionnalités sont :&lt;br /&gt;
&lt;br /&gt;
Dans le mode manuel :&lt;br /&gt;
&lt;br /&gt;
*Prendre une couleur différente pour chaque ordre&lt;br /&gt;
*Plus l'ordre est maintenu plus le nombre de led illuminées augmente&lt;br /&gt;
*Si on envoie un ordre différent, les led &amp;quot;redescendent&amp;quot; rapidement avant de &amp;quot;remonter&amp;quot; dans une autre couleur&lt;br /&gt;
*Si le bouton est relâché les led &amp;quot;redescendent&amp;quot; et sont par conséquent toutes éteintes.&lt;br /&gt;
&lt;br /&gt;
Dans le mode automatique :&lt;br /&gt;
&lt;br /&gt;
*Eclairage en arc-en-ciel pour la chorégraphie 1&lt;br /&gt;
*Eclairage fluide avec des changements de couleur pour la chorégraphie 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La bande de led est alimentée via une batterie de 5V différente de la batterie alimentant l'ESP32.&lt;br /&gt;
&lt;br /&gt;
== Les différents modes ==&lt;br /&gt;
&lt;br /&gt;
=== Mode manuel ===&lt;br /&gt;
&lt;br /&gt;
Ce mode permet de synchroniser les robots aux mouvements de la baguette. C'est le mode utilisé par défaut lorsqu'on alimente la baguette.&lt;br /&gt;
&lt;br /&gt;
La liste des ordres est la suivante (s'enclenche en maintenant appuyé le bouton poussoir pendant l'action en cours)  :&lt;br /&gt;
*Coup vers l'avant: fait avancer le robot&lt;br /&gt;
*Coup vers l'arrière: fait reculer le robot&lt;br /&gt;
*Coup vers la droite: fait aller le robot vers la droite&lt;br /&gt;
*Coup vers la gauche: fait aller le robot vers la gauche&lt;br /&gt;
*Rotation droite: fait tourner le robot dans le sens horaire&lt;br /&gt;
*Rotation gauche: fait tourner le robot dans le sens trigonométrique&lt;br /&gt;
&lt;br /&gt;
Une fois que le bouton poussoir est relâché, cela sera interpréter comme un stop et les robots devront s'arrêter.&lt;br /&gt;
&lt;br /&gt;
=== Mode automatique ===&lt;br /&gt;
&lt;br /&gt;
Ce mode permet de lancer une chorégraphie sans tenir compte des mouvements de la baguette. Celui-ci est activé à l'aide d'une combinaison de mouvements et d'appuis sur le bouton poussoir.&lt;br /&gt;
&lt;br /&gt;
Nous avons la possibilité de lancer deux chorégraphies au choix :&lt;br /&gt;
*Chorégraphie 1 : Coup vers la gauche de la baguette + appui court sur le BP&lt;br /&gt;
*Chorégraphie 2 : Coup vers la droite de la baguette + appui court sur le BP&lt;br /&gt;
&lt;br /&gt;
Afin d'éviter qu'une chorégraphie se répète en boucle, un simple appui sur le bouton poussoir arrêtera la chorégraphie une fois celle-ci terminée.&lt;br /&gt;
&lt;br /&gt;
Pour les deux chorégraphies, le robot maître lancera une musique en même temps (voir plus bas).&lt;br /&gt;
&lt;br /&gt;
== Rendu final de la baguette magique ==&lt;br /&gt;
&lt;br /&gt;
=== Conception ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Solid.jpg|800px|La baguette modélisée sous Solid]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La baguette a été modélisée sur SolidWorks puis imprimée en 3D.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fabrication/Assemblage ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Baguette1.jpg|800px|La baguette vue en coupe avec les composants]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Baguette2.jpg|800px|La baguette]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne les différents programmes (tests + final) et les schémas de câblage, se rendre sur : [[https://ujm.webgroup.fr/index.php?title=Robots_danseurs_technique Documentation technique]]&lt;br /&gt;
&lt;br /&gt;
= Le Robot-Maître =&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Robot maitre.jpg|vignette|Photo du robot-maître]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: [http://www.kysanelectronics.com/graphics/RK-370CA.pdf Mabuchi rk-370-CA]&lt;br /&gt;
*Carte de contrôle: Arduino Teensy et Sparkfun esp32 communicant ensemble par UART&lt;br /&gt;
*Interface de puissance: [https://ujm.webgroup.fr/images/7/7a/PCB_Robot4Voies.pdf Carte fournie par TSE]&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
*Régulateur de tension : Traco Power&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
Le code des robots sera séparé en trois parties distinctes : &lt;br /&gt;
*la commande du robot&lt;br /&gt;
*la communication&lt;br /&gt;
&lt;br /&gt;
Des interruptions sont utilisées par le programme pour récupérer les informations générées par les roues codeuse afin de soulager le processeur.&lt;br /&gt;
&lt;br /&gt;
=== La commande du robot ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Communication.png|vignette|droite|Schéma de communication global]]&lt;br /&gt;
&lt;br /&gt;
Les moteurs sont pilotés via différentes fonctions:&lt;br /&gt;
*Avancer&lt;br /&gt;
*Reculer&lt;br /&gt;
*Aller à droite&lt;br /&gt;
*Aller à gauche&lt;br /&gt;
*Aller en biais en haut à droite&lt;br /&gt;
*Aller en biais en haut à gauche&lt;br /&gt;
*Aller en biais en bas à droite&lt;br /&gt;
*Aller en biais en bas à gauche&lt;br /&gt;
*Rotation dans le sens trigonométrique&lt;br /&gt;
*Rotation dans le sens anti trigonométrique&lt;br /&gt;
&lt;br /&gt;
=== La communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le robot-maître reçoit ses ordres de la baguette par bluetooth.&lt;br /&gt;
&lt;br /&gt;
La communication avec les robot-esclaves se fait via une communication Wi-Fi, le robot-maître crée un serveur auquel se connecte les robot-esclaves pour récupérer leurs ordres.&lt;br /&gt;
&lt;br /&gt;
= Les Robot-Esclaves =&lt;br /&gt;
[[Fichier:Robot esclave.jpg|vignette|droite|Photo d'un des robot-esclaves]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: Hennkwell HG37D670WE12-052&lt;br /&gt;
*Carte de contrôle: Arduino Teensy&lt;br /&gt;
*Interface de puissance: Carte fournie par TSE&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Les robot-esclaves reçoivent exactement les mêmes ordres que ceux reçu par le robot-maître étant donné que le programme est le même pour les 3 robots.&lt;br /&gt;
&lt;br /&gt;
= Amélioration à apporter = &lt;br /&gt;
&lt;br /&gt;
= Références externes =&lt;br /&gt;
&lt;br /&gt;
[[https://ujm.webgroup.fr/index.php?title=Robots_danseurs_technique Documentation technique]]&lt;/div&gt;</summary>
		<author><name>Lo.brandon</name></author>
		
	</entry>
	<entry>
		<id>https://bacasable.arpitania.eu//index.php?title=Robots_danseurs_technique&amp;diff=10282</id>
		<title>Robots danseurs technique</title>
		<link rel="alternate" type="text/html" href="https://bacasable.arpitania.eu//index.php?title=Robots_danseurs_technique&amp;diff=10282"/>
		<updated>2019-05-19T19:22:31Z</updated>

		<summary type="html">&lt;p&gt;Lo.brandon : /* Bande de LED */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Baguette =&lt;br /&gt;
&lt;br /&gt;
== Schéma de cablage == &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schéma baguette.png|600px|center|frame|Schéma de câblage de la buaguette]]&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
&lt;br /&gt;
=== Contrôle directe ===&lt;br /&gt;
&lt;br /&gt;
Le code suivant nous a servi à tester le gyromètre, il renvoi la direction dans laquelle le gyromètre est déplacé.&lt;br /&gt;
&lt;br /&gt;
[[Média:Test_pololu.zip|Programme de test du gyromètre]]&lt;br /&gt;
&lt;br /&gt;
Ce code ci est le code utilisé pour tester toute la partie purement fonctionnel du code, il recouvre toute la partie d’acquisition des données gyroscopiques, de prise de décision et de communication BLE.&lt;br /&gt;
&lt;br /&gt;
[[Média:Test_actions_BLE.zip|Programme final hors gestion LED]]&lt;br /&gt;
&lt;br /&gt;
=== Chorégraphies ===&lt;br /&gt;
&lt;br /&gt;
Nous avons tenté de mettre en place des chorégraphies exécutées par les robots, une fois lancé les robots exécuteraient un jeu de mouvement et de son et lumière définis à l'avance.&lt;br /&gt;
&lt;br /&gt;
Pour lancer la chorégraphies nous avons choisie de ne pas ajouter de composants supplémentaire à la baguette. Pour différencier le lancement de chorégraphies d'un ordre lambda nous allons donc utiliser les mouvements hors appui du bouton.&lt;br /&gt;
Nous allons mettre en mémoire les derniers mouvement hors appui du bouton et lors de l'appui suivant, le programme ira vérifier cette mémoire et si les derniers mouvements corresponde à une séquence et que le temps d'appui du bouton est inférieur à un seuil donné (probablement une seconde) une séquence sera lancé. Pour que se système fonctionne correctement la baguette passera la première seconde d'appui à ne rien faire en dehors de vérifier que le bouton reste enfoncé.&lt;br /&gt;
&lt;br /&gt;
Cela implique un lag d'une seconde lors de l'appui du bouton pour lancer les ordres normaux mais cette solution semble être la plus simple à mettre en oeuvre tout en restant élégante et en conservant l'aspect &amp;quot;magique&amp;quot; de la baguette.&lt;br /&gt;
&lt;br /&gt;
== Résultat ==&lt;br /&gt;
&lt;br /&gt;
=== Contrôle direct ===&lt;br /&gt;
&lt;br /&gt;
On voit ici les données brut renvoyé par le capteur Pololu, soit des valeur d'accélération dans les trois directions de l'espace. Ces valeurs n'étant pas facilement lisible par un humain nous avons implanté une fonction traduisant les informations brut en français.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Résultat_1.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant ici les résultats du capteur une fois traité, elles nous permettent de savoirs dans quel sens est dirigé la baguette de manière lisible plus facilement par un humain.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Résultat_2.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous utilisons l’application mobile [https://play.google.com/store/apps/details?id=com.macdom.ble.blescanner&amp;amp;hl=fr BLE scanner] afin de récupérer les communication Bluetooth émises par la carte. Cela nous à permit de tester la communication de la baguette indépendamment de celle du robot.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BLEscan2.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== Bande de LED ==&lt;br /&gt;
&lt;br /&gt;
Nous avions un souci avec la bande de LED, en effet certaines LED s'allume sans recevoir d'instructions comme le montre la photo ci-dessous.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:LEDraté2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc tenté d'isoler le problème en cherchant à changer les couleurs/intensité/instruction et même le model de carte pour pouvoir identifier la source du problème.&lt;br /&gt;
&lt;br /&gt;
Au final il semblerait que le problème vienne du programme. Nous avons donc cherché directement dans la librairie fournie avec la bande de LED afin d'identifier et de régler ce problème. N'étant toujours pas résolu à ce jour, nous pouvons tout de même utiliser le ruban. Les effets de monter et descente de l'allumage des led restent appréciable malgré que certaines led ont une couleur différente.&lt;br /&gt;
&lt;br /&gt;
Un autre souci à été son alimentation, en effet non seulement elle peut être très consommatrice d'énergie mais en plus elle n'est pas alimentée en 3.3V. Ce qui implique l'ajout supplémentaire d'une batterie dans la baguette et donc une perte de place.&lt;br /&gt;
&lt;br /&gt;
== Conception 3D ==&lt;br /&gt;
&lt;br /&gt;
La conception 3D de la baguette à été faite sous Solid Works. Elle a ensuite été imprimé en 3D.&lt;br /&gt;
&lt;br /&gt;
Initialement elle devait s'ouvrir aux deux extrémités (à la manière d'un manche de corde à sauter) afin de pouvoir accéder aux différentes cartes et batteries à l'intérieur. De plus nous souhaitions qu'elle s'amincisse à son extrémité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Baguettemag.jpg|thumb|center|Vue en coupe de la première version de la baguette modélisé sous Solid]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Cependant c'est l'ouverture par la tranche à la façon d'un moule (la baguette est coupée sur toute la longueur et maintenue en place par des vis) qui a été retenue, en effet cela garantie une plus grande résilience en une praticité accrue, au détriment cependant de l'aspect esthétique. De plus l'affinage à été abandonné car la place était top faible au vu du nombre de composant nécessaire et de leurs tailles.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Rendu_Baguette_Magique.JPG|thumb|center|Rendu SolidWorks de la version finale de la baguette]]&lt;br /&gt;
&lt;br /&gt;
= Robot-maître =&lt;br /&gt;
&lt;br /&gt;
== Schéma de câblage ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Interface_moteur_4_roues.png|1000px|thumb|center|Schéma de câblage simplifié de l'interface de puissance du robot-maître (complètement équivalent à celui des robot-esclaves)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diviseur.png|thumb|center|Pont diviseur]]&lt;br /&gt;
Afin de pouvoir alimenter l'ensemble des cartes et moteur avec une seul batteries nous avons utilisé un pont diviseur de tension pré-fait pour nous assurer de la stabilité de la tension d'alimentation.&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
&lt;br /&gt;
Le programme du robot-maître se sépare en deux grandes parties:&lt;br /&gt;
*le pilotage du robot (assuré par la carte [https://www.pjrc.com/teensy/ Arduino Teensy])&lt;br /&gt;
*la communication avec la baguette et les robot-esclaves (assuré par la carte [https://learn.sparkfun.com/tutorials/esp32-thing-hookup-guide/all Sparkfun esp32])&lt;br /&gt;
&lt;br /&gt;
=== Pilotage ===&lt;br /&gt;
&lt;br /&gt;
Les moteurs sont pilotés via un asservissent et des interruptions par la carte Arduino Teensy.&lt;br /&gt;
&lt;br /&gt;
Dès que l'une des roues codeuses atteint une nouvelle position elle génère une interruption afin d'optimiser la réactivité de notre asservissement en limitant les consommations électriques de la carte.&lt;br /&gt;
&lt;br /&gt;
Après une période d'environ deux minutes les moteurs s’arrêtent de fonctionner car ils deviennent trop chaud. Nous avons changer les radiateurs pour en installer de plus gros afin de pallier le problème.&lt;br /&gt;
&lt;br /&gt;
=== Communication Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
On voit ici une tentative de connexion entre la baguette et le robot, la connexion ne fonctionnait pas vraiment car le robot ce connectait et ce déconnectait en permanence &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connection_raté.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc modifié le code du robot pour régler ce problème.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connexion_réussi.png|center]]&lt;br /&gt;
&lt;br /&gt;
=== Communication Wi-Fi ===&lt;br /&gt;
[[Fichier:Server_wifi.png|vignette|Alternance des connections au serveur]]&lt;br /&gt;
[[Média:Wifiserver 2clients.zip|code serveur wifi]]&lt;br /&gt;
&lt;br /&gt;
Les communications Wi-Fi et Bluetooth sont gérées par la carte Sparkfun esp32.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps eu des problèmes pour établir une communication stable entre le serveur et le client. En effet le client pouvait se connecter mais il ne parvenait pas obtenir d'information de la part du serveur. Une fois réglé ce problème il à été simple de connecter un second client au serveur.&lt;br /&gt;
&lt;br /&gt;
Cependant les deux clients ne sont pas connecté au même moment au serveur, ils alternent les connexions au serveur plusieurs fois par seconde.&lt;br /&gt;
&lt;br /&gt;
Mais un problème persiste: lorsque la carte du robot-maître doit à la fois réservoir les informations Bluetooth et transmettre les ordres en Wi-Fi le système deviens instable.&lt;br /&gt;
Afin de palier ce problème nous avons tenté de créer une connexion UDP pour pouvoir établir une connexion stable entre le robot-maître et les deux robot-esclaves simultanément.&lt;br /&gt;
&lt;br /&gt;
Nous avons rencontré des soucis avec la sparkfun hébergent à la fois le serveur bluetooth et Wi-Fi, en effet elle plante régulièrement après une utilisation trop longue. Cela est sans doute dû à des fuites de mémoires.&lt;br /&gt;
&lt;br /&gt;
Finalement la communication est effectué à 115200 bauds et subit quelques conflit sans influences sur la stabilité globale.&lt;br /&gt;
&lt;br /&gt;
= Robot-esclave =&lt;br /&gt;
&lt;br /&gt;
== Schéma de câblage ==&lt;br /&gt;
&lt;br /&gt;
Le schéma de câblage des robot-esclaves est le même que celui du robot-maître, il a juste été adapté pour trois roues&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
[[Fichier:Client1.JPG|vignette|Communication du serveur avec le client point de vu client]]&lt;br /&gt;
Le programme des robot-esclaves est également le même que celui du maître, seule la partie concernant la communication Wi-Fi change. &lt;br /&gt;
&lt;br /&gt;
Les deux robot-esclaves on évidement le même [[Média:Client.zip|code client wifi]], cependant ils ont chacun leur propre adresse IP&lt;/div&gt;</summary>
		<author><name>Lo.brandon</name></author>
		
	</entry>
	<entry>
		<id>https://bacasable.arpitania.eu//index.php?title=Robots_danseurs_technique&amp;diff=10281</id>
		<title>Robots danseurs technique</title>
		<link rel="alternate" type="text/html" href="https://bacasable.arpitania.eu//index.php?title=Robots_danseurs_technique&amp;diff=10281"/>
		<updated>2019-05-19T19:22:21Z</updated>

		<summary type="html">&lt;p&gt;Lo.brandon : /* Bande de LED */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Baguette =&lt;br /&gt;
&lt;br /&gt;
== Schéma de cablage == &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schéma baguette.png|600px|center|frame|Schéma de câblage de la buaguette]]&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
&lt;br /&gt;
=== Contrôle directe ===&lt;br /&gt;
&lt;br /&gt;
Le code suivant nous a servi à tester le gyromètre, il renvoi la direction dans laquelle le gyromètre est déplacé.&lt;br /&gt;
&lt;br /&gt;
[[Média:Test_pololu.zip|Programme de test du gyromètre]]&lt;br /&gt;
&lt;br /&gt;
Ce code ci est le code utilisé pour tester toute la partie purement fonctionnel du code, il recouvre toute la partie d’acquisition des données gyroscopiques, de prise de décision et de communication BLE.&lt;br /&gt;
&lt;br /&gt;
[[Média:Test_actions_BLE.zip|Programme final hors gestion LED]]&lt;br /&gt;
&lt;br /&gt;
=== Chorégraphies ===&lt;br /&gt;
&lt;br /&gt;
Nous avons tenté de mettre en place des chorégraphies exécutées par les robots, une fois lancé les robots exécuteraient un jeu de mouvement et de son et lumière définis à l'avance.&lt;br /&gt;
&lt;br /&gt;
Pour lancer la chorégraphies nous avons choisie de ne pas ajouter de composants supplémentaire à la baguette. Pour différencier le lancement de chorégraphies d'un ordre lambda nous allons donc utiliser les mouvements hors appui du bouton.&lt;br /&gt;
Nous allons mettre en mémoire les derniers mouvement hors appui du bouton et lors de l'appui suivant, le programme ira vérifier cette mémoire et si les derniers mouvements corresponde à une séquence et que le temps d'appui du bouton est inférieur à un seuil donné (probablement une seconde) une séquence sera lancé. Pour que se système fonctionne correctement la baguette passera la première seconde d'appui à ne rien faire en dehors de vérifier que le bouton reste enfoncé.&lt;br /&gt;
&lt;br /&gt;
Cela implique un lag d'une seconde lors de l'appui du bouton pour lancer les ordres normaux mais cette solution semble être la plus simple à mettre en oeuvre tout en restant élégante et en conservant l'aspect &amp;quot;magique&amp;quot; de la baguette.&lt;br /&gt;
&lt;br /&gt;
== Résultat ==&lt;br /&gt;
&lt;br /&gt;
=== Contrôle direct ===&lt;br /&gt;
&lt;br /&gt;
On voit ici les données brut renvoyé par le capteur Pololu, soit des valeur d'accélération dans les trois directions de l'espace. Ces valeurs n'étant pas facilement lisible par un humain nous avons implanté une fonction traduisant les informations brut en français.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Résultat_1.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant ici les résultats du capteur une fois traité, elles nous permettent de savoirs dans quel sens est dirigé la baguette de manière lisible plus facilement par un humain.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Résultat_2.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous utilisons l’application mobile [https://play.google.com/store/apps/details?id=com.macdom.ble.blescanner&amp;amp;hl=fr BLE scanner] afin de récupérer les communication Bluetooth émises par la carte. Cela nous à permit de tester la communication de la baguette indépendamment de celle du robot.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BLEscan2.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== Bande de LED ==&lt;br /&gt;
&lt;br /&gt;
Nous avions un souci avec la bande de LED, en effet certaines LED s'allume sans recevoir d'instructions comme le montre la photo ci-dessous.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:LEDraté2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc tenté d'isoler le problème en cherchant à changer les couleurs/intensité/instruction et même le model de carte pour pouvoir identifier la source du problème.&lt;br /&gt;
&lt;br /&gt;
 Au final il semblerait que le problème vienne du programme. Nous avons donc cherché directement dans la librairie fournie avec la bande de LED afin d'identifier et de régler ce problème. N'étant toujours pas résolu à ce jour, nous pouvons tout de même utiliser le ruban. Les effets de monter et descente de l'allumage des led restent appréciable malgré que certaines led ont une couleur différente.&lt;br /&gt;
&lt;br /&gt;
Un autre souci à été son alimentation, en effet non seulement elle peut être très consommatrice d'énergie mais en plus elle n'est pas alimentée en 3.3V. Ce qui implique l'ajout supplémentaire d'une batterie dans la baguette et donc une perte de place.&lt;br /&gt;
&lt;br /&gt;
== Conception 3D ==&lt;br /&gt;
&lt;br /&gt;
La conception 3D de la baguette à été faite sous Solid Works. Elle a ensuite été imprimé en 3D.&lt;br /&gt;
&lt;br /&gt;
Initialement elle devait s'ouvrir aux deux extrémités (à la manière d'un manche de corde à sauter) afin de pouvoir accéder aux différentes cartes et batteries à l'intérieur. De plus nous souhaitions qu'elle s'amincisse à son extrémité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Baguettemag.jpg|thumb|center|Vue en coupe de la première version de la baguette modélisé sous Solid]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Cependant c'est l'ouverture par la tranche à la façon d'un moule (la baguette est coupée sur toute la longueur et maintenue en place par des vis) qui a été retenue, en effet cela garantie une plus grande résilience en une praticité accrue, au détriment cependant de l'aspect esthétique. De plus l'affinage à été abandonné car la place était top faible au vu du nombre de composant nécessaire et de leurs tailles.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Rendu_Baguette_Magique.JPG|thumb|center|Rendu SolidWorks de la version finale de la baguette]]&lt;br /&gt;
&lt;br /&gt;
= Robot-maître =&lt;br /&gt;
&lt;br /&gt;
== Schéma de câblage ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Interface_moteur_4_roues.png|1000px|thumb|center|Schéma de câblage simplifié de l'interface de puissance du robot-maître (complètement équivalent à celui des robot-esclaves)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diviseur.png|thumb|center|Pont diviseur]]&lt;br /&gt;
Afin de pouvoir alimenter l'ensemble des cartes et moteur avec une seul batteries nous avons utilisé un pont diviseur de tension pré-fait pour nous assurer de la stabilité de la tension d'alimentation.&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
&lt;br /&gt;
Le programme du robot-maître se sépare en deux grandes parties:&lt;br /&gt;
*le pilotage du robot (assuré par la carte [https://www.pjrc.com/teensy/ Arduino Teensy])&lt;br /&gt;
*la communication avec la baguette et les robot-esclaves (assuré par la carte [https://learn.sparkfun.com/tutorials/esp32-thing-hookup-guide/all Sparkfun esp32])&lt;br /&gt;
&lt;br /&gt;
=== Pilotage ===&lt;br /&gt;
&lt;br /&gt;
Les moteurs sont pilotés via un asservissent et des interruptions par la carte Arduino Teensy.&lt;br /&gt;
&lt;br /&gt;
Dès que l'une des roues codeuses atteint une nouvelle position elle génère une interruption afin d'optimiser la réactivité de notre asservissement en limitant les consommations électriques de la carte.&lt;br /&gt;
&lt;br /&gt;
Après une période d'environ deux minutes les moteurs s’arrêtent de fonctionner car ils deviennent trop chaud. Nous avons changer les radiateurs pour en installer de plus gros afin de pallier le problème.&lt;br /&gt;
&lt;br /&gt;
=== Communication Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
On voit ici une tentative de connexion entre la baguette et le robot, la connexion ne fonctionnait pas vraiment car le robot ce connectait et ce déconnectait en permanence &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connection_raté.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc modifié le code du robot pour régler ce problème.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connexion_réussi.png|center]]&lt;br /&gt;
&lt;br /&gt;
=== Communication Wi-Fi ===&lt;br /&gt;
[[Fichier:Server_wifi.png|vignette|Alternance des connections au serveur]]&lt;br /&gt;
[[Média:Wifiserver 2clients.zip|code serveur wifi]]&lt;br /&gt;
&lt;br /&gt;
Les communications Wi-Fi et Bluetooth sont gérées par la carte Sparkfun esp32.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps eu des problèmes pour établir une communication stable entre le serveur et le client. En effet le client pouvait se connecter mais il ne parvenait pas obtenir d'information de la part du serveur. Une fois réglé ce problème il à été simple de connecter un second client au serveur.&lt;br /&gt;
&lt;br /&gt;
Cependant les deux clients ne sont pas connecté au même moment au serveur, ils alternent les connexions au serveur plusieurs fois par seconde.&lt;br /&gt;
&lt;br /&gt;
Mais un problème persiste: lorsque la carte du robot-maître doit à la fois réservoir les informations Bluetooth et transmettre les ordres en Wi-Fi le système deviens instable.&lt;br /&gt;
Afin de palier ce problème nous avons tenté de créer une connexion UDP pour pouvoir établir une connexion stable entre le robot-maître et les deux robot-esclaves simultanément.&lt;br /&gt;
&lt;br /&gt;
Nous avons rencontré des soucis avec la sparkfun hébergent à la fois le serveur bluetooth et Wi-Fi, en effet elle plante régulièrement après une utilisation trop longue. Cela est sans doute dû à des fuites de mémoires.&lt;br /&gt;
&lt;br /&gt;
Finalement la communication est effectué à 115200 bauds et subit quelques conflit sans influences sur la stabilité globale.&lt;br /&gt;
&lt;br /&gt;
= Robot-esclave =&lt;br /&gt;
&lt;br /&gt;
== Schéma de câblage ==&lt;br /&gt;
&lt;br /&gt;
Le schéma de câblage des robot-esclaves est le même que celui du robot-maître, il a juste été adapté pour trois roues&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
[[Fichier:Client1.JPG|vignette|Communication du serveur avec le client point de vu client]]&lt;br /&gt;
Le programme des robot-esclaves est également le même que celui du maître, seule la partie concernant la communication Wi-Fi change. &lt;br /&gt;
&lt;br /&gt;
Les deux robot-esclaves on évidement le même [[Média:Client.zip|code client wifi]], cependant ils ont chacun leur propre adresse IP&lt;/div&gt;</summary>
		<author><name>Lo.brandon</name></author>
		
	</entry>
	<entry>
		<id>https://bacasable.arpitania.eu//index.php?title=Robots_danseurs_technique&amp;diff=10280</id>
		<title>Robots danseurs technique</title>
		<link rel="alternate" type="text/html" href="https://bacasable.arpitania.eu//index.php?title=Robots_danseurs_technique&amp;diff=10280"/>
		<updated>2019-05-19T19:17:39Z</updated>

		<summary type="html">&lt;p&gt;Lo.brandon : /* Bande de LED */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Baguette =&lt;br /&gt;
&lt;br /&gt;
== Schéma de cablage == &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schéma baguette.png|600px|center|frame|Schéma de câblage de la buaguette]]&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
&lt;br /&gt;
=== Contrôle directe ===&lt;br /&gt;
&lt;br /&gt;
Le code suivant nous a servi à tester le gyromètre, il renvoi la direction dans laquelle le gyromètre est déplacé.&lt;br /&gt;
&lt;br /&gt;
[[Média:Test_pololu.zip|Programme de test du gyromètre]]&lt;br /&gt;
&lt;br /&gt;
Ce code ci est le code utilisé pour tester toute la partie purement fonctionnel du code, il recouvre toute la partie d’acquisition des données gyroscopiques, de prise de décision et de communication BLE.&lt;br /&gt;
&lt;br /&gt;
[[Média:Test_actions_BLE.zip|Programme final hors gestion LED]]&lt;br /&gt;
&lt;br /&gt;
=== Chorégraphies ===&lt;br /&gt;
&lt;br /&gt;
Nous avons tenté de mettre en place des chorégraphies exécutées par les robots, une fois lancé les robots exécuteraient un jeu de mouvement et de son et lumière définis à l'avance.&lt;br /&gt;
&lt;br /&gt;
Pour lancer la chorégraphies nous avons choisie de ne pas ajouter de composants supplémentaire à la baguette. Pour différencier le lancement de chorégraphies d'un ordre lambda nous allons donc utiliser les mouvements hors appui du bouton.&lt;br /&gt;
Nous allons mettre en mémoire les derniers mouvement hors appui du bouton et lors de l'appui suivant, le programme ira vérifier cette mémoire et si les derniers mouvements corresponde à une séquence et que le temps d'appui du bouton est inférieur à un seuil donné (probablement une seconde) une séquence sera lancé. Pour que se système fonctionne correctement la baguette passera la première seconde d'appui à ne rien faire en dehors de vérifier que le bouton reste enfoncé.&lt;br /&gt;
&lt;br /&gt;
Cela implique un lag d'une seconde lors de l'appui du bouton pour lancer les ordres normaux mais cette solution semble être la plus simple à mettre en oeuvre tout en restant élégante et en conservant l'aspect &amp;quot;magique&amp;quot; de la baguette.&lt;br /&gt;
&lt;br /&gt;
== Résultat ==&lt;br /&gt;
&lt;br /&gt;
=== Contrôle direct ===&lt;br /&gt;
&lt;br /&gt;
On voit ici les données brut renvoyé par le capteur Pololu, soit des valeur d'accélération dans les trois directions de l'espace. Ces valeurs n'étant pas facilement lisible par un humain nous avons implanté une fonction traduisant les informations brut en français.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Résultat_1.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons maintenant ici les résultats du capteur une fois traité, elles nous permettent de savoirs dans quel sens est dirigé la baguette de manière lisible plus facilement par un humain.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Résultat_2.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous utilisons l’application mobile [https://play.google.com/store/apps/details?id=com.macdom.ble.blescanner&amp;amp;hl=fr BLE scanner] afin de récupérer les communication Bluetooth émises par la carte. Cela nous à permit de tester la communication de la baguette indépendamment de celle du robot.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BLEscan2.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== Bande de LED ==&lt;br /&gt;
&lt;br /&gt;
Nous avions un souci avec la bande de LED, en effet certaines LED s'allume sans recevoir d'instructions.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:LEDraté2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc tenté d'isoler le problème en cherchant à changer les couleurs/intensité/instruction et même le model de carte pour pouvoir identifier la source du problème.&lt;br /&gt;
&lt;br /&gt;
 Au final il semblerait que le problème provienne du programme. Nous avons donc cherché directement dans la librairie fournie avec la bande de LED afin d'identifier et de régler le problème. A ce jour, le problème n'est toujours pas résolu. Cependant, l'interprétation que nous voulons donner au ruban est toujours compréhensible.&lt;br /&gt;
&lt;br /&gt;
Un autre souci à été son alimentation, en effet non seulement elle est très consommatrice d'énergie mais en plus elle n'est pas alimenté en 3.3V. Ce qui implique l'ajout supplémentaire d'une batterie dans la baguette.&lt;br /&gt;
&lt;br /&gt;
== Conception 3D ==&lt;br /&gt;
&lt;br /&gt;
La conception 3D de la baguette à été faite sous Solid Works. Elle a ensuite été imprimé en 3D.&lt;br /&gt;
&lt;br /&gt;
Initialement elle devait s'ouvrir aux deux extrémités (à la manière d'un manche de corde à sauter) afin de pouvoir accéder aux différentes cartes et batteries à l'intérieur. De plus nous souhaitions qu'elle s'amincisse à son extrémité.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Baguettemag.jpg|thumb|center|Vue en coupe de la première version de la baguette modélisé sous Solid]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Cependant c'est l'ouverture par la tranche à la façon d'un moule (la baguette est coupée sur toute la longueur et maintenue en place par des vis) qui a été retenue, en effet cela garantie une plus grande résilience en une praticité accrue, au détriment cependant de l'aspect esthétique. De plus l'affinage à été abandonné car la place était top faible au vu du nombre de composant nécessaire et de leurs tailles.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Rendu_Baguette_Magique.JPG|thumb|center|Rendu SolidWorks de la version finale de la baguette]]&lt;br /&gt;
&lt;br /&gt;
= Robot-maître =&lt;br /&gt;
&lt;br /&gt;
== Schéma de câblage ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Interface_moteur_4_roues.png|1000px|thumb|center|Schéma de câblage simplifié de l'interface de puissance du robot-maître (complètement équivalent à celui des robot-esclaves)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diviseur.png|thumb|center|Pont diviseur]]&lt;br /&gt;
Afin de pouvoir alimenter l'ensemble des cartes et moteur avec une seul batteries nous avons utilisé un pont diviseur de tension pré-fait pour nous assurer de la stabilité de la tension d'alimentation.&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
&lt;br /&gt;
Le programme du robot-maître se sépare en deux grandes parties:&lt;br /&gt;
*le pilotage du robot (assuré par la carte [https://www.pjrc.com/teensy/ Arduino Teensy])&lt;br /&gt;
*la communication avec la baguette et les robot-esclaves (assuré par la carte [https://learn.sparkfun.com/tutorials/esp32-thing-hookup-guide/all Sparkfun esp32])&lt;br /&gt;
&lt;br /&gt;
=== Pilotage ===&lt;br /&gt;
&lt;br /&gt;
Les moteurs sont pilotés via un asservissent et des interruptions par la carte Arduino Teensy.&lt;br /&gt;
&lt;br /&gt;
Dès que l'une des roues codeuses atteint une nouvelle position elle génère une interruption afin d'optimiser la réactivité de notre asservissement en limitant les consommations électriques de la carte.&lt;br /&gt;
&lt;br /&gt;
Après une période d'environ deux minutes les moteurs s’arrêtent de fonctionner car ils deviennent trop chaud. Nous avons changer les radiateurs pour en installer de plus gros afin de pallier le problème.&lt;br /&gt;
&lt;br /&gt;
=== Communication Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
On voit ici une tentative de connexion entre la baguette et le robot, la connexion ne fonctionnait pas vraiment car le robot ce connectait et ce déconnectait en permanence &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connection_raté.png|center]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc modifié le code du robot pour régler ce problème.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connexion_réussi.png|center]]&lt;br /&gt;
&lt;br /&gt;
=== Communication Wi-Fi ===&lt;br /&gt;
[[Fichier:Server_wifi.png|vignette|Alternance des connections au serveur]]&lt;br /&gt;
[[Média:Wifiserver 2clients.zip|code serveur wifi]]&lt;br /&gt;
&lt;br /&gt;
Les communications Wi-Fi et Bluetooth sont gérées par la carte Sparkfun esp32.&lt;br /&gt;
&lt;br /&gt;
Nous avons dans un premier temps eu des problèmes pour établir une communication stable entre le serveur et le client. En effet le client pouvait se connecter mais il ne parvenait pas obtenir d'information de la part du serveur. Une fois réglé ce problème il à été simple de connecter un second client au serveur.&lt;br /&gt;
&lt;br /&gt;
Cependant les deux clients ne sont pas connecté au même moment au serveur, ils alternent les connexions au serveur plusieurs fois par seconde.&lt;br /&gt;
&lt;br /&gt;
Mais un problème persiste: lorsque la carte du robot-maître doit à la fois réservoir les informations Bluetooth et transmettre les ordres en Wi-Fi le système deviens instable.&lt;br /&gt;
Afin de palier ce problème nous avons tenté de créer une connexion UDP pour pouvoir établir une connexion stable entre le robot-maître et les deux robot-esclaves simultanément.&lt;br /&gt;
&lt;br /&gt;
Nous avons rencontré des soucis avec la sparkfun hébergent à la fois le serveur bluetooth et Wi-Fi, en effet elle plante régulièrement après une utilisation trop longue. Cela est sans doute dû à des fuites de mémoires.&lt;br /&gt;
&lt;br /&gt;
Finalement la communication est effectué à 115200 bauds et subit quelques conflit sans influences sur la stabilité globale.&lt;br /&gt;
&lt;br /&gt;
= Robot-esclave =&lt;br /&gt;
&lt;br /&gt;
== Schéma de câblage ==&lt;br /&gt;
&lt;br /&gt;
Le schéma de câblage des robot-esclaves est le même que celui du robot-maître, il a juste été adapté pour trois roues&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
[[Fichier:Client1.JPG|vignette|Communication du serveur avec le client point de vu client]]&lt;br /&gt;
Le programme des robot-esclaves est également le même que celui du maître, seule la partie concernant la communication Wi-Fi change. &lt;br /&gt;
&lt;br /&gt;
Les deux robot-esclaves on évidement le même [[Média:Client.zip|code client wifi]], cependant ils ont chacun leur propre adresse IP&lt;/div&gt;</summary>
		<author><name>Lo.brandon</name></author>
		
	</entry>
	<entry>
		<id>https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10279</id>
		<title>Robots danseurs</title>
		<link rel="alternate" type="text/html" href="https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10279"/>
		<updated>2019-05-19T17:30:22Z</updated>

		<summary type="html">&lt;p&gt;Lo.brandon : /* Décorations supplémentaires */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projet du module Robots Communicants de Telecom Saint-Etienne 2018/2019.&amp;lt;br /&amp;gt;&lt;br /&gt;
= Sujet =&lt;br /&gt;
L'utilisateur doit pouvoir commander un robot &amp;quot;maître&amp;quot; à distance au moyen d'une baguette. Deux robots esclaves doivent, en temps réel, imiter les mouvements du maître.&lt;br /&gt;
&lt;br /&gt;
= Objectif du projet =&lt;br /&gt;
&lt;br /&gt;
Créer une &amp;quot;baguette magique&amp;quot; permettant de donner des ordres de façon fluide et intuitive à un robot-maître qui doit ensuite transmettre les ordres qu'il reçoit à un couple de robot-esclaves&lt;br /&gt;
&lt;br /&gt;
== Diagrammes fonctionnels ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe1.png|thumb|center|Diagramme fonctionnel de classe 1]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe_2t.png|1000px|thumb|center|Diagramme fonctionnel de classe 2]]&lt;br /&gt;
&lt;br /&gt;
== Spécifications fonctionnelles ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Spécifications fonctionnelles&lt;br /&gt;
|-&lt;br /&gt;
|Fonction principale&lt;br /&gt;
|Diriger des robot avec une baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 1&lt;br /&gt;
|Établir une communication entre les robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 2&lt;br /&gt;
|Empêcher les ordres non voulu&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 3&lt;br /&gt;
|Implémenter un feedback physique à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 4&lt;br /&gt;
|Implémenter un feedback lumineux à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 5&lt;br /&gt;
|Implémenter un feedback lumineux aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 6&lt;br /&gt;
|Implémenter un feedback sonore aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 7&lt;br /&gt;
|Créer des chorégraphies&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= La Baguette =&lt;br /&gt;
&lt;br /&gt;
La baguette sert à contrôler le robot maître par le biais de ses mouvements.&lt;br /&gt;
&lt;br /&gt;
Elle doit donc pouvoir:&lt;br /&gt;
*Mesurer les amplitudes et directions de ses accélérations linéaire et rotative&lt;br /&gt;
*Traiter l'information pour en faire des ordres compréhensible par le robot-maître &lt;br /&gt;
*Pouvoir communiquer avec le robot-maître&lt;br /&gt;
&lt;br /&gt;
== Composants électroniques ==&lt;br /&gt;
&lt;br /&gt;
=== Carte de contrôle ===&lt;br /&gt;
&lt;br /&gt;
La [https://learn.sparkfun.com/tutorials/esp32-thing-hookup-guide/all carte Sparkfun esp32] a été retenu en raison de sa communication BLE malgré sa grande taille comparé à la [https://www.pjrc.com/teensy/ carte Arduino Teensy].&lt;br /&gt;
&lt;br /&gt;
Cette carte est alimentée via une batterie de 3.6V et 600mAh.&lt;br /&gt;
&lt;br /&gt;
La carte de contrôle et l'appareil de mesure communiquent ensemble par communication I2C.&lt;br /&gt;
&lt;br /&gt;
=== Appareil de mesure ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gyro.jpg|vignette|Axes d'un gyromètre]]&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Deux gyromètre sont en compétition, la [https://www.pololu.com/product/2470 Pololu AltMU-10 v4] et le [http://wiki.seeedstudio.com/Grove-IMU_10DOF/ Grove IMU 10DOF v1.1]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Critères de choix retenus (triés par ordre d'importance):&lt;br /&gt;
# la fiabilité du capteur (absence de valeurs aberrantes)&lt;br /&gt;
# la taille (il doit être facile à intégrer sur la baguette)&lt;br /&gt;
# la facilité de programmation &lt;br /&gt;
# la précision (dans le cas ou la vitesse de la baguette serve au pilotage du robot)&lt;br /&gt;
&lt;br /&gt;
Finalement c'est le Pololu qui a été retenu en raison de sa très petite taille par rapport au capteur Grove.&lt;br /&gt;
&lt;br /&gt;
=== Bouton poussoir ===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait le choix d'ajouter un bouton poussoir sur notre baguette pour que celle-ci sache quand est-ce que nous voulons envoyer des ordres ou pas. Ce qui permettra à l'utilisateur de pouvoir garder la baguette en main sans devoir faire attention à ses mouvements ou sans devoir éteindre la baguette lorsque nous ne voulons pas envoyer d'ordre. &lt;br /&gt;
&lt;br /&gt;
Ce bouton nous permettra également de déterminer dans quel mode nous voulons guider le robot maître (qui sera expliqué plus bas).&lt;br /&gt;
&lt;br /&gt;
=== Vibreur ===&lt;br /&gt;
&lt;br /&gt;
Un vibreur a été ajouté à la baguette pour avoir un retour sur le bon envoie de l'instruction. Attention, la vibration est seulement ici pour dire qu'une instruction a été envoyée avec succès et non pas pour notifier sa bonne réception sur le robot maître. Par conséquent, il se peut que la baguette vibre sans pour autant que le robot maître interprète correctement les ordres et les réalise.&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sparkfun.jpg|vignette|Sparkfun esp32]]&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
La baguette a été programmée de sorte à contrôler le robot maître manuellement ou automatiquement. &lt;br /&gt;
&lt;br /&gt;
Le mode manuel s'enclenche lorsque l'utilisateur maintient le bouton de la baguette plus d'une demi-seconde environ. Lorsque celui-ci se retrouve dans le mode manuel, il aura la possibilité de contrôler le robot selon les ordres donnés plus bas. Tant que le bouton est maintenu, le dernier ordre envoyé est « gelé » (c’est-à-dire que donner un coup de baguette vers la droite et ne pas envoyer de nouvel ordre va maintenir ce dernier) et il suffit de faire des gestes différents pour envoyer de nouveaux ordres. Le robot maître recevra l'instruction de s'arrêter seulement si l'utilisateur relâche le bouton. Chaque ordre envoyé avec succès sera manifesté par une petite vibration au niveau de la baguette.&lt;br /&gt;
&lt;br /&gt;
Cette fois, si nous voulons que le robot soit en mode automatique (réalisation d'une chorégraphie), il suffit de donner un coup de baguette vers la gauche (chorée 1) ou la droite (chorée 2) tout en ayant le bouton relâché. Cette action aura pour effet de retenir le dernier mouvement (seulement gauche ou droite pris en compte). Un appuie très bref sur le bouton va permettre à la baguette de regarder si l'utilisateur a mis en mémoire une des deux chorégraphies connues. Si c'est le cas, la baguette enverra au robot maître, l'instruction adéquate pour que celui-ci se lance dans une chorégraphie. Dans le cas contraire, on enverra tout simplement un stop au robot maître pour qu'il ne fasse rien. &lt;br /&gt;
&lt;br /&gt;
Une fois que le robot s'est élancé dans sa chorégraphie, la baguette se remet à un état « neutre » (instruction stop préchargée). Pour stopper la chorégraphie, il suffira donc d'appuyer brièvement sur le bouton pour envoyer l'instruction stop ou alors de lui envoyer des instructions en mode manuel comme décrit plus haut. Actuellement, le robot prend le temps de terminer sa chorégraphie avant de s'arrêter ou avant d'effectuer les commandes manuelles envoyées. Dans le cas où le robot s'est élancé dans sa chorégraphie et qu'il ne reçoit pas de nouvel ordre, il continue sa chorégraphie en boucle.&lt;br /&gt;
&lt;br /&gt;
La baguette traite directement l'information issue de ses capteurs, les interprète et les transforme en ordre qui seront directement transmis au robot-maître.&lt;br /&gt;
&lt;br /&gt;
=== Liste des ordres disponibles ===&lt;br /&gt;
&lt;br /&gt;
La liste est ordre est :&lt;br /&gt;
*Coup vers l'avant: fait avancer le robot&lt;br /&gt;
*Coup vers l'arrière: fait reculer le robot&lt;br /&gt;
*Coup vers la droite: fait aller le robot vers la droite&lt;br /&gt;
*Coup vers la gauche: fait aller le robot vers la gauche&lt;br /&gt;
*Rotation droite: fait tourner le robot dans le sens anti-trigonométrique&lt;br /&gt;
*Rotation gauche: fait tourner le robot dans le sens trigonométrique&lt;br /&gt;
&lt;br /&gt;
== Aspect esthétique ==&lt;br /&gt;
&lt;br /&gt;
=== Fabrication ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Rendu_Baguette_Magique.JPG|vignette|La baguette modélisé sous Solid]]&lt;br /&gt;
&lt;br /&gt;
La baguette a été modélisé sur SolidWorks puis imprimé en 3D.&lt;br /&gt;
&lt;br /&gt;
=== Décorations supplémentaires ===&lt;br /&gt;
[[Fichier:Bande_de_led.jpg|vignette|Bande de led]]&lt;br /&gt;
&lt;br /&gt;
Une [https://www.adafruit.com/product/1506 bande de LED] est enroulé autour de la baguette pour coller au mieux au coté ludique des robots.&lt;br /&gt;
&lt;br /&gt;
Ses fonctionnalités sont:&lt;br /&gt;
*Prendre une couleur différente pour chaque ordre&lt;br /&gt;
*Plus l'ordre est maintenu plus le nombre de led illuminé augmente&lt;br /&gt;
*Si on envoie un ordre différent, les led &amp;quot;redescendent&amp;quot; rapidement avant de &amp;quot;remonter&amp;quot; dans une autre couleur&lt;br /&gt;
*Si le bouton est relâché les led &amp;quot;redescendent&amp;quot; et sont par conséquent toutes éteintes.&lt;br /&gt;
&lt;br /&gt;
La bande de led est alimentée via une batterie de 5V différente de la batterie alimentant l'ESP32.&lt;br /&gt;
&lt;br /&gt;
= Le Robot-Maître =&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Robot maitre.jpg|vignette|Photo du robot-maître]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: [http://www.kysanelectronics.com/graphics/RK-370CA.pdf Mabuchi rk-370-CA]&lt;br /&gt;
*Carte de contrôle: Arduino Teensy et Sparkfun esp32 communicant ensemble par UART&lt;br /&gt;
*Interface de puissance: [https://ujm.webgroup.fr/images/7/7a/PCB_Robot4Voies.pdf Carte fournie par TSE]&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
*Régulateur de tension : Traco Power&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
Le code des robots sera séparé en trois parties distinctes : &lt;br /&gt;
*la commande du robot&lt;br /&gt;
*la communication&lt;br /&gt;
&lt;br /&gt;
Des interruptions sont utilisées par le programme pour récupérer les informations générées par les roues codeuse afin de soulager le processeur.&lt;br /&gt;
&lt;br /&gt;
=== La commande du robot ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Communication.png|vignette|droite|Schéma de communication global]]&lt;br /&gt;
&lt;br /&gt;
Les moteurs sont pilotés via différentes fonctions:&lt;br /&gt;
*Avancer&lt;br /&gt;
*Reculer&lt;br /&gt;
*Aller à droite&lt;br /&gt;
*Aller à gauche&lt;br /&gt;
*Aller en biais en haut à droite&lt;br /&gt;
*Aller en biais en haut à gauche&lt;br /&gt;
*Aller en biais en bas à droite&lt;br /&gt;
*Aller en biais en bas à gauche&lt;br /&gt;
*Rotation dans le sens trigonométrique&lt;br /&gt;
*Rotation dans le sens anti trigonométrique&lt;br /&gt;
&lt;br /&gt;
=== La communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le robot-maître reçoit ses ordres de la baguette par bluetooth.&lt;br /&gt;
&lt;br /&gt;
La communication avec les robot-esclaves se fait via une communication Wi-Fi, le robot-maître crée un serveur auquel se connecte les robot-esclaves pour récupérer leurs ordres.&lt;br /&gt;
&lt;br /&gt;
= Les Robot-Esclaves =&lt;br /&gt;
[[Fichier:Robot esclave.jpg|vignette|droite|Photo d'un des robot-esclaves]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: Hennkwell HG37D670WE12-052&lt;br /&gt;
*Carte de contrôle: Arduino Teensy&lt;br /&gt;
*Interface de puissance: Carte fournie par TSE&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Les robot-esclaves reçoivent exactement les mêmes ordres que ceux reçu par le robot-maître étant donné que le programme est le même pour les 3 robots.&lt;br /&gt;
&lt;br /&gt;
= Références externes =&lt;br /&gt;
&lt;br /&gt;
[[https://ujm.webgroup.fr/index.php?title=Robots_danseurs_technique Documentation technique]]&lt;/div&gt;</summary>
		<author><name>Lo.brandon</name></author>
		
	</entry>
	<entry>
		<id>https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10278</id>
		<title>Robots danseurs</title>
		<link rel="alternate" type="text/html" href="https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10278"/>
		<updated>2019-05-19T17:26:46Z</updated>

		<summary type="html">&lt;p&gt;Lo.brandon : /* Vibreur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projet du module Robots Communicants de Telecom Saint-Etienne 2018/2019.&amp;lt;br /&amp;gt;&lt;br /&gt;
= Sujet =&lt;br /&gt;
L'utilisateur doit pouvoir commander un robot &amp;quot;maître&amp;quot; à distance au moyen d'une baguette. Deux robots esclaves doivent, en temps réel, imiter les mouvements du maître.&lt;br /&gt;
&lt;br /&gt;
= Objectif du projet =&lt;br /&gt;
&lt;br /&gt;
Créer une &amp;quot;baguette magique&amp;quot; permettant de donner des ordres de façon fluide et intuitive à un robot-maître qui doit ensuite transmettre les ordres qu'il reçoit à un couple de robot-esclaves&lt;br /&gt;
&lt;br /&gt;
== Diagrammes fonctionnels ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe1.png|thumb|center|Diagramme fonctionnel de classe 1]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe_2t.png|1000px|thumb|center|Diagramme fonctionnel de classe 2]]&lt;br /&gt;
&lt;br /&gt;
== Spécifications fonctionnelles ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Spécifications fonctionnelles&lt;br /&gt;
|-&lt;br /&gt;
|Fonction principale&lt;br /&gt;
|Diriger des robot avec une baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 1&lt;br /&gt;
|Établir une communication entre les robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 2&lt;br /&gt;
|Empêcher les ordres non voulu&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 3&lt;br /&gt;
|Implémenter un feedback physique à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 4&lt;br /&gt;
|Implémenter un feedback lumineux à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 5&lt;br /&gt;
|Implémenter un feedback lumineux aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 6&lt;br /&gt;
|Implémenter un feedback sonore aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 7&lt;br /&gt;
|Créer des chorégraphies&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= La Baguette =&lt;br /&gt;
&lt;br /&gt;
La baguette sert à contrôler le robot maître par le biais de ses mouvements.&lt;br /&gt;
&lt;br /&gt;
Elle doit donc pouvoir:&lt;br /&gt;
*Mesurer les amplitudes et directions de ses accélérations linéaire et rotative&lt;br /&gt;
*Traiter l'information pour en faire des ordres compréhensible par le robot-maître &lt;br /&gt;
*Pouvoir communiquer avec le robot-maître&lt;br /&gt;
&lt;br /&gt;
== Composants électroniques ==&lt;br /&gt;
&lt;br /&gt;
=== Carte de contrôle ===&lt;br /&gt;
&lt;br /&gt;
La [https://learn.sparkfun.com/tutorials/esp32-thing-hookup-guide/all carte Sparkfun esp32] a été retenu en raison de sa communication BLE malgré sa grande taille comparé à la [https://www.pjrc.com/teensy/ carte Arduino Teensy].&lt;br /&gt;
&lt;br /&gt;
Cette carte est alimentée via une batterie de 3.6V et 600mAh.&lt;br /&gt;
&lt;br /&gt;
La carte de contrôle et l'appareil de mesure communiquent ensemble par communication I2C.&lt;br /&gt;
&lt;br /&gt;
=== Appareil de mesure ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gyro.jpg|vignette|Axes d'un gyromètre]]&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Deux gyromètre sont en compétition, la [https://www.pololu.com/product/2470 Pololu AltMU-10 v4] et le [http://wiki.seeedstudio.com/Grove-IMU_10DOF/ Grove IMU 10DOF v1.1]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Critères de choix retenus (triés par ordre d'importance):&lt;br /&gt;
# la fiabilité du capteur (absence de valeurs aberrantes)&lt;br /&gt;
# la taille (il doit être facile à intégrer sur la baguette)&lt;br /&gt;
# la facilité de programmation &lt;br /&gt;
# la précision (dans le cas ou la vitesse de la baguette serve au pilotage du robot)&lt;br /&gt;
&lt;br /&gt;
Finalement c'est le Pololu qui a été retenu en raison de sa très petite taille par rapport au capteur Grove.&lt;br /&gt;
&lt;br /&gt;
=== Bouton poussoir ===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait le choix d'ajouter un bouton poussoir sur notre baguette pour que celle-ci sache quand est-ce que nous voulons envoyer des ordres ou pas. Ce qui permettra à l'utilisateur de pouvoir garder la baguette en main sans devoir faire attention à ses mouvements ou sans devoir éteindre la baguette lorsque nous ne voulons pas envoyer d'ordre. &lt;br /&gt;
&lt;br /&gt;
Ce bouton nous permettra également de déterminer dans quel mode nous voulons guider le robot maître (qui sera expliqué plus bas).&lt;br /&gt;
&lt;br /&gt;
=== Vibreur ===&lt;br /&gt;
&lt;br /&gt;
Un vibreur a été ajouté à la baguette pour avoir un retour sur le bon envoie de l'instruction. Attention, la vibration est seulement ici pour dire qu'une instruction a été envoyée avec succès et non pas pour notifier sa bonne réception sur le robot maître. Par conséquent, il se peut que la baguette vibre sans pour autant que le robot maître interprète correctement les ordres et les réalise.&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sparkfun.jpg|vignette|Sparkfun esp32]]&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
La baguette a été programmée de sorte à contrôler le robot maître manuellement ou automatiquement. &lt;br /&gt;
&lt;br /&gt;
Le mode manuel s'enclenche lorsque l'utilisateur maintient le bouton de la baguette plus d'une demi-seconde environ. Lorsque celui-ci se retrouve dans le mode manuel, il aura la possibilité de contrôler le robot selon les ordres donnés plus bas. Tant que le bouton est maintenu, le dernier ordre envoyé est « gelé » (c’est-à-dire que donner un coup de baguette vers la droite et ne pas envoyer de nouvel ordre va maintenir ce dernier) et il suffit de faire des gestes différents pour envoyer de nouveaux ordres. Le robot maître recevra l'instruction de s'arrêter seulement si l'utilisateur relâche le bouton. Chaque ordre envoyé avec succès sera manifesté par une petite vibration au niveau de la baguette.&lt;br /&gt;
&lt;br /&gt;
Cette fois, si nous voulons que le robot soit en mode automatique (réalisation d'une chorégraphie), il suffit de donner un coup de baguette vers la gauche (chorée 1) ou la droite (chorée 2) tout en ayant le bouton relâché. Cette action aura pour effet de retenir le dernier mouvement (seulement gauche ou droite pris en compte). Un appuie très bref sur le bouton va permettre à la baguette de regarder si l'utilisateur a mis en mémoire une des deux chorégraphies connues. Si c'est le cas, la baguette enverra au robot maître, l'instruction adéquate pour que celui-ci se lance dans une chorégraphie. Dans le cas contraire, on enverra tout simplement un stop au robot maître pour qu'il ne fasse rien. &lt;br /&gt;
&lt;br /&gt;
Une fois que le robot s'est élancé dans sa chorégraphie, la baguette se remet à un état « neutre » (instruction stop préchargée). Pour stopper la chorégraphie, il suffira donc d'appuyer brièvement sur le bouton pour envoyer l'instruction stop ou alors de lui envoyer des instructions en mode manuel comme décrit plus haut. Actuellement, le robot prend le temps de terminer sa chorégraphie avant de s'arrêter ou avant d'effectuer les commandes manuelles envoyées. Dans le cas où le robot s'est élancé dans sa chorégraphie et qu'il ne reçoit pas de nouvel ordre, il continue sa chorégraphie en boucle.&lt;br /&gt;
&lt;br /&gt;
La baguette traite directement l'information issue de ses capteurs, les interprète et les transforme en ordre qui seront directement transmis au robot-maître.&lt;br /&gt;
&lt;br /&gt;
=== Liste des ordres disponibles ===&lt;br /&gt;
&lt;br /&gt;
La liste est ordre est :&lt;br /&gt;
*Coup vers l'avant: fait avancer le robot&lt;br /&gt;
*Coup vers l'arrière: fait reculer le robot&lt;br /&gt;
*Coup vers la droite: fait aller le robot vers la droite&lt;br /&gt;
*Coup vers la gauche: fait aller le robot vers la gauche&lt;br /&gt;
*Rotation droite: fait tourner le robot dans le sens anti-trigonométrique&lt;br /&gt;
*Rotation gauche: fait tourner le robot dans le sens trigonométrique&lt;br /&gt;
&lt;br /&gt;
== Aspect esthétique ==&lt;br /&gt;
&lt;br /&gt;
=== Fabrication ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Rendu_Baguette_Magique.JPG|vignette|La baguette modélisé sous Solid]]&lt;br /&gt;
&lt;br /&gt;
La baguette a été modélisé sur SolidWorks puis imprimé en 3D.&lt;br /&gt;
&lt;br /&gt;
=== Décorations supplémentaires ===&lt;br /&gt;
[[Fichier:Bande_de_led.jpg|vignette|Bande de led]]&lt;br /&gt;
&lt;br /&gt;
Une [https://www.adafruit.com/product/1506 bande de LED] est enroulé autour de la baguette pour coller au mieux au coté ludique des robots.&lt;br /&gt;
&lt;br /&gt;
Ses fonctionnalités sont:&lt;br /&gt;
*Prendre une couleur différente pour chaque ordre&lt;br /&gt;
*Plus l'ordre est maintenu plus le nombre de led illuminé augmente&lt;br /&gt;
*Si l'on change l'ordre les led &amp;quot;redescendent&amp;quot; rapidement avant de &amp;quot;remonter&amp;quot; dans une autre couleur&lt;br /&gt;
*Si le bouton est relâché les led &amp;quot;redescendent&amp;quot;&lt;br /&gt;
&lt;br /&gt;
La bande de led est alimenté via une batterie de 5V différente de la batterie alimentant la carte en elle même.&lt;br /&gt;
&lt;br /&gt;
= Le Robot-Maître =&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Robot maitre.jpg|vignette|Photo du robot-maître]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: [http://www.kysanelectronics.com/graphics/RK-370CA.pdf Mabuchi rk-370-CA]&lt;br /&gt;
*Carte de contrôle: Arduino Teensy et Sparkfun esp32 communicant ensemble par UART&lt;br /&gt;
*Interface de puissance: [https://ujm.webgroup.fr/images/7/7a/PCB_Robot4Voies.pdf Carte fournie par TSE]&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
*Régulateur de tension : Traco Power&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
Le code des robots sera séparé en trois parties distinctes : &lt;br /&gt;
*la commande du robot&lt;br /&gt;
*la communication&lt;br /&gt;
&lt;br /&gt;
Des interruptions sont utilisées par le programme pour récupérer les informations générées par les roues codeuse afin de soulager le processeur.&lt;br /&gt;
&lt;br /&gt;
=== La commande du robot ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Communication.png|vignette|droite|Schéma de communication global]]&lt;br /&gt;
&lt;br /&gt;
Les moteurs sont pilotés via différentes fonctions:&lt;br /&gt;
*Avancer&lt;br /&gt;
*Reculer&lt;br /&gt;
*Aller à droite&lt;br /&gt;
*Aller à gauche&lt;br /&gt;
*Aller en biais en haut à droite&lt;br /&gt;
*Aller en biais en haut à gauche&lt;br /&gt;
*Aller en biais en bas à droite&lt;br /&gt;
*Aller en biais en bas à gauche&lt;br /&gt;
*Rotation dans le sens trigonométrique&lt;br /&gt;
*Rotation dans le sens anti trigonométrique&lt;br /&gt;
&lt;br /&gt;
=== La communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le robot-maître reçoit ses ordres de la baguette par bluetooth.&lt;br /&gt;
&lt;br /&gt;
La communication avec les robot-esclaves se fait via une communication Wi-Fi, le robot-maître crée un serveur auquel se connecte les robot-esclaves pour récupérer leurs ordres.&lt;br /&gt;
&lt;br /&gt;
= Les Robot-Esclaves =&lt;br /&gt;
[[Fichier:Robot esclave.jpg|vignette|droite|Photo d'un des robot-esclaves]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: Hennkwell HG37D670WE12-052&lt;br /&gt;
*Carte de contrôle: Arduino Teensy&lt;br /&gt;
*Interface de puissance: Carte fournie par TSE&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Les robot-esclaves reçoivent exactement les mêmes ordres que ceux reçu par le robot-maître étant donné que le programme est le même pour les 3 robots.&lt;br /&gt;
&lt;br /&gt;
= Références externes =&lt;br /&gt;
&lt;br /&gt;
[[https://ujm.webgroup.fr/index.php?title=Robots_danseurs_technique Documentation technique]]&lt;/div&gt;</summary>
		<author><name>Lo.brandon</name></author>
		
	</entry>
	<entry>
		<id>https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10277</id>
		<title>Robots danseurs</title>
		<link rel="alternate" type="text/html" href="https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10277"/>
		<updated>2019-05-19T17:25:30Z</updated>

		<summary type="html">&lt;p&gt;Lo.brandon : /* Vibreur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projet du module Robots Communicants de Telecom Saint-Etienne 2018/2019.&amp;lt;br /&amp;gt;&lt;br /&gt;
= Sujet =&lt;br /&gt;
L'utilisateur doit pouvoir commander un robot &amp;quot;maître&amp;quot; à distance au moyen d'une baguette. Deux robots esclaves doivent, en temps réel, imiter les mouvements du maître.&lt;br /&gt;
&lt;br /&gt;
= Objectif du projet =&lt;br /&gt;
&lt;br /&gt;
Créer une &amp;quot;baguette magique&amp;quot; permettant de donner des ordres de façon fluide et intuitive à un robot-maître qui doit ensuite transmettre les ordres qu'il reçoit à un couple de robot-esclaves&lt;br /&gt;
&lt;br /&gt;
== Diagrammes fonctionnels ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe1.png|thumb|center|Diagramme fonctionnel de classe 1]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe_2t.png|1000px|thumb|center|Diagramme fonctionnel de classe 2]]&lt;br /&gt;
&lt;br /&gt;
== Spécifications fonctionnelles ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Spécifications fonctionnelles&lt;br /&gt;
|-&lt;br /&gt;
|Fonction principale&lt;br /&gt;
|Diriger des robot avec une baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 1&lt;br /&gt;
|Établir une communication entre les robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 2&lt;br /&gt;
|Empêcher les ordres non voulu&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 3&lt;br /&gt;
|Implémenter un feedback physique à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 4&lt;br /&gt;
|Implémenter un feedback lumineux à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 5&lt;br /&gt;
|Implémenter un feedback lumineux aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 6&lt;br /&gt;
|Implémenter un feedback sonore aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 7&lt;br /&gt;
|Créer des chorégraphies&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= La Baguette =&lt;br /&gt;
&lt;br /&gt;
La baguette sert à contrôler le robot maître par le biais de ses mouvements.&lt;br /&gt;
&lt;br /&gt;
Elle doit donc pouvoir:&lt;br /&gt;
*Mesurer les amplitudes et directions de ses accélérations linéaire et rotative&lt;br /&gt;
*Traiter l'information pour en faire des ordres compréhensible par le robot-maître &lt;br /&gt;
*Pouvoir communiquer avec le robot-maître&lt;br /&gt;
&lt;br /&gt;
== Composants électroniques ==&lt;br /&gt;
&lt;br /&gt;
=== Carte de contrôle ===&lt;br /&gt;
&lt;br /&gt;
La [https://learn.sparkfun.com/tutorials/esp32-thing-hookup-guide/all carte Sparkfun esp32] a été retenu en raison de sa communication BLE malgré sa grande taille comparé à la [https://www.pjrc.com/teensy/ carte Arduino Teensy].&lt;br /&gt;
&lt;br /&gt;
Cette carte est alimentée via une batterie de 3.6V et 600mAh.&lt;br /&gt;
&lt;br /&gt;
La carte de contrôle et l'appareil de mesure communiquent ensemble par communication I2C.&lt;br /&gt;
&lt;br /&gt;
=== Appareil de mesure ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gyro.jpg|vignette|Axes d'un gyromètre]]&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Deux gyromètre sont en compétition, la [https://www.pololu.com/product/2470 Pololu AltMU-10 v4] et le [http://wiki.seeedstudio.com/Grove-IMU_10DOF/ Grove IMU 10DOF v1.1]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Critères de choix retenus (triés par ordre d'importance):&lt;br /&gt;
# la fiabilité du capteur (absence de valeurs aberrantes)&lt;br /&gt;
# la taille (il doit être facile à intégrer sur la baguette)&lt;br /&gt;
# la facilité de programmation &lt;br /&gt;
# la précision (dans le cas ou la vitesse de la baguette serve au pilotage du robot)&lt;br /&gt;
&lt;br /&gt;
Finalement c'est le Pololu qui a été retenu en raison de sa très petite taille par rapport au capteur Grove.&lt;br /&gt;
&lt;br /&gt;
=== Bouton poussoir ===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait le choix d'ajouter un bouton poussoir sur notre baguette pour que celle-ci sache quand est-ce que nous voulons envoyer des ordres ou pas. Ce qui permettra à l'utilisateur de pouvoir garder la baguette en main sans devoir faire attention à ses mouvements ou sans devoir éteindre la baguette lorsque nous ne voulons pas envoyer d'ordre. &lt;br /&gt;
&lt;br /&gt;
Ce bouton nous permettra également de déterminer dans quel mode nous voulons guider le robot maître (qui sera expliqué plus bas).&lt;br /&gt;
&lt;br /&gt;
=== Vibreur ===&lt;br /&gt;
&lt;br /&gt;
Un vibreur a été ajouté à la baguette pour avoir un retour sur le bon envoie de l'instruction. Attention, la vibration est seulement ici pour dire qu'une instruction a été envoyée avec succès et non pas pour notifier sa bonne réception sur le robot maître.&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sparkfun.jpg|vignette|Sparkfun esp32]]&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
La baguette a été programmée de sorte à contrôler le robot maître manuellement ou automatiquement. &lt;br /&gt;
&lt;br /&gt;
Le mode manuel s'enclenche lorsque l'utilisateur maintient le bouton de la baguette plus d'une demi-seconde environ. Lorsque celui-ci se retrouve dans le mode manuel, il aura la possibilité de contrôler le robot selon les ordres donnés plus bas. Tant que le bouton est maintenu, le dernier ordre envoyé est « gelé » (c’est-à-dire que donner un coup de baguette vers la droite et ne pas envoyer de nouvel ordre va maintenir ce dernier) et il suffit de faire des gestes différents pour envoyer de nouveaux ordres. Le robot maître recevra l'instruction de s'arrêter seulement si l'utilisateur relâche le bouton. Chaque ordre envoyé avec succès sera manifesté par une petite vibration au niveau de la baguette.&lt;br /&gt;
&lt;br /&gt;
Cette fois, si nous voulons que le robot soit en mode automatique (réalisation d'une chorégraphie), il suffit de donner un coup de baguette vers la gauche (chorée 1) ou la droite (chorée 2) tout en ayant le bouton relâché. Cette action aura pour effet de retenir le dernier mouvement (seulement gauche ou droite pris en compte). Un appuie très bref sur le bouton va permettre à la baguette de regarder si l'utilisateur a mis en mémoire une des deux chorégraphies connues. Si c'est le cas, la baguette enverra au robot maître, l'instruction adéquate pour que celui-ci se lance dans une chorégraphie. Dans le cas contraire, on enverra tout simplement un stop au robot maître pour qu'il ne fasse rien. &lt;br /&gt;
&lt;br /&gt;
Une fois que le robot s'est élancé dans sa chorégraphie, la baguette se remet à un état « neutre » (instruction stop préchargée). Pour stopper la chorégraphie, il suffira donc d'appuyer brièvement sur le bouton pour envoyer l'instruction stop ou alors de lui envoyer des instructions en mode manuel comme décrit plus haut. Actuellement, le robot prend le temps de terminer sa chorégraphie avant de s'arrêter ou avant d'effectuer les commandes manuelles envoyées. Dans le cas où le robot s'est élancé dans sa chorégraphie et qu'il ne reçoit pas de nouvel ordre, il continue sa chorégraphie en boucle.&lt;br /&gt;
&lt;br /&gt;
La baguette traite directement l'information issue de ses capteurs, les interprète et les transforme en ordre qui seront directement transmis au robot-maître.&lt;br /&gt;
&lt;br /&gt;
=== Liste des ordres disponibles ===&lt;br /&gt;
&lt;br /&gt;
La liste est ordre est :&lt;br /&gt;
*Coup vers l'avant: fait avancer le robot&lt;br /&gt;
*Coup vers l'arrière: fait reculer le robot&lt;br /&gt;
*Coup vers la droite: fait aller le robot vers la droite&lt;br /&gt;
*Coup vers la gauche: fait aller le robot vers la gauche&lt;br /&gt;
*Rotation droite: fait tourner le robot dans le sens anti-trigonométrique&lt;br /&gt;
*Rotation gauche: fait tourner le robot dans le sens trigonométrique&lt;br /&gt;
&lt;br /&gt;
== Aspect esthétique ==&lt;br /&gt;
&lt;br /&gt;
=== Fabrication ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Rendu_Baguette_Magique.JPG|vignette|La baguette modélisé sous Solid]]&lt;br /&gt;
&lt;br /&gt;
La baguette a été modélisé sur SolidWorks puis imprimé en 3D.&lt;br /&gt;
&lt;br /&gt;
=== Décorations supplémentaires ===&lt;br /&gt;
[[Fichier:Bande_de_led.jpg|vignette|Bande de led]]&lt;br /&gt;
&lt;br /&gt;
Une [https://www.adafruit.com/product/1506 bande de LED] est enroulé autour de la baguette pour coller au mieux au coté ludique des robots.&lt;br /&gt;
&lt;br /&gt;
Ses fonctionnalités sont:&lt;br /&gt;
*Prendre une couleur différente pour chaque ordre&lt;br /&gt;
*Plus l'ordre est maintenu plus le nombre de led illuminé augmente&lt;br /&gt;
*Si l'on change l'ordre les led &amp;quot;redescendent&amp;quot; rapidement avant de &amp;quot;remonter&amp;quot; dans une autre couleur&lt;br /&gt;
*Si le bouton est relâché les led &amp;quot;redescendent&amp;quot;&lt;br /&gt;
&lt;br /&gt;
La bande de led est alimenté via une batterie de 5V différente de la batterie alimentant la carte en elle même.&lt;br /&gt;
&lt;br /&gt;
= Le Robot-Maître =&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Robot maitre.jpg|vignette|Photo du robot-maître]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: [http://www.kysanelectronics.com/graphics/RK-370CA.pdf Mabuchi rk-370-CA]&lt;br /&gt;
*Carte de contrôle: Arduino Teensy et Sparkfun esp32 communicant ensemble par UART&lt;br /&gt;
*Interface de puissance: [https://ujm.webgroup.fr/images/7/7a/PCB_Robot4Voies.pdf Carte fournie par TSE]&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
*Régulateur de tension : Traco Power&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
Le code des robots sera séparé en trois parties distinctes : &lt;br /&gt;
*la commande du robot&lt;br /&gt;
*la communication&lt;br /&gt;
&lt;br /&gt;
Des interruptions sont utilisées par le programme pour récupérer les informations générées par les roues codeuse afin de soulager le processeur.&lt;br /&gt;
&lt;br /&gt;
=== La commande du robot ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Communication.png|vignette|droite|Schéma de communication global]]&lt;br /&gt;
&lt;br /&gt;
Les moteurs sont pilotés via différentes fonctions:&lt;br /&gt;
*Avancer&lt;br /&gt;
*Reculer&lt;br /&gt;
*Aller à droite&lt;br /&gt;
*Aller à gauche&lt;br /&gt;
*Aller en biais en haut à droite&lt;br /&gt;
*Aller en biais en haut à gauche&lt;br /&gt;
*Aller en biais en bas à droite&lt;br /&gt;
*Aller en biais en bas à gauche&lt;br /&gt;
*Rotation dans le sens trigonométrique&lt;br /&gt;
*Rotation dans le sens anti trigonométrique&lt;br /&gt;
&lt;br /&gt;
=== La communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le robot-maître reçoit ses ordres de la baguette par bluetooth.&lt;br /&gt;
&lt;br /&gt;
La communication avec les robot-esclaves se fait via une communication Wi-Fi, le robot-maître crée un serveur auquel se connecte les robot-esclaves pour récupérer leurs ordres.&lt;br /&gt;
&lt;br /&gt;
= Les Robot-Esclaves =&lt;br /&gt;
[[Fichier:Robot esclave.jpg|vignette|droite|Photo d'un des robot-esclaves]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: Hennkwell HG37D670WE12-052&lt;br /&gt;
*Carte de contrôle: Arduino Teensy&lt;br /&gt;
*Interface de puissance: Carte fournie par TSE&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Les robot-esclaves reçoivent exactement les mêmes ordres que ceux reçu par le robot-maître étant donné que le programme est le même pour les 3 robots.&lt;br /&gt;
&lt;br /&gt;
= Références externes =&lt;br /&gt;
&lt;br /&gt;
[[https://ujm.webgroup.fr/index.php?title=Robots_danseurs_technique Documentation technique]]&lt;/div&gt;</summary>
		<author><name>Lo.brandon</name></author>
		
	</entry>
	<entry>
		<id>https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10276</id>
		<title>Robots danseurs</title>
		<link rel="alternate" type="text/html" href="https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10276"/>
		<updated>2019-05-19T17:24:58Z</updated>

		<summary type="html">&lt;p&gt;Lo.brandon : /* Composants électroniques */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projet du module Robots Communicants de Telecom Saint-Etienne 2018/2019.&amp;lt;br /&amp;gt;&lt;br /&gt;
= Sujet =&lt;br /&gt;
L'utilisateur doit pouvoir commander un robot &amp;quot;maître&amp;quot; à distance au moyen d'une baguette. Deux robots esclaves doivent, en temps réel, imiter les mouvements du maître.&lt;br /&gt;
&lt;br /&gt;
= Objectif du projet =&lt;br /&gt;
&lt;br /&gt;
Créer une &amp;quot;baguette magique&amp;quot; permettant de donner des ordres de façon fluide et intuitive à un robot-maître qui doit ensuite transmettre les ordres qu'il reçoit à un couple de robot-esclaves&lt;br /&gt;
&lt;br /&gt;
== Diagrammes fonctionnels ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe1.png|thumb|center|Diagramme fonctionnel de classe 1]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe_2t.png|1000px|thumb|center|Diagramme fonctionnel de classe 2]]&lt;br /&gt;
&lt;br /&gt;
== Spécifications fonctionnelles ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Spécifications fonctionnelles&lt;br /&gt;
|-&lt;br /&gt;
|Fonction principale&lt;br /&gt;
|Diriger des robot avec une baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 1&lt;br /&gt;
|Établir une communication entre les robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 2&lt;br /&gt;
|Empêcher les ordres non voulu&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 3&lt;br /&gt;
|Implémenter un feedback physique à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 4&lt;br /&gt;
|Implémenter un feedback lumineux à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 5&lt;br /&gt;
|Implémenter un feedback lumineux aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 6&lt;br /&gt;
|Implémenter un feedback sonore aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 7&lt;br /&gt;
|Créer des chorégraphies&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= La Baguette =&lt;br /&gt;
&lt;br /&gt;
La baguette sert à contrôler le robot maître par le biais de ses mouvements.&lt;br /&gt;
&lt;br /&gt;
Elle doit donc pouvoir:&lt;br /&gt;
*Mesurer les amplitudes et directions de ses accélérations linéaire et rotative&lt;br /&gt;
*Traiter l'information pour en faire des ordres compréhensible par le robot-maître &lt;br /&gt;
*Pouvoir communiquer avec le robot-maître&lt;br /&gt;
&lt;br /&gt;
== Composants électroniques ==&lt;br /&gt;
&lt;br /&gt;
=== Carte de contrôle ===&lt;br /&gt;
&lt;br /&gt;
La [https://learn.sparkfun.com/tutorials/esp32-thing-hookup-guide/all carte Sparkfun esp32] a été retenu en raison de sa communication BLE malgré sa grande taille comparé à la [https://www.pjrc.com/teensy/ carte Arduino Teensy].&lt;br /&gt;
&lt;br /&gt;
Cette carte est alimentée via une batterie de 3.6V et 600mAh.&lt;br /&gt;
&lt;br /&gt;
La carte de contrôle et l'appareil de mesure communiquent ensemble par communication I2C.&lt;br /&gt;
&lt;br /&gt;
=== Appareil de mesure ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gyro.jpg|vignette|Axes d'un gyromètre]]&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Deux gyromètre sont en compétition, la [https://www.pololu.com/product/2470 Pololu AltMU-10 v4] et le [http://wiki.seeedstudio.com/Grove-IMU_10DOF/ Grove IMU 10DOF v1.1]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Critères de choix retenus (triés par ordre d'importance):&lt;br /&gt;
# la fiabilité du capteur (absence de valeurs aberrantes)&lt;br /&gt;
# la taille (il doit être facile à intégrer sur la baguette)&lt;br /&gt;
# la facilité de programmation &lt;br /&gt;
# la précision (dans le cas ou la vitesse de la baguette serve au pilotage du robot)&lt;br /&gt;
&lt;br /&gt;
Finalement c'est le Pololu qui a été retenu en raison de sa très petite taille par rapport au capteur Grove.&lt;br /&gt;
&lt;br /&gt;
=== Bouton poussoir ===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait le choix d'ajouter un bouton poussoir sur notre baguette pour que celle-ci sache quand est-ce que nous voulons envoyer des ordres ou pas. Ce qui permettra à l'utilisateur de pouvoir garder la baguette en main sans devoir faire attention à ses mouvements ou sans devoir éteindre la baguette lorsque nous ne voulons pas envoyer d'ordre. &lt;br /&gt;
&lt;br /&gt;
Ce bouton nous permettra également de déterminer dans quel mode nous voulons guider le robot maître (qui sera expliqué plus bas).&lt;br /&gt;
&lt;br /&gt;
=== Vibreur ===&lt;br /&gt;
&lt;br /&gt;
Un vibreur a été ajouté à la baguette pour avoir un retour sur le bon envoie de l'instruction. Attention, la vibration est seulement ici pour dire qu'une instruction a été envoyée et non pas pour notifier sa bonne réception sur le robot maître.&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sparkfun.jpg|vignette|Sparkfun esp32]]&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
La baguette a été programmée de sorte à contrôler le robot maître manuellement ou automatiquement. &lt;br /&gt;
&lt;br /&gt;
Le mode manuel s'enclenche lorsque l'utilisateur maintient le bouton de la baguette plus d'une demi-seconde environ. Lorsque celui-ci se retrouve dans le mode manuel, il aura la possibilité de contrôler le robot selon les ordres donnés plus bas. Tant que le bouton est maintenu, le dernier ordre envoyé est « gelé » (c’est-à-dire que donner un coup de baguette vers la droite et ne pas envoyer de nouvel ordre va maintenir ce dernier) et il suffit de faire des gestes différents pour envoyer de nouveaux ordres. Le robot maître recevra l'instruction de s'arrêter seulement si l'utilisateur relâche le bouton. Chaque ordre envoyé avec succès sera manifesté par une petite vibration au niveau de la baguette.&lt;br /&gt;
&lt;br /&gt;
Cette fois, si nous voulons que le robot soit en mode automatique (réalisation d'une chorégraphie), il suffit de donner un coup de baguette vers la gauche (chorée 1) ou la droite (chorée 2) tout en ayant le bouton relâché. Cette action aura pour effet de retenir le dernier mouvement (seulement gauche ou droite pris en compte). Un appuie très bref sur le bouton va permettre à la baguette de regarder si l'utilisateur a mis en mémoire une des deux chorégraphies connues. Si c'est le cas, la baguette enverra au robot maître, l'instruction adéquate pour que celui-ci se lance dans une chorégraphie. Dans le cas contraire, on enverra tout simplement un stop au robot maître pour qu'il ne fasse rien. &lt;br /&gt;
&lt;br /&gt;
Une fois que le robot s'est élancé dans sa chorégraphie, la baguette se remet à un état « neutre » (instruction stop préchargée). Pour stopper la chorégraphie, il suffira donc d'appuyer brièvement sur le bouton pour envoyer l'instruction stop ou alors de lui envoyer des instructions en mode manuel comme décrit plus haut. Actuellement, le robot prend le temps de terminer sa chorégraphie avant de s'arrêter ou avant d'effectuer les commandes manuelles envoyées. Dans le cas où le robot s'est élancé dans sa chorégraphie et qu'il ne reçoit pas de nouvel ordre, il continue sa chorégraphie en boucle.&lt;br /&gt;
&lt;br /&gt;
La baguette traite directement l'information issue de ses capteurs, les interprète et les transforme en ordre qui seront directement transmis au robot-maître.&lt;br /&gt;
&lt;br /&gt;
=== Liste des ordres disponibles ===&lt;br /&gt;
&lt;br /&gt;
La liste est ordre est :&lt;br /&gt;
*Coup vers l'avant: fait avancer le robot&lt;br /&gt;
*Coup vers l'arrière: fait reculer le robot&lt;br /&gt;
*Coup vers la droite: fait aller le robot vers la droite&lt;br /&gt;
*Coup vers la gauche: fait aller le robot vers la gauche&lt;br /&gt;
*Rotation droite: fait tourner le robot dans le sens anti-trigonométrique&lt;br /&gt;
*Rotation gauche: fait tourner le robot dans le sens trigonométrique&lt;br /&gt;
&lt;br /&gt;
== Aspect esthétique ==&lt;br /&gt;
&lt;br /&gt;
=== Fabrication ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Rendu_Baguette_Magique.JPG|vignette|La baguette modélisé sous Solid]]&lt;br /&gt;
&lt;br /&gt;
La baguette a été modélisé sur SolidWorks puis imprimé en 3D.&lt;br /&gt;
&lt;br /&gt;
=== Décorations supplémentaires ===&lt;br /&gt;
[[Fichier:Bande_de_led.jpg|vignette|Bande de led]]&lt;br /&gt;
&lt;br /&gt;
Une [https://www.adafruit.com/product/1506 bande de LED] est enroulé autour de la baguette pour coller au mieux au coté ludique des robots.&lt;br /&gt;
&lt;br /&gt;
Ses fonctionnalités sont:&lt;br /&gt;
*Prendre une couleur différente pour chaque ordre&lt;br /&gt;
*Plus l'ordre est maintenu plus le nombre de led illuminé augmente&lt;br /&gt;
*Si l'on change l'ordre les led &amp;quot;redescendent&amp;quot; rapidement avant de &amp;quot;remonter&amp;quot; dans une autre couleur&lt;br /&gt;
*Si le bouton est relâché les led &amp;quot;redescendent&amp;quot;&lt;br /&gt;
&lt;br /&gt;
La bande de led est alimenté via une batterie de 5V différente de la batterie alimentant la carte en elle même.&lt;br /&gt;
&lt;br /&gt;
= Le Robot-Maître =&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Robot maitre.jpg|vignette|Photo du robot-maître]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: [http://www.kysanelectronics.com/graphics/RK-370CA.pdf Mabuchi rk-370-CA]&lt;br /&gt;
*Carte de contrôle: Arduino Teensy et Sparkfun esp32 communicant ensemble par UART&lt;br /&gt;
*Interface de puissance: [https://ujm.webgroup.fr/images/7/7a/PCB_Robot4Voies.pdf Carte fournie par TSE]&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
*Régulateur de tension : Traco Power&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
Le code des robots sera séparé en trois parties distinctes : &lt;br /&gt;
*la commande du robot&lt;br /&gt;
*la communication&lt;br /&gt;
&lt;br /&gt;
Des interruptions sont utilisées par le programme pour récupérer les informations générées par les roues codeuse afin de soulager le processeur.&lt;br /&gt;
&lt;br /&gt;
=== La commande du robot ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Communication.png|vignette|droite|Schéma de communication global]]&lt;br /&gt;
&lt;br /&gt;
Les moteurs sont pilotés via différentes fonctions:&lt;br /&gt;
*Avancer&lt;br /&gt;
*Reculer&lt;br /&gt;
*Aller à droite&lt;br /&gt;
*Aller à gauche&lt;br /&gt;
*Aller en biais en haut à droite&lt;br /&gt;
*Aller en biais en haut à gauche&lt;br /&gt;
*Aller en biais en bas à droite&lt;br /&gt;
*Aller en biais en bas à gauche&lt;br /&gt;
*Rotation dans le sens trigonométrique&lt;br /&gt;
*Rotation dans le sens anti trigonométrique&lt;br /&gt;
&lt;br /&gt;
=== La communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le robot-maître reçoit ses ordres de la baguette par bluetooth.&lt;br /&gt;
&lt;br /&gt;
La communication avec les robot-esclaves se fait via une communication Wi-Fi, le robot-maître crée un serveur auquel se connecte les robot-esclaves pour récupérer leurs ordres.&lt;br /&gt;
&lt;br /&gt;
= Les Robot-Esclaves =&lt;br /&gt;
[[Fichier:Robot esclave.jpg|vignette|droite|Photo d'un des robot-esclaves]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: Hennkwell HG37D670WE12-052&lt;br /&gt;
*Carte de contrôle: Arduino Teensy&lt;br /&gt;
*Interface de puissance: Carte fournie par TSE&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Les robot-esclaves reçoivent exactement les mêmes ordres que ceux reçu par le robot-maître étant donné que le programme est le même pour les 3 robots.&lt;br /&gt;
&lt;br /&gt;
= Références externes =&lt;br /&gt;
&lt;br /&gt;
[[https://ujm.webgroup.fr/index.php?title=Robots_danseurs_technique Documentation technique]]&lt;/div&gt;</summary>
		<author><name>Lo.brandon</name></author>
		
	</entry>
	<entry>
		<id>https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10275</id>
		<title>Robots danseurs</title>
		<link rel="alternate" type="text/html" href="https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10275"/>
		<updated>2019-05-19T17:22:12Z</updated>

		<summary type="html">&lt;p&gt;Lo.brandon : /* Programmation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projet du module Robots Communicants de Telecom Saint-Etienne 2018/2019.&amp;lt;br /&amp;gt;&lt;br /&gt;
= Sujet =&lt;br /&gt;
L'utilisateur doit pouvoir commander un robot &amp;quot;maître&amp;quot; à distance au moyen d'une baguette. Deux robots esclaves doivent, en temps réel, imiter les mouvements du maître.&lt;br /&gt;
&lt;br /&gt;
= Objectif du projet =&lt;br /&gt;
&lt;br /&gt;
Créer une &amp;quot;baguette magique&amp;quot; permettant de donner des ordres de façon fluide et intuitive à un robot-maître qui doit ensuite transmettre les ordres qu'il reçoit à un couple de robot-esclaves&lt;br /&gt;
&lt;br /&gt;
== Diagrammes fonctionnels ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe1.png|thumb|center|Diagramme fonctionnel de classe 1]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe_2t.png|1000px|thumb|center|Diagramme fonctionnel de classe 2]]&lt;br /&gt;
&lt;br /&gt;
== Spécifications fonctionnelles ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Spécifications fonctionnelles&lt;br /&gt;
|-&lt;br /&gt;
|Fonction principale&lt;br /&gt;
|Diriger des robot avec une baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 1&lt;br /&gt;
|Établir une communication entre les robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 2&lt;br /&gt;
|Empêcher les ordres non voulu&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 3&lt;br /&gt;
|Implémenter un feedback physique à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 4&lt;br /&gt;
|Implémenter un feedback lumineux à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 5&lt;br /&gt;
|Implémenter un feedback lumineux aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 6&lt;br /&gt;
|Implémenter un feedback sonore aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 7&lt;br /&gt;
|Créer des chorégraphies&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= La Baguette =&lt;br /&gt;
&lt;br /&gt;
La baguette sert à contrôler le robot maître par le biais de ses mouvements.&lt;br /&gt;
&lt;br /&gt;
Elle doit donc pouvoir:&lt;br /&gt;
*Mesurer les amplitudes et directions de ses accélérations linéaire et rotative&lt;br /&gt;
*Traiter l'information pour en faire des ordres compréhensible par le robot-maître &lt;br /&gt;
*Pouvoir communiquer avec le robot-maître&lt;br /&gt;
&lt;br /&gt;
== Composants électroniques ==&lt;br /&gt;
&lt;br /&gt;
=== Carte de contrôle ===&lt;br /&gt;
&lt;br /&gt;
La [https://learn.sparkfun.com/tutorials/esp32-thing-hookup-guide/all carte Sparkfun esp32] a été retenu en raison de sa communication BLE malgré sa grande taille comparé à la [https://www.pjrc.com/teensy/ carte Arduino Teensy].&lt;br /&gt;
&lt;br /&gt;
Cette carte est alimentée via une batterie de 3.6V et 600mAh.&lt;br /&gt;
&lt;br /&gt;
La carte de contrôle et l'appareil de mesure communiquent ensemble par communication I2C.&lt;br /&gt;
&lt;br /&gt;
=== Appareil de mesure ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gyro.jpg|vignette|Axes d'un gyromètre]]&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Deux gyromètre sont en compétition, la [https://www.pololu.com/product/2470 Pololu AltMU-10 v4] et le [http://wiki.seeedstudio.com/Grove-IMU_10DOF/ Grove IMU 10DOF v1.1]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Critères de choix retenus (triés par ordre d'importance):&lt;br /&gt;
# la fiabilité du capteur (absence de valeurs aberrantes)&lt;br /&gt;
# la taille (il doit être facile à intégrer sur la baguette)&lt;br /&gt;
# la facilité de programmation &lt;br /&gt;
# la précision (dans le cas ou la vitesse de la baguette serve au pilotage du robot)&lt;br /&gt;
&lt;br /&gt;
Finalement c'est le Pololu qui a été retenu en raison de sa très petite taille par rapport au capteur Grove.&lt;br /&gt;
&lt;br /&gt;
=== Bouton poussoir ===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait le choix d'ajouter un bouton poussoir sur notre baguette pour que celle-ci sache quand est-ce que nous voulons envoyer des ordres ou pas. Ce qui permettra à l'utilisateur de pouvoir garder la baguette en main sans devoir faire attention à ses mouvements ou sans devoir éteindre la baguette lorsque nous ne voulons pas envoyer d'ordre. &lt;br /&gt;
&lt;br /&gt;
Ce bouton nous permettra également de déterminer dans quel mode nous voulons guider le robot maître (qui sera expliqué plus bas).&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sparkfun.jpg|vignette|Sparkfun esp32]]&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
La baguette a été programmée de sorte à contrôler le robot maître manuellement ou automatiquement. &lt;br /&gt;
&lt;br /&gt;
Le mode manuel s'enclenche lorsque l'utilisateur maintient le bouton de la baguette plus d'une demi-seconde environ. Lorsque celui-ci se retrouve dans le mode manuel, il aura la possibilité de contrôler le robot selon les ordres donnés plus bas. Tant que le bouton est maintenu, le dernier ordre envoyé est « gelé » (c’est-à-dire que donner un coup de baguette vers la droite et ne pas envoyer de nouvel ordre va maintenir ce dernier) et il suffit de faire des gestes différents pour envoyer de nouveaux ordres. Le robot maître recevra l'instruction de s'arrêter seulement si l'utilisateur relâche le bouton. Chaque ordre envoyé avec succès sera manifesté par une petite vibration au niveau de la baguette.&lt;br /&gt;
&lt;br /&gt;
Cette fois, si nous voulons que le robot soit en mode automatique (réalisation d'une chorégraphie), il suffit de donner un coup de baguette vers la gauche (chorée 1) ou la droite (chorée 2) tout en ayant le bouton relâché. Cette action aura pour effet de retenir le dernier mouvement (seulement gauche ou droite pris en compte). Un appuie très bref sur le bouton va permettre à la baguette de regarder si l'utilisateur a mis en mémoire une des deux chorégraphies connues. Si c'est le cas, la baguette enverra au robot maître, l'instruction adéquate pour que celui-ci se lance dans une chorégraphie. Dans le cas contraire, on enverra tout simplement un stop au robot maître pour qu'il ne fasse rien. &lt;br /&gt;
&lt;br /&gt;
Une fois que le robot s'est élancé dans sa chorégraphie, la baguette se remet à un état « neutre » (instruction stop préchargée). Pour stopper la chorégraphie, il suffira donc d'appuyer brièvement sur le bouton pour envoyer l'instruction stop ou alors de lui envoyer des instructions en mode manuel comme décrit plus haut. Actuellement, le robot prend le temps de terminer sa chorégraphie avant de s'arrêter ou avant d'effectuer les commandes manuelles envoyées. Dans le cas où le robot s'est élancé dans sa chorégraphie et qu'il ne reçoit pas de nouvel ordre, il continue sa chorégraphie en boucle.&lt;br /&gt;
&lt;br /&gt;
La baguette traite directement l'information issue de ses capteurs, les interprète et les transforme en ordre qui seront directement transmis au robot-maître.&lt;br /&gt;
&lt;br /&gt;
=== Liste des ordres disponibles ===&lt;br /&gt;
&lt;br /&gt;
La liste est ordre est :&lt;br /&gt;
*Coup vers l'avant: fait avancer le robot&lt;br /&gt;
*Coup vers l'arrière: fait reculer le robot&lt;br /&gt;
*Coup vers la droite: fait aller le robot vers la droite&lt;br /&gt;
*Coup vers la gauche: fait aller le robot vers la gauche&lt;br /&gt;
*Rotation droite: fait tourner le robot dans le sens anti-trigonométrique&lt;br /&gt;
*Rotation gauche: fait tourner le robot dans le sens trigonométrique&lt;br /&gt;
&lt;br /&gt;
== Aspect esthétique ==&lt;br /&gt;
&lt;br /&gt;
=== Fabrication ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Rendu_Baguette_Magique.JPG|vignette|La baguette modélisé sous Solid]]&lt;br /&gt;
&lt;br /&gt;
La baguette a été modélisé sur SolidWorks puis imprimé en 3D.&lt;br /&gt;
&lt;br /&gt;
=== Décorations supplémentaires ===&lt;br /&gt;
[[Fichier:Bande_de_led.jpg|vignette|Bande de led]]&lt;br /&gt;
&lt;br /&gt;
Une [https://www.adafruit.com/product/1506 bande de LED] est enroulé autour de la baguette pour coller au mieux au coté ludique des robots.&lt;br /&gt;
&lt;br /&gt;
Ses fonctionnalités sont:&lt;br /&gt;
*Prendre une couleur différente pour chaque ordre&lt;br /&gt;
*Plus l'ordre est maintenu plus le nombre de led illuminé augmente&lt;br /&gt;
*Si l'on change l'ordre les led &amp;quot;redescendent&amp;quot; rapidement avant de &amp;quot;remonter&amp;quot; dans une autre couleur&lt;br /&gt;
*Si le bouton est relâché les led &amp;quot;redescendent&amp;quot;&lt;br /&gt;
&lt;br /&gt;
La bande de led est alimenté via une batterie de 5V différente de la batterie alimentant la carte en elle même.&lt;br /&gt;
&lt;br /&gt;
= Le Robot-Maître =&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Robot maitre.jpg|vignette|Photo du robot-maître]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: [http://www.kysanelectronics.com/graphics/RK-370CA.pdf Mabuchi rk-370-CA]&lt;br /&gt;
*Carte de contrôle: Arduino Teensy et Sparkfun esp32 communicant ensemble par UART&lt;br /&gt;
*Interface de puissance: [https://ujm.webgroup.fr/images/7/7a/PCB_Robot4Voies.pdf Carte fournie par TSE]&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
*Régulateur de tension : Traco Power&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
Le code des robots sera séparé en trois parties distinctes : &lt;br /&gt;
*la commande du robot&lt;br /&gt;
*la communication&lt;br /&gt;
&lt;br /&gt;
Des interruptions sont utilisées par le programme pour récupérer les informations générées par les roues codeuse afin de soulager le processeur.&lt;br /&gt;
&lt;br /&gt;
=== La commande du robot ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Communication.png|vignette|droite|Schéma de communication global]]&lt;br /&gt;
&lt;br /&gt;
Les moteurs sont pilotés via différentes fonctions:&lt;br /&gt;
*Avancer&lt;br /&gt;
*Reculer&lt;br /&gt;
*Aller à droite&lt;br /&gt;
*Aller à gauche&lt;br /&gt;
*Aller en biais en haut à droite&lt;br /&gt;
*Aller en biais en haut à gauche&lt;br /&gt;
*Aller en biais en bas à droite&lt;br /&gt;
*Aller en biais en bas à gauche&lt;br /&gt;
*Rotation dans le sens trigonométrique&lt;br /&gt;
*Rotation dans le sens anti trigonométrique&lt;br /&gt;
&lt;br /&gt;
=== La communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le robot-maître reçoit ses ordres de la baguette par bluetooth.&lt;br /&gt;
&lt;br /&gt;
La communication avec les robot-esclaves se fait via une communication Wi-Fi, le robot-maître crée un serveur auquel se connecte les robot-esclaves pour récupérer leurs ordres.&lt;br /&gt;
&lt;br /&gt;
= Les Robot-Esclaves =&lt;br /&gt;
[[Fichier:Robot esclave.jpg|vignette|droite|Photo d'un des robot-esclaves]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: Hennkwell HG37D670WE12-052&lt;br /&gt;
*Carte de contrôle: Arduino Teensy&lt;br /&gt;
*Interface de puissance: Carte fournie par TSE&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Les robot-esclaves reçoivent exactement les mêmes ordres que ceux reçu par le robot-maître étant donné que le programme est le même pour les 3 robots.&lt;br /&gt;
&lt;br /&gt;
= Références externes =&lt;br /&gt;
&lt;br /&gt;
[[https://ujm.webgroup.fr/index.php?title=Robots_danseurs_technique Documentation technique]]&lt;/div&gt;</summary>
		<author><name>Lo.brandon</name></author>
		
	</entry>
	<entry>
		<id>https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10274</id>
		<title>Robots danseurs</title>
		<link rel="alternate" type="text/html" href="https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10274"/>
		<updated>2019-05-19T17:18:09Z</updated>

		<summary type="html">&lt;p&gt;Lo.brandon : /* Fonctionnement */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projet du module Robots Communicants de Telecom Saint-Etienne 2018/2019.&amp;lt;br /&amp;gt;&lt;br /&gt;
= Sujet =&lt;br /&gt;
L'utilisateur doit pouvoir commander un robot &amp;quot;maître&amp;quot; à distance au moyen d'une baguette. Deux robots esclaves doivent, en temps réel, imiter les mouvements du maître.&lt;br /&gt;
&lt;br /&gt;
= Objectif du projet =&lt;br /&gt;
&lt;br /&gt;
Créer une &amp;quot;baguette magique&amp;quot; permettant de donner des ordres de façon fluide et intuitive à un robot-maître qui doit ensuite transmettre les ordres qu'il reçoit à un couple de robot-esclaves&lt;br /&gt;
&lt;br /&gt;
== Diagrammes fonctionnels ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe1.png|thumb|center|Diagramme fonctionnel de classe 1]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe_2t.png|1000px|thumb|center|Diagramme fonctionnel de classe 2]]&lt;br /&gt;
&lt;br /&gt;
== Spécifications fonctionnelles ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Spécifications fonctionnelles&lt;br /&gt;
|-&lt;br /&gt;
|Fonction principale&lt;br /&gt;
|Diriger des robot avec une baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 1&lt;br /&gt;
|Établir une communication entre les robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 2&lt;br /&gt;
|Empêcher les ordres non voulu&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 3&lt;br /&gt;
|Implémenter un feedback physique à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 4&lt;br /&gt;
|Implémenter un feedback lumineux à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 5&lt;br /&gt;
|Implémenter un feedback lumineux aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 6&lt;br /&gt;
|Implémenter un feedback sonore aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 7&lt;br /&gt;
|Créer des chorégraphies&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= La Baguette =&lt;br /&gt;
&lt;br /&gt;
La baguette sert à contrôler le robot maître par le biais de ses mouvements.&lt;br /&gt;
&lt;br /&gt;
Elle doit donc pouvoir:&lt;br /&gt;
*Mesurer les amplitudes et directions de ses accélérations linéaire et rotative&lt;br /&gt;
*Traiter l'information pour en faire des ordres compréhensible par le robot-maître &lt;br /&gt;
*Pouvoir communiquer avec le robot-maître&lt;br /&gt;
&lt;br /&gt;
== Composants électroniques ==&lt;br /&gt;
&lt;br /&gt;
=== Carte de contrôle ===&lt;br /&gt;
&lt;br /&gt;
La [https://learn.sparkfun.com/tutorials/esp32-thing-hookup-guide/all carte Sparkfun esp32] a été retenu en raison de sa communication BLE malgré sa grande taille comparé à la [https://www.pjrc.com/teensy/ carte Arduino Teensy].&lt;br /&gt;
&lt;br /&gt;
Cette carte est alimentée via une batterie de 3.6V et 600mAh.&lt;br /&gt;
&lt;br /&gt;
La carte de contrôle et l'appareil de mesure communiquent ensemble par communication I2C.&lt;br /&gt;
&lt;br /&gt;
=== Appareil de mesure ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gyro.jpg|vignette|Axes d'un gyromètre]]&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Deux gyromètre sont en compétition, la [https://www.pololu.com/product/2470 Pololu AltMU-10 v4] et le [http://wiki.seeedstudio.com/Grove-IMU_10DOF/ Grove IMU 10DOF v1.1]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Critères de choix retenus (triés par ordre d'importance):&lt;br /&gt;
# la fiabilité du capteur (absence de valeurs aberrantes)&lt;br /&gt;
# la taille (il doit être facile à intégrer sur la baguette)&lt;br /&gt;
# la facilité de programmation &lt;br /&gt;
# la précision (dans le cas ou la vitesse de la baguette serve au pilotage du robot)&lt;br /&gt;
&lt;br /&gt;
Finalement c'est le Pololu qui a été retenu en raison de sa très petite taille par rapport au capteur Grove.&lt;br /&gt;
&lt;br /&gt;
=== Bouton poussoir ===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait le choix d'ajouter un bouton poussoir sur notre baguette pour que celle-ci sache quand est-ce que nous voulons envoyer des ordres ou pas. Ce qui permettra à l'utilisateur de pouvoir garder la baguette en main sans devoir faire attention à ses mouvements ou sans devoir éteindre la baguette lorsque nous ne voulons pas envoyer d'ordre. &lt;br /&gt;
&lt;br /&gt;
Ce bouton nous permettra également de déterminer dans quel mode nous voulons guider le robot maître (qui sera expliqué plus bas).&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sparkfun.jpg|vignette|Sparkfun esp32]]&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
La baguette a été programmée de sorte à contrôler le robot maître manuellement ou automatiquement. &lt;br /&gt;
&lt;br /&gt;
Le mode manuel s'enclenche lorsque l'utilisateur maintient le bouton de la baguette plus d'une demi-seconde environ. Lorsque celui-ci se retrouve dans le mode manuel, il aura la possibilité de contrôler le robot selon les ordres donnés plus bas. Tant que le bouton est maintenu, le dernier ordre envoyé est « gelé » (c’est-à-dire que donner un coup de baguette vers la droite et ne pas envoyer de nouvel ordre va maintenir ce dernier) et il suffit de faire des gestes différents pour envoyer de nouveaux ordres. Le robot maître recevra l'instruction de s'arrêter seulement si l'utilisateur relâche le bouton. Chaque ordre envoyé avec succès sera manifesté par une petite vibration au niveau de la baguette.&lt;br /&gt;
&lt;br /&gt;
Cette fois, si nous voulons que le robot soit en mode automatique (réalisation d'une chorégraphie), il suffit de donner un coup de baguette vers la gauche (chorée 1) ou la droite (chorée 2) tout en ayant le bouton relâché. Cette action aura pour effet de retenir le dernier mouvement (seulement gauche ou droite pris en compte). Un appuie très bref sur le bouton va permettre à la baguette de regarder si l'utilisateur a mis en mémoire une des deux chorégraphies connues. Si c'est le cas, la baguette enverra au robot maître, l'instruction adéquate pour que celui-ci se lance dans une chorégraphie. Dans le cas contraire, on enverra tout simplement un stop au robot maître pour qu'il ne fasse rien. &lt;br /&gt;
&lt;br /&gt;
Une fois que le robot s'est élancé dans sa chorégraphie, la baguette se remet à un état « neutre » (instruction stop préchargée). Pour stopper la chorégraphie, il suffira donc d'appuyer brièvement sur le bouton pour envoyer l'instruction stop ou alors de lui envoyer des instructions en mode manuel comme décrit plus haut. &lt;br /&gt;
&lt;br /&gt;
Actuellement, le robot prend le temps de terminer sa chorégraphie avant de s'arrêter ou avant d'effectuer les commandes manuelles.&lt;br /&gt;
&lt;br /&gt;
La baguette traite directement l'information issue de ses capteurs et transmet directement les ordres au robot-maître.&lt;br /&gt;
&lt;br /&gt;
=== Liste des ordres disponibles ===&lt;br /&gt;
&lt;br /&gt;
La liste est ordre est :&lt;br /&gt;
*Coup vers l'avant: fait avancer le robot&lt;br /&gt;
*Coup vers l'arrière: fait reculer le robot&lt;br /&gt;
*Coup vers la droite: fait aller le robot vers la droite&lt;br /&gt;
*Coup vers la gauche: fait aller le robot vers la gauche&lt;br /&gt;
*Rotation droite: fait tourner le robot dans le sens anti-trigonométrique&lt;br /&gt;
*Rotation gauche: fait tourner le robot dans le sens trigonométrique&lt;br /&gt;
&lt;br /&gt;
== Aspect esthétique ==&lt;br /&gt;
&lt;br /&gt;
=== Fabrication ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Rendu_Baguette_Magique.JPG|vignette|La baguette modélisé sous Solid]]&lt;br /&gt;
&lt;br /&gt;
La baguette a été modélisé sur SolidWorks puis imprimé en 3D.&lt;br /&gt;
&lt;br /&gt;
=== Décorations supplémentaires ===&lt;br /&gt;
[[Fichier:Bande_de_led.jpg|vignette|Bande de led]]&lt;br /&gt;
&lt;br /&gt;
Une [https://www.adafruit.com/product/1506 bande de LED] est enroulé autour de la baguette pour coller au mieux au coté ludique des robots.&lt;br /&gt;
&lt;br /&gt;
Ses fonctionnalités sont:&lt;br /&gt;
*Prendre une couleur différente pour chaque ordre&lt;br /&gt;
*Plus l'ordre est maintenu plus le nombre de led illuminé augmente&lt;br /&gt;
*Si l'on change l'ordre les led &amp;quot;redescendent&amp;quot; rapidement avant de &amp;quot;remonter&amp;quot; dans une autre couleur&lt;br /&gt;
*Si le bouton est relâché les led &amp;quot;redescendent&amp;quot;&lt;br /&gt;
&lt;br /&gt;
La bande de led est alimenté via une batterie de 5V différente de la batterie alimentant la carte en elle même.&lt;br /&gt;
&lt;br /&gt;
= Le Robot-Maître =&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Robot maitre.jpg|vignette|Photo du robot-maître]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: [http://www.kysanelectronics.com/graphics/RK-370CA.pdf Mabuchi rk-370-CA]&lt;br /&gt;
*Carte de contrôle: Arduino Teensy et Sparkfun esp32 communicant ensemble par UART&lt;br /&gt;
*Interface de puissance: [https://ujm.webgroup.fr/images/7/7a/PCB_Robot4Voies.pdf Carte fournie par TSE]&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
*Régulateur de tension : Traco Power&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
Le code des robots sera séparé en trois parties distinctes : &lt;br /&gt;
*la commande du robot&lt;br /&gt;
*la communication&lt;br /&gt;
&lt;br /&gt;
Des interruptions sont utilisées par le programme pour récupérer les informations générées par les roues codeuse afin de soulager le processeur.&lt;br /&gt;
&lt;br /&gt;
=== La commande du robot ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Communication.png|vignette|droite|Schéma de communication global]]&lt;br /&gt;
&lt;br /&gt;
Les moteurs sont pilotés via différentes fonctions:&lt;br /&gt;
*Avancer&lt;br /&gt;
*Reculer&lt;br /&gt;
*Aller à droite&lt;br /&gt;
*Aller à gauche&lt;br /&gt;
*Aller en biais en haut à droite&lt;br /&gt;
*Aller en biais en haut à gauche&lt;br /&gt;
*Aller en biais en bas à droite&lt;br /&gt;
*Aller en biais en bas à gauche&lt;br /&gt;
*Rotation dans le sens trigonométrique&lt;br /&gt;
*Rotation dans le sens anti trigonométrique&lt;br /&gt;
&lt;br /&gt;
=== La communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le robot-maître reçoit ses ordres de la baguette par bluetooth.&lt;br /&gt;
&lt;br /&gt;
La communication avec les robot-esclaves se fait via une communication Wi-Fi, le robot-maître crée un serveur auquel se connecte les robot-esclaves pour récupérer leurs ordres.&lt;br /&gt;
&lt;br /&gt;
= Les Robot-Esclaves =&lt;br /&gt;
[[Fichier:Robot esclave.jpg|vignette|droite|Photo d'un des robot-esclaves]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: Hennkwell HG37D670WE12-052&lt;br /&gt;
*Carte de contrôle: Arduino Teensy&lt;br /&gt;
*Interface de puissance: Carte fournie par TSE&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Les robot-esclaves reçoivent exactement les mêmes ordres que ceux reçu par le robot-maître étant donné que le programme est le même pour les 3 robots.&lt;br /&gt;
&lt;br /&gt;
= Références externes =&lt;br /&gt;
&lt;br /&gt;
[[https://ujm.webgroup.fr/index.php?title=Robots_danseurs_technique Documentation technique]]&lt;/div&gt;</summary>
		<author><name>Lo.brandon</name></author>
		
	</entry>
	<entry>
		<id>https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10273</id>
		<title>Robots danseurs</title>
		<link rel="alternate" type="text/html" href="https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10273"/>
		<updated>2019-05-19T17:16:57Z</updated>

		<summary type="html">&lt;p&gt;Lo.brandon : /* Fonctionnement */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projet du module Robots Communicants de Telecom Saint-Etienne 2018/2019.&amp;lt;br /&amp;gt;&lt;br /&gt;
= Sujet =&lt;br /&gt;
L'utilisateur doit pouvoir commander un robot &amp;quot;maître&amp;quot; à distance au moyen d'une baguette. Deux robots esclaves doivent, en temps réel, imiter les mouvements du maître.&lt;br /&gt;
&lt;br /&gt;
= Objectif du projet =&lt;br /&gt;
&lt;br /&gt;
Créer une &amp;quot;baguette magique&amp;quot; permettant de donner des ordres de façon fluide et intuitive à un robot-maître qui doit ensuite transmettre les ordres qu'il reçoit à un couple de robot-esclaves&lt;br /&gt;
&lt;br /&gt;
== Diagrammes fonctionnels ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe1.png|thumb|center|Diagramme fonctionnel de classe 1]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe_2t.png|1000px|thumb|center|Diagramme fonctionnel de classe 2]]&lt;br /&gt;
&lt;br /&gt;
== Spécifications fonctionnelles ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Spécifications fonctionnelles&lt;br /&gt;
|-&lt;br /&gt;
|Fonction principale&lt;br /&gt;
|Diriger des robot avec une baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 1&lt;br /&gt;
|Établir une communication entre les robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 2&lt;br /&gt;
|Empêcher les ordres non voulu&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 3&lt;br /&gt;
|Implémenter un feedback physique à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 4&lt;br /&gt;
|Implémenter un feedback lumineux à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 5&lt;br /&gt;
|Implémenter un feedback lumineux aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 6&lt;br /&gt;
|Implémenter un feedback sonore aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 7&lt;br /&gt;
|Créer des chorégraphies&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= La Baguette =&lt;br /&gt;
&lt;br /&gt;
La baguette sert à contrôler le robot maître par le biais de ses mouvements.&lt;br /&gt;
&lt;br /&gt;
Elle doit donc pouvoir:&lt;br /&gt;
*Mesurer les amplitudes et directions de ses accélérations linéaire et rotative&lt;br /&gt;
*Traiter l'information pour en faire des ordres compréhensible par le robot-maître &lt;br /&gt;
*Pouvoir communiquer avec le robot-maître&lt;br /&gt;
&lt;br /&gt;
== Composants électroniques ==&lt;br /&gt;
&lt;br /&gt;
=== Carte de contrôle ===&lt;br /&gt;
&lt;br /&gt;
La [https://learn.sparkfun.com/tutorials/esp32-thing-hookup-guide/all carte Sparkfun esp32] a été retenu en raison de sa communication BLE malgré sa grande taille comparé à la [https://www.pjrc.com/teensy/ carte Arduino Teensy].&lt;br /&gt;
&lt;br /&gt;
Cette carte est alimentée via une batterie de 3.6V et 600mAh.&lt;br /&gt;
&lt;br /&gt;
La carte de contrôle et l'appareil de mesure communiquent ensemble par communication I2C.&lt;br /&gt;
&lt;br /&gt;
=== Appareil de mesure ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gyro.jpg|vignette|Axes d'un gyromètre]]&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Deux gyromètre sont en compétition, la [https://www.pololu.com/product/2470 Pololu AltMU-10 v4] et le [http://wiki.seeedstudio.com/Grove-IMU_10DOF/ Grove IMU 10DOF v1.1]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Critères de choix retenus (triés par ordre d'importance):&lt;br /&gt;
# la fiabilité du capteur (absence de valeurs aberrantes)&lt;br /&gt;
# la taille (il doit être facile à intégrer sur la baguette)&lt;br /&gt;
# la facilité de programmation &lt;br /&gt;
# la précision (dans le cas ou la vitesse de la baguette serve au pilotage du robot)&lt;br /&gt;
&lt;br /&gt;
Finalement c'est le Pololu qui a été retenu en raison de sa très petite taille par rapport au capteur Grove.&lt;br /&gt;
&lt;br /&gt;
=== Bouton poussoir ===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait le choix d'ajouter un bouton poussoir sur notre baguette pour que celle-ci sache quand est-ce que nous voulons envoyer des ordres ou pas. Ce qui permettra à l'utilisateur de pouvoir garder la baguette en main sans devoir faire attention à ses mouvements ou sans devoir éteindre la baguette lorsque nous ne voulons pas envoyer d'ordre. &lt;br /&gt;
&lt;br /&gt;
Ce bouton nous permettra également de déterminer dans quel mode nous voulons guider le robot maître (qui sera expliqué plus bas).&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sparkfun.jpg|vignette|Sparkfun esp32]]&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
La baguette a été programmée de sorte à contrôler le robot maître manuellement ou automatiquement. &lt;br /&gt;
&lt;br /&gt;
Le mode manuel s'enclenche lorsque l'utilisateur maintient le bouton de la baguette plus d'une demi-seconde environ. Lorsque celui-ci se retrouve dans le mode manuel, il aura la possibilité de contrôler le robot selon les ordres donnés plus bas. Tant que le bouton est maintenu, le dernier ordre envoyé est « gelé » (c’est-à-dire que donner un coup de baguette vers la droite et ne pas envoyer de nouvel ordre va maintenir ce dernier) et il suffit de faire des gestes différents pour envoyer de nouveaux ordres. Le robot maître recevra l'instruction de s'arrêter seulement si l'utilisateur relâche le bouton. Chaque ordre envoyé avec succès sera manifesté par une petite vibration au niveau de la baguette.&lt;br /&gt;
&lt;br /&gt;
Cette fois, si nous voulons que le robot soit en mode automatique (réalisation d'une chorégraphie), il suffit de donner un coup de baguette vers la gauche (chorée 1) ou la droite (chorée 2) tout en ayant le bouton relâché. Cette action aura pour effet de retenir le dernier mouvement (seulement gauche ou droite pris en compte). Un appuie très bref sur le bouton va permettre à la baguette de regarder si l'utilisateur a mis en mémoire une des deux chorégraphies connues. Si c'est le cas, la baguette enverra au robot maître, l'instruction adéquate pour que celui-ci se lance dans une chorégraphie. Dans le cas contraire, on enverra tout simplement un stop au robot maître. &lt;br /&gt;
&lt;br /&gt;
Une fois que le robot s'est élancé dans sa chorégraphie, la baguette se remet à un état « neutre » (instruction stop préchargée). Pour stopper la chorégraphie, il suffira donc d'appuyer brièvement sur le bouton pour envoyer l'instruction stop ou alors de lui envoyer des instructions en mode manuel comme décrit plus haut. &lt;br /&gt;
&lt;br /&gt;
Actuellement, le robot prend le temps de terminer sa chorégraphie avant de s'arrêter ou avant d'effectuer les commandes manuelles.&lt;br /&gt;
&lt;br /&gt;
La baguette traite directement l'information issue de ses capteurs et transmet directement les ordres au robot-maître.&lt;br /&gt;
&lt;br /&gt;
=== Liste des ordres disponibles ===&lt;br /&gt;
&lt;br /&gt;
La liste est ordre est :&lt;br /&gt;
*Coup vers l'avant: fait avancer le robot&lt;br /&gt;
*Coup vers l'arrière: fait reculer le robot&lt;br /&gt;
*Coup vers la droite: fait aller le robot vers la droite&lt;br /&gt;
*Coup vers la gauche: fait aller le robot vers la gauche&lt;br /&gt;
*Rotation droite: fait tourner le robot dans le sens anti-trigonométrique&lt;br /&gt;
*Rotation gauche: fait tourner le robot dans le sens trigonométrique&lt;br /&gt;
&lt;br /&gt;
== Aspect esthétique ==&lt;br /&gt;
&lt;br /&gt;
=== Fabrication ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Rendu_Baguette_Magique.JPG|vignette|La baguette modélisé sous Solid]]&lt;br /&gt;
&lt;br /&gt;
La baguette a été modélisé sur SolidWorks puis imprimé en 3D.&lt;br /&gt;
&lt;br /&gt;
=== Décorations supplémentaires ===&lt;br /&gt;
[[Fichier:Bande_de_led.jpg|vignette|Bande de led]]&lt;br /&gt;
&lt;br /&gt;
Une [https://www.adafruit.com/product/1506 bande de LED] est enroulé autour de la baguette pour coller au mieux au coté ludique des robots.&lt;br /&gt;
&lt;br /&gt;
Ses fonctionnalités sont:&lt;br /&gt;
*Prendre une couleur différente pour chaque ordre&lt;br /&gt;
*Plus l'ordre est maintenu plus le nombre de led illuminé augmente&lt;br /&gt;
*Si l'on change l'ordre les led &amp;quot;redescendent&amp;quot; rapidement avant de &amp;quot;remonter&amp;quot; dans une autre couleur&lt;br /&gt;
*Si le bouton est relâché les led &amp;quot;redescendent&amp;quot;&lt;br /&gt;
&lt;br /&gt;
La bande de led est alimenté via une batterie de 5V différente de la batterie alimentant la carte en elle même.&lt;br /&gt;
&lt;br /&gt;
= Le Robot-Maître =&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Robot maitre.jpg|vignette|Photo du robot-maître]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: [http://www.kysanelectronics.com/graphics/RK-370CA.pdf Mabuchi rk-370-CA]&lt;br /&gt;
*Carte de contrôle: Arduino Teensy et Sparkfun esp32 communicant ensemble par UART&lt;br /&gt;
*Interface de puissance: [https://ujm.webgroup.fr/images/7/7a/PCB_Robot4Voies.pdf Carte fournie par TSE]&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
*Régulateur de tension : Traco Power&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
Le code des robots sera séparé en trois parties distinctes : &lt;br /&gt;
*la commande du robot&lt;br /&gt;
*la communication&lt;br /&gt;
&lt;br /&gt;
Des interruptions sont utilisées par le programme pour récupérer les informations générées par les roues codeuse afin de soulager le processeur.&lt;br /&gt;
&lt;br /&gt;
=== La commande du robot ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Communication.png|vignette|droite|Schéma de communication global]]&lt;br /&gt;
&lt;br /&gt;
Les moteurs sont pilotés via différentes fonctions:&lt;br /&gt;
*Avancer&lt;br /&gt;
*Reculer&lt;br /&gt;
*Aller à droite&lt;br /&gt;
*Aller à gauche&lt;br /&gt;
*Aller en biais en haut à droite&lt;br /&gt;
*Aller en biais en haut à gauche&lt;br /&gt;
*Aller en biais en bas à droite&lt;br /&gt;
*Aller en biais en bas à gauche&lt;br /&gt;
*Rotation dans le sens trigonométrique&lt;br /&gt;
*Rotation dans le sens anti trigonométrique&lt;br /&gt;
&lt;br /&gt;
=== La communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le robot-maître reçoit ses ordres de la baguette par bluetooth.&lt;br /&gt;
&lt;br /&gt;
La communication avec les robot-esclaves se fait via une communication Wi-Fi, le robot-maître crée un serveur auquel se connecte les robot-esclaves pour récupérer leurs ordres.&lt;br /&gt;
&lt;br /&gt;
= Les Robot-Esclaves =&lt;br /&gt;
[[Fichier:Robot esclave.jpg|vignette|droite|Photo d'un des robot-esclaves]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: Hennkwell HG37D670WE12-052&lt;br /&gt;
*Carte de contrôle: Arduino Teensy&lt;br /&gt;
*Interface de puissance: Carte fournie par TSE&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Les robot-esclaves reçoivent exactement les mêmes ordres que ceux reçu par le robot-maître étant donné que le programme est le même pour les 3 robots.&lt;br /&gt;
&lt;br /&gt;
= Références externes =&lt;br /&gt;
&lt;br /&gt;
[[https://ujm.webgroup.fr/index.php?title=Robots_danseurs_technique Documentation technique]]&lt;/div&gt;</summary>
		<author><name>Lo.brandon</name></author>
		
	</entry>
	<entry>
		<id>https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10272</id>
		<title>Robots danseurs</title>
		<link rel="alternate" type="text/html" href="https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10272"/>
		<updated>2019-05-19T17:16:25Z</updated>

		<summary type="html">&lt;p&gt;Lo.brandon : /* Programmation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projet du module Robots Communicants de Telecom Saint-Etienne 2018/2019.&amp;lt;br /&amp;gt;&lt;br /&gt;
= Sujet =&lt;br /&gt;
L'utilisateur doit pouvoir commander un robot &amp;quot;maître&amp;quot; à distance au moyen d'une baguette. Deux robots esclaves doivent, en temps réel, imiter les mouvements du maître.&lt;br /&gt;
&lt;br /&gt;
= Objectif du projet =&lt;br /&gt;
&lt;br /&gt;
Créer une &amp;quot;baguette magique&amp;quot; permettant de donner des ordres de façon fluide et intuitive à un robot-maître qui doit ensuite transmettre les ordres qu'il reçoit à un couple de robot-esclaves&lt;br /&gt;
&lt;br /&gt;
== Diagrammes fonctionnels ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe1.png|thumb|center|Diagramme fonctionnel de classe 1]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe_2t.png|1000px|thumb|center|Diagramme fonctionnel de classe 2]]&lt;br /&gt;
&lt;br /&gt;
== Spécifications fonctionnelles ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Spécifications fonctionnelles&lt;br /&gt;
|-&lt;br /&gt;
|Fonction principale&lt;br /&gt;
|Diriger des robot avec une baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 1&lt;br /&gt;
|Établir une communication entre les robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 2&lt;br /&gt;
|Empêcher les ordres non voulu&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 3&lt;br /&gt;
|Implémenter un feedback physique à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 4&lt;br /&gt;
|Implémenter un feedback lumineux à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 5&lt;br /&gt;
|Implémenter un feedback lumineux aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 6&lt;br /&gt;
|Implémenter un feedback sonore aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 7&lt;br /&gt;
|Créer des chorégraphies&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= La Baguette =&lt;br /&gt;
&lt;br /&gt;
La baguette sert à contrôler le robot maître par le biais de ses mouvements.&lt;br /&gt;
&lt;br /&gt;
Elle doit donc pouvoir:&lt;br /&gt;
*Mesurer les amplitudes et directions de ses accélérations linéaire et rotative&lt;br /&gt;
*Traiter l'information pour en faire des ordres compréhensible par le robot-maître &lt;br /&gt;
*Pouvoir communiquer avec le robot-maître&lt;br /&gt;
&lt;br /&gt;
== Composants électroniques ==&lt;br /&gt;
&lt;br /&gt;
=== Carte de contrôle ===&lt;br /&gt;
&lt;br /&gt;
La [https://learn.sparkfun.com/tutorials/esp32-thing-hookup-guide/all carte Sparkfun esp32] a été retenu en raison de sa communication BLE malgré sa grande taille comparé à la [https://www.pjrc.com/teensy/ carte Arduino Teensy].&lt;br /&gt;
&lt;br /&gt;
Cette carte est alimentée via une batterie de 3.6V et 600mAh.&lt;br /&gt;
&lt;br /&gt;
La carte de contrôle et l'appareil de mesure communiquent ensemble par communication I2C.&lt;br /&gt;
&lt;br /&gt;
=== Appareil de mesure ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gyro.jpg|vignette|Axes d'un gyromètre]]&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Deux gyromètre sont en compétition, la [https://www.pololu.com/product/2470 Pololu AltMU-10 v4] et le [http://wiki.seeedstudio.com/Grove-IMU_10DOF/ Grove IMU 10DOF v1.1]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Critères de choix retenus (triés par ordre d'importance):&lt;br /&gt;
# la fiabilité du capteur (absence de valeurs aberrantes)&lt;br /&gt;
# la taille (il doit être facile à intégrer sur la baguette)&lt;br /&gt;
# la facilité de programmation &lt;br /&gt;
# la précision (dans le cas ou la vitesse de la baguette serve au pilotage du robot)&lt;br /&gt;
&lt;br /&gt;
Finalement c'est le Pololu qui a été retenu en raison de sa très petite taille par rapport au capteur Grove.&lt;br /&gt;
&lt;br /&gt;
=== Bouton poussoir ===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait le choix d'ajouter un bouton poussoir sur notre baguette pour que celle-ci sache quand est-ce que nous voulons envoyer des ordres ou pas. Ce qui permettra à l'utilisateur de pouvoir garder la baguette en main sans devoir faire attention à ses mouvements ou sans devoir éteindre la baguette lorsque nous ne voulons pas envoyer d'ordre. &lt;br /&gt;
&lt;br /&gt;
Ce bouton nous permettra également de déterminer dans quel mode nous voulons guider le robot maître (qui sera expliqué plus bas).&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sparkfun.jpg|vignette|Sparkfun esp32]]&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
La baguette a été programmée de sorte à contrôler le robot maître manuellement ou automatiquement. &lt;br /&gt;
&lt;br /&gt;
Le mode manuel s'enclenche lorsque l'utilisateur maintient le bouton de la baguette plus d'une demi-seconde environ. Lorsque celui-ci se retrouve dans le mode manuel, il aura la possibilité de contrôler le robot selon les ordres donnés plus bas. Tant que le bouton est maintenu le dernier ordre envoyé est « gelé » (c’est-à-dire que donner un coup de baguette vers la droite et ne pas envoyer de nouvel ordre va maintenir ce dernier) et il suffit de faire des gestes différents pour envoyer de nouveaux ordres. Le robot maître recevra l'instruction de s'arrêter seulement si l'utilisateur relâche le bouton. Chaque ordre envoyé avec succès sera manifesté par une petite vibration au niveau de la baguette.&lt;br /&gt;
&lt;br /&gt;
Cette fois, si nous voulons que le robot soit en mode automatique (réalisation d'une chorégraphie), il suffit de donner un coup de baguette vers la gauche (chorée 1) ou la droite (chorée 2) tout en ayant le bouton relâché. Cette action aura pour effet de retenir le dernier mouvement (seulement gauche ou droite pris en compte). Un appuie très bref sur le bouton va permettre à la baguette de regarder si l'utilisateur a mis en mémoire une des deux chorégraphies connues. Si c'est le cas, la baguette enverra au robot maître, l'instruction adéquate pour que celui-ci se lance dans une chorégraphie. Dans le cas contraire, on enverra tout simplement un stop au robot maître. &lt;br /&gt;
&lt;br /&gt;
Une fois que le robot s'est élancé dans sa chorégraphie, la baguette se remet à un état « neutre » (instruction stop préchargée). Pour stopper la chorégraphie, il suffira donc d'appuyer brièvement sur le bouton pour envoyer l'instruction stop ou alors de lui envoyer des instructions en mode manuel comme décrit plus haut. &lt;br /&gt;
&lt;br /&gt;
Actuellement, le robot prend le temps de terminer sa chorégraphie avant de s'arrêter ou avant d'effectuer les commandes manuelles.&lt;br /&gt;
&lt;br /&gt;
La baguette traite directement l'information issue de ses capteurs et transmet directement les ordres au robot-maître.&lt;br /&gt;
&lt;br /&gt;
=== Liste des ordres disponibles ===&lt;br /&gt;
&lt;br /&gt;
La liste est ordre est :&lt;br /&gt;
*Coup vers l'avant: fait avancer le robot&lt;br /&gt;
*Coup vers l'arrière: fait reculer le robot&lt;br /&gt;
*Coup vers la droite: fait aller le robot vers la droite&lt;br /&gt;
*Coup vers la gauche: fait aller le robot vers la gauche&lt;br /&gt;
*Rotation droite: fait tourner le robot dans le sens anti-trigonométrique&lt;br /&gt;
*Rotation gauche: fait tourner le robot dans le sens trigonométrique&lt;br /&gt;
&lt;br /&gt;
== Aspect esthétique ==&lt;br /&gt;
&lt;br /&gt;
=== Fabrication ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Rendu_Baguette_Magique.JPG|vignette|La baguette modélisé sous Solid]]&lt;br /&gt;
&lt;br /&gt;
La baguette a été modélisé sur SolidWorks puis imprimé en 3D.&lt;br /&gt;
&lt;br /&gt;
=== Décorations supplémentaires ===&lt;br /&gt;
[[Fichier:Bande_de_led.jpg|vignette|Bande de led]]&lt;br /&gt;
&lt;br /&gt;
Une [https://www.adafruit.com/product/1506 bande de LED] est enroulé autour de la baguette pour coller au mieux au coté ludique des robots.&lt;br /&gt;
&lt;br /&gt;
Ses fonctionnalités sont:&lt;br /&gt;
*Prendre une couleur différente pour chaque ordre&lt;br /&gt;
*Plus l'ordre est maintenu plus le nombre de led illuminé augmente&lt;br /&gt;
*Si l'on change l'ordre les led &amp;quot;redescendent&amp;quot; rapidement avant de &amp;quot;remonter&amp;quot; dans une autre couleur&lt;br /&gt;
*Si le bouton est relâché les led &amp;quot;redescendent&amp;quot;&lt;br /&gt;
&lt;br /&gt;
La bande de led est alimenté via une batterie de 5V différente de la batterie alimentant la carte en elle même.&lt;br /&gt;
&lt;br /&gt;
= Le Robot-Maître =&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Robot maitre.jpg|vignette|Photo du robot-maître]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: [http://www.kysanelectronics.com/graphics/RK-370CA.pdf Mabuchi rk-370-CA]&lt;br /&gt;
*Carte de contrôle: Arduino Teensy et Sparkfun esp32 communicant ensemble par UART&lt;br /&gt;
*Interface de puissance: [https://ujm.webgroup.fr/images/7/7a/PCB_Robot4Voies.pdf Carte fournie par TSE]&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
*Régulateur de tension : Traco Power&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
Le code des robots sera séparé en trois parties distinctes : &lt;br /&gt;
*la commande du robot&lt;br /&gt;
*la communication&lt;br /&gt;
&lt;br /&gt;
Des interruptions sont utilisées par le programme pour récupérer les informations générées par les roues codeuse afin de soulager le processeur.&lt;br /&gt;
&lt;br /&gt;
=== La commande du robot ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Communication.png|vignette|droite|Schéma de communication global]]&lt;br /&gt;
&lt;br /&gt;
Les moteurs sont pilotés via différentes fonctions:&lt;br /&gt;
*Avancer&lt;br /&gt;
*Reculer&lt;br /&gt;
*Aller à droite&lt;br /&gt;
*Aller à gauche&lt;br /&gt;
*Aller en biais en haut à droite&lt;br /&gt;
*Aller en biais en haut à gauche&lt;br /&gt;
*Aller en biais en bas à droite&lt;br /&gt;
*Aller en biais en bas à gauche&lt;br /&gt;
*Rotation dans le sens trigonométrique&lt;br /&gt;
*Rotation dans le sens anti trigonométrique&lt;br /&gt;
&lt;br /&gt;
=== La communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le robot-maître reçoit ses ordres de la baguette par bluetooth.&lt;br /&gt;
&lt;br /&gt;
La communication avec les robot-esclaves se fait via une communication Wi-Fi, le robot-maître crée un serveur auquel se connecte les robot-esclaves pour récupérer leurs ordres.&lt;br /&gt;
&lt;br /&gt;
= Les Robot-Esclaves =&lt;br /&gt;
[[Fichier:Robot esclave.jpg|vignette|droite|Photo d'un des robot-esclaves]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: Hennkwell HG37D670WE12-052&lt;br /&gt;
*Carte de contrôle: Arduino Teensy&lt;br /&gt;
*Interface de puissance: Carte fournie par TSE&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Les robot-esclaves reçoivent exactement les mêmes ordres que ceux reçu par le robot-maître étant donné que le programme est le même pour les 3 robots.&lt;br /&gt;
&lt;br /&gt;
= Références externes =&lt;br /&gt;
&lt;br /&gt;
[[https://ujm.webgroup.fr/index.php?title=Robots_danseurs_technique Documentation technique]]&lt;/div&gt;</summary>
		<author><name>Lo.brandon</name></author>
		
	</entry>
	<entry>
		<id>https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10271</id>
		<title>Robots danseurs</title>
		<link rel="alternate" type="text/html" href="https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10271"/>
		<updated>2019-05-19T16:47:12Z</updated>

		<summary type="html">&lt;p&gt;Lo.brandon : /* Composants électroniques */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projet du module Robots Communicants de Telecom Saint-Etienne 2018/2019.&amp;lt;br /&amp;gt;&lt;br /&gt;
= Sujet =&lt;br /&gt;
L'utilisateur doit pouvoir commander un robot &amp;quot;maître&amp;quot; à distance au moyen d'une baguette. Deux robots esclaves doivent, en temps réel, imiter les mouvements du maître.&lt;br /&gt;
&lt;br /&gt;
= Objectif du projet =&lt;br /&gt;
&lt;br /&gt;
Créer une &amp;quot;baguette magique&amp;quot; permettant de donner des ordres de façon fluide et intuitive à un robot-maître qui doit ensuite transmettre les ordres qu'il reçoit à un couple de robot-esclaves&lt;br /&gt;
&lt;br /&gt;
== Diagrammes fonctionnels ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe1.png|thumb|center|Diagramme fonctionnel de classe 1]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe_2t.png|1000px|thumb|center|Diagramme fonctionnel de classe 2]]&lt;br /&gt;
&lt;br /&gt;
== Spécifications fonctionnelles ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Spécifications fonctionnelles&lt;br /&gt;
|-&lt;br /&gt;
|Fonction principale&lt;br /&gt;
|Diriger des robot avec une baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 1&lt;br /&gt;
|Établir une communication entre les robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 2&lt;br /&gt;
|Empêcher les ordres non voulu&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 3&lt;br /&gt;
|Implémenter un feedback physique à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 4&lt;br /&gt;
|Implémenter un feedback lumineux à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 5&lt;br /&gt;
|Implémenter un feedback lumineux aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 6&lt;br /&gt;
|Implémenter un feedback sonore aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 7&lt;br /&gt;
|Créer des chorégraphies&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= La Baguette =&lt;br /&gt;
&lt;br /&gt;
La baguette sert à contrôler le robot maître par le biais de ses mouvements.&lt;br /&gt;
&lt;br /&gt;
Elle doit donc pouvoir:&lt;br /&gt;
*Mesurer les amplitudes et directions de ses accélérations linéaire et rotative&lt;br /&gt;
*Traiter l'information pour en faire des ordres compréhensible par le robot-maître &lt;br /&gt;
*Pouvoir communiquer avec le robot-maître&lt;br /&gt;
&lt;br /&gt;
== Composants électroniques ==&lt;br /&gt;
&lt;br /&gt;
=== Carte de contrôle ===&lt;br /&gt;
&lt;br /&gt;
La [https://learn.sparkfun.com/tutorials/esp32-thing-hookup-guide/all carte Sparkfun esp32] a été retenu en raison de sa communication BLE malgré sa grande taille comparé à la [https://www.pjrc.com/teensy/ carte Arduino Teensy].&lt;br /&gt;
&lt;br /&gt;
Cette carte est alimentée via une batterie de 3.6V et 600mAh.&lt;br /&gt;
&lt;br /&gt;
La carte de contrôle et l'appareil de mesure communiquent ensemble par communication I2C.&lt;br /&gt;
&lt;br /&gt;
=== Appareil de mesure ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gyro.jpg|vignette|Axes d'un gyromètre]]&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Deux gyromètre sont en compétition, la [https://www.pololu.com/product/2470 Pololu AltMU-10 v4] et le [http://wiki.seeedstudio.com/Grove-IMU_10DOF/ Grove IMU 10DOF v1.1]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Critères de choix retenus (triés par ordre d'importance):&lt;br /&gt;
# la fiabilité du capteur (absence de valeurs aberrantes)&lt;br /&gt;
# la taille (il doit être facile à intégrer sur la baguette)&lt;br /&gt;
# la facilité de programmation &lt;br /&gt;
# la précision (dans le cas ou la vitesse de la baguette serve au pilotage du robot)&lt;br /&gt;
&lt;br /&gt;
Finalement c'est le Pololu qui a été retenu en raison de sa très petite taille par rapport au capteur Grove.&lt;br /&gt;
&lt;br /&gt;
=== Bouton poussoir ===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait le choix d'ajouter un bouton poussoir sur notre baguette pour que celle-ci sache quand est-ce que nous voulons envoyer des ordres ou pas. Ce qui permettra à l'utilisateur de pouvoir garder la baguette en main sans devoir faire attention à ses mouvements ou sans devoir éteindre la baguette lorsque nous ne voulons pas envoyer d'ordre. &lt;br /&gt;
&lt;br /&gt;
Ce bouton nous permettra également de déterminer dans quel mode nous voulons guider le robot maître (qui sera expliqué plus bas).&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sparkfun.jpg|vignette|Sparkfun esp32]]&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
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é.&lt;br /&gt;
&lt;br /&gt;
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é.&lt;br /&gt;
&lt;br /&gt;
La baguette traite directement l'information issue de ses capteurs et transmet directement les ordres au robot-maître.&lt;br /&gt;
&lt;br /&gt;
=== Liste des ordres disponibles ===&lt;br /&gt;
&lt;br /&gt;
La liste est ordre est :&lt;br /&gt;
*Coup vers l'avant: fait avancer le robot&lt;br /&gt;
*Coup vers l'arrière: fait reculer le robot&lt;br /&gt;
*Coup vers la droite: fait aller le robot vers la droite&lt;br /&gt;
*Coup vers la gauche: fait aller le robot vers la gauche&lt;br /&gt;
*Rotation droite: fait tourner le robot dans le sens anti-trigonométrique&lt;br /&gt;
*Rotation gauche: fait tourner le robot dans le sens trigonométrique&lt;br /&gt;
&lt;br /&gt;
== Aspect esthétique ==&lt;br /&gt;
&lt;br /&gt;
=== Fabrication ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Rendu_Baguette_Magique.JPG|vignette|La baguette modélisé sous Solid]]&lt;br /&gt;
&lt;br /&gt;
La baguette a été modélisé sur SolidWorks puis imprimé en 3D.&lt;br /&gt;
&lt;br /&gt;
=== Décorations supplémentaires ===&lt;br /&gt;
[[Fichier:Bande_de_led.jpg|vignette|Bande de led]]&lt;br /&gt;
&lt;br /&gt;
Une [https://www.adafruit.com/product/1506 bande de LED] est enroulé autour de la baguette pour coller au mieux au coté ludique des robots.&lt;br /&gt;
&lt;br /&gt;
Ses fonctionnalités sont:&lt;br /&gt;
*Prendre une couleur différente pour chaque ordre&lt;br /&gt;
*Plus l'ordre est maintenu plus le nombre de led illuminé augmente&lt;br /&gt;
*Si l'on change l'ordre les led &amp;quot;redescendent&amp;quot; rapidement avant de &amp;quot;remonter&amp;quot; dans une autre couleur&lt;br /&gt;
*Si le bouton est relâché les led &amp;quot;redescendent&amp;quot;&lt;br /&gt;
&lt;br /&gt;
La bande de led est alimenté via une batterie de 5V différente de la batterie alimentant la carte en elle même.&lt;br /&gt;
&lt;br /&gt;
= Le Robot-Maître =&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Robot maitre.jpg|vignette|Photo du robot-maître]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: [http://www.kysanelectronics.com/graphics/RK-370CA.pdf Mabuchi rk-370-CA]&lt;br /&gt;
*Carte de contrôle: Arduino Teensy et Sparkfun esp32 communicant ensemble par UART&lt;br /&gt;
*Interface de puissance: [https://ujm.webgroup.fr/images/7/7a/PCB_Robot4Voies.pdf Carte fournie par TSE]&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
*Régulateur de tension : Traco Power&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
Le code des robots sera séparé en trois parties distinctes : &lt;br /&gt;
*la commande du robot&lt;br /&gt;
*la communication&lt;br /&gt;
&lt;br /&gt;
Des interruptions sont utilisées par le programme pour récupérer les informations générées par les roues codeuse afin de soulager le processeur.&lt;br /&gt;
&lt;br /&gt;
=== La commande du robot ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Communication.png|vignette|droite|Schéma de communication global]]&lt;br /&gt;
&lt;br /&gt;
Les moteurs sont pilotés via différentes fonctions:&lt;br /&gt;
*Avancer&lt;br /&gt;
*Reculer&lt;br /&gt;
*Aller à droite&lt;br /&gt;
*Aller à gauche&lt;br /&gt;
*Aller en biais en haut à droite&lt;br /&gt;
*Aller en biais en haut à gauche&lt;br /&gt;
*Aller en biais en bas à droite&lt;br /&gt;
*Aller en biais en bas à gauche&lt;br /&gt;
*Rotation dans le sens trigonométrique&lt;br /&gt;
*Rotation dans le sens anti trigonométrique&lt;br /&gt;
&lt;br /&gt;
=== La communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le robot-maître reçoit ses ordres de la baguette par bluetooth.&lt;br /&gt;
&lt;br /&gt;
La communication avec les robot-esclaves se fait via une communication Wi-Fi, le robot-maître crée un serveur auquel se connecte les robot-esclaves pour récupérer leurs ordres.&lt;br /&gt;
&lt;br /&gt;
= Les Robot-Esclaves =&lt;br /&gt;
[[Fichier:Robot esclave.jpg|vignette|droite|Photo d'un des robot-esclaves]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: Hennkwell HG37D670WE12-052&lt;br /&gt;
*Carte de contrôle: Arduino Teensy&lt;br /&gt;
*Interface de puissance: Carte fournie par TSE&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Les robot-esclaves reçoivent exactement les mêmes ordres que ceux reçu par le robot-maître étant donné que le programme est le même pour les 3 robots.&lt;br /&gt;
&lt;br /&gt;
= Références externes =&lt;br /&gt;
&lt;br /&gt;
[[https://ujm.webgroup.fr/index.php?title=Robots_danseurs_technique Documentation technique]]&lt;/div&gt;</summary>
		<author><name>Lo.brandon</name></author>
		
	</entry>
	<entry>
		<id>https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10270</id>
		<title>Robots danseurs</title>
		<link rel="alternate" type="text/html" href="https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10270"/>
		<updated>2019-05-19T16:39:32Z</updated>

		<summary type="html">&lt;p&gt;Lo.brandon : /* Appareil de mesure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projet du module Robots Communicants de Telecom Saint-Etienne 2018/2019.&amp;lt;br /&amp;gt;&lt;br /&gt;
= Sujet =&lt;br /&gt;
L'utilisateur doit pouvoir commander un robot &amp;quot;maître&amp;quot; à distance au moyen d'une baguette. Deux robots esclaves doivent, en temps réel, imiter les mouvements du maître.&lt;br /&gt;
&lt;br /&gt;
= Objectif du projet =&lt;br /&gt;
&lt;br /&gt;
Créer une &amp;quot;baguette magique&amp;quot; permettant de donner des ordres de façon fluide et intuitive à un robot-maître qui doit ensuite transmettre les ordres qu'il reçoit à un couple de robot-esclaves&lt;br /&gt;
&lt;br /&gt;
== Diagrammes fonctionnels ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe1.png|thumb|center|Diagramme fonctionnel de classe 1]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe_2t.png|1000px|thumb|center|Diagramme fonctionnel de classe 2]]&lt;br /&gt;
&lt;br /&gt;
== Spécifications fonctionnelles ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Spécifications fonctionnelles&lt;br /&gt;
|-&lt;br /&gt;
|Fonction principale&lt;br /&gt;
|Diriger des robot avec une baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 1&lt;br /&gt;
|Établir une communication entre les robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 2&lt;br /&gt;
|Empêcher les ordres non voulu&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 3&lt;br /&gt;
|Implémenter un feedback physique à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 4&lt;br /&gt;
|Implémenter un feedback lumineux à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 5&lt;br /&gt;
|Implémenter un feedback lumineux aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 6&lt;br /&gt;
|Implémenter un feedback sonore aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 7&lt;br /&gt;
|Créer des chorégraphies&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= La Baguette =&lt;br /&gt;
&lt;br /&gt;
La baguette sert à contrôler le robot maître par le biais de ses mouvements.&lt;br /&gt;
&lt;br /&gt;
Elle doit donc pouvoir:&lt;br /&gt;
*Mesurer les amplitudes et directions de ses accélérations linéaire et rotative&lt;br /&gt;
*Traiter l'information pour en faire des ordres compréhensible par le robot-maître &lt;br /&gt;
*Pouvoir communiquer avec le robot-maître&lt;br /&gt;
&lt;br /&gt;
== Composants électroniques ==&lt;br /&gt;
&lt;br /&gt;
=== Carte de contrôle ===&lt;br /&gt;
&lt;br /&gt;
La [https://learn.sparkfun.com/tutorials/esp32-thing-hookup-guide/all carte Sparkfun esp32] a été retenu en raison de sa communication BLE malgré sa grande taille comparé à la [https://www.pjrc.com/teensy/ carte Arduino Teensy].&lt;br /&gt;
&lt;br /&gt;
Cette carte est alimentée via une batterie de 3.6V et 600mAh.&lt;br /&gt;
&lt;br /&gt;
La carte de contrôle et l'appareil de mesure communiquent ensemble par communication I2C.&lt;br /&gt;
&lt;br /&gt;
=== Appareil de mesure ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gyro.jpg|vignette|Axes d'un gyromètre]]&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Deux gyromètre sont en compétition, la [https://www.pololu.com/product/2470 Pololu AltMU-10 v4] et le [http://wiki.seeedstudio.com/Grove-IMU_10DOF/ Grove IMU 10DOF v1.1]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Critères de choix retenus (triés par ordre d'importance):&lt;br /&gt;
# la fiabilité du capteur (absence de valeurs aberrantes)&lt;br /&gt;
# la taille (il doit être facile à intégrer sur la baguette)&lt;br /&gt;
# la facilité de programmation &lt;br /&gt;
# la précision (dans le cas ou la vitesse de la baguette serve au pilotage du robot)&lt;br /&gt;
&lt;br /&gt;
Finalement c'est le Pololu qui a été retenu en raison de sa très petite taille par rapport au capteur Grove.&lt;br /&gt;
&lt;br /&gt;
Nous avons également ajouté un bouton poussoir sur la baguette, il permet de prévenir la baguette qu'elle doit commencer à capter les informations venant du gyromètre.&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sparkfun.jpg|vignette|Sparkfun esp32]]&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
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é.&lt;br /&gt;
&lt;br /&gt;
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é.&lt;br /&gt;
&lt;br /&gt;
La baguette traite directement l'information issue de ses capteurs et transmet directement les ordres au robot-maître.&lt;br /&gt;
&lt;br /&gt;
=== Liste des ordres disponibles ===&lt;br /&gt;
&lt;br /&gt;
La liste est ordre est :&lt;br /&gt;
*Coup vers l'avant: fait avancer le robot&lt;br /&gt;
*Coup vers l'arrière: fait reculer le robot&lt;br /&gt;
*Coup vers la droite: fait aller le robot vers la droite&lt;br /&gt;
*Coup vers la gauche: fait aller le robot vers la gauche&lt;br /&gt;
*Rotation droite: fait tourner le robot dans le sens anti-trigonométrique&lt;br /&gt;
*Rotation gauche: fait tourner le robot dans le sens trigonométrique&lt;br /&gt;
&lt;br /&gt;
== Aspect esthétique ==&lt;br /&gt;
&lt;br /&gt;
=== Fabrication ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Rendu_Baguette_Magique.JPG|vignette|La baguette modélisé sous Solid]]&lt;br /&gt;
&lt;br /&gt;
La baguette a été modélisé sur SolidWorks puis imprimé en 3D.&lt;br /&gt;
&lt;br /&gt;
=== Décorations supplémentaires ===&lt;br /&gt;
[[Fichier:Bande_de_led.jpg|vignette|Bande de led]]&lt;br /&gt;
&lt;br /&gt;
Une [https://www.adafruit.com/product/1506 bande de LED] est enroulé autour de la baguette pour coller au mieux au coté ludique des robots.&lt;br /&gt;
&lt;br /&gt;
Ses fonctionnalités sont:&lt;br /&gt;
*Prendre une couleur différente pour chaque ordre&lt;br /&gt;
*Plus l'ordre est maintenu plus le nombre de led illuminé augmente&lt;br /&gt;
*Si l'on change l'ordre les led &amp;quot;redescendent&amp;quot; rapidement avant de &amp;quot;remonter&amp;quot; dans une autre couleur&lt;br /&gt;
*Si le bouton est relâché les led &amp;quot;redescendent&amp;quot;&lt;br /&gt;
&lt;br /&gt;
La bande de led est alimenté via une batterie de 5V différente de la batterie alimentant la carte en elle même.&lt;br /&gt;
&lt;br /&gt;
= Le Robot-Maître =&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Robot maitre.jpg|vignette|Photo du robot-maître]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: [http://www.kysanelectronics.com/graphics/RK-370CA.pdf Mabuchi rk-370-CA]&lt;br /&gt;
*Carte de contrôle: Arduino Teensy et Sparkfun esp32 communicant ensemble par UART&lt;br /&gt;
*Interface de puissance: [https://ujm.webgroup.fr/images/7/7a/PCB_Robot4Voies.pdf Carte fournie par TSE]&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
*Régulateur de tension : Traco Power&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
Le code des robots sera séparé en trois parties distinctes : &lt;br /&gt;
*la commande du robot&lt;br /&gt;
*la communication&lt;br /&gt;
&lt;br /&gt;
Des interruptions sont utilisées par le programme pour récupérer les informations générées par les roues codeuse afin de soulager le processeur.&lt;br /&gt;
&lt;br /&gt;
=== La commande du robot ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Communication.png|vignette|droite|Schéma de communication global]]&lt;br /&gt;
&lt;br /&gt;
Les moteurs sont pilotés via différentes fonctions:&lt;br /&gt;
*Avancer&lt;br /&gt;
*Reculer&lt;br /&gt;
*Aller à droite&lt;br /&gt;
*Aller à gauche&lt;br /&gt;
*Aller en biais en haut à droite&lt;br /&gt;
*Aller en biais en haut à gauche&lt;br /&gt;
*Aller en biais en bas à droite&lt;br /&gt;
*Aller en biais en bas à gauche&lt;br /&gt;
*Rotation dans le sens trigonométrique&lt;br /&gt;
*Rotation dans le sens anti trigonométrique&lt;br /&gt;
&lt;br /&gt;
=== La communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le robot-maître reçoit ses ordres de la baguette par bluetooth.&lt;br /&gt;
&lt;br /&gt;
La communication avec les robot-esclaves se fait via une communication Wi-Fi, le robot-maître crée un serveur auquel se connecte les robot-esclaves pour récupérer leurs ordres.&lt;br /&gt;
&lt;br /&gt;
= Les Robot-Esclaves =&lt;br /&gt;
[[Fichier:Robot esclave.jpg|vignette|droite|Photo d'un des robot-esclaves]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: Hennkwell HG37D670WE12-052&lt;br /&gt;
*Carte de contrôle: Arduino Teensy&lt;br /&gt;
*Interface de puissance: Carte fournie par TSE&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Les robot-esclaves reçoivent exactement les mêmes ordres que ceux reçu par le robot-maître étant donné que le programme est le même pour les 3 robots.&lt;br /&gt;
&lt;br /&gt;
= Références externes =&lt;br /&gt;
&lt;br /&gt;
[[https://ujm.webgroup.fr/index.php?title=Robots_danseurs_technique Documentation technique]]&lt;/div&gt;</summary>
		<author><name>Lo.brandon</name></author>
		
	</entry>
	<entry>
		<id>https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10269</id>
		<title>Robots danseurs</title>
		<link rel="alternate" type="text/html" href="https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10269"/>
		<updated>2019-05-19T16:38:22Z</updated>

		<summary type="html">&lt;p&gt;Lo.brandon : /* Carte de contrôle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projet du module Robots Communicants de Telecom Saint-Etienne 2018/2019.&amp;lt;br /&amp;gt;&lt;br /&gt;
= Sujet =&lt;br /&gt;
L'utilisateur doit pouvoir commander un robot &amp;quot;maître&amp;quot; à distance au moyen d'une baguette. Deux robots esclaves doivent, en temps réel, imiter les mouvements du maître.&lt;br /&gt;
&lt;br /&gt;
= Objectif du projet =&lt;br /&gt;
&lt;br /&gt;
Créer une &amp;quot;baguette magique&amp;quot; permettant de donner des ordres de façon fluide et intuitive à un robot-maître qui doit ensuite transmettre les ordres qu'il reçoit à un couple de robot-esclaves&lt;br /&gt;
&lt;br /&gt;
== Diagrammes fonctionnels ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe1.png|thumb|center|Diagramme fonctionnel de classe 1]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe_2t.png|1000px|thumb|center|Diagramme fonctionnel de classe 2]]&lt;br /&gt;
&lt;br /&gt;
== Spécifications fonctionnelles ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Spécifications fonctionnelles&lt;br /&gt;
|-&lt;br /&gt;
|Fonction principale&lt;br /&gt;
|Diriger des robot avec une baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 1&lt;br /&gt;
|Établir une communication entre les robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 2&lt;br /&gt;
|Empêcher les ordres non voulu&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 3&lt;br /&gt;
|Implémenter un feedback physique à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 4&lt;br /&gt;
|Implémenter un feedback lumineux à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 5&lt;br /&gt;
|Implémenter un feedback lumineux aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 6&lt;br /&gt;
|Implémenter un feedback sonore aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 7&lt;br /&gt;
|Créer des chorégraphies&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= La Baguette =&lt;br /&gt;
&lt;br /&gt;
La baguette sert à contrôler le robot maître par le biais de ses mouvements.&lt;br /&gt;
&lt;br /&gt;
Elle doit donc pouvoir:&lt;br /&gt;
*Mesurer les amplitudes et directions de ses accélérations linéaire et rotative&lt;br /&gt;
*Traiter l'information pour en faire des ordres compréhensible par le robot-maître &lt;br /&gt;
*Pouvoir communiquer avec le robot-maître&lt;br /&gt;
&lt;br /&gt;
== Composants électroniques ==&lt;br /&gt;
&lt;br /&gt;
=== Carte de contrôle ===&lt;br /&gt;
&lt;br /&gt;
La [https://learn.sparkfun.com/tutorials/esp32-thing-hookup-guide/all carte Sparkfun esp32] a été retenu en raison de sa communication BLE malgré sa grande taille comparé à la [https://www.pjrc.com/teensy/ carte Arduino Teensy].&lt;br /&gt;
&lt;br /&gt;
Cette carte est alimentée via une batterie de 3.6V et 600mAh.&lt;br /&gt;
&lt;br /&gt;
La carte de contrôle et l'appareil de mesure communiquent ensemble par communication I2C.&lt;br /&gt;
&lt;br /&gt;
=== Appareil de mesure ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gyro.jpg|vignette|Axes d'un gyromètre]]&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Deux gyromètre sont en compétition, la [https://www.pololu.com/product/2470 Pololu AltMU-10 v4] et le [http://wiki.seeedstudio.com/Grove-IMU_10DOF/ Grove IMU 10DOF v1.1]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Critères de choix retenus (triés par ordre d'importance):&lt;br /&gt;
# la fiabilité du capteur (absence de valeur aberrantes)&lt;br /&gt;
# la taille (il doit être facile à intégrer sur la baguette)&lt;br /&gt;
# la facilité de programmation &lt;br /&gt;
# la précision (dans le cas ou la vitesse de la baguette serve au pilotage du robot)&lt;br /&gt;
&lt;br /&gt;
Finalement c'est le Pololu qui a été retenu en raison de sa très petite taille par rapport au capteur Grove.&lt;br /&gt;
&lt;br /&gt;
Nous avons également ajouté un bouton poussoir sur la baguette, il permet de prévenir la baguette qu'elle doit commencer à capter les informations venant du gyromètre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sparkfun.jpg|vignette|Sparkfun esp32]]&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
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é.&lt;br /&gt;
&lt;br /&gt;
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é.&lt;br /&gt;
&lt;br /&gt;
La baguette traite directement l'information issue de ses capteurs et transmet directement les ordres au robot-maître.&lt;br /&gt;
&lt;br /&gt;
=== Liste des ordres disponibles ===&lt;br /&gt;
&lt;br /&gt;
La liste est ordre est :&lt;br /&gt;
*Coup vers l'avant: fait avancer le robot&lt;br /&gt;
*Coup vers l'arrière: fait reculer le robot&lt;br /&gt;
*Coup vers la droite: fait aller le robot vers la droite&lt;br /&gt;
*Coup vers la gauche: fait aller le robot vers la gauche&lt;br /&gt;
*Rotation droite: fait tourner le robot dans le sens anti-trigonométrique&lt;br /&gt;
*Rotation gauche: fait tourner le robot dans le sens trigonométrique&lt;br /&gt;
&lt;br /&gt;
== Aspect esthétique ==&lt;br /&gt;
&lt;br /&gt;
=== Fabrication ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Rendu_Baguette_Magique.JPG|vignette|La baguette modélisé sous Solid]]&lt;br /&gt;
&lt;br /&gt;
La baguette a été modélisé sur SolidWorks puis imprimé en 3D.&lt;br /&gt;
&lt;br /&gt;
=== Décorations supplémentaires ===&lt;br /&gt;
[[Fichier:Bande_de_led.jpg|vignette|Bande de led]]&lt;br /&gt;
&lt;br /&gt;
Une [https://www.adafruit.com/product/1506 bande de LED] est enroulé autour de la baguette pour coller au mieux au coté ludique des robots.&lt;br /&gt;
&lt;br /&gt;
Ses fonctionnalités sont:&lt;br /&gt;
*Prendre une couleur différente pour chaque ordre&lt;br /&gt;
*Plus l'ordre est maintenu plus le nombre de led illuminé augmente&lt;br /&gt;
*Si l'on change l'ordre les led &amp;quot;redescendent&amp;quot; rapidement avant de &amp;quot;remonter&amp;quot; dans une autre couleur&lt;br /&gt;
*Si le bouton est relâché les led &amp;quot;redescendent&amp;quot;&lt;br /&gt;
&lt;br /&gt;
La bande de led est alimenté via une batterie de 5V différente de la batterie alimentant la carte en elle même.&lt;br /&gt;
&lt;br /&gt;
= Le Robot-Maître =&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Robot maitre.jpg|vignette|Photo du robot-maître]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: [http://www.kysanelectronics.com/graphics/RK-370CA.pdf Mabuchi rk-370-CA]&lt;br /&gt;
*Carte de contrôle: Arduino Teensy et Sparkfun esp32 communicant ensemble par UART&lt;br /&gt;
*Interface de puissance: [https://ujm.webgroup.fr/images/7/7a/PCB_Robot4Voies.pdf Carte fournie par TSE]&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
*Régulateur de tension : Traco Power&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
Le code des robots sera séparé en trois parties distinctes : &lt;br /&gt;
*la commande du robot&lt;br /&gt;
*la communication&lt;br /&gt;
&lt;br /&gt;
Des interruptions sont utilisées par le programme pour récupérer les informations générées par les roues codeuse afin de soulager le processeur.&lt;br /&gt;
&lt;br /&gt;
=== La commande du robot ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Communication.png|vignette|droite|Schéma de communication global]]&lt;br /&gt;
&lt;br /&gt;
Les moteurs sont pilotés via différentes fonctions:&lt;br /&gt;
*Avancer&lt;br /&gt;
*Reculer&lt;br /&gt;
*Aller à droite&lt;br /&gt;
*Aller à gauche&lt;br /&gt;
*Aller en biais en haut à droite&lt;br /&gt;
*Aller en biais en haut à gauche&lt;br /&gt;
*Aller en biais en bas à droite&lt;br /&gt;
*Aller en biais en bas à gauche&lt;br /&gt;
*Rotation dans le sens trigonométrique&lt;br /&gt;
*Rotation dans le sens anti trigonométrique&lt;br /&gt;
&lt;br /&gt;
=== La communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le robot-maître reçoit ses ordres de la baguette par bluetooth.&lt;br /&gt;
&lt;br /&gt;
La communication avec les robot-esclaves se fait via une communication Wi-Fi, le robot-maître crée un serveur auquel se connecte les robot-esclaves pour récupérer leurs ordres.&lt;br /&gt;
&lt;br /&gt;
= Les Robot-Esclaves =&lt;br /&gt;
[[Fichier:Robot esclave.jpg|vignette|droite|Photo d'un des robot-esclaves]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: Hennkwell HG37D670WE12-052&lt;br /&gt;
*Carte de contrôle: Arduino Teensy&lt;br /&gt;
*Interface de puissance: Carte fournie par TSE&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Les robot-esclaves reçoivent exactement les mêmes ordres que ceux reçu par le robot-maître étant donné que le programme est le même pour les 3 robots.&lt;br /&gt;
&lt;br /&gt;
= Références externes =&lt;br /&gt;
&lt;br /&gt;
[[https://ujm.webgroup.fr/index.php?title=Robots_danseurs_technique Documentation technique]]&lt;/div&gt;</summary>
		<author><name>Lo.brandon</name></author>
		
	</entry>
	<entry>
		<id>https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10268</id>
		<title>Robots danseurs</title>
		<link rel="alternate" type="text/html" href="https://bacasable.arpitania.eu//index.php?title=Robots_danseurs&amp;diff=10268"/>
		<updated>2019-05-19T16:37:14Z</updated>

		<summary type="html">&lt;p&gt;Lo.brandon : /* Carte de contrôle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projet du module Robots Communicants de Telecom Saint-Etienne 2018/2019.&amp;lt;br /&amp;gt;&lt;br /&gt;
= Sujet =&lt;br /&gt;
L'utilisateur doit pouvoir commander un robot &amp;quot;maître&amp;quot; à distance au moyen d'une baguette. Deux robots esclaves doivent, en temps réel, imiter les mouvements du maître.&lt;br /&gt;
&lt;br /&gt;
= Objectif du projet =&lt;br /&gt;
&lt;br /&gt;
Créer une &amp;quot;baguette magique&amp;quot; permettant de donner des ordres de façon fluide et intuitive à un robot-maître qui doit ensuite transmettre les ordres qu'il reçoit à un couple de robot-esclaves&lt;br /&gt;
&lt;br /&gt;
== Diagrammes fonctionnels ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe1.png|thumb|center|Diagramme fonctionnel de classe 1]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagramme_classe_2t.png|1000px|thumb|center|Diagramme fonctionnel de classe 2]]&lt;br /&gt;
&lt;br /&gt;
== Spécifications fonctionnelles ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Spécifications fonctionnelles&lt;br /&gt;
|-&lt;br /&gt;
|Fonction principale&lt;br /&gt;
|Diriger des robot avec une baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 1&lt;br /&gt;
|Établir une communication entre les robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 2&lt;br /&gt;
|Empêcher les ordres non voulu&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 3&lt;br /&gt;
|Implémenter un feedback physique à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 4&lt;br /&gt;
|Implémenter un feedback lumineux à la baguette&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 5&lt;br /&gt;
|Implémenter un feedback lumineux aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 6&lt;br /&gt;
|Implémenter un feedback sonore aux robots&lt;br /&gt;
|-&lt;br /&gt;
|Fonction secondaire 7&lt;br /&gt;
|Créer des chorégraphies&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= La Baguette =&lt;br /&gt;
&lt;br /&gt;
La baguette sert à contrôler le robot maître par le biais de ses mouvements.&lt;br /&gt;
&lt;br /&gt;
Elle doit donc pouvoir:&lt;br /&gt;
*Mesurer les amplitudes et directions de ses accélérations linéaire et rotative&lt;br /&gt;
*Traiter l'information pour en faire des ordres compréhensible par le robot-maître &lt;br /&gt;
*Pouvoir communiquer avec le robot-maître&lt;br /&gt;
&lt;br /&gt;
== Composants électroniques ==&lt;br /&gt;
&lt;br /&gt;
=== Carte de contrôle ===&lt;br /&gt;
&lt;br /&gt;
La [https://learn.sparkfun.com/tutorials/esp32-thing-hookup-guide/all carte Sparkfun esp32] a été retenu en raison de sa communication BLE malgré sa grande taille comparé à [https://www.pjrc.com/teensy/ carte Arduino Teensy].&lt;br /&gt;
&lt;br /&gt;
Cette carte est alimentée via une batterie de 3.6V et 600mAh.&lt;br /&gt;
&lt;br /&gt;
La carte de contrôle et l'appareil de mesure communiquent ensemble par communication I2C.&lt;br /&gt;
&lt;br /&gt;
=== Appareil de mesure ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gyro.jpg|vignette|Axes d'un gyromètre]]&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Deux gyromètre sont en compétition, la [https://www.pololu.com/product/2470 Pololu AltMU-10 v4] et le [http://wiki.seeedstudio.com/Grove-IMU_10DOF/ Grove IMU 10DOF v1.1]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Critères de choix retenus (triés par ordre d'importance):&lt;br /&gt;
# la fiabilité du capteur (absence de valeur aberrantes)&lt;br /&gt;
# la taille (il doit être facile à intégrer sur la baguette)&lt;br /&gt;
# la facilité de programmation &lt;br /&gt;
# la précision (dans le cas ou la vitesse de la baguette serve au pilotage du robot)&lt;br /&gt;
&lt;br /&gt;
Finalement c'est le Pololu qui a été retenu en raison de sa très petite taille par rapport au capteur Grove.&lt;br /&gt;
&lt;br /&gt;
Nous avons également ajouté un bouton poussoir sur la baguette, il permet de prévenir la baguette qu'elle doit commencer à capter les informations venant du gyromètre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sparkfun.jpg|vignette|Sparkfun esp32]]&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
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é.&lt;br /&gt;
&lt;br /&gt;
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é.&lt;br /&gt;
&lt;br /&gt;
La baguette traite directement l'information issue de ses capteurs et transmet directement les ordres au robot-maître.&lt;br /&gt;
&lt;br /&gt;
=== Liste des ordres disponibles ===&lt;br /&gt;
&lt;br /&gt;
La liste est ordre est :&lt;br /&gt;
*Coup vers l'avant: fait avancer le robot&lt;br /&gt;
*Coup vers l'arrière: fait reculer le robot&lt;br /&gt;
*Coup vers la droite: fait aller le robot vers la droite&lt;br /&gt;
*Coup vers la gauche: fait aller le robot vers la gauche&lt;br /&gt;
*Rotation droite: fait tourner le robot dans le sens anti-trigonométrique&lt;br /&gt;
*Rotation gauche: fait tourner le robot dans le sens trigonométrique&lt;br /&gt;
&lt;br /&gt;
== Aspect esthétique ==&lt;br /&gt;
&lt;br /&gt;
=== Fabrication ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Rendu_Baguette_Magique.JPG|vignette|La baguette modélisé sous Solid]]&lt;br /&gt;
&lt;br /&gt;
La baguette a été modélisé sur SolidWorks puis imprimé en 3D.&lt;br /&gt;
&lt;br /&gt;
=== Décorations supplémentaires ===&lt;br /&gt;
[[Fichier:Bande_de_led.jpg|vignette|Bande de led]]&lt;br /&gt;
&lt;br /&gt;
Une [https://www.adafruit.com/product/1506 bande de LED] est enroulé autour de la baguette pour coller au mieux au coté ludique des robots.&lt;br /&gt;
&lt;br /&gt;
Ses fonctionnalités sont:&lt;br /&gt;
*Prendre une couleur différente pour chaque ordre&lt;br /&gt;
*Plus l'ordre est maintenu plus le nombre de led illuminé augmente&lt;br /&gt;
*Si l'on change l'ordre les led &amp;quot;redescendent&amp;quot; rapidement avant de &amp;quot;remonter&amp;quot; dans une autre couleur&lt;br /&gt;
*Si le bouton est relâché les led &amp;quot;redescendent&amp;quot;&lt;br /&gt;
&lt;br /&gt;
La bande de led est alimenté via une batterie de 5V différente de la batterie alimentant la carte en elle même.&lt;br /&gt;
&lt;br /&gt;
= Le Robot-Maître =&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Robot maitre.jpg|vignette|Photo du robot-maître]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: [http://www.kysanelectronics.com/graphics/RK-370CA.pdf Mabuchi rk-370-CA]&lt;br /&gt;
*Carte de contrôle: Arduino Teensy et Sparkfun esp32 communicant ensemble par UART&lt;br /&gt;
*Interface de puissance: [https://ujm.webgroup.fr/images/7/7a/PCB_Robot4Voies.pdf Carte fournie par TSE]&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
*Régulateur de tension : Traco Power&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
Le code des robots sera séparé en trois parties distinctes : &lt;br /&gt;
*la commande du robot&lt;br /&gt;
*la communication&lt;br /&gt;
&lt;br /&gt;
Des interruptions sont utilisées par le programme pour récupérer les informations générées par les roues codeuse afin de soulager le processeur.&lt;br /&gt;
&lt;br /&gt;
=== La commande du robot ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Communication.png|vignette|droite|Schéma de communication global]]&lt;br /&gt;
&lt;br /&gt;
Les moteurs sont pilotés via différentes fonctions:&lt;br /&gt;
*Avancer&lt;br /&gt;
*Reculer&lt;br /&gt;
*Aller à droite&lt;br /&gt;
*Aller à gauche&lt;br /&gt;
*Aller en biais en haut à droite&lt;br /&gt;
*Aller en biais en haut à gauche&lt;br /&gt;
*Aller en biais en bas à droite&lt;br /&gt;
*Aller en biais en bas à gauche&lt;br /&gt;
*Rotation dans le sens trigonométrique&lt;br /&gt;
*Rotation dans le sens anti trigonométrique&lt;br /&gt;
&lt;br /&gt;
=== La communication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le robot-maître reçoit ses ordres de la baguette par bluetooth.&lt;br /&gt;
&lt;br /&gt;
La communication avec les robot-esclaves se fait via une communication Wi-Fi, le robot-maître crée un serveur auquel se connecte les robot-esclaves pour récupérer leurs ordres.&lt;br /&gt;
&lt;br /&gt;
= Les Robot-Esclaves =&lt;br /&gt;
[[Fichier:Robot esclave.jpg|vignette|droite|Photo d'un des robot-esclaves]]&lt;br /&gt;
&lt;br /&gt;
== Composants ==&lt;br /&gt;
&lt;br /&gt;
*Moteur: Hennkwell HG37D670WE12-052&lt;br /&gt;
*Carte de contrôle: Arduino Teensy&lt;br /&gt;
*Interface de puissance: Carte fournie par TSE&lt;br /&gt;
*Batterie : 8 piles de 2500mAh (soit 20Ah en tout) de 5V&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Les robot-esclaves reçoivent exactement les mêmes ordres que ceux reçu par le robot-maître étant donné que le programme est le même pour les 3 robots.&lt;br /&gt;
&lt;br /&gt;
= Références externes =&lt;br /&gt;
&lt;br /&gt;
[[https://ujm.webgroup.fr/index.php?title=Robots_danseurs_technique Documentation technique]]&lt;/div&gt;</summary>
		<author><name>Lo.brandon</name></author>
		
	</entry>
</feed>