Passerelle.Infini 2023 : Camellia Sensibilis : Différence entre versions

De Les Fabriques du Ponant
Aller à : navigation, rechercher
(ne pas toucher en dessous de ce paragraphe)
 
Ligne 308 : Ligne 308 :
  
 
==ne pas toucher en dessous de ce paragraphe==
 
==ne pas toucher en dessous de ce paragraphe==
[[Catégorie:Hackathon]]
+
 
 
[[Catégorie:Passerelle.infini]]
 
[[Catégorie:Passerelle.infini]]
 
[[Catégorie:led]][[Catégorie:ruban de led]][[Catégorie:WS1812B]]
 
[[Catégorie:led]][[Catégorie:ruban de led]][[Catégorie:WS1812B]]

Version actuelle datée du 9 janvier 2024 à 17:55

MarathonCreatifPasserelle.Infini2023.png

résumé du projet

CamelliaSensibilisfinal.jpg

Pour qui : 4 à 6 personnes (2 personnes pour le prototype)

Quoi ? Stimuler les sens Ouvrir le groupe et à l’individu Pourquoi ? Vivre collectivement et individuellement une expérience sensorielle ? Outil de connexion à ses sensations.

Ou ? Outil de médiation dans un lieu culturel scolaire

Nom : Camélia sensibilis L’arbre sensoriel

Le but : Dispositif interactif et sensoriel donnant l’illusion de vivre une expérience pour soi alors que l’on nourrit l’exprérience de l’autre.

Comment il fonctionne Le participant émet des actions qui déclenchent des expériences

Qui va l’utiliser (prototype) 2 humains

Le récit

An 2875, fruit de centaines d’années de repli sur soi, les humains ont perdu leur faculté de communication sociale et verbale.
Dans cette société aux stimulations constantes et où les surcharges cognitives sont devenues la norme, les individus ont perdu leur rapport au corps et à l’autre. Poussés par un instinct primaire dont ils ont oubliés l’origine, chacun continu de vivre solitairement en groupe. L’évolution ayant fait son œuvre, l’espèce humaine n’est plus capable de parole. Son corps demeure physiquement le même mais l’absence de stimulations sensorielles semble l’avoir rendu insensible. Prisonnier de leur esprit et sans possibilité de communiquer avec les autres, les humains ne savent plus entrer en contact, échanger, partager, vivre des expériences communes. Le sentiment d’émerveillement, la curiosité et l’envie de découverte semble disparus.

Quatre scientifiques d’une petite planète du système lunaire observent cette humanité hypo-sensible.
Comparant leurs observations avec les archives des recherches sur cette espèce, ils se rendent compte que les humains n’ont pas toujours été ainsi.
En effet, fût un temps où ils vivaient collectivement échangeant verbalement entre eux, sensible à leur environnement grâce au concept ancestrale des 5 sens.

Afin de savoir si cette capacité a complètement disparu de la nature humaine, les quatre scientifiques décident de mener une expérience. 

Partant d’une ancienne linogravure de camélia, une plante antique dont on retrouve des traces dans certaines régions terrestres, elles décident d’élaborer un dispositif sensoriel expérimental. Deux humains de laboratoires ont été capturé pour l’occasion. Présentant des caractères symptomatiques de surcharge cognitive et totalement déconnectés de leur enveloppe corporelle, ils semblent être des sujets pertinents.

Leur faisant croire à une expérience individuelle visant à comprendre leurs facultés sensorielles, les scientifiques leur réservent un dessein plus complexe. En pensant réaliser des actions individuels, le sujet A va en réalité entrer en contact avec le sujet B.
Grâce à un habile stratagème pensé par les scientifiques, les sens des individus vont être stimulés afin de permettre une exploration sensorielle créatrice d’expériences communes et de lien sociaux.

A quoi l’expérience aboutira-t-elle ? Les humains ont-ils définitivement perdu leur capacité originelle à ressentir et à communiquer ? Les sujets A et B seront-ils source d’espoir pour l’humanité ?

équipe du projet

  • Bella Bates
  • Caroline Denos
  • Morgane Hornsperger
  • Sarah Hassouni
  • Élément de la liste à puces

Mentor= Sarah Maillot

Bibliographie et webographie sur le projet

Mettre ici des exemples trouvés sur web de projets qui ressemblent et des technologies qui s'en rapprochent ou qui servent d'inspiration.

sonotheque.org choix de musique entre 2 et 10 secondes

pistes explorée, abandonnées ou fertiles


Recherches pour le socle
SchémasRecherches.jpg
Socle installé

CamelliaSensibilisPied.jpg


Organigramme de montage électronique

CamelliaSensibilisOrganigramme.jpg

