目次 #contents *最初 [#gf3144f3] 作成日:11月18日 作成者:Dezz #define turn_TIME 104 // 曲がる時間(変更 // 可) sub turn_left() // 左に曲がる { SetPower(OUT_A,7); SetPower(OUT_C,7); OnRev(OUT_A);OnFwd(OUT_C); Wait(turn_TIME);Off(OUT_A+OUT_C);Wait(50); } task main() { SetSensor(SENSOR_1,SENSOR_TOUCH); // 端子1タッチセンサ SetSensor(SENSOR_3,SENSOR_TOUCH); // 端子3タッチセンサ while(true) { if ( SENSOR_1 == 1 ) { SetPower(OUT_A,7); SetPower(OUT_C,7); OnRev(OUT_A+OUT_C); // 1が押されると後退 Wait(20); // 後退時間 turn_left(); // 左ターン } if ( SENSOR_3 == 1 ) // 3が押されると { SetPower(OUT_A,0); SetPower(OUT_C,7); OnFwd(OUT_A+OUT_C); // 曲進 Wait (20) ; // 曲進時間 } else //1,3離れると { SetPower(OUT_A,7); SetPower(OUT_C,7); OnFwd(OUT_A+OUT_C);Wait(10) //少し前進 OnFwd(OUT_A);OnRev(OUT_C); //左にターン OnFwd(OUT_A+OUT_C);Wait(10) //少し前進 Wait (30) ; //3が押されるまで } } //繰り返し... } *改良版 [#w7d12253] #define turn_TIME 104 sub turn_left() { OnRev(OUT_A);OnFwd(OUT_C); Wait(turn_TIME);Off(OUT_A+OUT_C);Wait(50); } task main() { SetSensor(SENSOR_1,SENSOR_TOUCH); SetSensor(SENSOR_3,SENSOR_TOUCH); while(true) { if (( SENSOR_1 == 0)&&( SENSOR_3 == 1 )) { OnFwd(OUT_A+OUT_C); } if ( SENSOR_1 == 1 ) { OnRev(OUT_A+OUT_C); Wait (50) ; } if (( SENSOR_3 == 0 ) && ( SENSOR_1 == 0 )) { OnFwd(OUT_A); } } } *改良版2 [#o42fd717] #define turn_TIME 104 sub turn_left() { OnRev(OUT_A);OnFwd(OUT_C); Wait(turn_TIME);Off(OUT_A+OUT_C);Wait(50); } task main() { SetSensor(SENSOR_1,SENSOR_TOUCH); SetSensor(SENSOR_3,SENSOR_TOUCH); while(true) { if (( SENSOR_1 == 0)&&( SENSOR_3 == 1 )) { Off (OUT_A+OUT_C); OnFwd(OUT_C);Wait(10);Off (OUT_A+OUT_C); OnFwd(OUT_C+OUT_A); } if ( SENSOR_1 == 1 ) { Off (OUT_A+OUT_C); OnRev(OUT_A+OUT_C); Wait (30) ;turn_left(); OnFwd(OUT_A);Wait(20);OnFwd(OUT_C+OUT_A); until(SENSOR_3 == 1); } if (( SENSOR_3 == 0 ) && ( SENSOR_1 == 0 )) { Off (OUT_A+OUT_C); OnFwd(OUT_A); } } } [[戻る>2005/B5/dezz01]]