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
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 :
void draw() { if( mouseY > 50) { image(photo, 0, 0); } if( mouseY > 100) { image(photo2, 0, 0); }
Bon courage...
Hors ligne
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
Hors ligne
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
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
Hors ligne