전체 과정에서 제일 힘들 것으로 생각 되었던 부분들이 어느정도 해결되었습니다.
1.파일 이름을 읽어서 리스팅하고
2.파일을 선택하면 해당 파일을 읽어서 펀칭 좌표를 스캔해 저장하고
3.저장된 자료를 순서대로 정렬하는 것입니다.
지금은 2번 과정의 마무리에 있는데요.
펀칭 좌표는 float x,y로 저장되며 펀칭할 구멍에 따라 계속 데이터를 저장해 주어야 합니다.
https://musicboxmaniacs.com/ 에서 여러 파일을 받아 확인해보니 음표가 많으면 6~700 정도 되고
적으면 1~200개 정도인듯 합니다.
그래서 float x[1000], y[1000]으로 설정하면 메모리 부족으로 업로드가 안되더군요.
100개로 줄여봤더니 간신히 올라가는데 메모리의 93%를 써버립니다.
이미 예견했던 부분이긴 합니다. 라이브러리가 많거든요.
특히 SD 라이브러리가 아무것도 없는 상태에서도 메모리의 절반을 넘게 먹고 들어갑니다.
변수를 선언할때 최대한 필요한 것만 최소한으로 하도록 노력해봤는데
float 2천개씩 들어가니 별무소용이네요.
좌표값 저장 뿐 아니라 데이터를 이용해 펀칭하기까지 계속 이어져야 하기 때문에 스케치 용량도 부족합니다.
결국 하드웨어의 교체 말고는 답이 없습니다.
스케치 공간은 엄청 남아돌고 변수 공간도 충분합니다.
회로를 전부 다시 짜야하는군요..
'[완료]Arduino Projects > Music Box 악보 자동 펀처' 카테고리의 다른 글
모터와 센서 작동 테스트 (0) | 2019.02.24 |
---|---|
새 보드 설계와 중간정리. (0) | 2019.02.23 |
부저에 따른 음질 차이. (0) | 2019.02.18 |
뮤직박스 악보 펀처 DXF 파일 포맷 읽어들이기와 디코딩. (0) | 2019.02.13 |
뮤직박스 악보 펀처 진행상황. (0) | 2019.02.12 |