TP1

Dependencies:   mbed

Committer:
AntoineDeb
Date:
Wed Dec 09 08:34:46 2020 +0000
Revision:
8:51527660b735
Parent:
7:a1c1cb3a5d42
Child:
9:48e3f6385bff
coucou

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Maximousse 0:89e0c9ac4a1a 1 #include "mbed.h"
Maximousse 1:b4a0be3cdce6 2 #include "m3pi.h"
Maximousse 1:b4a0be3cdce6 3
AntoineDeb 8:51527660b735 4 DigitalOut led1(LED1);
AntoineDeb 8:51527660b735 5 DigitalOut led2(LED2);
AntoineDeb 8:51527660b735 6
AntoineDeb 8:51527660b735 7 m3pi m3pi;
AntoineDeb 8:51527660b735 8
AntoineDeb 8:51527660b735 9 Serial pc(USBTX,USBRX);
Maximousse 1:b4a0be3cdce6 10
Maximousse 0:89e0c9ac4a1a 11
AntoineDeb 8:51527660b735 12 //__enable_irq();
AntoineDeb 8:51527660b735 13 unsigned short flag = 0;
AntoineDeb 8:51527660b735 14 int word;
AntoineDeb 8:51527660b735 15 //InterruptIn USBINTERRUPT(USBRX);
AntoineDeb 7:a1c1cb3a5d42 16
AntoineDeb 8:51527660b735 17 void GetKeyboard()
AntoineDeb 8:51527660b735 18 {
AntoineDeb 8:51527660b735 19 //pc.printf("Keyboard Interrupt \n");
AntoineDeb 8:51527660b735 20 flag = 1;
AntoineDeb 8:51527660b735 21 if(pc.readable())
AntoineDeb 8:51527660b735 22 word = pc.getc();
AntoineDeb 8:51527660b735 23 else pc.printf("no readable\n");
AntoineDeb 8:51527660b735 24 return;
AntoineDeb 8:51527660b735 25 }
Maximousse 1:b4a0be3cdce6 26
AntoineDeb 8:51527660b735 27 int main()
AntoineDeb 8:51527660b735 28 {
AntoineDeb 8:51527660b735 29 m3pi.cls();
AntoineDeb 8:51527660b735 30 pc.printf("Bonjour \n");
AntoineDeb 8:51527660b735 31 float speed = 0.1, battery = -1, position;
AntoineDeb 8:51527660b735 32 //USBINTERRUPT.rise(&GetKeyboard);z
AntoineDeb 8:51527660b735 33 pc.attach(&GetKeyboard, Serial::RxIrq);
AntoineDeb 8:51527660b735 34 while(1)
AntoineDeb 8:51527660b735 35 {
AntoineDeb 8:51527660b735 36 //printf("flag = %d ", flag);
AntoineDeb 8:51527660b735 37 //if(word >= 'a' && word <= 'z') {word++; pc.printf(&word); pc.printf("\n");}
AntoineDeb 8:51527660b735 38 if(speed > 1) speed = 1;
AntoineDeb 8:51527660b735 39 if(speed < -1) speed = -1;
AntoineDeb 8:51527660b735 40 if(flag == 1)
AntoineDeb 8:51527660b735 41 {
AntoineDeb 8:51527660b735 42 pc.printf("in flag\n");
AntoineDeb 8:51527660b735 43 //word = pc.getc();
AntoineDeb 8:51527660b735 44 pc.printf("word = %c", word);
AntoineDeb 8:51527660b735 45 switch(word)
AntoineDeb 8:51527660b735 46 {
AntoineDeb 8:51527660b735 47 // mouvement robots
AntoineDeb 8:51527660b735 48 case 'z': m3pi.forward(speed); break;
AntoineDeb 8:51527660b735 49 case 'q': m3pi.left(speed/2); break;
AntoineDeb 8:51527660b735 50 case 's': m3pi.backward(speed); break;
AntoineDeb 8:51527660b735 51 case 'd': m3pi.right(speed/2); break;
AntoineDeb 8:51527660b735 52 case ' ': speed = 0; break;
AntoineDeb 8:51527660b735 53
AntoineDeb 8:51527660b735 54 //accelerer / freiner
AntoineDeb 8:51527660b735 55 case '+': speed+= 0.1; break;
AntoineDeb 8:51527660b735 56 case '-': speed-= 0.1; break;
AntoineDeb 8:51527660b735 57 case '0': m3pi.stop(); break;
AntoineDeb 8:51527660b735 58
AntoineDeb 8:51527660b735 59 //infos
AntoineDeb 8:51527660b735 60 case 'p': position = m3pi.line_position(); pc.printf("position = %f \n", position); break;
AntoineDeb 8:51527660b735 61 case 'b': battery = m3pi.battery(); pc.printf("battery = %f \n", (battery/4.8)*100); break;
AntoineDeb 8:51527660b735 62 default: pc.printf("default case \n"); break;
AntoineDeb 8:51527660b735 63 }
AntoineDeb 8:51527660b735 64 flag = 0;
AntoineDeb 8:51527660b735 65 }
AntoineDeb 8:51527660b735 66 else {}
Maximousse 0:89e0c9ac4a1a 67 }
Maximousse 0:89e0c9ac4a1a 68 }