This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
documentation_theta_fantomes [2016/09/09 15:43] – romain | documentation_theta_fantomes [2017/07/18 17:50] (current) – [Plateformes] romain | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Documentation Thêta Fantômes ====== | ||
+ | --- | ||
+ | ===== L' | ||
+ | |||
+ | ==== Mise en place, démarrage et control des plateformes ==== | ||
+ | |||
+ | |||
+ | Le schéma : | ||
+ | |||
+ | |||
+ | {{: | ||
+ | |||
+ | - Brancher le routeur wifi. | ||
+ | - Attendre que le voyant wifi soit allumé. | ||
+ | - Connecter les ordi sur le réseau theta (mtpa: !!!fant0m3s!!!) | ||
+ | - Lancer puredata et ouvrir le patch MAINTOLAUCH dans répétroire PatchTheta | ||
+ | - appuyer 6 secondes sur le bouton de démarrage du casque eeg - led clignote | ||
+ | - mettre le casque eeg sur son front | ||
+ | - cliquer icône bluetooth | ||
+ | - cliquer sur search | ||
+ | - clique droit sur le casque Muse et cliquer sur pair | ||
+ | - ouvrir terminal et rentrer la commande : muse-io --device NUM_DEVICE (numéro du device bluetooth / casque eeg sélectionné) | ||
+ | - ouvrir un autre terminal et rentrer la commande : muse-player -l 5000 -s 7111 | ||
+ | - Brancher les batteries sur les circuits jaune des plateformes (PAS SUR LA BLEUE, RISQUE DE DESTRUCTION). | ||
+ | - La plateforme devrait faire un bruit strident, elle est en marche. | ||
+ | - Start Aleatoire plateforme (test réponse plateforme / seulement pour test ou en cas de probléme) | ||
+ | - Ouvrir sous-patch OSC send -> pd envoie plateforme (patch main) | ||
+ | - Cliquer sur connection + IP + port dans le patch pure data -> la plateforme devrait se mettre à bouger) | ||
+ | - Brancher le module de contrôle des lasers. | ||
+ | - | ||
+ | |||
+ | |||
+ | *au 09/09/16 : pas de capteurs obstacles fonctionnels donc test avec un stop=barre d' | ||
+ | |||
+ | ==== connection du casque EEG/Muse (détails) ==== | ||
+ | |||
+ | bluetooth & muse, documentation détaillé ici : | ||
+ | http:// | ||
+ | |||
+ | -connection automatique via muse-player (lancement terminal) | ||
+ | -voir chiffre en mouvement dans OSC receive | ||
+ | |||
+ | ==== Troubleshooting ==== | ||
+ | |||
+ | //"La plateforme fait un bruit étrange et ne roule pas correctement, | ||
+ | |||
+ | * La batterie est probablement vide, il faut la recharger ou en utiliser une autre pleine. | ||
+ | |||
+ | //"La plateforme ne roule pas correctement, | ||
+ | |||
+ | * Les drivers n' | ||
+ | |||
+ | //"Un moteur ne fonctionne pas du tout, n'est pas bloqué, et même en tournant le potentiomètre du driver cela n'a aucun effet."// | ||
+ | |||
+ | * Le driver est probablement grillé. Il faut tester avec un nouveau driver. | ||
+ | |||
+ | //"La plateforme est sous tension, fait du bruit mais n' | ||
+ | |||
+ | * Vous avez surement branché les plateformes trop tôt après avoir branché le routeur wifi, attendez que le voyant WIFI de celui-ci s' | ||
+ | |||
+ | //"Le module de contrôle des lasers est sous tension mais les lasers ne bougent pas lorsque l' | ||
+ | |||
+ | * Vous avez surement branché le module trop tôt après avoir branché le routeur wifi, attendez que le voyant WIFI de celui-ci s' | ||
+ | |||
+ | ===== Technique ===== | ||
+ | |||
+ | À [[https:// | ||
+ | |||
+ | * le code | ||
+ | * les librairies | ||
+ | * les pièces 3D | ||
+ | * les circuits imprimés | ||
+ | * les drivers | ||
+ | |||
+ | ==== Wifi ==== | ||
+ | |||
+ | === Network === | ||
+ | |||
+ | Voici les IP et les ports sur lesquels les dispositifs fonctionnent : | ||
+ | |||
+ | ^Dispositifs | ||
+ | |Master Machine | ||
+ | |Laptop Player 1 |192.168.168.101|7110|Envoi > Broadcast | ||
+ | |Laptop Player 2 |192.168.168.102|7110|Envoi > Broadcast | ||
+ | |Laptop Player 3 |192.168.168.103|7110|Envoi > Broadcast | ||
+ | |Laptop Player 4 |192.168.168.104|7110|Envoi > Broadcast | ||
+ | |Lasers | ||
+ | |Plateforme Player 1 (Alpha) | ||
+ | |Plateforme Player 2 (Bravo) | ||
+ | |Plateforme Player 3 (Charlie)|192.168.168.203|7110|Réception > 192.168.168.103 | ||
+ | |Plateforme Player 4 (Tango) | ||
+ | |||
+ | Le module de contrôle des lasers écoute sur toutes les IPs des ordinateurs des joueurs et actionne le laser correspondant au joueur attribué. | ||
+ | |||
+ | Les messages OSC peuvent être envoyés jusqu' | ||
+ | |||
+ | Voici les messages OSC réceptionnés par les dispositifs (plateformes et lasers) : | ||
+ | |||
+ | ^Plateformes|| | ||
+ | ^Route | ||
+ | |/ | ||
+ | |/ | ||
+ | |||
+ | ^Lasers|| | ||
+ | ^Route | ||
+ | |/x |0 => 127 | ||
+ | |/y |0 => 127 | ||
+ | |/ | ||
+ | |||
+ | === Programmation === | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Le module wifi utilisé (ESP8266) contient un petit microcontrôleur programmable et une puce wifi.\\ | ||
+ | Aussi, pour une meilleur gestion des messages OSC, le module a dû être reprogrammé à partir de l'IDE arduino, en y installant une librairie de gestion du protocole OSC.\\ | ||
+ | Vous trouverez la documentation de cette librairie à [[https:// | ||
+ | La version utilisée est adaptée pour l' | ||
+ | Vous pouvez toujours remettre le firmware d' | ||
+ | |||
+ | Le module MOD-WIFI-ESP8266 de chez Olimex est un mauvais choix de version de module, nécessitant une soudure pour pouvoir le reprogrammer (voir image ci-dessous). En revanche, d' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Il est nécessaire d' | ||
+ | |||
+ | == Installation des outils de programmation dans l'IDE arduino == | ||
+ | |||
+ | Pour commencer à programmer les ESP8266, vous aurez besoin d' | ||
+ | |||
+ | * Lancez arduino. | ||
+ | * Aller dans //Arduino > Préférences// | ||
+ | * Sur cette fenêtre, entrez l'url http:// | ||
+ | |||
+ | {{: | ||
+ | |||
+ | * Cliquez sur OK. | ||
+ | * Allez dans //Outils > Type de carte > Gestionnaire de carte//. | ||
+ | * Dans cette fenêtre, recherchez //" | ||
+ | |||
+ | {{: | ||
+ | |||
+ | == Installation du programmeur de l' | ||
+ | |||
+ | Pour programmer ce module, nous allons avoir besoin de ce programmeur (voir image), plus simple à utiliser, basé sur la puce CH340. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Les drivers pour cette puce et les instructions d' | ||
+ | Vous les retrouverez dans le dossier du projet, disponible sur github. Sur linux, il n'est peut-être pas nécessaire de les installer. | ||
+ | |||
+ | == Uploader un sketch sur l' | ||
+ | |||
+ | Une fois ces étapes réalisées, | ||
+ | |||
+ | * Dans Arduino, allez dans //Outils > Type de Carte// et choisissez //" | ||
+ | |||
+ | {{: | ||
+ | |||
+ | * Ensuite, lorsque le programmeur est branché, allez dans //Outils > Port// et choisissez //"/ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | * Vous pouvez uploader le code. | ||
+ | |||
+ | |||
+ | En cas de soucis (ex : port Com grisé/ | ||
+ | |||
+ | < | ||
+ | < | ||
+ | |||
+ | ==== Lasers ==== | ||
+ | |||
+ | === mise en route === | ||
+ | |||
+ | au 09 oct : | ||
+ | |||
+ | brancher les lasers : | ||
+ | |||
+ | a-laser1 directe en sortie du shield dmx arduino (function 001) | ||
+ | |||
+ | b-laser2 en output du 1er avec cable xlr (function 006) | ||
+ | |||
+ | |||
+ | __si déréglage :__ | ||
+ | |||
+ | reset = func jusqu' | ||
+ | |||
+ | a-laser1 - choisir function 001 et enter puis function S 5 et enter | ||
+ | |||
+ | b-laser2 - choisir function 006 et enter puis funtion s 5 et enter | ||
+ | |||
+ | |||
+ | puis dans puredata / patch thêta | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | === partie pré-programmation (à réecrire) === | ||
+ | |||
+ | Le code des lasers est très simple et met en oeuvre une Arduino Uno, un module wifi ESP8266 et un Tinkerkit Dmx Master Shield.\\ | ||
+ | Comme pour les plateformes, | ||
+ | |||
+ | {{: | ||
+ | |||
+ | En revanche, le shield DMX comprend des embases XLR femelles 5 broches non compatibles avec les câbles XLR 3 broches couramment utilisés.\\ | ||
+ | Voici un schéma de montage pour construire un adaptateur XLR 5 broches vers XLR 3 broches afin de rendre ces câbles compatibles avec le shield. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Le shield est pilotable par la librairie DmxSimple, disponible dans le dossier du projet et utilise la broche digital 3 de l' | ||
+ | |||
+ | Ces librairies se trouvent dans le dossier du projet. Vous trouverez la page de DmxSimple à [[https:// | ||
+ | Pour installer une librairie arduino sur votre IDE, suivez [[https:// | ||
+ | |||
+ | ==== Plateformes ==== | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Schéma réalisé avec Fritzing. | ||
+ | |||
+ | === Uploader le bon player === | ||
+ | |||
+ | __**Dans le fichier _init.h du code des plateformes, | ||
+ | En changeant cette ID par 1, 2, 3 ou 4, on change aussi le player contrôlant la plateforme.**__ | ||
+ | |||
+ | Chaque module Wifi correspond à une plateforme, dans le sens ou leur adresse MAC est fixée sur le routeur. | ||
+ | |||
+ | === Moteurs & Drivers === | ||
+ | |||
+ | {{: | ||
+ | {{: | ||
+ | |||
+ | Les branchements du schéma ont été trouvés à [[http:// | ||
+ | |||
+ | On trouve différents types de circuits compatibles avec les shields des plateformes, | ||
+ | |||
+ | - [[https:// | ||
+ | - DRV8825 | ||
+ | - Pololu A4988 Black Edition | ||
+ | - Pololu A4988 | ||
+ | - copies chinoises, à éviter, fonctionnent très mal | ||
+ | |||
+ | __**/!\ ATTENTION, LES DRV8825 SE BRANCHE DANS LE SENS INVERSE DES POLOLU A4988, voir images ci-dessous /!\**__ | ||
+ | |||
+ | Une fois la plateforme sous tension, on doit tourner le potentiomètre sur le pololu pour augmenter l' | ||
+ | Cette manipulation doit s' | ||
+ | |||
+ | {{: | ||
+ | {{: | ||
+ | |||
+ | Les moteurs utilisés sont des moteurs pas à pas de type NEMA 17 (pour la taille) et les références pécises sont celles-ci : | ||
+ | |||
+ | |||
+ | |||
+ | Personnalisé: | ||
+ | Couple de Possession: 2.6kg.cm | ||
+ | Type: Hybride | ||
+ | Nom de la marque: jkongmotor | ||
+ | Phase: 2 | ||
+ | Courant/ Phase: 1.7A | ||
+ | Certification: | ||
+ | Angle d' | ||
+ | Numéro du modèle: 42HS40-1704 | ||
+ | Motor Length: 40mm | ||
+ | No of leading wire: 4 | ||
+ | | ||
+ | |||
+ | |||
+ | Les moteurs sont contrôlés par les drivers sur 6 ports digitaux : | ||
+ | |||
+ | * ENABLE : Active le pololu et le bloquage du moteur lorsque la broche est en LOW (logique inversée). | ||
+ | * STEP : En passant cette branche sur HIGH puis sur LOW (avec un delai), le moteur fait un pas. | ||
+ | * DIR : Sélectionne le sens de rotation du moteur (ex: LOW -> avance, HIGH -> recule). | ||
+ | * MS1, MS2, MS3 : Définissent la précision du pas (1/4, 1/8, 1/16, voir 1/32 pour les DRV8825). | ||
+ | |||
+ | Nous avons choisi de mettre la précision sur 1/32 de pas (avec un DRV8825) pour que le moteur fasse moins de bruit et que le mouvement soit plus linéaire. Cette précision est modifiable en changeant les signaux entrants sur les ports MS1, MS2 et MS3 des drivers comme ceci (pour un DRV8825) : | ||
+ | |||
+ | ^MS1 ^MS2 ^MS3 ^Resolution du Micro-pas | ||
+ | | LOW | LOW | LOW |Pas de microstepping (full step) | | ||
+ | | HIGH | LOW | LOW | ||
+ | | LOW | HIGH | LOW |1/4 pas | | ||
+ | | HIGH | HIGH | LOW |1/8 pas | | ||
+ | | LOW | LOW | HIGH |1/16 pas | | ||
+ | | HIGH | LOW | HIGH |1/32 pas | | ||
+ | | LOW | HIGH | HIGH |1/32 pas | | ||
+ | | HIGH | HIGH | HIGH |1/32 pas | | ||
+ | |||
+ | À chaque fois que le signal sur la broche STEP du drivers effectue une période HIGH/LOW, le moteur fait un pas.\\ | ||
+ | Ainsi, pour contrôler la vitesse des moteur, le code développé utilise une fonction permettant de générer une onde carrée à une fréquence donnée sur une broche de l’arduino, | ||
+ | |||
+ | Cette librairie se trouvent dans le dossier du projet. Vous trouverez la page de la librairie à [[https:// | ||
+ | Pour installer une librairie arduino sur votre IDE, suivez [[https:// | ||
+ | |||
+ | === Mécanique & construction === | ||
+ | |||
+ | == Installation de la sculpture sur les plateformes == | ||
+ | |||
+ | ATTENTION, lors de l' | ||
+ | Ne pas hésiter à forcer sur la barre pour la faire glisser dans le socle. | ||
+ | |||
+ | {{: | ||
+ | {{: | ||
+ | |||
+ | Image de gauche : en dehors / image de droite : dedans. | ||
+ | |||
+ | == Modèles 3D == | ||
+ | |||
+ | Si une pièce imprimée en 3D vient à être détruite, vous pouvez toujours en ré-imprimer une à partir des fichiers présents dans le dossier du projet, à l'aide de [[tuto_imprimante_3d|ce tutoriel]]. | ||
+ | |||
+ | == Améliorations possibles == | ||
+ | |||
+ | * __Ventilateur__ : Pour mieux refroidir les drivers de moteur, il peut être bon d' | ||
+ | * __Batterie__ : Les changer pour des batteries du style [[http:// | ||
+ | * __Roues/ | ||
+ | * __Protection du bois__ : L' | ||
+ | |||
+ | |||
+ | === Sonars === | ||
+ | |||
+ | Les capteurs de distances que l'on appellera sonars sont des modules HC-SR04. | ||
+ | |||
+ | Ils fonctionnent par ultrasons. Leur angle de visu est de 15 à 30 degrés selon la distance. | ||
+ | |||
+ | Code couleur des capteurs : | ||
+ | |||
+ | * Blanc : Grd / Masse | ||
+ | * Noir 1 : Echo | ||
+ | * Noir 2 : Ping | ||
+ | * Rouge : Voltage | ||
+ | |||
+ | |||
+ | Sur le schéma de la nappe on a une correspondance avec la PIN Echo du Sonar connecté à la PIN impair de la Arduino, et la PIN Ping du Sonar connecté à la PIN pair de la Arduino. | ||
+ | |||