ROBOTIC COMPETITION PARIS 2017

Dependencies:   CMPS03 mbed

Fork of _test_suivi_mur by christophe vermaelen

main.cpp

Committer:
syasya
Date:
2018-01-22
Revision:
13:4fdd8ad91c69
Parent:
12:6151eb503170

File content as of revision 13:4fdd8ad91c69:

#include "fct.h"

int main()
{

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

        switch(etat) {
            case 0 :
                if(jack.read()==1) {
                    etat=1;
                    t3.reset();
                    t3.start();
                    t5.reset();
                    t5.start();
                }
                break;
            case 1 :

                if(jack.read()!=1) etat=0;
                if((AN2>10 && AN2<40) || US3<18) {
                    etat=2;
                    stop();
                }
                if(US2>100 && US1<40) {
                    etat=3;
                    stop();
                }
                /*if(t3.read()>7) {
                    etat=4;
                    stop();
                }*/
                if(capt1.read()==1 && capt2.read()==1 && t5.read()>5) {
                    etat=9;
                    t4.reset();
                    t4.start();
                    stop();
                }
                break;
            case 2 :
                if(jack.read()!=1) etat=0;
                if(US2>100 && US1<40) {
                    etat=3;
                    stop();
                }
                if(AN2>30) {
                    etat=1;
                    t2.start();
                    t2.reset();
                    stop();
                }
                if(capt1.read()==1 && capt2.read()==1 && t5.read()>5) {
                    etat=9;
                    t4.reset();
                    t4.start();
                    stop();
                }
                break;
            case 3 :
                if(jack.read()!=1) etat=0;
                if((AN2>10 && AN2<30) || US3<18) {
                    etat=2;
                    stop();
                }
                if(t2.read()>5) {
                    etat=1;
                    stop();
                }
                if(capt1.read()==1 && capt2.read()==1 && t5.read()>5) {
                    etat=9;
                    t4.reset();
                    t4.start();
                    stop();
                }
                break;
            case 4 :
                etat=5;
                t3.reset();
                stop();

                break;
            case 5 :
                if(US3<40 || US2<50) {
                    etat=6;
                    stop();
                }
                break;
            case 6 :
                t3.start();
                if(capt1.read()==1 && capt2.read()==1 && t5.read()>5) {
                    etat=9;
                    t4.reset();
                    t4.start();
                    stop();
                }
                if(jack.read()!=1) etat=0;
                if((AN2>10 && AN2<30) || US3<18) {
                    etat=7;
                    stop();
                }
                if(US2>100 && US1<40) {
                    etat=8;
                    stop();
                }
                if(t3.read()>58) {
                    etat=9;
                    }
                break;
            case 7 :
                if(jack.read()!=1) etat=0;
                if(US2>100 && US1<40) {
                    etat=8;
                    stop();
                }
                if(AN2>30) {
                    etat=6;
                    t2.start();
                    t2.reset();
                    stop();
                }
                if(capt1.read()==1 && capt2.read()==1 && t5.read()>5) {
                    etat=9;
                    t4.reset();
                    t4.start();
                    stop();
                }
                break;
            case 8 :
                if(jack.read()!=1) etat=0;
                if((AN2>10 && AN2<30) || US3<18) {
                    etat=7;
                    stop();
                }
                if(t2.read()>4) {
                    etat=6;
                    stop();
                }
                if(capt1.read()==1 && capt2.read()==1 && t5.read()>5) {
                    etat=9;
                    t4.reset();
                    t4.start();
                    stop();
                }
                break;
            case 9 :
                if(t4.read()>2) etat=10;
                stop();
                break;
            case 10 :
                if(jack.read()!=1) etat=0;
                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_horaire();
                wait_ms(700);
                break;
            case 5 :
                en_avant();
                break;
            case 6 :
                suivi_mur_dist();
                break;
            case 7 :
                rotation_sharp();
                break;
            case 8 :
                contournement();
                break;
            case 9 :
                ballon();
                smoke.write(1);
                break;
            case 10 :
                stop();
                if(t4.read()>3) {
                    smoke.write(0);
                }
                break;
        }

    }
}