2019年11月28日 星期四

06160832

(1)複習:按123對應的LED發亮,對應buzzer發聲,避開pin8。
void setup() {
 pinMode(8,OUTPUT);
 pinMode(2,INPUT_PULLUP);
}

void loop() {
   if(digitalRead(2)==LOW) tone(8,520,1000);
   else noTone(8);
}
(2)用電線(單芯線),作簡單鋼琴,做Ken Liao爵士鼓,對應的射擊聲、配樂等
第一個了解音階的音是多少
int Do =523;
int Re =587;
int Mi =659;
void setup() {
 pinMode(8,OUTPUT);
 pinMode(2,INPUT_PULLUP);
}

void loop() {
   if(digitalRead(2)==LOW) tone(8,Mi,1000);
   else noTone(8);
}

用陣列讓按紐有不同音階
int Do =523;
int Re =587;
int Mi =659;
int song[9]={Do,Re,Mi,Do,Do,Re,Mi,Do,Mi};
int now=0;
bool UP=true;
void setup() {
 pinMode(8,OUTPUT);//buzzer
 pinMode(2,INPUT_PULLUP);///Makeruno 按鈕
}

void loop() {
   if(UP && digitalRead(2)==LOW) {
    tone(8,song[now],200);
    UP=false;
    now=(now+1)%9;///避免now超過矩陣當掉
   }
 
   else{
    UP=true;
   }
   delay(100);
}
用接地線做出鋼琴效果
void setup() {
  for(int i=2;i<=13;i++){
    pinMode(i,INPUT_PULLUP);
  }
 pinMode(8,OUTPUT);

}

void loop() {
   if(digitalRead(2)==LOW)     tone(8,523,200);
   if(digitalRead(3)==LOW)    tone(8,587,200);
   if(digitalRead(4)==LOW)    tone(8,659,200);
   if(digitalRead(5)==LOW)    tone(8,698,200);
   if(digitalRead(6)==LOW)    tone(8,784,200);
   if(digitalRead(7)==LOW)    tone(8,880,200);
//pin8要發聲不能接
   if(digitalRead(9)==LOW)    tone(8,988,200);

}
(3)UDP進行網路投票(超級變變變的投票)(先限定Processing以降低難度,確認有IP)
Client端
import processing.net.*;
Client client;
void setup(){
    size(200,200);
    client=new Client(this,"120.125.70.42",7777);
}
void draw(){
}
void mousePressed(){
   client.write("Hello");
}
server端
import processing.net.*;
Server server;
void setup(){
    size(300,300);
    server=new Server(this,7777);
}
void draw(){
  Client thisClient=server.available();
   while(thisClient != null){
     String now =thisClient.readString();
     if(now!=null) println("Server received: "+now);
   }
}
(4)手機APP

沒有留言:

張貼留言

alanhc 互動技術-week17 [final]

回顧這學期的作品:  期中作業:LANDING:PLANET 賣點&特點: 炫麗的特效 物理(星球重力及降落)及粒子系統(噴射) 世界地圖可根據視角縮放 困難點: 重寫3次最終改寫成物件導向的CLASS寫法...