메이킹 일지 (진행 중)/욘두 화살

욘두 화살 - 4. 코딩 작업 (마이크 및 FFT관련)

  • -

https://bker001.tistory.com/359

 

욘두 화살 - 3. 코딩 작업 (자이로, 서보 모터)

https://bker001.tistory.com/358 저번 글에 이어서 하드웨어가 거의 준비되어서 이제 코딩을 할 때가 왔습니다. 일단 이번에 사용해본 자이로센서는 MPU6050으로, 조금 저가형 아두이노 자이로 센서입니다

bker001.tistory.com

 

 

저번 글에 이어서 이제는 마이크 모듈를 통해 헤르츠를 측정해야합니다. 본래 마이크 모듈은 소리의 크기를 측정하는 관련 기능과 프로젝트는 많지만 헤르츠를 측정하는 방법은 생각보다 매우 적어서 FFT (Fast Fourier Transformation)를 활용해야 합니다.

 

이 FFT와 관련한 정보는 아래의 링크를 참고해주세요.

https://scribblinganything.tistory.com/181

 

FFT(Fast Fourier Transform)이란? 샘플링 rate, Bandwidth, 측정시간, 주파수정밀도(resolution) 사이 trade off 관

FFT(Fast Fourier Transform) - Sampling rate, Bandwidth, 측정시간, 주파수정밀도(resolution) FFT(Fast Fourier Transform)란? 푸리에(Fourier) 변환을 수식으로 보면 그림1과 같다. 전 시간 영역을 적분하여 주파수 영역에

scribblinganything.tistory.com

 


 

 

아무튼 국내에서 FFT와 아두이노를 엮은 관련으로 딱 명쾌하게 나온 코드가 없다고 생각되어서 계속 찾아보면서 코드를 수정해나가야 할 것 같습니다.

 

그나마 실제적으로 활용이 가능한 코드는 

https://basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=16473&c_id=16477&w=c&c_id=16477&w=c 

https://projecthub.arduino.cc/abhilashpatel121/approxfft-fastest-fft-function-for-arduino-f1b6ba

https://geronimob.tistory.com/27

https://bbangpan.tistory.com/23

 

이 네 가지를 이용해서 만드려고 초안을 잡았었습니다.

 

 


 

 

그렇게 준비를 하고 일단 회로도를 정리했습니다.

 

 

너무 큰 브레드보드를 쓴 거 같기는 한데 귀찮으니까 이대로 두겠습미다

일반 소음 확인 코드는 단순하게 잘 작동합니다.

 

소음에 따라 소리 크기를 표현하는 코드

 

 

하지만 FFT는 생각보다 관련 코드를 찾기가 너무 힘들었습니다.

그래서 위의 링크말고도 한 링크를 더 찾아냈습니다.

https://www.youtube.com/watch?v=5RmQJtE61zE 

 

 

지금 보이시는 것처럼 모니터로 스펙트럼을 관찰할 수 있게 한 영상이 있길래 한번 따라서 코드를 진행해봤는데도 사실 별차이가 없었습니다.

 

 

이러다가 외국 아두이노 포럼과 레딧까지 전부 찾아볼게 될 것이 분명해서 조금 방향을 틀었습니다.

가장 좋은 것은 아무래도 비슷한 원리의 프로젝트를 찾아보는 것이라 생각했습니다. 

그래서 이번에는 기타의 튜너를 활용하면 좋겠다는 생각이 들어서 관련 자료들을 찾아보기 시작했습니다.

 

https://www.instructables.com/Guitar-Tuner-Arduino/

 

Guitar Tuner Arduino

Guitar Tuner Arduino: The Guitar Tuner is a simple tuner that you build using Arduino. Using the electret microphone it can find the frequency of the Low e string, A, D,G,B, and the high E string. Using the frequencies the electret microphone will tell the

www.instructables.com

 

어떻게 실제로 작동이 바로 되는 코드를 찾을 수 있었습니다. 그런데 이제 문제는 스펙트럼이 유튜브에 있는 500hz, 700hz 주파음은 감지를 잘하는데 제 휘파람소리는 감지를 못합니다..

 

 

 

 

그런데 충격적이게도 휘파람의 잡음을 중간중간에 잡아주는 명령어를 넣으면 이제 원하는대로 움직일 수 있겠다는 생각이 들었습니다.

 

생각보다 마이크를 입에 가까이 가져다대고 부니까 얘가 움직이는 것을 볼 수 있었어서 이후에 또 코드 수정한 다음 글을 작성해보도록 하겠습니다

반응형
Contents

포스팅 주소를 복사했습니다!

이 글이 도움이 되었다면 추천 부탁드립니다!