TP1

Dependencies:   mbed

Revision:
8:51527660b735
Parent:
7:a1c1cb3a5d42
Child:
9:48e3f6385bff
--- a/main.cpp	Fri Oct 09 08:07:35 2020 +0000
+++ b/main.cpp	Wed Dec 09 08:34:46 2020 +0000
@@ -1,37 +1,68 @@
 #include "mbed.h"
 #include "m3pi.h"
 
-Serial pc(USBTX, USBRX);
-DigitalOut myled(LED1);
-m3pi pi;
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);
+
+m3pi m3pi;
+
+Serial pc(USBTX,USBRX);
 
 
-int main() {
-    char clavier;
-    /*wait(0.5);
-    pi.forward(0.5);
-    wait (0.5);
-    pi.left(0.5);
-    wait (0.5);
-    pi.backward(0.5);
-    wait (0.5);
-    pi.right(0.5);
-    wait (0.5);*/
+//__enable_irq();
+unsigned short flag = 0;
+int word;
+//InterruptIn USBINTERRUPT(USBRX);
 
-     //pi.stop();
+void GetKeyboard()
+{
+    //pc.printf("Keyboard Interrupt \n");
+    flag = 1;
+    if(pc.readable())
+        word = pc.getc();
+    else pc.printf("no readable\n");
+    return;
+}
 
-    
-    
-    
-    while(1) { 
-        clavier = pc.getc();
-        wait(0.5);
-        clavier= clavier+1;
-        pc.printf(&(clavier));
-        myled = 1;
-        wait(0.2);
-        myled = 0;
-        wait(0.2);
-        
+int main()
+{
+    m3pi.cls();  
+    pc.printf("Bonjour \n");
+    float speed = 0.1, battery = -1, position;
+    //USBINTERRUPT.rise(&GetKeyboard);z
+    pc.attach(&GetKeyboard, Serial::RxIrq);
+    while(1)
+    {
+        //printf("flag = %d ", flag);
+        //if(word >= 'a' && word <= 'z') {word++; pc.printf(&word); pc.printf("\n");}
+        if(speed > 1) speed = 1;
+        if(speed < -1) speed = -1;
+        if(flag == 1)
+        {
+            pc.printf("in flag\n");
+            //word = pc.getc();
+            pc.printf("word = %c", word);
+            switch(word)
+            {
+                // mouvement robots
+                case 'z': m3pi.forward(speed); break;
+                case 'q': m3pi.left(speed/2); break;
+                case 's': m3pi.backward(speed); break;
+                case 'd': m3pi.right(speed/2); break;
+                case ' ': speed = 0; break;
+                
+                //accelerer / freiner
+                case '+': speed+= 0.1; break;
+                case '-': speed-= 0.1; break;
+                case '0': m3pi.stop(); break;
+                
+                //infos
+                case 'p': position = m3pi.line_position(); pc.printf("position = %f \n", position); break;
+                case 'b': battery = m3pi.battery(); pc.printf("battery = %f \n", (battery/4.8)*100); break;
+                default: pc.printf("default case \n"); break;
+            }
+            flag = 0;
+        }
+        else {}
     }
 }