2011a

課題

課題2で作ったコース上にランダムに3個のテニスボールをおいて、ボールを中央のランタンに向かって運ぶまたは転がすロボットを作る。

条件

メンバー

ロボット

プログラム

大丈V

int lmax ;                       //光の最大値
int tmax ;                       //光が最大の時間
task main()
{
   SetSensor(SENSOR_1,SENSOR_LIGHT);
   SetSensor(SENSOR_2,SENSOR_LIGHT);
   SetSensor(SENSOR_3,SENSOR_TOUCH);

   repeat(3){                     //以下を3回繰り返す  
       while(SENSOR_3 == 0){
           if(SENSOR_1 < 40){             //黒線を踏んだら
               OnFwd(OUT_A+OUT_B);Off(OUT_C);       //コンベアを回しながらライントレース
            }else{
             Off(OUT_A);OnFwd(OUT_B);OnFwd(OUT_C);
                  }
         }

     if(SENSOR_3 == 1){                //タッチセンサーが反応したら
           Off(OUT_A+OUT_B+OUT_C);
           lmax = 0;                  //最大値をリセット
           ClearTimer(0);               //タイマーをリセット
           while(FastTimer(0) < 340){         //340は1回転の時間
               OnFwd(OUT_A);OnRev(OUT_C);       //1周して
               if(SENSOR_2 > lmax){          //光の最大値を探す
                  SENSOR_2 == lmax;
                  tmax = FastTimer(0);         //光が最大だった時間を記憶
                   }
              }
       OnRev(OUT_A);                 //最大のところまで回転
       OnFwd(OUT_C);
       Wait((340-tmax));
       Off(OUT_A+OUT_C);

       OnRev(OUT_B);Wait(150);                        //ボールを前に出す
       OnRev(OUT_A);                 //ボールの横につき
       OnFwd(OUT_C);
       Wait(60);
       OnFwd(OUT_A+OUT_C);Wait(50);
       OnFwd(OUT_A);OnRev(OUT_C);Wait(150);      //打つ!
       OnFwd(OUT_A+OUT_C);until(SENSOR_1 < 40);       //ライントレースに戻る
   }
}

添付ファイル: file110707_1823~03.jpg 138件 [詳細] file110707_1823~02.jpg 145件 [詳細] file110707_1823~01.jpg 142件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-08-05 (金) 20:06:24