코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
2014-08-08 15:10:54
출처 : 'Simple note' 프로젝트 - simple-note-an-arduino-musical-instrument
아두이노는 소리를 생성하여 출력하거나 외부 쉴드와 결합하여 다양한 악기로도 활용될수 있습니다.
위 사진을 보면 엉성하고 투박해보이지만 나름 피아노의 기능을 할 수 있는 브레드 보드 피아노입니다.
전자 피아노처럼 고급스러운 사운드는 아니지만, 쉽게 따라할 수 있고,
푸시버튼과 스피커 혹은 피에조부저 만 있으면 누구나 만들어 연주할 수 있는 프로젝트입니다.
그럼 실습에 앞서 '소리'에 대해 간단히 알아보겠습니다.
소리는 기본적으로 물체의 진동을 통해 공기중의 압련을 변화시키고, 이를 파형(Wave)의 형태로 귀에 전달 되게 됩니다.
NO | 부품명 | 수량 | 상세설명 |
1 | 오렌지 보드 | 1 | 아두이노 호환보드 |
2 | 피에조 | 1 | 피에조 |
3 | 브레드보드 | 1 | 브레드보드 |
4 | 10㏀ 저항 | 5 | 저항 |
5 | 점퍼 케이블 | 14 | 점퍼 케이블 |
6 | 푸시버튼 | 5 | 푸시버튼 |
부품명 | 오렌지 보드 | 10㏀ 저항 | 브레드보드 | 점퍼케이블 | 푸시 버튼 |
파트 | x1 | x5 | x1 | x14 | x5 |
부품명 | 피에조 |
파트 | x1 |
/*코드 출처 - 아두이노 for 인터랙티브 뮤직 */ void setup(){ pinMode(2,INPUT);//2번 핀을 입력으로 설정 pinMode(3,INPUT);//3번 핀을 입력으로 설정 pinMode(4,INPUT);//4번 핀을 입력으로 설정 pinMode(5,INPUT);//5번 핀을 입력으로 설정 pinMode(6,INPUT);//6번 핀을 입력으로 설정 pinMode(7,OUTPUT);//7번 핀을 출력으로 설정 } void loop(){ if(digitalRead(2)==1){sol();}//만약 2번핀이 1의상태(눌림상태)라면 솔을 실행합니다. if(digitalRead(3)==1){la();}//만약 3번핀이1의상태(눌림상태)라면 라 를 실행합니다 if(digitalRead(4)==1){Do();}//만약 4번핀이 1의상태(눌림상태)라면 도 를 실행합니다. if(digitalRead(5)==1){re();}//만약 5번핀이 1의상태(눌림상태)라면 레 를 실행합니다. if(digitalRead(6)==1){mi();}//만약 6번핀이 1의상태(눌림상태)라면 미 를 실행합니다. } void sol(){ digitalWrite(7,1); delayMicroseconds(1276);//'솔'음을 내기위한 주기 digitalWrite(7,0); delayMicroseconds(1276); } void la(){ digitalWrite(7,1); delayMicroseconds(1137);//'라'음을 내기위한 주기 digitalWrite(7,0); delayMicroseconds(1137);//'미'음을 내기위한 주기 } void Do(){ digitalWrite(7,1); delayMicroseconds(955 );//'도'음을 내기위한 주기 digitalWrite(7,0); delayMicroseconds(955); } void re(){ digitalWrite(7,1); delayMicroseconds(852);//'레'음을 내기위한 주기 digitalWrite(7,0); delayMicroseconds(852); } void mi(){ digitalWrite(7,1); delayMicroseconds(759); digitalWrite(7,0); delayMicroseconds(759); }
void sol(){
digitalWrite(7,1); delayMicroseconds(1276);//'솔'음을 내기위한 주기
digitalWrite(7,0); delayMicroseconds(1276);
}
출처 : 음높이에 따른 주기(ms)- www.phys.unsw.edu.au
kocoafabeditor
항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!