[[2006b/MemberOnly/進行状況A]]

*課題2:黒い線に沿って動くロボット [#k8214efd]

#contents

*勉強ノート [#a36a7391]
**プログラム [#l2937687]
***相手のロボットに接触したら反転して進むプログラム [#i8822cdb]
 #define THRESHOLD 40                 //光の閾値を設定
 task main()
 {
     SetSensor(SENSOR_1,SENSOR_LIGHT);//光センサーのセット
     SetSensor(SENSOR_2,SENSOR_TOUCH);//タッチセンサーのセット
     SetSensor(SENSOR_3,SENSOR_LIGHT);//光センサーのセット
     while(true)
   {
    if(SENSOR_1<THRESHOLD)
    {OnFwd(OUT_C);
     Off(OUT_A);}
    if(SENSOR_3<THRESHOLD)
    {OnFwd(OUT_A);
     Off(OUT_C);}                     //黒い線に沿って運動
    if(SENSOR_2==1)                   //タッチセンサーに触                    れた場合
    {OnRev(OUT_A+OUT_C);              //後退
     Wait(80);
     OnFwd(OUT_C);
     OnRev(OUT_A);
     Wait(50);}                       //回転させる
     until(SENSOR_1 <= THRESHOLD);           //黒い線に戻る
  }
 }
***相手のロボットに接触したら右側に曲がって、もう一度黒い線に戻って進むプログラム [#a0334c53]
 #define THRESHOLD 40                 //光の閾値を設定
 task main()
 {
     SetSensor(SENSOR_1,SENSOR_LIGHT);//光センサーのセット
     SetSensor(SENSOR_2,SENSOR_TOUCH);//タッチセンサーのセット
     SetSensor(SENSOR_3,SENSOR_LIGHT);//光センサーのセット
     while(true)
   {
    if(SENSOR_1<THRESHOLD)
    {OnFwd(OUT_C);
     Off(OUT_A);}
    if(SENSOR_3<THRESHOLD)
    {OnFwd(OUT_A);
     Off(OUT_C);}                     //黒い線に沿って運動
    if(SENSOR_2==1)                   //タッチセンサーに触                    れた場合
    {OnRev(OUT_A+OUT_C);              //後退
     Wait(80);
     OnFwd(OUT_A);
     OnRev(OUT_C);
     Wait(90);                        //右に曲がる
     OnFwd(OUT_A+OUT_C);
     Wait(100);                      //前進
     
     OnRev(OUT_A);
     Wait(90);                        //左に曲がる
     OnFwd(OUT_A);
     Wait(100);                      //前進
     OnRev(OUT_A);
     Wait(90);                      //左に曲がる
     OnFwd(OUT_A);                  
     Wait(30);
     OnRev(OUT_C);
     Wait(30);                      //回転させる
     until(SENSOR_1 < 40);          //黒い線に戻る  
      }
   }
 }
~
~
~
#ref(2006b/A5/課題2右/200611071835000.jpg,around,100%);
~
~まず最初に作ったキャタピラ型。

~とりあえず動きに正確性を欠いたので、変更された。
~
~
~
~
~
~
~
#ref(2006b/A5/課題2右/200612221433000.jpg,around,100%);
~
~光センサーでセンサーを二つ使っていたので、センサーを重ねることでひとつになってどうにか使えるようになったタッチセンサー
~
~
~
~
~
~
#ref(2006b/A5/課題2右/200612221439000.jpg,around,100%);
~
~コース。。。緩やかにデザインしてもらったが、一箇所まがりにくかった。。。けど、なかなかいいデザインでした。。。
~
~
~
~
~
~
~
~

*工夫した点[#od9f64a]~
 バンパーが高さが違うので、最初はうまくあたらなく反応しなかったが、高さを変更し当たるようにしたのでうまくいくようになった。~
 あと、すれ違うときにぶつからないように、コースから外れすぎなうように、調整するのに少し工夫した。工夫というのは、ぶつからないように外れすぎないように、一台分よけるのではなく、お互いに一台半分よけるようにして、外れすぎないようにした。~
 タッチセンサーが2つ、光センサーが2つの4つだったので、最初どうしようか迷った。光センサー1つでライントレイスをしようかと思ったが、精度を欠いていて線を外れたり、左右にがたがた揺れて、スピードも出なかったので却下した。タッチセンサーを1つのやつを作ろうかと思ったが、センサーは重ねて使えることを聞き、悩み解決。~
  

*コメントをどうぞ! [#la6fa8b5]
-工夫した点をもう少し具体的に書いて、読みごたえのあるものにしてほしいです。 -- [[ゆき(TA)]] &new{2007-02-13 (火) 17:10:13};
-マシンの説明や、苦労・工夫した点についてもう少し説明が欲しかったです。 -- [[まいける(TA)]] &new{2007-02-17 (土) 13:58:31};

#comment

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