Pour Marc la mignonne

Dependencies:   BSP_DISCO_F429ZI LCD_DISCO_F429ZI TS_DISCO_F429ZI mbed

Revision:
0:fcce18d01987
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Capteurs.cpp	Thu May 31 06:11:25 2018 +0000
@@ -0,0 +1,212 @@
+#include "fonctions.h"
+#include "Touchescreen.h"
+
+typedef int liste [6];
+liste blanc;
+liste noir;
+liste seuil;
+liste mesure;
+
+
+//Premiere rangée de capteur
+//AnalogIn capt11(PF_7);
+AnalogIn capt12(PF_8);
+AnalogIn capt11(PC_3);
+//AnalogIn capt13(PF_9);
+
+//Deuxieme rangée de capteur
+AnalogIn capt21(PC_4);
+AnalogIn capt22(PC_1);
+//AnalogIn capt23(PC_2);
+
+//Troisième rangée de capteur
+
+AnalogIn capt31(PA_7);
+AnalogIn capt32(PC_5);
+
+
+LCD_DISCO_F429ZI lcd2;
+TS_DISCO_F429ZI ts2;
+TS_StateTypeDef tsState2;
+    uint16_t xc, yc;
+
+
+
+
+void interface_noir(){
+    lcd2.Clear(LCD_COLOR_WHITE);
+    
+    lcd2.SetTextColor(LCD_COLOR_BLUE);
+    lcd2.FillRect(40,25,150,40);
+    lcd2.SetBackColor(LCD_COLOR_BLUE);
+    lcd2.SetTextColor(LCD_COLOR_WHITE);
+    lcd2.DisplayStringAt(0, LINE(2), (uint8_t *)"Calibrage", CENTER_MODE);
+    
+    lcd2.SetBackColor(LCD_COLOR_WHITE);
+    lcd2.SetTextColor(LCD_COLOR_BLACK);
+    lcd2.DisplayStringAt(0, LINE(7), (uint8_t *)"Mesure du noir", CENTER_MODE);
+    
+    lcd2.SetTextColor(LCD_COLOR_BLUE);
+    lcd2.FillCircle(120,235,50);
+    lcd2.SetBackColor(LCD_COLOR_BLUE);
+    lcd2.SetTextColor(LCD_COLOR_BLACK);
+    lcd2.DisplayStringAt(0, 230, (uint8_t *)" OK", CENTER_MODE);
+    }
+
+
+
+void interface_blanc(){
+    lcd2.Clear(LCD_COLOR_WHITE);
+    
+    lcd2.SetTextColor(LCD_COLOR_BLUE);
+    lcd2.FillRect(40,25,150,40);
+    lcd2.SetBackColor(LCD_COLOR_BLUE);
+    lcd2.SetTextColor(LCD_COLOR_WHITE);
+    lcd2.DisplayStringAt(0, LINE(2), (uint8_t *)"Calibrage", CENTER_MODE);
+    
+    lcd2.SetBackColor(LCD_COLOR_WHITE);
+    lcd2.SetTextColor(LCD_COLOR_BLACK);
+    lcd2.DisplayStringAt(0, LINE(7), (uint8_t *)"Mesure du blanc", CENTER_MODE);
+    
+    lcd2.SetTextColor(LCD_COLOR_BLUE);
+    lcd2.FillCircle(120,235,50);
+    lcd2.SetBackColor(LCD_COLOR_BLUE);
+    lcd2.SetTextColor(LCD_COLOR_BLACK);
+    lcd2.DisplayStringAt(0, 230, (uint8_t *)" OK", CENTER_MODE);
+    }
+    
+    
+    
+void detectionc(){
+     xc = tsState2.X;
+        yc = tsState2.Y;
+        uint8_t text[7];
+        sprintf((char*)text, "%d; %d", xc, yc);
+        lcd2.DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);   }
+            
+
+int noir11,noir12,noir13,noir21,noir22,noir23,noir31,noir32,noir33;
+int blanc11,blanc12,blanc13,blanc21,blanc22,blanc23,blanc31,blanc32,blanc33;
+
+    
+int * pointeur = (int*)malloc(3*sizeof(int));    
+    
+void calibrage(){
+    uint8_t status2= ts2.Init(lcd2.GetXSize(), lcd2.GetYSize());
+    ts2.GetState(&tsState2); 
+    
+    
+    interface_noir();                                      //Mesure du noir
+    
+    while((xc<72 || xc>172) || (yc>295 || yc<195)){       //Attente de la position
+        ts2.GetState(&tsState2); 
+        detectionc();
+        wait(0.05);}
+    
+    noir[0]=capt11.read()*1000;
+    noir[1]=capt11.read()*1000;
+   // noir[2]=capt13.read()*1000;
+    
+    noir[2]=capt21.read()*1000;
+    noir[3]=capt22.read()*1000;
+  //  noir[5]=capt23.read()*1000;
+    
+    noir[4]=capt31.read()*1000;
+    noir[5]=capt32.read()*1000;
+  ///  noir[8]=capt33.read()*1000;
+    
+    wait(0.1);
+    
+    lcd2.Clear(LCD_COLOR_WHITE);                 //Passage au prochain
+    lcd2.FillRect(50,50,150,50);
+    lcd2.SetBackColor(LCD_COLOR_BLACK);
+    lcd2.SetTextColor(LCD_COLOR_WHITE);
+    lcd2.DisplayStringAt(0, LINE(4), (uint8_t *)"Next ->", CENTER_MODE);
+    
+    
+    
+    while((xc<47 || xc>205) || (yc>100 || yc<50)){
+        ts2.GetState(&tsState2); 
+        detectionc();
+        wait(0.05);}
+        
+        
+    wait(0.01); 
+    interface_blanc();  //Mesure du blanc
+    
+    while((xc<72 || xc>172) || (yc>295 || yc<195)){       //Attente de la position
+        ts2.GetState(&tsState2); 
+        detectionc();
+        wait(0.05);}
+    
+    
+    blanc[0]=capt11.read()*1000;
+    blanc[1]=capt11.read()*1000;
+  //  blanc[2]=capt13.read()*1000;
+    
+    blanc[2]=capt21.read()*1000;
+    blanc[3]=capt22.read()*1000;
+  //  blanc[5]=capt23.read()*1000;
+    
+    blanc[4]=capt31.read()*1000;
+    blanc[5]=capt32.read()*1000;
+ //   blanc[8]=capt33.read()*1000;
+    
+    wait(0.01); 
+    
+
+    for(int k=0;k<6;k++){           //Traduction sous forme d'un pointeur pour le renvoi et calcul du seuil
+        seuil[k]=(blanc[k]+noir[k])/2;} 
+    }
+    
+    
+    
+int* detectionLigne(){
+    for(int k=0;k<3;k++){
+        *(pointeur+k)=0; }
+    mesure[0]=capt11.read()*1000;
+    mesure[1]=capt11.read()*1000;
+   // mesure[2]=capt13.read()*1000;
+    
+    mesure[2]=capt21.read()*1000;
+    mesure[3]=capt22.read()*1000;
+  //  mesure[5]=capt23.read()*1000;
+    
+    mesure[4]=capt31.read()*1000;
+    mesure[5]=capt32.read()*1000;
+  //  mesure[8]=capt33.read()*1000;
+  
+  for(int k=0;k<6;k++){
+    affichage(mesure[k],k); }
+    
+    for(int k=0;k<6;k++){
+        if(mesure[k]<seuil[k]){
+            //*(pointeur+(k/2))=*(pointeur+(k/2))+1; 
+            if(k==1 || k==0){
+             *pointeur=*pointeur + 1;}
+            else if(k==2 || k==3){
+             *(pointeur+1)=*(pointeur+1) + 1;}
+             else if(k==4 || k==5){
+             *(pointeur+2)=*(pointeur+2) + 1;}
+             }}
+    for(int k=0;k<3;k++){
+            if(*(pointeur+k)>=1){
+                *(pointeur+k)=1; } 
+            else{
+                *(pointeur+k)=0;}}
+    return(pointeur);
+    }
+            
+            
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
\ No newline at end of file