壁に沿って動くプログラム

int t;
int w;

sub yuu ()               //yuuのプログラム
{
   OnFwd(OUT_A+OUT_C);                 //前進  
   until((SENSOR_1==1)&&(SENSOR_3==1));//タッチセンサー1もしくはタッチセンサー1,3両方が反応するまで       
   OnRev(OUT_A+OUT_C);                 //後進
   Wait(w);
   OnFwd(OUT_A);
   OnRev(OUT_C);              //右に回転 
   Wait(105);
   Off (OUT_A+OUT_C);           //停止
}

sub sho ()                              //shoのプログラム
{
  ClearTimer (0);

  while (Timer (0) < t)
  {

    while (SENSOR_1==1 && SENSOR_3==0)
    {
      Off (OUT_A+OUT_C);               //停止
      OnFwd (OUT_A+OUT_C);       //前進
    }

    while (SENSOR_1==0 && SENSOR_3==0)
    {
      Off (OUT_A+OUT_C);        //停止
      OnFwd (OUT_C);
      OnRev (OUT_A);          //左に回転
      Wait (10);
      OnFwd (OUT_A+OUT_C);       //前進
      Wait (10);
     } 

    if (SENSOR_1==1 && SENSOR_3==1)
    {
      OnRev (OUT_A+OUT_C);       //後進
      Wait (0);
      OnFwd (OUT_A); 
      OnRev (OUT_C);          //右に回転
      Wait (130);
      Off (OUT_A+OUT_C);        //停止
    }
  } 

  Off (OUT_A+OUT_C);          //停止
}

task main ()
{
  SetSensor (SENSOR_1, SENSOR_TOUCH); //left //タッチセンサー左
  SetSensor (SENSOR_3, SENSOR_TOUCH); //right //タッチセンサー右
  w=5;
  yuu();
  w=50;
  yuu();
  OnFwd (OUT_A+OUT_C);     //前進          
  Wait (330);       
  OnFwd (OUT_C);
  OnRev (OUT_A);        //左に回転
  Wait (90);
  OnFwd (OUT_A+OUT_C);     //前進
  until (SENSOR_1==1 && SENSOR_3==1); //タッチセンサー1もしくはタッチセンサー1,3両方が反応するまで       
  t=110;
  sho();
  w=5;
  yuu();
  yuu();
  OnFwd (OUT_A+OUT_C);     //前進
  Wait(340);
  t=1000;
  sho();
  Off (OUT_A+OUT_C);      //停止

}

写真

img_0017_Medium.jpg

特徴  タッチセンサーを2つ使用。タッチセンサーの反応をよくするために左側のタッチセンサーにブロックをつける。

感想  二人のプログラムをあわせてプログラミングをした。壁にそって離れることなく走れた。かなり完成度は高いと思う。  二人のプログラムをあわせてプログラミングをした。壁にそって離れることなく走れた。かなり完成度は高いと思う。



トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-02-10 (金) 15:01:28