프로젝트

주변 물건을 스피커로 만들어 음악 재생하기 (레조넌스 스피커, MP3 플레이어 모듈) [아두이노 강좌]

페이지 정보

작성자 불친절한알렉스 작성일16-07-11 10:17 조회5,480회 댓글0건

본문

안녕하세요. 레조넌스 스피커를 이용하여 종이컵을 스피커로 만들고,


MP3 플레이어 모듈을 활용하여 대포 소리를 재생해보도록 하겠습니다!



 


알아보기


레조넌스 스피커


d1c817ed86dcd12c9ad7279a530ec3ea_1468199

(사진을 클릭하면 구매 사이트로 이동됩니다.)


공명 스피커라고도 불리며 타 물체를 떨리게 하여 음을 내도록 합니다.


종이, 나무, 유리, 플라스틱, 벽 등등 평평한 면에 붙여 고정시키면 무엇이든 스피커가 될 수 있습니다.


가격도 저렴하고 성능도 좋아 DIY에 적합한 스피커입니다.


MP3 플레이어 모듈


d1c817ed86dcd12c9ad7279a530ec3ea_1468199

 

(사진을 클릭하면 구매 사이트로 이동됩니다.)

 

마이크로 SD 카드를 넣으면 음악을 재생시킬 수 있습니다.


음원을 .mp3 만 인식되며 버튼을 통해 음량 제어, 다음 곡 이번 곡, 한 곡 재생 전체 재생 등 컨트롤할 수 있습니다.


회로가 구성되어 있어 전원만 연결하면 바로 사용하실 수 있습니다.


입력 전원은 3.7~5.5V로 스마트폰 충전기(마이크로 5핀)로 전원을 넣어주시면 됩니다.


해당 제품 가격도 저렴하고 출력하는 음질도 좋고 크기도 작아 메이킹에 용이합니다.


 


제작하기



d1c817ed86dcd12c9ad7279a530ec3ea_1468199


공명 스피커의 앞면입니다. 흰 부분이 스피커로 사용할 물체에 붙이는 부분입니다.


d1c817ed86dcd12c9ad7279a530ec3ea_1468199


공명 스피커의 뒷면입니다. 스피커에 연결하게 될 선을 연결할 수 있는 부분이 미리 납땜 처리가 되어있습니다.


저 부분에 전선을 납땜하여 스피커 부분에 연결하면 됩니다.


d1c817ed86dcd12c9ad7279a530ec3ea_1468199


스피커에는 + 와 - 구별이 없어 극은 신경 쓰지 않으셔도 됩니다.


d1c817ed86dcd12c9ad7279a530ec3ea_1468199


미리 만들어 놓은 대포 뒷면에 부착시켜줍니다.


글루건으로 넓게 펴서 부착하였습니다. (면 전제가 붙도록 하는 것이 가장 좋습니다.)


d1c817ed86dcd12c9ad7279a530ec3ea_1468199


MP3 플레이어 모듈에 스피커를 연결하는 부분이 있습니다. 나사를 조여 스피커를 고정시켜줍니다.


주의하셔야 할 부분은 스피커가 무거워서 뒤로 넘어간다는 것입니다!


SD 카드에 첨부해드린 대포 소리를 저장 후 연결합니다.


 


동작 영상


 

대포 소리



퍼어엉~ 퍼어엉~ 하며 종이컵에서 대포 소리가 납니다.


MP3 플레이어 모듈 자체에서 소리 크기를 조절할 수 있습니다!


음원 재생


okasian - get that money



음질을 테스트하기 위해 일반 음원을 재생 시켜보았습니다.


종이컵 자체의 떨림으로 소리가 조금 울리기는 하지만 음질이 우수했습니다.


책상 같은 평평한 곳에 고정시켜서 재생시키면 음질이 우수합니다.


 


아두이노로 제어해보기


 

해당 제품을 아두이노에서도 제어가 가능합니다.


d1c817ed86dcd12c9ad7279a530ec3ea_1468199


+ , -  구별 없이 GND에 하나, D9에 하나 연결해줍니다.


소스 코드


 // 소스파일은 Resonnance 로 첨부하였습니다.

int Buzzer = 9;
int length = 25
char notes[] = "edcdeeedddeggedcdeeeddedc";

int beats[] = {3,1,2,2,2,2,4,
               2,2,4,2,2,4,
               3,1,2,2,2,2,4,
               2,2,3,1,8}; 
int tempo = 100;  

void playTone(int tone, int duration) {
  for (long i = 0; i < duration * 1000L; i += tone * 2) {
    digitalWrite(Buzzer, HIGH);
    delayMicroseconds(tone);
    digitalWrite(Buzzer, LOW);
    delayMicroseconds(tone);
  }
}

void playNote(char note, int duration) {
  char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };
                //  도   레   미   파   솔   라   시   도 순서입니다.
  int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 };
  // 앞서 말씀드린 듯이 tone 함수는 음을 연주할 수 있습니다.
  //도 = 1915, 레 = 170 ~ 높은 도 = 956 입니다.

  for (int i = 0; i < 8; i++) {
    if (names[i] == note) {
      playTone(tones[i], duration);
    }
  }
}

void setup() {
  pinMode(Buzzer, OUTPUT);
}

void loop() {
  for (int i = 0; i < length; i++) {
    if (notes[i] == ' ') {
      delay(beats[i] * tempo);
    } else {
      playNote(notes[i], beats[i] * tempo);
    }
    
    delay(tempo / 2); 
  }
}

 



비행기 재생



비행기를 연주합니다.


 


마치며...


기대했던 것보다 성능과 음질, 가성비가 우수하며 만족스러웠습니다.


가장 메리츠가 컸던 것은 내가 원하는 물체를 스피커로 사용할 수 있다는 점입니다.



출처 [메카솔루션] http://Mechasolution.com 

댓글목록

등록된 댓글이 없습니다.


모바일 버전으로 보기