ROBOTIC COMPETITION PARIS 2017

Dependencies:   CMPS03 mbed

Fork of _test_suivi_mur by christophe vermaelen

main.cpp

Committer:
syasya
Date:
2017-06-01
Revision:
12:6151eb503170
Parent:
11:cb477f6ec781
Child:
13:4fdd8ad91c69

File content as of revision 12:6151eb503170:


#include "fct.h"


BusOut ledsetat(p12,p13);

int main()
{

    jack.mode(PullUp);
    int etat=0;
    init();
    t3.reset();
    while(1) {
        // printf("etat=%d US1=%.0f US2=%.0f US3=%.0f erreur=%.0f AN1=%.0f AN2=%.0f cmdD=%.0f cmdG=%.0f\n\r",etat,US1,US2,US3,(US2-US1),AN1,AN2,cmdD,cmdG);
        //wait(0.05);
        //printf("etat=%d set=%.1f CAP=%.1f\n\r",etat,bearing_set,bearing);
        //wait(0.1);

        bearing=boussole.readBearing()/10.0;
        ledsetat.write(etat);

        if(bearing<bearing_set+10.0 && bearing>bearing_set-10.0) {
            t3.start();
        } else {
            t3.stop();
        }

        switch(etat) {
            case 0 :
                if(jack.read()==0) {
                    etat=1;
                    t3.reset();
                }
                break;
            case 1 :
                if(jack.read()!=0) etat=0;
                if((AN2>40 && AN2<45) || US3<40) {
                    etat=2;
                    stop();
                }
                if(US2>100 && AN1<40) {
                    etat=3;
                    stop();
                }
                if(t3.read()>8) {
                    etat=4;
                    bearing_set=bearing_set+25.0;
                    t3.reset();
                    t3.stop();
                    stop();
                }
                break;
            case 2 :
                if(jack.read()!=0) etat=0;
                if(US2>100 && US1<40) {
                    etat=3;
                    stop();
                }
                if(AN2>30) {
                    etat=1;
                    t2.start();
                    t2.reset();
                    stop();
                }
                break;
            case 3 :
                if(jack.read()!=0) etat=0;
                if((AN2>40 && AN2<45) || US3<40) {
                    etat=2;
                    stop();
                }
                if(t2.read()>2) {
                    etat=1;
                    stop();
                }
                break;
            case 4 :
                if(jack.read()!=0) etat=0;
                if(bearing>bearing_set) {
                    etat=5;
                    t3.reset();
                    stop();
                }
                break;
            case 5 :
                if(jack.read()!=0) etat=0;
                if((AN2>40 && AN2<42) || US3<40) {
                    etat=2;
                    stop();
                }
                break;

        }
        switch(etat) {
            case 0 :
                stop();
                break;
            case 1 :
                suivi_mur();
                break;
            case 2 :
                rotation_sharp();
                break;
            case 3 :
                contournement();
                break;
            case 4 :
                rotation_sharp();
                break;
            case 5 :
                en_avant();
                break;
        }

    }
}