Bonjour,
Je cherche à mettre en place une installation grâce à Processing dans laquelle une image fixe devient animée par le passage d'une personne devant un télémètre ultrason.
J'ai réalisé le programme assez facilement avec la commande MouseX (l'animation était donc lancé par la souris),
mais maintenant que je dois remplacer cette commande par une commande qui tient compte du télémètre, ça ne va plus, je ne trouve pas le bon langage...
le télémètre est relié à l'ordinateur par une interface midi usb, j'ai bien installé la librairie promidi, je vois les données recueillis par le télémètre mais je ne trouve pas le bon chemin pour qu'elles lancent l'animation.
Quelqu'un pourrait-il m'aider?
En gros, quelqu'un peut-il me dire quelle commande utilisée dans ce cas?(pour remplacer le "mouse" par le télémètre)
Merci!!
Mon premier programme avec la souris :
PImage[] images = new PImage[10];
void setup() {
size(1000,600);
for(int i=0; i<10; i++) {
images[i] = loadImage("papierpanim_" + i + ".gif");
}
}
void draw() {
image( images[mouseX/100], 0, 0);
}
void mouseMoved() {
println("mouseX / 100 = " + mouseX/100);
}
public void init(){
// to make a frame not displayable, you can
// use frame.removeNotify()
frame.removeNotify();
frame.setUndecorated(true);
// addNotify, here i am not sure if you have
// to add notify again.
frame.addNotify();
super.init();
}
ma tentative de 2ème programme pour le télémètre:
import promidi.*;
MidiIO midiIO;
void setup()
{PImage photo;
size(1000,600);
photo = loadImage("papierpanim_0.gif");
image(photo,0,0);
// Get an instance of MidiIO
// Ouvre une instance de MidiIO
midiIO = MidiIO.getInstance(this);
//Print a list of all available devices.
//Imprime une liste de tous les peripheriques Midi disponibles.
midiIO.printDevices();
// Default : Open the first midi channel of the first input device.
// Par defaut : Ouvre le premier canal sur le premier peripherique Midi.
midiIO.openInput(0,0);
}
int valeur;
void controllerIn(Controller controller, int device, int channel){
int numero = controller.getNumber();
if (numero==0) {
valeur = controller.getValue();
print("Valeur ");
println(valeur);
}
}
int[] velocite_8 = new int[8];
void noteOn(Note note, int device, int channel){
int pitch = note.getPitch();
if ((pitch>=0)&&(pitch<8)) {
velocite_8[pitch] = note.getVelocity();
print("Capteur tout ou rien de pitch ");
print(pitch);
print(" valeur ");
println(velocite_8[pitch]);
}
}
Dernière modification par spoun (2010-02-06 19:26:17)
Hors ligne
C'est bon, à force de tripatouiller les codes, j'ai fini par y arriver avec le "if" et les valeurs du télémètre!
Hors ligne
hi Spoun
en fait, j'étais confronté au même problème y a quelques mois mais avec d'autres objectifs, à savoir un passage de la fonction keyPressed() à la détection d'une personne à l'aide d'une barrière IR.
de mon coté, j'ai utilisé une arduino afin de communiquer une valeur à mon sketch via la librairie Serial et la substituer à la valeur de ma key. pour le cas d'un télémètre, je crois que ça peut être pareille, il y a même un exemple de code arduino pour télémètre sur arduino.cc. (sensor/ping)
je peut t'envoyer mon exemple pour plus de détails.
bonne continuation.
Hors ligne
Merci Atprocess....
Effectivement, j'utilise pour l'instant le télémètre car c'est tout ce que j'ai pu emprunter pour tester l'animation par captation de mouvement, mais j'envisage de me procurer une arduino pour poursuivre et d'utiliser des dalles sensitives par la suite...donc peut être que je vais encore galérer en changeant de librairie... si j'ai bien compris, il va falloir utiliser la librairie arduino + la librairie serial , je veux bien ton exemple pour m'aider à comprendre tout ça!
Hors ligne
Pages: 1