2020年11月30日 星期一

𝔍𝔒𝔗𝔇-week12

 今日進度:

1.把makeruno的開機調回來

2.按下開關會發音

3.makeruno連動processing

4.做小鋼琴

連動的程式碼⬇️

makeruno程式碼:

#include "pitches.h"

#define Do 523

#define Mi 659

#define So 784

void setup() 

{

 Serial.begin(9600);

 pinMode(2, INPUT_PULLUP);//按鍵預設為開,通道為2

 pinMode(8,OUTPUT);//揚聲器輸出聲音,通道為8

 tone(8,Do);//Do的聲音

 delay(1000);

 tone(8,Mi);//Mi的聲音

 delay(1000);

 noTone(8);

}

void loop()

{

    while(Serial.available()>0)

     {

          int now = Serial.read();

          if(now=='1') tone(8, Do, 100);//如果讀到1發出Do 0.1秒

          if(now=='3') tone(8, Mi, 100);//如果讀到3發出Mi 0.1秒

          if(now=='5') tone(8, So, 100);//如果讀到5發出Mi 0.1秒

     }

}

processing程式碼:

import processing.serial.*;

Serial myport;

void setup()

{

  size(200,200);

  myport = new Serial(this,"COM6", 9600);//USB孔為6

}

void draw()

{

   

}

void keyPressed()

{

  if(key=='1')  myport.write("1");

  if(key=='3')  myport.write("3");

  if(key=='5')  myport.write("5");

}

void mousePressed()

{

  myport.write("1");

}

⚠️注意事項:

記得只能擇一使用COM否則會出現錯誤

小鋼琴連動結果⬇️

makeruno程式碼:

#include "pitches.h"

#define Do 523

#define Re 587

#define Mi 659

#define Fa 698

#define So 784

#define La 880

#define Ti 988

void setup() 

{

 Serial.begin(9600);

 pinMode(2, INPUT_PULLUP);

 pinMode(8,OUTPUT);

 tone(8,Do);

 delay(1000);

 tone(8,Mi);

 delay(1000);

 noTone(8);

}

void loop() 

{

 while(Serial.available()>0)

 {

  int now = Serial.read();

  if(now=='1') tone(8, Do);

  if(now=='2') tone(8, Re);

  if(now=='3') tone(8, Mi);

  if(now=='4') tone(8, Fa);

  if(now=='5') tone(8, So);

  if(now=='6') tone(8, La);

  if(now=='7') tone(8, Ti);

  if(now=='0') noTone(8);

 }

}

processing程式碼:

import processing.serial.*;

Serial myport;

void setup()

{

  size(200,200);

  myport = new Serial(this,"COM6", 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"); 

}

void keyReleased()

{

  myport.write("0332421");

}

void mousePressed()

{

  myport.write("1");

}





⚠️注意事項:

記得只能擇一使用COM否則會出現錯誤

沒有留言:

張貼留言