문제점 2. 숨이 끊기는 부분에서 그래프 값이 순간적으로 확 내려가서 고정이 되어지지 않는다.
이 문제는 사실 고민을 많이 했습니다.
1. 주파수 평균값을 통해 어떻게든 값을 튀지 않게 조정할지, 아니면 2. 갑자기 주파수 값이 한 1000이상 차이나면 그 값을 인식하지 않게 할지
다양한 방법을 고민했습니다.
일단 주파수 값이 1000이상 차이 날때 값을 인식하고 무시하여 이전 값에 +1을 하여 표기하는 코딩을 진행해봤습니다.
정말 간단하게 구성해봤는데, 해당 식의 문제는.. peack 함수, 그러니까 Speak함수를 받아쓰는 함수가 void setup보다 위쪽에 존재한 int Speak = 1000; 값을 계속 받아서 인식을 해버립니다.
제가 원래 아는 방식은 void setup보다 위 쪽에 존재한 함수는 setup과 loop에서 씌워지는 줄 알았는데, 지금 그렇게 되는게 아니라 당황.. 그래도 해당 식을 사용하면 초기 설정 주파수 1000에 항상 근접하려고 진행하는 식이 완성되기 때문에 일단 명령어에 포함시켜놨습니다.
그리고, Speak 주파수의 균형잡힌 값을 위해
매우매우 간단한 주파수 필터링 함수도 추가해주면서 일단 마쳤습니다.
한 번만 더 주파수 필터링을 진행해보려고 합니다. 만약 여기서도 안되면 그냥 토글 스위치를 추가해서, 토글 스위치를 누르는 동안은 Speak 함수가 0.몇 초 동안 지속되는 기능을 추가하려고 합니다. 그러면 잠깐 휘파람을 쉬는 동안은 마지막 Hz를 가지고 조종이 될 것 같습니다.
다음에는 앞에서 말하는 것처럼 필터링 함수, 토글 스위치등 추가하고 map 함수로 모터와 연결해보겠습니다.