2011a/A3/課題3右

定義して値を入力

int kaiten=0;
int tmax=0;
int T=420;
#define THRESHOLD 40

ライントレースのtaskを設定

task line_trace()
{   
while(true)
 {
if(SENSOR_2<THRESHOLD) {OnFwd(OUT_A); Float(OUT_C);}
else{Float(OUT_A); OnFwd(OUT_C);}
 }
}

作業の開始

1.センサーをセットする

task main()
{
SetSensor(SENSOR_3,SENSOR_LIGHT);
SetSensor(SENSOR_2,SENSOR_LIGHT);
SetSensor(SENSOR_1,SENSOR_TOUCH);
   

2.テニスボールが三個あるので作業を三回やったら終えるようにする

int i;
int i_min=1,i_max=3;
for(i=i_min; i<=i_max; i++)
{

3.作業開始

OnFwd(OUT_A+OUT_C);
start line_trace; 

4.タッチセンサーが反応したら、停止しアームを閉じる

 until(SENSOR_1 == 1);
 {
 stop line_trace; 
 Off(OUT_A+OUT_C); 
 OnRev(OUT_B); 
 Wait(200); 
 Off(OUT_B);
 

5.一番明るい方向を探知し、どれだけの時間逆回転するか決める

  ClearTimer(0);      
  while(FastTimer(0)<T)
  {
  OnFwd(OUT_A); 
  OnRev(OUT_C);
     
  if(SENSOR_3>kaiten)  //運搬する
  {kaiten=SENSOR_3; tmax=FastTimer(0);}
  }  

6.5で決めた時間逆回転する

   OnRev(OUT_A);
   OnFwd(OUT_C);
   Wait(440-tmax);
   OnFwd(OUT_A);
   

7.ランタンにある程度近づくまで接近する

    until(SENSOR_3>60);   
    {  
    OnFwd(OUT_A+OUT_C);
    Wait(30);
    Off(OUT_A+OUT_C); 

8.ランタン付近でテニスボールを離し、回転しもとの場所へ戻る

     OnFwd(OUT_B);
     Wait(100);
     Off(OUT_B);
     OnRev(OUT_A+OUT_C);
     Wait(100);
     OnFwd(OUT_C);
     Wait(200);
     OnFwd(OUT_A);

9.作業終了

    }    
   }
  }
 }

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-07-08 (金) 16:46:44