2008a/A3~ 08T2100A 08A1010A
とおりゃんせ
#define la 440 #define Si 494 #define Do 523 #define Re 587 #define Mi 659 #define Fa 698 #define Sol 784 #define La 880 task play_music() // 音楽を演奏するタスク { while(true) { PlayTone(Mi,100); Wait(100); //ミ PlayTone(Mi,50); Wait(50); //ミ PlayTone(Re,50); Wait(50); //レ PlayTone(Mi,50); Wait(50); //ミ PlayTone(Mi,25); Wait(25); //ミ PlayTone(Re,25); Wait(25); //レ PlayTone(Si,100); Wait(100); //シ PlayTone(Fa,50); Wait(50); //ファ PlayTone(Fa,25); Wait(25); //ファ PlayTone(Fa,25); Wait(25); //ファ PlayTone(La,50); Wait(50); //ラ PlayTone(Fa,25); Wait(25); //ファ PlayTone(Mi,25); Wait(25); //ミ PlayTone(Fa,25); Wait(25); //ファ PlayTone(Mi,25); Wait(25); //ミ PlayTone(Re,25); Wait(25); //レ PlayTone(Re,25); Wait(25); //レ PlayTone(Mi,100); Wait(100); //ミ PlayTone(Fa,50); Wait(50); //ファ PlayTone(Fa,25); Wait(25); //ファ PlayTone(Fa,25); Wait(25); //ファ PlayTone(La,50); Wait(50); //ラ PlayTone(Fa,25); Wait(25); //ファ PlayTone(Mi,25); Wait(25); //ミ PlayTone(Fa,25); Wait(25); //ファ PlayTone(Mi,25); Wait(25); //ミ PlayTone(Re,25); Wait(25); //レ PlayTone(Re,25); Wait(25); //レ PlayTone(Mi,100); Wait(100); //ミ PlayTone(Do,75); Wait(75); //ド PlayTone(Do,25); Wait(25); //ド PlayTone(Mi,50); Wait(50); //ミ PlayTone(Do,25); Wait(25); //ド PlayTone(Si,25); Wait(25); //シ PlayTone(Do,25); Wait(25); //ド PlayTone(Si,25); Wait(25); //シ PlayTone(la,25); Wait(25); //ラ PlayTone(la,25); Wait(25); //ラ PlayTone(Si,100); Wait(100); //シ } }
#define THRESHOLD 42 //光センサーの閾値 #define RUN_TIME 1600 //走行時間
task main() { start play_music ; // 演奏を開始 }
task line_trace() { //ライントレース開始
SetSensor(SENSOR_1,SENSOR_LIGHT); //光センサー1 SetSensor(SENSOR_3,SENSOR_LIGHT); //光センサー3 SetSensor(SENSOR_2,SENSOR_TOUCH); // タッチセンサー SetPower(OUT_A+OUT_C,7); //移動スピード ClearTimer(0); //タイマーon
while (Timer(0)<= RUN_TIME){ //タッチセンサーが作動したら止まる。 if (SENSOR_2 ==1 ){ Off(OUT_A+OUT_C); Wait(150);} else{ if ((SENSOR_1> THRESHOLD) &&(SENSOR_3> THRESHOLD)){ //光センサーが閾値以上で前進 OnFwd(OUT_A); OnFwd(OUT_C);} else{ if (SENSOR_1> THRESHOLD){ //光センサー1が閾値以上で右に旋回 OnFwd(OUT_A); Off(OUT_C);} else{ if (SENSOR_3> THRESHOLD){ //光センサー3が閾値以上で左に旋回 Off(OUT_A); OnFwd(OUT_C);} else{ if ((SENSOR_1< THRESHOLD ) &&(SENSOR_3< THRESHOLD)){ //光センサーが閾値以下で一時停止 Off(OUT_A+OUT_C); Wait(80); OnFwd(OUT_A+OUT_C); Wait(150);} } } } } } Off(OUT_A+OUT_C); //コースを3周した後に完全停止 Wait(150);}
基本的には、黒いラインをトレースして、コースから外れた場合元のコースに戻る。
1左光センサー 1由来
2右光センサー 3由来
3左センサー 2由来
4右センサー 2由来
1右タイヤ C由来
2左タイヤ A由来
光センサー:黒いラインをトレースする。 タッチセンサー:もう一方のチームのマシンにあたったら止まる。
うまくタイマーが使えずに、マシンが止まらなかったこと。
センサーが誤作動を起こさないように、できるだけコースの紙に光センサーを近づけた。 光センサーとタッチセンサーをマシンの前につけると不安定だったので、部品をくつけて安定させた。
全体的にもう少し詳しく書いてください。例えば、ライントレースの原理を説明したり、工夫した点です。そうすれば、○になります。 F.I.