[[2006b/A4/課題2右]]

*課題2 相手のロボットに接触したら反転して進むロボット [#gf59d20a]
黒い線上をライントレースし、相手のロボットと接触したら反転し、再びライントレースを続けるプログラムです。
*プログラム [#ne6c980b]

 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); Rev(OUT_C); Wait(25);   
    OnFwd(OUT_A); OnRev(OUT_C); Wait(25);  黒い線の左側にはみ出してしまったときは、右を向きます。 
     }
   if(SENSOR_1<42) {
    OnFwd(OUT_C); Rev(OUT_A); Wait(25); 
    OnFwd(OUT_C); OnRev(OUT_A); Wait(25); 黒い線の右側にはみ出してしまったときは、左を向きます。
     }
   else(OUT_A+OUT_C);    ラインに乗ったら回転して、乗っていなければ直進します。
   else(OUT_A+OUT_C);    
  
   if(SENSOR_2==1) {
    Rev(OUT_A+OUT_C); Wait(30);
    OnFwd(OUT_A); Rev(OUT_C); Wait(190);
    Rev(OUT_A+OUT_C); Wait(35); 相手のロボットと接触したら、少し後退して反転し、再びライントレースを続けます。
    OnRev(OUT_A+OUT_C); Wait(30);
    OnFwd(OUT_A); OnRev(OUT_C); Wait(190);
    OnRev(OUT_A+OUT_C); Wait(35); 相手のロボットと接触したら、少し後退して反転し、再びライントレースを続けます。
    }
  }
 }
*苦労した点 [#w58b0d16]
・うまくカーブを曲がれるようにすること。カーブが急だったのでたびたび飛び出してしまうことがあった。

・反転後もライントレースにうまくつなげるにはどうしたらよいかということ。反転後に、ライン上から飛び出して走り去ってしまうことがあった。
*工夫した点 [#fa90de29]
反転後に少し後退させることで、ライントレースがやりやすくなった点。
反転後に少し後退させること。これによって、ライントレースがやりやすくなった。
**リンク [#lccd4706]
[[2006b/A4/課題2右]]

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