顯示具有 HW16 標籤的文章。 顯示所有文章
顯示具有 HW16 標籤的文章。 顯示所有文章

2015年1月18日 星期日

2015年1月16日 星期五

Week16


void setup(){
  //start serial connection
  Serial.begin(9600);
  //configure pin2 as an input and enable the internal pull-up resistor
  pinMode(2, INPUT_PULLUP);
  pinMode(13, OUTPUT); 
  int now=0;

}

void loop(){
  //read the pushbutton value into a variable
  int sensorVal = digitalRead(2);

  if (sensorVal == HIGH) {
    digitalWrite(13, LOW);
    
  } 
  else {
    digitalWrite(13, HIGH);
    Serial.write(65);
    delay(120);
  }
}

2015年1月6日 星期二

Week16

期末作品準備改進飄飄飄的小鳥,加上一個可愛的小鳥控制器,並且添加各種背景音效





void setup(){
  //start serial connection
  Serial.begin(9600);
  //configure pin2 as an input and enable the internal pull-up resistor
  pinMode(2, INPUT_PULLUP);
  pinMode(13, OUTPUT); 
  int now=0;

}

void loop(){
  //read the pushbutton value into a variable
  int sensorVal = digitalRead(2);

  if (sensorVal == HIGH) {
    digitalWrite(13, LOW);
    
  } 
  else {
    digitalWrite(13, HIGH);
    Serial.write(65);
    delay(120);
  }
}



2015年1月5日 星期一

week16

一開始決定做彈珠台,
但我跟得夥伴討論完後,
決定更改題目,
想做一個不一樣的東西,
所以我們就更改了圖片。

一開始做按鈕時,
會發現很多問題,
一步一步開始做並且了解他
終於做出按鈕了,
後來仔細發現其實不難。


2014年12月30日 星期二

2014年12月29日 星期一

Week16_楊育維_01160093

今日作品進度:
將按鈕與程式碼結合,做出可以左右移動的按鈕以及射子彈之後要拿工具做出硬體變成可以玩的機台




ARDUINO:

void setup(){
  Serial.begin(9600);
  pinMode(2,INPUT_PULLUP);
  pinMode(3,INPUT_PULLUP);
  pinMode(4,INPUT_PULLUP);
  pinMode(5,INPUT_PULLUP);
  pinMode(13,OUTPUT);
}
int now2=0,now=0,now3=0,now4=0;
void loop(){
  int pressButtonLeft = digitalRead(2);
  int pressButtonRight = digitalRead(3);
  int restart = digitalRead(5);
  int shoot = digitalRead(4);
  if(now==1 && pressButtonLeft==HIGH){//left
    digitalWrite(13,LOW);
    Serial.write('A');   
    now=0; 
  }
  else if(now==0 && pressButtonLeft == LOW){
    digitalWrite(13, HIGH);
    Serial.write('a'); 
    now=1;
  }
  delay(10);

  if(now2==1 && pressButtonRight ==HIGH){//right
    digitalWrite(13,LOW);
    Serial.write('B');   
    now2=0; 
  }
  if(now2==0 && pressButtonRight == LOW){
    digitalWrite(13, HIGH);
    Serial.write('b'); 
    now2=1;
  }
  delay(10);

  if(now3==1 && shoot ==HIGH){//shot
    digitalWrite(13,LOW);
    Serial.write('C');   
    now3=0; 
  }
  if(now3==0 && shoot == LOW){
    digitalWrite(13, HIGH);
    Serial.write('c'); 
    now3=1;
  }
  delay(10);

  if(now4==1 && restart ==HIGH){//shot
    digitalWrite(13,LOW);
    Serial.write('D');   
    now4=0; 
  }
  if(now4==0 && restart == LOW){
    digitalWrite(13, HIGH);
    Serial.write('d'); 
    now4=1;
  }
  delay(10);

}


PROCESSING:

