[[2006b/A1/課題3左]]
*センサー2個のプログラム [#l43e1c04]
#define TURN_TIME 400
#define left OnRev(OUT_A);OnFwd(OUT_C);
#define go OnFwd(OUT_A+OUT_C);
#define offAC Off(OUT_A+OUT_C);
#define TURN_LIGHT 10
#define turn_go 5
task main()
{
int light_max=0,time_max=0;
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_2,SENSOR_LIGHT);
start play_music;
ClearTimer(0);OnFwd(OUT_A);OnRev(OUT_C);//タイマーをリセッ ト、回転をする
while(FastTimer(0)<TURN_TIME){
if(SENSOR_1>light_max) //最も強い光を探す
{
light_max=SENSOR_1;
time_max=FastTimer(0);
}
}
OnRev(OUT_A);OnFwd(OUT_C);4秒回った後最も強い光の場所まで逆回転する
Wait(TURN_TIME-time_max);
Off(OUT_A+OUT_C);
stop play_music;
while(true){
if(SENSOR_1>SENSOR_2)//センサー1よりセンサー2の方が強い光を感知すると
{
OnFwd(OUT_C);
OnRev(OUT_A); // 右を向く
Wait(TURN_LIGHT);
OnFwd(OUT_A+OUT_C);Wait(turn_go); //少し進む
}
if(SENSOR_1<SENSOR_2)//センサ−2よりセンサー1の方が強い光を感知したとき
{
OnFwd(OUT_A);
OnRev(OUT_C); //左を向く
Wait(TURN_LIGHT);
OnFwd(OUT_A+OUT_C);Wait(turn_go); //少し進む
}
}
}
//曲 カノン
#define Do 523
#define HDo 1047
#define Re 587
#define HRe 1175
#define Mi 659
#define HMi 1319
#define Fa 698
#define So 784
#define Ra 880
#define LRa 440
#define Si 988
#define ma1 25
#define ma2 23
#define ma3 30
#define ma4 45
#define ma5 20
#define ma6 15
#define ma7 25
task play_music()
{
while(true)
{
PlayTone(HMi,ma1);Wait(ma3);
PlayTone(HRe,ma2);Wait(ma3);
PlayTone(HDo,ma2);Wait(ma3);
PlayTone(HDo,ma2);Wait(ma4);
PlayTone(Ra,ma1);Wait(ma3);
PlayTone(So,ma2);Wait(ma3);
PlayTone(Ra,ma2);Wait(ma3);
PlayTone(Si,ma2);Wait(ma4);
PlayTone(HDo,ma1);Wait(ma3);
PlayTone(Si,ma2);Wait(ma3);
PlayTone(Ra,ma2);Wait(ma3);
PlayTone(So,ma2);Wait(ma4);
PlayTone(Fa,ma1);Wait(ma3);
PlayTone(Mi,ma2);Wait(ma3);
PlayTone(Fa,ma2);Wait(ma3);
PlayTone(Re,ma2);Wait(ma4);
PlayTone(Do,ma5);Wait(ma6);
PlayTone(Mi,ma5);Wait(ma6);
PlayTone(So,ma5);Wait(ma6);
PlayTone(Fa,ma5);Wait(ma6);
PlayTone(Mi,ma7);Wait(ma6);
PlayTone(Do,ma7);Wait(ma6);
PlayTone(Mi,ma7);Wait(ma6);
PlayTone(Re,ma7);Wait(ma6);
PlayTone(Do,ma5);Wait(ma6);
PlayTone(LRa,ma5);Wait(ma6);
PlayTone(Do,ma5);Wait(ma6);
PlayTone(So,ma5);Wait(ma6);
PlayTone(Fa,ma7);Wait(ma6);
PlayTone(Ra,ma7);Wait(ma6);
PlayTone(So,ma7);Wait(ma6);
PlayTone(Fa,ma7);Wait(ma6);
}
}
#comment