2020年11月30日 星期一

喵~傳輸~小鋼琴~

Arduino連接Processing(傳輸)

  • 滑鼠點擊發出聲音
    • Arduino
      • #define C 523
      • #define D 587
      • #define E 659
      • void setup() {
      •   Serial.begin(9600);
      •   pinMode(2, INPUT_PULLUP);
      •   pinMode(8, OUTPUT);
      •   tone(8,C);
      •   delay(100);
      •   tone(8,D);
      •   delay(100);
      •   noTone(8);
      • }
      • void loop() {
      •   while(Serial.available()>0){
      •     Serial.read();
      •     tone(8,E,100);
      •   }
      • }
    • Processing(範例裡的)
      • import processing.serial.*;//外掛
      • Serial myPort;
      • void setup() 
      • {
      •   size(200, 200);
      •   myPort = new Serial(this,"COM4",9600);
      • }
      • void draw() {}
      • void mousePressed(){
      •   myPort.write("1");
      • }
  • 加上鍵盤,按下數字鍵發出聲音
    • Arduino
      • #define C 523
      • #define D 587
      • #define E 659
      • void setup() {
      •   Serial.begin(9600);
      •   pinMode(2, INPUT_PULLUP);
      •   pinMode(8, OUTPUT);
      •   tone(8,C);
      •   delay(100);
      •   tone(8,D);
      •   delay(100);
      •   noTone(8);
      • }
      • void loop() {
      •   while(Serial.available()>0){
      •     int now=Serial.read();
      •     if(now=='1') tone(8,C,100);
      •     if(now=='2') tone(8,D,100);
      •     if(now=='3') tone(8,E,100);
      •   }
      • }
    • Processing
      • import processing.serial.*;
      • Serial myPort;
      • void setup() 
      • {
      •   size(200, 200);
      •   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");
      • }
      • void mousePressed(){
      •   myPort.write("1");
      • }
  • 小鋼琴
    • Arduino
      • #define C 523
      • #define D 587
      • #define E 659
      • #define F 698
      • #define G 784
      • #define A 880
      • #define B 988
      • void setup() {
      •   Serial.begin(9600);
      •   pinMode(2, INPUT_PULLUP);
      •   pinMode(8, OUTPUT);
      •   tone(8,C);
      •   delay(100);
      •   tone(8,D);
      •   delay(100);
      •   noTone(8);
      • }

      • void loop() {
      •   while(Serial.available()>0){
      •     int now=Serial.read();
      •     if(now=='1') tone(8,C);
      •     if(now=='2') tone(8,D);
      •     if(now=='3') tone(8,E);
      •     if(now=='4') tone(8,F);
      •     if(now=='5') tone(8,G);
      •     if(now=='6') tone(8,A);
      •     if(now=='7') tone(8,B);
      •     if(now=='0') noTone(8);//放開要靜音
      •   }
      • }
    • Processing
      • import processing.serial.*;
      • Serial myPort;
      • void setup() 
      • {
      •   size(200, 200);
      •   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");
      • }
      • void keyReleased(){//鍵盤放開要回傳0(靜音)
      •   myPort.write("0");
      • }
      • void mousePressed(){
      •   myPort.write("1");
      • }

                                                                                                                                                                            𝔍𝔒𝔗𝔇-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否則會出現錯誤

                                                                                                                                                                            Σ(゚д゚) weeeeeeeeeek 12

                                                                                                                                                                            MAKER UNO


                                                                                                                                                                            由於上星期請假

                                                                                                                                                                            所以這星期第一次接觸到這個器材

                                                                                                                                                                            跟大一上arduino的課時接觸到的器材很像

                                                                                                                                                                            接到電腦上後透過程式可以做出很多不同的變化

                                                                                                                                                                            像今天的第一個範例


                                                                                                                                                                            上傳之後機器會發出 Do Mi So 的聲音


                                                                                                                                                                            而第二個範例 

                                                                                                                                                                            是在第一個的基礎上

                                                                                                                                                                            加上了按鍵控制

                                                                                                                                                                            當按下按鍵時就會發出聲音 

                                                                                                                                                                            pinMode(2, INPUT_PULLUP); ------->按下按鍵


                                                                                                                                                                            今天第三個範例

                                                                                                                                                                            這邊開始結合了Processing的程式

                                                                                                                                                                            在Processing程式運行畫面點擊時發出聲音


                                                                                                                                                                            範例四


                                                                                                                                                                            這邊加上了鍵盤控制

                                                                                                                                                                            數字鍵盤1 3 5分別對應上了Do Mi So三個音階


                                                                                                                                                                            範例五


                                                                                                                                                                            加上更多音階使鋼琴更加完整

                                                                                                                                                                            並且將發音的長度刪掉

                                                                                                                                                                            這邊記得加一行程式

                                                                                                                                                                            void keyReleased(){

                                                                                                                                                                               myPort.write("0"); 

                                                                                                                                                                            }

                                                                                                                                                                            當放開按鍵時靜音 

                                                                                                                                                                            否則會響個不停Σ(゚д゚)


                                                                                                                                                                            今日份程式碼

                                                                                                                                                                            Arduino

                                                                                                                                                                            #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);
                                                                                                                                                                              // put your setup code here, to run once:
                                                                                                                                                                              pinMode(2, INPUT_PULLUP);
                                                                                                                                                                              pinMode(8, OUTPUT);
                                                                                                                                                                              tone(8, Do);
                                                                                                                                                                              delay(100);
                                                                                                                                                                              tone(8, Mi);
                                                                                                                                                                              delay(100);
                                                                                                                                                                              noTone(8);
                                                                                                                                                                            }
                                                                                                                                                                            void loop() {
                                                                                                                                                                              // put your main code here, to run repeatedly:
                                                                                                                                                                              while(Serial.available() > 0)
                                                                                                                                                                              {
                                                                                                                                                                                int now = Serial.read();
                                                                                                                                                                                if(now == '1')tone(8, Do, 100);
                                                                                                                                                                                if(now == '2')tone(8, Re, 100);
                                                                                                                                                                                if(now == '3')tone(8, Mi, 100);
                                                                                                                                                                                if(now == '4')tone(8, Fa, 100);
                                                                                                                                                                                if(now == '5')tone(8, So, 100);
                                                                                                                                                                                if(now == '6')tone(8, La, 100);
                                                                                                                                                                                if(now == '7')tone(8, Ti, 100);
                                                                                                                                                                                if(now == '0')noTone(8);
                                                                                                                                                                              }
                                                                                                                                                                            }


                                                                                                                                                                            Processing

                                                                                                                                                                            import processing.serial.*;
                                                                                                                                                                            Serial myPort;
                                                                                                                                                                            void setup()
                                                                                                                                                                            {
                                                                                                                                                                               size(200,200);
                                                                                                                                                                               myPort = new Serial(this, "COM5", 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("0"); 
                                                                                                                                                                            }
                                                                                                                                                                            void mousePressed()
                                                                                                                                                                            {
                                                                                                                                                                               myPort.write("1"); 
                                                                                                                                                                            }

                                                                                                                                                                            KIO Week12

                                                                                                                                                                             Week12

                                                                                                                                                                            今天要用Arduino與processing結合使用


                                                                                                                                                                            先練習上次教到的進度


                                                                                                                                                                            設定電路板上button鈕可以運作

                                                                                                                                                                            讓processing與Arduino連動
                                                                                                                                                                            使用P傳輸到電路板中
                                                                                                                                                                            點滑鼠左鍵送資料發出聲音

                                                                                                                                                                            加入按鍵a,s,d送出數字1,3,5
                                                                                                                                                                            對應1=Do,3=Mi,5=So
                                                                                                                                                                            做出簡易鋼琴

                                                                                                                                                                            加入Do~Si的頻率
                                                                                                                                                                            與P發出的對應數字連結
                                                                                                                                                                            使用鍵盤可以發出聲音
                                                                                                                                                                            放開鍵盤即不發出聲音noTone(數字0)



                                                                                                                                                                            Carousel~week12

                                                                                                                                                                            Arduino

                                                                                                                                                                            #define Do 523

                                                                                                                                                                            #define Re 587

                                                                                                                                                                            #define Mi 659

                                                                                                                                                                            #define Fa 698

                                                                                                                                                                            #define So 784

                                                                                                                                                                            #define La 880

                                                                                                                                                                            #define Si 988

                                                                                                                                                                            void setup() {

                                                                                                                                                                              // put your setup code here, to run once:

                                                                                                                                                                              Serial.begin(9600);///USB傳輸速度 

                                                                                                                                                                             pinMode(2,INPUT_PULLUP);

                                                                                                                                                                             pinMode(8,OUTPUT);

                                                                                                                                                                             tone(8,Do);

                                                                                                                                                                             delay(100);

                                                                                                                                                                             tone(8,Mi);

                                                                                                                                                                             delay(100);

                                                                                                                                                                             tone(8,So);

                                                                                                                                                                             delay(100);

                                                                                                                                                                             noTone(8);

                                                                                                                                                                            }

                                                                                                                                                                            void loop() {

                                                                                                                                                                              // put your main code here, to run repeatedly:

                                                                                                                                                                              while(Serial.available() > 0)

                                                                                                                                                                              {

                                                                                                                                                                                int now=Serial.read();

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

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

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

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

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

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

                                                                                                                                                                                if(now=='7')tone(8,Si,100);

                                                                                                                                                                                if(now=='0')noTone;

                                                                                                                                                                              }

                                                                                                                                                                              //if(digitalRead(2)==LOW)tone(8,Mi,100);

                                                                                                                                                                            }


                                                                                                                                                                            Processing:

                                                                                                                                                                            import processing.serial.*;

                                                                                                                                                                            Serial myPort;

                                                                                                                                                                            void setup() {

                                                                                                                                                                              size(200,200);

                                                                                                                                                                              myPort = new Serial(this,"COM6",9600);

                                                                                                                                                                              // put your setup code here, to run once:

                                                                                                                                                                            }

                                                                                                                                                                            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("0");

                                                                                                                                                                            }

                                                                                                                                                                            void loop() {

                                                                                                                                                                              myPort.write("1");

                                                                                                                                                                              // put your main code here, to run repeatedly:


                                                                                                                                                                            }

                                                                                                                                                                            week12

                                                                                                                                                                            Step.1





                                                                                                                                                                            Step.2





                                                                                                                                                                            Final Step







                                                                                                                                                                            Week12 maker uno結合processing


                                                                                                                                                                             按下按鈕後會出現Mi的聲音
                                                                                                                                                                            在之前複習包含安裝軟體
                                                                                                                                                                            找到是COM幾

                                                                                                                                                                            Serial.begin(9600);
                                                                                                                                                                            利用USB傳輸,速度9600

                                                                                                                                                                            利用processing來對usb傳輸
                                                                                                                                                                            一旦用滑鼠按一下,發出so的聲音
                                                                                                                                                                            利用1.3.5來發不同的音色




                                                                                                                                                                            import processing.serial.*;
                                                                                                                                                                            Serial myPort;
                                                                                                                                                                            void setup(){
                                                                                                                                                                              size(200,200);
                                                                                                                                                                              myPort = new Serial(this, "COM5", 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 mousePressed(){
                                                                                                                                                                              myPort.write("0");
                                                                                                                                                                            }

                                                                                                                                                                            #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);
                                                                                                                                                                              tone(8,So);
                                                                                                                                                                              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);
                                                                                                                                                                                }
                                                                                                                                                                            }