顯示具有 05160664_黃柏穎 標籤的文章。 顯示所有文章
顯示具有 05160664_黃柏穎 標籤的文章。 顯示所有文章

2019年1月10日 星期四

Week15_05160664

Week15
將娃娃機的3D列印零件列印下來

 舵機轉2GT同步帶輪聯結器 *2(右邊)

X軸及同步帶固定零件
Z軸固定馬達及爪子的零件
 以下的是3D列印機的影片



Week14_05160664

Week14

開啟檔案>範例>Analog>AnalogInput,並點選裡面的網址

Week13_05160664

Week13

1.
從Processing的範例程Libraries>Serial>SimpleRead的程式碼,複製裡面的48行到62行到Arduino裡。
2.

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

void setup() {
  pinMode(switchPin, INPUT);             // Set pin 0 as an input
  pinMode(2,INPUT_PULLUP);//MakerUNO有一個按鈕,在pin2,會自動拉高
  Serial.begin(9600);                    // Start serial communication at 9600 bps
}

void loop() {
  if (digitalRead(2) == 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
}

Week12_05160664

Week12
地點:Taipei Hackerspace(103台北市大同區太原路133巷26號)
校外教學:製作光劍
Taipei Hackerspace大門
聽Friday大哥的講解和說明如何做光劍
挑選燈泡顏色
第一次使用焊接(用350度的高溫融化鐵絲焊接在燈泡上)
附註:焊接槍數目不夠大家使用,所以要輪流使用
完成的光劍

Week11_05160664

Week11
1.
使Maker Uno的燈依序亮起,程式碼:
void setup() {
  // put your setup code here, to run once:
      for(int i=2;i<=13;i++){
          pinMode(i,OUTPUT);
      }
}

void loop() {
  // put your main code here, to run repeatedly:
      for(int i=2;i<=13;i++){
        digitalWrite(i,HIGH);
        delay(300);//not recommend delay in for loop
      }
      for(int i=2;i<=13;i++){
        digitalWrite(i,LOW);
      }
}
2.
播放音樂:到下列的網址
https://makeruno.com.my/changing-melody-with-push-button-using-only-maker-uno/?fbclid=IwAR1inzhRhtNH-teALIYbmbU4lsdJFrV2b1L7VDlRYIcnKw-RzBdaj3jzkmo
複製裡面的程式碼,讓Maker Uno的板播放音樂
3.
換播放聖誕節的音樂:到下列網址
https://makeruno.com.my/changing-melody-with-push-button-using-only-maker-uno/?fbclid=IwAR1inzhRhtNH-teALIYbmbU4lsdJFrV2b1L7VDlRYIcnKw-RzBdaj3jzkmo
注意:在音樂快撥放完前,持續按Button才能切換音樂
4.
如何卡歌(程式碼):if( digitalRead(button) == LOW) break;

Week10_05160664

Week10
1.先到下列網址,下載Arduino IDE Software,並安裝CH341 Driver for Windows here
   https://makeruno.com.my/getting-started/?fbclid=IwAR2eFAh0fqWqNJjFLbzTYBV9VI42uael8ZatyZLvERZHnb7MYFMk5pmiSxY


2.從搜尋中找尋device management(裝置管理員)
 在裡面找到連接埠(com 和 LPT),檢查驅動程式是否有安裝


3.安裝完成後,開啟Arduino,並在工具的序列埠中找到剛才的驅動程式COM6

4.在Arduino中的範例>01.Basic>Blink中,使用範例

Processing
1.安裝撥放音樂的驅動裝置
2.程式碼:
       if(dist(ballX[i],ballY[i],190,310)<50 && ballVY[i]>0) ballVY[i]=-ballVY[i];

2018年11月1日 星期四

Week08_05160664

Week08
期中作品展示
作品名稱:貓狗大戰
作品連結:https://www.youtube.com/watch?v=qXTpFrMss2I&feature=youtu.be
遊戲玩法:丟出骨頭丟貓貓和用貓罐頭丟狗狗

Week08

Week08
Week08 期中作品分享
作品名稱:貓狗大戰
作品連結:https://www.youtube.com/watch?v=qXTpFrMss2I&feature=youtu.be
遊戲玩法:丟出骨頭丟貓貓和用貓罐頭丟狗狗

2018年10月18日 星期四

Week06_05160664

Week06
水果忍者
程式碼://float fruitX, fruitY, fruitVX, fruitVY;//最初只有變數
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++){//迴圈製造20個水果
   fruitX[i]=random(800);   fruitVX[i]=3;//X座標,速度
   fruitY[i]=700;  fruitVY[i]=-35;//Y座標,速度
 }
}
void draw(){
 background(0);
 for(int i=0;i<20;i++){
   ellipse(fruitX[i],fruitY[i], 100,100);
   fruitX[i]+=fruitVX[i];
   fruitY[i]+=fruitVY[i];
   fruitVY[i]+=0.98;
 }
}
一直重生的水果
程式碼://float fruitX, fruitY, fruitVX, fruitVY;
float [] fruitX=new float[20];
float [] fruitY=new float[20];
float [] fruitVX=new float[20];
float [] fruitVY=new float[20];
void reborn(int i){//讓水果重生的函式
  fruitX[i]=random(800);   fruitVX[i]=random(6)-3;
  fruitY[i]=700;  fruitVY[i]=-35;
}
void setup(){
 size(800,600);
 for(int i=0;i<20;i++){
   reborn(i);//呼叫函式
 }
}
void draw(){
 background(0);
 for(int i=0;i<20;i++){
   if(dist(mouseX, mouseY,fruitX[i],fruitY[i])<=50){
    reborn(i); continue; //滑鼠碰到水果,水果重生
   }
   ellipse(fruitX[i],fruitY[i], 100,100);
   fruitX[i]+=fruitVX[i];
   fruitY[i]+=fruitVY[i];
   fruitVY[i]+=0.98;
   if(fruitY[i]>700) reborn(i);//水果掉出底部重生
 }
}

