[[2018a/Member]]
#define RESET ClearTimer(0)
#define sasetu OnFwd(OUT_C)
#define usetu OnFwd(OUT_A)
#define tyokusin OnFwd(OUT_AC)
#define STOP Off(OUT_AC)
#define kaitenR OnFwd(OUT_A);OnRev(OUT_C)
#define kaitenL OnFwd(OUT_C);OnRev(OUT_A)
#define SOUND PlaySound(SOUND_UP)
sub lineL()
{
    RESET;
    while(FastTimer(0)<50){
    if(SENSOR_1<50){
    sasetu;
    Wait(5);
    STOP;
}
    else{
    usetu;
    RESET;
    Wait(5);
    STOP;
}
}
    SOUND;
}

sub lineR()
{
    RESET;
    while(FastTimer(0)<50){
    if(SENSOR_1<50){
    usetu;
    Wait(5);
    STOP;
}
    else{
    sasetu;
    RESET;
    Wait(5);
    STOP;
}
}
    SOUND;
}

task main()
{
    SetSensor(SENSOR_1,SENSOR_LIGHT);
    tyokusin;
    Wait(100);
    STOP;

    lineL();
    OnRev(OUT_C);
    Wait(30);
    STOP;
    Wait(100);
    tyokusin;
    Wait(30);//Cをこえる
    STOP;
    lineL();

    kaitenL;
    Wait(50);
    OnRev(OUT_B);
    lineL();

    OnRev(OUT_C);
    Wait(40);
    STOP;
    Wait(100);
    OnFwd(OUT_B);
    Wait(50);//缶を掴む
    Off(OUT_B);
    tyokusin;
    Wait(10);
    STOP;
    kaitenL;
    Wait(40);
    STOP;

    lineL();
    OnRev(OUT_C);
    Wait(60);
    STOP;
    tyokusin;
    Wait(20);//Eをこえる

    lineL();
    kaitenL;
    Wait(20);//Fを左折

    lineL();
    Wait(100);
    kaitenL;
    Wait(40);//Gを左折
    STOP;
    tyokusin;
    Wait(30);
    STOP;

    lineR();
    kaitenR;
    Wait(50);
    STOP;

    lineR();
    tyokusin;
    Wait(20);
    STOP;
    kaitenR;
    Wait(30);
    STOP;

    lineL();
    OnRev(OUT_C);
    Wait(30);
    STOP;
    Wait(100);
    usetu;
    Wait(160);//Hを右折
    STOP;

    lineR();
    Wait(100);
    kaitenR;
    Wait(20);//Iを右折
    STOP;

    lineR();
    OnRev(OUT_A);
    Wait(40);
    STOP;
    tyokusin;
    Wait(20);//Lを越える

    lineR();
    OnRev(OUT_A);
    Wait(40);
    STOP;
    tyokusin;
    Wait(20);//Kを越える

    lineR();
    OnRev(OUT_A);
    Wait(30);
    STOP;
    Wait(100);
    kaitenL;
    Wait(70);//90度回転
    STOP;
    OnRev(OUT_B);
    Wait(50);
    Off(OUT_B);//缶を離す
    OnRev(OUT_AC);
    Wait(70);
    STOP;
    kaitenR;
    Wait(70);
    STOP;
    tyokusin;
    Wait(60);
    STOP;
    kaitenR;
    Wait(70);
    STOP;

    lineL();
    Wait(100);
    kaitenL;
    Wait(60);//Bを左折

    lineL();
    OnRev(OUT_C);
    Wait(30);
    STOP;
    tyokusin;
    Wait(150);
    STOP;
}

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