User Tools

Site Tools


documentation_theta_fantomes

Documentation Thêta Fantômes

L'installation

Mise en place, démarrage et control des plateformes

Le schéma :

  1. Brancher le routeur wifi.
  2. Attendre que le voyant wifi soit allumé.
  3. Connecter les ordi sur le réseau theta (mtpa: !!!fant0m3s!!!)
  4. Lancer puredata et ouvrir le patch MAINTOLAUCH dans répétroire PatchTheta
  5. appuyer 6 secondes sur le bouton de démarrage du casque eeg - led clignote
  6. mettre le casque eeg sur son front
  7. cliquer icône bluetooth
  8. cliquer sur search
  9. clique droit sur le casque Muse et cliquer sur pair
  10. ouvrir terminal et rentrer la commande : muse-io –device NUM_DEVICE (numéro du device bluetooth / casque eeg sélectionné)
  11. ouvrir un autre terminal et rentrer la commande : muse-player -l 5000 -s 7111
  12. Brancher les batteries sur les circuits jaune des plateformes (PAS SUR LA BLEUE, RISQUE DE DESTRUCTION).
  13. La plateforme devrait faire un bruit strident, elle est en marche.
  14. Start Aleatoire plateforme (test réponse plateforme / seulement pour test ou en cas de probléme)
  15. Ouvrir sous-patch OSC send → pd envoie plateforme (patch main)
  16. Cliquer sur connection + IP + port dans le patch pure data → la plateforme devrait se mettre à bouger)
  17. Brancher le module de contrôle des lasers.

*au 09/09/16 : pas de capteurs obstacles fonctionnels donc test avec un stop=barre d'espace

connection du casque EEG/Muse (détails)

bluetooth & muse, documentation détaillé ici : http://apo33.org/apotek/doku.php?id=casque_muse_-_connection_eeg#appairer_le_casque_muse

  1. connection automatique via muse-player (lancement terminal)
  2. voir chiffre en mouvement dans OSC receive

Troubleshooting

“La plateforme fait un bruit étrange et ne roule pas correctement, voir vibre.”

  • La batterie est probablement vide, il faut la recharger ou en utiliser une autre pleine.

“La plateforme ne roule pas correctement, les moteurs ne forcent pas ou forcent peu lors de la mise sous tension et ne font pas de bruit, voir vibrent.”

  • Les drivers n'envoient peut-être pas assez de courant aux moteurs. Il faut donc tourner chaque potentiomètre des drivers avec UN TOURNE VIS CÉRAMIQUE jusqu'à ce qu'ils fassent un bruit et que les moteurs soient bloqués.

“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'avance pas lorsque l'ordinateur lui envoie une information.”

  • 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'allume pour débranchez et rebranchez la plateforme.

“Le module de contrôle des lasers est sous tension mais les lasers ne bougent pas lorsque l'ordinateur lui envoie une information.”

  • 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'allume pour débrancher et rebrancher le module de contrôle des lasers.

Technique

À cette adresse, vous trouverez le dossier contenant :

  • 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 IP PORTEnvoi / Réception
Master Machine 192.168.168.1007110Envoi > Broadcast
Laptop Player 1 192.168.168.1017110Envoi > Broadcast
Laptop Player 2 192.168.168.1027110Envoi > Broadcast
Laptop Player 3 192.168.168.1037110Envoi > Broadcast
Laptop Player 4 192.168.168.1047110Envoi > Broadcast
Lasers 192.168.168.2007110Réception > 192.168.168.101-102-103-104
Plateforme Player 1 (Alpha) 192.168.168.2017110Réception > 192.168.168.101
Plateforme Player 2 (Bravo) 192.168.168.2027110Réception > 192.168.168.102
Plateforme Player 3 (Charlie)192.168.168.2037110Réception > 192.168.168.103
Plateforme Player 4 (Tango) 192.168.168.2047110Réception > 192.168.168.104

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'à 10 millisecondes sur les lasers, pas moins. Peut-être plus pour les plateformes.

Voici les messages OSC réceptionnés par les dispositifs (plateformes et lasers) :

Plateformes
Route Valeurs
/speed -10000 ⇒ 10000
/angle -180 ⇒ 180
Lasers
Route Valeurs
/x 0 ⇒ 127
/y 0 ⇒ 127
/blink 0 ⇒ 171 (0 = OFF / 171 = ON)

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 à cet endroit, et le reste des fonctions se trouventici.
La version utilisée est adaptée pour l'ESP8266, vous la trouverez dans le dossier du projet et à cette adresse.
Vous pouvez toujours remettre le firmware d'origine, disponible sur le site d'espressif.

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'autres modules sont excellents, comme le NodeMcu Lua ESP8266, utilisable plus facilement en standalone, sans arduino, mais sur lequel il est difficile d'ajouter un shield.

