2006b/A6/課題2左

相手のロボットに接触したら反転して進む

プログラム

#define light 44  // 閾値を定義

task main(){
  SetSensor(SENSOR_1,SENSOR_LIGHT);  //センサー1を光センサーに定義
  SetSensor(SENSOR_2,SENSOR_TOUCH);  //センサー2をタッチセンサーに定義
  SetSensor(SENSOR_3,SENSOR_LIGHT);  //センサー3を光センサーに定義
  
  while(true) {
       if(SENSOR_1 < light){   // 左側の光センサーが黒を感知したら左へ
            OnFwd(OUT_C);
            OnRev(OUT_A);
       }

       else if(SENSOR_3 <  light){   // 右側の光センサーが黒を感知したら右へ
            OnFwd(OUT_A);
            OnRev(OUT_C);
       }

       else if(SENSOR_2 ==1){   // 衝突したら若干の後退の後、右の光センサーが黒を感知するまで右回転
            OnRev(OUT_A+OUT_C) ;
            Wait(30);
            while(SENSOR_3 > light){
                  OnFwd(OUT_A);
            }
       }

       else{   // 上記以外の時、前進
       OnFwd(OUT_A+OUT_C);
       }
   }
}

苦労した点

 特になし

工夫した点

 ぶつからないように若干バックする。
 上手く黒線をまたぐまでの定義づけがスムーズな動きとなるように出来た。

感想

 はじめから考えがまとまっていたので、すぐに作ることが出来た。
 実際に考えていた通りのものが出来たと思うので満足。

コメント

何か意見がありましたらこちらにどうぞ



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-12-15 (金) 13:08:10 (4634d)