*まだ音を鳴らすプログラムを組み込んでません…;
#define turn_right OnFwd(OUT_A);OnRev(OUT_C); //左右回転、直進の定義 #define turn_left OnRev(OUT_A);OnFwd(OUT_C); #define Stop_turning Off(OUT_A+OUT_C); #define TURN_TIME 200 #definego_straightOnFwd(OUT_A+OUT_C);Wait(50);Off(OUT_A+OUT_C);Wait(50); #define Do 523 //音程の定義 #define Re 587 #define Mi 659 #define Fa 698 #define So 784 #define Ra 880 task kirakira*() //キラキラ星 { while (true) { PlayTone(Do,30); Wait(40); PlayTone(Do,30); Wait(40); PlayTone(So,30); Wait(40); PlayTone(So,30); Wait(40); PlayTone(Ra,30); Wait(40); PlayTone(Ra,30); Wait(40); PlayTone(So,70); Wait(80); PlayTone(Fa,30); Wait(40); PlayTone(Fa,30); Wait(40); PlayTone(Mi,30); Wait(40); PlayTone(Mi,30); Wait(40); PlayTone(Re,30); Wait(40); PlayTone(Re,30); Wait(40); PlayTone(Do,70); Wait(80); } } task kerokero() //カエルの歌 { while (true) { PlayTone(Do,30); Wait(40); PlayTone(Re,30); Wait(40); PlayTone(Mi,30); Wait(40); PlayTone(Fa,30); Wait(40); PlayTone(Mi,30); Wait(40); PlayTone(Re,30); Wait(40); PlayTone(Do,70); Wait(80); PlayTone(Mi,30); Wait(40); PlayTone(Fa,30); Wait(40); PlayTone(So,30); Wait(40); PlayTone(Ra,30); Wait(40); PlayTone(So,30); Wait(40); PlayTone(Fa,30); Wait(40); PlayTone(Mi,40); Wait(80); PlayTone(Do,60); Wait(70); PlayTone(Do,60); Wait(70); PlayTone(Do,60); Wait(70); PlayTone(Do,60); Wait(70); PlayTone(Do,15); Wait(20); PlayTone(Do,15); Wait(20); PlayTone(Re,15); Wait(20); PlayTone(Re,15); Wait(20); PlayTone(Mi,15); Wait(20); PlayTone(Mi,15); Wait(20); PlayTone(Fa,15); Wait(20); PlayTone(Fa,15); Wait(20); PlayTone(Mi,30); Wait(40); PlayTone(Re,30); Wait(40); PlayTone(Do,40); Wait(50); } } task main() //光を追うプログラム { SetSensor(SENSOR_2,SENSOR_LIGHT); int light_max=30,time_max=0; while(true){ OnFwd(OUT_C);OnRev(OUT_A);Wait(100);Off(OUT_A+OUT_C);Wait(10); turn_right; ClearTimer(0); while(FastTimer(0)<TURN_TIME){ if(SENSOR_2>light_max){ light_max=SENSOR_2; time_max=FastTimer(0); } } Stop_turning;Wait(100); turn_left; Wait(TURN_TIME-time_max); Stop_turning; go_straight; light_max=30; time_max=0; } }
#define turn_right OnFwd(OUT_A);OnRev(OUT_C); #define turn_left OnRev(OUT_A);OnFwd(OUT_C); #define Stop_turning Off(OUT_A+OUT_C); #define go_straight OnFwd(OUT_A+OUT_C);Wait(30); #define torch 40 #define Do 523 #define Re 587 #define Mi 659 #define Fa 698 #define So 784 #define Ra 880 task kirakira() { while (true) { PlayTone(Do,30); Wait(40); PlayTone(Do,30); Wait(40); PlayTone(So,30); Wait(40); PlayTone(So,30); Wait(40); PlayTone(Ra,30); Wait(40); PlayTone(Ra,30); Wait(40); PlayTone(So,70); Wait(80); PlayTone(Fa,30); Wait(40); PlayTone(Fa,30); Wait(40); PlayTone(Mi,30); Wait(40); PlayTone(Mi,30); Wait(40); PlayTone(Re,30); Wait(40); PlayTone(Re,30); Wait(40); PlayTone(Do,70); Wait(80); } } task kerokero() { while (true) { PlayTone(Do,30); Wait(40); PlayTone(Re,30); Wait(40); PlayTone(Mi,30); Wait(40); PlayTone(Fa,30); Wait(40); PlayTone(Mi,30); Wait(40); PlayTone(Re,30); Wait(40); PlayTone(Do,70); Wait(80); PlayTone(Mi,30); Wait(40); PlayTone(Fa,30); Wait(40); PlayTone(So,30); Wait(40); PlayTone(Ra,30); Wait(40); PlayTone(So,30); Wait(40); PlayTone(Fa,30); Wait(40); PlayTone(Mi,40); Wait(80); PlayTone(Do,60); Wait(70); PlayTone(Do,60); Wait(70); PlayTone(Do,60); Wait(70); PlayTone(Do,60); Wait(70); PlayTone(Do,15); Wait(20); PlayTone(Do,15); Wait(20); PlayTone(Re,15); Wait(20); PlayTone(Re,15); Wait(20); PlayTone(Mi,15); Wait(20); PlayTone(Mi,15); Wait(20); PlayTone(Fa,15); Wait(20); PlayTone(Fa,15); Wait(20); PlayTone(Mi,30); Wait(40); PlayTone(Re,30); Wait(40); PlayTone(Do,40); Wait(50); } } task main() { SetSensor(SENSOR_1,SENSOR_LIGHT); SetSensor(SENSOR_3,SENSOR_LIGHT); while(true){ if((SENSOR_1 > torch) && (SENSOR_3 <= torch) && (SENSOR_1 > SENSOR_3)){ turn_left; } if((SENSOR_1 <= torch) && (SENSOR_3 > torch) && (SENSOR_1 < SENSOR_3)){ turn_right; } if((SENSOR_1 >= torch) && (SENSOR_3 >= torch)){ go_straight; } if((SENSOR_1 < torch) && (SENSOR_3 < torch)){ turn_right; } }
センサーを二つに変更して音を鳴らすプログラムを組み込みました。
#define turn_right OnFwd(OUT_A);OnRev(OUT_C); #define turn_left OnRev(OUT_A);OnFwd(OUT_C); #define Stop_turning Off(OUT_A+OUT_C); #define go_straight OnFwd(OUT_A+OUT_C);Wait(30); #define torch 40 #define Do 523 #define Re 587 #define Mi 659 #define Fa 698 #define So 784 #define Ra 880 task music() { while (true) { if ((SENSOR_1 >= torch) || (SENSOR_3 >= torch)){ PlayTone(Do,30); Wait(40); PlayTone(Do,30); Wait(40); PlayTone(So,30); Wait(40); PlayTone(So,30); Wait(40); PlayTone(Ra,30); Wait(40); PlayTone(Ra,30); Wait(40); PlayTone(So,70); Wait(80); PlayTone(Fa,30); Wait(40); PlayTone(Fa,30); Wait(40); PlayTone(Mi,30); Wait(40); PlayTone(Mi,30); Wait(40); PlayTone(Re,30); Wait(40); PlayTone(Re,30); Wait(40); PlayTone(Do,70); Wait(80); } if ((SENSOR_1 < torch) && (SENSOR_3 < torch)){ PlayTone(Do,30); Wait(40); PlayTone(Re,30); Wait(40); PlayTone(Mi,30); Wait(40); PlayTone(Fa,30); Wait(40); PlayTone(Mi,30); Wait(40); PlayTone(Re,30); Wait(40); PlayTone(Do,70); Wait(80); PlayTone(Mi,30); Wait(40); PlayTone(Fa,30); Wait(40); PlayTone(So,30); Wait(40); PlayTone(Ra,30); Wait(40); PlayTone(So,30); Wait(40); PlayTone(Fa,30); Wait(40); PlayTone(Mi,40); Wait(80); PlayTone(Do,60); Wait(70); PlayTone(Do,60); Wait(70); PlayTone(Do,60); Wait(70); PlayTone(Do,60); Wait(70); PlayTone(Do,15); Wait(20); PlayTone(Do,15); Wait(20); PlayTone(Re,15); Wait(20); PlayTone(Re,15); Wait(20); PlayTone(Mi,15); Wait(20); PlayTone(Mi,15); Wait(20); PlayTone(Fa,15); Wait(20); PlayTone(Fa,15); Wait(20); PlayTone(Mi,30); Wait(40); PlayTone(Re,30); Wait(40); PlayTone(Do,40); Wait(50); } } task main() { SetSensor(SENSOR_1,SENSOR_LIGHT); SetSensor(SENSOR_3,SENSOR_LIGHT); start music; while(true){ if((SENSOR_1 > torch) && (SENSOR_3 <= torch) && (SENSOR_1 > SENSOR_3)){ turn_left; } if((SENSOR_1 <= torch) && (SENSOR_3 > torch) && (SENSOR_1 < SENSOR_3)){ turn_right; } if((SENSOR_1 >= torch) && (SENSOR_3 >= torch)){ go_straight; } if((SENSOR_1 < torch) && (SENSOR_3 < torch)){ turn_right; } }