[[2018a/Member]]

[[2018a/Member]]

#define set_power_low SetPower(OUT_A,3);SetPower(OUT_B,1);SetPower(OUT_C,3);
#define BLACK 40
#define WHITE 50
#define go_f set_power_low; OnFwd(OUT_AC);
#define turn_left set_power_low; Off(OUT_A); OnFwd(OUT_C);
#define turn_right set_power_low; OnFwd(OUT_A); Off(OUT_C);

task main()
{
    SetSensor(SENSOR_2, SENSOR_LIGHT);
    ClearTimer(0);

    while(FastTimer(0)<=20) {
        if (SENSOR_2 < BLACK){
            turn_left;
        } else if (SENSOR_2 < WHITE){
            go_f;
            ClearTimer(0);
        } else {
           turn_right;
           ClearTimer(0);
         }
    }
    Off(OUT_AC);Wait(100); set_power_low; OnRev(OUT_C); Wait(20);
    go_f; Wait(40);

     SetSensor(SENSOR_2, SENSOR_LIGHT);
    ClearTimer(0);

    while(FastTimer(0)<=25) {
        if (SENSOR_2 < BLACK){
            turn_left;
        } else if (SENSOR_2 < WHITE){
            go_f;
            ClearTimer(0);
        } else {
           OnRev(OUT_C);OnFwd(OUT_A);
           ClearTimer(0);
         }
    }
  Off(OUT_AC);Wait(100);go_f; Wait(30);set_power_low; 
  OnRev(OUT_A);Wait(50);OnFwd(OUT_C);Wait(50);go_f; Wait(40);
  Off(OUT_AC);Wait(100);OnFwd(OUT_AC);Wait(30);
  set_power_low; OnRev(OUT_B);Wait(100);Off(OUT_AC);Wait(500);
  OnRev(OUT_A);Wait(50);OnFwd(OUT_C);Wait(50);

   SetSensor(SENSOR_2, SENSOR_LIGHT);
    ClearTimer(0);
    
     while(FastTimer(0)<=20) {
        if (SENSOR_2 < BLACK){
            turn_left;
        } else if (SENSOR_2 < WHITE){
            go_f;
            ClearTimer(0);
        } else {
           OnRev(OUT_C);OnFwd(OUT_A);
           ClearTimer(0);
         }
    } 
  set_power_low; OnRev(OUT_C); Wait(20);
    go_f; Wait(20);

  SetSensor(SENSOR_2, SENSOR_LIGHT);
    ClearTimer(0);
    
     while(FastTimer(0)<=20) {
        if (SENSOR_2 < BLACK){
            turn_left;
        } else if (SENSOR_2 < WHITE){
            go_f;
            ClearTimer(0);
        } else {
           OnRev(OUT_C);OnFwd(OUT_A);
           ClearTimer(0);
         }
    } 
  Off(OUT_AC);Wait(100);go_f; Wait(30);set_power_low; 
  OnRev(OUT_A);Wait(55);OnFwd(OUT_C);Wait(55);

  SetSensor(SENSOR_2, SENSOR_LIGHT);
    ClearTimer(0);
    
     while(FastTimer(0)<=20) {
        if (SENSOR_2 < BLACK){
            turn_left;
        } else if (SENSOR_2 < WHITE){
            go_f;
            ClearTimer(0);
        } else {
           OnRev(OUT_C);OnFwd(OUT_A);
           ClearTimer(0);
         }
    } 
  Off(OUT_AC);Wait(100);go_f; Wait(30);set_power_low; 
  OnRev(OUT_A);Wait(55);OnFwd(OUT_C);Wait(55);

    SetSensor(SENSOR_2, SENSOR_LIGHT);
    ClearTimer(0);
    
     while(FastTimer(0)<=20) {
        if (SENSOR_2 < BLACK){
            turn_left;
            ClearTimer(0);
        } else if (SENSOR_2 < WHITE){
            go_f;
            ClearTimer(0);
        } else {
           OnRev(OUT_C);OnFwd(OUT_A);
          
         }
    } 
 OnRev(OUT_C);Wait(55);OnFwd(OUT_A);Wait(55);

   }
    SetSensor(SENSOR_2, SENSOR_LIGHT);
    ClearTimer(0);
    
     while(FastTimer(0)<=20) {
        if (SENSOR_2 < BLACK){
            turn_left;
            ClearTimer(0);
        } else if (SENSOR_2 < WHITE){
            go_f;
            ClearTimer(0);
        } else {
           OnRev(OUT_C);OnFwd(OUT_A);
         }
    } 
 Off(OUT_AC);Wait(100); set_power_low; OnRev(OUT_C); Wait(20);
  OnRev(OUT_C);Wait(50);OnFwd(OUT_A);Wait(50);

