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 | ||
ateliers:clod-lab:accueil [2017/01/31 11:48] resonance [Jour 2 - Répartition du travail et des équipes] |
ateliers:clod-lab:accueil [2017/03/07 11:47] (Version actuelle) 9thcloud [Premières pistes de réflexion pour les protos] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== LAB - City Lights Orchestra Device (CLOD) ====== | ====== LAB - City Lights Orchestra Device (CLOD) ====== | ||
- | * Porteurs du projet : Antoine Schmitt, Reso-nance Numérique ([[: | + | * Porteurs du projet : Antoine Schmitt, |
- | * Avec : Videospread, | + | * Produit par : Seconde Nature, Zinc, et Videospread dans la cadre de Future DiverCities |
- | * Contexte : CHRONIQUES Acte 3 - Révélations, parcours d’installations d’art numérique en plein cœur de Marseille | + | * Contexte : CHRONIQUES Acte 3 - Révélations |
- | * Date : du 23 au 28 janvier 2017 | + | * Date : du 23 au 29 janvier 2017 |
+ | * Page du projet documenté : [[projets: | ||
===== Description de l' | ===== Description de l' | ||
- | {{ : | + | {{ : |
Designer et fabriquer **City Lights Orchestra Device**, une lampe connectée et séquençable dans la ville. | Designer et fabriquer **City Lights Orchestra Device**, une lampe connectée et séquençable dans la ville. | ||
- | Dans le cadre de CHRONIQUES Acte 3 - Révélations, | + | Dans le cadre de CHRONIQUES Acte 3 - Révélations, et du projet européen Future DiverCities, nous proposons un LAB de création et de fabrication pour les étudiants (école d’art, de design, d’électronique, |
- | City Lights Orchestra est une symphonie visuelle ouverte dans la ville. La nuit, chaque ordinateur connecté à internet éclaire la fenêtre de son bureau ou de la maison, et cligne, pulse, bat, s’allume et s’éteint, | + | [[http:// |
++++ Infos pratiques | | ++++ Infos pratiques | | ||
Ligne 38: | Ligne 39: | ||
+ | |||
+ | ==== Premières pistes de réflexion pour les protos === | ||
+ | Idée du proto #1: Site Web avec rythmes de lumière (nuances de blanc) > Téléphones portables > capteur de lumière collé sur l' | ||
+ | |||
+ | Idée du proto #2 : Le device joue tout seul la même symphonie lumineuse que les fenêtres de City Lights Orchestra. Il exécute le même code processing sur l' | ||
+ | |||
+ | Idée du proto #3 : Le device sait enregistrer une séquence jouée avec le bouton par son utilisateur, | ||
==== Techniques === | ==== Techniques === | ||
Ligne 46: | Ligne 54: | ||
* COMMUNICATIONS (RTC/ | * COMMUNICATIONS (RTC/ | ||
* CODE ARDUINO, ALGORITHMES | * CODE ARDUINO, ALGORITHMES | ||
+ | |||
+ | ==== Pistes d' | ||
+ | {{: | ||
+ | |||
+ | |||
+ | <WRAP info 80%> | ||
+ | Page du projet final documenté : [[projets: | ||
+ | Fichiers et codes sources disponibles. | ||
+ | </ | ||
Ligne 63: | Ligne 80: | ||
* Teste découpe cnc | * Teste découpe cnc | ||
- | ===== Jour 3 - Réalisation du prototype ===== | + | ++++ Un premier code sans communication | |
+ | Test 1 avec arduino uno, 3 mode live rec play | ||
+ | <code c+> | ||
+ | #define MODE_REC 3 | ||
+ | #define MODE_PLAY 2 | ||
+ | #define MODE_LIVE 1 | ||
+ | // Pins | ||
+ | #define BTN_1 5 // Mode à définir | ||
+ | #define BTN_2 4 // Mode à définir | ||
+ | #define BTN_3 2 // bouton rec (D4 pull-up interne) | ||
+ | #define LED 15 | ||
+ | #define LIGHTSENSOR 0 | ||
+ | #define MAX_INDEX 100 | ||
+ | #define SEUIL 200 // Seuil pour les écran à faible luminosité | ||
+ | #define FRAMERATE 40 // Pour l' | ||
+ | |||
+ | uint8_t val[MAX_INDEX] = {0}; | ||
+ | |||
+ | void setup() | ||
+ | { | ||
+ | pinMode(BTN_1, | ||
+ | pinMode(BTN_2, | ||
+ | pinMode(BTN_3, | ||
+ | pinMode(LED, | ||
+ | |||
+ | Serial.begin(9600); | ||
+ | } | ||
+ | |||
+ | void loop() | ||
+ | { | ||
+ | switch (readButton()) | ||
+ | { | ||
+ | // Mode " | ||
+ | case MODE_LIVE : { | ||
+ | live(); | ||
+ | break; | ||
+ | } | ||
+ | // Mode " | ||
+ | case MODE_REC : { | ||
+ | rec(); | ||
+ | break; | ||
+ | } | ||
+ | |||
+ | // N'est plus fonctionnel | ||
+ | // case MODE_PLAY : { | ||
+ | // play(); | ||
+ | // break; | ||
+ | // } | ||
+ | } | ||
+ | } | ||
+ | // Fonction à modifier pour ajouter le bouton REC | ||
+ | uint8_t readButton() | ||
+ | { | ||
+ | int buttonState1 = digitalRead(BTN_1); | ||
+ | int buttonState2 = digitalRead(BTN_2); | ||
+ | |||
+ | if (buttonState1) { | ||
+ | return MODE_REC ; | ||
+ | } | ||
+ | else if (buttonState2) { | ||
+ | return MODE_LIVE ; | ||
+ | } | ||
+ | else { | ||
+ | return MODE_PLAY ; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // fonction LIVE //// | ||
+ | void live() | ||
+ | { | ||
+ | uint8_t lightVal = 0; | ||
+ | | ||
+ | if (analogRead(LIGHTSENSOR) > SEUIL) | ||
+ | { | ||
+ | lightVal = 255; | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | lightVal = map(analogRead(LIGHTSENSOR), | ||
+ | } | ||
+ | analogWrite(LED, | ||
+ | } | ||
+ | |||
+ | // fonction REC //// | ||
+ | // A modifier pour supprimer le while() | ||
+ | void rec() | ||
+ | { | ||
+ | uint8_t lightVal = 0; | ||
+ | uint16_t index = 0; | ||
+ | |||
+ | while (index < MAX_INDEX) | ||
+ | { | ||
+ | lightVal = map(analogRead(LIGHTSENSOR), | ||
+ | |||
+ | val[index] = lightVal; | ||
+ | |||
+ | index++; | ||
+ | |||
+ | delay(FRAMERATE); | ||
+ | } | ||
+ | recFinish(); | ||
+ | } | ||
+ | |||
+ | // fonction play //// | ||
+ | void play() | ||
+ | { | ||
+ | static uint16_t index = 0; | ||
+ | if (index > MAX_INDEX) { | ||
+ | index = 0; | ||
+ | } | ||
+ | analogWrite(LED, | ||
+ | index++; | ||
+ | delay (FRAMERATE); | ||
+ | } | ||
+ | |||
+ | // fonction serial debug //// | ||
+ | void debug(uint8_t array[]) | ||
+ | { | ||
+ | int count = 0; | ||
+ | while (count <= MAX_INDEX) | ||
+ | { | ||
+ | Serial.print(" | ||
+ | Serial.println(array[count]); | ||
+ | count++; | ||
+ | } | ||
+ | delay(5000); | ||
+ | } | ||
+ | |||
+ | // fonction recfinish //// | ||
+ | void recFinish() | ||
+ | { | ||
+ | for (uint8_t i = 0; i < 3; i++) { | ||
+ | digitalWrite(LED, | ||
+ | delay(200); | ||
+ | digitalWrite(LED, | ||
+ | delay(200); | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | ++++ | ||
+ | |||
+ | |||
+ | ===== Jour 3 - Réalisation du prototype ===== | ||
+ | {{ : | ||
* Amélioration circuit | * Amélioration circuit | ||
* Découpe du prototype | * Découpe du prototype | ||
Ligne 71: | Ligne 233: | ||
===== Jour 4 - Réalisation du prototype ===== | ===== Jour 4 - Réalisation du prototype ===== | ||
+ | {{ : | ||
* Prototype (socle Led et support réflexion) modélisation 3D et Impression 3D | * Prototype (socle Led et support réflexion) modélisation 3D et Impression 3D | ||
* Finalisation des 3 circuits électriques globaux, teste des différents modes de fonctionnements, | * Finalisation des 3 circuits électriques globaux, teste des différents modes de fonctionnements, | ||
* Trois prototypes qui sont fonctionnels sur les différents usages, pour tester le système dans sa totalité | * Trois prototypes qui sont fonctionnels sur les différents usages, pour tester le système dans sa totalité | ||
* Travail en cours sur le code | * Travail en cours sur le code | ||
+ | {{ : | ||
===== Jour 5 - Assemblage ===== | ===== Jour 5 - Assemblage ===== | ||
* Assemblage /soudure des 4 prototypes | * Assemblage /soudure des 4 prototypes |