2018年10月11日 星期四

Week05_05160664_黃柏穎

Week05
隨機掉落雞蛋
程式碼:float[] eggX=new float[100];//使用陣列
float[] eggY=new float[100];//100顆雞蛋
void setup(){
 size(800,600);
 for(int i=0;i<100;i++){
  eggX[i]=random(100,700);//隨機產生X座標,在100~700之間
  eggY[i]=-random(2000);//隨機產生Y座標,在-2000
 }
}
void draw(){
 background(255);
 for(int i=0;i<100;i++){
  ellipse(eggX[i],eggY[i],80,100);
  eggY[i]+=5;//使雞蛋掉落
 }
}
接雞蛋
程式碼:float[] eggX=new float[100];
float[] eggY=new float[100];
boolean[] eggDie=new boolean[100];
void setup(){
 size(800,600);
 for(int i=0;i<100;i++){
  eggX[i]=random(100,700);
  eggY[i]=-random(2000);
  eggDie[i]=false;
 }
}
void draw(){
 background(255);
 rect(mouseX-50,mouseY-25,100,50);//接雞蛋的正方形
 for(int i=0;i<100;i++){//全部的雞蛋
   if(eggDie[i]) continue;//繼續迴圈
  ellipse(eggX[i],eggY[i],80,100);//畫雞蛋
  eggY[i]+=5;//更新Y座標
  if(eggY[i]>700) eggY[i]=-2000+600;//要是雞蛋碰到底,讓雞蛋重生
  if( dist(mouseX-50,mouseY-25,eggX[i],eggY[i])<50){
    eggDie[i]=true;//接到蛋,蛋就死掉消失
  }
 }
}
計算分數
程式碼:float[] eggX=new float[100];
float[] eggY=new float[100];
boolean[] eggDie=new boolean[100];
void setup(){
 size(800,600);
 for(int i=0;i<100;i++){
  eggX[i]=random(100,700);
  eggY[i]=-random(2000);
  eggDie[i]=false;
 }
}
int score=0;//設分數初始為0
void draw(){
 background(255);
 fill(255//蛋還是白色rect(mouseX-50,mouseY-25,100,50);
 for(int i=0;i<100;i++){
   if(eggDie[i]) continue;
  ellipse(eggX[i],eggY[i],80,100);
  eggY[i]+=5;
  if(eggY[i]>700) eggY[i]=-2000+600;
  if( dist(mouseX,mouseY,eggX[i],eggY[i])<50){
    eggDie[i]=true;
    score+=100;//接到雞蛋分數+=100
  }
 }
 fill(255,0,0); textSize(80); text("Score:"+score,100,100);//印出分數
}
切水果
程式碼:PImage img;
float cherryX=0, cherryY=700;
float cherryVX=6, cherryVY=-40;
void setup(){
  size(800,600);
  img=loadImage("cherry.png");
  for(int i=0;i<10;i++) sword[i]=new PVector();
}
PVector [] sword = new PVector[10];
void draw(){
  background(255);
  image(img,cherryX,cherryY,100,150);
  cherryX+=cherryVX;
  cherryY+=cherryVY;
  cherryVY+=0.98;
  
  for(int i=9;i>0;i--){
    sword[i].x=sword[i-1].x; sword[i].y=sword[i-1].y;
  }//讓最後一把刀依序跟著前一個,最後跟著第一把刀
  sword[0].x=mouseX;sword[0].y=mouseY;//第一把刀跟滑鼠
  for(int i=1;i<10;i++){//用線畫出刀子
    line(sword[i].x,sword[i].y,sword[i-1].x,sword[i-1].y);
  }
}

2018年10月10日 星期三

Week04_05160664_黃柏穎

Week04
寫出文字
程式碼:void setup()
{
  size(800,600);//設定畫面
}
void draw()
{
  fill(255,0,0); rect(100,100,100,100);//畫出圖形
  textSize(80);//設定文字大小
  fill(0,0,0); text("Start!",100,100);//寫文字
}
讓子彈飛一會(只有一顆子彈)
程式碼:void setup()
{
  size(800,600);
}
void draw()
{
  background(255);//一定要清背景
  fill(255,0,0); rect(100,100,100,100);
  if(bulletFlying){
    ellipse(bulletX,bulletY,50,50);//子彈的位置
    bulletX+=3;//讓子彈移動增加
  }
}
float bulletX=100, bulletY=100;
boolean bulletFlying=false;//如果沒子彈就不會出來
void keyPressed(){
  bulletFlying=true;//射出子彈
}
讓子彈飛多一會(只有一百顆子彈)
程式碼: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];//陣列只有100,所以只有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++;
}

