Outils pour utilisateurs

Outils du site


wiki:projets:revelation:revelation

RÉVÉLATION - TABLE MULTITOUCH

Description

Ce projet est un dispositif permettant de retranscrire un mouvement. J’ai choisi de mettre en valeur une action que très peu de monde s’imagine, à savoir le déplacement de la souris d’ordinateur.

Pour ce faire, je me suis enregistré en train de travailler sur mon ordinateur, puis j’ai créé un dispositif qui permet à n’importe qui d’analyser le déplacement de sa main sur “une surface multitouch DIY”. Ce mouvement est retranscrit par une webcam placée dans un caisson surmonté d'une surface translucide (plexiglass) qui fera office d'interface. L’information est envoyée sur un ordinateur, qui à son tour l’envoie à un vidéoprojecteur. La projection peut être externe ou rétroprojetée en miroir sur l'interface en plexiglass.

Matériaux

Hardware:

  1. caisson
  2. webcam
  3. vitre (plexiglass)
  4. ordinateur
  5. vidéoprojecteur

Software:

Code Processing

import oscP5.*;\\ 
import netP5.*;\\ 
import tuioZones.*;\\ 
import ddf.minim.*;\\ 
TUIOzoneCollection zones;\\ 
Minim minim;\\ 
AudioInput in;\\ 
int s = 9000; // sensibilité du mic\\ 
AudioPlayer song;\\ 

void reset_sketch(){\\ 
background(255);\\ 
}\\ 

void setup(){\\ 
  size(displayWidth,displayHeight);\\ 
  background(255);\\ 
  noCursor();\\ 
  minim = new Minim(this);\\ 
  song = minim.loadFile ("kaytranada.mp3");\\ 
  song.play();\\ 
   
  // son\\ 
  minim = new Minim(this); // Objet minim\\ 
  minim.debugOn();\\ 
  in = minim.getLineIn(Minim.MONO, 64); // entrée son\\ 
   
  // create a draggable, throwable, and scalable zone for a photo\\ 
  zones=new TUIOzoneCollection(this);\\ 
  zones.setZone("zone1", width/2,height/2,400,300);\\ 
  zones.setZoneParameter("zone1","DRAGGABLE",true);\\ 
  }\\ 
  
void draw(){

  // draw the touch trails for testing hardware calibration
  int[][] coord=zones.getPoints();
  stroke(0);
  fill (227,227,227,120);
  smooth();
  strokeWeight(1); 
  
  //filtre blur trop gourmand!!
  //²filter(BLUR, 2);
  
    if (coord.length>0){\\ 
    for (int i=0;i<coord.length;i++){\\ 
      ellipse(coord[i][0],coord[i][1],in.left.get(i)*s, in.left.get(i)*s);\\ 
      int [][] trail=zones.getTrail(coord[i][2]);\\ 
      if (trail.length>1){\\ 
        for (int j=1;j<trail.length;j++){\\ 
          line(trail[j][0],trail[j][1],trail[j-1][0],trail[j-1][1]);\\ 
          ellipse(trail[j][0],trail[j][1],in.left.get(i)*s, in.left.get(i)*s);\\ 
          println(trail[j][2] + "," + trail[j][3]);\\     
        }\\ 
      }\\ 
    }\\ 
  }\\ 
}\\ 

// impression écran, ici touche "s"\\ 
void keyPressed(){\\ 
   if (key == 's') {\\ 
  saveFrame("draw-####.tif");\\ 
   }\\ 
}\\ 
 void keyReleased(){\\ 
 if (key == 'r'){\\ 
 reset_sketch();\\ 
}\\ 
 }\\ 
 
wiki/projets/revelation/revelation.txt · Dernière modification: 2016/04/05 11:35 (modification externe)