如何製作:
1、用黑白膠帶纏住由冰棍製成的黑鍵與白鍵
2、連接電路板、七個電阻、一個喇叭。
3、製作由processing點選開始的畫面、進入鋼琴的畫面。
4、撰寫arduino的程式碼。
5、搜尋processing與arduino相互連接的程式。
一開始執行的畫面 |
點選"Enter to play"後的畫面 |
按第一個按鈕,發出Do的聲音 |
按第二個按鈕,發出Re的聲音 |
按第三個按鈕,發出Me的聲音 |
按第四個按鈕,發出Fa的聲音 |
按第五個按鈕,發出So的聲音 |
小鋼琴圖片-1 |
小鋼琴圖片-2 |
小鋼琴圖片-3 |
電路板接線圖 |
程式碼
processing程式碼
import processing.serial.*;
Serial myPort;
PImage bg1,Do,Re,Mi,Fa,So,La,Si;
void setup() {
size(800, 600);
bg1 = loadImage("piano.jpg"); //載入圖檔
Do = loadImage("piano-Do1.jpg");
Re = loadImage("piano-Re1.jpg");
Mi = loadImage("piano-Mi1.jpg");
Fa = loadImage("piano-Fa1.jpg");
So = loadImage("piano-So1.jpg");
La = loadImage("piano-La1.jpg");
Si = loadImage("piano-Si1.jpg");
myPort = new Serial(this, "COM15", 9600);
}
void draw() {
image(bg1, 0, 0, 800, 600);
image(Do, 86, 82, 89, 333);
image(Re, 169, 80, 89, 333);
image(Mi, 253, 81, 89, 333);;
image(Fa, 338.5, 84, 89, 333);
image(So, 425, 81, 89, 333);;
image(La, 509, 82, 89, 333);
image(Si, 593, 82, 89, 333);
}
arduino程式碼
const int inPin1 = 1;
const int inPin2 = 2;
const int inPin3 = 3;
const int inPin4 = 4;
const int inPin5 = 5;
const int inPin6 = 6;
const int inPin7 = 7;
int val1 = 0, val2 = 0, val3 = 0, val4 = 0, val5 = 0, val6 = 0, val7 = 0;
void setup() {
Serial.begin(9600);
pinMode(inPin1, INPUT);
pinMode(inPin2, INPUT);
pinMode(inPin3, INPUT);
pinMode(inPin4, INPUT);
pinMode(inPin5, INPUT);
pinMode(inPin6, INPUT);
pinMode(inPin7, INPUT);
}
void loop() {
val1 = digitalRead(inPin1);
val2 = digitalRead(inPin2);
val3 = digitalRead(inPin3);
val4 = digitalRead(inPin4);
val5 = digitalRead(inPin5);
val6 = digitalRead(inPin6);
val7 = digitalRead(inPin7);
if(val1==HIGH){
tone(8,524,8);
}
if(val2==HIGH){
tone(8,588,8);
}
if(val3==HIGH){
tone(8,660,8);
}
if(val4==HIGH){
tone(8,698,8);
}
if(val5==HIGH){
tone(8,784,8);
}
if(val6==HIGH){
tone(8,880,8);
}
if(val7==HIGH){
tone(8,988,8);
}
}
心得介紹:
我們在家執行時,程式碼是可以執行的;但在學校卻不能執行,經過老師的指導才知道原來
是程式碼的問題,我們把之前在家裡寫得很完整的有些程式碼註解掉了,導致程式在執行
時,狀況一堆 。
原本我們的構想是想在這次的期末作品中,利用二維陣列寫出錄音的功能,可以記錄時間、
音樂,讓玩家可以儲存自己在彈奏的旋律,並加入播放的功能,聲音是由電腦發出剛剛輸入
的聲音。希望之後可以完成這兩項功能。
影片:
組員分工:
陳孟琳:主要負責processing、arduino的程式碼。
紀詠心:主要負責電路連接。
沒有留言:
張貼留言