TAMA MIYA
#define THRESHOLD 45 #define go OnFwd(OUT_A+OUT_C); //前進 #define L OnFwd(OUT_C);Off(OUT_A); //左 #define R OnFwd(OUT_A);Off(OUT_C); //右 task main() { SetSensor(SENSOR_1, SENSOR_LIGHT); SetSensor(SENSOR_3, SENSOR_LIGHT); int cross = 0; //両方黒になった回数をカウントする変数 // while(cross!=2) //黒黒が2回来たら止める { if(SENSOR_1 < THRESHOLD) {L;} //左側のセンサーが黒になったら左に曲がる if(SENSOR_3 < THRESHOLD) {R;} //右側のセンサーが黒になったら右に曲がる if(SENSOR_1 < THRESHOLD && SENSOR_3 < THRESHOLD) {go;cross++;} //両方黒になったらcross=cross+1 直進 if(SENSOR_1 > THRESHOLD && SENSOR_3 > THRESHOLD) {go;} //両方白になったら直進 } Off(OUT_A+OUT_C); PlaySound(SOUND_UP); cross = 0; // ロータリー開始 while(cross!=1) //黒黒が1回来たら止める { if(SENSOR_1 < THRESHOLD) {L;}//左側のセンサーが黒になったら左に曲がる if(SENSOR_3 < THRESHOLD) {R;}//右側のセンサーが黒になったら右に曲がる if(SENSOR_1 < THRESHOLD && SENSOR_3 < THRESHOLD) {OnFwd(OUT_A);Wait(90);cross++;}//cross=cross+1 if(SENSOR_1 > THRESHOLD && SENSOR_3 > THRESHOLD) {go;} } Off(OUT_A+OUT_C); PlaySound(SOUND_UP); cross = 0; // while(cross!=1) //黒黒が1回来たら止める { if(SENSOR_1 < THRESHOLD) {L;}//左側のセンサーが黒になったら左に曲がる if(SENSOR_3 < THRESHOLD) {R;}//右側のセンサーが黒になったら右に曲がる if(SENSOR_1 < THRESHOLD && SENSOR_3 < THRESHOLD) {OnFwd(OUT_A);Wait(90);cross++;}//cross=cross+1 if(SENSOR_1 > THRESHOLD && SENSOR_3 > THRESHOLD) {go;} } Off(OUT_A+OUT_C); PlaySound(SOUND_UP); cross = 0; // while(cross!=1) //黒黒が1回来たら止める { if(SENSOR_1 < THRESHOLD) {L;}//左側のセンサーが黒になったら左に曲がる if(SENSOR_3 < THRESHOLD) {R;}//右側のセンサーが黒になったら右に曲がる if(SENSOR_1 < THRESHOLD && SENSOR_3 < THRESHOLD) {OnFwd(OUT_A);Wait(90);cross++;}//cross=cross+1 if(SENSOR_1 > THRESHOLD && SENSOR_3 > THRESHOLD) {go;} } Off(OUT_A+OUT_C); PlaySound(SOUND_UP); cross = 0; //ロータリー終了 ClearTimer(0); while(Timer(0) <= 125) { if(SENSOR_1 < THRESHOLD) {L;}//左側のセンサーが黒になったら左に曲がる if(SENSOR_3 < THRESHOLD) {R;}//右側のセンサーが黒になったら右に曲がる if(SENSOR_1 < THRESHOLD && SENSOR_3 < THRESHOLD) {go;} if(SENSOR_1 > THRESHOLD && SENSOR_3 > THRESHOLD) {go;} } OnFwd(OUT_C);Off(OUT_A);Wait(150); Off(OUT_A+OUT_C); PlaySound(SOUND_UP); //交差点〜直角まで cross = 0; // ロータリー開始 while(cross!=1) //黒黒が1回来たら止める { if(SENSOR_1 < THRESHOLD) {L;}//左側のセンサーが黒になったら左に曲がる if(SENSOR_3 < THRESHOLD) {R;}//右側のセンサーが黒になったら右に曲がる if(SENSOR_1 < THRESHOLD && SENSOR_3 < THRESHOLD) {OnFwd(OUT_A);Wait(90);cross++;}//cross=cross+1 if(SENSOR_1 > THRESHOLD && SENSOR_3 > THRESHOLD) {go;} } Off(OUT_A+OUT_C); PlaySound(SOUND_UP); cross = 0; // while(cross!=1) //黒黒が1回来たら止める { if(SENSOR_1 < THRESHOLD) {L;}//左側のセンサーが黒になったら左に曲がる if(SENSOR_3 < THRESHOLD) {R;}//右側のセンサーが黒になったら右に曲がる if(SENSOR_1 < THRESHOLD && SENSOR_3 < THRESHOLD) {OnFwd(OUT_A);Wait(90);cross++;}//cross=cross+1 if(SENSOR_1 > THRESHOLD && SENSOR_3 > THRESHOLD) {go;} } Off(OUT_A+OUT_C); PlaySound(SOUND_UP); cross = 0; // while(cross!=1) //黒黒が1回来たら止める { if(SENSOR_1 < THRESHOLD) {L;}//左側のセンサーが黒になったら左に曲がる if(SENSOR_3 < THRESHOLD) {R;}//右側のセンサーが黒になったら右に曲がる if(SENSOR_1 < THRESHOLD && SENSOR_3 < THRESHOLD) {OnFwd(OUT_A);Wait(90);cross++;}//cross=cross+1 if(SENSOR_1 > THRESHOLD && SENSOR_3 > THRESHOLD) {go;} } Off(OUT_A+OUT_C); PlaySound(SOUND_UP); cross = 0; // ロータリー終了 while(true) { if(SENSOR_1 < THRESHOLD) {Off(OUT_A+OUT_C);} if(SENSOR_3 < THRESHOLD) {R;}//右側のセンサーが黒になったら右に曲がる if(SENSOR_1 < THRESHOLD && SENSOR_3 < THRESHOLD) {Off(OUT_A+OUT_C);} if(SENSOR_1 > THRESHOLD && SENSOR_3 > THRESHOLD) {go;} //ゴール } }
#define THRESHOLD 45 #define go OnFwd(OUT_A+OUT_C); //前進 #define L OnFwd(OUT_C);Off(OUT_A); //左 #define R OnFwd(OUT_A);Off(OUT_C); //右 task main() { SetSensor(SENSOR_1, SENSOR_LIGHT); SetSensor(SENSOR_3, SENSOR_LIGHT); int cross = 0; //両方黒になった回数をカウントする変数 // ロータリー開始 while(cross!=1) //黒黒が1回来たら止める { if(SENSOR_1 < THRESHOLD) {L;} //左側のセンサーが黒になったら左に曲がる if(SENSOR_3 < THRESHOLD) {R;} //右側のセンサーが黒になったら右に曲がる if(SENSOR_1 < THRESHOLD && SENSOR_3 < THRESHOLD) {OnFwd(OUT_A);Wait(90);cross++;} 両方黒になったらcross=cross+1 直進 if(SENSOR_1 > THRESHOLD && SENSOR_3 > THRESHOLD) {go;} 両方白になったら直進 } Off(OUT_A+OUT_C); PlaySound(SOUND_UP); cross = 0; // while(cross!=1) //黒黒が1回来たら止める { if(SENSOR_1 < THRESHOLD) {L;}//左側のセンサーが黒になったら左に曲がる if(SENSOR_3 < THRESHOLD) {R;}//右側のセンサーが黒になったら右に曲がる if(SENSOR_1 < THRESHOLD && SENSOR_3 < THRESHOLD) {OnFwd(OUT_A);Wait(90);cross++;}//cross=cross+1 if(SENSOR_1 > THRESHOLD && SENSOR_3 > THRESHOLD) {go;} } Off(OUT_A+OUT_C); PlaySound(SOUND_UP); cross = 0; // while(cross!=1) //黒黒が1回来たら止める { if(SENSOR_1 < THRESHOLD) {L;}//左側のセンサーが黒になったら左に曲がる if(SENSOR_3 < THRESHOLD) {R;}//右側のセンサーが黒になったら右に曲がる if(SENSOR_1 < THRESHOLD && SENSOR_3 < THRESHOLD) {OnFwd(OUT_A);Wait(90);cross++;}//cross=cross+1 if(SENSOR_1 > THRESHOLD && SENSOR_3 > THRESHOLD) {go;} } Off(OUT_A+OUT_C); PlaySound(SOUND_UP); cross = 0; //ロータリー終了 OnFwd(OUT_A);Off(OUT_C);Wait(90); Off(OUT_A+OUT_C); PlaySound(SOUND_UP); cross = 0; // while(cross!=7) //黒黒が7回来たら止める { if(SENSOR_1 < THRESHOLD) {L;}//左側のセンサーが黒になったら左に曲がる if(SENSOR_3 < THRESHOLD) {R;}//右側のセンサーが黒になったら右に曲がる if(SENSOR_1 < THRESHOLD && SENSOR_3 < THRESHOLD) {go;cross++;}//cross=cross+1 if(SENSOR_1 > THRESHOLD && SENSOR_3 > THRESHOLD) {go;} //近道 } Off(OUT_A+OUT_C); PlaySound(SOUND_UP); cross = 0; //ロータリー開始 while(cross!=1) //黒黒が1回来たら止める { if(SENSOR_1 < THRESHOLD) {L;}//左側のセンサーが黒になったら左に曲がる if(SENSOR_3 < THRESHOLD) {R;}//右側のセンサーが黒になったら右に曲がる if(SENSOR_1 < THRESHOLD && SENSOR_3 < THRESHOLD) {OnFwd(OUT_A);Wait(90);cross++;}//cross=cross+1 if(SENSOR_1 > THRESHOLD && SENSOR_3 > THRESHOLD) {go;} } Off(OUT_A+OUT_C); PlaySound(SOUND_UP); cross = 0; // while(cross!=1)//黒黒が1回来たら止める { if(SENSOR_1 < THRESHOLD) {L;}//左側のセンサーが黒になったら左に曲がる if(SENSOR_3 < THRESHOLD) {R;}//右側のセンサーが黒になったら右に曲がる if(SENSOR_1 < THRESHOLD && SENSOR_3 < THRESHOLD) {OnFwd(OUT_A);Wait(90);cross++;}//cross=cross+1 if(SENSOR_1 > THRESHOLD && SENSOR_3 > THRESHOLD) {go;} } Off(OUT_A+OUT_C); PlaySound(SOUND_UP); cross = 0; // while(cross!=1) //黒黒が1回来たら止める { if(SENSOR_1 < THRESHOLD) {L;}//左側のセンサーが黒になったら左に曲がる if(SENSOR_3 < THRESHOLD) {R;}//右側のセンサーが黒になったら右に曲がる if(SENSOR_1 < THRESHOLD && SENSOR_3 < THRESHOLD) {OnFwd(OUT_A);Wait(90);cross++;}//cross=cross+1 if(SENSOR_1 > THRESHOLD && SENSOR_3 > THRESHOLD) {go;} } Off(OUT_A+OUT_C); PlaySound(SOUND_UP); cross = 0; //ロータリー終了 while(cross!=3) //黒黒が3回来たら止める { if(SENSOR_1 < THRESHOLD) {L;}//左側のセンサーが黒になったら左に曲がる if(SENSOR_3 < THRESHOLD) {R;}//右側のセンサーが黒になったら右に曲がる if(SENSOR_1 < THRESHOLD && SENSOR_3 < THRESHOLD) {go;cross++;}//cross=cross+1 if(SENSOR_1 > THRESHOLD && SENSOR_3 > THRESHOLD) {go;} } Off(OUT_A+OUT_C); PlaySound(SOUND_UP); cross = 0; // while(true) { if(SENSOR_1 < THRESHOLD) {Off(OUT_A+OUT_C);} if(SENSOR_3 < THRESHOLD) {R;}//右側のセンサーが黒になったら右に曲がる if(SENSOR_1 < THRESHOLD && SENSOR_3 < THRESHOLD) {Off(OUT_A+OUT_C);} if(SENSOR_1 > THRESHOLD && SENSOR_3 > THRESHOLD) {go;} //ゴール } }
条件をみたしつつできるだけ簡単なコースにしてみたつもりです。