Logibotのサンプルプログラミングです

Dependencies:   mbed

Committer:
natuga117
Date:
Fri Mar 03 18:32:40 2017 +0000
Revision:
0:66a643c36c9e
Logibot????????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
natuga117 0:66a643c36c9e 1 #ifndef BEEP_SOUND_H
natuga117 0:66a643c36c9e 2 #define BEEP_SOUND_H
natuga117 0:66a643c36c9e 3 #include "mbed.h"
natuga117 0:66a643c36c9e 4 #include <queue>
natuga117 0:66a643c36c9e 5 struct gakuhu{
natuga117 0:66a643c36c9e 6 int octave;
natuga117 0:66a643c36c9e 7 int note;
natuga117 0:66a643c36c9e 8 float time_s; // 長さが-1:通常ノート -2:終了フラグ
natuga117 0:66a643c36c9e 9 };
natuga117 0:66a643c36c9e 10 /*
natuga117 0:66a643c36c9e 11 struct beep{
natuga117 0:66a643c36c9e 12 float userPeriod;
natuga117 0:66a643c36c9e 13 float userWrite;
natuga117 0:66a643c36c9e 14 float time_s;
natuga117 0:66a643c36c9e 15 }
natuga117 0:66a643c36c9e 16 */
natuga117 0:66a643c36c9e 17 const int frequencyTable[] = {261, 277, 294, 311, 330, 349,
natuga117 0:66a643c36c9e 18 370, 392, 415, 440, 466, 494, 100};
natuga117 0:66a643c36c9e 19
natuga117 0:66a643c36c9e 20
natuga117 0:66a643c36c9e 21 class beep_sound
natuga117 0:66a643c36c9e 22 {
natuga117 0:66a643c36c9e 23 public:
natuga117 0:66a643c36c9e 24 beep_sound(PinName pwm);
natuga117 0:66a643c36c9e 25 ~beep_sound();
natuga117 0:66a643c36c9e 26 void SetFrequency(int octave, int note, bool on_off);
natuga117 0:66a643c36c9e 27 void onpu(int octave, int note, float time_s);
natuga117 0:66a643c36c9e 28 void onpu_stop(int octave, int note, float time_s);
natuga117 0:66a643c36c9e 29 void sinwave(float center,int speed,int width);
natuga117 0:66a643c36c9e 30 void setwave(float frequency,float duty,float wait);
natuga117 0:66a643c36c9e 31 // 以下サンプル音集
natuga117 0:66a643c36c9e 32 void boot();
natuga117 0:66a643c36c9e 33 void beep_right(int nTimes);
natuga117 0:66a643c36c9e 34 void beep_wrong(int nTimes);
natuga117 0:66a643c36c9e 35 void beep_notif1(int nTimes);
natuga117 0:66a643c36c9e 36 void beep_notif2(int nTimes);
natuga117 0:66a643c36c9e 37 void beep_readyGo(int nTimes);
natuga117 0:66a643c36c9e 38 // 以下並列で鳴らすための関数
natuga117 0:66a643c36c9e 39 void stop();
natuga117 0:66a643c36c9e 40 void setGakuhu(int argOc, int argNo, float argTi);
natuga117 0:66a643c36c9e 41 void setKyuhu(float argTi);
natuga117 0:66a643c36c9e 42 void playGakuhu();
natuga117 0:66a643c36c9e 43 void playContinue();
natuga117 0:66a643c36c9e 44 void NoteOn(int octave, int note);
natuga117 0:66a643c36c9e 45 private:
natuga117 0:66a643c36c9e 46 PwmOut* m_pwm;
natuga117 0:66a643c36c9e 47 int frequency;
natuga117 0:66a643c36c9e 48 // 以下並列で鳴らすための宣言
natuga117 0:66a643c36c9e 49 queue<gakuhu> otoQue;
natuga117 0:66a643c36c9e 50 gakuhu bufG;
natuga117 0:66a643c36c9e 51 Timeout interruptStop;
natuga117 0:66a643c36c9e 52 // 再生中にキューにsetGakuhuをさせないためのフラグ
natuga117 0:66a643c36c9e 53 bool playing; // false:停止中 true:再生中
natuga117 0:66a643c36c9e 54 bool teishi; // true:再生を強制停止. ノート再生時に必ずチェック.
natuga117 0:66a643c36c9e 55 };
natuga117 0:66a643c36c9e 56
natuga117 0:66a643c36c9e 57 #endif