2019年11月21日 星期四

Week11_MakerUNO

1.燈

只亮一個燈:
void setup() {// put your setup code here, to run once:
  pinMode(13, OUTPUT);
  digitalWrite(13, HIGH);
}
void loop() {// put your main code here, to run repeatedly:

}


亮燈:
void setup() {
  for(int i=2;i<=13;i++){
    pinMode(i, OUTPUT);
    digitalWrite(i, HIGH);
  }
}
void loop() {

}
按鍵滅燈:
void setup() {
  pinMode(2, INPUT_PULLUP);
  for(int i=3;i<=13;i++){
    pinMode(i, OUTPUT);
    //digitalWrite(i, HIGH);
  }
}
bool blighthigh=true;
void loop() {
  if(digitalRead(2)==HIGH)blighthigh=true;
  else blighthigh=false;

  for(int i=3;i<=13;i++){
    if(blighthigh) digitalWrite(i, HIGH);
    else digitalWrite(i, LOW);
  }
}

2.音樂

#define NOTE_C5 523
#define NOTE_D5 587
#define NOTE_E5 659
#define NOTE_F5 698
#define NOTE_G5 784
#define NOTE_A5 880
#define NOTE_B5 987

void setup() {
  pinMode(8, OUTPUT);
}
void loop() {
  tone(8, NOTE_G5, 200);
  delay(200);
  tone(8, NOTE_E5, 200);
  delay(200);
  tone(8, NOTE_E5, 400);
  delay(500);
  
  tone(8, NOTE_F5, 200);
  delay(200);
  tone(8, NOTE_D5, 200);
  delay(200);
  tone(8, NOTE_D5, 400);
  delay(500);
  tone(8, NOTE_C5, 200);
  delay(200);
  
  tone(8, NOTE_D5, 200);
  delay(200);
  tone(8, NOTE_E5, 200);
  delay(200);
  tone(8, NOTE_F5, 200);
  delay(200);
  tone(8, NOTE_G5, 200);
  delay(200);
  tone(8, NOTE_G5, 200);
  delay(200);
  tone(8, NOTE_G5, 500);
  delay(500);

  tone(8, NOTE_G5, 200);
  delay(200);
  tone(8, NOTE_E5, 200);
  delay(200);
  tone(8, NOTE_E5, 400);
  delay(500);
  
  tone(8, NOTE_F5, 200);
  delay(200);
  tone(8, NOTE_D5, 200);
  delay(200);
  tone(8, NOTE_D5, 400);
  delay(500);
  tone(8, NOTE_C5, 200);
  delay(200);

  tone(8, NOTE_C5, 200);
  delay(200);
  tone(8, NOTE_E5, 200);
  delay(200);
  tone(8, NOTE_G5, 200);
  delay(200);
  tone(8, NOTE_G5, 200);
  delay(200);
  tone(8, NOTE_E5, 800);
  delay(2000);
  
}

3.小鋼琴

Arduino:
#define NOTE_C5 523
#define NOTE_D5 587
#define NOTE_E5 659
#define NOTE_F5 698
#define NOTE_G5 784
#define NOTE_A5 880
#define NOTE_B5 987

void setup() {
  pinMode(8, OUTPUT);
  Serial.begin(9600);
}
void loop() {
  if(Serial.available()){
    char now=Serial.read();
    if(now=='1')tone(8, NOTE_C5, 300);
    if(now=='2')tone(8, NOTE_D5, 300);
    if(now=='3')tone(8, NOTE_E5, 300);
    if(now=='4')tone(8, NOTE_F5, 300);
    if(now=='5')tone(8, NOTE_G5, 300);
    if(now=='6')tone(8, NOTE_A5, 300);
    if(now=='7')tone(8, NOTE_B5, 300);
  }
}
在P當中:
import processing.serial.*;
Serial myPort;
void setup() {
  myPort=new Serial(this,"COM4",9600);
}
void draw() {
}
void keyPressed(){
  if(key=='1')myPort.write('1');
  if(key=='2')myPort.write('2');
  if(key=='3')myPort.write('3');
  if(key=='4')myPort.write('4');
  if(key=='5')myPort.write('5');
  if(key=='6')myPort.write('6');
  if(key=='7')myPort.write('7');
}

沒有留言:

張貼留言

alanhc 互動技術-week17 [final]

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