TP1
Dependencies: mbed
Diff: main.cpp
- 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 {} } }