Pour Marc la mignonne

Dependencies:   BSP_DISCO_F429ZI LCD_DISCO_F429ZI TS_DISCO_F429ZI mbed

automatique.cpp

Committer:
Alex_mln
Date:
2018-05-31
Revision:
0:fcce18d01987

File content as of revision 0:fcce18d01987:

#include "mbed.h"
#include "LCD_DISCO_F429ZI.h"
#include "commandes.h"
#include "TS_DISCO_F429ZI.h"
#include <stdlib.h>
#include "screen.h"
#include "automatique.h"
#include "Capteurs.h"

//typedef int tab[3];
int capteur1,capteur2,capteur3; //gauche, centre, droit
//tab ligne;
float delai=1.0;


LCD_DISCO_F429ZI lcda;
TS_DISCO_F429ZI tsa;
TS_StateTypeDef tsStatea;
uint16_t xa, ya;



void detectiona(){
    xa = tsStatea.X;
    ya = tsStatea.Y;
    int8_t text[7];
    sprintf((char*)text, "%d; %d", xa, ya);
    lcda.DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);   
}


void traitement(){
    if(capteur1==0 && capteur2==1 && capteur3==0){
        avancer();
        wait(delai);
    }
    else if(capteur1==1 && capteur2==0 && capteur3==0){
        tournerDroitVite();
        wait(delai);
    }
    else if(capteur1==1 && capteur2==1 && capteur3==0){
        tourner_droite();
        wait(delai);
    }
    else if(capteur1==0 && capteur2==0 && capteur3==1){
        tournerGaucheVite();
        wait(delai);
    }
    else if(capteur1==0 && capteur2==1 && capteur3==1){
        tourner_gauche();
        wait(delai);
    }
    else if(capteur1==1 && capteur2==1 && capteur3==1){
        arreter();
        wait(delai);
    }
}
        
void go_automatique(){

        uint8_t status = tsa.Init(lcda.GetXSize(), lcda.GetYSize());
        tsa.GetState(&tsStatea); 
        detectiona();

        
        while((xa>225 || xa<12) || (ya<78-20 || ya>288-20)){
            tsa.GetState(&tsStatea); 
            detectiona();
            int* ligne=detectionLigne();
            capteur1=*ligne;
            capteur2=*(ligne+1);
            capteur3=*(ligne+2);
            traitement();
            wait(delai);
            }
}