チーム1236
課題名
めとろのーむ(迫真)
研究者名
2-15-27 高山大輝
2-15-36 中村健
仕様
擬似的なメトロノームを作成。
FPGAボードのVRを変更することで
BPMを変更できる。
BPMの可動範囲は(約60~約136)
音をより本物のメトロノームに近づけた。
最大の敵であった配線
p00=>スピーカー赤
スピーカー黒=>GND
p01=>VR
見ていて楽しいソースコード
#include <m8c.h> // part specific constants and macros
#include "PSoCAPI.h" // PSoC API definitions for all User Modules
void main()
{
// Insert your main routine code here. int F=1464; unsigned int adc_data; PGA_Start(PGA_HIGHPOWER); M8C_EnableGInt; ADCINC_Start(ADCINC_HIGHPOWER); ADCINC_GetSamples(0); PWM16_Start();
while(1){ while(ADCINC_fIsDataAvailable()==0){};// adc_data=ADCINC_wClearFlagGetData(); if(adc_data>0&&adc_data<373){ F=1464-117; } else if(adc_data>=374&&adc_data<746){ F=1464-117*2; } else if(adc_data>=747&&adc_data<1121){ F=1464-117*3; } else if(adc_data>=1122&&adc_data<1493){ F=1464-117*4; } else if(adc_data>=1494&&adc_data<1868){ F=1464-117*5; } else if(adc_data>=1869&&adc_data<2242){ F=1464-117*6; } else if(adc_data>=2243&&adc_data<2616){ F=1464-117*7; } else if(adc_data>=2617&&adc_data<2990){ F=1464-117*8; }
PWM16_WritePeriod(F); PWM16_WritePulseWidth(F/2); }
}
考察
このメトロノームはVRの可動域を8分割して
その分割した範囲それぞれに特定のテンポが割り当てられている。
つまり実際出せるBPMは8種類しかないのである(汗
加えて本来はBPMの可動域を65~166に変更する予定であったが
計測したところ誤差により60~145になってしまっていた。
この原因はSysClkを元に割っていきそこからHz、BPMを導き出したが
その計算途中で生じた小数点などの誤差だろう。
あくまで近似。
- 最終更新:2012-07-10 17:44:45