Outils pour utilisateurs

Outils du site


wiki:projets:fortune-teller-2.0:accueil

Fortune Teller 2.0

  • Porteuse du projet : Gaëlle Choquet
  • Date : 2019
  • Contexte : Projet Arduino

Description

À l'aide du capteur d'ultrason et de Processing, ce projet vise à simuler une boule de cristal, actualisée, permettant de lire l'avenir. Ainsi, lorsque l'on passe notre main à moins de 10 cm de ce capteur, on voit s'afficher de quoi sera fait notre avenir à l'écran, à l'image d'une boule de cristal que l'on effleure des mains afin de faire apparaître notre prédiction.

  • En vérité, 10 vidéos initialisées dans un tableau sur Processing, prédisant chacune un destin (cités ci-dessus), optimiste ou pessimiste. L'une d'elles est alors lue aléatoirement si le capteur détecte une présence à moins de 5 cm. Cela permet ainsi d'imiter les différents présages pouvant être lus par une boule de cristal.

Capteur


Schéma


Programme Arduino

//Fortune Teller 2.0

//librairies
#include "Ultrasonic.h"

//
Ultrasonic ultrasonic(2);

void setup()
{
  Serial.begin(9600);
}
void loop()
{
  long RangeInInches;
  long RangeInCentimeters;

  RangeInCentimeters = ultrasonic.MeasureInCentimeters(); // two measurements should keep an interval
  Serial.write(RangeInCentimeters);//0~400cm
  //Serial.println(" cm");
  delay(250);
}

Programme Processing

// Fortune Teller 2.0

// librairies
import processing.video.*; 
import processing.serial.*;

String[]vid = {"alliance.mp4", "amour.mp4", "argent.mp4", "celebrite.mp4", "depart.mp4", "mort.mp4", "naissance.mp4", "rupture.mp4", "victoire.mp4", "voyage.mp4"};

// variables globales
PImage bg; // image
Movie movie; // vidéo

//communication série
Serial myPort; //création objet depuis Serial class
float val; // donnée reçues depuis le Serial port

// bouton video active ?
boolean video_active = false;

void setup() {
  size(700, 700);
  bg = loadImage("crystalball.jpg");
  frameRate (24);
  movie = new Movie(this, vid[int(random(10))]);

  //initialisation du port série
  printArray(Serial.list()); //liste de tous les ports séries disponibles
  String portName = Serial.list()[0];
  myPort = new Serial(this, portName, 9600);
}

void draw() {

  //lecture des données issues de la carte Arduino
  if (myPort.available() > 0) { //si les données sont disponible
    val = myPort.read(); // lire et stocker dans la valeur
    //affichage de la valeur lue sur le port
    println(val);
  }

  //gestion de la vidéo : si mouvement perçu par le capteur Arduino...
  if (val<5) {
    //debug
    println("présence détectée, lancer vidéo aléatoire");

    //... alors chargement d'une vidéo au hasard
    int i =int(random(10));
    movie = new Movie(this, vid[i]);
    //debug
    println("video:" + vid[i]);

    //lecture de la vidéo
    movie.play();
    // vidéo activée
    video_active = true;
  } else {
    video_active = false;
    image(bg, 0, 0, 700, 700);
  }

  // affichage image et vidéos
  if (video_active) {
    image(movie, 0, 0, 700, 700);
  } else {
    image(bg, 0, 0, 700, 700);
  }
}

void movieEvent(Movie m) {
  m.read();
}

Références

wiki/projets/fortune-teller-2.0/accueil.txt · Dernière modification: 2019/05/20 15:26 (modification externe)