if(myPort.available()>0){
     int a=myPort.read();
     if(a=='B'){cX[0]+=50;bX[0]+=50;}
     if(a=='A'){cX[0]-=50;bX[0]-=50;}
     if(a=='C')shoot++;
     if(a=='D'){gameover=-1;score=0;}
  }

HW16, Week16

Week16期末作品進度:

硬體需要材料:
粗吸管、免洗筷(船桿、支撐船身)
海綿(船槳、扣環)
紙箱(海平面30*30*3、船高20)
鐵絲、鐵片
長電線
尖嘴鉗

各組員負責:
謝采玲:
粗吸管
尖嘴鉗
保麗龍膠
海綿
紙箱

上色用具

劉子陵:
免洗筷
鐵絲、鐵片
長電線
紙箱
美工刀

時間分配:
12/30 上課時間 S405 將 Processing 與 Arduino 結合(初步)
12/31 12:00~14:40 體育館二樓 硬體設計圖,思考遊戲介面與其他功能
01/05 12:50~13:40 二餐三樓 做硬體
01/06週 上課時間 S405 硬軟結合,問老師15、16會不會在學校
01/15 考完期中考 待尋找 其餘事項


上課進度:

A.測試在Arduino中,電線接觸後傳值並印出




B.將已寫好的Processing程式與Arduino結合(使控制物向右部分)

最先設定:



將"向右"設定在pin(2):









Arduino接觸到後傳值給Processing:


C.遇到的問題:向右移動太多,會重複一直傳值

老師解答:
簡單地傳按鈕按下去/放開來的資訊到Processing

In Arduino:
void setup(){
  Serial.begin(9600);
  pinMode(2, PULL_UP);
}

int now=0;//0: not pressed, 1:pressed
void loop(){
  if(now==0 && digitalRead(2)==LOW){//pressed
    Serial.write('a');
  }
  if(now==1 && digitalRead(2)==HIGH){//not pressed
    Serial.write('A');
  }
  delay(10);//to avoid noise while pressing
}

In Processing:

...
int now=0;//0: not pressed, 1:pressed
void draw(){
  if(myPort.available()>0){
    int a=myPort.read();
    if(a=='A') now=0;
    if(a=='a') now=1;
  }
...
  //接下來你就可以看 now的值, 來看要做什麼對應的動作

}


第十六周課堂作業


arduino

int switchStatea = 0;
int switchStateb = 0;
int switchStatec = 0;
int switchStated = 0;
const int ledPin = 13;

void setup(){
   pinMode(ledPin, OUTPUT);
  pinMode(2,INPUT);
  pinMode(3,INPUT);
  pinMode(4,INPUT);

   Serial.begin(9600);
}

void loop(){
  switchStatea = digitalRead(A0);
  switchStateb = digitalRead(A1);
  switchStatec = digitalRead(A2);
  switchStated = digitalRead(A3);

   if(switchStatea == HIGH) {Serial.print('1');}
   if(switchStateb == HIGH) {Serial.print('2');}
   if(switchStatec == HIGH) {Serial.print('3');}
   if(switchStated == HIGH) {Serial.print('4');}
   delay(33);
}



Week16_呂季樺_01160306

今日作品進度:
將按鈕與程式碼結合,做出可以左右移動的按鈕以及射子彈之後要拿工具做出硬體變成可以玩的機台

ARDUINO:

