チーム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

このWIKIを編集するにはパスワード入力が必要です

認証パスワード