LA BOITE A GESTES

Didascalies augmentées pour l'atelier de théâtre

Porteur du projet : Mélanie Lacroix

Contexte : Macro projet DSAA

Page WIKI mémoire: Le Geste&Le Mot

Mémoire FR: lacroix-legeste_lemot.pdf

Mémoire EN: memoire-anglais.pdf

Présentation

Didascalie:

dans l'Antiquité, en Grèce, indication manuscrite adressée par l'auteur aux interprètes de sa pièce

dans un texte de pièce de théâtre ou un scénario, notice définissant le comportement que doit adopter l'acteur

-----------------------------------------------------------

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.

Contenu

La boite à gestes contient:

1 notice

6 modules mains

6 tampons

1 encreur rouge

Des autocollants

1 nécessaire Arduino (Arduino/breadboard/carte connecteurs/résistances/fils...)

Fiches exemples

Montage du circuit Arduino

Codes PROCESSING / ARDUINO

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);
}

Contact

Mélanie Lacroix / 06.05.36.83.94 / lacroix-melanie@hotmail.fr

Espace d'échanges

Ecrivez ici vos remarques et vos questions! super!!! acc