void setup(){
  Serial.begin(9600);
  pinMode(2,INPUT_PULLUP);
  pinMode(3,INPUT_PULLUP);
  pinMode(4,INPUT_PULLUP);
  pinMode(5,INPUT_PULLUP);
  pinMode(13,OUTPUT);
}
int now2=0,now=0,now3=0,now4=0;
void loop(){
  int pressButtonLeft = digitalRead(2);
  int pressButtonRight = digitalRead(3);
  int restart = digitalRead(5);
  int shoot = digitalRead(4);
  if(now==1 && pressButtonLeft==HIGH){//left
    digitalWrite(13,LOW);
    Serial.write('A');   
    now=0; 
  }
  else if(now==0 && pressButtonLeft == LOW){
    digitalWrite(13, HIGH);
    Serial.write('a'); 
    now=1;
  }
  delay(10);

  if(now2==1 && pressButtonRight ==HIGH){//right
    digitalWrite(13,LOW);
    Serial.write('B');   
    now2=0; 
  }
  if(now2==0 && pressButtonRight == LOW){
    digitalWrite(13, HIGH);
    Serial.write('b'); 
    now2=1;
  }
  delay(10);

  if(now3==1 && shoot ==HIGH){//shot
    digitalWrite(13,LOW);
    Serial.write('C');   
    now3=0; 
  }
  if(now3==0 && shoot == LOW){
    digitalWrite(13, HIGH);
    Serial.write('c'); 
    now3=1;
  }
  delay(10);

  if(now4==1 && restart ==HIGH){//shot
    digitalWrite(13,LOW);
    Serial.write('D');   
    now4=0; 
  }
  if(now4==0 && restart == LOW){
    digitalWrite(13, HIGH);
    Serial.write('d'); 
    now4=1;
  }
  delay(10);

}


PROCESSING:

if(myPort.available()>0){
     int a=myPort.read();
     if(a=='B'){cX[0]+=50;bX[0]+=50;}
     if(a=='A'){cX[0]-=50;bX[0]-=50;}
     if(a=='C')shoot++;
     if(a=='D'){gameover=-1;score=0;}
  }

Week16

預計更新
完成按鈕控制主角行動
製作開始結束畫面
先以簡單的文字製作

下周預計:
1. 改善開始結束畫面
2. 新增重新開始功能
3. 將重新開始以及開始遊戲功能建置在arduino上
4. 找合適的外箱裝飾設備

week16

PACMAN

  if(digitalRead(2)==LOW && right==0){
    right=1;
    //Serial.print("R");
    Serial.write(82);
  }
  else if(digitalRead(2)==HIGH) right=0;

  if(digitalRead(3)==LOW && left==0){
    left=1;
    Serial.print("L");
    //Serial.write(20);
  }
  else if(digitalRead(3)==HIGH) left=0;

   if(digitalRead(4)==LOW && up==0){
    up=1;
    Serial.print("U");
    //Serial.write(20);
  }
  else if(digitalRead(4)==HIGH) up=0;

  if(digitalRead(5)==LOW && down==0){
    down=1;
    Serial.print("D");
    //Serial.write(20);
  }
  else if(digitalRead(5)==HIGH) down=0;
期末小精靈



Week 16 葉正聖老師示範

Week 16 葉正聖老師示範

做期末作品
做期末作品
做期末作品

week16

import processing.serial.*;
Serial myPort;

PImage over;

float [] cubeY=new float [17];

void setup() {
  size(800, 300);

  for (int i=0;i<16;i++) {
    cubeY[i]=random(140, 170);
  }

  myPort = new Serial(this, "COM4", 9600);
  over = loadImage("gameover.png");
}

int posY = 0;
int a = 0;
int q=1;
void draw() {

  background(255);


  if (a==0) {
    textSize(50);
    text("press the button to START", 80, 160);
    fill(0, 102, 153, 500);
  }

  if (keyPressed == true)  a=1;

  if (a==1) {
    fill(0, 0, 255);
    ellipse(70, posY+40, 40, 40);

    fill(0);

    for (int m=0;m<16;m++) {
      rect(m*50-q, 0, 50, cubeY[m]);

      rect(m*50-q, cubeY[m]+50, 50, 250-cubeY[m]);
     
      //if(cubeY[m]+50<0); cubeX+=850;   
  }
    
    q++;
    if (myPort.available()>0) {
      posY = myPort.read();
      println(posY);
    }

    if (posY+20<60 | posY+60>240) {
      image(over, 0, 0, 800, 300);
      println("Game Over");
    }
  }
}