顯示具有 03373640_劉薇忻 標籤的文章。 顯示所有文章
顯示具有 03373640_劉薇忻 標籤的文章。 顯示所有文章

2018年12月27日 星期四

WEEK15

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
}



























WEEK_14



安裝驅動程式:






week03

week03利用單位坐標畫圓



以邊框500,500的大小,畫ˋ出一個圓。
程式碼:
void setup(){

 size(500,500);
}

void draw(){
 ellipse(250,250,480,480);
}






在圓內畫出一個小三角形
程式碼:
void setup(){

 size(500,500);
}

void draw(){
 ellipse(250,250,480,480);
 triangle(250,250,250,10,80,150);


}





為了避免計算做標錯誤,可以利用三角函數來表示作標。
在for迴圈裡使用float浮點數。
程式碼:
void setup(){

 size(500,500);
}

void draw(){
 ellipse(250,250,480,480); 
 for(float angle=0; angle<PI*2; angle+=PI/3){
   triangle(250,250,
   250+240*cos(angle), 250+240*sin(angle),
   250+240*cos(angle+PI/3),250+240*sin(angle+PI/3));
 }
}




程式碼:

void setup(){

 size(500,500);
}

void draw(){
 ellipse(250,250,480,480); 
 for(float angle=0; angle<PI*2; angle+=PI/3){
   for(int R=0;R<=240; R+=30){
     noFill();
   triangle(250,250,
   250+R*cos(angle),   250+R*sin(angle),
   250+R*cos(angle+PI/3), 250+R*sin(angle+PI/3));
   }
}
}





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接線圖









WEEK12

校外參訪 台北 HackerSpace

主要目的為利用110顆LED 焊錫做一支光劍









2018年12月6日 星期四

week13


Step1:  安裝驅動


安裝成功顯示COM7


Step2:
打開processing ---> 文件 ------> 範例程序 -------> Serial ------> SimpleRead
複製到Arduino
將腳位改成pin2

**程式碼:
int switchPin = 4;                       // Switch connected to pin 4

void setup() {
  pinMode(switchPin, INPUT);             // Set pin 0 as an input
  Serial.begin(9600);                    // Start serial communication at 9600 bps
}

void loop() {
  if (digitalRead(switchPin) == HIGH) {  // If switch is ON,
    Serial.write(1);               // send 1 to Processing
  } else {                               // If the switch is not ON,
    Serial.write(0);               // send 0 to Processing
  }
  delay(100);                            // Wait 100 milliseconds
}




成功如下圖



Step3: 回到processing 改成COM7






Step4: Arduino 跟 Processing 互動




















2018年11月22日 星期四

WEEK8 04211021 馬紹芸


YOUTUBE
https://youtu.be/Zs8clSaX3y4



做了什麼?
畫面簡潔的接雞蛋小遊戲。


如何操作?
接雞蛋,接到10000點達成任務!


賣點是什麼?
簡單乾淨的療癒小遊戲,遊戲時間非常短,在現在節奏如此快速的社會中提供一個快速得到成就感並舒壓的小遊戲。



int score=0;
float[] eggX=new float[200];
float[] eggY=new float[200];
boolean[] eggDie=new boolean[200];

void setup() {
  size(1200, 600);
  for (int i=0; i<200; i++) {
    eggX[i]=random(100, 1100);
    eggY[i]=-random(800);   
    eggDie[i]= false;
  }
}

void draw() {
  background(255, 191, 191);
  rectMode(CENTER);
  rect(mouseX, mouseY, 200, 10);

  for (int i=0; i<200; i++) {
    if(i%10 == 0){
    if (eggDie[i]==true)
      continue;
    ellipse(eggX[i], eggY[i], 70, 100);
    eggY[i]+=15;
    if (eggY[i]>700)
      eggY[i]=-400;
    if (dist(mouseX, mouseY, eggX[i], eggY[i])<70) {
      eggDie[i]=true;
      score+=500;
      }
    }
  if(score == 10000){textMode(CENTER); text("well done",450,200);}
  else{text("Score "+score, 450, 200);} 
}
 
  fill(255);
  textSize(50);
  textMode(CENTER);
 
}

2018年10月18日 星期四

week06


將音樂寫入程式:


程式碼:
import ddf3minim.*;
Minim minim;
AudioPlayer player;
void setup(){
  minim=new Minim(this);
  player =minim.loadFile("groove.mp3");
}





期中作品示範:
水果忍者



程式碼:

float [] fruitX = new float[20];
float [] fruitY = new float[20];
float [] fruitVX = new float[20];
float [] fruitVY = new float[20];

