—
Le schéma :
*au 09/09/16 : pas de capteurs obstacles fonctionnels donc test avec un stop=barre d'espace
bluetooth & muse, documentation détaillé ici : http://apo33.org/apotek/doku.php?id=casque_muse_-_connection_eeg#appairer_le_casque_muse
“La plateforme fait un bruit étrange et ne roule pas correctement, voir vibre.”
“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.”
“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.”
“La plateforme est sous tension, fait du bruit mais n'avance pas lorsque l'ordinateur lui envoie une information.”
“Le module de contrôle des lasers est sous tension mais les lasers ne bougent pas lorsque l'ordinateur lui envoie une information.”
À cette adresse, vous trouverez le dossier contenant :
Voici les IP et les ports sur lesquels les dispositifs fonctionnent :
Dispositifs | IP | PORT | Envoi / Réception |
---|---|---|---|
Master Machine | 192.168.168.100 | 7110 | Envoi > Broadcast |
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 | 192.168.168.200 | 7110 | Réception > 192.168.168.101-102-103-104 |
Plateforme Player 1 (Alpha) | 192.168.168.201 | 7110 | Réception > 192.168.168.101 |
Plateforme Player 2 (Bravo) | 192.168.168.202 | 7110 | Réception > 192.168.168.102 |
Plateforme Player 3 (Charlie) | 192.168.168.203 | 7110 | Réception > 192.168.168.103 |
Plateforme Player 4 (Tango) | 192.168.168.204 | 7110 | Ré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) |
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.
Pour commencer à programmer les ESP8266, vous aurez besoin d'installer les librairies relatives à ce module :
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.
Une fois ces étapes réalisées, vous devez sélectionner certains paramètres afin de programmer le module.
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
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
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.
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.
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é :
/!\ 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 :
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.
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.
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.
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 :
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.