Perçage avec la scie
CamelliaSensibilisPercage.jpg

prototype qu'on souhaite réaliser

Matériaux

  • -branches de camélias
  • -tubes en cartons de différents diamètres
  • -tissus
  • -matériaux diverses de récupération.
  • -bois contreplaquer 18MM d’épaisseur base 45 cm hauteur 42cm

Outils

  • -clef USB avec du son en MP3 (libre de droits)
  • -Plezzo
  • -détecteur de distance
  • -détecteur de température
  • -led
  • -haut parleur
  • -vibreur
  • -scie circulaire et radiale
  • -scie cloche

Savoirs faire

  • Codeur pour associer le capteur à l’actionneur

code

  1  
  2 /* Code du projet Camellia Sensibilis 
  3  * capteurs
  4  - fin de course
  5  - distance HC-SR04
  6  - température DS18B20 
  7 
  8  Actionneurs :
  9  - rubans de LED
 10  - lecteurs MP3
 11  - vibreur
 12 
 13  Scenario :
 14  distance -> ruban de led
 15  fin de course -> lecture aléatoire de son
 16  température -> vibrations
 17     ___
 18   / ___ \
 19   |_|   | 
 20      /_/
 21      _   ___   _
 22     |_| |___|_| |_
 23          ___|_   _|
 24         |___| |_|
 25   Les petits Débrouillards - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/
 26  */
 27 // Appel des Bibliothèques
 28 //Capteur de température DS18B20
 29 #include <OneWire.h>
 30 #include <DallasTemperature.h>
 31 
 32 // Ruban de Led
 33 #include <Adafruit_NeoPixel.h> 
 34 
 35 // Lecteur MP3
 36 #include <SoftwareSerial.h>
 37 #include <DFRobotDFPlayerMini.h> 
 38 int morceau=1; // numéro du morceau à lire de 1 à 5
 39 
 40 // Capteur de distance HC-SR04
 41 #include <Ultrasonic.h>
 42 
 43 // déclaration DS18B20 - Thermomètre
 44 #define ONE_WIRE_BUS 2 // broche du thermomètre
 45 // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
 46 OneWire oneWire(ONE_WIRE_BUS);
 47 // Pass our oneWire reference to Dallas Temperature. 
 48 DallasTemperature sensors(&oneWire);
 49 int freq = 1000; //varaible qui fixe la fréquence du vibreur
 50 
 51 //Capteur de distance HC-SR04 Création de l'objet ultrasonic
 52 Ultrasonic ultrasonic(12, 13); //echo Broche 13, trig broche 12
 53 int calc=10; // variable de calcul de la distance
 54 
 55 //--------Définitions Ruban de Led-------------------------------------
 56 #define broche 9 // broche sur laquelle est connecté le ruban DE LED
 57 
 58 // Nombre de led du ruban ?
 59 #define nbpixels 8
 60 // Lors de la configuration de la bibliothèque NeoPixel, 
 61 // nous lui indiquons combien de pixels,
 62 // et quelle broche utiliser pour envoyer des signaux.
 63 Adafruit_NeoPixel pixels(nbpixels, broche, NEO_GRB + NEO_KHZ800);
 64 // pour configurer le ruban :
 65 // nomDuRuban (nombreDePixels, NumeroDeLaBroche, typeDeRuban)
 66 // Les différents types de ruban :
 67 //   NEO_KHZ800  800 KHz bitstream (la plupart des produits Neopixel ou références de LED w/WS2812)
 68 //   NEO_KHZ400  400 KHz (classic 'v1' (pas v2) FLORA pixels, drivers WS2811)
 69 //   NEO_GRB     Pixels cablés pour GRB bitstream (la plupart des produits Neopixel)
 70 //   NEO_RGB     Pixels cablés pour RGB bitstream (v1 FLORA pixels, pas les v2)
 71 //   NEO_RGBW    Pixels cablés pour RGBW bitstream (produits NeoPixel RGBW)
 72 #define delai 30 // durée de la pause en millisecondes
 73 
 74 // --------------Fin de course-----------------
 75 const int brocheFinDeCourse = 11;// Broche où est connectée le fin de course.
 76 // Variable d'etat
 77 bool etatFinDeCourse = LOW;      // Variable permettant de récupérer l'etat du fin de course
 78 
 79 // --------------------Lecteur MP3--------------------
 80 SoftwareSerial mySoftwareSerial(5, 6);  // TX, RX
 81 DFRobotDFPlayerMini myDFPlayer ;  // Creation du lecteur
 82 
 83 void setup() {
 84   Serial.begin(9600);
 85 //------------------------CAPTEURS------------------
 86 //Fin de course
 87   pinMode(brocheFinDeCourse, INPUT_PULLUP);// Initialisation de la broche du bouton
 88 
 89 //Capteur de température DS18B20
 90   Serial.println("Dallas Temperature IC Control Library Demo");
 91   // Start up the library
 92   sensors.begin();
 93 
 94 // Capteur de distance HC-SR04
 95 //Rien à setup
 96   
 97 //----------------------------ACTIONNEURS---------------
 98 //Ruban de Led  
 99   pixels.begin();           // INITIALISE l'object ruban NeoPixel
100   pixels.show();            // éteint tout les pixels aussi vite que possible.
101   pixels.setBrightness(100); // met la luminosité à 1/5 (max = 255)
102 
103 //Lecteur MP3
104   mySoftwareSerial.begin(9600) ;
105   myDFPlayer.begin(mySoftwareSerial) ;
106   myDFPlayer.setTimeOut(500) ;
107   myDFPlayer.volume(30) ; // fixe le son à 10 (maximum)
108   
109 // Vibreur
110   pinMode(4, OUTPUT);
111 
112 //HASARD
113   randomSeed(analogRead(5)); // Lecture broche analogique 5
114  
115 }
116 
117 //Gestion du temps
118 unsigned long currentMillis = 0;
119 unsigned long previousMillis = 0; 
120 unsigned long previousVibMillis = 0; 
121 
122 void loop() {
123 //----------------les capteurs captent---------------
124 //FIN DE COURSE
125   // Lecture de l'état du Fin de course et stockage dans la variable etatFinDeCourse
126   etatFinDeCourse = digitalRead(brocheFinDeCourse);
127   Serial.print("état du FindeCourse : "); // on écrit dans le moniteur série
128   Serial.println(etatFinDeCourse); 
129   //le bouton est "tiré" vers l'état haut (HIGH) par la résistance de pullup
130 
131 //DISTANCE
132   int distance = ultrasonic.read();
133   // affichage de la distance dans le terminal série
134   Serial.print("Distance in CM: ");
135   Serial.println(distance);
136   calc = distance/10;
137 
138 //Température
139   // call sensors.requestTemperatures() to issue a global temperature 
140   // request to all devices on the bus
141   Serial.print("Requesting temperatures...");
142   sensors.requestTemperatures(); // Send the command to get temperatures
143   Serial.println("DONE");
144   // After we got the temperatures, we can print them here.
145   // We use the function ByIndex, and as an example get the temperature from the first sensor only.
146   float tempC = sensors.getTempCByIndex(0);
147 
148   // Check if reading was successful
149   if(tempC != DEVICE_DISCONNECTED_C) 
150   {
151     Serial.print("Temperature for the device 1 (index 0) is: ");
152     Serial.println(tempC);
153   } 
154   else
155   {
156     Serial.println("Error: Could not read temperature data");
157   }
158   
159 //TEMPS
160 currentMillis = millis();
161 
162 //ACTIONNEURS
163 // Distance-Ruban de led
164  if (calc<9){
165     calc = 8-calc;
166     Serial.print("distance calc = "); Serial.println(calc);
167     for(int i=0; i<=calc; i++) { // Les pixels sont numérotés de 0 à ...
168     pixels.setPixelColor(i, pixels.Color(0, 0, 255)); // on allume la couleur rouge à fond de la ième led 
169     }
170     for(int i=calc+1; i<nbpixels; i++) { // Les pixels sont numérotés de 0 à ...
171     pixels.setPixelColor(i, pixels.Color(0, 0, 0)); // on allume la couleur rouge à fond de la ième led 
172     }
173   pixels.show();   // met à jour le ruban
174   }
175 
176 
177 //Fin de course - lecture MP3 Aléatoire
178   if (currentMillis - previousMillis >= 1000) { // il faut qu'il se soit passé 1 seconde entre deux lancement de musique
179      // save the last time you act
180      previousMillis = currentMillis;
181      
182      if (etatFinDeCourse==0){
183        morceau = random(1,5);  
184        myDFPlayer.play(morceau);         // joue le fichier son.
185        Serial.print("je joue le morceau "); Serial.println(morceau);
186      }
187   }
188 
189 
190 //Température - fréquence de vibration
191 // la température va varier de 15 à 30°C - probablement de 17 à 25°C
192     if (tempC>19){
193         freq = map(tempC,15,35,900,100); // à la louche
194         Serial.print("freq = "); Serial.println(freq);
195  digitalWrite(4, HIGH);
196  delay(400);
197  digitalWrite(4, LOW);
198  delay(freq);
199         }
200 }

ne pas toucher en dessous de ce paragraphe