Pour Marc la mignonne

Dependencies:   BSP_DISCO_F429ZI LCD_DISCO_F429ZI TS_DISCO_F429ZI mbed

Revision:
0:fcce18d01987
diff -r 000000000000 -r fcce18d01987 automatique.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/automatique.cpp	Thu May 31 06:11:25 2018 +0000
@@ -0,0 +1,83 @@
+#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);
+            }
+}
+
+
+    
+    
+    
+    
+    
\ No newline at end of file