Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2014-11-03 10:57:27 Diaporama interactif

Dembow
membre
Date d'inscription: 2014-05-08
Messages: 20

Diaporama interactif



Bonjour,

Je cherche à réaliser une sorte de diaporama interactif qui pour l'instant réagirait avec le positionnement de la souris, à savoir que le changement de valeur de "mouseY" entraine l'affichage d'une photo.

Par la suite j'aimerais remplacer les valeurs de "mouseY" par un capteur de vibration et ainsi relier le programme réaliser auparavant sur processing avec arduino, afin de créer une sort de puntching ball (comme ceux que l'on retrouve  dans les fêtes foraines). En faite, le capteur de vibration serait fixer sur une grande planche de bois/carton sur lequel serait projetait une image grâce à un vidéo projecteur, et cette image évoluerait celons l'intensité des vibrations créées par exemples par le contact avec un ballon.

Voilà là ou je veux en venir mais pour l'instant je n'en suis pas là j'essaye de réaliser mon programme processing afin de le faire réagir à partir des mouvements de la souris mais ma fenêtre processing reste désespérément grise...

Voilà le code que j'ai réalisé pour l'instant, j'espère que vous pourrez m'indiquer la ou les erreurs que j'ai pu commettre,

merci d'avance.

citation :

PImage photo;
PImage photo2;
PImage photo3;
PImage photo4;
int i = mouseY;

void setup() {
size(1280,720);

photo = loadImage("La_fenetre.jpg");
photo2 = loadImage("La_fenetre_2.jpg");
photo3 = loadImage("La_fenetre_3.jpg");
photo4 = loadImage("La_fenetre_4.jpg");
}



void draw() {
  if( i > 50) {
    image(photo, 0, 0);
  } 

if( i > 100) {
    image(photo2, 0, 0);
  }

if( i > 150) {
    image(photo3, 0, 0);
  } 
 
  if( i > 200) {
    image(photo4, 0, 0);
  } 
  println(i);

}

Dernière modification par Dembow (2014-11-03 11:12:34)

Hors ligne

 

#2 2014-11-03 11:09:51 Re : Diaporama interactif

Olivier
N°4
Lieu: Chalon sur la Saône
Date d'inscription: 2009-04-07
Messages: 1471
Site web

Re: Diaporama interactif



Hello,

Tel que tu as initialisé ta variable, elle vaudra toujours 0.
À savoir la valeur de mouseY au moment où tu l'initialises.

Pour avoir des valeurs de i qui changent, il faut, par exemple, affecter mouseY à i dans le draw().
Ou, plus simplement, te passer d'une variable intermédiaire :

Code (P5) :

void draw() {
  if( mouseY > 50) {
    image(photo, 0, 0);
  } 

if( mouseY > 100) {
    image(photo2, 0, 0);
  }

Bon courage... smile


L'Amour au Peuple !

Hors ligne

 

#3 2014-11-03 11:17:30 Re : Diaporama interactif

Dembow
membre
Date d'inscription: 2014-05-08
Messages: 20

Re: Diaporama interactif



Ah en effet, tout simplement, ça marche en initialisant mouseY dans le draw, voilà un problème en moins, je te remercie, je me retournerai vers vous si je rencontre de nouvelles difficultés.

Merci smile

Hors ligne

 

#4 2014-11-05 10:22:21 Re : Diaporama interactif

Dembow
membre
Date d'inscription: 2014-05-08
Messages: 20

Re: Diaporama interactif



Hey,

j'ai un nouveau petit soucis j'ai essayé de remplacer mouseY par des valeurs issu d'un capteur de vibration piezo, je suis donc parti de cette example (http://www.flossmanualsfr.net/arduino/c … ue-lumiere) pour réaliser mon montage et mon code.

Sur arduino je constate que mon capteur reçois bien des infos cependant ces valeurs n'influa pas sur mon programme processing et je ne comprend pas vraiment pourquoi.

Mon code arduino :
// Variable pour désigner quelle pin est utilisée pour le capteur
int capteurPiezo = A0; // pin Analog 0
// Variable pour contenir la valeur du capteur
int valeurPiezo ;


void setup()
{
    // Établit la connextion sérielle à 9600 baud
    Serial.begin(9600);
}

void loop()
{
    // Lit la pin du capteur et l'assigne à la variable valeurPiezo
    valeurPiezo = analogRead(capteurPiezo);
    // Convertit la valeur du capteur en valeur pour la LED
    valeurPiezo = map(valeurPiezo, 0, 1053, 0, 800);
    // Affiche au moniteur sériel la valeur de valeurPiezo
    Serial.println(valeurPiezo);
    delay(50);
}

mon code processing :
import processing.serial.*;

//Détection de la carte Arduino
Serial port;

PImage photo;
PImage photo2;
PImage photo3;
PImage photo4;

void setup() {
  String portName = Serial.list()[0]; //change the 0 to a 1 or 2 etc. to match your port
port = new Serial(this, portName, 9600);
size(1280,720);
background(0);

photo = loadImage("La_fenetre.jpg");
photo2 = loadImage("La_fenetre_2.jpg");
photo3 = loadImage("La_fenetre_3.jpg");
photo4 = loadImage("La_fenetre_4.jpg");
}



void draw() {
  //Attente de 50 ms avant d'exécuter le programme, doit coincider
  //avec le delay de la carte Arduino.
  delay(50);
 
  int i = port.read();
    image(photo, 0, 0);

if( i > 200) {
    image(photo2, 0, 0);
  } 

if( i > 400) {
    image(photo3, 0, 0);
  } 
 
  if( i > 600) {
    image(photo4, 0, 0);
  } 
  println(i);

}

Merci d'avance pour votre aide précieuse !

Hors ligne

 

#5 2014-11-05 11:01:38 Re : Diaporama interactif

Dembow
membre
Date d'inscription: 2014-05-08
Messages: 20

Re: Diaporama interactif



Petite précision sur processing le println de la valeur lu par le capteur est tout le temps égale à -1 alors qu'il varie de 0 à 900 a peu près dans arduino hmm

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024