Version2

Dependencies:   mbed m3pi_pops

Files at this revision

API Documentation at this revision

Comitter:
emilienb
Date:
Wed Nov 13 16:26:39 2019 +0000
Parent:
0:286c78fcd9dd
Commit message:
v2

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 286c78fcd9dd -r a70715783fa2 main.cpp
--- a/main.cpp	Fri Oct 25 09:49:43 2019 +0000
+++ b/main.cpp	Wed Nov 13 16:26:39 2019 +0000
@@ -4,7 +4,7 @@
 
 m3pi pololu;
 
-Serial usb(USBTX,USBRX);
+Serial usb(p28,p27);
 
 DigitalOut l1(LED1);
 DigitalOut l2(LED2);
@@ -12,19 +12,29 @@
 DigitalOut l4(LED4);
 
 float speed = 0.5;
+int seuil = 500;
 
-int main() {    
+
+int main()
+{
 
-int capteurs[5]={1,1,1,1,1};
-char buff[8];
-char c,cprev;
+    int capteurs[5]= {1,1,1,1,1};
+    int cap_seuil[5]= {0,0,0,0,0};
+    char buff[8];
+    char c;
+
+    pololu.sensor_auto_calibrate();
+
     while(1) {
-        //affichage valeur capteur 
+        //affichage valeur capteur
         //Boucle switch de reception de données via serial
-        if(usb.readable()){
-            cprev=c;
+        if(usb.readable()) 
+        {
             c = usb.getc();
-            switch(c){ 
+            switch(c){
+            case '0':
+                pololu.sensor_auto_calibrate();
+                break;
             case 'z':
                 pololu.forward(speed);
                 l1 = 1;
@@ -32,45 +42,45 @@
                 l3 = 0;
                 l4 = 0;
                 break;
-            case 's':    
+            case 's':
                 pololu.backward(speed);
                 l1 = 0;
                 l2 = 1;
                 l3 = 0;
                 l4 = 0;
                 break;
-            case 'q':    
+            case 'q':
                 pololu.left(0.3);
                 l1 = 1;
                 l2 = 0;
                 l3 = 0;
                 l4 = 0;
                 break;
-            case 'd':    
+            case 'd':
                 pololu.right(0.3);
                 l1 = 1;
                 l2 = 0;
                 l3 = 0;
                 l4 = 0;
                 break;
-            case 'a': 
-                speed += 0.1;       
+            case 'a':
+                speed += 0.1;
                 if(speed > 1) speed = 1;
                 pololu.cls();
                 pololu.locate(0,0);
                 sprintf(buff, "Spd:%3.f",speed );
                 pololu.print(buff,8);
-                
+
                 break;
-            case 'e': 
-                speed -= 0.1;   
+            case 'e':
+                speed -= 0.1;
                 if(speed < 0) speed = 0;
                 pololu.cls();
                 pololu.locate(0,0);
                 sprintf(buff, "Spd:%3.f",speed );
                 pololu.print(buff,8);
                 break;
-            case ' ':    
+            case ' ':
                 pololu.stop();
                 l1 = 1;
                 l2 = 1;
@@ -78,16 +88,34 @@
                 l4 = 1;
                 break;
             case 'c':
-                pololu.calibrate();
                 pololu.readsensor(capteurs);
-                 if(usb.writable()) {
-                        usb.printf("%d, %d, %d, %d, %d | \0",capteurs[0],capteurs[1],capteurs[2],capteurs[3],capteurs[4]);}
+                for(int i=0; i<5; i++)
+                {
+                    if(capteurs[i] >= seuil)
+                    {
+                        cap_seuil[i] = 1;
+                    }
+                    else 
+                    {
+                        cap_seuil[i] = 0;
+                    }
+                }
+
+                 if(usb.writable()) 
+                 {
+                        usb.printf("Valeur capteur :  \r\n");
+                        usb.printf("Valeurs brutes: %d, %d, %d, %d, %d  \r\n", (int)capteurs[0],(int)capteurs[1],(int)capteurs[2],(int)capteurs[3],(int)capteurs[4]);
+                        usb.printf("Valeurs seuillees: %d, %d, %d, %d, %d  \r\n \r\n ",cap_seuil[0],cap_seuil[1],cap_seuil[2],cap_seuil[3],cap_seuil[4]);
+                }
+                break;
+
             case 'b':
                 sprintf(buff, "Bat:%3.f",pololu.battery());
                 pololu.cls();
                 pololu.locate(0,0);
                 pololu.print(buff,8);
-            case 'y' : 
+                break;
+            case 'y' :
                 speed = 0.3;
                 pololu.forward(speed);
                 wait(3);
@@ -96,9 +124,10 @@
                 pololu.left(speed);
                 wait(2);
                 pololu.right(speed);
-                wait(1);            
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
-            default : break; 
+                wait(1);
+                break;
+
+            default : break;
             }
         }
     }