Version 1

Dependencies:   mbed m3pi_pops

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?

UserRevisionLine numberNew 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 }