[[2004/C6/ボロット]]


-パックを持ち上げるロボット

#define migi OUT_A
#define hidari OUT_C
#define ageru OUT_B
#define midori 39

task main()
 {SetSensor(SENSOR_2,SENSOR_TOUCH);      //壁に当たると反応するタッチセンサー
  SetSensor(SENSOR_1,SENSOR_LIGHT);   //ライントレース用の光センサー
  OnRev(migi+hidari); Wait(300);         //緑の線までバック
 OnRev(migi+hidari);
  until(SENSOR_1 == midori);
  Off(migi+hidari);
  Off(migi); OnFwd(hidari); Wait(250);   //左を向く
  Off(migi+hidari); Wait(100);
  ClearTimer(0);
   while(Timer(0) <= 35)         //3.5秒間緑の線をトレース
   {if(SENSOR_1 < midori)
    {OnFwd(hidari); Off(migi);}
    else{Off(hidari); OnFwd(migi);}}
 OnFwd(migi); OnRev(hidari); Wait(110); //右を向く
  Off(migi+hidari); Wait(100);
  OnRev(migi+hidari);                    //少しバック
   until(SENSOR_1 == midori);
  OnRev(migi+hidari); Wait(150);
  Off(migi+hidari); Wait(100);
  repeat(25){                            //以下の動作を25回繰り返す
  SetSensor(SENSOR_3,SENSOR_LIGHT);   //パックに反応する光センサー
   if(SENSOR_3 < 36)          //ロボの前にパックがきたら
   {PlaySound(SOUND_UP);
     OnFwd(ageru);OnFwd(migi+hidari);  //壁に当たるまで前進
      until(SENSOR_2 == 1);
     Off(migi+hidari);Wait(100);
     OnFor(ageru,1500);         //15秒間パックを持ち上げる動作をする
     OnRev(migi+hidari); Wait(200);   //少しバック
     Off(migi+hidari);}
  }
}


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