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