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/02/20 19:49] antoineschmitt [Techniques] |
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 | + | * 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: | * 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 43: | Ligne 43: | ||
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 #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 CLO. Il exécute le même code processing 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, | Idée du proto #3 : Le device sait enregistrer une séquence jouée avec le bouton par son utilisateur, | ||
Ligne 79: | Ligne 79: | ||
* Création du code | * Création du code | ||
* Teste découpe cnc | * Teste découpe cnc | ||
+ | |||
+ | ++++ 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 ===== | ===== Jour 3 - Réalisation du prototype ===== | ||
Ligne 93: | Ligne 238: | ||
* 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 |