加入場景,把子彈變成圖檔
程式碼:PImage imgBullet, imgBG;
void setup(){
  size(800,600);
  imgBG = loadImage("BG.jpg");//背景圖檔
  imgBullet = loadImage("bullet.png");//子彈圖檔
  imageMode(CENTER);//圖檔置中
}
void draw(){
  image(imgBG, width/2, height/2, width, height);
  //ellipse(mouse,mouseY,100,100);
  image(imgBullet, mouseX, mouseY,100,100);
  for(int i=0; i<bulletN;i++){
    if(bulletFlying[i]){
      image(imgBullet,bulletX[i],bulletY[i],100,100);
      bulletX[i] +=3;
    }
  }
}
float []bulletX= new float[100];
float []bulletY= new float[100];
boolean []bulletFlying = new boolean[100];
int bulletN=0;
void mousePressed(){
  bulletFlying[bulletN]=true;
  bulletX[bulletN]=mouseX;
  bulletY[bulletN]=mouseY;
  bulletN++;
}

用滑鼠丟球

程式碼:PImage imgBullet, imgBG;
void setup(){
  size(800,600);
  imgBG = loadImage("BG.jpg");
  imgBullet = loadImage("bullet.png");
  imageMode(CENTER);
}
void draw(){
  image(imgBG, width/2, height/2, width, height);
  ellipse(mouseX,mouseY,100,100);//使用滑鼠位置丟球
  for(int i=0; i<bulletN;i++){
    if(bulletFlying[i]){
        ellipse(bulletX[i],bulletY[i],100,100);
      bulletY[i] +=bulletVY[i];
      bulletVY[i] +=0.98;

    }
  }
}
float []bulletX= new float[100];
float []bulletY= new float[100];
float []bulletVY= new float[100];
boolean []bulletFlying = new boolean[100];
int bulletN=0;
void mousePressed(){
  bulletFlying[bulletN]=true;
  bulletX[bulletN]=mouseX;
  bulletY[bulletN]=mouseY;
  bulletVY[bulletN]=-10;
  bulletN++;

}