[[2006b/A3]]
*課題2 [#yc400578]
黒い線に沿って動くロボットを作成する。そして一つの周回コースを2台のロボットが逆向きに走行すること想定し、以下の2種類のプログラムを作成する。
+	相手のロボットに接触したら反転して進む。
+	相手のロボットに接触したらそのロボットを右側から避けて通り、再びライン上に戻って進む。

*ロボットの作成に関して [#la44d945]
今回のロボットは光センサーとタッチセンサーを組み込むロボットです。最初は2つの光センサーで線上を走らせようとしたが線が細いためうまくとらえることができずなかったため、線を光センサーで挟み込んで進むようセンサーを設置しました。タッチセンサーは教科書に載っているシングルバンパーを搭載させました。比較的簡単にできました。
*苦労した点 [#fa7068d4]
プログラムができ、いざ走らせてみるとあまり線の上を走ってくれなかった。何度もコースをはみ出してしまい悩む一方だった。始めはカーブを曲がるとき片方のタイヤを止めもう片方のタイヤだけまわしていたが、後に両方をまわすようにして急カーブを乗りきることができた。
*プログラム [#m85b9616]
まず、相手に接触したときに反転して進むプログラムです。
 task main()
 {
     SetSensor(SENSOR_1,SENSOR_LIGHT);
     SetSensor(SENSOR_3,SENSOR_LIGHT);
     SetSensor(SENSOR_2,SENSOR_TOUCH);
                
      while(true)
      {
         OnFwd(OUT_A+OUT_C);
         if (SENSOR_1<40)
         {
            OnFwd(OUT_C);
            OnRev(OUT_A);
          }
         if (SENSOR_3<40)
         {
            OnFwd(OUT_A);
            OnRev(OUT_C);
          }
         if (SENSOR_2==1)
         {
            OnRev(OUT_A+OUT_C); Wait(50);
            OnFwd(OUT_A); Wait(200);
            if (SENSOR_3<40)
            {    
               OnFwd(OUT_C);
             }
                              
          }
       }
 }
 

次に相手のロボットを右から避けて通るためのプログラムです。
 task main()
 {
      SetSensor(SENSOR_1,SENSOR_LIGHT);
      SetSensor(SENSOR_3,SENSOR_LIGHT);
      SetSensor(SENSOR_2,SENSOR_TOUCH);
                
    while(true)
    {
       OnFwd(OUT_A+OUT_C);
       if (SENSOR_1<40)
       {
          OnFwd(OUT_C);
          OnRev(OUT_A);
        }
       if (SENSOR_3<40)
       {
          OnFwd(OUT_A);
          OnRev(OUT_C);
        }
        if (SENSOR_2==1)
        {
          OnRev(OUT_A+OUT_C);Wait(50);
          OnFwd(OUT_A); Wait(77);
          OnFwd(OUT_C); Wait(90);
          OnRev(OUT_A); Wait(77);
          OnFwd(OUT_A); Wait(100);
          OnRev(OUT_A); Wait(77);
          OnFwd(OUT_A); Wait(100);
          OnRev(OUT_C); Wait(87);
          if (SENSOR_1<40)
          {
             OnFwd(OUT_C);
          }
         }
    }
 }


このプログラムやホームページに関するコメントをお願いします。
#comment


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