Bonjour, je suis newbie en Arduino et Processing
et cette année pour un projet de diplôme j'ai décidé de me lancer vers l'inconnue.
J'ai réalisé un système d'interaction avec des diodes laser, Processing et Arduino.
Lorsqu'un laser est activé, un son + une vidéo sont générés.
Jusque là tout va bien.
Je programme donc avec Processing ( utilisation fraîche de cette année aussi) tout fonctionne parfaitement quand j'utilise à la place d'Arduino, mon clavier, mais lorsque je relie l'Arduino à mon ordinateur... rien ne va plus, il m'affiche ce qui suit.
Exception in thread "Animation Thread" java.lang.NullPointerException
at LASERHARPE2_pde.keyReleased(LASERHARPE2_pde.java:155)
at processing.core.PApplet.handleKeyEvent(PApplet.java:1756)
at processing.core.PApplet.dequeueKeyEvents(PApplet.java:1735)
at processing.core.PApplet.handleDraw(PApplet.java:1437)
at processing.core.PApplet.run(PApplet.java:1327)
at java.lang.Thread.run(Thread.java:613)
je ne suis pas encore capable de déchiffrer ce genre de code, donc je ne sais pas ce qu'il en ressort.
J'ai huit lasers, chaque laser a un nom : laser a, b, c, d, e ,f ,g ,h.
et sur Processing chaque laser à une fonction.
Voici mon code :
/**
- This sketch demonstrates how to use the
addListener
method of aRecordable
class. - The class used here is
AudioPlayer
, but you can also add listeners toAudioInput
, -
AudioOutput
, andAudioSample
objects. The class defined in waveform.pde implements - the
AudioListener
interface and can therefore be added as a listener togroove
.
/
float chrono;
float a;
float b;
float c;
float d;
float e;
float f;
float g;
float h;
import ddf.minim.;
float av;
float bv;
float cv;
float dv;
float ev;
float fv;
float gv;
float hv;
Minim minim;
AudioPlayer ason;
AudioPlayer hson;
AudioPlayer bson;
AudioPlayer cson;
AudioPlayer dson;
AudioPlayer eson;
AudioPlayer fson;
AudioPlayer gson;
import processing.video.*;
Movie amov;
Movie hmov;
Movie bmov;
Movie cmov;
Movie dmov;
Movie emov;
Movie fmov;
Movie gmov;
void setup(){
size (576, 360);
amov = new Movie(this, "amov.mov");chrono=0;
hmov = new Movie(this, "hmov.mov");chrono=0;
bmov = new Movie(this, "bmov.mov");
cmov = new Movie(this, "cmov.mov");
dmov = new Movie(this, "dmov.mov");
emov = new Movie(this, "emov.mov");
fmov = new Movie(this, "fmov.mov");
gmov = new Movie(this, "gmov.mov");
size(576,360);
background(#000000);
a=0;
h=0;
b=0;
c=0;
d=0;
e=0;
f=0;
g=0;
av=0;
bv=0;
cv=0;
dv=0;
ev=0;
fv=0;
gv=0;
hv=0;}
void draw()
{ println (chrono); if (a==1){
minim = new Minim(this);
ason = minim.loadFile("ason.mp3", 512);
ason.loop();a=3;
background(0);
} if (av==1){tint(130, 130);amov.read(); image(amov, 0, 0);} if (av==3){chrono=chrono+1;tint(120, 120);amov.read();if (chrono>1024){amov.stop();amov.read();chrono=0;} image(amov, 0, 0);}
if (h==1){
minim = new Minim(this);
hson = minim.loadFile("hson.mp3", 512);
hson.loop();h=3;
background(0);
}println (chrono); if (hv==1){tint(130, 130);hmov.read(); image(hmov, 0, 0);} if (hv==3){chrono=chrono+1;tint(200, 200);hmov.read();if (chrono>380){hmov.stop();hmov.read();chrono=0;} image(hmov, 0, 0);}
if (b==1){minim = new Minim(this);
bson = minim.loadFile("bson.mp3", 512);
bson.loop();
b=3;} if(bv==1){tint(120, 120);bmov.read(); image(bmov, 0, 0);}
if (c==1){minim = new Minim(this);
cson = minim.loadFile("cson.mp3", 512);
cson.loop();c=3;
background(0);
}if(cv==1){tint(120, 120);cmov.read(); image(cmov, 0, 0);}
if (d==1){minim = new Minim(this);
dson = minim.loadFile("dson.mp3", 512);
dson.loop();d=3;
background(0);}if(dv==1){tint(120, 120);dmov.read(); image(dmov, 0, 0);}
if (e==1){minim = new Minim(this);
eson = minim.loadFile("eson.mp3", 512);
eson.loop();e=3;
background(0);}if(ev==1){tint(120, 120);emov.read(); image(emov, 0, 0);}
if (f==1){minim = new Minim(this);
fson = minim.loadFile("fson.mp3", 800);
fson.loop();f=3;
background(0);}if(fv==1){tint(120, 120);fmov.read(); image(fmov, 0, 0);}
if (g==1){minim = new Minim(this);
gson = minim.loadFile("gson.mp3", 512);
gson.loop();g=3;
background(0);}if(gv==1){tint(120, 120);gmov.read(); image(gmov, 0, 0);}
}
void keyPressed(){
if (key=='a'){ if (a==2){ ason.close();a=4;}if (a<3){a=1;}if (av<3){av=1;}if (av==3){av=4;amov.stop();}}
if (key=='h'){ if (h==2){ hson.close();h=4;}if (h<3){h=1;}if (hv<3){hv=1;}if (hv==3){hv=4;hmov.stop();}}
if (key=='b'){ if (b<3) {b=1;}if (bv<3){bv=1;}}
if (key=='c'){ if (c<3) {c=1;}if (cv<3){cv=1;}}
if (key=='d'){ if (d<3) {d=1;}if (dv<3){dv=1;}}
if (key=='e'){ if (e<3) {e=1;}if (ev<3){ev=1;}}
if (key=='f'){ if (f<3) {f=1;}if (fv<3){fv=1;}}
if (key=='g'){ if (g<3) {g=1;}if (gv<3){gv=1;}}
}
void keyReleased() {
if (key=='a'){if (a==4){a=0;}if (a==3) {a=2;}if (av==1){av=3;}if(av==4){av=0;}}
if (key=='h'){if (h==4){h=0;}if (h==3) {h=2;}if (hv==1){hv=3;}if(hv==4){hv=0;}}
if (key=='b'){bson.close();b=0;bv=0;bmov.stop();}
if (key=='c'){cson.close();c=0;cv=0;cmov.stop();}
if (key=='d'){dson.close();d=0;dv=0;dmov.stop();}
if (key=='e'){eson.close();e=0;ev=0;emov.stop();}
if (key=='f'){fson.close();f=0;fv=0;fmov.stop();}
if (key=='g'){gson.close();g=0;gv=0;gmov.stop();}
}
J'aimerais savoir si l'erreur vient de mon code
ou peut être de l'Arduino ( ce que je ne pense pas )
Merci.