製作中 途中経過報告
    SetSensor(SENSOR_2, SENSOR_LIGHT);
    ClearTimer(0);
    
     while(FastTimer(0)<=20) {
        if (SENSOR_2 < BLACK){
            turn_left;
            ClearTimer(0);
        } else if (SENSOR_2 < WHITE){
            go_f;
            ClearTimer(0);
        } else {
           OnRev(OUT_C);OnFwd(OUT_A);
         }
    } 
 
Off(OUT_AC);Wait(100); set_power_low; OnRev(OUT_C); Wait(20);
OnRev(OUT_C);Wait(40);OnFwd(OUT_A);Wait(40); go_f; Wait(20);

repeat(2){
   SetSensor(SENSOR_2, SENSOR_LIGHT);
    ClearTimer(0);
    
     while(FastTimer(0)<=20) {
        if (SENSOR_2 < BLACK){
            turn_left;
            ClearTimer(0);
        } else if (SENSOR_2 < WHITE){
            go_f;
            ClearTimer(0);
        } else {
           OnRev(OUT_C);OnFwd(OUT_A);
         }
    } 
 
set_power_low; OnRev(OUT_C); Wait(20);
    go_f; Wait(20);
}
  SetSensor(SENSOR_2, SENSOR_LIGHT);
    ClearTimer(0);
    
     while(FastTimer(0)<=20) {
        if (SENSOR_2 < BLACK){
            turn_left;
            ClearTimer(0);
        } else if (SENSOR_2 < WHITE){
            go_f;
            ClearTimer(0);
        } else {
           OnRev(OUT_C);OnFwd(OUT_A);
         }
    } 
Off(OUT_AC);Wait(100); set_power_low; OnRev(OUT_C); Wait(20);OnRev(OUT_C);Wait(55);OnFwd(OUT_A);Wait(55);
go_f; Wait(30);set_power_low; OnFwd(OUT_B);Wait(100);Off(OUT_AC);Wait(500);
set_power_low; OnRev(OUT_C); Wait(30);OnRev(OUT_A);Wait(30);
OnRev(OUT_C);Wait(100);OnFwd(OUT_A);Wait(100);

SetSensor(SENSOR_2, SENSOR_LIGHT);
    ClearTimer(0);
    
     while(FastTimer(0)<=20) {
        if (SENSOR_2 < BLACK){
            turn_left;
            ClearTimer(0);
        } else if (SENSOR_2 < WHITE){
            go_f;
            ClearTimer(0);
        } else {
           OnRev(OUT_C);OnFwd(OUT_A);
         }
    } 

Off(OUT_AC);Wait(100);set_power_low; 
  OnRev(OUT_A);Wait(45);OnFwd(OUT_C);Wait(45);

SetSensor(SENSOR_2, SENSOR_LIGHT);
    ClearTimer(0);
    
     while(FastTimer(0)<=20) {
        if (SENSOR_2 < BLACK){
            turn_left;
            ClearTimer(0);
        } else if (SENSOR_2 < WHITE){
            go_f;
            ClearTimer(0);
        } else {
           OnRev(OUT_C);OnFwd(OUT_A);
         }
    } 
set_power_low; OnRev(OUT_C); Wait(20);
    go_f; Wait(70);
Off(OUT_AC);Wait(100000);

}


机上では書けても、実際はうまく行かないことが多かった。
すべてのライントレースを一つのプログラムで行った。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS