Il y a plein d’autre sortes de senseurs analogiques (une petite recherche motorisée pour en découvrir des tas allez zou). Il y a deux que j’affectionne particulièrement, le capteur photo-électrique (qui renvoie une intensité lumineuse) et le capteur de distance à ultrason (qui renvoie la distance en je ne sais plus trop quelle mesure par rapport à un obstacle). L’un coûte rien, l’autre, presque rien, surtout si on achète chez les chinois. Ces deux capteurs à propos de création interactive ouvrent quelques perspectives…

Deux projets en cours de réalisation: « Dégage » d’Oswaldo Géroux et le livre augmenté.

Dégage

« Dégage » est un projet d’installation avec O.Géroux. « Dégage » questionne la relation à la propriété, la relation entre le public et l’œuvre tout en reconfigurant la vision proudhonienne de la production artisitique dans une esthétique du lament… euh, bon sang qu’est-ce qui m’arrive?

Voici le dispositif de l’installation. Dans une grande salle sombre, il y a une toute petite projection sur une enceinte (ou sur un mur), image idéalement projetée avec un pico-projecteur qui permet de faire des petits images ou bien un téléphone portable. Lorsqu’on essaie de s’approcher pour regarder le petit bonhomme, celui-ci commence à nous insulter gratuitement.

[schéma]

On peut déjà entrevoir comment on se débrouille techniquement. Un capteur de distance est accroché à côté de l’image, de sorte que lorsque le spectateur s’approche de l’image, de face, si une certaine distance entre l’écran est le public est dépassée, le bonhomme commence à nous embrouiller.

Voici le code Arduino:

/* Utilisation du capteur Ultrason HC-SR04 */

// définition des broches utilisées
int trig = 12;
int echo = 11;
long lecture_echo;
long cm;

void setup()
{
  pinMode(trig, OUTPUT);
  digitalWrite(trig, LOW);
  pinMode(echo, INPUT);
  Serial.begin(9600);
}

void loop()
{
  digitalWrite(trig, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig, LOW);
  lecture_echo = pulseIn(echo, HIGH);
  //Serial.print(lecture_echo);
  //Serial.print("n");
  cm = lecture_echo / 58;
  //Serial.print("Distancem : ");
  Serial.write(cm);
  delay(500);
}

Et le code Processing (il est très basique, il y a juste un son). Note: j’ai choisi d’animer automatiquement la bouche, qui se cale sur le son selon son intensité.

//ARDUINO: ultrasonss
import ddf.minim.*;
import ddf.minim.effects.*;
import processing.serial.*;

Minim minim;
AudioPlayer voix;
Serial myPort;

PImage[] anim = new PImage[3];
int val;

void setup() {
  //fullScreen(P2D);
  size(640, 420);
  background(0);
  minim = new Minim(this);
  voix = minim.loadFile("voix.wav", 2048);

  String portName = Serial.list()[4];
  for (int i = 0; i < Serial.list().length; i++) {
    println(i + "     " + Serial.list()[i]);
  }
  myPort = new Serial(this, portName, 9600);

  for (int i = 0; i < anim.length; i++) {
    anim[i] = loadImage(i + ".jpg");
  }
}

void draw() {
  affichage();
  arduino();
}

void arduino() {
  if ( myPort.available() > 0) {  // If data is available,
    val = myPort.read();         // read it and store it in val
    //String data = myPort.readStringUntil('n');
    println(val);
    //println(data);
  }
}

void affichage() {
  if (val < 90 && voix.isPlaying() == false) {
    voix.play(1);
  } else {
    image(anim[0], 0, 0);
  }
  if (voix.position() > 1 && voix.position() < voix.bufferSize()-1 && voix.isPlaying()) {
    if (voix.left.get(voix.position()-1) >= -0.01 && voix.left.get(voix.position()-1) < 0.2) {
      image(anim[1], 0, 0);
    } else if (voix.left.get(voix.position()-1) >= 0.2) {
      image(anim[2], 0, 0);
    } else {
      image(anim[0], 0, 0);
    }
  }
}

void keyReleased() {
  voix.play(1);
}

Le livre augmenté.

Nous avons un livre qui, au tourner des pages, actionne des sons, ou fait apparait des images. Les images pourrait être projetés sur le livre lui-même, de façon à « augmenter » des formes imprimées. Évidemment, ça, ça demande du calage, de fixer le livre, régler le vidéo-projecteur, etc.

Pour détecter quelle double page est en vue, on peut glisser des capteur photoelectriques dans le livre. Ici, on va pas non plus se fouler, on va mettre le programme Firmata dans l’Arduino, et lire et traiter les informations via Processing, comme on a déjà fait avec le piezo. Bon, c’ui-là je le fais pas.

Voir aussi: l’accéléromètre, capteur d’humidité, d’alcool…