marc le dep
Dependencies: BSP_DISCO_F429ZI LCD_DISCO_F429ZI TS_DISCO_F429ZI mbed
Diff: automatique.cpp
- Revision:
- 0:4910cdb3d377
- Child:
- 1:59fe933886bd
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/automatique.cpp Thu Mar 29 06:19:39 2018 +0000 @@ -0,0 +1,115 @@ +#include "automatique.h" +#include "capteur.h" + +LCD_DISCO_F429ZI lcd3; +TS_DISCO_F429ZI ts3; +TS_StateTypeDef tsState3; +uint16_t xa, ya; + +DigitalOut led1(PG_7); //lente gauche +DigitalOut led2(PB_4); //rapide + +DigitalOut led3(PA_8); //lente droite +DigitalOut led4(PA_14); //rapide + +DigitalOut led5(PC_12); //arrêt + + +int vitesse; + +// Pour l'instant avec 1 capteur : ligne = avant ; blanc = arret + +void detectiona(){ + xa = tsState3.X; + ya = tsState3.Y; + uint8_t text[7]; + sprintf((char*)text, "%d; %d", xa, ya); + lcd3.DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); } + +void freqled(int indice){ + if (indice==1){ + led1=!led1; + } + else if (indice==2){ + led2=!led2; + } + else if (indice==3){ + led3=!led3; + } + else if (indice==4){ + led4=!led4; + } +} + + + +void action(bool c1, bool c2, bool c3){ + /* led5=1; + led1=0; + led2=0; + led3=0; + led4=0;*/ + if(c1==false && c2==true && c3==false){ + led5=0; + //clignotement normal des deux LEDs lentes + led1=1; + led3=1; + // freqled(1); + // freqled(3); + wait(1); + led1=0; + led3=0; + // freqled(1); + // freqled(3); + wait(1);//(10/vitesse)-(vitesse/1000)); + }// led1=0; + // led3=0; + else{ + led1=1; + led2=1; + led3=1; + led4=1; + led5=1; }} + + + + + + + + + + +int go_automatique(int vit){ + vitesse=vit; + uint8_t status3 = ts3.Init(lcd3.GetXSize(), lcd3.GetYSize()); + ts3.GetState(&tsState3); + detectiona(); + + + + + while((xa>225 || xa<12) || (ya<78-20 || ya>288-20)){ + bool capt1=false;//code(1); + bool capt2=code(2); + bool capt3=false;//code(3); + + action(capt1,capt2,capt3); + + int value=afficher(); + showIntegerScreen((int)(value),1,0,RIGHT_MODE); + showIntegerScreen(0,0,0,RIGHT_MODE); + wait(0.2); + + + + + + + + + ts3.GetState(&tsState3); + detectiona(); + + } + return(1);} \ No newline at end of file