void setup(){
  size(800.600);
  for(int i=0; i<20; i++){
    fruitX[i]=random(800); fruitVX[i]=random(6)-3;
    fruitY[i] =700;  fruitVY[i]=-35;
  }
}
void draw(){
  background(0);
   for(int i=0; i<20; i++){
     if(dist(mouseX,mouseY,fruitX[i], fruitY[i])<=50){
     }
     ellipse(,fruitX[i], fruitY[i],100,100);
      fruitX[i]+= fruitVX[i];
      fruitY[i]+= fruitVY[i];
      fruitVY[i]+=0.98;
   }



























week05

week05 (補)
期中作品示範:
接雞蛋:


程式碼:
float[] eggX=new float[200];
float[] eggY=new float[200];
boolean[] eggDie=new boolean[200];

void setup() {
  size(1200, 600);
  for (int i=0; i<15; i++) {
    eggX[i]=random(100, 1200);
    eggY[i]=-random(800);
    //eggY[i]+=50;   
    eggDie[i]= false;
  }
}

void draw() {
  background(255);
  fill(255);
  rectMode(CENTER);
  rect(mouseX, mouseY, 200, 10);

  for (int i=0; i<20; i++) {
    if (eggDie[i])
    continue;
    ellipse(eggX[i], eggY[i], 70, 100);
    eggY[i]+=10;
    if (eggY[i]>700)
      eggY[i]=-20;
    if (dist(mouseX, mouseY, eggX[i], eggY[i])<70)
      eggDie[i]=true;

  }
  }

2018年10月4日 星期四

week04






開始畫面:
程式碼:

void setup(){
size(800,600);
}

void draw(){
  fill(250,0,0);
 
  ellipse(200,80,200,100);
  textSize(80);
  fill(0,0,0);
  text("Start!!",100,100);
}





2.




按下空白鍵讓子但連續發射
程式碼:
void setup(){
  size(800,600);
}

void draw(){
  background(255);
   fill(255,0,0); rect(100,100,100,100);
   for(int i=0; i<bulletN; i++){
     if(bulletFlying[i]){
       ellipse(bulletX[i],bulletY[i],50,50);
       bulletX[i]+=3;
     }
   }
}
float[]bulletX= new float[100];
float[]bulletY= new float[100];
int bulletN=0;
boolean []bulletFlying= new boolean[100];

void keyPressed(){
  bulletFlying[bulletN] = true;
  bulletX[bulletN] = 100;  bulletY[bulletN] = 100;
  bulletN++;
}






3.





程式碼:
PImage imgflower, imgBG;

void setup() {
  size(800,600);
  imgBG = loadImage("BG.jpg.jpg");
  imgflower = loadImage("flower.png.jpg");
  imageMode(CENTER);
}

void draw() {
  image(imgBG, width/2, height/2, width, height);
  image(imgflower, mouseX, mouseY, 100, 100);
  for (int i=0; i<flowerN; i++) {
    if (flowerFlying[i]) {
      image(imgflower, flowerX[i], flowerY[i], 100, 100);
     //flowerY[i]+=3;                                                                     //控制花落下的方向與速度
    }
  }
}

float[]flowerX= new float[100];
float[]flowerY= new float[100];

boolean[]flowerFlying = new boolean[100];
int flowerN=0;

void mousePressed() {
  flowerFlying[flowerN]=true;
  flowerX[flowerN]=mouseX;
  flowerY[flowerN]=mouseY;
  flowerN++;
}




去背網址:https://www.pkstep.com/archives/23856






























2018年9月20日 星期四

week02





同大小的圓,以一筆畫繪製。
設定框大小:size
圓半徑大小:R
設定橢圓: ellipse

2018年9月13日 星期四

week01薇的筆記

week1

step1:
download:     https://processing.org/ 


step2
選擇
Windows 64-bit 或 Windows 32-bit   解壓縮





一般設定
第三行 line(座標,座標,大小,大小);
第四行 size(外框大小);

程式碼:
line(50,50,100,100);
size(800,800);

rect(100,100,60,60);




點滑鼠 改變background顏色
 

程式碼:
void setup(){
 size(800,600);
}
void draw(){
 if(mousePressed) background(150,0,0);
    else background(0,250,0);
}





一般小畫家

程式碼:
void setup(){
 size(800,600);
}


void draw(){

  line(mouseX,mouseY,pmouseX,pmouseY);
}




 增加第七行
點滑鼠開始
程式碼:
void setup(){
 size(800,600);
}


void draw(){
 if (mousePressed)
  line(mouseX,mouseY,pmouseX,pmouseY);
}