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); } }