Il est nécessaire d'installer des outils pour pouvoir flasher ces modules avec un nouveau code.

Installation des outils de programmation dans l'IDE arduino

Pour commencer à programmer les ESP8266, vous aurez besoin d'installer les librairies relatives à ce module :

  • Cliquez sur OK.
  • Allez dans Outils > Type de carte > Gestionnaire de carte.
  • Dans cette fenêtre, recherchez “esp8266” et installez la librairie correspondante (voir ci-dessous).

Installation du programmeur de l'ESP8266

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'installation sont présents à cette page.
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'ESP8266

Une fois ces étapes réalisées, vous devez sélectionner certains paramètres afin de programmer le module.

  • Dans Arduino, allez dans Outils > Type de Carte et choisissez “Generic ESP8266 Module”.

  • Ensuite, lorsque le programmeur est branché, allez dans Outils > Port et choisissez “/dev/cu.wchusbserial410”.

  • Vous pouvez uploader le code.

En cas de soucis (ex : port Com grisé/impssible de téléverser le code), effectuer la commande suivante :

sudo usermod -a -G tty Nom_Utilisateur
sudo usermod -a -G dialout Nom_Utilisateur

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'à 7 puis enter

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, le module wifi relaie l'information osc vers l'arduino uno qui pilote les lasers via le shield DMX.

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'arduino UNO pour envoyer les commandes DMX.

Ces librairies se trouvent dans le dossier du projet. Vous trouverez la page de DmxSimple à cette adresse.
Pour installer une librairie arduino sur votre IDE, suivez ce lien.

Plateformes

Schéma réalisé avec Fritzing.

Uploader le bon player

Dans le fichier _init.h du code des plateformes, vous trouverez dans les premières lignes une macro appelée “PLAYER_ID”.
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 à cette adresse.

On trouve différents types de circuits compatibles avec les shields des plateformes, triés ci-dessous par efficacité :

  1. COOLDRV8825 ⇒ Le meilleur, extrêmement puissant
  2. DRV8825
  3. Pololu A4988 Black Edition
  4. Pololu A4988
  5. 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'ampérage de sortie et donc la puissance des moteurs. Il faut essayer de bouger la plateforme pour vérifier le niveau d'ampérage utilisé.
Cette manipulation doit s'effectuer avec un tourne vis en céramique pour ne pas abîmer les drivers (un tourne-vis en métal conduit le courant).

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é: Oui
  Couple de Possession: 2.6kg.cm
  Type: Hybride
  Nom de la marque: jkongmotor
  Phase: 2
  Courant/ Phase: 1.7A
  Certification: CE,Iso,ROHS
  Angle d'Etape (degrés): 1.8 °
  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 Demi-pas (half step)
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, envoyée vers la broche STEP du driver, ce qui fait avancer le moteur plus vite si la fréquence est haute, et plus lentement si la fréquence est basse.

Cette librairie se trouvent dans le dossier du projet. Vous trouverez la page de la librairie à cette adresse et un exemple d’utilisation de cette librairie à cette page.
Pour installer une librairie arduino sur votre IDE, suivez ce lien.

Mécanique & construction

Installation de la sculpture sur les plateformes

ATTENTION, lors de l'installation d'une sculpture sur une plateforme, assurez-vous que la tige soit encastrée dans le deuxième socle (le petit sur la plaque de bois inférieure).
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 ce tutoriel.

Améliorations possibles
  • Ventilateur : Pour mieux refroidir les drivers de moteur, il peut être bon d'ajouter un petit ventilateur au-dessus de ceux-ci. (Même si les COOLDRV8825 se refroidissent très bien.)
  • Batterie : Les changer pour des batteries du style NiMh 12V environ 4000mAh. Ce sont des batteries qui ont plus de cycles de recharge, qui sont plus rapides à charger, et (beaucoup) moins lourdes que les batteries au plomb.
  • Roues/stabilisateurs : Utiliser des stabilisateurs (ball caster) avec des billes en nylons, un matériau très silencieux lors de frictions avec une autre surface. En revanche, attention à la hauteur de ces stabilisateurs, peut-être trop hauts pour être fixés sur les plateformes.
  • Protection du bois : L'humidité et la lumière peuvent faire gondoler le bois. Un saturateur pour bois peut être appliqué sur celui-ci ou bien des plaques peuvent être redécoupées dans du contre-plaqué marin, très résistant à l'eau.

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.

documentation_theta_fantomes.txt · Last modified: 2017/07/18 17:50 by romain