
code avec modifs, programme mit dans les robots pour les derniers matchs
Dependencies: mbed SerialHalfDuplex SDFileSystem liaison_Bluetooth ident_crac DISCO-F469NI_portrait
Revision 36:c37dbe2be916, committed 2021-05-31
- Comitter:
- goldmas
- Date:
- Mon May 31 13:36:03 2021 +0000
- Parent:
- 35:2a745eeb7922
- Child:
- 37:ee2c72e76d9c
- Child:
- 38:9d6a3ccc0582
- Commit message:
- dernier code vallable;
Changed in this revision
--- a/Compteur_points/Compteur.cpp Fri May 21 16:19:18 2021 +0000 +++ b/Compteur_points/Compteur.cpp Mon May 31 13:36:03 2021 +0000 @@ -119,7 +119,7 @@ //chenal vert port ext bleu else if((x_robot+x_offset >= 1700-DEMI_GOBELET)&&(x_robot+x_offset <= 2000+DEMI_GOBELET) - && (y_robot+y_offset >= 1650-DEMI_GOBELET)&&(y_robot+y_offset <= 1750+DEMI_GOBELET)) gobelet_vert++; + && (y_robot+y_offset >= 1650-DEMI_GOBELET)&&(y_robot+y_offset <= 1750+DEMI_GOBELET)) gobelet_vert++; //chenal rouge port ext bleu else if((x_robot+x_offset >= 1700-DEMI_GOBELET)&&(x_robot+x_offset <= 2000+DEMI_GOBELET) && (y_robot+y_offset >= 1850-DEMI_GOBELET)&&(y_robot+y_offset <= 1950+DEMI_GOBELET)) gobelet_rouge++;
--- a/Globals/global.h Fri May 21 16:19:18 2021 +0000 +++ b/Globals/global.h Mon May 31 13:36:03 2021 +0000 @@ -42,6 +42,7 @@ extern unsigned short flag_check_carte; extern int ack_bluetooth; extern unsigned char Cote; +extern unsigned char Hauteur; extern DigitalOut led1,led2,led3,led4; extern LCD_DISCO_F469NI lcd; extern char cheminFileStart[SIZE+8]; //Le chemin du fichier de strat, utiliser strcpy(cheminFileStart,"/local/strat.txt");
--- a/Globals/ident_crac.lib Fri May 21 16:19:18 2021 +0000 +++ b/Globals/ident_crac.lib Mon May 31 13:36:03 2021 +0000 @@ -1,1 +1,1 @@ -https://os.mbed.com/teams/CRAC-Team/code/ident_crac/#f14b2127d83d +https://os.mbed.com/teams/CRAC-Team/code/ident_crac/#3cdea2100f98
--- a/IHM/ihm.cpp Fri May 21 16:19:18 2021 +0000 +++ b/IHM/ihm.cpp Mon May 31 13:36:03 2021 +0000 @@ -23,6 +23,8 @@ /////////////////DEFINITION DES BOUTONS//////////////////// Button COTE_JAUNE(0, 25, 400, 300, "JAUNE"); Button COTE_VIOLET(0, 350, 400, 300, "BLEU"); +Button COTE_HAUT(0, 25, 400, 300, "ROBOT DU HAUT"); +Button COTE_BAS(0, 350, 400, 300, "ROBOT DU BAS"); Button RETOUR (0, 680, 400, 110, "--Precedent--"); Button LANCER (0, 200, 400, 200, "--LANCER--"); Button CHECK (0, 420, 400, 200, "Valider"); @@ -1088,7 +1090,7 @@ if(COTE_JAUNE.Touched()) { Cote = 0x1; InversStrat = Cote; - strat_etat_s = TACTIQUE; + strat_etat_s = SELECT_ROB; CANMessage trame_Tx = CANMessage(); trame_Tx.len = 1; trame_Tx.format = CANStandard; @@ -1103,7 +1105,7 @@ if(COTE_VIOLET.Touched()) { Cote = 0x0; InversStrat= Cote; - strat_etat_s = TACTIQUE; + strat_etat_s = SELECT_ROB; CANMessage trame_Tx = CANMessage(); trame_Tx.len = 1; trame_Tx.format = CANStandard; @@ -1121,7 +1123,48 @@ } break; + + case SELECT_ROB : // CHOIX DU SENS DE RECALAGE EN HAUT OU EN BAS + lcd.Clear(LCD_COLOR_WHITE); + lcd.SetBackColor(LCD_COLOR_WHITE); + lcd.SetTextColor(LCD_COLOR_BLACK); + lcd.DisplayStringAt(70, LINE(0), (uint8_t *)"Choisir la hauteur", LEFT_MODE); + + if(Cote==0) + { + COTE_HAUT.Draw(VIOLET, 0); + COTE_BAS.Draw(VIOLET, 0); + } + else if(Cote==1) + { + COTE_HAUT.Draw(JAUNE, 0); + COTE_BAS.Draw(JAUNE, 0); + } + RETOUR.Draw(LCD_COLOR_RED, 0); + + while (strat_etat_s == SELECT_ROB) + { + canProcessRx(); + if(COTE_HAUT.Touched()) + { + Hauteur = 0x1; + strat_etat_s = TACTIQUE; + while(COTE_HAUT.Touched()); + } + if(COTE_BAS.Touched()) { + Hauteur = 0x0; + strat_etat_s = TACTIQUE; + while(COTE_BAS.Touched()); + } + + if(RETOUR.Touched()) { + strat_etat_s = SELECT_SIDE; + while(RETOUR.Touched()); + } + } + break; + case TACTIQUE : //AFFICHE LA LISTE DES STRATS AFIN DE SELECTIONNER CELLE VOULUE if (Cote == 1) { lcd.Clear(JAUNE);
--- a/Strategie/Strategie.cpp Fri May 21 16:19:18 2021 +0000 +++ b/Strategie/Strategie.cpp Mon May 31 13:36:03 2021 +0000 @@ -49,6 +49,7 @@ //unsigned char FIFO_ecriture=0; //Position du fifo pour la reception CAN int flagSendCan=1; unsigned char Cote = 0; //0 -> JAUNE | 1 -> VIOLET +unsigned char Hauteur = 0; unsigned short angleRecalage = 0; unsigned char checkCurrent = 0; unsigned char countAliveCard = 0; @@ -101,8 +102,8 @@ unsigned short id_check[NOMBRE_CARTES]= {CHECK_MOTEUR,CHECK_BALISE}; unsigned short id_alive[NOMBRE_CARTES]= {ALIVE_MOTEUR,ALIVE_BALISE}; -InterruptIn jack(PG_11); // entrée numerique en interruption pour le jack (JackB1 sur la carte esclave) - +InterruptIn jackB1(PG_11); // entrée numerique en interruption pour le jack (JackB1 sur la carte esclave) +InterruptIn jackA1(PA_6); @@ -264,8 +265,10 @@ } //tactile_printf("Attente du JACK."); setAsservissementEtat(1);//On réactive l'asservissement - jack.mode(PullDown); // désactivation de la résistance interne du jack - jack.fall(&jack_ISR); // création de l'interrupt attachée au changement d'état (front descendant) sur le jack + jackB1.mode(PullDown); // désactivation de la résistance interne du jack + jackB1.fall(&jack_ISR); // création de l'interrupt attachée au changement d'état (front descendant) sur le jack + jackA1.mode(PullDown); // désactivation de la résistance interne du jack + jackA1.fall(&jack_ISR); // création de l'interrupt attachée au changement d'état (front descendant) sur le jack localData2 = POSITION_DEBUT_T; localData3 = POSITION_DEBUT_Y; @@ -286,7 +289,11 @@ SendRawId(RECALAGE_START); waitingAckID = ASSERVISSEMENT_RECALAGE; waitingAckFrom = ACKNOWLEDGE_MOTEUR; - GoStraight(3000, 1, MOITIEE_ROBOT, 0); //on se recale contre le mur donc il faut donner la valeur du centre du robot (les -5 qui trainent sont dus au tables pourraves sur place) + if(Hauteur==0) + localData3=2000-(MOITIEE_ROBOT); + else + localData3=MOITIEE_ROBOT; + GoStraight(1000, 1, localData3, 0); //on se recale contre le mur donc il faut donner la valeur du centre du robot (les -5 qui trainent sont dus au tables pourraves sur place) while(waitingAckID !=0 && waitingAckFrom !=0) canProcessRx(); waitingAckID_FIN=ASSERVISSEMENT_RECALAGE; @@ -312,11 +319,11 @@ case TOURNER: waitingAckID = ASSERVISSEMENT_ROTATION; waitingAckFrom = ACKNOWLEDGE_MOTEUR; - if(Cote==0) { - localData2 = 900; - } else { - localData2=-900; - } + if(Cote==0 && Hauteur==1) localData2 = 900; + else if(Cote == 0 && Hauteur==0 )localData2=-900; + else if(Cote==1 && Hauteur==1 )localData2=-900; + else if(Cote==1 && Hauteur==0 )localData2=900; + Rotate(localData2); while(waitingAckID !=0 && waitingAckFrom !=0) canProcessRx(); @@ -335,7 +342,7 @@ } else { localData3=MOITIEE_ROBOT; } - GoStraight(3000, 2,localData3, 0); //on se recale contre le mur donc il faut donner la valeur du centre du robot + GoStraight(1000, 2,localData3, 0); //on se recale contre le mur donc il faut donner la valeur du centre du robot while(waitingAckID !=0 && waitingAckFrom !=0) canProcessRx(); waitingAckID_FIN=ASSERVISSEMENT_RECALAGE; @@ -398,7 +405,8 @@ gameTimer.start(); } gameTimer.reset(); - jack.fall(NULL);//On désactive l'interruption du jack + jackB1.fall(NULL);//On désactive l'interruption du jack + jackA1.fall(NULL);//On désactive l'interruption du jack //SendRawId(GLOBAL_START); Jack=0; //à envoyer sur le CAN et en direct pour l'automate de l'ihm ou sur CANV //tactile_printf("Start");//Pas vraiment utile mais bon @@ -674,7 +682,7 @@ waitingAckID = ASSERVISSEMENT_RECALAGE; waitingAckFrom = ACKNOWLEDGE_MOTEUR; - localData2 = (((instruction.direction == FORWARD)?1:-1)*3000);//On indique une distance de 3000 pour etre sur que le robot va ce recaler + localData2 = (((instruction.direction == FORWARD)?1:-1)*1000);//On indique une distance de 3000 pour etre sur que le robot va ce recaler if(instruction.precision == RECALAGE_Y) { localData5 = 2;
--- a/Strategie/Strategie.h Fri May 21 16:19:18 2021 +0000 +++ b/Strategie/Strategie.h Mon May 31 13:36:03 2021 +0000 @@ -27,6 +27,7 @@ TEST_DIVE, TEST_ASSERVE, SELECT_SIDE, + SELECT_ROB, TACTIQUE, DETAILS, LECTURE,