[[2017a/Member]]
*課題について [#b551f234]
**右折ルート [#w9fb12af]
*ロボットについて [#pa074fe5]
| &ref(2017a/Member/takato/Mission2/taka.jpg,50%);&br;てすと | &ref(2017a/Member/takato/Mission2/to.jpg,50%);&br;あ | &ref(2017a/Member/takato/Mission2/su.jpg,50%);&br;てすと | &ref(2017a/Member/takato/Mission2/ki.jpg,50%);&br;テスト | &ref(2017a/Member/takato/Mission2/zu.jpg,50%);&br;あ
*プログラムについて [#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);
    }
    Off(OUT_BC);
    PlaySound(SOUND_UP);
    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_UP);
    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_UP);
    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_UP);
    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;
 }

 sub xsd()
 {
  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);
    cross_line;
    nOnline=0;
  
 }
**メインタスク [#vbef8b70]
 task main ()
 {
  asd();
  ksd();
  csd();
  dsd();
  msd();
  msd();
  gsd();
  wsd();
  vsd();
  gsd();
  ksd();
  csd();
  dsd();
  asd();
  msd();
  msd();
 }
*問題点 [#n1f1e00f]
 ロボットのセンサーを近づけようとした結果、センサーをしっかりと固定できず、たまに反応しなくなったり、反応しすぎてしまったりすることがあります。
*最後に [#b11ef7f4]

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