[[台から落ちないロボ>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種類のパターンのロボを試作したが,上のプログラムが採用された.個人的には不採用のロボの方が苦労した.

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS