2018年12月27日 星期四

WEEK16

期末展示前最後一個星期

我們的主題是接雞蛋
利用雙軸遙感控制游標
 
Arduino程式碼

void setup() {
  // put your setup code here, to run once:
  pinMode(2,INPUT);
  digitalWrite(2,HIGH);
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  int val = analogRead(A0);
  int x=val/8;
  if(x<2)x=2;
  Serial.write(x);
  if(digitalRead(2)==HIGH)Serial.write(0);
  else Serial.write(1);
  delay(100);///100 millis seconds
}



Processing程式碼

float[] eggX=new float[200];
float[] eggY=new float[200];
boolean[] eggDie=new boolean[200];
import processing.serial.*;
Serial myPort;

PImage  imgBG, img;
void setup() {
  size(1000, 689);
  //int handX, Y;
  //float handVX=0;
  myPort = new Serial(this, "COM7", 9600);
  img = loadImage("unnamed (1.png");
  imgBG = loadImage("unnamed.jpg");

  for (int i=0; i<15; i++) {
    eggX[i]=random(100, 1000);
    eggY[i]=-random(1000);
    eggY[i]+=50;   
    eggDie[i]= false;
  }
}
int handX=550, Y=200;
float handVX=0;
int score=0;
void draw() {
  println(frameRate);
  image(imgBG, 0, 0, width, height);
 //image(img, mouseX, mouseY, 100, 130);
  //image(img, handX, Y, 100, 100);
  fill(255);
  for (int i=0; i<20; i++) {
    if (eggDie[i])
      continue;
    ellipse(eggX[i], eggY[i], 40, 60);
    fill(255);
    eggY[i]+=15;
    if (eggY[i]>900)
      eggY[i]=-70;
    if (dist(handX, 550, eggX[i], eggY[i])<70)
      eggDie[i]=true;
  }
  if (myPort.available()>0) {
    int val = myPort.read();
    if (val==0) Y=100;
    else if (val==1) Y=200;
    else handVX = (val-63)/15.0;
    println(val);
  }
  handX += handVX;
  image(img, handX, 550,150, 100);
  //ellipse(handX,550, 10,10);
 //rect(handX,550,150,150);
}



makerUno接線圖









沒有留言:

張貼留言