![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Version 1
main.cpp@0:286c78fcd9dd, 2019-10-25 (annotated)
- Committer:
- emilienb
- Date:
- Fri Oct 25 09:49:43 2019 +0000
- Revision:
- 0:286c78fcd9dd
- Child:
- 1:ef658023014b
Version 1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
emilienb | 0:286c78fcd9dd | 1 | #include "mbed.h" |
emilienb | 0:286c78fcd9dd | 2 | #include "m3pi.h" |
emilienb | 0:286c78fcd9dd | 3 | //#include "MSCFileSystem.h" |
emilienb | 0:286c78fcd9dd | 4 | |
emilienb | 0:286c78fcd9dd | 5 | m3pi pololu; |
emilienb | 0:286c78fcd9dd | 6 | |
emilienb | 0:286c78fcd9dd | 7 | Serial usb(USBTX,USBRX); |
emilienb | 0:286c78fcd9dd | 8 | |
emilienb | 0:286c78fcd9dd | 9 | DigitalOut l1(LED1); |
emilienb | 0:286c78fcd9dd | 10 | DigitalOut l2(LED2); |
emilienb | 0:286c78fcd9dd | 11 | DigitalOut l3(LED3); |
emilienb | 0:286c78fcd9dd | 12 | DigitalOut l4(LED4); |
emilienb | 0:286c78fcd9dd | 13 | |
emilienb | 0:286c78fcd9dd | 14 | float speed = 0.5; |
emilienb | 0:286c78fcd9dd | 15 | |
emilienb | 0:286c78fcd9dd | 16 | int main() { |
emilienb | 0:286c78fcd9dd | 17 | |
emilienb | 0:286c78fcd9dd | 18 | int capteurs[5]={1,1,1,1,1}; |
emilienb | 0:286c78fcd9dd | 19 | char buff[8]; |
emilienb | 0:286c78fcd9dd | 20 | char c,cprev; |
emilienb | 0:286c78fcd9dd | 21 | while(1) { |
emilienb | 0:286c78fcd9dd | 22 | //affichage valeur capteur |
emilienb | 0:286c78fcd9dd | 23 | //Boucle switch de reception de données via serial |
emilienb | 0:286c78fcd9dd | 24 | if(usb.readable()){ |
emilienb | 0:286c78fcd9dd | 25 | cprev=c; |
emilienb | 0:286c78fcd9dd | 26 | c = usb.getc(); |
emilienb | 0:286c78fcd9dd | 27 | switch(c){ |
emilienb | 0:286c78fcd9dd | 28 | case 'z': |
emilienb | 0:286c78fcd9dd | 29 | pololu.forward(speed); |
emilienb | 0:286c78fcd9dd | 30 | l1 = 1; |
emilienb | 0:286c78fcd9dd | 31 | l2 = 0; |
emilienb | 0:286c78fcd9dd | 32 | l3 = 0; |
emilienb | 0:286c78fcd9dd | 33 | l4 = 0; |
emilienb | 0:286c78fcd9dd | 34 | break; |
emilienb | 0:286c78fcd9dd | 35 | case 's': |
emilienb | 0:286c78fcd9dd | 36 | pololu.backward(speed); |
emilienb | 0:286c78fcd9dd | 37 | l1 = 0; |
emilienb | 0:286c78fcd9dd | 38 | l2 = 1; |
emilienb | 0:286c78fcd9dd | 39 | l3 = 0; |
emilienb | 0:286c78fcd9dd | 40 | l4 = 0; |
emilienb | 0:286c78fcd9dd | 41 | break; |
emilienb | 0:286c78fcd9dd | 42 | case 'q': |
emilienb | 0:286c78fcd9dd | 43 | pololu.left(0.3); |
emilienb | 0:286c78fcd9dd | 44 | l1 = 1; |
emilienb | 0:286c78fcd9dd | 45 | l2 = 0; |
emilienb | 0:286c78fcd9dd | 46 | l3 = 0; |
emilienb | 0:286c78fcd9dd | 47 | l4 = 0; |
emilienb | 0:286c78fcd9dd | 48 | break; |
emilienb | 0:286c78fcd9dd | 49 | case 'd': |
emilienb | 0:286c78fcd9dd | 50 | pololu.right(0.3); |
emilienb | 0:286c78fcd9dd | 51 | l1 = 1; |
emilienb | 0:286c78fcd9dd | 52 | l2 = 0; |
emilienb | 0:286c78fcd9dd | 53 | l3 = 0; |
emilienb | 0:286c78fcd9dd | 54 | l4 = 0; |
emilienb | 0:286c78fcd9dd | 55 | break; |
emilienb | 0:286c78fcd9dd | 56 | case 'a': |
emilienb | 0:286c78fcd9dd | 57 | speed += 0.1; |
emilienb | 0:286c78fcd9dd | 58 | if(speed > 1) speed = 1; |
emilienb | 0:286c78fcd9dd | 59 | pololu.cls(); |
emilienb | 0:286c78fcd9dd | 60 | pololu.locate(0,0); |
emilienb | 0:286c78fcd9dd | 61 | sprintf(buff, "Spd:%3.f",speed ); |
emilienb | 0:286c78fcd9dd | 62 | pololu.print(buff,8); |
emilienb | 0:286c78fcd9dd | 63 | |
emilienb | 0:286c78fcd9dd | 64 | break; |
emilienb | 0:286c78fcd9dd | 65 | case 'e': |
emilienb | 0:286c78fcd9dd | 66 | speed -= 0.1; |
emilienb | 0:286c78fcd9dd | 67 | if(speed < 0) speed = 0; |
emilienb | 0:286c78fcd9dd | 68 | pololu.cls(); |
emilienb | 0:286c78fcd9dd | 69 | pololu.locate(0,0); |
emilienb | 0:286c78fcd9dd | 70 | sprintf(buff, "Spd:%3.f",speed ); |
emilienb | 0:286c78fcd9dd | 71 | pololu.print(buff,8); |
emilienb | 0:286c78fcd9dd | 72 | break; |
emilienb | 0:286c78fcd9dd | 73 | case ' ': |
emilienb | 0:286c78fcd9dd | 74 | pololu.stop(); |
emilienb | 0:286c78fcd9dd | 75 | l1 = 1; |
emilienb | 0:286c78fcd9dd | 76 | l2 = 1; |
emilienb | 0:286c78fcd9dd | 77 | l3 = 1; |
emilienb | 0:286c78fcd9dd | 78 | l4 = 1; |
emilienb | 0:286c78fcd9dd | 79 | break; |
emilienb | 0:286c78fcd9dd | 80 | case 'c': |
emilienb | 0:286c78fcd9dd | 81 | pololu.calibrate(); |
emilienb | 0:286c78fcd9dd | 82 | pololu.readsensor(capteurs); |
emilienb | 0:286c78fcd9dd | 83 | if(usb.writable()) { |
emilienb | 0:286c78fcd9dd | 84 | usb.printf("%d, %d, %d, %d, %d | \0",capteurs[0],capteurs[1],capteurs[2],capteurs[3],capteurs[4]);} |
emilienb | 0:286c78fcd9dd | 85 | case 'b': |
emilienb | 0:286c78fcd9dd | 86 | sprintf(buff, "Bat:%3.f",pololu.battery()); |
emilienb | 0:286c78fcd9dd | 87 | pololu.cls(); |
emilienb | 0:286c78fcd9dd | 88 | pololu.locate(0,0); |
emilienb | 0:286c78fcd9dd | 89 | pololu.print(buff,8); |
emilienb | 0:286c78fcd9dd | 90 | case 'y' : |
emilienb | 0:286c78fcd9dd | 91 | speed = 0.3; |
emilienb | 0:286c78fcd9dd | 92 | pololu.forward(speed); |
emilienb | 0:286c78fcd9dd | 93 | wait(3); |
emilienb | 0:286c78fcd9dd | 94 | pololu.stop(); |
emilienb | 0:286c78fcd9dd | 95 | wait(1); |
emilienb | 0:286c78fcd9dd | 96 | pololu.left(speed); |
emilienb | 0:286c78fcd9dd | 97 | wait(2); |
emilienb | 0:286c78fcd9dd | 98 | pololu.right(speed); |
emilienb | 0:286c78fcd9dd | 99 | wait(1); |
emilienb | 0:286c78fcd9dd | 100 | |
emilienb | 0:286c78fcd9dd | 101 | default : break; |
emilienb | 0:286c78fcd9dd | 102 | } |
emilienb | 0:286c78fcd9dd | 103 | } |
emilienb | 0:286c78fcd9dd | 104 | } |
emilienb | 0:286c78fcd9dd | 105 | } |