Programme course fonctionnel Jour J Croisement non pris en charge (tourne en rond)
Fork of Programme_course_30Tr by
Revision 5:7714a216c91d, committed 2017-03-24
- Comitter:
- leandre
- Date:
- Fri Mar 24 09:29:12 2017 +0000
- Parent:
- 4:8b0215ec788f
- Commit message:
- Prog fonctionnel Jour J; Croisement ? r?gler
Changed in this revision
--- a/Mlib.cpp Wed Mar 22 14:41:20 2017 +0000 +++ b/Mlib.cpp Fri Mar 24 09:29:12 2017 +0000 @@ -159,8 +159,8 @@ moy_mem_b=Moyenne2(tab_mem_b, TAILLE_TAB_INT); //pc.printf("%d\n",moy_inter); - if(S1&&(arr!=0)) {//delai apres l'arret - if (t_debut.read_ms()-arr>200)VIT=0; + if(S1&&(arr!=0)){//delai apres l'arret + if (t_debut.read_ms()-arr>250)VIT=0; } else if((moy_mem_a>20)&&(moy_mem_b>20)){ // si la voiture n'est pas trop sur l'exterieur de la piste if(S1 && (moy_inter<75) && (moy_inter>50)){ //si l'espace entre les deux lignes est plus petit que la normale (arret) @@ -168,7 +168,7 @@ //for(int i=0;i<5;i++) pc.printf("%d ",Interval[i]); //pc.printf("\n"); //VIT=0; - //pc.printf("\narret "); + pc.printf("\narret "); //pc.printf("\n%d ",moy_inter); led1=1; led2=1;
--- a/Mlib.h Wed Mar 22 14:41:20 2017 +0000 +++ b/Mlib.h Fri Mar 24 09:29:12 2017 +0000 @@ -6,7 +6,7 @@ #include "mbed.h" #include "MMA8451Q.h" #include "motor.h" - + #define MMA8451_I2C_ADRESS (0x1d<<1) #define FRQ_CLK 15000 @@ -15,7 +15,7 @@ #define BMIDTAB 63 #define BANDSIZE 4 #define MIN_INTE 0 -#define MAX_INTE FRQ_CYC-400//500 +#define MAX_INTE FRQ_CYC-500 #define INCREM_BALANCE 300 #define MARGE_LIGNE 5 #define MARGE_DISTANCE_LIGNE 10 @@ -32,6 +32,7 @@ #define VITESSE 40 #define TAILLE_TAB_INT 5 +#define SEUIL_INT_VIR 50 /***********************FONCTIONS**********************/ /**/ /****************CAMERA****************/ /**/ /**/ void F_GetData(); /**/
--- a/shield.cpp Wed Mar 22 14:41:20 2017 +0000 +++ b/shield.cpp Fri Mar 24 09:29:12 2017 +0000 @@ -7,7 +7,7 @@ { vitesse_virage = new_bari/2; - ajust_vitesse = ajust_vit_bosse +((ligne_droite*5)/2);-ajust_vit_vir; + ajust_vitesse = ajust_vit_bosse +((ligne_droite*5)/2)-ajust_vit_vir; pc.printf("%hi\n", ajust_vit_bosse); @@ -68,7 +68,7 @@ for(int i = 0; i < 10; i++) { VIT += ((pot1.read()+1)*(25.0)); - KP += ((pot2.read()+1)*100); + KP += ((pot2.read()+1)*75); } VIT /= 10; pc.printf("VIT=%d\nKP=%d\n",VIT,KP); //ici
--- a/traitement_image.cpp Wed Mar 22 14:41:20 2017 +0000 +++ b/traitement_image.cpp Fri Mar 24 09:29:12 2017 +0000 @@ -52,6 +52,7 @@ } Interval[0] = mem_a+mem_b; + //pc.printf("mem_a=%d mem_b=%d",mem_a,mem_b); if (mem_b == 100 && mem_a == 100) // pas de ligne { ajust_vit_vir=0; @@ -59,28 +60,41 @@ } else if (mem_b == 100) //pas de ligne à gauche { //si la ligne est vers le milieu on ne modifie pas le baricentre et on ralenti - //baricentre = (mem_a-MARGE_DISTANCE_LIGNE); - ajust_vit_vir=20; - if(mem_a>45){ + + ajust_vit_vir=40; + //ralentire=1; + if(mem_a>SEUIL_INT_VIR){ baricentre = (64-mem_a); - ajust_vit_vir=0; + if (baricentre>25){ + ajust_vit_vir=40; + } + else ajust_vit_vir=20; } } else if (mem_a == 100) // pas de ligne à droite { //si la ligne est vers le milieu on ne modifie pas le baricentre et on ralenti - //baricentre = (MARGE_DISTANCE_LIGNE-mem_b); - ajust_vit_vir=20; - if(mem_b>45){ + + ajust_vit_vir=40; + + if(mem_b>SEUIL_INT_VIR){ baricentre = (64-mem_b); - ajust_vit_vir=0; + if (baricentre>25){ + ajust_vit_vir=40; + } + else ajust_vit_vir=20; } } else { - ajust_vit_vir=0; - baricentre = (mem_b - mem_a); - //baricentre = -baricentre; + + baricentre = (mem_b - mem_a); + + if (baricentre>20){ + ajust_vit_vir=20; + } + else ajust_vit_vir=0; + } } @@ -95,53 +109,6 @@ } -/*void Gestion_bosse() -{ - if(BOSSE_ACTIVE)//Si on active la détection de la bosse - { - static int tep = 0; - switch(bosse) - { - case 0: - led1 = 1; - led2 = 0; - break; - case 1: - led2 = 1; - led1= 0; - break; - case 2: - led3 = 1; - led2 = 0; - break; - } - - - last_three[2] = last_three[1]; - last_three[1] = last_three[0]; - last_three[0] = acc.getAccX(); - - if(bosse == 1) - ajust_vitesse = 20; - else if(bosse == 2) - ajust_vitesse = -10; - else ajust_vitesse = 0; - - if((middle_3F(last_three) > 0.2 ) && (bosse == 0 && t_debut.read() > 2)) - { - bosse = 1; - tep = (int)t_debut.read_ms(); - } - else if(bosse == 1 && (int)t_debut.read_ms() > (tep+1000)) - { - bosse = 2; - } - else if(bosse == 2 && middle_3F(last_three) > 0.98) - { - bosse = 3; - } - } -}*/ void T_image() { @@ -164,7 +131,7 @@ //pc.printf("%d ",new_bari); last_bari = bari_bis; - led4 = ralentire; + //led4 = ralentire; if(S3)//gestion des lignes droite { if(abs(new_bari) < 15 && ligne_droite < 10 && ralentire == 0)