[[2010b]]

#contents

*課題の内容 [#m26ee999]

-交差点 2箇所以上
-直角コーナー 左右1箇所以上
-近道を点線 2箇所以上
-スタートは横5cmの目印
-線の幅 15−25mm
-2周 ゴールはスタート地点の30cm手前

*メンバー [#x00aca54]
-植田みるく
-仁野陽日

*製作したロボット [#x5ef946e]

*プログラム [#xc2e718b]
**みるくのプログラム [#ef083d2a]
**仁野のプログラム [#k80c27c9]
 #define START OnRev(OUT_A+OUT_C);                // 前進
 #define BACK OnFwd(OUT_A+OUT_C);                 // 後退
 #define STOP Off(OUT_A+OUT_C);                   // 停止
 #define TURN_R OnFwd(OUT_C);OnRev(OUT_A);        // 右折
 #define TURN_L OnFwd(OUT_A);OnRev(OUT_C);        // 左折
 #define L1 39                                    // 閾値を39と定義
 
 task main()
 {
 
    SetSensor(SENSOR_1, SENSOR_LIGHT);                  // センサー1を光センサーと設定
    SetSensor(SENSOR_2, SENSOR_ROTATION);               // センサー2を回転センサーと設定
    SetSensor(SENSOR_3, SENSOR_LIGHT);                  // センサー3を光センサーと設定
 
    int round=0;                                        // roundを定数とする
  
 
    while (round <2)                                    // roundが2以下の時
    {
 
       int cross=0;                                     // crossを定数とする
 
       while (cross < 2)                   // 近道の入口までは
         {if (SENSOR_1 > L1)                            // 1が白のときに
             {if (SENSOR_3 > L1) {START;}               // 3も白のときは直進
              else {TURN_R;}                            // 3が黒のときは右折
                }
          else {                                        // 1が黒のときに
                if (SENSOR_3 > L1) {TURN_L;}            // 3が白のときは左折
                else {STOP;Wait(10);                    // 3が黒のときは一度停止し
                      START;Wait(10);                   // 線を越えるまで前進
                      PlaySound(SOUND_CLICK);           // 1度音を鳴らす
                      cross++;                          // crossに1を足す
                           }
                   }
           }
 
       while (cross < 4)                   //近道を通るときは
         {if (SENSOR_1 > L1)                            // 1が白のときに
             {if (SENSOR_3 > L1) {START;}               // 3も白のときは直進
              else {TURN_R;}                            // 3が黒のときは右折
                }
          else {                                        // 1が黒のときに
                if (SENSOR_3 > L1) {TURN_L;}            // 3が白のときは左折
                else {STOP;Wait(10);                    // 3が黒のときは一度停止し
                      TURN_L;Wait(30);                  // 0.3秒左折し
                      START;Wait(10);                   // 線を越えるまで前進
                      PlaySound(SOUND_DOUBLE_BEEP);     // 2回音を鳴らす
                      cross++;                          // crossに1を足す
                           }
                   }
           }
 
       while (cross < 6)                                //cross < 2 の時と同じ
         {if (SENSOR_1 > L1)
             {if (SENSOR_3 > L1) {START;}
              else {TURN_R;}
                }
          else {if (SENSOR_3 > L1) {TURN_L;}
                else {STOP;Wait(10);
                      START;Wait(10);
                      PlaySound(SOUND_CLICK);
                      cross++;
                          }
                   }
           }
 
       while (cross < 8)                                //cross < 4 の時と同じ
         {if (SENSOR_1 > L1)
             {if (SENSOR_3 > L1) {START;}
              else {TURN_R;}
                }
          else {if (SENSOR_3 > L1) {TURN_L;}
                else {STOP;Wait(10);
                      TURN_L;Wait(30);
                      START;Wait(10);
                      PlaySound(SOUND_DOUBLE_BEEP);
                      cross++;
                           }
                   }
           }
 
       while (cross < 9)                                //cross < 2 の時と同じ
         {if (SENSOR_1 > L1)
             {if (SENSOR_3 > L1) {START;}
              else {TURN_R;}
                }
          else {if (SENSOR_3 > L1) {TURN_L;}
                else {STOP;Wait(10);
                      START;Wait(10);
                      PlaySound(SOUND_CLICK);
                      cross++;
                      round++;                          //roundに1を足す
                           }
                   }
           }
 
     }
 
    START;Wait(80);                                     //スタートラインまで直進し
    STOP;                                               //停止
 
 }
 


*反省・感想 [#j919c3bb]
***みるく [#n9d1078e]
***仁野 [#f8ed645e]

*コメント [#b8b11ec4]

#comment


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS