[[2017a/Member]]
*課題について [#b551f234]
**右折ルート [#w9fb12af]
*ロボットについて [#pa074fe5]
*プログラムについて [#q6d5df60]
**define [#r2bc4ac1]
 #define THRESHOLD 45
#define SPEED_H 40
#define SPEED_L 25
#define OnRL(speedR,speedL) OnFwd(OUT_B,speedR);OnFwd(OUT_C,speedL);
#define go_forward  OnRL(SPEED_H, SPEED_H);
#define turn_left1  OnRL(SPEED_H, -SPEED_H);
#define turn_left0  OnRL(SPEED_L, 0);
#define turn_right0 OnRL(0, SPEED_L);
#define turn_right1 OnRL(-SPEED_L, SPEED_L);
#define STEP 1
#define nMAX 100
#define short_break Off(OUT_BC); Wait(1000);
#define CROSS_TIME 200
#define cross_line RotateMotor(OUT_BC,35,122);
#define turn_right60 RotateMotor(OUT_BC,25,40); RotateMotor(OUT_C,24,170);
#define turn_right45 RotateMotor(OUT_C,25,400); RotateMotor(OUT_B,24,-250);
#define turn_left90 RotateMotor(OUT_B,25,20);
#define turn_left60 RotateMotor(OUT_BC,25,70); RotateMotor(OUT_B,25,240);RotateMotor(OUT_C,25,-170);
#define turn_left80 RotateMotor(OUT_BC,25,70); RotateMotor(OUT_B,25,240);

**subrutine [#b8aefbec]
sub asd()
{
  SetSensorLight(S3);
  int nOnline=0;


    while (nOnline < nMAX) {
      if (SENSOR_3 < THRESHOLD-11) {
        turn_right1;
        nOnline++;
      } else {
        if (SENSOR_3 < THRESHOLD-7) {
          turn_right0;
        } else if (SENSOR_3 < THRESHOLD+7) {
          go_forward;
        } else if (SENSOR_3 < THRESHOLD+15) {
          turn_left0;
        } else {
          turn_left1;
        }
        nOnline=0;
      }
      Wait(STEP);
    }
    PlaySound(SOUND_DOWN);
    turn_right60;
    nOnline=0;
}

sub ksd()
{
  SetSensorLight(S3);
  int nOnline=0;

 
    while (nOnline < nMAX) {
      if (SENSOR_3 < THRESHOLD-11) {
        turn_left1;
        nOnline++;
      } else {
        if (SENSOR_3 < THRESHOLD-7) {
          turn_left0;
        } else if (SENSOR_3 < THRESHOLD+7) {
          go_forward;
        } else if (SENSOR_3 < THRESHOLD+15) {
          turn_right0;
        } else {
          turn_right1;
        }
        nOnline=0;
      }
      Wait(STEP);
    }
    PlaySound(SOUND_DOWN);
    turn_left90;
    nOnline=0;
  
}

sub csd()
{
  SetSensorLight(S3);
  int nOnline=0;

    while (nOnline < nMAX) {
      if (SENSOR_3 < THRESHOLD-11) {
        turn_left1;
        nOnline++;
      } else {
        if (SENSOR_3 < THRESHOLD-7) {
          turn_left0;
        } else if (SENSOR_3 < THRESHOLD+7) {
          go_forward;
        } else if (SENSOR_3 < THRESHOLD+15) {
          turn_right0;
        } else {
          turn_right1;
        }
        nOnline=0;
      }
      Wait(STEP);
    }
    Off(OUT_BC);
    PlaySound(SOUND_DOWN);
    short_break;
    turn_right60;
    nOnline=0;
  
}
sub dsd()
{
  SetSensorLight(S3);
  int nOnline=0;

    while (nOnline < nMAX) {
      if (SENSOR_3 < THRESHOLD-11) {
        turn_left1;
        nOnline++;
      } else {
        if (SENSOR_3 < THRESHOLD-7) {
          turn_left0;
        } else if (SENSOR_3 < THRESHOLD+7) {
          go_forward;
        } else if (SENSOR_3 < THRESHOLD+15) {
          turn_right0;
        } else {
          turn_right1;
        }
        nOnline=0;
      }
      Wait(STEP);
    }
    Off(OUT_BC);
    PlaySound(SOUND_DOWN);
    turn_right1; Wait(nMAX*STEP);
    turn_left80;
    nOnline=0;
  
}
sub msd()
{
  SetSensorLight(S3);
  int nOnline=0;


    while (nOnline < nMAX) {
      if (SENSOR_3 < THRESHOLD-11) {
        turn_right1;
        nOnline++;
      } else {
        if (SENSOR_3 < THRESHOLD-7) {
          turn_right0;
        } else if (SENSOR_3 < THRESHOLD+7) {
          go_forward;
        } else if (SENSOR_3 < THRESHOLD+15) {
          turn_left0;
        } else {
          turn_left1;
        }
        nOnline=0;
      }
      Wait(STEP);
    }
    Off(OUT_BC);
    PlaySound(SOUND_DOWN);
    cross_line;
    nOnline=0;
}
sub gsd()
{
  SetSensorLight(S3);
  int nOnline=0;


    while (nOnline < nMAX) {
      if (SENSOR_3 < THRESHOLD-11) {
        turn_right1;
        nOnline++;
      } else {
        if (SENSOR_3 < THRESHOLD-7) {
          turn_right0;
        } else if (SENSOR_3 < THRESHOLD+7) {
          go_forward;
        } else if (SENSOR_3 < THRESHOLD+15) {
          turn_left0;
        } else {
          turn_left1;
        }
        nOnline=0;
      }
      Wait(STEP);
    }
    PlaySound(SOUND_DOWN);
    turn_right60;
    nOnline=0;
}
sub wsd()
{
  SetSensorLight(S3);
  int nOnline=0;

 
    while (nOnline < nMAX) {
      if (SENSOR_3 < THRESHOLD-11) {
        turn_left1;
        nOnline++;
      } else {
        if (SENSOR_3 < THRESHOLD-7) {
          turn_left0;
        } else if (SENSOR_3 < THRESHOLD+7) {
          go_forward;
        } else if (SENSOR_3 < THRESHOLD+15) {
          turn_right0;
        } else {
          turn_right1;
        }
        nOnline=0;
      }
      Wait(STEP);
    }
    turn_left60;
    nOnline=0;
  
}
sub vsd()
{
  SetSensorLight(S3);
  int nOnline=0;


    while (nOnline < nMAX) {
      if (SENSOR_3 < THRESHOLD-11) {
        turn_right1;
        nOnline++;
      } else {
        if (SENSOR_3 < THRESHOLD-7) {
          turn_right0;
        } else if (SENSOR_3 < THRESHOLD+7) {
          go_forward;
        } else if (SENSOR_3 < THRESHOLD+15) {
          turn_left0;
        } else {
          turn_left1;
        }
        nOnline=0;
      }
      Wait(STEP);
    }
    Off(OUT_BC);
    turn_right45;
    nOnline=0;
}
**メインタスク [#vbef8b70]
 task main ()
 {
  asd();
  ksd();
  csd();
  dsd();
  msd();
  msd();
  gsd();
  wsd();
  vsd();
  gsd();
  ksd();
  csd();
  dsd();
  asd();
  msd();
  msd();
 }

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