Salve!
volevo far partire un video quando il Pir IR riceve un serial (es: uno sta davanti al Pir), parte il video e "play" completamente (con la durata completa), poi se non ci fosse più un serial viene da input, apparirà un immagine.
problema è che per ora riesco a far partire questo video quando riceve un serial, e far "play" fino alla fine però il Pir stop ricevere serial informazioni.
le codici sono Arduino:
int inputPin = 2;
void setup() {
pinMode(inputPin,INPUT);
Serial.begin(9600);
}
void loop() {
int val = digitalRead(inputPin);
Serial.println(val);
delay(50);
}
per Processing:
import processing.serial.*;
Serial myPort;
String adaptor= "/dev/cu.usbmodem1411";
void portConnect(){
int portNumber = 99;
String [] ports;
println(Serial.list());
ports = Serial.list();
for(int j = 0; j< ports.length; j++) {
if(adaptor.equals(Serial.list()[j])) portNumber = j;
}
if(portNumber == 99) portNumber = 0;
String portName = Serial.list()[portNumber];
println("Connected to "+portName);
myPort = new Serial(this, portName, 9600);
myPort.bufferUntil(10);
}
import processing.video.*;
Movie myMovie;
PImage img;
void movieEvent(Movie m) {
m.read();
}
void setup() {
size(400, 400);
portConnect();
img = loadImage("prova.jpg");
myMovie = new Movie(this, "prova3.mov");
}
void serialEvent(Serial myPort) {
String recieved = myPort.readString() ;
recieved = trim(recieved);
float md = myMovie.duration();
float mt = myMovie.time();
if (recieved.equals ("1")){
myMovie.play();
while(mt != md){
image(myMovie, 0, 0); // che da qui stop di ricevere informazione dal pir, e il while loop stop..
println(recieved);
}
}
else{
myMovie.stop();
loadImage("prova.jpg");
image(img,0,0);
println(recieved);
}
}
void draw(){
}
dopo aver mostrato il video, il while loop stop.. aiutatemi!!