2006b/A4/課題2右

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

黒い線上をライントレースし、相手のロボットと接触したら反転し、再びライントレースを続けるプログラムです。

プログラム

 task main()  {

 SetSensor(SENSOR_1,SENSOR_LIGHT); 光センサーです。
 SetSensor(SENSOR_2,SENSOR_TOUCH); タッチセンサーです。
 SetSensor(SENSOR_3,SENSOR_LIGHT); 光センサーです。

 while(true)          繰り返し動作します。
 {
    OnFwd(OUT_A+OUT_C);
  if (SENSOR_3<42) {
   OnFwd(OUT_A); OnRev(OUT_C); Wait(25);  黒い線の左側にはみ出してしまったときは、右を向きます。 
    }
  if(SENSOR_1<42) {
   OnFwd(OUT_C); OnRev(OUT_A); Wait(25); 黒い線の右側にはみ出してしまったときは、左を向きます。
    }
  else(OUT_A+OUT_C);    
 
  if(SENSOR_2==1) {
   OnRev(OUT_A+OUT_C); Wait(30);
   OnFwd(OUT_A); OnRev(OUT_C); Wait(190);
   OnRev(OUT_A+OUT_C); Wait(35); 相手のロボットと接触したら、少し後退して反転し、再びライントレースを続けます。
   }
 }

 }

苦労した点

・うまくカーブを曲がれるようにすること。カーブが急だったのでたびたび飛び出してしまうことがあった。

・反転後もライントレースにうまくつなげるにはどうしたらよいかということ。反転後に、ライン上から飛び出して走り去ってしまうことがあった。

工夫した点

反転後に少し後退させること。これによって、ライントレースがやりやすくなった。

リンク

2006b/A4/課題2右


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-02-08 (木) 13:09:23