Passerelle.Infini 2023 : Camellia Sensibilis

De Les Fabriques du Ponant
Révision datée du 11 mars 2023 à 11:05 par Antonydbzh (discussion | contributions) (ne pas toucher en dessous de ce paragraphe)
Aller à : navigation, rechercher

MarathonCreatifPasserelle.Infini2023.png

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
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

/*
 * capteurs
 - fin de course
 - distance HC-SR04
 - température DS18B20 

 Actionneurs :
 - rubans de LED
 - lecteurs MP3
 - vibreur

 Scenario :
 distance -> ruban de led
 fin de course -> lecture aléatoire de son
 temperature -> vibrations
 */
// Appel des Bibliuothèques
//Capteur de température DS18B20
#include <OneWire.h>
#include <DallasTemperature.h>

// Ruban de Led
#include <Adafruit_NeoPixel.h> 

// Lecteur MP3
#include <SoftwareSerial.h>
#include <DFRobotDFPlayerMini.h> 
int morceau=1; // numéro du morceau à lire de 1 à 5

// Capteur de distance HC-SR04
#include <Ultrasonic.h>

// déclaration DS18B20 - Thermomètre
#define ONE_WIRE_BUS 2 // broche du thermomètre
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature. 
DallasTemperature sensors(&oneWire);
int freq = 1000; //varaible qui fixe la fréquence du vibreur

//Capteur de distance HC-SR04 Création de l'objet ultrasonic
Ultrasonic ultrasonic(12, 13); //echo Broche 13, trig broche 12
int calc=10; // variable de calcul de la distance

//--------Définitions Ruban de Led-------------------------------------
#define broche 9 // broche sur laquelle est connecté le ruban DE LED

// Nombre de led du ruban ?
#define nbpixels 8
// Lors de la configuration de la bibliothèque NeoPixel, 
// nous lui indiquons combien de pixels,
// et quelle broche utiliser pour envoyer des signaux.
Adafruit_NeoPixel pixels(nbpixels, broche, NEO_GRB + NEO_KHZ800);
// pour configurer le ruban :
// nomDuRuban (nombreDePixels, NumeroDeLaBroche, typeDeRuban)
// Les différents types de ruban :
//   NEO_KHZ800  800 KHz bitstream (la plupart des produits Neopixel ou références de LED w/WS2812)
//   NEO_KHZ400  400 KHz (classic 'v1' (pas v2) FLORA pixels, drivers WS2811)
//   NEO_GRB     Pixels cablés pour GRB bitstream (la plupart des produits Neopixel)
//   NEO_RGB     Pixels cablés pour RGB bitstream (v1 FLORA pixels, pas les v2)
//   NEO_RGBW    Pixels cablés pour RGBW bitstream (produits NeoPixel RGBW)
#define delai 30 // durée de la pause en millisecondes

// --------------Fin de course-----------------
const int brocheFinDeCourse = 11;// Broche où est connectée le fin de course.
// Variable d'etat
bool etatFinDeCourse = LOW;      // Variable permettant de récupérer l'etat du fin de course

// --------------------Lecteur MP3--------------------
SoftwareSerial mySoftwareSerial(5, 6);  // TX, RX
DFRobotDFPlayerMini myDFPlayer ;  // Creation du lecteur

void setup() {
  Serial.begin(9600);
//------------------------CAPTEURS------------------
//Fin de course
  pinMode(brocheFinDeCourse, INPUT_PULLUP);// Initialisation de la broche du bouton

//Capteur de température DS18B20
  Serial.println("Dallas Temperature IC Control Library Demo");
  // Start up the library
  sensors.begin();

// Capteur de distance HC-SR04
//Rien à setup
  
//----------------------------ACTIONNEURS---------------
//Ruban de Led  
  pixels.begin();           // INITIALISE l'object ruban NeoPixel
  pixels.show();            // éteint tout les pixels aussi vite que possible.
  pixels.setBrightness(100); // met la luminosité à 1/5 (max = 255)

//Lecteur MP3
  mySoftwareSerial.begin(9600) ;
  myDFPlayer.begin(mySoftwareSerial) ;
  myDFPlayer.setTimeOut(500) ;
  myDFPlayer.volume(30) ; // fixe le son à 10 (maximum)
  
// Vibreur
  pinMode(4, OUTPUT);

//HASARD
  randomSeed(analogRead(5)); // Lecture broche analogique 5
 
}

//Gestion du temps
unsigned long currentMillis = 0;
unsigned long previousMillis = 0; 
unsigned long previousVibMillis = 0; 

void loop() {
//----------------les capteurs captent---------------
//FIN DE COURSE
  // Lecture de l'état du Fin de course et stockage dans la variable etatFinDeCourse
  etatFinDeCourse = digitalRead(brocheFinDeCourse);
  Serial.print("état du FindeCourse : "); // on écrit dans le moniteur série
  Serial.println(etatFinDeCourse); 
  //le bouton est "tiré" vers l'état haut (HIGH) par la résistance de pullup

//DISTANCE
  int distance = ultrasonic.read();
  // affichage de la distance dans le terminal série
  Serial.print("Distance in CM: ");
  Serial.println(distance);
  calc = distance/10;

//Température
  // call sensors.requestTemperatures() to issue a global temperature 
  // request to all devices on the bus
  Serial.print("Requesting temperatures...");
  sensors.requestTemperatures(); // Send the command to get temperatures
  Serial.println("DONE");
  // After we got the temperatures, we can print them here.
  // We use the function ByIndex, and as an example get the temperature from the first sensor only.
  float tempC = sensors.getTempCByIndex(0);

  // Check if reading was successful
  if(tempC != DEVICE_DISCONNECTED_C) 
  {
    Serial.print("Temperature for the device 1 (index 0) is: ");
    Serial.println(tempC);
  } 
  else
  {
    Serial.println("Error: Could not read temperature data");
  }
  
//TEMPS
currentMillis = millis();

//ACTIONNEURS
// Distance-Ruban de led
 if (calc<9){
    calc = 8-calc;
    Serial.print("distance calc = "); Serial.println(calc);
    for(int i=0; i<=calc; i++) { // Les pixels sont numérotés de 0 à ...
    pixels.setPixelColor(i, pixels.Color(0, 0, 255)); // on allume la couleur rouge à fond de la ième led 
    }
    for(int i=calc+1; i<nbpixels; i++) { // Les pixels sont numérotés de 0 à ...
    pixels.setPixelColor(i, pixels.Color(0, 0, 0)); // on allume la couleur rouge à fond de la ième led 
    }
  pixels.show();   // met à jour le ruban
  }


//Fin de course - lecture MP3 Aléatoire
  if (currentMillis - previousMillis >= 1000) { // il faut qu'il se soit passé 1 seconde entre deux lancement de musique
     // save the last time you act
     previousMillis = currentMillis;
     
     if (etatFinDeCourse==0){
       morceau = random(1,5);  
       myDFPlayer.play(morceau);         // joue le fichier son.
       Serial.print("je joue le morceau "); Serial.println(morceau);
     }
  }


//Température - fréquence de vibration
// la température va varier de 15 à 30°C - probablement de 17 à 25°C
    if (tempC>19){
        freq = map(tempC,15,35,900,100); // à la louche
        Serial.print("freq = "); Serial.println(freq);
 digitalWrite(4, HIGH);
 delay(400);
 digitalWrite(4, LOW);
 delay(freq);
        }
}

ne pas toucher en dessous de ce paragraphe