2019年11月28日 星期四

呼嚕嚕的p語言日記-week12


下載驅動程式


https://drive.google.com/drive/folders/14D0rOGH9dPRZlPg00534giOeToXpGGex?fbclid=IwAR1BM8SbMUYng5yq6_EwVHZ3TFImTYs0_VN-qVnzHUI-vA4gGecCYRqryLw



上傳新的Arduino  蓋掉上禮拜的程式碼   (按鈕發聲音


void setup() {
 pinMode(8,OUTPUT);
 pinMode(2,INPUT_PULLUP);

}

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

}


加上Do Re Mi 使其可發出聲音

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 Fa=698;
int So=784;
int song[]={So,Mi,Mi,Fa,Re,Re,Do,Re,Mi,Fa,So,So,So};
int now=0;
bool up=true;
void setup() {
 pinMode(8,OUTPUT);
 pinMode(2,INPUT_PULLUP);

}

void loop() {
  if(up&&digitalRead(2)==LOW) {
    tone(8,song[now],1000);
    up=false;
    now=(now+1)%13; //避免陣列超過範圍
  }
  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);
  //8要避開,因為他要OUTPUT 用Buzzer

  if(digitalRead(9)==LOW) tone(8,988,200);
  if(digitalRead(10)==LOW) tone(8,1047,200);


}













使用processing語言傳送網路資料


client端程式碼

import processing.net.*;
Client client;
void setup(){
  size(200,200);
  client=new Client(this, "127.0.0.1",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);

  }



}





沒有留言:

張貼留言

alanhc 互動技術-week17 [final]

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