carte_strategie_2019
Dependencies: mbed SerialHalfDuplex SDFileSystem DISCO-F469NI_portrait liaison_Bluetooth ident_crac
Diff: Strategie/Strategie.cpp
- Revision:
- 75:1db1b929f13d
- Parent:
- 73:bf4d6d9db13b
- Child:
- 76:b5eb99354389
--- a/Strategie/Strategie.cpp Mon May 27 10:43:43 2019 +0000 +++ b/Strategie/Strategie.cpp Mon May 27 12:38:21 2019 +0000 @@ -70,7 +70,7 @@ char check; char Jack = 1; short SCORE_GLOBAL=0; -short SCORE_GR=20; +short SCORE_GR=40; short SCORE_PR=0; int flag = 0, flag_strat = 0, flag_timer; @@ -497,7 +497,7 @@ } } break; - + case TEST_SERVO: //TEST DU RESTE DES SERVOS DISPO HORS TIR lcd.SetBackColor(LCD_COLOR_WHITE); @@ -552,7 +552,7 @@ RETOUR.Draw(ROUGE, 0); etat=DEMO; - + break; @@ -1055,80 +1055,70 @@ rn42_Tx.printf("A");//lance l'electron actionPrecedente = instruction.order; switch(instruction.order) { - case MV_BEZIER: - { + case MV_BEZIER: { static vector< vector<short> >P1; static vector< vector<short> >C1; static vector< vector<short> >C2; static int i = 0; - + //Ajoute une ligne aux tableaux pour chaques courbes de la trajectoire P1.push_back(vector<short>()); //Nouvelle ligne C1.push_back(vector<short>()); //Nouvelle ligne C2.push_back(vector<short>()); //Nouvelle ligne - + P1[i].push_back(instruction.arg1); //Nouvelle colonne X C1[i].push_back(instruction.arg3); //Nouvelle colonne X C2[i].push_back(instruction.arg5); //Nouvelle colonne X - - if(InversStrat == 1 && ingnorInversionOnce == 0) - { + + if(InversStrat == 1 && ingnorInversionOnce == 0) { P1[i].push_back(3000-instruction.arg2); //Nouvelle colonne Y C1[i].push_back(3000-instruction.arg4); //Nouvelle colonne Y C2[i].push_back(3000-instruction.arg6); //Nouvelle colonne Y - } - else - { + } else { P1[i].push_back(instruction.arg2); //Nouvelle colonne Y C1[i].push_back(instruction.arg4); //Nouvelle colonne Y C2[i].push_back(instruction.arg6); //Nouvelle colonne Y } - + i++; - - if(instruction.nextActionType == WAIT) //Si il n'y a qu'une seule courbe ou que c'est la dernière courbe de la trajectoire - { + + if(instruction.nextActionType == WAIT) { //Si il n'y a qu'une seule courbe ou que c'est la dernière courbe de la trajectoire //Passage des points dans des variables temporaires pour pouvoir clear les vector avant d'être bloqué dans l'attente de l'ack //Empeche les vector de ne pas être reset si l'ack n'est pas reçu avant la fin du match int nbCourbes = P1.size(); short P1_temp[nbCourbes][2]; short C1_temp[nbCourbes][2]; short C2_temp[nbCourbes][2]; - - for(int j=0; j<nbCourbes; j++) - { - for(int i=0; i<2; i++) - { + + for(int j=0; j<nbCourbes; j++) { + for(int i=0; i<2; i++) { P1_temp[j][i] = P1[j][i]; C1_temp[j][i] = C1[j][i]; C2_temp[j][i] = C2[j][i]; } } - + //Clear des tableaux de points pour la prochaine trajectoire P1.clear(); C1.clear(); C2.clear(); i = 0; - + //Calcul de la courbe et envoi des valeurs - if(instruction.direction == FORWARD) - { + if(instruction.direction == FORWARD) { courbeBezier(nbCourbes, P1_temp, C1_temp, C2_temp, 0); - } - else if(instruction.direction == BACKWARD) - { + } else if(instruction.direction == BACKWARD) { courbeBezier(nbCourbes, P1_temp, C1_temp, C2_temp, 1); } - + waitingAckID = ASSERVISSEMENT_BEZIER; waitingAckFrom = ACKNOWLEDGE_MOTEUR; } break; } - - + + case MV_COURBURE://C'est un rayon de courbure actionPrecedente = MV_COURBURE; waitingAckID = ASSERVISSEMENT_COURBURE; @@ -2066,10 +2056,14 @@ angle_moyen_balise_IR = debut_angle_detection + (fin_angle_detection-debut_angle_detection)/2; #ifdef ROBOT_BIG - float seuil_bas_avant = 12.0; // >= - float seuil_haut_avant = 0.0; // <= - float seuil_bas_arriere = 4.0; - float seuil_haut_arriere = 8.0; + /* float seuil_bas_avant = 12.0; // >= + float seuil_haut_avant = 0.0; // <= + float seuil_bas_arriere = 4.0; + float seuil_haut_arriere = 8.0;*/ + float seuil_bas_avant = 13.0; + float seuil_haut_avant = 15.0; + float seuil_bas_arriere = 5.0; + float seuil_haut_arriere = 7.0; #else float seuil_bas_avant = 13.0; float seuil_haut_avant = 15.0; @@ -2485,13 +2479,13 @@ unsigned short position_avant_droite=0; unsigned short position_arriere_gauche=0; unsigned short position_arriere_droite=0; - + unsigned short tempo= telemetreDistance_arriere_gauche; telemetreDistance_arriere_gauche=telemetreDistance_arriere_droite; telemetreDistance_arriere_droite=tempo; - - - + + + if(theta_robot >= 450 && theta_robot <= 1350) orientationArrondie = 90; else if(theta_robot <= -450 && theta_robot >= -1350)