Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
projets:olo_220v:accueil [2020/03/12 17:01] laurent [Code source] |
projets:olo_220v:accueil [2020/05/26 08:50] (Version actuelle) resonance [Jeu] |
||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
* Date : 2020 | * Date : 2020 | ||
* Licence : libre ! | * Licence : libre ! | ||
- | * Contexte : | + | * Contexte : Invitation à Bergen by BEK : postponed for coronavirus... |
* Fichiers : lien | * Fichiers : lien | ||
* Lien : lien vers un site éventuellement | * Lien : lien vers un site éventuellement | ||
Ligne 10: | Ligne 10: | ||
{{tag> | {{tag> | ||
===== Description ===== | ===== Description ===== | ||
- | + | {{ : | |
- | {{ : | + | |
Olo en version 220v.... | Olo en version 220v.... | ||
===== Jeu ===== | ===== Jeu ===== | ||
+ | |||
Sur une interface representant les differentes lumieres. | Sur une interface representant les differentes lumieres. | ||
On peut enregistrer une sequence en appuyant sur des boutons (ou interface photoresitance) | On peut enregistrer une sequence en appuyant sur des boutons (ou interface photoresitance) | ||
- | | + | |
- | * Si une deuxieme sequence de 3s est ajouté , elle s' | + | |
- | * etc... | + | * Si une deuxieme sequence de 3s est ajouté , elle s' |
Ligne 30: | Ligne 31: | ||
* douille E27 + ampoule halogene | * douille E27 + ampoule halogene | ||
* prise 220v male | * prise 220v male | ||
+ | * potentiomètre (1€) | ||
* jumpers divers | * jumpers divers | ||
* fils electriques 220v 0.75 (2€) | * fils electriques 220v 0.75 (2€) | ||
Ligne 41: | Ligne 43: | ||
Ca clignote un peu quand on est pres du zero... il faut plutot se ballader entre 5% et 100% pour eviter ces clignotements... | Ca clignote un peu quand on est pres du zero... il faut plutot se ballader entre 5% et 100% pour eviter ces clignotements... | ||
- | ===== Code source | + | ===== Fonctionnement |
- | Code pour esp8266 avec les libs : | + | Le code source est consultable sur le [[https:// |
- | [[https:// | + | |
+ | ==== ESP8266 ==== | ||
+ | ===câblage=== | ||
+ | Les ESP8266 sont alimentés en 5v via un petit convertisseur 230VAC -> 5VDC dédié. Ils alimentent à leur tour un [[ https:// | ||
+ | ^ ESP8266 ^ dimmer ^ Potentiomètre | ||
+ | | G | GND | patte externe | ||
+ | | 5v | | | +v | | ||
+ | | 3v3 | VCC | patte externe | ||
+ | | A0 | | patte centrale | | | ||
+ | | D1 | PWM | | | | ||
+ | | D2 | ZC | ||
+ | |||
+ | === réseau === | ||
+ | Les ESP8266 se connectent sur un routeur dédié dont le SSID et éventuellement mot de passe est défini dans le code : | ||
+ | <code cpp> | ||
+ | static char* PSK = NULL; | ||
+ | static char* SSID = " | ||
+ | </ | ||
+ | Un //nom d' | ||
+ | <code cpp># | ||
+ | Dès leur connexion au réseau, ils se présenterons en donnant leur nom d' | ||
+ | Si nécessaire, | ||
+ | <==== Interface web ==== | ||
+ | Un Raspberry Pi est utilisé pour servir une interface web via un script python3 utilisant //flask// et // | ||
+ | La déclaration des ESP8266 attendus se fait dans le fichier **config.py** où il est possible d' | ||
+ | |||
+ | La génération de son côté client se fait par la librairie [[https:// | ||
+ | <code javascript> | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | }).toMaster();</ | ||
+ | Les notes utilisées pour chaque fenêtre sont réglable dans le fichier **config.py** : | ||
+ | <code python> | ||
+ | startOctave = 3 # lowest octave to be played | ||
+ | playNotesOnUI = True # play sounds corresponding to lights on the UI when sequences are played</ | ||
+ | * //notes// contient la liste des notes jouées (dans l' | ||
+ | * // | ||
+ | * // | ||
+ | <WRAP center round important 60%> | ||
+ | Il est totalement impossible de garantir une lecture synchrone de ces sons avec les lumières sur le téléphone de chaque participant connecté. | ||
+ | |||
+ | Le tout peut devenir très vite cacophonique. | ||
+ | </ | ||
+ | L' | ||
+ | |||
+ | ==== lecture des séquences ==== | ||
+ | Chaque séquence est lue en boucle, atténuée à chaque itération. L' | ||
+ | |||
+ | ==== communication lampes/ | ||
+ | Serveur et lampes communiquent en OSC par UDP, le serveur écoute sur le **port 9000** et transmet sur le **port 8000** (donc l' | ||
+ | |||
+ | Liste des messages OSC implémentés : | ||
+ | * **/light** : fixe l' | ||
+ | * //(int) valeur// en pourcent | ||
+ | * ex : /// | ||
+ | * **/ACK** : réponse de l'ESP à ///light//, ce message permet au serveur de vérifier qu'un ordre a bien été reçu par la lampe | ||
+ | * //(int) valeur// en pourcent | ||
+ | * **/fade** : débute un fondu qui s' | ||
+ | * //(int) start// : valeur de début du fondu | ||
+ | * //(int) stop// : valeur attendue en fin de fondu. | ||
+ | * //(int) durée// : durée du fondu en millisecondes. | ||
+ | * ex : /// | ||
+ | * ex2 : /// | ||
+ | * **/ | ||
+ | * //(int) start// : valeur de début du fondu | ||
+ | * //(int) stop// : valeur attendue en fin de fondu. | ||
+ | * //(int) durée// : durée du fondu en millisecondes. | ||
+ | * **/ | ||
+ | * **/myID** : répond au serveur qui enregistrera l'IP de la réponse | ||
+ | * //(str) hostname// nom d' | ||
+ | * **/ | ||
- | Les ESP se connectent sur un routeur dédié et attendent de recevoir en OSC | ||
- | / | ||
- | Ils répondent /ACK avec en premier argument leur nom d' | ||
- | Par défaut les ESP envoient en broadcast, sauf s'il reçoivent l'OSC "/ | ||
+ | ==== communication serveur/ | ||
+ | Pour créer un portail captif, on utilise un routeur flashé sous [[https:// | ||
+ | Côté Pi, la communication serveur/ | ||
===== Idées design | ===== Idées design | ||
Idée design tasseau + conserve.. :{{ : | Idée design tasseau + conserve.. :{{ : |