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:49] resonance [Jour 3 - Réalisation du prototype] |
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 62: | 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 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 | ||