[[2005/B7]]

int max           //saigoni hairuno ha siro no atai

int middle        //saigoni hairuno ha midori no atai

int minimum    //saigoni hairuno ha kuro no atai

int i_max        //nannkome ni siro ga haitta ka

int i_middle     //nannkome ni midori ga haitta ka

int i_minimum  //nannkome ni kuro ga haitta ka





max = sensor1;          //hitotume

middle = sensor1;

minimum = sensor1;

i_max = 1

i_middle =1

i_minimum =1




if(sensor1 > max)                       

{

max = sensor1;

i_max = 2;

middle = sensor1;

i_middle = 2;

}

else

{

minimum = sensor1;

i_minimum = 2;

middle = sensor1;

i_middle = 2;

}





if(sensor1 > max)

{

max = sensor1;

i_max = 3;

}

else if(sensor1 < minimum)

{

minimum = sensor1;

i_minimum = 3;

}

else

{

middle = sensor1

i_middle = 3


このプログラムは3つの箱の色を比較、識別してそこからルートの決定につなげるプログラムの一部

このプログラムを使わず、数値域をきめ、判別するプログラムの方が簡単でそれになるかも...。

プログラムとしては上のプログラムの方が面白いと思う

ロボコンのプログラム

手前にある箱と奥の箱とではプログラムの最初の後進の時間が違うことに注意!

#define zennsin OnFwd(OUT_A + OUT_C);//MIGI GA 'A'

#define kousin OnRev(OUT_A+ OUT_C);

#define sasetu OnFwd(OUT_A); OnRev(OUT_C);

#define usetu OnFwd(OUT_C); OnRev(OUT_A);

#define torikomi OnFwd(OUT_B);

#define hakidasi OnRev(OUT_B);

#define teisi Off(OUT_A + OUT_C);



#define THRESHOLD 42



sub trace(SENSOR_3 < THRESHOLD)

{

    while();

    if(SENSOR_1 < THRESHOLD)

    {

     usetu;

    }

    else if(SENSOR_3 < THRESHOLD)

    {

     sasetu;

    }

    else 

    {

     zennsin;

    }

}

    

task main()

{

 SetSensor(SENSOR_1, SENSOR_LIGHT);//migi

 SetSensor(SENSOR_2, SENSOR_LIGHT);//hidari

 SetSensor(SENSOR_3, SENSOR_LIGHT);//haguremono

 

 kousin; Wait();

 teisi;

 torikomi; Wait();

 teisi;

 zennsin;Wait();

 usetu;

 if(SENSOR_2 < THRESHOLD)

 {

  trace();

 }

 if(SENSOR_3 < THRESHOLD)

 {

 usetu;

 }

 if(SENSOR_2 < THRESHOLD)

 {

  trace();

 }


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