[[台から落ちないロボ>2004/B5/練習問題/台から落ちないロボ]] #define time_wait1 100 #define time_wait2 200 task main(){ SetSensor(SENSOR_1, SENSOR_TOUCH);/*センサー1(左側)がタッチセンサーであると宣言*/ SetSensor(SENSOR_3, SENSOR_TOUCH);/*センサー3(右側)がタッチセンサーであると宣言*/ OnFwd(OUT_A+OUT_C); while(true){ if(SENSOR_1==1){/*センサー1がONになったとき*/ OnRev(OUT_A+OUT_C); Wait(time_wait1); OnFwd(OUT_A); OnRev(OUT_C); Wait(time_wait2); OnFwd(OUT_C); } if(SENSOR_3==1){/*センサー3がONになったとき*/ OnRev(OUT_A+OUT_C); Wait(time_wait1); OnFwd(OUT_C); OnRev(OUT_A); Wait(time_wait2); OnFwd(OUT_A); } if((SENSOR_1==1)&&(SENSOR_3==1)){/*センサー1とセンサー3の両方がONになったとき*/ OnRev(OUT_A+OUT_C); Wait(time_wait1); OnFwd(OUT_A); OnRev(OUT_C); Wait(time_wait2); OnFwd(OUT_C); } } } ☆タッチセンサーがONになったときに方向転換するものと、OFFになったときに方向転換するものの2種類が考えられます。上のプログラムでは、ONになったときに反応します。机の上など平らな場所でやる場合は、OFFになったときに方向転換するものでもできます(起伏のある場所だとセンサーが誤作動するため)。これだと机の端ぎりぎりまで行くことができます。 &br;☆自分たちの班は,2種類のパターンのロボを試作したが,上のプログラムが採用された.個人的には不採用のロボの方が苦労した. &br;☆自分たちの班は,2種類のパターンのロボを試作したが,上のプログラムが採用された.個人的には不採用のロボの方が苦労した.