![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Version2
Revision 1:a70715783fa2, committed 2019-11-13
- Comitter:
- emilienb
- Date:
- Wed Nov 13 16:26:39 2019 +0000
- Parent:
- 0:286c78fcd9dd
- Commit message:
- v2
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r 286c78fcd9dd -r a70715783fa2 main.cpp --- a/main.cpp Fri Oct 25 09:49:43 2019 +0000 +++ b/main.cpp Wed Nov 13 16:26:39 2019 +0000 @@ -4,7 +4,7 @@ m3pi pololu; -Serial usb(USBTX,USBRX); +Serial usb(p28,p27); DigitalOut l1(LED1); DigitalOut l2(LED2); @@ -12,19 +12,29 @@ DigitalOut l4(LED4); float speed = 0.5; +int seuil = 500; -int main() { + +int main() +{ -int capteurs[5]={1,1,1,1,1}; -char buff[8]; -char c,cprev; + int capteurs[5]= {1,1,1,1,1}; + int cap_seuil[5]= {0,0,0,0,0}; + char buff[8]; + char c; + + pololu.sensor_auto_calibrate(); + while(1) { - //affichage valeur capteur + //affichage valeur capteur //Boucle switch de reception de données via serial - if(usb.readable()){ - cprev=c; + if(usb.readable()) + { c = usb.getc(); - switch(c){ + switch(c){ + case '0': + pololu.sensor_auto_calibrate(); + break; case 'z': pololu.forward(speed); l1 = 1; @@ -32,45 +42,45 @@ l3 = 0; l4 = 0; break; - case 's': + case 's': pololu.backward(speed); l1 = 0; l2 = 1; l3 = 0; l4 = 0; break; - case 'q': + case 'q': pololu.left(0.3); l1 = 1; l2 = 0; l3 = 0; l4 = 0; break; - case 'd': + case 'd': pololu.right(0.3); l1 = 1; l2 = 0; l3 = 0; l4 = 0; break; - case 'a': - speed += 0.1; + case 'a': + speed += 0.1; if(speed > 1) speed = 1; pololu.cls(); pololu.locate(0,0); sprintf(buff, "Spd:%3.f",speed ); pololu.print(buff,8); - + break; - case 'e': - speed -= 0.1; + case 'e': + speed -= 0.1; if(speed < 0) speed = 0; pololu.cls(); pololu.locate(0,0); sprintf(buff, "Spd:%3.f",speed ); pololu.print(buff,8); break; - case ' ': + case ' ': pololu.stop(); l1 = 1; l2 = 1; @@ -78,16 +88,34 @@ l4 = 1; break; case 'c': - pololu.calibrate(); pololu.readsensor(capteurs); - if(usb.writable()) { - usb.printf("%d, %d, %d, %d, %d | \0",capteurs[0],capteurs[1],capteurs[2],capteurs[3],capteurs[4]);} + for(int i=0; i<5; i++) + { + if(capteurs[i] >= seuil) + { + cap_seuil[i] = 1; + } + else + { + cap_seuil[i] = 0; + } + } + + if(usb.writable()) + { + usb.printf("Valeur capteur : \r\n"); + usb.printf("Valeurs brutes: %d, %d, %d, %d, %d \r\n", (int)capteurs[0],(int)capteurs[1],(int)capteurs[2],(int)capteurs[3],(int)capteurs[4]); + usb.printf("Valeurs seuillees: %d, %d, %d, %d, %d \r\n \r\n ",cap_seuil[0],cap_seuil[1],cap_seuil[2],cap_seuil[3],cap_seuil[4]); + } + break; + case 'b': sprintf(buff, "Bat:%3.f",pololu.battery()); pololu.cls(); pololu.locate(0,0); pololu.print(buff,8); - case 'y' : + break; + case 'y' : speed = 0.3; pololu.forward(speed); wait(3); @@ -96,9 +124,10 @@ pololu.left(speed); wait(2); pololu.right(speed); - wait(1); - - default : break; + wait(1); + break; + + default : break; } } }