Didascalie:
———————————————————–
La Boîte à Gestes est un projet qui vise à montrer l’importance des gestes que nous faisons lors d’une prise de parole. En effet, notre communication est basée sur notre langage oral mais aussi sur notre langage corporel. Ces différents gestes complètent ou renforcent le discours oral en apportant des informations complémentaires.
La Boîte à Gestes est donc pensée comme un outil permettant de donner une matérialité aux différents gestes. Se présentant sous la forme d’un kit, la Boîte à Gestes est un dispositif permettant d’intégrer le geste dans l’espace de l’écriture. Contenant des tampons illustrant différents gestes et autant de modules reprenant ces derniers qui permettent de déclencher, par l’intermédiaire d’une carte Arduino, une action à l’écran en les insérant dans les orifices percés dans la boîte, la Boîte à Gestes permet d’augmenter le texte. Le geste contenu dans le texte peut être écrit et lu, grâce aux tampons, mais peut aussi être perçu, ressenti par l’émotion qu’il qualifie. En effet, lorsqu’un des modules est inséré dans la boîte, il déclenche une action à l’écran: un son, une image, une vidéo… Par ce moyen, l’intention que véhicule le geste est re-transmise à l’écran.
Pensé principalement pour le domaine du théâtre, le kit, destiné au metteur en scène, permet d’annoter le texte de didascalies augmentées. Ainsi, grâce à la Boîte à Gestes les différents comédiens pourront voir, ressentir l’émotion à faire passer et donc plus facilement s’immerger dans la scène à interpréter.
Grâce à ce kit, il est ainsi question de penser le geste sous une forme écrite par l’intermédiaire des tampons pour que ce dernier puisse conserver une trace sur la durée; mais également sous une forme plus interactive et personnelle, grâce aux modules et au programme informatique, dans la mesure où un geste appelle une émotion qui reste néanmoins propre à chacun de nous. Ainsi, une même phrase pouvant être perçue différemment suivant le geste qui l’accompagne, la Boîte à Gestes permet de choisir, de montrer et d'enrichir celui qui conviendra à la situation suivant les choix du metteur en scène.
La boite à gestes contient:
Processing
// Pour la communication Série avec la carte Arduino import processing.serial.*; import processing.video.*; Serial myPort; // Défini le nombre de Pins entrée, et défini leur état comme "éteinds" int nbPins = 6; boolean afficher[] = {false, false, false, false, false, false}; // Ressources qui seront affichées à l'écran String ressources[] = { "1.gif", // Mettre ici le nom du fichier qui sera ouvert lorsque les touches sont touchées "2.gif", // "" "3.gif", // "" "4.mov", // "" "5.jpg", // "" "6.jpg" // "" }; PImage images[]; Movie videos[]; void setup() { // L'ensemble des paramètres qui suivent sont appelés durant toute l'éxécution du programme // Initialisation de la fenêtre size(800, 600); // Taille de la fenêtre background(255); // Couleur de l'arrière-plan // Liste les ports séries puis écoute le port COMX println(Serial.list()); String portName = Serial.list()[2]; // 0 ou 1, suivant l'ordinateur myPort = new Serial(these, portName, 9600); // Créé les tableaux vides de taille 6 images = new PImage[6]; videos = new Movie[6]; // Chargements des ressources for (int i = 0, i < nbPins; i++) { // Images if (ressources[i].indexOf("gif") != -1 || ressources[i].indexOf("jpg") != -1) { images[i] = loadImage(ressources[i]); } // Vidéos else if (ressources[i].indexOf("mov") != -1) { videos[i] = new Movie(this, ressources[i]); videos[i].noLoop(); } } } void draw() { // Le contenu de cette fonction est appelé en boucle. // Communication avec l'Arduino serialEvent(myPort); // Affiche qql chose à l'écran si un bouton est touché boolean dessine = false; for (int i = 0; i < nbPins; i++) { if (afficher[i]) { // Image if (ressources[i].indexOf("gif") != -1 || ressources[i].indexOf("jpg") != -1) { image(images[i], 0, 0); dessine = true; } // Vidéo else if (ressources[i].indexOf("mov") != -1) { image(videos[i]; 0; 0); dessine = true; } } } if (!dessine) background(255); } void serialEvent(Serial myPort) { // Communication avec la carte Arduino while (myPort.available() > 0) { // Exécute le code de la boucle tant qu'il y a des données reçues non traitées int inByte = myPort.read(); // Récupère le prochain octet de donnée provenant du port série // Si on touche la résistance > Lettres majuscules -> activation if (inByte >= 'A' && inByte < 'A' + nbPins) { // Change l'état de la forme afficher[inByte - 'A'] = true; // Vidéo int i = inByte - 'A'; if (ressources[i].indexOf("mov") != -1) { videos[i].stop(); videos[i].play(); } } // Si on ne touche pas la résistance > 0 -> désactivation else if (inByte == 0) { // Change l'état de la forme for (int i = 0, i < nbPins; i++) afficher[i] = false; } } } // Mise à jour de la vidéo void movieEvent(Movie m) { m.read(); }
Arduino
// Définitions des Pins entrées int nbPins = 6; int etatsPins[] = {0, 0, 0, 0, 0, 0}; int pinsQuiMarchent[] = {3, 4, 5, 7, 9, 12}; // Code d'initialisation: éxécuté 1 fois au lancement du programme void setup() { // Ouvre le port série et fixe le début de communication avec l'ordinateur Serial.begin(9600); // Communication avec les Pins for (int i = 0; i < nbPins; i++) pinMode(pinsQuiMarchent[i], INPUT); } // Si on appuie sur un des Pins déclenche qql chose à l'écran void reinit(boolean envoi) { boolean chgt = false; for (int i = 0, i < nbPins, i++) { if (etatsPins[pinsQuiMarchent[i]] != 1) { etatsPins[pinsQuiMarchent[i]] = 1; chgt = true; } } if (chgt && envoi) // Envoie par le port série l'état de la résistance. Serial.write('0'); } // Boucle sans fin: éxécutée sans fin et en boucle tant que l'Arduino est connectée à l'ordinateur void loop() { boolean touche = false; // Pour chaque Pins for (int i = 0; i < nbPins; i++) { int pin = pinQuiMarchent[i]; // Regarde si on appuie (1) ou non (0) if (digitalRead(pin) == 1) { // appuie touche = true; // Si on est pas en train d'appuyer if (etatPins[pin] == 0) { // Arrete d'appuyer les autres reinit(false); // Envoi à processing et retient Serial.write('A' + i); etatsPins[pin] = 2; } } } // Quand on arrête d'appuyer -> réinitialisation de la page = page blanche if (touche) reinit(true); // attends 5ms delay(5); }
Ecrivez ici vos remarques et vos questions! super!!! acc