老师们 我想做一个Processing和Arduino的互动作品
红外感应到人后 屏幕上的眼睛越来越多
但是现在程序编写出错了 我也闹不清哪里错了 求大神指点啊
老师 眼睛越来越多的Processing的 程序为
void setup(){
size(1280,720);
smooth();
background(255);
stroke(0,120);
}
void draw(){
float d = random(50);
fill(random(360),100,100,100);
eye(random(1280),random(720));
}
void eye(float x,float y){
pushMatrix();
translate(x,y);
stroke(0);
float d = 30;
strokeWeight(d/15);
fill(255,200,0);
ellipse(0,0,d*2,d);
strokeWeight(d/20);
fill(0,0,255);
ellipse(0,0,d,d);
fill(0);
noStroke();
ellipse(0,0,d/3,d/3);
popMatrix();
}
为了跟 Arduino人体红外互动 人进入空间眼睛越来越多
我把它改成了
import processing.serial.*;
Serial duankou;
int data;
int frame=0;
int flag=0;
void communication()
{
if(duankou.available()>0)
{
data=duankou.read();
println(data);
if(data==1)
{
flag=1;
}
}
}
void setup()
{
size(1280,720);
smooth();
background(255);
stroke(0,120);
duankou = new Serial(this,"COM3",9600);
}
void draw()
{
if(flag==1 && frame<=680)
float d = random(50);
fill(random(360),100,100,100);
eye(random(1280),random(720));
{
background(255);
for(int i=0;i<50;i++)
{ communication();
}
}
void eye(float x,float y)
{
pushMatrix();
translate(x,y);
stroke(0);
float d = 30;
strokeWeight(d/15);
fill(255,200,0);
ellipse(0,0,d*2,d);
strokeWeight(d/20);
fill(0,0,255);
ellipse(0,0,d,d);
fill(0);
noStroke();
ellipse(0,0,d/3,d/3);
popMatrix();
}
else
{
background(0);
flag=0;
frame=0;
communication();
}
}
还有下面的是Arduino程序
int ledPin = 13;
int sensor = 2;
int val = 0;
void setup()
{
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin,HIGH);
Serial.begin(9600);
}
void loop()
{
val = digitalRead(sensor);
if(HIGH == val)
{
Serial.write(val);
digitalWrite(ledPin,LOW);
delay(50);
}
else
{digitalWrite(ledPin,HIGH);
Serial.write(val);
delay(50);
}
}
但是 一直弄不成 也不知道哪里出了问题 程序错误
老师您帮我看看
|