sequences des strats

Committer:
JimmyAREM
Date:
Sun May 26 14:50:37 2019 +0000
Revision:
2:e0402d1e9ed5
Parent:
1:785b37686185
Child:
3:4810f8316e38
s

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JimmyAREM 0:a89fe490343e 1 #include "Strategie.h"
JimmyAREM 0:a89fe490343e 2
JimmyAREM 0:a89fe490343e 3 char bufferScore[3]={'0','0','0'};
JimmyAREM 1:785b37686185 4
JimmyAREM 0:a89fe490343e 5 bool typeMovement = DEPLACEMENT_AVANT;
JimmyAREM 1:785b37686185 6 bool typeEvitement = ARRET;
JimmyAREM 0:a89fe490343e 7
JimmyAREM 0:a89fe490343e 8 extern int distanceUltrasonGauche;
JimmyAREM 0:a89fe490343e 9 extern int distanceUltrasonDroit;
JimmyAREM 0:a89fe490343e 10 extern int distanceUltrasonArriere;
JimmyAREM 0:a89fe490343e 11
JimmyAREM 0:a89fe490343e 12 extern int distanceTOF1;
JimmyAREM 0:a89fe490343e 13 extern int distanceTOF2;
JimmyAREM 0:a89fe490343e 14 extern int distanceTOF3;
JimmyAREM 0:a89fe490343e 15 extern int distanceTOF4;
JimmyAREM 0:a89fe490343e 16 extern int distanceTOF5;
JimmyAREM 0:a89fe490343e 17
JimmyAREM 0:a89fe490343e 18
JimmyAREM 0:a89fe490343e 19 extern bool stopCapteurs;
JimmyAREM 0:a89fe490343e 20
JimmyAREM 0:a89fe490343e 21
JimmyAREM 1:785b37686185 22 Timeout tempsArretMvt;
JimmyAREM 1:785b37686185 23
JimmyAREM 1:785b37686185 24
JimmyAREM 1:785b37686185 25
JimmyAREM 0:a89fe490343e 26 void updateAndWriteScore(char n1, char n2, char n3)
JimmyAREM 0:a89fe490343e 27 {
JimmyAREM 0:a89fe490343e 28 bufferScore[0] = n1;
JimmyAREM 0:a89fe490343e 29 bufferScore[1] = n2;
JimmyAREM 0:a89fe490343e 30 bufferScore[2] = n3;
JimmyAREM 0:a89fe490343e 31 write(bufferScore);
JimmyAREM 0:a89fe490343e 32 }
JimmyAREM 0:a89fe490343e 33
JimmyAREM 0:a89fe490343e 34 void LectureI2CCarteCapteur(deplacement robot)
JimmyAREM 0:a89fe490343e 35 {
JimmyAREM 0:a89fe490343e 36 traitementBufferCapteurs();
JimmyAREM 0:a89fe490343e 37 if(AnalyseDistance(distanceUltrasonGauche, distanceUltrasonDroit, distanceUltrasonArriere, typeMovement) == ROBOT)
JimmyAREM 0:a89fe490343e 38 {
JimmyAREM 0:a89fe490343e 39 if( ((distanceUltrasonGauche <= 300) || (distanceUltrasonDroit <= 300)) && (typeMovement == DEPLACEMENT_AVANT) )
JimmyAREM 0:a89fe490343e 40 {
JimmyAREM 0:a89fe490343e 41 stopCapteurs = true;
JimmyAREM 0:a89fe490343e 42 }
JimmyAREM 0:a89fe490343e 43 else if ( (distanceUltrasonArriere <= 300) && (typeMovement == DEPLACEMENT_ARRIERE) )
JimmyAREM 0:a89fe490343e 44 {
JimmyAREM 0:a89fe490343e 45 stopCapteurs = true;
JimmyAREM 0:a89fe490343e 46 }
JimmyAREM 0:a89fe490343e 47 else
JimmyAREM 0:a89fe490343e 48 {
JimmyAREM 0:a89fe490343e 49 stopCapteurs = false;
JimmyAREM 0:a89fe490343e 50 }
JimmyAREM 0:a89fe490343e 51 }
JimmyAREM 0:a89fe490343e 52 else
JimmyAREM 0:a89fe490343e 53 {
JimmyAREM 0:a89fe490343e 54 stopCapteurs = false;
JimmyAREM 0:a89fe490343e 55 }
JimmyAREM 0:a89fe490343e 56 }
JimmyAREM 0:a89fe490343e 57
JimmyAREM 1:785b37686185 58 void arretSystem()
JimmyAREM 1:785b37686185 59 {
JimmyAREM 1:785b37686185 60 Pompe pompe(PIN_POMPE);
JimmyAREM 1:785b37686185 61 Demarreur demarreur(PIN_DEMARREUR);
JimmyAREM 1:785b37686185 62 Bras brasGauche(PIN_SERVO_BRAS_GAUCHE, GAUCHE);
JimmyAREM 1:785b37686185 63 Bras brasDroit(PIN_SERVO_BRAS_DROIT, DROIT);
JimmyAREM 1:785b37686185 64 BrasPousser brasPousserGauche(PIN_SERVO_PALETS_GAUCHE, GAUCHE);
JimmyAREM 1:785b37686185 65 BrasPousser brasPousserDroit(PIN_SERVO_PALETS_DROIT,DROIT);
JimmyAREM 1:785b37686185 66 deplacement robot;
JimmyAREM 1:785b37686185 67
JimmyAREM 1:785b37686185 68 robot.initialisation();
JimmyAREM 1:785b37686185 69 robot.arreterRobot();
JimmyAREM 1:785b37686185 70 pompe.desactiver();
JimmyAREM 1:785b37686185 71 }
JimmyAREM 1:785b37686185 72
JimmyAREM 2:e0402d1e9ed5 73 /*---------Debut Strategie homologation violet ------------------------------------------------------*/
JimmyAREM 2:e0402d1e9ed5 74
JimmyAREM 2:e0402d1e9ed5 75
JimmyAREM 1:785b37686185 76 void strategieHomologationViolet(deplacement robot, Pompe pompe, Demarreur demarreur, Bras brasGauche, Bras brasDroit, BrasPousser brasPousserGauche, BrasPousser brasPousserDroit)
JimmyAREM 1:785b37686185 77 {
JimmyAREM 1:785b37686185 78 write(bufferScore);
JimmyAREM 1:785b37686185 79 Timer tempsMatch; // timer en seconde
JimmyAREM 1:785b37686185 80 int etapeMatch = 0;
JimmyAREM 1:785b37686185 81 while(demarreur.getState() == false)
JimmyAREM 1:785b37686185 82 {
JimmyAREM 1:785b37686185 83 //on attend
JimmyAREM 1:785b37686185 84 //pc.printf("On attend le depart du Robot Thanos\n\r");
JimmyAREM 1:785b37686185 85 }
JimmyAREM 1:785b37686185 86 tempsArretMvt.attach(&arretSystem, TEMPSMATCH);
JimmyAREM 1:785b37686185 87 lancerTimerEcran();
JimmyAREM 1:785b37686185 88 tempsMatch.start();
JimmyAREM 1:785b37686185 89 typeEvitement = ARRET;
JimmyAREM 1:785b37686185 90 while(tempsMatch <= TEMPSMATCH)
JimmyAREM 1:785b37686185 91 {
JimmyAREM 1:785b37686185 92 switch (etapeMatch) {
JimmyAREM 1:785b37686185 93
JimmyAREM 1:785b37686185 94 case 0 : /* On tourne pour aller vers le terrain adverse et on avance jusqu'au milieu du terrain */
JimmyAREM 1:785b37686185 95 {
JimmyAREM 1:785b37686185 96 typeMovement = DEPLACEMENT_AVANT;
JimmyAREM 1:785b37686185 97 robot.rotation_rel(90);
JimmyAREM 1:785b37686185 98 robot.ligne_droite_basique(127500);
JimmyAREM 1:785b37686185 99 etapeMatch++;
JimmyAREM 1:785b37686185 100
JimmyAREM 1:785b37686185 101 break;
JimmyAREM 1:785b37686185 102 }
JimmyAREM 1:785b37686185 103 case 1 : /* On se met en position pour pousser les palets */
JimmyAREM 1:785b37686185 104 {
JimmyAREM 1:785b37686185 105 robot.rotation_rel(90);
JimmyAREM 1:785b37686185 106 robot.ligne_droite_basique(60000);
JimmyAREM 1:785b37686185 107 robot.rotation_rel(90);
JimmyAREM 1:785b37686185 108 brasPousserDroit.activerBras();
JimmyAREM 1:785b37686185 109 brasPousserGauche.activerBras();
JimmyAREM 1:785b37686185 110 etapeMatch++;
JimmyAREM 1:785b37686185 111
JimmyAREM 1:785b37686185 112 break;
JimmyAREM 1:785b37686185 113 }
JimmyAREM 1:785b37686185 114 case 2 : /* On pousse la zone de chaos dans les cases */
JimmyAREM 1:785b37686185 115 {
JimmyAREM 1:785b37686185 116 robot.ligne_droite_basique(110000);
JimmyAREM 1:785b37686185 117 updateAndWriteScore('0', '1', '0');
JimmyAREM 1:785b37686185 118 etapeMatch++;
JimmyAREM 1:785b37686185 119
JimmyAREM 1:785b37686185 120 break;
JimmyAREM 1:785b37686185 121 }
JimmyAREM 1:785b37686185 122 case 3 : /* On se met en position pour faire des rectangles */
JimmyAREM 1:785b37686185 123 {
JimmyAREM 1:785b37686185 124 typeMovement = DEPLACEMENT_ARRIERE;
JimmyAREM 1:785b37686185 125 robot.marche_arriere(-10000);
JimmyAREM 1:785b37686185 126 brasPousserDroit.desactiverBras();
JimmyAREM 1:785b37686185 127 brasPousserGauche.desactiverBras();
JimmyAREM 1:785b37686185 128 etapeMatch++;
JimmyAREM 1:785b37686185 129
JimmyAREM 1:785b37686185 130 break;
JimmyAREM 1:785b37686185 131 }
JimmyAREM 1:785b37686185 132 case 4 : /* On fait un rectangle arriere */
JimmyAREM 1:785b37686185 133 {
JimmyAREM 1:785b37686185 134
JimmyAREM 1:785b37686185 135 robot.marche_arriere(-50000);
JimmyAREM 1:785b37686185 136 robot.rotation_rel(-90);
JimmyAREM 1:785b37686185 137 robot.marche_arriere(-50000);
JimmyAREM 1:785b37686185 138 robot.rotation_rel(-90);
JimmyAREM 1:785b37686185 139 robot.marche_arriere(-50000);
JimmyAREM 1:785b37686185 140 robot.rotation_rel(-90);
JimmyAREM 1:785b37686185 141 robot.marche_arriere(-50000);
JimmyAREM 1:785b37686185 142 //robot.rotation_rel(180);
JimmyAREM 1:785b37686185 143 etapeMatch++;
JimmyAREM 1:785b37686185 144
JimmyAREM 1:785b37686185 145 break;
JimmyAREM 1:785b37686185 146 }
JimmyAREM 1:785b37686185 147 case 5 : /* On pousse le palet vert ou le vert et les deux bleus dans la balance en passant par la pente */
JimmyAREM 1:785b37686185 148 {
JimmyAREM 1:785b37686185 149 typeMovement = DEPLACEMENT_AVANT;
JimmyAREM 1:785b37686185 150 robot.ligne_droite_basique(50000);
JimmyAREM 1:785b37686185 151 robot.rotation_rel(90);
JimmyAREM 1:785b37686185 152 robot.ligne_droite_basique(50000);
JimmyAREM 1:785b37686185 153 robot.rotation_rel(90);
JimmyAREM 1:785b37686185 154 robot.ligne_droite_basique(50000);
JimmyAREM 1:785b37686185 155 robot.rotation_rel(90);
JimmyAREM 1:785b37686185 156 robot.ligne_droite_basique(50000);
JimmyAREM 1:785b37686185 157 robot.rotation_rel(90);
JimmyAREM 1:785b37686185 158 etapeMatch++;
JimmyAREM 1:785b37686185 159
JimmyAREM 1:785b37686185 160 break;
JimmyAREM 1:785b37686185 161 }
JimmyAREM 1:785b37686185 162
JimmyAREM 1:785b37686185 163 default:
JimmyAREM 1:785b37686185 164 {
JimmyAREM 1:785b37686185 165 robot.vitesse_nulle_D(0);
JimmyAREM 1:785b37686185 166 robot.vitesse_nulle_G(0);
JimmyAREM 1:785b37686185 167 motors_stop();
JimmyAREM 1:785b37686185 168 }
JimmyAREM 1:785b37686185 169 }
JimmyAREM 1:785b37686185 170 }
JimmyAREM 1:785b37686185 171
JimmyAREM 1:785b37686185 172 //Arrêter les moteurs
JimmyAREM 1:785b37686185 173 robot.vitesse_nulle_D(0);
JimmyAREM 1:785b37686185 174 robot.vitesse_nulle_G(0);
JimmyAREM 1:785b37686185 175 motors_stop();
JimmyAREM 1:785b37686185 176 while(1);
JimmyAREM 1:785b37686185 177 }
JimmyAREM 1:785b37686185 178
JimmyAREM 2:e0402d1e9ed5 179 /*-------Fin Stratégie homologation violet------------------------------------------------------------*/
JimmyAREM 2:e0402d1e9ed5 180
JimmyAREM 2:e0402d1e9ed5 181
JimmyAREM 2:e0402d1e9ed5 182 /*-------Debut Strategie homologation jaune-----------------------------------------------------------*/
JimmyAREM 2:e0402d1e9ed5 183
JimmyAREM 2:e0402d1e9ed5 184 void strategieHomologationJaune(deplacement robot, Pompe pompe, Demarreur demarreur, Bras brasGauche, Bras brasDroit, BrasPousser brasPousserGauche, BrasPousser brasPousserDroit)
JimmyAREM 2:e0402d1e9ed5 185 {
JimmyAREM 2:e0402d1e9ed5 186 write(bufferScore);
JimmyAREM 2:e0402d1e9ed5 187 Timer tempsMatch; // timer en seconde
JimmyAREM 2:e0402d1e9ed5 188 int etapeMatch = 0;
JimmyAREM 2:e0402d1e9ed5 189 while(demarreur.getState() == false)
JimmyAREM 2:e0402d1e9ed5 190 {
JimmyAREM 2:e0402d1e9ed5 191 //on attend
JimmyAREM 2:e0402d1e9ed5 192 //pc.printf("On attend le depart du Robot Thanos\n\r");
JimmyAREM 2:e0402d1e9ed5 193 }
JimmyAREM 2:e0402d1e9ed5 194 tempsArretMvt.attach(&arretSystem, TEMPSMATCH);
JimmyAREM 2:e0402d1e9ed5 195 lancerTimerEcran();
JimmyAREM 2:e0402d1e9ed5 196 tempsMatch.start();
JimmyAREM 2:e0402d1e9ed5 197 typeEvitement = ARRET;
JimmyAREM 2:e0402d1e9ed5 198 }
JimmyAREM 2:e0402d1e9ed5 199
JimmyAREM 2:e0402d1e9ed5 200 /*Fin Strategie homologation jaune -------------------------------------------------------------------*/
JimmyAREM 2:e0402d1e9ed5 201
JimmyAREM 2:e0402d1e9ed5 202
JimmyAREM 2:e0402d1e9ed5 203 /*Debut Strategie classique violet -------------------------------------------------------------------*/
JimmyAREM 2:e0402d1e9ed5 204
JimmyAREM 2:e0402d1e9ed5 205
JimmyAREM 0:a89fe490343e 206 void strategieClassiqueViolet(deplacement robot, Pompe pompe, Demarreur demarreur, Bras brasGauche, Bras brasDroit, BrasPousser brasPousserGauche, BrasPousser brasPousserDroit)
JimmyAREM 0:a89fe490343e 207 {
JimmyAREM 0:a89fe490343e 208 write(bufferScore);
JimmyAREM 0:a89fe490343e 209 Timer tempsMatch; // timer en seconde
JimmyAREM 0:a89fe490343e 210 int etapeMatch = 0;
JimmyAREM 0:a89fe490343e 211 while(demarreur.getState() == false)
JimmyAREM 0:a89fe490343e 212 {
JimmyAREM 0:a89fe490343e 213 //on attend
JimmyAREM 0:a89fe490343e 214 //pc.printf("On attend le depart du Robot Thanos\n\r");
JimmyAREM 0:a89fe490343e 215 }
JimmyAREM 1:785b37686185 216 tempsArretMvt.attach(&arretSystem, TEMPSMATCH);
JimmyAREM 0:a89fe490343e 217 lancerTimerEcran();
JimmyAREM 0:a89fe490343e 218 tempsMatch.start();
JimmyAREM 0:a89fe490343e 219 while(tempsMatch <= TEMPSMATCH)
JimmyAREM 0:a89fe490343e 220 {
JimmyAREM 0:a89fe490343e 221 switch (etapeMatch) {
JimmyAREM 0:a89fe490343e 222
JimmyAREM 0:a89fe490343e 223 case 0 : /* On active l'expérience */
JimmyAREM 0:a89fe490343e 224 {
JimmyAREM 0:a89fe490343e 225 typeMovement = DEPLACEMENT_AVANT;
JimmyAREM 2:e0402d1e9ed5 226 robot.ligne_droite_basique(26500);
JimmyAREM 0:a89fe490343e 227 robot.poussette(300);
JimmyAREM 0:a89fe490343e 228 updateAndWriteScore('0', '4', '0');
JimmyAREM 0:a89fe490343e 229 etapeMatch++;
JimmyAREM 0:a89fe490343e 230
JimmyAREM 0:a89fe490343e 231 break;
JimmyAREM 0:a89fe490343e 232 }
JimmyAREM 0:a89fe490343e 233 case 1 : /* On pousse le palet bleu de la pente de l'accélérateur */
JimmyAREM 0:a89fe490343e 234 {
JimmyAREM 0:a89fe490343e 235 typeMovement = DEPLACEMENT_ARRIERE;
JimmyAREM 0:a89fe490343e 236 robot.marche_arriere(-11200);
JimmyAREM 0:a89fe490343e 237 typeMovement = DEPLACEMENT_AVANT;
JimmyAREM 2:e0402d1e9ed5 238 /*robot.rotation_rel(90);
JimmyAREM 2:e0402d1e9ed5 239 robot.ligne_droite_basique(130000);*/
JimmyAREM 2:e0402d1e9ed5 240 robot.va_au_point(160000,24300,0);
JimmyAREM 0:a89fe490343e 241 brasDroit.activerBras();
JimmyAREM 2:e0402d1e9ed5 242 robot.ligne_droite_basique(14000);
JimmyAREM 0:a89fe490343e 243 brasDroit.desactiverBras();
JimmyAREM 0:a89fe490343e 244 updateAndWriteScore('0', '5', '0');
JimmyAREM 0:a89fe490343e 245 etapeMatch++;
JimmyAREM 0:a89fe490343e 246
JimmyAREM 0:a89fe490343e 247 break;
JimmyAREM 0:a89fe490343e 248 }
JimmyAREM 0:a89fe490343e 249 case 2 : /* On récupère le goldenium */
JimmyAREM 0:a89fe490343e 250 {
JimmyAREM 2:e0402d1e9ed5 251 robot.va_au_point(223000,30000,-90);
JimmyAREM 2:e0402d1e9ed5 252 //robot.ligne_droite_basique(54500);
JimmyAREM 2:e0402d1e9ed5 253 //robot.rotation_rel(-90);
JimmyAREM 0:a89fe490343e 254 pompe.activer();
JimmyAREM 2:e0402d1e9ed5 255 robot.poussette(1500);
JimmyAREM 0:a89fe490343e 256 typeMovement = DEPLACEMENT_ARRIERE;
JimmyAREM 0:a89fe490343e 257 robot.marche_arriere(-10000);
JimmyAREM 0:a89fe490343e 258 typeMovement = DEPLACEMENT_AVANT;
JimmyAREM 0:a89fe490343e 259 updateAndWriteScore('0', '8', '0');
JimmyAREM 0:a89fe490343e 260 etapeMatch++;
JimmyAREM 0:a89fe490343e 261
JimmyAREM 0:a89fe490343e 262 break;
JimmyAREM 0:a89fe490343e 263 }
JimmyAREM 0:a89fe490343e 264 case 3 : /* On met le goldenium dans la balance */
JimmyAREM 0:a89fe490343e 265 {
JimmyAREM 2:e0402d1e9ed5 266 typeEvitement = ARRET;
JimmyAREM 2:e0402d1e9ed5 267 robot.va_au_point(130700,115000,90);
JimmyAREM 2:e0402d1e9ed5 268 robot.ligne_droite_basique(15000);
JimmyAREM 2:e0402d1e9ed5 269 /*robot.rotation_rel(-90);
JimmyAREM 2:e0402d1e9ed5 270 robot.ligne_droite_basique(93000);
JimmyAREM 0:a89fe490343e 271 robot.rotation_rel(-90);
JimmyAREM 2:e0402d1e9ed5 272 robot.ligne_droite_basique(104000);*/
JimmyAREM 2:e0402d1e9ed5 273 robot.poussette(1500);
JimmyAREM 0:a89fe490343e 274 pompe.desactiver();
JimmyAREM 0:a89fe490343e 275 wait(2);
JimmyAREM 0:a89fe490343e 276 updateAndWriteScore('1', '0', '4');
JimmyAREM 0:a89fe490343e 277 etapeMatch++;
JimmyAREM 0:a89fe490343e 278
JimmyAREM 0:a89fe490343e 279 break;
JimmyAREM 0:a89fe490343e 280 }
JimmyAREM 0:a89fe490343e 281 case 4 : /* On pousse la zone de chaos dans la zone du redium */
JimmyAREM 0:a89fe490343e 282 {
JimmyAREM 0:a89fe490343e 283 typeMovement = DEPLACEMENT_ARRIERE;
JimmyAREM 0:a89fe490343e 284 robot.marche_arriere(-8000);
JimmyAREM 0:a89fe490343e 285 typeMovement = DEPLACEMENT_AVANT;
JimmyAREM 2:e0402d1e9ed5 286 robot.rotation_rel(130);
JimmyAREM 0:a89fe490343e 287 brasPousserGauche.activerBras();
JimmyAREM 0:a89fe490343e 288 brasPousserDroit.activerBras();
JimmyAREM 2:e0402d1e9ed5 289 robot.ligne_droite_basique(117500);
JimmyAREM 0:a89fe490343e 290 updateAndWriteScore('1', '2', '4');
JimmyAREM 0:a89fe490343e 291 etapeMatch++;
JimmyAREM 0:a89fe490343e 292
JimmyAREM 0:a89fe490343e 293 break;
JimmyAREM 0:a89fe490343e 294 }
JimmyAREM 0:a89fe490343e 295 case 5 : /* On pousse le palet vert ou le vert et les deux bleus dans la balance en passant par la pente */
JimmyAREM 0:a89fe490343e 296 {
JimmyAREM 0:a89fe490343e 297 brasPousserGauche.desactiverBras();
JimmyAREM 0:a89fe490343e 298 brasPousserDroit.desactiverBras();
JimmyAREM 0:a89fe490343e 299 typeMovement = DEPLACEMENT_ARRIERE;
JimmyAREM 0:a89fe490343e 300 robot.marche_arriere(-8000);
JimmyAREM 0:a89fe490343e 301 typeMovement = DEPLACEMENT_AVANT;
JimmyAREM 2:e0402d1e9ed5 302 /*robot.rotation_rel(-90);
JimmyAREM 1:785b37686185 303 robot.ligne_droite_basique(45000);
JimmyAREM 0:a89fe490343e 304 robot.rotation_rel(-42);
JimmyAREM 1:785b37686185 305 robot.ligne_droite_basique(86000);
JimmyAREM 2:e0402d1e9ed5 306 robot.rotation_rel(-90);*/
JimmyAREM 2:e0402d1e9ed5 307 robot.va_au_point(18000,179500,0);
JimmyAREM 2:e0402d1e9ed5 308 robot.ligne_droite_basique(5000);
JimmyAREM 0:a89fe490343e 309 brasPousserGauche.activerBras();
JimmyAREM 0:a89fe490343e 310 brasPousserDroit.activerBras();
JimmyAREM 0:a89fe490343e 311 //mettre la fonction pente
JimmyAREM 2:e0402d1e9ed5 312
JimmyAREM 2:e0402d1e9ed5 313 /*robot.commande_vitesse(30,30);
JimmyAREM 0:a89fe490343e 314 wait(7);
JimmyAREM 0:a89fe490343e 315 robot.commande_vitesse(150,150);
JimmyAREM 2:e0402d1e9ed5 316 wait(3);*/
JimmyAREM 0:a89fe490343e 317 updateAndWriteScore('1', '3', '4');
JimmyAREM 0:a89fe490343e 318 etapeMatch++;
JimmyAREM 0:a89fe490343e 319
JimmyAREM 0:a89fe490343e 320 break;
JimmyAREM 0:a89fe490343e 321 }
JimmyAREM 0:a89fe490343e 322 case 6 : /* On redescant de la pente */
JimmyAREM 0:a89fe490343e 323 {
JimmyAREM 2:e0402d1e9ed5 324 pompe.activer();
JimmyAREM 2:e0402d1e9ed5 325 robot.pente_combo(brasPousserGauche,brasPousserDroit,pompe);
JimmyAREM 2:e0402d1e9ed5 326 /*robot.commande_vitesse(-30,-30);
JimmyAREM 0:a89fe490343e 327 wait(2);
JimmyAREM 0:a89fe490343e 328 brasPousserGauche.desactiverBras();
JimmyAREM 0:a89fe490343e 329 brasPousserDroit.desactiverBras();
JimmyAREM 0:a89fe490343e 330 robot.commande_vitesse(-50,-50);
JimmyAREM 2:e0402d1e9ed5 331 wait_ms(10000);*/
JimmyAREM 0:a89fe490343e 332 robot.vitesse_nulle_D(0);
JimmyAREM 0:a89fe490343e 333 robot.vitesse_nulle_G(0);
JimmyAREM 0:a89fe490343e 334 etapeMatch++;
JimmyAREM 0:a89fe490343e 335
JimmyAREM 0:a89fe490343e 336 break;
JimmyAREM 0:a89fe490343e 337 }
JimmyAREM 0:a89fe490343e 338 default:
JimmyAREM 0:a89fe490343e 339 {
JimmyAREM 0:a89fe490343e 340 robot.vitesse_nulle_D(0);
JimmyAREM 0:a89fe490343e 341 robot.vitesse_nulle_G(0);
JimmyAREM 0:a89fe490343e 342 motors_stop();
JimmyAREM 0:a89fe490343e 343 pompe.desactiver();
JimmyAREM 0:a89fe490343e 344 }
JimmyAREM 0:a89fe490343e 345 }
JimmyAREM 0:a89fe490343e 346 }
JimmyAREM 0:a89fe490343e 347
JimmyAREM 0:a89fe490343e 348 //Arrêter les moteurs
JimmyAREM 0:a89fe490343e 349 robot.vitesse_nulle_D(0);
JimmyAREM 0:a89fe490343e 350 robot.vitesse_nulle_G(0);
JimmyAREM 0:a89fe490343e 351 motors_stop();
JimmyAREM 0:a89fe490343e 352 pompe.desactiver();
JimmyAREM 0:a89fe490343e 353 while(1);
JimmyAREM 0:a89fe490343e 354 }
JimmyAREM 0:a89fe490343e 355
JimmyAREM 0:a89fe490343e 356
JimmyAREM 2:e0402d1e9ed5 357 /*-------- Fin Strategie classique violet -----------------------------------------------*/
JimmyAREM 0:a89fe490343e 358
JimmyAREM 0:a89fe490343e 359
JimmyAREM 2:e0402d1e9ed5 360 /*------- Debut Strategie classique Jaune -----------------------------------------------*/
JimmyAREM 0:a89fe490343e 361
JimmyAREM 0:a89fe490343e 362
JimmyAREM 0:a89fe490343e 363 void strategieClassiqueJaune(deplacement robot, Pompe pompe, Demarreur demarreur, Bras brasGauche, Bras brasDroit, BrasPousser brasPousserGauche, BrasPousser brasPousserDroit)
JimmyAREM 0:a89fe490343e 364 {
JimmyAREM 0:a89fe490343e 365 write(bufferScore);
JimmyAREM 0:a89fe490343e 366 Timer tempsMatch; // timer en seconde
JimmyAREM 2:e0402d1e9ed5 367 int etapeMatch = 0;
JimmyAREM 0:a89fe490343e 368 while(demarreur.getState() == false)
JimmyAREM 0:a89fe490343e 369 {
JimmyAREM 0:a89fe490343e 370 //on attend
JimmyAREM 0:a89fe490343e 371 //pc.printf("On attend le depart du Robot Thanos\n\r");
JimmyAREM 0:a89fe490343e 372 }
JimmyAREM 1:785b37686185 373 tempsArretMvt.attach(&arretSystem, 100.0);
JimmyAREM 0:a89fe490343e 374 lancerTimerEcran();
JimmyAREM 0:a89fe490343e 375 tempsMatch.start();
JimmyAREM 0:a89fe490343e 376 while(tempsMatch <= TEMPSMATCH)
JimmyAREM 0:a89fe490343e 377 {
JimmyAREM 0:a89fe490343e 378 switch (etapeMatch) {
JimmyAREM 0:a89fe490343e 379
JimmyAREM 0:a89fe490343e 380 case 0 : /* On active l'expérience */
JimmyAREM 0:a89fe490343e 381 {
JimmyAREM 1:785b37686185 382 robot.ligne_droite_basique(25000);
JimmyAREM 0:a89fe490343e 383 robot.poussette(300);
JimmyAREM 0:a89fe490343e 384 updateAndWriteScore('0', '4', '0');
JimmyAREM 0:a89fe490343e 385 etapeMatch++;
JimmyAREM 0:a89fe490343e 386
JimmyAREM 0:a89fe490343e 387 break;
JimmyAREM 0:a89fe490343e 388 }
JimmyAREM 0:a89fe490343e 389 case 1 : /* On pousse le palet bleu de la pente de l'accélérateur */
JimmyAREM 0:a89fe490343e 390 {
JimmyAREM 0:a89fe490343e 391 robot.marche_arriere(-11200);
JimmyAREM 0:a89fe490343e 392 robot.rotation_rel(-90);
JimmyAREM 1:785b37686185 393 robot.ligne_droite_basique(130000);
JimmyAREM 0:a89fe490343e 394 brasDroit.activerBras();
JimmyAREM 1:785b37686185 395 robot.ligne_droite_basique(16000);
JimmyAREM 0:a89fe490343e 396 brasDroit.desactiverBras();
JimmyAREM 0:a89fe490343e 397 updateAndWriteScore('0', '5', '0');
JimmyAREM 0:a89fe490343e 398 etapeMatch++;
JimmyAREM 0:a89fe490343e 399
JimmyAREM 0:a89fe490343e 400 break;
JimmyAREM 0:a89fe490343e 401 }
JimmyAREM 0:a89fe490343e 402 case 2 : /* On récupère le goldenium */
JimmyAREM 0:a89fe490343e 403 {
JimmyAREM 1:785b37686185 404 robot.ligne_droite_basique(54500);
JimmyAREM 0:a89fe490343e 405 robot.rotation_rel(90);
JimmyAREM 0:a89fe490343e 406 pompe.activer();
JimmyAREM 0:a89fe490343e 407 robot.poussette(1000);
JimmyAREM 0:a89fe490343e 408 robot.marche_arriere(-10000);
JimmyAREM 0:a89fe490343e 409 updateAndWriteScore('0', '8', '0');
JimmyAREM 0:a89fe490343e 410 etapeMatch++;
JimmyAREM 0:a89fe490343e 411
JimmyAREM 0:a89fe490343e 412 break;
JimmyAREM 0:a89fe490343e 413 }
JimmyAREM 0:a89fe490343e 414 case 3 : /* On met le goldenium dans la balance */
JimmyAREM 0:a89fe490343e 415 {
JimmyAREM 0:a89fe490343e 416
JimmyAREM 0:a89fe490343e 417 robot.rotation_rel(90);
JimmyAREM 1:785b37686185 418 robot.ligne_droite_basique(96000);
JimmyAREM 0:a89fe490343e 419 robot.rotation_rel(90);
JimmyAREM 1:785b37686185 420 robot.ligne_droite_basique(104000);
JimmyAREM 0:a89fe490343e 421 robot.poussette(1000);
JimmyAREM 0:a89fe490343e 422 pompe.desactiver();
JimmyAREM 0:a89fe490343e 423 wait(2);
JimmyAREM 0:a89fe490343e 424 updateAndWriteScore('1', '0', '4');
JimmyAREM 0:a89fe490343e 425 etapeMatch++;
JimmyAREM 0:a89fe490343e 426
JimmyAREM 0:a89fe490343e 427 break;
JimmyAREM 0:a89fe490343e 428 }
JimmyAREM 0:a89fe490343e 429 case 4 : /* On pousse la zone de chaos dans la zone du redium */
JimmyAREM 0:a89fe490343e 430 {
JimmyAREM 0:a89fe490343e 431
JimmyAREM 0:a89fe490343e 432 robot.marche_arriere(-8000);
JimmyAREM 0:a89fe490343e 433 robot.rotation_rel(-135);
JimmyAREM 0:a89fe490343e 434 brasPousserGauche.activerBras();
JimmyAREM 0:a89fe490343e 435 brasPousserDroit.activerBras();
JimmyAREM 1:785b37686185 436 robot.ligne_droite_basique(112500);
JimmyAREM 0:a89fe490343e 437 updateAndWriteScore('1', '2', '4');
JimmyAREM 0:a89fe490343e 438 etapeMatch++;
JimmyAREM 0:a89fe490343e 439
JimmyAREM 0:a89fe490343e 440 break;
JimmyAREM 0:a89fe490343e 441 }
JimmyAREM 0:a89fe490343e 442 case 5 : /* On pousse le palet vert ou le vert et les deux bleus dans la balance en passant par la pente */
JimmyAREM 0:a89fe490343e 443 {
JimmyAREM 0:a89fe490343e 444 brasPousserGauche.desactiverBras();
JimmyAREM 0:a89fe490343e 445 brasPousserDroit.desactiverBras();
JimmyAREM 0:a89fe490343e 446 /*robot.marche_arriere(-8000);
JimmyAREM 0:a89fe490343e 447 robot.rotation_rel(-90);
JimmyAREM 0:a89fe490343e 448 robot.ligne_droite(45000);
JimmyAREM 0:a89fe490343e 449 robot.rotation_rel(-42);
JimmyAREM 0:a89fe490343e 450 robot.ligne_droite(86000);*/
JimmyAREM 0:a89fe490343e 451 robot.rotation_rel(90);
JimmyAREM 0:a89fe490343e 452 brasPousserGauche.activerBras();
JimmyAREM 0:a89fe490343e 453 brasPousserDroit.activerBras();
JimmyAREM 0:a89fe490343e 454 robot.commande_vitesse(30,30);
JimmyAREM 0:a89fe490343e 455 wait(7);
JimmyAREM 0:a89fe490343e 456 robot.commande_vitesse(150,150);
JimmyAREM 0:a89fe490343e 457 wait(3);
JimmyAREM 0:a89fe490343e 458 updateAndWriteScore('1', '3', '4');
JimmyAREM 0:a89fe490343e 459 etapeMatch++;
JimmyAREM 0:a89fe490343e 460
JimmyAREM 0:a89fe490343e 461 break;
JimmyAREM 0:a89fe490343e 462 }
JimmyAREM 0:a89fe490343e 463 case 6 : /* On redescant de la pente */
JimmyAREM 0:a89fe490343e 464 {
JimmyAREM 0:a89fe490343e 465 robot.commande_vitesse(-30,-30);
JimmyAREM 0:a89fe490343e 466 wait(2);
JimmyAREM 0:a89fe490343e 467 brasPousserGauche.desactiverBras();
JimmyAREM 0:a89fe490343e 468 brasPousserDroit.desactiverBras();
JimmyAREM 0:a89fe490343e 469 robot.commande_vitesse(-50,-50);
JimmyAREM 0:a89fe490343e 470 wait_ms(10000);
JimmyAREM 0:a89fe490343e 471 robot.vitesse_nulle_D(0);
JimmyAREM 0:a89fe490343e 472 robot.vitesse_nulle_G(0);
JimmyAREM 0:a89fe490343e 473 etapeMatch++;
JimmyAREM 0:a89fe490343e 474
JimmyAREM 0:a89fe490343e 475 break;
JimmyAREM 0:a89fe490343e 476 }
JimmyAREM 0:a89fe490343e 477 default:
JimmyAREM 0:a89fe490343e 478 {
JimmyAREM 0:a89fe490343e 479 robot.vitesse_nulle_D(0);
JimmyAREM 0:a89fe490343e 480 robot.vitesse_nulle_G(0);
JimmyAREM 0:a89fe490343e 481 motors_stop();
JimmyAREM 0:a89fe490343e 482 }
JimmyAREM 0:a89fe490343e 483 }
JimmyAREM 0:a89fe490343e 484 }
JimmyAREM 0:a89fe490343e 485
JimmyAREM 0:a89fe490343e 486 //Arrêter les moteurs
JimmyAREM 0:a89fe490343e 487 robot.vitesse_nulle_D(0);
JimmyAREM 0:a89fe490343e 488 robot.vitesse_nulle_G(0);
JimmyAREM 0:a89fe490343e 489 motors_stop();
JimmyAREM 0:a89fe490343e 490 while(1);
JimmyAREM 2:e0402d1e9ed5 491 }
JimmyAREM 2:e0402d1e9ed5 492
JimmyAREM 2:e0402d1e9ed5 493 /*--------- Fin Strategie classique jaune --------------------------------------------*/
JimmyAREM 2:e0402d1e9ed5 494
JimmyAREM 2:e0402d1e9ed5 495
JimmyAREM 2:e0402d1e9ed5 496 /*--------- Debut Strategie RCVA violet ----------------------------------------------*/
JimmyAREM 2:e0402d1e9ed5 497
JimmyAREM 2:e0402d1e9ed5 498
JimmyAREM 2:e0402d1e9ed5 499 void strategieRCVAViolet(deplacement robot, Pompe pompe, Demarreur demarreur, Bras brasGauche, Bras brasDroit, BrasPousser brasPousserGauche, BrasPousser brasPousserDroit)
JimmyAREM 2:e0402d1e9ed5 500 {
JimmyAREM 2:e0402d1e9ed5 501 write(bufferScore);
JimmyAREM 2:e0402d1e9ed5 502 Timer tempsMatch; // timer en seconde
JimmyAREM 2:e0402d1e9ed5 503 int etapeMatch = 0;
JimmyAREM 2:e0402d1e9ed5 504 while(demarreur.getState() == false)
JimmyAREM 2:e0402d1e9ed5 505 {
JimmyAREM 2:e0402d1e9ed5 506 //on attend
JimmyAREM 2:e0402d1e9ed5 507 //pc.printf("On attend le depart du Robot Thanos\n\r");
JimmyAREM 2:e0402d1e9ed5 508 }
JimmyAREM 2:e0402d1e9ed5 509 tempsArretMvt.attach(&arretSystem, TEMPSMATCH);
JimmyAREM 2:e0402d1e9ed5 510 lancerTimerEcran();
JimmyAREM 2:e0402d1e9ed5 511 tempsMatch.start();
JimmyAREM 2:e0402d1e9ed5 512 typeEvitement = ARRET;
JimmyAREM 2:e0402d1e9ed5 513 }
JimmyAREM 2:e0402d1e9ed5 514
JimmyAREM 2:e0402d1e9ed5 515
JimmyAREM 2:e0402d1e9ed5 516 /*-------- Fin Strategie RCVA violet -----------------------------------------------*/
JimmyAREM 2:e0402d1e9ed5 517
JimmyAREM 2:e0402d1e9ed5 518
JimmyAREM 2:e0402d1e9ed5 519 /*-------- Debut Strategie RCVA jaune -----------------------------------------------*/
JimmyAREM 2:e0402d1e9ed5 520
JimmyAREM 2:e0402d1e9ed5 521 void strategieRCVAJaune(deplacement robot, Pompe pompe, Demarreur demarreur, Bras brasGauche, Bras brasDroit, BrasPousser brasPousserGauche, BrasPousser brasPousserDroit)
JimmyAREM 2:e0402d1e9ed5 522 {
JimmyAREM 2:e0402d1e9ed5 523 write(bufferScore);
JimmyAREM 2:e0402d1e9ed5 524 Timer tempsMatch; // timer en seconde
JimmyAREM 2:e0402d1e9ed5 525 int etapeMatch = 0;
JimmyAREM 2:e0402d1e9ed5 526 while(demarreur.getState() == false)
JimmyAREM 2:e0402d1e9ed5 527 {
JimmyAREM 2:e0402d1e9ed5 528 //on attend
JimmyAREM 2:e0402d1e9ed5 529 //pc.printf("On attend le depart du Robot Thanos\n\r");
JimmyAREM 2:e0402d1e9ed5 530 }
JimmyAREM 2:e0402d1e9ed5 531 tempsArretMvt.attach(&arretSystem, TEMPSMATCH);
JimmyAREM 2:e0402d1e9ed5 532 lancerTimerEcran();
JimmyAREM 2:e0402d1e9ed5 533 tempsMatch.start();
JimmyAREM 2:e0402d1e9ed5 534 typeEvitement = ARRET;
JimmyAREM 2:e0402d1e9ed5 535 }
JimmyAREM 2:e0402d1e9ed5 536
JimmyAREM 2:e0402d1e9ed5 537
JimmyAREM 2:e0402d1e9ed5 538 /*-------- Fin Strategie RCVA jaune --------------------------------------------------*/
JimmyAREM 2:e0402d1e9ed5 539
JimmyAREM 2:e0402d1e9ed5 540 /*-------- Debut Strategie humiliation violet ---------------------------------------*/
JimmyAREM 2:e0402d1e9ed5 541
JimmyAREM 2:e0402d1e9ed5 542 void strategieHumiliationViolet(deplacement robot, Pompe pompe, Demarreur demarreur, Bras brasGauche, Bras brasDroit, BrasPousser brasPousserGauche, BrasPousser brasPousserDroit)
JimmyAREM 2:e0402d1e9ed5 543 {
JimmyAREM 2:e0402d1e9ed5 544 write(bufferScore);
JimmyAREM 2:e0402d1e9ed5 545 Timer tempsMatch; // timer en seconde
JimmyAREM 2:e0402d1e9ed5 546 int etapeMatch = 0;
JimmyAREM 2:e0402d1e9ed5 547 while(demarreur.getState() == false)
JimmyAREM 2:e0402d1e9ed5 548 {
JimmyAREM 2:e0402d1e9ed5 549 //on attend
JimmyAREM 2:e0402d1e9ed5 550 //pc.printf("On attend le depart du Robot Thanos\n\r");
JimmyAREM 2:e0402d1e9ed5 551 }
JimmyAREM 2:e0402d1e9ed5 552 tempsArretMvt.attach(&arretSystem, TEMPSMATCH);
JimmyAREM 2:e0402d1e9ed5 553 lancerTimerEcran();
JimmyAREM 2:e0402d1e9ed5 554 tempsMatch.start();
JimmyAREM 2:e0402d1e9ed5 555 typeEvitement = ARRET;
JimmyAREM 2:e0402d1e9ed5 556 }
JimmyAREM 2:e0402d1e9ed5 557
JimmyAREM 2:e0402d1e9ed5 558
JimmyAREM 2:e0402d1e9ed5 559 /*--------- Fin Strategie humiliation violet ----------------------------------------*/
JimmyAREM 2:e0402d1e9ed5 560
JimmyAREM 2:e0402d1e9ed5 561
JimmyAREM 2:e0402d1e9ed5 562 /*-------- Debut Strategie humiliation jaune ----------------------------------------*/
JimmyAREM 2:e0402d1e9ed5 563
JimmyAREM 2:e0402d1e9ed5 564 void strategieHumiliationJaune(deplacement robot, Pompe pompe, Demarreur demarreur, Bras brasGauche, Bras brasDroit, BrasPousser brasPousserGauche, BrasPousser brasPousserDroit)
JimmyAREM 2:e0402d1e9ed5 565 {
JimmyAREM 2:e0402d1e9ed5 566 write(bufferScore);
JimmyAREM 2:e0402d1e9ed5 567 Timer tempsMatch; // timer en seconde
JimmyAREM 2:e0402d1e9ed5 568 int etapeMatch = 0;
JimmyAREM 2:e0402d1e9ed5 569 while(demarreur.getState() == false)
JimmyAREM 2:e0402d1e9ed5 570 {
JimmyAREM 2:e0402d1e9ed5 571 //on attend
JimmyAREM 2:e0402d1e9ed5 572 //pc.printf("On attend le depart du Robot Thanos\n\r");
JimmyAREM 2:e0402d1e9ed5 573 }
JimmyAREM 2:e0402d1e9ed5 574 tempsArretMvt.attach(&arretSystem, TEMPSMATCH);
JimmyAREM 2:e0402d1e9ed5 575 lancerTimerEcran();
JimmyAREM 2:e0402d1e9ed5 576 tempsMatch.start();
JimmyAREM 2:e0402d1e9ed5 577 typeEvitement = ARRET;
JimmyAREM 2:e0402d1e9ed5 578 }
JimmyAREM 2:e0402d1e9ed5 579
JimmyAREM 2:e0402d1e9ed5 580
JimmyAREM 2:e0402d1e9ed5 581 /*--------- Fin Strategie humiliation jaune -----------------------------------------*/
JimmyAREM 2:e0402d1e9ed5 582
JimmyAREM 2:e0402d1e9ed5 583
JimmyAREM 2:e0402d1e9ed5 584
JimmyAREM 2:e0402d1e9ed5 585