librairie actions petit robot carte esclave

Dependents:   carte_esclave201_petit_rob carte_esclave2019 carte_esclave_PETIT_ROBOT_2019 ACRAC_carte_esclave_GROS_ROBOT_2019

Committer:
ares1999
Date:
Wed May 18 12:06:17 2022 +0000
Revision:
35:89c1a096e896
Parent:
34:2d7d09f9965c
o

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Artiom 0:42544b5e8b9f 1 #include "actions_Pr.h"
Artiom 0:42544b5e8b9f 2
ares1999 34:2d7d09f9965c 3 int mesure_resistor(float vpot,bool color) // definition de la fontion qui mesure les resistances
ares1999 34:2d7d09f9965c 4 {
ares1999 34:2d7d09f9965c 5 float sample = vpot;
ares1999 34:2d7d09f9965c 6 if ((sample > 0.8f) && (sample < 0.87f)) { // marge d'ereur +-5% de ce que qu'on mesure de la resistance bleu
ares1999 34:2d7d09f9965c 7 if (color == 1) {
ares1999 34:2d7d09f9965c 8 pc.printf("test non ok \n");
ares1999 34:2d7d09f9965c 9 return Enemy_color;
ares1999 34:2d7d09f9965c 10
ares1999 34:2d7d09f9965c 11 } else {
ares1999 34:2d7d09f9965c 12 pc.printf("test non ok1 \n");
ares1999 34:2d7d09f9965c 13 return Mycolor;
ares1999 34:2d7d09f9965c 14
ares1999 34:2d7d09f9965c 15
ares1999 34:2d7d09f9965c 16 }
ares1999 34:2d7d09f9965c 17 } else if ((sample > 0.37f) && (sample < 0.42f)) { // marge d'ereur +-5% de ce que qu'on mesure de la resistance rouge
ares1999 34:2d7d09f9965c 18 pc.printf("test ok0 \n");
ares1999 34:2d7d09f9965c 19 return rouge;
ares1999 34:2d7d09f9965c 20
ares1999 34:2d7d09f9965c 21 } else if ((sample > 0.70f) && (sample < 0.78f)) { // marge d'ereur +-5% de ce que qu'on mesure de la resistance jaune
ares1999 34:2d7d09f9965c 22 if (color == 1) {
ares1999 34:2d7d09f9965c 23 pc.printf("test non ok2 \n");
ares1999 34:2d7d09f9965c 24 return Mycolor;
ares1999 34:2d7d09f9965c 25
ares1999 34:2d7d09f9965c 26 } else {
ares1999 34:2d7d09f9965c 27 pc.printf("test non ok3 \n");
ares1999 34:2d7d09f9965c 28 return Enemy_color;
ares1999 34:2d7d09f9965c 29
ares1999 34:2d7d09f9965c 30 }
ares1999 34:2d7d09f9965c 31
ares1999 34:2d7d09f9965c 32 }
ares1999 34:2d7d09f9965c 33 pc.printf("nope");
ares1999 34:2d7d09f9965c 34 pc.printf(" %f",sample);
ares1999 34:2d7d09f9965c 35 return 9;
ares1999 34:2d7d09f9965c 36
ares1999 34:2d7d09f9965c 37 }
ares1999 34:2d7d09f9965c 38 //--------------------------------------------------------2022---------------------------------------------------------------------------------------------------------------------------
ares1999 35:89c1a096e896 39 //moi
ares1999 35:89c1a096e896 40 int tab[7]= {9,Mycolor,9,9,9,9,9};
ares1999 35:89c1a096e896 41 bool choix_color=0;
ares1999 35:89c1a096e896 42 AnalogIn releve(PA_5);
ares1999 35:89c1a096e896 43 AnalogIn releve1(PA_7);
ares1999 35:89c1a096e896 44 bool delay=true;
ares1999 35:89c1a096e896 45 int resultat;
ares1999 35:89c1a096e896 46 uint8_t correction=0;
ares1999 35:89c1a096e896 47 char msg_num_ca=0;
ares1999 34:2d7d09f9965c 48 ////////////////////////////////////////////////BRAS DE MESURE/////////////////////////////////////////////////////
ares1999 34:2d7d09f9965c 49
ares1999 34:2d7d09f9965c 50 char bras_choix=0,num_ca=0,msg_carre=0, ouv_ferm_CN=0;
gein 31:dd39b63a012a 51
gein 31:dd39b63a012a 52 int traitement()
gein 31:dd39b63a012a 53 {
gein 31:dd39b63a012a 54 typedef enum {init,ranger,mesure, bascule, pretest} type_etat;
gein 31:dd39b63a012a 55 static type_etat etat = init;
gein 31:dd39b63a012a 56 switch(etat) {
gein 31:dd39b63a012a 57 case init:
ekey29 32:56e06a1894ac 58
gein 31:dd39b63a012a 59 if(msg_carre==1) {
gein 31:dd39b63a012a 60 etat=ranger;
gein 31:dd39b63a012a 61 msg_carre=0;
gein 31:dd39b63a012a 62 } else if(msg_carre==2) {
gein 31:dd39b63a012a 63 etat=mesure;
gein 31:dd39b63a012a 64 msg_carre=0;
gein 31:dd39b63a012a 65 delay=true;
gein 31:dd39b63a012a 66 } else if(msg_carre==3) {
gein 31:dd39b63a012a 67
gein 31:dd39b63a012a 68 etat=pretest;
gein 31:dd39b63a012a 69 msg_carre=0;
gein 31:dd39b63a012a 70 }
gein 31:dd39b63a012a 71
gein 31:dd39b63a012a 72 break;
gein 31:dd39b63a012a 73
gein 31:dd39b63a012a 74 case ranger:
gein 31:dd39b63a012a 75 pc.printf("RANGER ");
ares1999 35:89c1a096e896 76 positionControl(ID_MILLIEU-choix_color*2, 800, PLAYTIME, RLED_ON, SERIAL_SPECIAL);
ares1999 35:89c1a096e896 77 positionControl(ID_HAUT-choix_color*2, 512, PLAYTIME, RLED_ON, SERIAL_SPECIAL);
gein 31:dd39b63a012a 78 if(msg_carre==2) {
gein 31:dd39b63a012a 79 etat=mesure;
gein 31:dd39b63a012a 80 msg_carre=0;
gein 31:dd39b63a012a 81 delay=true;
gein 31:dd39b63a012a 82 } else if(msg_carre==3) {
gein 31:dd39b63a012a 83
gein 31:dd39b63a012a 84 etat=pretest;
gein 31:dd39b63a012a 85 msg_carre=0;
gein 31:dd39b63a012a 86 }
ekey29 33:c8d5b8d1ffc0 87 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
gein 31:dd39b63a012a 88
gein 31:dd39b63a012a 89 break;
gein 31:dd39b63a012a 90
gein 31:dd39b63a012a 91
gein 31:dd39b63a012a 92 case mesure:
gein 31:dd39b63a012a 93 if(tab[num_ca]==9) {
ares1999 35:89c1a096e896 94 positionControl(ID_HAUT - choix_color*2, 214, 40, GLED_ON, SERIAL_SPECIAL);
ares1999 35:89c1a096e896 95 positionControl(ID_MILLIEU-choix_color*2, 602, 40, GLED_ON, SERIAL_SPECIAL);
gein 31:dd39b63a012a 96 while(delay ) {
ekey29 33:c8d5b8d1ffc0 97 if(choix_color==0){
ekey29 33:c8d5b8d1ffc0 98 resultat=mesure_resistor(releve1,choix_color);
ekey29 33:c8d5b8d1ffc0 99 }
ekey29 33:c8d5b8d1ffc0 100 else{
ekey29 33:c8d5b8d1ffc0 101 resultat=mesure_resistor(releve,choix_color);
ekey29 33:c8d5b8d1ffc0 102 }
gein 31:dd39b63a012a 103 if(resultat==0) {
gein 31:dd39b63a012a 104 delay=false;
gein 31:dd39b63a012a 105 }
gein 31:dd39b63a012a 106 if(resultat==1) {
gein 31:dd39b63a012a 107 delay=false;
gein 31:dd39b63a012a 108 }
gein 31:dd39b63a012a 109 if(resultat==2) {
gein 31:dd39b63a012a 110 delay=false;
gein 31:dd39b63a012a 111 }
gein 31:dd39b63a012a 112 if(correction==30) {
gein 31:dd39b63a012a 113 pc.printf("eror");
gein 31:dd39b63a012a 114 correction=0;
gein 31:dd39b63a012a 115 etat=pretest;
gein 31:dd39b63a012a 116 break;
gein 31:dd39b63a012a 117 } else {
gein 31:dd39b63a012a 118 correction=correction+5;
ares1999 35:89c1a096e896 119 positionControl(ID_MILLIEU-choix_color*2, 602-correction, 40, GLED_ON, SERIAL_SPECIAL); // on positionne la base 565
ekey29 33:c8d5b8d1ffc0 120
gein 31:dd39b63a012a 121 }
gein 31:dd39b63a012a 122 }
gein 31:dd39b63a012a 123
gein 31:dd39b63a012a 124 tab[num_ca]=resultat;
gein 31:dd39b63a012a 125 algo_carre (num_ca);
gein 31:dd39b63a012a 126
gein 31:dd39b63a012a 127
gein 31:dd39b63a012a 128
gein 31:dd39b63a012a 129 }
gein 31:dd39b63a012a 130 if(tab[num_ca]==rouge) {
gein 31:dd39b63a012a 131 etat=pretest;
gein 31:dd39b63a012a 132 SendCharCan(0x35,tab[num_ca]);
gein 31:dd39b63a012a 133 } else if(tab[num_ca]==Mycolor) {
gein 31:dd39b63a012a 134 etat=bascule;
gein 31:dd39b63a012a 135 SendCharCan(0x35,tab[num_ca]);
gein 31:dd39b63a012a 136 } else if(tab[num_ca]==Enemy_color) {
gein 31:dd39b63a012a 137 etat=pretest;
gein 31:dd39b63a012a 138 SendCharCan(0x35,tab[num_ca]);
gein 31:dd39b63a012a 139 }
ekey29 33:c8d5b8d1ffc0 140 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
gein 31:dd39b63a012a 141 break;
gein 31:dd39b63a012a 142
gein 31:dd39b63a012a 143
gein 31:dd39b63a012a 144 case bascule:
gein 31:dd39b63a012a 145
ares1999 35:89c1a096e896 146 positionControl(ID_HAUT - choix_color*2, 214, 40, GLED_ON, SERIAL_SPECIAL);
ares1999 35:89c1a096e896 147 positionControl(ID_MILLIEU-choix_color*2, 602, 40, GLED_ON, SERIAL_SPECIAL);
ares1999 35:89c1a096e896 148 positionControl(ID_HAUT-choix_color*2, 119, 20, GLED_ON, SERIAL_SPECIAL);
ares1999 35:89c1a096e896 149 positionControl(ID_HAUT-choix_color*2, 612, 20, GLED_ON, SERIAL_SPECIAL);
ares1999 35:89c1a096e896 150 positionControl(ID_MILLIEU-choix_color*2, 450, 20, GLED_ON, SERIAL_SPECIAL);
ares1999 35:89c1a096e896 151 positionControl(ID_MILLIEU-choix_color*2, 700, 20, GLED_ON, SERIAL_SPECIAL);
ares1999 35:89c1a096e896 152 positionControl(ID_HAUT - choix_color*2, 214, 40, GLED_ON, SERIAL_SPECIAL);
gein 31:dd39b63a012a 153
gein 31:dd39b63a012a 154
gein 31:dd39b63a012a 155 etat=pretest;//peut etre a changer
gein 31:dd39b63a012a 156
gein 31:dd39b63a012a 157 break;
gein 31:dd39b63a012a 158
gein 31:dd39b63a012a 159 case pretest:
ares1999 35:89c1a096e896 160 positionControl(ID_MILLIEU-choix_color*2, 700, 40, GLED_ON, SERIAL_SPECIAL); // on positionne la base 770
ares1999 35:89c1a096e896 161 positionControl(ID_HAUT - choix_color*2, 214, 40, GLED_ON, SERIAL_SPECIAL);
ekey29 33:c8d5b8d1ffc0 162 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
ekey29 33:c8d5b8d1ffc0 163 etat=init;
gein 31:dd39b63a012a 164
gein 31:dd39b63a012a 165 break;
gein 31:dd39b63a012a 166 }
gein 31:dd39b63a012a 167 return 0;
gein 31:dd39b63a012a 168 }
gein 31:dd39b63a012a 169 void set_color(bool color)
gein 31:dd39b63a012a 170 {
gein 31:dd39b63a012a 171 choix_color=color;
ekey29 33:c8d5b8d1ffc0 172 pc.printf("ident haut : %X \n",ID_HAUT - choix_color*2);
gein 31:dd39b63a012a 173 }
gein 31:dd39b63a012a 174 void BF_test_mesure(bool BJ)
gein 31:dd39b63a012a 175 {
ares1999 35:89c1a096e896 176 positionControl(ID_HAUT - choix_color*2, 214, 40, GLED_ON, SERIAL_SPECIAL);
ares1999 35:89c1a096e896 177 positionControl(ID_MILLIEU-choix_color*2, 602, 40, GLED_ON, SERIAL_SPECIAL);
gein 31:dd39b63a012a 178 if(mesure_resistor(releve,BJ)==1) {
ares1999 35:89c1a096e896 179 positionControl(ID_HAUT-choix_color*2, 119, 20, GLED_ON, SERIAL_SPECIAL);
ares1999 35:89c1a096e896 180 positionControl(ID_HAUT-choix_color*2, 612, 20, GLED_ON, SERIAL_SPECIAL);
ares1999 35:89c1a096e896 181 positionControl(ID_MILLIEU-choix_color*2, 450, 20, GLED_ON, SERIAL_SPECIAL);
ares1999 35:89c1a096e896 182 positionControl(ID_MILLIEU-choix_color*2, 700, 20, GLED_ON, SERIAL_SPECIAL);
ares1999 35:89c1a096e896 183 positionControl(ID_HAUT - choix_color*2, 214, 40, GLED_ON, SERIAL_SPECIAL);
gein 31:dd39b63a012a 184 SendCharCan(0x35,0x01);
gein 31:dd39b63a012a 185
gein 31:dd39b63a012a 186 } else if(mesure_resistor(releve,BJ)==0) {
ares1999 35:89c1a096e896 187 positionControl(ID_MILLIEU-choix_color*2, 700, 40, GLED_ON, SERIAL_SPECIAL);
ares1999 35:89c1a096e896 188 positionControl(ID_HAUT - choix_color*2, 214, 40, GLED_ON, SERIAL_SPECIAL);
gein 31:dd39b63a012a 189 SendCharCan(0x35,0x00);
gein 31:dd39b63a012a 190
gein 31:dd39b63a012a 191
gein 31:dd39b63a012a 192 } else if(mesure_resistor(releve,BJ)==2) {
ares1999 35:89c1a096e896 193 positionControl(ID_MILLIEU-choix_color*2, 700, 40, GLED_ON, SERIAL_SPECIAL);
ares1999 35:89c1a096e896 194 positionControl(ID_HAUT - choix_color*2, 214, 40, GLED_ON, SERIAL_SPECIAL);
gein 31:dd39b63a012a 195 SendCharCan(0x35,0x02);
gein 31:dd39b63a012a 196
gein 31:dd39b63a012a 197
gein 31:dd39b63a012a 198 }
gein 31:dd39b63a012a 199
gein 31:dd39b63a012a 200
gein 31:dd39b63a012a 201
gein 31:dd39b63a012a 202 }
gein 31:dd39b63a012a 203
gein 31:dd39b63a012a 204 int algo_carre (int nombre)
gein 31:dd39b63a012a 205 {
gein 31:dd39b63a012a 206 switch (nombre) {
gein 31:dd39b63a012a 207 case 0:
gein 31:dd39b63a012a 208 if(resultat==Mycolor) {
gein 31:dd39b63a012a 209
gein 31:dd39b63a012a 210 tab[2]=rouge;
gein 31:dd39b63a012a 211 } else {
gein 31:dd39b63a012a 212 tab[2]=Mycolor;
gein 31:dd39b63a012a 213 }
gein 31:dd39b63a012a 214 break;
gein 31:dd39b63a012a 215
gein 31:dd39b63a012a 216 case 2:
gein 31:dd39b63a012a 217
gein 31:dd39b63a012a 218 if(resultat==Mycolor) {
gein 31:dd39b63a012a 219
gein 31:dd39b63a012a 220 tab[0]=rouge;
gein 31:dd39b63a012a 221 } else {
gein 31:dd39b63a012a 222 tab[1]=Mycolor;
gein 31:dd39b63a012a 223 }
gein 31:dd39b63a012a 224 break;
gein 31:dd39b63a012a 225 case 3:
gein 31:dd39b63a012a 226
gein 31:dd39b63a012a 227 if(resultat==Mycolor) {
gein 31:dd39b63a012a 228 tab[4]=Enemy_color;
gein 31:dd39b63a012a 229 tab[5]=Enemy_color;
gein 31:dd39b63a012a 230 tab[6]=Mycolor;
gein 31:dd39b63a012a 231 } else {
gein 31:dd39b63a012a 232 tab[4]=Mycolor;
gein 31:dd39b63a012a 233 tab[5]=Mycolor;
gein 31:dd39b63a012a 234 tab[6]=Enemy_color;
gein 31:dd39b63a012a 235 }
gein 31:dd39b63a012a 236 break;
gein 31:dd39b63a012a 237 case 4:
gein 31:dd39b63a012a 238
gein 31:dd39b63a012a 239 if(resultat==Mycolor) {
gein 31:dd39b63a012a 240 tab[3]=Enemy_color;
gein 31:dd39b63a012a 241 tab[5]=Mycolor;
gein 31:dd39b63a012a 242 tab[6]=Enemy_color;
gein 31:dd39b63a012a 243 } else {
gein 31:dd39b63a012a 244 tab[3]=Mycolor;
gein 31:dd39b63a012a 245 tab[5]=Enemy_color;
gein 31:dd39b63a012a 246 tab[6]=Mycolor;
gein 31:dd39b63a012a 247 }
gein 31:dd39b63a012a 248 break;
gein 31:dd39b63a012a 249 case 5:
gein 31:dd39b63a012a 250
gein 31:dd39b63a012a 251 if(resultat==Mycolor) {
gein 31:dd39b63a012a 252 tab[3]=Enemy_color;
gein 31:dd39b63a012a 253 tab[4]=Mycolor;
gein 31:dd39b63a012a 254 tab[6]=Enemy_color;
gein 31:dd39b63a012a 255 } else {
gein 31:dd39b63a012a 256
gein 31:dd39b63a012a 257 tab[3]=Mycolor;
gein 31:dd39b63a012a 258 tab[4]=Enemy_color;
gein 31:dd39b63a012a 259 tab[6]=Mycolor;
gein 31:dd39b63a012a 260 }
gein 31:dd39b63a012a 261
gein 31:dd39b63a012a 262 break;
gein 31:dd39b63a012a 263 case 6:
gein 31:dd39b63a012a 264
gein 31:dd39b63a012a 265 if(resultat==Mycolor) {
gein 31:dd39b63a012a 266
gein 31:dd39b63a012a 267 tab[3]=Mycolor;
gein 31:dd39b63a012a 268 tab[4]=Enemy_color;
gein 31:dd39b63a012a 269 tab[5]=Enemy_color;
gein 31:dd39b63a012a 270 } else {
gein 31:dd39b63a012a 271
gein 31:dd39b63a012a 272 tab[3]=Enemy_color;
gein 31:dd39b63a012a 273 tab[4]=Mycolor;
gein 31:dd39b63a012a 274 tab[5]=Mycolor;
gein 31:dd39b63a012a 275 }
gein 31:dd39b63a012a 276 break;
gein 31:dd39b63a012a 277 }
gein 31:dd39b63a012a 278
gein 31:dd39b63a012a 279 return 0;
ares1999 34:2d7d09f9965c 280 }
ares1999 34:2d7d09f9965c 281
ares1999 34:2d7d09f9965c 282 ////////////////////////////////////////////////BRAS 2022/////////////////////////////////////////////////////
ares1999 34:2d7d09f9965c 283
ares1999 34:2d7d09f9965c 284 //Variables "data" fonction positionControl_Mul_ensemble_complex
ares1999 34:2d7d09f9965c 285 uint8_t servos_BAV[6] = {RLED_ON, BAV_BASE, GLED_ON, BAV_MILIEU, BLED_ON, BAV_HAUT};
ares1999 34:2d7d09f9965c 286 uint8_t servos_BAR[6] = {RLED_ON, BAR_BASE, GLED_ON, BAR_MILIEU, BLED_ON, BAR_HAUT};
ares1999 34:2d7d09f9965c 287 uint8_t servos_HAV[6] = {RLED_ON, HAV_BASE, GLED_ON, HAV_MILIEU, BLED_ON, HAV_HAUT};
ares1999 34:2d7d09f9965c 288 uint8_t servos_HAR[6] = {RLED_ON, HAR_BASE, GLED_ON, HAR_MILIEU, BLED_ON, HAR_HAUT};
ares1999 34:2d7d09f9965c 289
ares1999 34:2d7d09f9965c 290 //Variables position des bras
ares1999 34:2d7d09f9965c 291 //bras Bas Gauche
ares1999 34:2d7d09f9965c 292 uint16_t rangement_BAV[3] = {950,75,850};
ares1999 34:2d7d09f9965c 293 uint16_t pre_prise_BAV[3] = {790,210,790};
ares1999 35:89c1a096e896 294 uint16_t prise_BAV[3] = {560,330,660};
ares1999 34:2d7d09f9965c 295 uint16_t rangement2_BAV[3] = {950,75,510};
ares1999 34:2d7d09f9965c 296 //Positions intermédiaires bas
ares1999 34:2d7d09f9965c 297 uint16_t pre_passe_BAV[3] = {725,335,420};
ares1999 34:2d7d09f9965c 298 uint16_t passe_BAV[3] = {365,755,310};
ares1999 34:2d7d09f9965c 299 uint16_t pre_rangement_BAV[3] = {325,745,510};
ares1999 34:2d7d09f9965c 300 //bras Haut Gauche
ares1999 34:2d7d09f9965c 301 uint16_t rangement_HAV[3] = {100,100,175};
ares1999 34:2d7d09f9965c 302 uint16_t pre_prise_HAV[3] = {660,660,490};
ares1999 34:2d7d09f9965c 303 uint16_t prise_HAV[3] = {570,610,710};
ares1999 34:2d7d09f9965c 304 uint16_t rangement2_HAV[3] = {100,100,230};
ares1999 34:2d7d09f9965c 305 //Positions intermédiaires haut
ares1999 35:89c1a096e896 306 uint16_t pose_HAV[3] = {520,500,570};
ares1999 34:2d7d09f9965c 307
ares1999 34:2d7d09f9965c 308 //bras Bas Droite
ares1999 34:2d7d09f9965c 309 uint16_t rangement_BAR[3] = {75,950,175};
ares1999 34:2d7d09f9965c 310 uint16_t pre_prise_BAR[3] = {210,790,210};
ares1999 35:89c1a096e896 311 uint16_t prise_BAR[3] = {460,690,340}; //{450,675,345};
ares1999 34:2d7d09f9965c 312 uint16_t rangement2_BAR[3] = {75,950,510};
ares1999 34:2d7d09f9965c 313 //Positions intermédiaires
ares1999 34:2d7d09f9965c 314 uint16_t pre_passe_BAR[3] = {300,690,600};
ares1999 34:2d7d09f9965c 315 uint16_t passe_BAR[3] = {660,270,715};
ares1999 35:89c1a096e896 316 uint16_t pre_rangement_BAR[3] = {700,280,490};
ares1999 34:2d7d09f9965c 317 //bras Haut Droite
ares1999 34:2d7d09f9965c 318 uint16_t rangement_HAR[3] = {925,925,850};
ares1999 34:2d7d09f9965c 319 uint16_t pre_prise_HAR[3] = {365,365,535};
ares1999 35:89c1a096e896 320 uint16_t prise_HAR[3] = {500,450,300};
ares1999 34:2d7d09f9965c 321 uint16_t rangement2_HAR[3] = {925,925,790};
ares1999 34:2d7d09f9965c 322 //Positions intermédiaires haut
ares1999 35:89c1a096e896 323 uint16_t pose_HAR[3] = {500,500,450};
ares1999 34:2d7d09f9965c 324
ares1999 34:2d7d09f9965c 325 //bras Bas Milieu --> identique AV/AR
ares1999 34:2d7d09f9965c 326 uint16_t rangement_BM[3] = {80,90,175};
ares1999 34:2d7d09f9965c 327 uint16_t pre_prise_BM[3] = {250,190,330};
ares1999 35:89c1a096e896 328 uint16_t prise_BM[3] = {290,140,420};
ares1999 34:2d7d09f9965c 329 uint16_t rangement2_BM[3] = {80,90,510};
ares1999 34:2d7d09f9965c 330 //Positions intermédiaires
ares1999 34:2d7d09f9965c 331 uint16_t pre_passe_BM[3] = {290,300,600};
ares1999 34:2d7d09f9965c 332 uint16_t passe_BM[3] = {625,690,780};
ares1999 34:2d7d09f9965c 333 uint16_t pre_rangement_BM[3] = {675,690,510};
ares1999 34:2d7d09f9965c 334 //bras Haut Milieu
ares1999 34:2d7d09f9965c 335 uint16_t rangement_HM[3] = {895,900,845};
ares1999 34:2d7d09f9965c 336 uint16_t pre_prise_HM[3] = {335,330,490};
ares1999 34:2d7d09f9965c 337 uint16_t prise_HM[3] = {425,380,300};
ares1999 34:2d7d09f9965c 338 uint16_t rangement2_HM[3] = {895,900,790};
ares1999 34:2d7d09f9965c 339 //Positions intermédiaires haut
ares1999 35:89c1a096e896 340 uint16_t pose_HM[3] = {500,500,570};
ares1999 34:2d7d09f9965c 341
ares1999 34:2d7d09f9965c 342
ares1999 34:2d7d09f9965c 343 char aut_rangement = 0, aut_CN = 0;
ares1999 34:2d7d09f9965c 344 char aut_prise_bas = 0, aut_passe = 0, aut_relache_bas = 0, aut_pose_haut = 0;
ares1999 34:2d7d09f9965c 345 char aut_1_bras_prise_bas = 0, aut_1_bras_passe = 0, aut_1_bras_relache_bas = 0, aut_1_bras_pose_haut = 0;
ares1999 34:2d7d09f9965c 346 char aut_2_bras_prise_bas = 0, aut_2_bras_passe = 0, aut_2_bras_relache_bas = 0, aut_2_bras_pose_haut = 0;
ares1999 34:2d7d09f9965c 347 char aut_3_bras_prise_bas = 0, aut_3_bras_passe = 0, aut_3_bras_relache_bas = 0, aut_3_bras_pose_haut = 0;
ares1999 34:2d7d09f9965c 348
ares1999 34:2d7d09f9965c 349
ares1999 34:2d7d09f9965c 350
ares1999 34:2d7d09f9965c 351 ////////////////////////////////////////////////////////////////Automate pose_haut////////////////////////////////////////////////////////////////
ares1999 34:2d7d09f9965c 352 void automate_pose_haut_1(void)
ares1999 34:2d7d09f9965c 353 {
ares1999 34:2d7d09f9965c 354 typedef enum {init, rangement2, pose, rangement} type_etat;
ares1999 34:2d7d09f9965c 355 static type_etat etat = init;
ares1999 34:2d7d09f9965c 356 //static bool sens=0; //si = 0 le bras sélectionné est à l'avant si = 1 à l'arriere
ares1999 34:2d7d09f9965c 357
ares1999 34:2d7d09f9965c 358 switch(etat) {
ares1999 34:2d7d09f9965c 359 case init:
ares1999 34:2d7d09f9965c 360 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
ares1999 34:2d7d09f9965c 361 etat=rangement2;
ares1999 34:2d7d09f9965c 362 break;
ares1999 34:2d7d09f9965c 363 case rangement2:
ares1999 34:2d7d09f9965c 364 if(bras_choix==0)
ares1999 34:2d7d09f9965c 365 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement2_HAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 366 else if(bras_choix==1)
ares1999 34:2d7d09f9965c 367 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement2_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 368 else if(bras_choix==2)
ares1999 34:2d7d09f9965c 369 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement2_HAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 370 else if(bras_choix==3)
ares1999 34:2d7d09f9965c 371 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement2_HAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 372 else if(bras_choix==4)
ares1999 34:2d7d09f9965c 373 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement2_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 374 else if(bras_choix==5)
ares1999 34:2d7d09f9965c 375 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement2_HAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 376 //verification();
ares1999 34:2d7d09f9965c 377 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 378 etat = pose;
ares1999 34:2d7d09f9965c 379 break;
ares1999 34:2d7d09f9965c 380 case pose:
ares1999 34:2d7d09f9965c 381 if(bras_choix==0)
ares1999 34:2d7d09f9965c 382 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, pose_HAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 383 else if(bras_choix==1)
ares1999 34:2d7d09f9965c 384 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, pose_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 385 else if(bras_choix==2)
ares1999 34:2d7d09f9965c 386 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, pose_HAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 387 else if(bras_choix==3)
ares1999 34:2d7d09f9965c 388 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, pose_HAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 389 else if(bras_choix==4)
ares1999 34:2d7d09f9965c 390 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, pose_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 391 else if(bras_choix==5)
ares1999 34:2d7d09f9965c 392 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, pose_HAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 393 //verification();
ares1999 35:89c1a096e896 394 wait_ms(2000);
ares1999 35:89c1a096e896 395 aut_pose_haut = 0;
ares1999 35:89c1a096e896 396 etat = init;
ares1999 35:89c1a096e896 397 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
ares1999 34:2d7d09f9965c 398 break;
ares1999 34:2d7d09f9965c 399 case rangement:
ares1999 34:2d7d09f9965c 400 if(bras_choix==0)
ares1999 34:2d7d09f9965c 401 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement_HAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 402 else if(bras_choix==1)
ares1999 34:2d7d09f9965c 403 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 404 else if(bras_choix==2)
ares1999 34:2d7d09f9965c 405 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement_HAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 406 else if(bras_choix==3)
ares1999 34:2d7d09f9965c 407 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement_HAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 408 else if(bras_choix==4)
ares1999 34:2d7d09f9965c 409 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 410 else if(bras_choix==5)
ares1999 34:2d7d09f9965c 411 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement_HAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 412 //verification();
ares1999 34:2d7d09f9965c 413 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 414 aut_1_bras_pose_haut=0;
ares1999 34:2d7d09f9965c 415 aut_pose_haut = 0;
ares1999 34:2d7d09f9965c 416 etat = init;
ares1999 34:2d7d09f9965c 417 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
ares1999 34:2d7d09f9965c 418 break;
ares1999 34:2d7d09f9965c 419 default:
ares1999 34:2d7d09f9965c 420 break;
ares1999 34:2d7d09f9965c 421 }
ares1999 34:2d7d09f9965c 422 }
ares1999 34:2d7d09f9965c 423
ares1999 34:2d7d09f9965c 424 void automate_pose_haut_2(void)
ares1999 34:2d7d09f9965c 425 {}
ares1999 34:2d7d09f9965c 426 void automate_pose_haut_3(void)
ares1999 34:2d7d09f9965c 427 {}
ares1999 34:2d7d09f9965c 428
ares1999 34:2d7d09f9965c 429 ////////////////////////////////////////////////////////////////Automate relache bas////////////////////////////////////////////////////////////////
ares1999 34:2d7d09f9965c 430 void automate_relache_bas_1(void)
ares1999 34:2d7d09f9965c 431 {
ares1999 34:2d7d09f9965c 432 typedef enum {init, rangement2, pre_prise, prise} type_etat;
ares1999 34:2d7d09f9965c 433 static type_etat etat = init;
ares1999 34:2d7d09f9965c 434 //static bool sens=0; //si = 0 le bras sélectionné est à l'avant si = 1 à l'arriere
ares1999 34:2d7d09f9965c 435
ares1999 34:2d7d09f9965c 436 switch(etat) {
ares1999 34:2d7d09f9965c 437 case init:
ares1999 34:2d7d09f9965c 438 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
ares1999 34:2d7d09f9965c 439 etat=rangement2;
ares1999 34:2d7d09f9965c 440 break;
ares1999 34:2d7d09f9965c 441 case rangement2:
ares1999 34:2d7d09f9965c 442 if(bras_choix==0)
ares1999 34:2d7d09f9965c 443 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 444 else if(bras_choix==1)
ares1999 34:2d7d09f9965c 445 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 446 else if(bras_choix==2)
ares1999 34:2d7d09f9965c 447 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement2_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 448 else if(bras_choix==3)
ares1999 34:2d7d09f9965c 449 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 450 else if(bras_choix==4)
ares1999 34:2d7d09f9965c 451 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement2_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 452 else if(bras_choix==5)
ares1999 34:2d7d09f9965c 453 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement2_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 454 //verification();
ares1999 34:2d7d09f9965c 455 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 456 etat = pre_prise;
ares1999 34:2d7d09f9965c 457 break;
ares1999 34:2d7d09f9965c 458 case pre_prise:
ares1999 34:2d7d09f9965c 459 if(bras_choix==0)
ares1999 34:2d7d09f9965c 460 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 461 else if(bras_choix==1)
ares1999 34:2d7d09f9965c 462 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 463 else if(bras_choix==2)
ares1999 34:2d7d09f9965c 464 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 465 else if(bras_choix==3)
ares1999 34:2d7d09f9965c 466 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 467 else if(bras_choix==4)
ares1999 34:2d7d09f9965c 468 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 469 else if(bras_choix==5)
ares1999 34:2d7d09f9965c 470 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 471 //verification();
ares1999 35:89c1a096e896 472 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 473 etat = prise;
ares1999 34:2d7d09f9965c 474 break;
ares1999 34:2d7d09f9965c 475 case prise:
ares1999 34:2d7d09f9965c 476 if(bras_choix==0)
ares1999 34:2d7d09f9965c 477 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 478 else if(bras_choix==1)
ares1999 34:2d7d09f9965c 479 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 480 else if(bras_choix==2)
ares1999 34:2d7d09f9965c 481 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 482 else if(bras_choix==3)
ares1999 34:2d7d09f9965c 483 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 484 else if(bras_choix==4)
ares1999 34:2d7d09f9965c 485 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 486 else if(bras_choix==5)
ares1999 34:2d7d09f9965c 487 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 488 //verification();
ares1999 34:2d7d09f9965c 489 wait_ms(TEMPO_POMPE);
ares1999 34:2d7d09f9965c 490 aut_1_bras_relache_bas=0;
ares1999 34:2d7d09f9965c 491 aut_relache_bas = 0;
ares1999 34:2d7d09f9965c 492 etat = init;
ares1999 34:2d7d09f9965c 493 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
ares1999 34:2d7d09f9965c 494 break;
ares1999 34:2d7d09f9965c 495 default:
ares1999 34:2d7d09f9965c 496 break;
ares1999 34:2d7d09f9965c 497 }
ares1999 34:2d7d09f9965c 498 }
ares1999 34:2d7d09f9965c 499
ares1999 34:2d7d09f9965c 500 void automate_relache_bas_2(void)
ares1999 35:89c1a096e896 501 {
ares1999 34:2d7d09f9965c 502 typedef enum {init, rangement2, pre_prise, prise} type_etat;
ares1999 34:2d7d09f9965c 503 static type_etat etat = init;
ares1999 34:2d7d09f9965c 504 //static bool sens=0; //si = 0 le bras sélectionné est à l'avant si = 1 à l'arriere
ares1999 34:2d7d09f9965c 505
ares1999 34:2d7d09f9965c 506 switch(etat) {
ares1999 34:2d7d09f9965c 507 case init:
ares1999 34:2d7d09f9965c 508 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
ares1999 34:2d7d09f9965c 509 etat=rangement2;
ares1999 34:2d7d09f9965c 510 break;
ares1999 34:2d7d09f9965c 511 case rangement2:
ares1999 35:89c1a096e896 512 if(bras_choix==21){
ares1999 34:2d7d09f9965c 513 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement2_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 514 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BM, SERIAL_MILIEU);
ares1999 35:89c1a096e896 515 }
ares1999 35:89c1a096e896 516 else if(bras_choix==20){
ares1999 34:2d7d09f9965c 517 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement2_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 518 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BAV, SERIAL_GAUCHE);
ares1999 35:89c1a096e896 519 }
ares1999 35:89c1a096e896 520 else if(bras_choix==10){
ares1999 34:2d7d09f9965c 521 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 522 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BAV, SERIAL_GAUCHE);
ares1999 35:89c1a096e896 523 }
ares1999 35:89c1a096e896 524 else if(bras_choix==43){
ares1999 34:2d7d09f9965c 525 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement2_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 526 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BAV, SERIAL_DROITE);
ares1999 35:89c1a096e896 527 }
ares1999 35:89c1a096e896 528 else if(bras_choix==53){
ares1999 34:2d7d09f9965c 529 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement2_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 530 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BAV, SERIAL_DROITE);
ares1999 35:89c1a096e896 531 }
ares1999 35:89c1a096e896 532 else if(bras_choix==54){
ares1999 34:2d7d09f9965c 533 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement2_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 534 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement2_BM, SERIAL_MILIEU);
ares1999 35:89c1a096e896 535 }
ares1999 34:2d7d09f9965c 536 //verification();
ares1999 34:2d7d09f9965c 537 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 538 etat = pre_prise;
ares1999 34:2d7d09f9965c 539 break;
ares1999 34:2d7d09f9965c 540 case pre_prise:
ares1999 35:89c1a096e896 541 if(bras_choix==21){
ares1999 34:2d7d09f9965c 542 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 543 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BM, SERIAL_MILIEU);
ares1999 35:89c1a096e896 544 }
ares1999 35:89c1a096e896 545 else if(bras_choix==20){
ares1999 34:2d7d09f9965c 546 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 547 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BAV, SERIAL_GAUCHE);
ares1999 35:89c1a096e896 548 }
ares1999 35:89c1a096e896 549 else if(bras_choix==10){
ares1999 34:2d7d09f9965c 550 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 551 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BAV, SERIAL_GAUCHE);
ares1999 35:89c1a096e896 552 }
ares1999 35:89c1a096e896 553 else if(bras_choix==43){
ares1999 34:2d7d09f9965c 554 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 555 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BAV, SERIAL_DROITE);
ares1999 35:89c1a096e896 556 }
ares1999 35:89c1a096e896 557 else if(bras_choix==53){
ares1999 34:2d7d09f9965c 558 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 559 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BAV, SERIAL_DROITE);
ares1999 35:89c1a096e896 560 }
ares1999 35:89c1a096e896 561 else if(bras_choix==54){
ares1999 34:2d7d09f9965c 562 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 563 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BM, SERIAL_MILIEU);
ares1999 35:89c1a096e896 564 }
ares1999 34:2d7d09f9965c 565 //verification();
ares1999 35:89c1a096e896 566 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 567 etat = prise;
ares1999 34:2d7d09f9965c 568 break;
ares1999 34:2d7d09f9965c 569 case prise:
ares1999 35:89c1a096e896 570 if(bras_choix==21){
ares1999 34:2d7d09f9965c 571 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 572 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BM, SERIAL_MILIEU);
ares1999 35:89c1a096e896 573 }
ares1999 35:89c1a096e896 574 else if(bras_choix==20){
ares1999 34:2d7d09f9965c 575 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 576 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BAV, SERIAL_GAUCHE);
ares1999 35:89c1a096e896 577 }
ares1999 35:89c1a096e896 578 else if(bras_choix==10){
ares1999 34:2d7d09f9965c 579 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 580 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BAV, SERIAL_GAUCHE);
ares1999 35:89c1a096e896 581 }
ares1999 35:89c1a096e896 582 else if(bras_choix==43){
ares1999 34:2d7d09f9965c 583 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 584 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BAV, SERIAL_DROITE);
ares1999 35:89c1a096e896 585 }
ares1999 35:89c1a096e896 586 else if(bras_choix==53){
ares1999 34:2d7d09f9965c 587 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 588 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BAV, SERIAL_DROITE);
ares1999 35:89c1a096e896 589 }
ares1999 35:89c1a096e896 590 else if(bras_choix==54){
ares1999 34:2d7d09f9965c 591 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 592 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BM, SERIAL_MILIEU);
ares1999 35:89c1a096e896 593 }
ares1999 34:2d7d09f9965c 594 //verification();
ares1999 34:2d7d09f9965c 595 wait_ms(TEMPO_POMPE);
ares1999 34:2d7d09f9965c 596 aut_2_bras_relache_bas=0;
ares1999 34:2d7d09f9965c 597 aut_relache_bas = 0;
ares1999 34:2d7d09f9965c 598 etat = init;
ares1999 34:2d7d09f9965c 599 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
ares1999 34:2d7d09f9965c 600 break;
ares1999 34:2d7d09f9965c 601 default:
ares1999 34:2d7d09f9965c 602 break;
ares1999 35:89c1a096e896 603 }
ares1999 34:2d7d09f9965c 604 }
ares1999 34:2d7d09f9965c 605 void automate_relache_bas_3(void)
ares1999 35:89c1a096e896 606 {
ares1999 34:2d7d09f9965c 607 typedef enum {init, rangement2, pre_prise, prise} type_etat;
ares1999 34:2d7d09f9965c 608 static type_etat etat = init;
ares1999 34:2d7d09f9965c 609 //static bool sens=0; //si = 0 le bras sélectionné est à l'avant si = 1 à l'arriere
ares1999 34:2d7d09f9965c 610
ares1999 34:2d7d09f9965c 611 switch(etat) {
ares1999 34:2d7d09f9965c 612 case init:
ares1999 34:2d7d09f9965c 613 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
ares1999 34:2d7d09f9965c 614 etat=rangement2;
ares1999 34:2d7d09f9965c 615 break;
ares1999 34:2d7d09f9965c 616 case rangement2:
ares1999 35:89c1a096e896 617 if(bras_choix==210){
ares1999 34:2d7d09f9965c 618 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement2_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 619 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 620 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BAV, SERIAL_GAUCHE);
ares1999 35:89c1a096e896 621 }
ares1999 35:89c1a096e896 622 else if(bras_choix==66){
ares1999 34:2d7d09f9965c 623 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement2_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 624 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement2_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 625 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BAV, SERIAL_DROITE);
ares1999 35:89c1a096e896 626 }
ares1999 34:2d7d09f9965c 627 //verification();
ares1999 34:2d7d09f9965c 628 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 629 etat = pre_prise;
ares1999 34:2d7d09f9965c 630 break;
ares1999 34:2d7d09f9965c 631 case pre_prise:
ares1999 35:89c1a096e896 632 if(bras_choix==210){
ares1999 34:2d7d09f9965c 633 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 634 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 635 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BAV, SERIAL_GAUCHE);
ares1999 35:89c1a096e896 636 }
ares1999 35:89c1a096e896 637 else if(bras_choix==66){
ares1999 34:2d7d09f9965c 638 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 639 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 640 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BAV, SERIAL_DROITE);
ares1999 35:89c1a096e896 641 }
ares1999 34:2d7d09f9965c 642 //verification();
ares1999 35:89c1a096e896 643 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 644 etat = prise;
ares1999 34:2d7d09f9965c 645 break;
ares1999 34:2d7d09f9965c 646 case prise:
ares1999 35:89c1a096e896 647 if(bras_choix==210){
ares1999 34:2d7d09f9965c 648 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 649 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 650 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BAV, SERIAL_GAUCHE);
ares1999 35:89c1a096e896 651 }
ares1999 35:89c1a096e896 652 else if(bras_choix==66){
ares1999 34:2d7d09f9965c 653 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 654 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 655 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BAV, SERIAL_DROITE);
ares1999 35:89c1a096e896 656 }
ares1999 34:2d7d09f9965c 657 //verification();
ares1999 34:2d7d09f9965c 658 wait_ms(TEMPO_POMPE);
ares1999 34:2d7d09f9965c 659 aut_3_bras_relache_bas=0;
ares1999 34:2d7d09f9965c 660 aut_relache_bas = 0;
ares1999 34:2d7d09f9965c 661 etat = init;
ares1999 34:2d7d09f9965c 662 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
ares1999 34:2d7d09f9965c 663 break;
ares1999 34:2d7d09f9965c 664 default:
ares1999 34:2d7d09f9965c 665 break;
ares1999 35:89c1a096e896 666 }
ares1999 34:2d7d09f9965c 667 }
ares1999 34:2d7d09f9965c 668
ares1999 34:2d7d09f9965c 669 ////////////////////////////////////////////////////////////////Automate passe////////////////////////////////////////////////////////////////
ares1999 34:2d7d09f9965c 670 void automate_passe_1(void)
ares1999 34:2d7d09f9965c 671 {
ares1999 34:2d7d09f9965c 672 typedef enum {init, pre_passe, passe, pre_prise_haut, prise_haut, pre_rangement_bas, rangement_haut2, rangement_bas} type_etat;
ares1999 34:2d7d09f9965c 673 static type_etat etat = init;
ares1999 34:2d7d09f9965c 674 //static bool sens=0; //si = 0 le bras sélectionné est à l'avant si = 1 à l'arriere
ares1999 34:2d7d09f9965c 675
ares1999 34:2d7d09f9965c 676 switch(etat) {
ares1999 34:2d7d09f9965c 677 case init:
ares1999 34:2d7d09f9965c 678 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
ares1999 34:2d7d09f9965c 679 etat=pre_passe;
ares1999 34:2d7d09f9965c 680 break;
ares1999 34:2d7d09f9965c 681 case pre_passe:
ares1999 34:2d7d09f9965c 682 if(bras_choix==0){
ares1999 34:2d7d09f9965c 683 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_passe_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 684 }
ares1999 34:2d7d09f9965c 685 else if(bras_choix==1){
ares1999 34:2d7d09f9965c 686 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_passe_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 687 }
ares1999 34:2d7d09f9965c 688 else if(bras_choix==2){
ares1999 34:2d7d09f9965c 689 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_passe_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 690 }
ares1999 34:2d7d09f9965c 691 else if(bras_choix==3){
ares1999 34:2d7d09f9965c 692 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_passe_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 693 }
ares1999 34:2d7d09f9965c 694 else if(bras_choix==4){
ares1999 34:2d7d09f9965c 695 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_passe_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 696 }
ares1999 34:2d7d09f9965c 697 else if(bras_choix==5){
ares1999 34:2d7d09f9965c 698 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_passe_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 699 }
ares1999 34:2d7d09f9965c 700 //verification();
ares1999 34:2d7d09f9965c 701 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 702 etat = passe;
ares1999 34:2d7d09f9965c 703 break;
ares1999 34:2d7d09f9965c 704 case passe:
ares1999 34:2d7d09f9965c 705 if(bras_choix==0)
ares1999 34:2d7d09f9965c 706 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, passe_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 707 else if(bras_choix==1)
ares1999 34:2d7d09f9965c 708 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, passe_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 709 else if(bras_choix==2)
ares1999 34:2d7d09f9965c 710 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, passe_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 711 else if(bras_choix==3)
ares1999 34:2d7d09f9965c 712 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, passe_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 713 else if(bras_choix==4)
ares1999 34:2d7d09f9965c 714 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, passe_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 715 else if(bras_choix==5)
ares1999 34:2d7d09f9965c 716 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, passe_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 717 //verification();
ares1999 34:2d7d09f9965c 718 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 719 etat = pre_prise_haut;
ares1999 34:2d7d09f9965c 720 break;
ares1999 34:2d7d09f9965c 721 case pre_prise_haut:
ares1999 34:2d7d09f9965c 722 if(bras_choix==0)
ares1999 34:2d7d09f9965c 723 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, pre_prise_HAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 724 else if(bras_choix==1)
ares1999 34:2d7d09f9965c 725 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, pre_prise_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 726 else if(bras_choix==2)
ares1999 34:2d7d09f9965c 727 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, pre_prise_HAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 728 else if(bras_choix==3)
ares1999 34:2d7d09f9965c 729 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, pre_prise_HAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 730 else if(bras_choix==4)
ares1999 34:2d7d09f9965c 731 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, pre_prise_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 732 else if(bras_choix==5)
ares1999 34:2d7d09f9965c 733 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, pre_prise_HAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 734 //verification();
ares1999 34:2d7d09f9965c 735 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 736 etat = prise_haut;
ares1999 34:2d7d09f9965c 737 break;
ares1999 34:2d7d09f9965c 738 case prise_haut:
ares1999 35:89c1a096e896 739 if(bras_choix==0){
ares1999 35:89c1a096e896 740 positionControl(HAV_HAUT, 710, PLAYTIME, BLED_ON, SERIAL_GAUCHE);
ares1999 35:89c1a096e896 741 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 742 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, prise_HAV, SERIAL_GAUCHE);
ares1999 35:89c1a096e896 743 }
ares1999 35:89c1a096e896 744 else if(bras_choix==1){
ares1999 35:89c1a096e896 745 positionControl(HAV_HAUT, 300, PLAYTIME, BLED_ON, SERIAL_MILIEU);
ares1999 35:89c1a096e896 746 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 747 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, prise_HM, SERIAL_MILIEU);
ares1999 35:89c1a096e896 748 }
ares1999 35:89c1a096e896 749 else if(bras_choix==2){
ares1999 35:89c1a096e896 750 positionControl(HAR_HAUT, 300, PLAYTIME, BLED_ON, SERIAL_DROITE);
ares1999 35:89c1a096e896 751 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 752 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, prise_HAR, SERIAL_DROITE);
ares1999 35:89c1a096e896 753 }
ares1999 35:89c1a096e896 754 else if(bras_choix==3){
ares1999 35:89c1a096e896 755 positionControl(HAV_HAUT, 710, PLAYTIME, BLED_ON, SERIAL_DROITE);
ares1999 35:89c1a096e896 756 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 757 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, prise_HAV, SERIAL_DROITE);
ares1999 35:89c1a096e896 758 }
ares1999 35:89c1a096e896 759 else if(bras_choix==4){
ares1999 35:89c1a096e896 760 positionControl(HAR_HAUT, 300, PLAYTIME, BLED_ON, SERIAL_MILIEU);
ares1999 35:89c1a096e896 761 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 762 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, prise_HM, SERIAL_MILIEU);
ares1999 35:89c1a096e896 763 }
ares1999 35:89c1a096e896 764 else if(bras_choix==5){
ares1999 35:89c1a096e896 765 positionControl(HAR_HAUT, 300, PLAYTIME, BLED_ON, SERIAL_GAUCHE);
ares1999 35:89c1a096e896 766 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 767 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, prise_HAR, SERIAL_GAUCHE);
ares1999 35:89c1a096e896 768 }
ares1999 34:2d7d09f9965c 769 //verification();
ares1999 34:2d7d09f9965c 770 wait_ms(TEMPO_POMPE);
ares1999 34:2d7d09f9965c 771 etat = pre_rangement_bas;
ares1999 34:2d7d09f9965c 772 break;
ares1999 34:2d7d09f9965c 773 case pre_rangement_bas:
ares1999 34:2d7d09f9965c 774 if(bras_choix==0){
ares1999 34:2d7d09f9965c 775 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_rangement_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 776 }
ares1999 34:2d7d09f9965c 777 else if(bras_choix==1){
ares1999 34:2d7d09f9965c 778 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 779 }
ares1999 34:2d7d09f9965c 780 else if(bras_choix==2){
ares1999 34:2d7d09f9965c 781 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_rangement_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 782 }
ares1999 34:2d7d09f9965c 783 else if(bras_choix==3){
ares1999 34:2d7d09f9965c 784 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_rangement_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 785 }
ares1999 34:2d7d09f9965c 786 else if(bras_choix==4){
ares1999 34:2d7d09f9965c 787 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 788 }
ares1999 34:2d7d09f9965c 789 else if(bras_choix==5){
ares1999 34:2d7d09f9965c 790 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_rangement_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 791 }
ares1999 34:2d7d09f9965c 792 //verification();
ares1999 34:2d7d09f9965c 793 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 794 etat = rangement_haut2;
ares1999 34:2d7d09f9965c 795 break;
ares1999 34:2d7d09f9965c 796 case rangement_haut2:
ares1999 34:2d7d09f9965c 797 if(bras_choix==0){
ares1999 34:2d7d09f9965c 798 positionControl(HAV_HAUT, 230, PLAYTIME, BLED_ON, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 799 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 800 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement2_HAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 801 }
ares1999 34:2d7d09f9965c 802 else if(bras_choix==1){
ares1999 34:2d7d09f9965c 803 positionControl(HAV_HAUT, 790, PLAYTIME, BLED_ON, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 804 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 805 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement2_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 806 }
ares1999 34:2d7d09f9965c 807 else if(bras_choix==2){
ares1999 34:2d7d09f9965c 808 positionControl(HAR_HAUT, 790, PLAYTIME, BLED_ON, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 809 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 810 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement2_HAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 811 }
ares1999 34:2d7d09f9965c 812 else if(bras_choix==3){
ares1999 34:2d7d09f9965c 813 positionControl(HAV_HAUT, 230, PLAYTIME, BLED_ON, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 814 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 815 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement2_HAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 816 }
ares1999 34:2d7d09f9965c 817 else if(bras_choix==4){
ares1999 34:2d7d09f9965c 818 positionControl(HAR_HAUT, 790, PLAYTIME, BLED_ON, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 819 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 820 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement2_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 821 }
ares1999 34:2d7d09f9965c 822 else if(bras_choix==5){
ares1999 34:2d7d09f9965c 823 positionControl(HAR_HAUT, 790, PLAYTIME, BLED_ON, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 824 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 825 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement2_HAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 826 }
ares1999 34:2d7d09f9965c 827 //verification();
ares1999 34:2d7d09f9965c 828 wait_ms(TEMPO);
ares1999 34:2d7d09f9965c 829 etat = rangement_bas;
ares1999 34:2d7d09f9965c 830 break;
ares1999 34:2d7d09f9965c 831 case rangement_bas:
ares1999 34:2d7d09f9965c 832 if(bras_choix==0)
ares1999 34:2d7d09f9965c 833 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 834 else if(bras_choix==1)
ares1999 34:2d7d09f9965c 835 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 836 else if(bras_choix==2)
ares1999 34:2d7d09f9965c 837 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 838 else if(bras_choix==3)
ares1999 34:2d7d09f9965c 839 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 840 else if(bras_choix==4)
ares1999 34:2d7d09f9965c 841 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 842 else if(bras_choix==5)
ares1999 34:2d7d09f9965c 843 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 844 //verification();
ares1999 34:2d7d09f9965c 845 wait_ms(TEMPO);
ares1999 34:2d7d09f9965c 846 aut_1_bras_passe=0;
ares1999 34:2d7d09f9965c 847 aut_passe = 0;
ares1999 34:2d7d09f9965c 848 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
ares1999 34:2d7d09f9965c 849 etat = init;
ares1999 34:2d7d09f9965c 850 break;
ares1999 34:2d7d09f9965c 851 }
ares1999 34:2d7d09f9965c 852 }
ares1999 34:2d7d09f9965c 853
ares1999 34:2d7d09f9965c 854 void automate_passe_2(void)
ares1999 34:2d7d09f9965c 855 {
ares1999 34:2d7d09f9965c 856 typedef enum {init, pre_passe, passe, pre_prise_haut, prise_haut, pre_rangement_bas, rangement_haut2, rangement_bas} type_etat;
ares1999 34:2d7d09f9965c 857 static type_etat etat = init;
ares1999 34:2d7d09f9965c 858 //static bool sens=0; //si = 0 le bras sélectionné est à l'avant si = 1 à l'arriere
ares1999 34:2d7d09f9965c 859
ares1999 34:2d7d09f9965c 860 switch(etat) {
ares1999 34:2d7d09f9965c 861 case init:
ares1999 34:2d7d09f9965c 862 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
ares1999 34:2d7d09f9965c 863 etat=pre_passe;
ares1999 34:2d7d09f9965c 864 break;
ares1999 34:2d7d09f9965c 865 case pre_passe:
ares1999 34:2d7d09f9965c 866 if(bras_choix==21){
ares1999 34:2d7d09f9965c 867 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_passe_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 868 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_passe_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 869 }
ares1999 34:2d7d09f9965c 870 else if(bras_choix==20){
ares1999 34:2d7d09f9965c 871 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_passe_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 872 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_passe_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 873 }
ares1999 34:2d7d09f9965c 874 else if(bras_choix==10){
ares1999 34:2d7d09f9965c 875 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_passe_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 876 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_passe_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 877 }
ares1999 34:2d7d09f9965c 878 else if(bras_choix==43){
ares1999 34:2d7d09f9965c 879 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_passe_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 880 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_passe_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 881 }
ares1999 34:2d7d09f9965c 882 else if(bras_choix==53){
ares1999 34:2d7d09f9965c 883 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_passe_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 884 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_passe_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 885 }
ares1999 34:2d7d09f9965c 886 else if(bras_choix==54){
ares1999 34:2d7d09f9965c 887 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_passe_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 888 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_passe_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 889 }
ares1999 34:2d7d09f9965c 890 //verification();
ares1999 34:2d7d09f9965c 891 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 892 etat = passe;
ares1999 34:2d7d09f9965c 893 break;
ares1999 34:2d7d09f9965c 894 case passe:
ares1999 34:2d7d09f9965c 895 if(bras_choix==21){
ares1999 34:2d7d09f9965c 896 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, passe_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 897 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, passe_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 898 }
ares1999 34:2d7d09f9965c 899 else if(bras_choix==20){
ares1999 34:2d7d09f9965c 900 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, passe_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 901 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, passe_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 902 }
ares1999 34:2d7d09f9965c 903 else if(bras_choix==10){
ares1999 34:2d7d09f9965c 904 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, passe_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 905 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, passe_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 906 }
ares1999 34:2d7d09f9965c 907 else if(bras_choix==43){
ares1999 34:2d7d09f9965c 908 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, passe_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 909 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, passe_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 910 }
ares1999 34:2d7d09f9965c 911 else if(bras_choix==53){
ares1999 34:2d7d09f9965c 912 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, passe_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 913 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, passe_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 914 }
ares1999 34:2d7d09f9965c 915 else if(bras_choix==54){
ares1999 34:2d7d09f9965c 916 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, passe_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 917 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, passe_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 918 }
ares1999 34:2d7d09f9965c 919 //verification();
ares1999 34:2d7d09f9965c 920 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 921 etat = pre_prise_haut;
ares1999 34:2d7d09f9965c 922 break;
ares1999 34:2d7d09f9965c 923 case pre_prise_haut:
ares1999 34:2d7d09f9965c 924 if(bras_choix==21){
ares1999 34:2d7d09f9965c 925 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, pre_prise_HAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 926 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, pre_prise_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 927 }
ares1999 34:2d7d09f9965c 928 else if(bras_choix==20){
ares1999 34:2d7d09f9965c 929 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, pre_prise_HAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 930 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, pre_prise_HAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 931 }
ares1999 34:2d7d09f9965c 932 else if(bras_choix==10){
ares1999 34:2d7d09f9965c 933 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, pre_prise_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 934 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, pre_prise_HAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 935 }
ares1999 34:2d7d09f9965c 936 else if(bras_choix==43){
ares1999 34:2d7d09f9965c 937 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, pre_prise_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 938 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, pre_prise_HAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 939 }
ares1999 34:2d7d09f9965c 940 else if(bras_choix==53){
ares1999 34:2d7d09f9965c 941 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, pre_prise_HAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 942 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, pre_prise_HAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 943 }
ares1999 34:2d7d09f9965c 944 else if(bras_choix==54){
ares1999 34:2d7d09f9965c 945 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, pre_prise_HAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 946 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, pre_prise_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 947 }
ares1999 34:2d7d09f9965c 948 //verification();
ares1999 34:2d7d09f9965c 949 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 950 etat = prise_haut;
ares1999 34:2d7d09f9965c 951 break;
ares1999 34:2d7d09f9965c 952 case prise_haut:
ares1999 34:2d7d09f9965c 953 if(bras_choix==21){
ares1999 35:89c1a096e896 954 positionControl(HAR_HAUT, 290, PLAYTIME, BLED_ON, SERIAL_DROITE);
ares1999 35:89c1a096e896 955 positionControl(HAV_HAUT, 300, PLAYTIME, BLED_ON, SERIAL_MILIEU);
ares1999 35:89c1a096e896 956 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 957 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, prise_HAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 958 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, prise_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 959 }
ares1999 34:2d7d09f9965c 960 else if(bras_choix==20){
ares1999 35:89c1a096e896 961 positionControl(HAR_HAUT, 300, PLAYTIME, BLED_ON, SERIAL_DROITE);
ares1999 35:89c1a096e896 962 positionControl(HAV_HAUT, 710, PLAYTIME, BLED_ON, SERIAL_GAUCHE);
ares1999 35:89c1a096e896 963 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 964 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, prise_HAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 965 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, prise_HAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 966 }
ares1999 34:2d7d09f9965c 967 else if(bras_choix==10){
ares1999 35:89c1a096e896 968 positionControl(HAV_HAUT, 300, PLAYTIME, BLED_ON, SERIAL_MILIEU);
ares1999 35:89c1a096e896 969 positionControl(HAV_HAUT, 710, PLAYTIME, BLED_ON, SERIAL_GAUCHE);
ares1999 35:89c1a096e896 970 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 971 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, prise_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 972 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, prise_HAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 973 }
ares1999 34:2d7d09f9965c 974 else if(bras_choix==43){
ares1999 35:89c1a096e896 975 positionControl(HAR_HAUT, 300, PLAYTIME, BLED_ON, SERIAL_MILIEU);
ares1999 35:89c1a096e896 976 positionControl(HAV_HAUT, 710, PLAYTIME, BLED_ON, SERIAL_DROITE);
ares1999 35:89c1a096e896 977 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 978 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, prise_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 979 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, prise_HAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 980 }
ares1999 34:2d7d09f9965c 981 else if(bras_choix==53){
ares1999 35:89c1a096e896 982 positionControl(HAR_HAUT, 300, PLAYTIME, BLED_ON, SERIAL_GAUCHE);
ares1999 35:89c1a096e896 983 positionControl(HAV_HAUT, 710, PLAYTIME, BLED_ON, SERIAL_DROITE);
ares1999 35:89c1a096e896 984 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 985 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, prise_HAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 986 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, prise_HAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 987 }
ares1999 34:2d7d09f9965c 988 else if(bras_choix==54){
ares1999 35:89c1a096e896 989 positionControl(HAR_HAUT, 300, PLAYTIME, BLED_ON, SERIAL_DROITE);
ares1999 35:89c1a096e896 990 positionControl(HAR_HAUT, 300, PLAYTIME, BLED_ON, SERIAL_MILIEU);
ares1999 35:89c1a096e896 991 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 992 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, prise_HAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 993 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, prise_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 994 }
ares1999 34:2d7d09f9965c 995 //verification();
ares1999 34:2d7d09f9965c 996 wait_ms(TEMPO_POMPE);
ares1999 34:2d7d09f9965c 997 etat = pre_rangement_bas;
ares1999 34:2d7d09f9965c 998 break;
ares1999 34:2d7d09f9965c 999 case pre_rangement_bas:
ares1999 34:2d7d09f9965c 1000 if(bras_choix==21){
ares1999 34:2d7d09f9965c 1001 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_rangement_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1002 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1003 }
ares1999 34:2d7d09f9965c 1004 else if(bras_choix==20){
ares1999 34:2d7d09f9965c 1005 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_rangement_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1006 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_rangement_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1007 }
ares1999 34:2d7d09f9965c 1008 else if(bras_choix==10){
ares1999 34:2d7d09f9965c 1009 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1010 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_rangement_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1011 }
ares1999 34:2d7d09f9965c 1012 else if(bras_choix==43){
ares1999 34:2d7d09f9965c 1013 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1014 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_rangement_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1015 }
ares1999 34:2d7d09f9965c 1016 else if(bras_choix==53){
ares1999 34:2d7d09f9965c 1017 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_rangement_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1018 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_rangement_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1019 }
ares1999 34:2d7d09f9965c 1020 else if(bras_choix==54){
ares1999 34:2d7d09f9965c 1021 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_rangement_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1022 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1023 }
ares1999 34:2d7d09f9965c 1024 //verification();
ares1999 34:2d7d09f9965c 1025 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1026 etat = rangement_haut2;
ares1999 34:2d7d09f9965c 1027 break;
ares1999 34:2d7d09f9965c 1028 case rangement_haut2:
ares1999 34:2d7d09f9965c 1029 if(bras_choix==21){
ares1999 34:2d7d09f9965c 1030 positionControl(HAR_HAUT, 790, PLAYTIME, BLED_ON, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1031 positionControl(HAV_HAUT, 790, PLAYTIME, BLED_ON, SERIAL_MILIEU);
ares1999 35:89c1a096e896 1032 wait_ms(200);
ares1999 34:2d7d09f9965c 1033 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement2_HAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1034 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement2_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1035 }
ares1999 34:2d7d09f9965c 1036 else if(bras_choix==20){
ares1999 34:2d7d09f9965c 1037 positionControl(HAR_HAUT, 790, PLAYTIME, BLED_ON, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1038 positionControl(HAV_HAUT, 230, PLAYTIME, BLED_ON, SERIAL_GAUCHE);
ares1999 35:89c1a096e896 1039 wait_ms(200);
ares1999 34:2d7d09f9965c 1040 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement2_HAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1041 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement2_HAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1042 }
ares1999 34:2d7d09f9965c 1043 else if(bras_choix==10){
ares1999 34:2d7d09f9965c 1044 positionControl(HAV_HAUT, 790, PLAYTIME, BLED_ON, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1045 positionControl(HAV_HAUT, 230, PLAYTIME, BLED_ON, SERIAL_GAUCHE);
ares1999 35:89c1a096e896 1046 wait_ms(200);
ares1999 34:2d7d09f9965c 1047 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement2_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1048 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement2_HAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1049 }
ares1999 34:2d7d09f9965c 1050 else if(bras_choix==43){
ares1999 34:2d7d09f9965c 1051 positionControl(HAR_HAUT, 790, PLAYTIME, BLED_ON, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1052 positionControl(HAV_HAUT, 230, PLAYTIME, BLED_ON, SERIAL_DROITE);
ares1999 35:89c1a096e896 1053 wait_ms(200);
ares1999 34:2d7d09f9965c 1054 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement2_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1055 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement2_HAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1056 }
ares1999 34:2d7d09f9965c 1057 else if(bras_choix==53){
ares1999 34:2d7d09f9965c 1058 positionControl(HAR_HAUT, 790, PLAYTIME, BLED_ON, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1059 positionControl(HAV_HAUT, 230, PLAYTIME, BLED_ON, SERIAL_DROITE);
ares1999 35:89c1a096e896 1060 wait_ms(200);
ares1999 34:2d7d09f9965c 1061 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement2_HAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1062 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement2_HAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1063 }
ares1999 34:2d7d09f9965c 1064 else if(bras_choix==54){
ares1999 34:2d7d09f9965c 1065 positionControl(HAR_HAUT, 790, PLAYTIME, BLED_ON, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1066 positionControl(HAV_HAUT, 790, PLAYTIME, BLED_ON, SERIAL_MILIEU);
ares1999 35:89c1a096e896 1067 wait_ms(200);
ares1999 34:2d7d09f9965c 1068 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement2_HAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1069 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement2_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1070 }
ares1999 34:2d7d09f9965c 1071 //verification();
ares1999 34:2d7d09f9965c 1072 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1073 etat = rangement_bas;
ares1999 34:2d7d09f9965c 1074 break;
ares1999 34:2d7d09f9965c 1075 case rangement_bas:
ares1999 34:2d7d09f9965c 1076 if(bras_choix==21){
ares1999 34:2d7d09f9965c 1077 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1078 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1079 }
ares1999 34:2d7d09f9965c 1080 else if(bras_choix==20){
ares1999 34:2d7d09f9965c 1081 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1082 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1083 }
ares1999 34:2d7d09f9965c 1084 else if(bras_choix==10){
ares1999 34:2d7d09f9965c 1085 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1086 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1087 }
ares1999 34:2d7d09f9965c 1088 else if(bras_choix==43){
ares1999 34:2d7d09f9965c 1089 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1090 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1091 }
ares1999 34:2d7d09f9965c 1092 else if(bras_choix==53){
ares1999 34:2d7d09f9965c 1093 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1094 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1095 }
ares1999 34:2d7d09f9965c 1096 else if(bras_choix==54){
ares1999 34:2d7d09f9965c 1097 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1098 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1099 }
ares1999 34:2d7d09f9965c 1100 //verification();
ares1999 34:2d7d09f9965c 1101 wait_ms(TEMPO);
ares1999 34:2d7d09f9965c 1102 aut_1_bras_passe=0;
ares1999 34:2d7d09f9965c 1103 aut_passe = 0;
ares1999 34:2d7d09f9965c 1104 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
ares1999 34:2d7d09f9965c 1105 etat = init;
ares1999 34:2d7d09f9965c 1106 break;
ares1999 34:2d7d09f9965c 1107 }
ares1999 34:2d7d09f9965c 1108 }
ares1999 34:2d7d09f9965c 1109
ares1999 34:2d7d09f9965c 1110 void automate_passe_3(void)
ares1999 34:2d7d09f9965c 1111 {
ares1999 34:2d7d09f9965c 1112 typedef enum {init, pre_passe, passe, pre_prise_haut, prise_haut, pre_rangement_bas, rangement_haut2, rangement_bas} type_etat;
ares1999 34:2d7d09f9965c 1113 static type_etat etat = init;
ares1999 34:2d7d09f9965c 1114 //static bool sens=0; //si = 0 le bras sélectionné est à l'avant si = 1 à l'arriere
ares1999 34:2d7d09f9965c 1115
ares1999 34:2d7d09f9965c 1116 switch(etat) {
ares1999 34:2d7d09f9965c 1117 case init:
ares1999 34:2d7d09f9965c 1118 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
ares1999 34:2d7d09f9965c 1119 etat=pre_passe;
ares1999 34:2d7d09f9965c 1120 break;
ares1999 34:2d7d09f9965c 1121 case pre_passe:
ares1999 34:2d7d09f9965c 1122 if(bras_choix==210){
ares1999 34:2d7d09f9965c 1123 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_passe_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1124 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_passe_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1125 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_passe_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1126 }
ares1999 34:2d7d09f9965c 1127 else if(bras_choix==66){
ares1999 34:2d7d09f9965c 1128 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_passe_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1129 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_passe_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1130 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_passe_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1131 }
ares1999 34:2d7d09f9965c 1132 //verification();
ares1999 34:2d7d09f9965c 1133 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1134 etat = passe;
ares1999 34:2d7d09f9965c 1135 break;
ares1999 34:2d7d09f9965c 1136 case passe:
ares1999 34:2d7d09f9965c 1137 if(bras_choix==210){
ares1999 34:2d7d09f9965c 1138 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, passe_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1139 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, passe_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1140 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, passe_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1141 }
ares1999 34:2d7d09f9965c 1142 else if(bras_choix==66){
ares1999 34:2d7d09f9965c 1143 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, passe_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1144 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, passe_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1145 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, passe_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1146 }
ares1999 34:2d7d09f9965c 1147 //verification();
ares1999 34:2d7d09f9965c 1148 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1149 etat = pre_prise_haut;
ares1999 34:2d7d09f9965c 1150 break;
ares1999 34:2d7d09f9965c 1151 case pre_prise_haut:
ares1999 34:2d7d09f9965c 1152 if(bras_choix==210){
ares1999 34:2d7d09f9965c 1153 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, pre_prise_HAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1154 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, pre_prise_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1155 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, pre_prise_HAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1156 }
ares1999 34:2d7d09f9965c 1157 else if(bras_choix==66){
ares1999 34:2d7d09f9965c 1158 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, pre_prise_HAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1159 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, pre_prise_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1160 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, pre_prise_HAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1161 }
ares1999 34:2d7d09f9965c 1162 //verification();
ares1999 34:2d7d09f9965c 1163 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1164 etat = prise_haut;
ares1999 34:2d7d09f9965c 1165 break;
ares1999 34:2d7d09f9965c 1166 case prise_haut:
ares1999 34:2d7d09f9965c 1167 if(bras_choix==210){
ares1999 35:89c1a096e896 1168 positionControl(HAR_HAUT, 300, PLAYTIME, BLED_ON, SERIAL_DROITE);
ares1999 35:89c1a096e896 1169 positionControl(HAV_HAUT, 300, PLAYTIME, BLED_ON, SERIAL_MILIEU);
ares1999 35:89c1a096e896 1170 positionControl(HAV_HAUT, 710, PLAYTIME, BLED_ON, SERIAL_GAUCHE);
ares1999 35:89c1a096e896 1171 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1172 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, prise_HAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1173 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, prise_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1174 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, prise_HAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1175 }
ares1999 34:2d7d09f9965c 1176 else if(bras_choix==66){
ares1999 35:89c1a096e896 1177 positionControl(HAV_HAUT, 710, PLAYTIME, BLED_ON, SERIAL_DROITE);
ares1999 35:89c1a096e896 1178 positionControl(HAR_HAUT, 300, PLAYTIME, BLED_ON, SERIAL_MILIEU);
ares1999 35:89c1a096e896 1179 positionControl(HAR_HAUT, 300, PLAYTIME, BLED_ON, SERIAL_GAUCHE);
ares1999 35:89c1a096e896 1180 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1181 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, prise_HAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1182 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, prise_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1183 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, prise_HAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1184 }
ares1999 34:2d7d09f9965c 1185 //verification();
ares1999 34:2d7d09f9965c 1186 wait_ms(TEMPO_POMPE);
ares1999 34:2d7d09f9965c 1187 etat = pre_rangement_bas;
ares1999 34:2d7d09f9965c 1188 break;
ares1999 34:2d7d09f9965c 1189 case pre_rangement_bas:
ares1999 34:2d7d09f9965c 1190 if(bras_choix==210){
ares1999 34:2d7d09f9965c 1191 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_rangement_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1192 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1193 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_rangement_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1194 }
ares1999 34:2d7d09f9965c 1195 else if(bras_choix==66){
ares1999 34:2d7d09f9965c 1196 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_rangement_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1197 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1198 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_rangement_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1199 }
ares1999 34:2d7d09f9965c 1200 //verification();
ares1999 34:2d7d09f9965c 1201 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1202 etat = rangement_haut2;
ares1999 34:2d7d09f9965c 1203 break;
ares1999 34:2d7d09f9965c 1204 case rangement_haut2:
ares1999 34:2d7d09f9965c 1205 if(bras_choix==210){
ares1999 34:2d7d09f9965c 1206 positionControl(HAR_HAUT, 790, PLAYTIME, BLED_ON, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1207 positionControl(HAV_HAUT, 790, PLAYTIME, BLED_ON, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1208 positionControl(HAV_HAUT, 230, PLAYTIME, BLED_ON, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1209 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1210 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement2_HAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1211 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement2_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1212 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement2_HAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1213 }
ares1999 34:2d7d09f9965c 1214 else if(bras_choix==66){
ares1999 34:2d7d09f9965c 1215 positionControl(HAV_HAUT, 230, PLAYTIME, BLED_ON, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1216 positionControl(HAR_HAUT, 790, PLAYTIME, BLED_ON, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1217 positionControl(HAR_HAUT, 790, PLAYTIME, BLED_ON, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1218 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1219 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement2_HAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1220 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement2_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1221 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement2_HAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1222 }
ares1999 34:2d7d09f9965c 1223 //verification();
ares1999 34:2d7d09f9965c 1224 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1225 etat = rangement_bas;
ares1999 34:2d7d09f9965c 1226 break;
ares1999 34:2d7d09f9965c 1227 case rangement_bas:
ares1999 34:2d7d09f9965c 1228 if(bras_choix==210){
ares1999 34:2d7d09f9965c 1229 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1230 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1231 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1232 }
ares1999 34:2d7d09f9965c 1233 else if(bras_choix==66){
ares1999 34:2d7d09f9965c 1234 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1235 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1236 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1237 }
ares1999 34:2d7d09f9965c 1238 //verification();
ares1999 34:2d7d09f9965c 1239 wait_ms(TEMPO);
ares1999 34:2d7d09f9965c 1240 aut_3_bras_passe=0;
ares1999 34:2d7d09f9965c 1241 aut_passe = 0;
ares1999 34:2d7d09f9965c 1242 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
ares1999 34:2d7d09f9965c 1243 etat = init;
ares1999 34:2d7d09f9965c 1244 break;
ares1999 34:2d7d09f9965c 1245 }
ares1999 34:2d7d09f9965c 1246 }
ares1999 34:2d7d09f9965c 1247
ares1999 34:2d7d09f9965c 1248 ////////////////////////////////////////////////////////////////Automate prise bas////////////////////////////////////////////////////////////////
ares1999 34:2d7d09f9965c 1249 void automate_prise_bas_1(void)
ares1999 34:2d7d09f9965c 1250 {
ares1999 34:2d7d09f9965c 1251 typedef enum {init, rangement, pre_prise, prise, rangement2} type_etat;
ares1999 34:2d7d09f9965c 1252 static type_etat etat = init;
ares1999 34:2d7d09f9965c 1253 //static bool sens=0; //si = 0 le bras sélectionné est à l'avant si = 1 à l'arriere
ares1999 34:2d7d09f9965c 1254
ares1999 34:2d7d09f9965c 1255 switch(etat) {
ares1999 34:2d7d09f9965c 1256 case init:
ares1999 34:2d7d09f9965c 1257 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
ares1999 34:2d7d09f9965c 1258 etat=rangement;
ares1999 34:2d7d09f9965c 1259 break;
ares1999 34:2d7d09f9965c 1260 case rangement:
ares1999 34:2d7d09f9965c 1261 if(bras_choix==0)
ares1999 34:2d7d09f9965c 1262 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1263 else if(bras_choix==1)
ares1999 34:2d7d09f9965c 1264 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1265 else if(bras_choix==2)
ares1999 34:2d7d09f9965c 1266 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1267 else if(bras_choix==3)
ares1999 34:2d7d09f9965c 1268 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1269 else if(bras_choix==4)
ares1999 34:2d7d09f9965c 1270 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1271 else if(bras_choix==5)
ares1999 34:2d7d09f9965c 1272 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1273 //verification();
ares1999 34:2d7d09f9965c 1274 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1275 etat = pre_prise;
ares1999 34:2d7d09f9965c 1276 break;
ares1999 34:2d7d09f9965c 1277 case pre_prise:
ares1999 34:2d7d09f9965c 1278 if(bras_choix==0)
ares1999 34:2d7d09f9965c 1279 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1280 else if(bras_choix==1)
ares1999 34:2d7d09f9965c 1281 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1282 else if(bras_choix==2)
ares1999 34:2d7d09f9965c 1283 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1284 else if(bras_choix==3)
ares1999 34:2d7d09f9965c 1285 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1286 else if(bras_choix==4)
ares1999 34:2d7d09f9965c 1287 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1288 else if(bras_choix==5)
ares1999 34:2d7d09f9965c 1289 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1290 //verification();
ares1999 34:2d7d09f9965c 1291 wait_ms(TEMPO);
ares1999 34:2d7d09f9965c 1292 etat = prise;
ares1999 34:2d7d09f9965c 1293 break;
ares1999 34:2d7d09f9965c 1294 case prise:
ares1999 34:2d7d09f9965c 1295 if(bras_choix==0)
ares1999 34:2d7d09f9965c 1296 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1297 else if(bras_choix==1)
ares1999 34:2d7d09f9965c 1298 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1299 else if(bras_choix==2)
ares1999 34:2d7d09f9965c 1300 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1301 else if(bras_choix==3)
ares1999 34:2d7d09f9965c 1302 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1303 else if(bras_choix==4)
ares1999 34:2d7d09f9965c 1304 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1305 else if(bras_choix==5)
ares1999 34:2d7d09f9965c 1306 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1307 //verification();
ares1999 34:2d7d09f9965c 1308 wait_ms(TEMPO_POMPE);
ares1999 34:2d7d09f9965c 1309 etat = rangement2;
ares1999 34:2d7d09f9965c 1310 break;
ares1999 34:2d7d09f9965c 1311 case rangement2:
ares1999 34:2d7d09f9965c 1312 if(bras_choix==0)
ares1999 34:2d7d09f9965c 1313 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1314 else if(bras_choix==1)
ares1999 34:2d7d09f9965c 1315 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1316 else if(bras_choix==2)
ares1999 34:2d7d09f9965c 1317 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement2_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1318 else if(bras_choix==3)
ares1999 34:2d7d09f9965c 1319 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1320 else if(bras_choix==4)
ares1999 34:2d7d09f9965c 1321 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement2_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1322 else if(bras_choix==5)
ares1999 34:2d7d09f9965c 1323 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement2_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1324 //verification();
ares1999 34:2d7d09f9965c 1325 wait_ms(TEMPO);
ares1999 35:89c1a096e896 1326 aut_1_bras_prise_bas=0;
ares1999 34:2d7d09f9965c 1327 aut_prise_bas = 0;
ares1999 34:2d7d09f9965c 1328 etat = init;
ares1999 34:2d7d09f9965c 1329 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
ares1999 34:2d7d09f9965c 1330 break;
ares1999 34:2d7d09f9965c 1331 default:
ares1999 34:2d7d09f9965c 1332 break;
ares1999 34:2d7d09f9965c 1333 }
ares1999 34:2d7d09f9965c 1334 }
ares1999 34:2d7d09f9965c 1335
ares1999 34:2d7d09f9965c 1336 void automate_prise_bas_2(void)
ares1999 34:2d7d09f9965c 1337 {
ares1999 34:2d7d09f9965c 1338 typedef enum {init, rangement, pre_prise, prise, rangement2} type_etat;
ares1999 34:2d7d09f9965c 1339 static type_etat etat = init;
ares1999 34:2d7d09f9965c 1340
ares1999 34:2d7d09f9965c 1341 switch(etat) {
ares1999 34:2d7d09f9965c 1342 case init:
ares1999 34:2d7d09f9965c 1343 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
ares1999 34:2d7d09f9965c 1344 etat=rangement;
ares1999 34:2d7d09f9965c 1345 break;
ares1999 34:2d7d09f9965c 1346 case rangement:
ares1999 34:2d7d09f9965c 1347 if(bras_choix == 21) {
ares1999 34:2d7d09f9965c 1348 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1349 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1350 } else if(bras_choix == 20) {
ares1999 34:2d7d09f9965c 1351 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1352 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1353 } else if(bras_choix == 10) {
ares1999 34:2d7d09f9965c 1354 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1355 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1356 } else if(bras_choix == 43) {
ares1999 34:2d7d09f9965c 1357 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1358 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1359 } else if(bras_choix == 53) {
ares1999 34:2d7d09f9965c 1360 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1361 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1362 } else if(bras_choix == 54) {
ares1999 34:2d7d09f9965c 1363 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1364 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1365 }
ares1999 34:2d7d09f9965c 1366 //verification();
ares1999 34:2d7d09f9965c 1367 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1368 etat = pre_prise;
ares1999 34:2d7d09f9965c 1369 break;
ares1999 34:2d7d09f9965c 1370
ares1999 34:2d7d09f9965c 1371 case pre_prise:
ares1999 34:2d7d09f9965c 1372 if(bras_choix == 21) {
ares1999 34:2d7d09f9965c 1373 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1374 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1375 } else if(bras_choix == 20) {
ares1999 34:2d7d09f9965c 1376 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1377 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1378 } else if(bras_choix == 10) {
ares1999 34:2d7d09f9965c 1379 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1380 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1381 } else if(bras_choix == 43) {
ares1999 34:2d7d09f9965c 1382 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1383 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1384 } else if(bras_choix == 53) {
ares1999 34:2d7d09f9965c 1385 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1386 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1387 } else if(bras_choix == 54) {
ares1999 34:2d7d09f9965c 1388 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1389 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1390 }
ares1999 34:2d7d09f9965c 1391 //verification();
ares1999 34:2d7d09f9965c 1392 wait_ms(TEMPO);
ares1999 34:2d7d09f9965c 1393 etat = prise;
ares1999 34:2d7d09f9965c 1394 break;
ares1999 34:2d7d09f9965c 1395
ares1999 34:2d7d09f9965c 1396 case prise:
ares1999 34:2d7d09f9965c 1397 if(bras_choix == 21) {
ares1999 34:2d7d09f9965c 1398 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1399 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1400 } else if(bras_choix == 20) {
ares1999 34:2d7d09f9965c 1401 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1402 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1403 } else if(bras_choix == 10) {
ares1999 34:2d7d09f9965c 1404 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1405 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1406 } else if(bras_choix == 43) {
ares1999 34:2d7d09f9965c 1407 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1408 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1409 } else if(bras_choix == 53) {
ares1999 34:2d7d09f9965c 1410 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1411 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1412 } else if(bras_choix == 54) {
ares1999 34:2d7d09f9965c 1413 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1414 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1415 }
ares1999 34:2d7d09f9965c 1416 //verification();
ares1999 34:2d7d09f9965c 1417 wait_ms(TEMPO_POMPE);
ares1999 34:2d7d09f9965c 1418 etat = rangement2;
ares1999 34:2d7d09f9965c 1419 break;
ares1999 34:2d7d09f9965c 1420
ares1999 34:2d7d09f9965c 1421 case rangement2:
ares1999 34:2d7d09f9965c 1422 if(bras_choix == 21) {
ares1999 34:2d7d09f9965c 1423 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement2_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1424 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1425 } else if(bras_choix == 20) {
ares1999 34:2d7d09f9965c 1426 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement2_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1427 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1428 } else if(bras_choix == 10) {
ares1999 34:2d7d09f9965c 1429 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1430 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1431 } else if(bras_choix == 43) {
ares1999 34:2d7d09f9965c 1432 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement2_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1433 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1434 } else if(bras_choix == 53) {
ares1999 34:2d7d09f9965c 1435 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement2_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1436 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1437 } else if(bras_choix == 54) {
ares1999 34:2d7d09f9965c 1438 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement2_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1439 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement2_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1440 }
ares1999 34:2d7d09f9965c 1441 //verification();
ares1999 34:2d7d09f9965c 1442 wait_ms(TEMPO);
ares1999 34:2d7d09f9965c 1443 aut_2_bras_prise_bas = 0;
ares1999 34:2d7d09f9965c 1444 aut_prise_bas = 0 ;
ares1999 34:2d7d09f9965c 1445 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
ares1999 34:2d7d09f9965c 1446 etat = init;
ares1999 34:2d7d09f9965c 1447 break;
ares1999 34:2d7d09f9965c 1448
ares1999 34:2d7d09f9965c 1449 default:
ares1999 34:2d7d09f9965c 1450 break;
ares1999 34:2d7d09f9965c 1451 }
ares1999 34:2d7d09f9965c 1452 }
ares1999 34:2d7d09f9965c 1453
ares1999 34:2d7d09f9965c 1454 void automate_prise_bas_3(void)
ares1999 34:2d7d09f9965c 1455 {
ares1999 34:2d7d09f9965c 1456 typedef enum {init, rangement, pre_prise, prise, rangement2} type_etat;
ares1999 34:2d7d09f9965c 1457 static type_etat etat = init;
ares1999 34:2d7d09f9965c 1458
ares1999 34:2d7d09f9965c 1459 switch(etat) {
ares1999 34:2d7d09f9965c 1460 case init:
ares1999 34:2d7d09f9965c 1461 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
ares1999 34:2d7d09f9965c 1462 etat=rangement;
ares1999 34:2d7d09f9965c 1463 break;
ares1999 34:2d7d09f9965c 1464 case rangement:
ares1999 34:2d7d09f9965c 1465 if(bras_choix == 210) {
ares1999 34:2d7d09f9965c 1466 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1467 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1468 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1469 } else if(bras_choix == 66) {
ares1999 34:2d7d09f9965c 1470 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1471 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1472 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1473 }
ares1999 34:2d7d09f9965c 1474 //verification();
ares1999 34:2d7d09f9965c 1475 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1476 etat = pre_prise;
ares1999 34:2d7d09f9965c 1477 break;
ares1999 34:2d7d09f9965c 1478
ares1999 34:2d7d09f9965c 1479 case pre_prise:
ares1999 34:2d7d09f9965c 1480 if(bras_choix == 210) {
ares1999 34:2d7d09f9965c 1481 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1482 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1483 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1484 } else if(bras_choix == 66) {
ares1999 34:2d7d09f9965c 1485 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1486 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1487 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1488 }
ares1999 34:2d7d09f9965c 1489 //verification();
ares1999 34:2d7d09f9965c 1490 wait_ms(TEMPO);
ares1999 34:2d7d09f9965c 1491 etat = prise;
ares1999 34:2d7d09f9965c 1492 break;
ares1999 34:2d7d09f9965c 1493
ares1999 34:2d7d09f9965c 1494 case prise:
ares1999 34:2d7d09f9965c 1495 if(bras_choix == 210) {
ares1999 34:2d7d09f9965c 1496 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1497 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1498 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1499 } else if(bras_choix == 66) {
ares1999 34:2d7d09f9965c 1500 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1501 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1502 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1503 }
ares1999 34:2d7d09f9965c 1504 //verification();
ares1999 34:2d7d09f9965c 1505 wait_ms(TEMPO_POMPE);
ares1999 34:2d7d09f9965c 1506 etat = rangement2;
ares1999 34:2d7d09f9965c 1507 break;
ares1999 34:2d7d09f9965c 1508
ares1999 34:2d7d09f9965c 1509 case rangement2:
ares1999 34:2d7d09f9965c 1510 if(bras_choix == 210) {
ares1999 34:2d7d09f9965c 1511 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement2_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1512 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1513 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1514 } else if(bras_choix == 66) {
ares1999 34:2d7d09f9965c 1515 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement2_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1516 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement2_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1517 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1518 }
ares1999 34:2d7d09f9965c 1519 //verification();
ares1999 34:2d7d09f9965c 1520 wait_ms(TEMPO);
ares1999 34:2d7d09f9965c 1521 aut_3_bras_prise_bas = 0;
ares1999 34:2d7d09f9965c 1522 aut_prise_bas = 0 ;
ares1999 34:2d7d09f9965c 1523 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
ares1999 34:2d7d09f9965c 1524 etat = init;
ares1999 34:2d7d09f9965c 1525 break;
ares1999 34:2d7d09f9965c 1526
ares1999 34:2d7d09f9965c 1527 default:
ares1999 34:2d7d09f9965c 1528 break;
ares1999 34:2d7d09f9965c 1529 }
ares1999 34:2d7d09f9965c 1530 }
ares1999 34:2d7d09f9965c 1531
ares1999 34:2d7d09f9965c 1532 ////////////////////////////////////////////////////////////////Gestion Chasse Neige////////////////////////////////////////////////////////////////
ares1999 34:2d7d09f9965c 1533 void Gestion_CN(void)
ares1999 34:2d7d09f9965c 1534 {
ares1999 34:2d7d09f9965c 1535 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
ares1999 34:2d7d09f9965c 1536 switch(ouv_ferm_CN)
ares1999 34:2d7d09f9965c 1537 {
ares1999 34:2d7d09f9965c 1538 case 0: //ouverture
ares1999 34:2d7d09f9965c 1539 positionControl_Mul_ensemble(CN_GAUCHE_AV, 790, PLAYTIME, RLED_ON, CN_DROITE_AV, 240, RLED_ON, SERIAL_SPECIAL);
ares1999 34:2d7d09f9965c 1540 break;
ares1999 34:2d7d09f9965c 1541
ares1999 34:2d7d09f9965c 1542 case 1: //fermeture
ares1999 34:2d7d09f9965c 1543 positionControl_Mul_ensemble(CN_GAUCHE_AV, 240, PLAYTIME, RLED_ON, CN_DROITE_AV, 790, RLED_ON, SERIAL_SPECIAL);
ares1999 34:2d7d09f9965c 1544 break;
ares1999 34:2d7d09f9965c 1545
ares1999 34:2d7d09f9965c 1546 default:
ares1999 34:2d7d09f9965c 1547 break;
ares1999 34:2d7d09f9965c 1548 }
ares1999 34:2d7d09f9965c 1549 //verification();
ares1999 34:2d7d09f9965c 1550 wait_ms(TEMPO);
ares1999 34:2d7d09f9965c 1551 ouv_ferm_CN = 0;
ares1999 34:2d7d09f9965c 1552 aut_CN = 0;
ares1999 34:2d7d09f9965c 1553 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
ares1999 34:2d7d09f9965c 1554 }
ares1999 34:2d7d09f9965c 1555
ares1999 34:2d7d09f9965c 1556 ////////////////////////////////////////////////////////////////Selection prise bas////////////////////////////////////////////////////////////////
ares1999 34:2d7d09f9965c 1557 void selection_bras_prise_bas(void)
ares1999 34:2d7d09f9965c 1558 {
ares1999 34:2d7d09f9965c 1559
ares1999 34:2d7d09f9965c 1560 if(bras_choix<6)
ares1999 34:2d7d09f9965c 1561 {
ares1999 34:2d7d09f9965c 1562 aut_1_bras_prise_bas = 1;
ares1999 34:2d7d09f9965c 1563 automate_prise_bas_1();
ares1999 34:2d7d09f9965c 1564 }
ares1999 34:2d7d09f9965c 1565 else if(bras_choix>5)
ares1999 34:2d7d09f9965c 1566 {
ares1999 34:2d7d09f9965c 1567 switch(bras_choix)
ares1999 34:2d7d09f9965c 1568 {
ares1999 34:2d7d09f9965c 1569 case 10:
ares1999 34:2d7d09f9965c 1570 aut_2_bras_prise_bas = 1;
ares1999 34:2d7d09f9965c 1571 automate_prise_bas_2();
ares1999 34:2d7d09f9965c 1572 break;
ares1999 34:2d7d09f9965c 1573
ares1999 34:2d7d09f9965c 1574 case 20:
ares1999 34:2d7d09f9965c 1575 aut_2_bras_prise_bas = 1;
ares1999 34:2d7d09f9965c 1576 automate_prise_bas_2();
ares1999 34:2d7d09f9965c 1577 break;
ares1999 34:2d7d09f9965c 1578
ares1999 34:2d7d09f9965c 1579 case 21:
ares1999 34:2d7d09f9965c 1580 aut_2_bras_prise_bas = 1;
ares1999 34:2d7d09f9965c 1581 automate_prise_bas_2();
ares1999 34:2d7d09f9965c 1582 break;
ares1999 34:2d7d09f9965c 1583
ares1999 34:2d7d09f9965c 1584 case 210:
ares1999 34:2d7d09f9965c 1585 aut_3_bras_prise_bas = 1;
ares1999 34:2d7d09f9965c 1586 automate_prise_bas_3();
ares1999 34:2d7d09f9965c 1587 break;
ares1999 34:2d7d09f9965c 1588
ares1999 34:2d7d09f9965c 1589 case 43:
ares1999 34:2d7d09f9965c 1590 aut_2_bras_prise_bas = 1;
ares1999 34:2d7d09f9965c 1591 automate_prise_bas_2();
ares1999 34:2d7d09f9965c 1592 break;
ares1999 34:2d7d09f9965c 1593
ares1999 34:2d7d09f9965c 1594 case 53:
ares1999 34:2d7d09f9965c 1595 aut_2_bras_prise_bas = 1;
ares1999 34:2d7d09f9965c 1596 automate_prise_bas_2();
ares1999 34:2d7d09f9965c 1597 break;
ares1999 34:2d7d09f9965c 1598
ares1999 34:2d7d09f9965c 1599 case 54:
ares1999 34:2d7d09f9965c 1600 aut_2_bras_prise_bas = 1;
ares1999 34:2d7d09f9965c 1601 automate_prise_bas_2();
ares1999 34:2d7d09f9965c 1602 break;
ares1999 34:2d7d09f9965c 1603
ares1999 34:2d7d09f9965c 1604 case 66:
ares1999 34:2d7d09f9965c 1605 aut_3_bras_prise_bas = 1;
ares1999 34:2d7d09f9965c 1606 automate_prise_bas_3();
ares1999 34:2d7d09f9965c 1607 break;
ares1999 34:2d7d09f9965c 1608
ares1999 34:2d7d09f9965c 1609 default:
ares1999 34:2d7d09f9965c 1610 break;
ares1999 34:2d7d09f9965c 1611 }
ares1999 34:2d7d09f9965c 1612 }
ares1999 34:2d7d09f9965c 1613 }
ares1999 34:2d7d09f9965c 1614
ares1999 34:2d7d09f9965c 1615 ////////////////////////////////////////////////////////////////Selection passe////////////////////////////////////////////////////////////////
ares1999 34:2d7d09f9965c 1616 void selection_bras_passe(void)
ares1999 34:2d7d09f9965c 1617 {
ares1999 34:2d7d09f9965c 1618
ares1999 34:2d7d09f9965c 1619 if(bras_choix<6)
ares1999 34:2d7d09f9965c 1620 {
ares1999 34:2d7d09f9965c 1621 aut_1_bras_passe = 1;
ares1999 34:2d7d09f9965c 1622 automate_passe_1();
ares1999 34:2d7d09f9965c 1623 }
ares1999 34:2d7d09f9965c 1624 else if(bras_choix>5)
ares1999 34:2d7d09f9965c 1625 {
ares1999 34:2d7d09f9965c 1626 switch(bras_choix)
ares1999 34:2d7d09f9965c 1627 {
ares1999 34:2d7d09f9965c 1628 case 10:
ares1999 34:2d7d09f9965c 1629 aut_2_bras_passe = 1;
ares1999 34:2d7d09f9965c 1630 automate_passe_2();
ares1999 34:2d7d09f9965c 1631 break;
ares1999 34:2d7d09f9965c 1632
ares1999 34:2d7d09f9965c 1633 case 20:
ares1999 34:2d7d09f9965c 1634 aut_2_bras_passe = 1;
ares1999 34:2d7d09f9965c 1635 automate_passe_2();
ares1999 34:2d7d09f9965c 1636 break;
ares1999 34:2d7d09f9965c 1637
ares1999 34:2d7d09f9965c 1638 case 21:
ares1999 34:2d7d09f9965c 1639 aut_2_bras_passe = 1;
ares1999 34:2d7d09f9965c 1640 automate_passe_2();
ares1999 34:2d7d09f9965c 1641 break;
ares1999 34:2d7d09f9965c 1642
ares1999 34:2d7d09f9965c 1643 case 210:
ares1999 34:2d7d09f9965c 1644 aut_3_bras_passe = 1;
ares1999 34:2d7d09f9965c 1645 automate_passe_3();
ares1999 34:2d7d09f9965c 1646 break;
ares1999 34:2d7d09f9965c 1647
ares1999 34:2d7d09f9965c 1648 case 43:
ares1999 34:2d7d09f9965c 1649 aut_2_bras_passe = 1;
ares1999 34:2d7d09f9965c 1650 automate_passe_2();
ares1999 34:2d7d09f9965c 1651 break;
ares1999 34:2d7d09f9965c 1652
ares1999 34:2d7d09f9965c 1653 case 53:
ares1999 34:2d7d09f9965c 1654 aut_2_bras_passe = 1;
ares1999 34:2d7d09f9965c 1655 automate_passe_2();
ares1999 34:2d7d09f9965c 1656 break;
ares1999 34:2d7d09f9965c 1657
ares1999 34:2d7d09f9965c 1658 case 54:
ares1999 34:2d7d09f9965c 1659 aut_2_bras_passe = 1;
ares1999 34:2d7d09f9965c 1660 automate_passe_2();
ares1999 34:2d7d09f9965c 1661 break;
ares1999 34:2d7d09f9965c 1662
ares1999 34:2d7d09f9965c 1663 case 66:
ares1999 34:2d7d09f9965c 1664 aut_3_bras_passe = 1;
ares1999 34:2d7d09f9965c 1665 automate_passe_3();
ares1999 34:2d7d09f9965c 1666 break;
ares1999 34:2d7d09f9965c 1667
ares1999 34:2d7d09f9965c 1668 default:
ares1999 34:2d7d09f9965c 1669 break;
ares1999 34:2d7d09f9965c 1670 }
ares1999 34:2d7d09f9965c 1671 }
ares1999 34:2d7d09f9965c 1672 }
ares1999 34:2d7d09f9965c 1673
ares1999 34:2d7d09f9965c 1674 ////////////////////////////////////////////////////////////////Selection relache bas////////////////////////////////////////////////////////////////
ares1999 34:2d7d09f9965c 1675 void selection_bras_relache_bas(void)
ares1999 34:2d7d09f9965c 1676 {
ares1999 34:2d7d09f9965c 1677
ares1999 34:2d7d09f9965c 1678 if(bras_choix<6)
ares1999 34:2d7d09f9965c 1679 {
ares1999 34:2d7d09f9965c 1680 aut_1_bras_relache_bas = 1;
ares1999 34:2d7d09f9965c 1681 automate_relache_bas_1();
ares1999 34:2d7d09f9965c 1682 }
ares1999 34:2d7d09f9965c 1683 else if(bras_choix>5)
ares1999 34:2d7d09f9965c 1684 {
ares1999 34:2d7d09f9965c 1685 switch(bras_choix)
ares1999 34:2d7d09f9965c 1686 {
ares1999 34:2d7d09f9965c 1687 case 10:
ares1999 34:2d7d09f9965c 1688 aut_2_bras_relache_bas = 1;
ares1999 34:2d7d09f9965c 1689 automate_relache_bas_2();
ares1999 34:2d7d09f9965c 1690 break;
ares1999 34:2d7d09f9965c 1691
ares1999 34:2d7d09f9965c 1692 case 20:
ares1999 34:2d7d09f9965c 1693 aut_2_bras_relache_bas = 1;
ares1999 34:2d7d09f9965c 1694 automate_relache_bas_2();
ares1999 34:2d7d09f9965c 1695 break;
ares1999 34:2d7d09f9965c 1696
ares1999 34:2d7d09f9965c 1697 case 21:
ares1999 34:2d7d09f9965c 1698 aut_2_bras_relache_bas = 1;
ares1999 34:2d7d09f9965c 1699 automate_relache_bas_2();
ares1999 34:2d7d09f9965c 1700 break;
ares1999 34:2d7d09f9965c 1701
ares1999 34:2d7d09f9965c 1702 case 210:
ares1999 34:2d7d09f9965c 1703 aut_3_bras_relache_bas = 1;
ares1999 34:2d7d09f9965c 1704 automate_relache_bas_3();
ares1999 34:2d7d09f9965c 1705 break;
ares1999 34:2d7d09f9965c 1706
ares1999 34:2d7d09f9965c 1707 case 43:
ares1999 34:2d7d09f9965c 1708 aut_2_bras_relache_bas = 1;
ares1999 34:2d7d09f9965c 1709 automate_relache_bas_2();
ares1999 34:2d7d09f9965c 1710 break;
ares1999 34:2d7d09f9965c 1711
ares1999 34:2d7d09f9965c 1712 case 53:
ares1999 34:2d7d09f9965c 1713 aut_2_bras_relache_bas = 1;
ares1999 34:2d7d09f9965c 1714 automate_relache_bas_2();
ares1999 34:2d7d09f9965c 1715 break;
ares1999 34:2d7d09f9965c 1716
ares1999 34:2d7d09f9965c 1717 case 54:
ares1999 34:2d7d09f9965c 1718 aut_2_bras_relache_bas = 1;
ares1999 34:2d7d09f9965c 1719 automate_relache_bas_2();
ares1999 34:2d7d09f9965c 1720 break;
ares1999 34:2d7d09f9965c 1721
ares1999 34:2d7d09f9965c 1722 case 66:
ares1999 34:2d7d09f9965c 1723 aut_3_bras_relache_bas = 1;
ares1999 34:2d7d09f9965c 1724 automate_relache_bas_3();
ares1999 34:2d7d09f9965c 1725 break;
ares1999 34:2d7d09f9965c 1726
ares1999 34:2d7d09f9965c 1727 default:
ares1999 34:2d7d09f9965c 1728 break;
ares1999 34:2d7d09f9965c 1729 }
ares1999 34:2d7d09f9965c 1730 }
ares1999 34:2d7d09f9965c 1731 }
ares1999 34:2d7d09f9965c 1732 ////////////////////////////////////////////////////////////////Selection pose haut////////////////////////////////////////////////////////////////
ares1999 34:2d7d09f9965c 1733 void selection_bras_pose_haut(void)
ares1999 34:2d7d09f9965c 1734 {
ares1999 34:2d7d09f9965c 1735
ares1999 34:2d7d09f9965c 1736 if(bras_choix<6)
ares1999 34:2d7d09f9965c 1737 {
ares1999 34:2d7d09f9965c 1738 aut_1_bras_pose_haut = 1;
ares1999 34:2d7d09f9965c 1739 automate_pose_haut_1();
ares1999 34:2d7d09f9965c 1740 }
ares1999 34:2d7d09f9965c 1741 else if(bras_choix>5)
ares1999 34:2d7d09f9965c 1742 {
ares1999 34:2d7d09f9965c 1743 switch(bras_choix)
ares1999 34:2d7d09f9965c 1744 {
ares1999 34:2d7d09f9965c 1745 case 10:
ares1999 34:2d7d09f9965c 1746 aut_2_bras_pose_haut = 1;
ares1999 34:2d7d09f9965c 1747 automate_pose_haut_2();
ares1999 34:2d7d09f9965c 1748 break;
ares1999 34:2d7d09f9965c 1749
ares1999 34:2d7d09f9965c 1750 case 20:
ares1999 34:2d7d09f9965c 1751 aut_2_bras_pose_haut = 1;
ares1999 34:2d7d09f9965c 1752 automate_pose_haut_2();
ares1999 34:2d7d09f9965c 1753 break;
ares1999 34:2d7d09f9965c 1754
ares1999 34:2d7d09f9965c 1755 case 21:
ares1999 34:2d7d09f9965c 1756 aut_2_bras_pose_haut = 1;
ares1999 34:2d7d09f9965c 1757 automate_pose_haut_2();
ares1999 34:2d7d09f9965c 1758 break;
ares1999 34:2d7d09f9965c 1759
ares1999 34:2d7d09f9965c 1760 case 210:
ares1999 34:2d7d09f9965c 1761 aut_3_bras_pose_haut = 1;
ares1999 34:2d7d09f9965c 1762 automate_pose_haut_3();
ares1999 34:2d7d09f9965c 1763 break;
ares1999 34:2d7d09f9965c 1764
ares1999 34:2d7d09f9965c 1765 case 43:
ares1999 34:2d7d09f9965c 1766 aut_2_bras_pose_haut = 1;
ares1999 34:2d7d09f9965c 1767 automate_pose_haut_2();
ares1999 34:2d7d09f9965c 1768 break;
ares1999 34:2d7d09f9965c 1769
ares1999 34:2d7d09f9965c 1770 case 53:
ares1999 34:2d7d09f9965c 1771 aut_2_bras_pose_haut = 1;
ares1999 34:2d7d09f9965c 1772 automate_pose_haut_2();
ares1999 34:2d7d09f9965c 1773 break;
ares1999 34:2d7d09f9965c 1774
ares1999 34:2d7d09f9965c 1775 case 54:
ares1999 34:2d7d09f9965c 1776 aut_2_bras_pose_haut = 1;
ares1999 34:2d7d09f9965c 1777 automate_pose_haut_2();
ares1999 34:2d7d09f9965c 1778 break;
ares1999 34:2d7d09f9965c 1779
ares1999 34:2d7d09f9965c 1780 case 66:
ares1999 34:2d7d09f9965c 1781 aut_3_bras_pose_haut = 1;
ares1999 34:2d7d09f9965c 1782 automate_pose_haut_3();
ares1999 34:2d7d09f9965c 1783 break;
ares1999 34:2d7d09f9965c 1784
ares1999 34:2d7d09f9965c 1785 default:
ares1999 34:2d7d09f9965c 1786 break;
ares1999 34:2d7d09f9965c 1787 }
ares1999 34:2d7d09f9965c 1788 }
ares1999 34:2d7d09f9965c 1789 }
ares1999 34:2d7d09f9965c 1790
ares1999 34:2d7d09f9965c 1791 ////////////////////////////////////////////////////////////////Selection rangement////////////////////////////////////////////////////////////////
ares1999 34:2d7d09f9965c 1792 void selection_bras_rangement(void)
ares1999 34:2d7d09f9965c 1793 {
ares1999 34:2d7d09f9965c 1794 switch(bras_choix) {
ares1999 34:2d7d09f9965c 1795 case 0:
ares1999 34:2d7d09f9965c 1796 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1797 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1798 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement_HAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1799 break;
ares1999 34:2d7d09f9965c 1800
ares1999 34:2d7d09f9965c 1801 case 1:
ares1999 34:2d7d09f9965c 1802 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1803 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1804 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1805 break;
ares1999 34:2d7d09f9965c 1806
ares1999 34:2d7d09f9965c 1807 case 2:
ares1999 34:2d7d09f9965c 1808 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1809 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1810 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement_HAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1811 break;
ares1999 34:2d7d09f9965c 1812
ares1999 34:2d7d09f9965c 1813 case 3:
ares1999 34:2d7d09f9965c 1814 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1815 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1816 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement_HAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1817 break;
ares1999 34:2d7d09f9965c 1818
ares1999 34:2d7d09f9965c 1819 case 4:
ares1999 34:2d7d09f9965c 1820 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1821 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1822 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1823 break;
ares1999 34:2d7d09f9965c 1824
ares1999 34:2d7d09f9965c 1825 case 5:
ares1999 34:2d7d09f9965c 1826 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1827 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1828 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement_HAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1829 break;
ares1999 34:2d7d09f9965c 1830
ares1999 34:2d7d09f9965c 1831 case 10:
ares1999 34:2d7d09f9965c 1832 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1833 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1834 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1835 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement_HAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1836 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1837 break;
ares1999 34:2d7d09f9965c 1838
ares1999 34:2d7d09f9965c 1839 case 20:
ares1999 34:2d7d09f9965c 1840 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1841 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1842 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1843 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement_HAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1844 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement_HAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1845 break;
ares1999 34:2d7d09f9965c 1846
ares1999 34:2d7d09f9965c 1847 case 21:
ares1999 34:2d7d09f9965c 1848 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1849 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1850 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1851 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1852 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement_HAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1853 break;
ares1999 34:2d7d09f9965c 1854
ares1999 34:2d7d09f9965c 1855 case 210:
ares1999 34:2d7d09f9965c 1856 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1857 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1858 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1859 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1860 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement_HAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1861 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1862 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement_HAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1863 break;
ares1999 34:2d7d09f9965c 1864
ares1999 34:2d7d09f9965c 1865 case 43:
ares1999 34:2d7d09f9965c 1866 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1867 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1868 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1869 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1870 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement_HAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1871 break;
ares1999 34:2d7d09f9965c 1872
ares1999 34:2d7d09f9965c 1873 case 53:
ares1999 34:2d7d09f9965c 1874 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1875 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1876 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1877 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement_HAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1878 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement_HAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1879 break;
ares1999 34:2d7d09f9965c 1880
ares1999 34:2d7d09f9965c 1881 case 54:
ares1999 34:2d7d09f9965c 1882 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1883 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1884 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1885 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement_HAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1886 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1887 break;
ares1999 34:2d7d09f9965c 1888
ares1999 34:2d7d09f9965c 1889 case 66: //3 4 5
ares1999 34:2d7d09f9965c 1890 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1891 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1892 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1893 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1894 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement_HAV, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 1895 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement_HM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 1896 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement_HAR, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 1897 break;
ares1999 34:2d7d09f9965c 1898 default:
ares1999 34:2d7d09f9965c 1899 break;
ares1999 34:2d7d09f9965c 1900 }
ares1999 34:2d7d09f9965c 1901 aut_rangement=0;
ares1999 34:2d7d09f9965c 1902 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
ares1999 34:2d7d09f9965c 1903 }
ares1999 34:2d7d09f9965c 1904
ares1999 34:2d7d09f9965c 1905
ares1999 34:2d7d09f9965c 1906 /*void fct_bras_Gauche(char serial_select)
ares1999 34:2d7d09f9965c 1907 {
ares1999 34:2d7d09f9965c 1908 //Rangement bras bas
ares1999 34:2d7d09f9965c 1909 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, serial_select);
ares1999 34:2d7d09f9965c 1910 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1911 //Rangement bras haut
ares1999 34:2d7d09f9965c 1912 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement_HAV, serial_select);
ares1999 34:2d7d09f9965c 1913 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1914 //Pré Prise bras bas
ares1999 34:2d7d09f9965c 1915 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BAV, serial_select);
ares1999 34:2d7d09f9965c 1916 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1917 //Prise bras bas
ares1999 34:2d7d09f9965c 1918 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BAV, serial_select);
ares1999 34:2d7d09f9965c 1919 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1920 //Pré passe bras bas
ares1999 34:2d7d09f9965c 1921 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_passe_BAV, serial_select);
ares1999 34:2d7d09f9965c 1922 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1923 positionControl(BAV_HAUT, 295, PLAYTIME, BLED_ON, serial_select);
ares1999 34:2d7d09f9965c 1924 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1925 //Passe bras bas
ares1999 34:2d7d09f9965c 1926 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, passe_BAV, serial_select);
ares1999 34:2d7d09f9965c 1927 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1928 //Pré prise bras haut
ares1999 34:2d7d09f9965c 1929 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, pre_prise_HAV, serial_select);
ares1999 34:2d7d09f9965c 1930 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1931 //Prise bras haut
ares1999 34:2d7d09f9965c 1932 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, prise_HAV, serial_select);
ares1999 34:2d7d09f9965c 1933 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1934 //Pré rangement bras bas
ares1999 34:2d7d09f9965c 1935 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_rangement_BAV, serial_select);
ares1999 34:2d7d09f9965c 1936 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1937 //Rangement bras haut
ares1999 34:2d7d09f9965c 1938 positionControl(BAV_HAUT, 535, PLAYTIME, BLED_ON, serial_select);
ares1999 34:2d7d09f9965c 1939 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1940 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement2_HAV, serial_select);
ares1999 34:2d7d09f9965c 1941 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1942 //Rangement bras bas
ares1999 34:2d7d09f9965c 1943 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, serial_select);
ares1999 34:2d7d09f9965c 1944 wait_ms(TEMPO);
ares1999 34:2d7d09f9965c 1945 }
ares1999 34:2d7d09f9965c 1946
ares1999 34:2d7d09f9965c 1947 void fct_bras_Droite(char serial_select)
ares1999 34:2d7d09f9965c 1948 {
ares1999 34:2d7d09f9965c 1949 //Rangement bras bas
ares1999 34:2d7d09f9965c 1950 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, serial_select);
ares1999 34:2d7d09f9965c 1951 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1952 //Rangement bras haut
ares1999 34:2d7d09f9965c 1953 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement_HAR, serial_select);
ares1999 34:2d7d09f9965c 1954 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1955 //Pré Prise bras bas
ares1999 34:2d7d09f9965c 1956 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BAR, serial_select);
ares1999 34:2d7d09f9965c 1957 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1958 //Prise bras bas
ares1999 34:2d7d09f9965c 1959 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BAR, serial_select);
ares1999 34:2d7d09f9965c 1960 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1961 //Pré passe bras bas
ares1999 34:2d7d09f9965c 1962 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_passe_BAR, serial_select);
ares1999 34:2d7d09f9965c 1963 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1964 positionControl(BAR_HAUT, 730, PLAYTIME, BLED_ON, serial_select);
ares1999 34:2d7d09f9965c 1965 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1966 //Passe bras bas
ares1999 34:2d7d09f9965c 1967 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, passe_BAR, serial_select);
ares1999 34:2d7d09f9965c 1968 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1969 //Pré prise bras haut
ares1999 34:2d7d09f9965c 1970 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, pre_prise_HAR, serial_select);
ares1999 34:2d7d09f9965c 1971 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1972 //Prise bras haut
ares1999 34:2d7d09f9965c 1973 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, prise_HAR, serial_select);
ares1999 34:2d7d09f9965c 1974 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1975 //Pré rangement bras bas
ares1999 34:2d7d09f9965c 1976 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_rangement_BAR, serial_select);
ares1999 34:2d7d09f9965c 1977 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1978 //Rangement bras haut
ares1999 34:2d7d09f9965c 1979 positionControl(BAR_HAUT, 485, PLAYTIME, BLED_ON, serial_select);
ares1999 34:2d7d09f9965c 1980 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1981 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement2_HAR, serial_select);
ares1999 34:2d7d09f9965c 1982 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1983 //Rangement bras bas
ares1999 34:2d7d09f9965c 1984 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, serial_select);
ares1999 34:2d7d09f9965c 1985 wait_ms(TEMPO);
ares1999 34:2d7d09f9965c 1986 }
ares1999 34:2d7d09f9965c 1987
ares1999 34:2d7d09f9965c 1988 void fct_bras_AV_Milieu(char serial_select)
ares1999 34:2d7d09f9965c 1989 {
ares1999 34:2d7d09f9965c 1990 //Rangement bras bas
ares1999 34:2d7d09f9965c 1991 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BM, serial_select);
ares1999 34:2d7d09f9965c 1992 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1993 //Rangement bras haut
ares1999 34:2d7d09f9965c 1994 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement_HM, serial_select);
ares1999 34:2d7d09f9965c 1995 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1996 //Pré Prise bras bas
ares1999 34:2d7d09f9965c 1997 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BM, serial_select);
ares1999 34:2d7d09f9965c 1998 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 1999 //Prise bras bas
ares1999 34:2d7d09f9965c 2000 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BM, serial_select);
ares1999 34:2d7d09f9965c 2001 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 2002 //Pré passe bras bas
ares1999 34:2d7d09f9965c 2003 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_passe_BM, serial_select);
ares1999 34:2d7d09f9965c 2004 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 2005 positionControl(BAV_HAUT, 785, PLAYTIME, BLED_ON, serial_select);
ares1999 34:2d7d09f9965c 2006 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 2007 //Passe bras bas
ares1999 34:2d7d09f9965c 2008 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, passe_BM, serial_select);
ares1999 34:2d7d09f9965c 2009 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 2010 //Pré prise bras haut
ares1999 34:2d7d09f9965c 2011 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, pre_prise_HM, serial_select);
ares1999 34:2d7d09f9965c 2012 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 2013 //Prise bras haut
ares1999 34:2d7d09f9965c 2014 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, prise_HM, serial_select);
ares1999 34:2d7d09f9965c 2015 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 2016 //Pré rangement bras bas
ares1999 34:2d7d09f9965c 2017 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_rangement_BM, serial_select);
ares1999 34:2d7d09f9965c 2018 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 2019 //Rangement bras haut
ares1999 34:2d7d09f9965c 2020 positionControl(BAV_HAUT, 485, PLAYTIME, BLED_ON, serial_select);
ares1999 34:2d7d09f9965c 2021 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 2022 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAV, rangement2_HM, serial_select);
ares1999 34:2d7d09f9965c 2023 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 2024 //Rangement bras bas
ares1999 34:2d7d09f9965c 2025 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BM, serial_select);
ares1999 34:2d7d09f9965c 2026 wait_ms(TEMPO);
ares1999 34:2d7d09f9965c 2027 }
ares1999 34:2d7d09f9965c 2028
ares1999 34:2d7d09f9965c 2029 void fct_bras_AR_Milieu(char serial_select)
ares1999 34:2d7d09f9965c 2030 {
ares1999 34:2d7d09f9965c 2031 //Rangement bras bas
ares1999 34:2d7d09f9965c 2032 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BM, serial_select);
ares1999 34:2d7d09f9965c 2033 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 2034 //Rangement bras haut
ares1999 34:2d7d09f9965c 2035 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement_HM, serial_select);
ares1999 34:2d7d09f9965c 2036 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 2037 //Pré Prise bras bas
ares1999 34:2d7d09f9965c 2038 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BM, serial_select);
ares1999 34:2d7d09f9965c 2039 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 2040 //Prise bras bas
ares1999 34:2d7d09f9965c 2041 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BM, serial_select);
ares1999 34:2d7d09f9965c 2042 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 2043 //Pré passe bras bas
ares1999 34:2d7d09f9965c 2044 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_passe_BM, serial_select);
ares1999 34:2d7d09f9965c 2045 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 2046 positionControl(BAR_HAUT, 785, PLAYTIME, BLED_ON, serial_select);
ares1999 34:2d7d09f9965c 2047 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 2048 //Passe bras bas
ares1999 34:2d7d09f9965c 2049 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, passe_BM, serial_select);
ares1999 34:2d7d09f9965c 2050 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 2051 //Pré prise bras haut
ares1999 34:2d7d09f9965c 2052 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, pre_prise_HM, serial_select);
ares1999 34:2d7d09f9965c 2053 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 2054 //Prise bras haut
ares1999 34:2d7d09f9965c 2055 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, prise_HM, serial_select);
ares1999 34:2d7d09f9965c 2056 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 2057 //Pré rangement bras bas
ares1999 34:2d7d09f9965c 2058 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_rangement_BM, serial_select);
ares1999 34:2d7d09f9965c 2059 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 2060 //Rangement bras haut
ares1999 34:2d7d09f9965c 2061 positionControl(BAR_HAUT, 485, PLAYTIME, BLED_ON, serial_select);
ares1999 34:2d7d09f9965c 2062 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 2063 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_HAR, rangement2_HM, serial_select);
ares1999 34:2d7d09f9965c 2064 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 2065 //Rangement bras bas
ares1999 34:2d7d09f9965c 2066 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BM, serial_select);
ares1999 34:2d7d09f9965c 2067 wait_ms(TEMPO);
ares1999 34:2d7d09f9965c 2068 }
ares1999 34:2d7d09f9965c 2069
ares1999 34:2d7d09f9965c 2070 void fct_prise_tous_AV(void)
ares1999 34:2d7d09f9965c 2071 {
ares1999 34:2d7d09f9965c 2072 typedef enum {rangement, pre_prise, prise, rangement_2} type_etat;
ares1999 34:2d7d09f9965c 2073 static type_etat etat = rangement;
ares1999 34:2d7d09f9965c 2074 for(int i=1;i<=4;i++){
ares1999 34:2d7d09f9965c 2075 switch(etat) {
ares1999 34:2d7d09f9965c 2076 case rangement:
ares1999 34:2d7d09f9965c 2077 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 2078 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 2079 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 2080 //verification();
ares1999 34:2d7d09f9965c 2081 pc.printf("\n1\n\r");
ares1999 34:2d7d09f9965c 2082 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 2083 etat = pre_prise;
ares1999 34:2d7d09f9965c 2084 break;
ares1999 34:2d7d09f9965c 2085 case pre_prise:
ares1999 34:2d7d09f9965c 2086 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 2087 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 2088 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 2089 //verification();
ares1999 34:2d7d09f9965c 2090 pc.printf("\n2\n\r");
ares1999 34:2d7d09f9965c 2091 wait_ms(TEMPO);
ares1999 34:2d7d09f9965c 2092 etat = prise;
ares1999 34:2d7d09f9965c 2093 break;
ares1999 34:2d7d09f9965c 2094 case prise:
ares1999 34:2d7d09f9965c 2095 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 2096 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 2097 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 2098 //verification();
ares1999 34:2d7d09f9965c 2099 pc.printf("\n3\n\r");
ares1999 34:2d7d09f9965c 2100 wait_ms(TEMPO_POMPE);
ares1999 34:2d7d09f9965c 2101 etat = rangement_2;
ares1999 34:2d7d09f9965c 2102 break;
ares1999 34:2d7d09f9965c 2103 case rangement_2:
ares1999 34:2d7d09f9965c 2104 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BAV, SERIAL_GAUCHE);
ares1999 34:2d7d09f9965c 2105 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BM, SERIAL_MILIEU);
ares1999 34:2d7d09f9965c 2106 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement2_BAR, SERIAL_DROITE);
ares1999 34:2d7d09f9965c 2107 //verification();
ares1999 34:2d7d09f9965c 2108 pc.printf("\n4\n\r");
ares1999 34:2d7d09f9965c 2109 wait_ms(TEMPO);
ares1999 34:2d7d09f9965c 2110 etat = rangement;
ares1999 34:2d7d09f9965c 2111 break;
ares1999 34:2d7d09f9965c 2112 }
ares1999 34:2d7d09f9965c 2113 }
ares1999 34:2d7d09f9965c 2114 }
ares1999 34:2d7d09f9965c 2115
ares1999 34:2d7d09f9965c 2116 void fct_prise_Gauche(char serial_select) //servo 1,2,3
ares1999 34:2d7d09f9965c 2117 {
ares1999 34:2d7d09f9965c 2118 for(int i=1;i<=4;i++){
ares1999 34:2d7d09f9965c 2119 typedef enum {rangement, pre_prise, prise, rangement_2} type_etat;
ares1999 34:2d7d09f9965c 2120 static type_etat etat = rangement;
ares1999 34:2d7d09f9965c 2121
ares1999 34:2d7d09f9965c 2122 switch(etat) {
ares1999 34:2d7d09f9965c 2123 case rangement:
ares1999 34:2d7d09f9965c 2124 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BAV, serial_select);
ares1999 34:2d7d09f9965c 2125 //verification();
ares1999 34:2d7d09f9965c 2126 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 2127 etat = pre_prise;
ares1999 34:2d7d09f9965c 2128 break;
ares1999 34:2d7d09f9965c 2129 case pre_prise:
ares1999 34:2d7d09f9965c 2130 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BAV, serial_select);
ares1999 34:2d7d09f9965c 2131 //verification();
ares1999 34:2d7d09f9965c 2132 wait_ms(TEMPO);
ares1999 34:2d7d09f9965c 2133 etat = prise;
ares1999 34:2d7d09f9965c 2134 break;
ares1999 34:2d7d09f9965c 2135 case prise:
ares1999 34:2d7d09f9965c 2136 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BAV, serial_select);
ares1999 34:2d7d09f9965c 2137 //verification();
ares1999 34:2d7d09f9965c 2138 wait_ms(TEMPO_POMPE);
ares1999 34:2d7d09f9965c 2139 etat = rangement_2;
ares1999 34:2d7d09f9965c 2140 break;
ares1999 34:2d7d09f9965c 2141 case rangement_2:
ares1999 34:2d7d09f9965c 2142 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BAV, serial_select);
ares1999 34:2d7d09f9965c 2143 //verification();
ares1999 34:2d7d09f9965c 2144 wait_ms(TEMPO);
ares1999 34:2d7d09f9965c 2145 etat = rangement;
ares1999 34:2d7d09f9965c 2146 break;
ares1999 34:2d7d09f9965c 2147 }
ares1999 34:2d7d09f9965c 2148 }
ares1999 34:2d7d09f9965c 2149 }
ares1999 34:2d7d09f9965c 2150
ares1999 34:2d7d09f9965c 2151 void fct_prise_Droite(char serial_select) //servo 4,5,6
ares1999 34:2d7d09f9965c 2152 {
ares1999 34:2d7d09f9965c 2153 for(int i=1;i<=4;i++){
ares1999 34:2d7d09f9965c 2154 typedef enum {rangement, pre_prise, prise, rangement_2} type_etat;
ares1999 34:2d7d09f9965c 2155 static type_etat etat = rangement;
ares1999 34:2d7d09f9965c 2156
ares1999 34:2d7d09f9965c 2157 switch(etat) {
ares1999 34:2d7d09f9965c 2158 case rangement:
ares1999 34:2d7d09f9965c 2159 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BAR, serial_select);
ares1999 34:2d7d09f9965c 2160 //verification();
ares1999 34:2d7d09f9965c 2161 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 2162 etat = pre_prise;
ares1999 34:2d7d09f9965c 2163 break;
ares1999 34:2d7d09f9965c 2164 case pre_prise:
ares1999 34:2d7d09f9965c 2165 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BAR, serial_select);
ares1999 34:2d7d09f9965c 2166 //verification();
ares1999 34:2d7d09f9965c 2167 wait_ms(TEMPO);
ares1999 34:2d7d09f9965c 2168 etat = prise;
ares1999 34:2d7d09f9965c 2169 break;
ares1999 34:2d7d09f9965c 2170 case prise:
ares1999 34:2d7d09f9965c 2171 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BAR, serial_select);
ares1999 34:2d7d09f9965c 2172 //verification();
ares1999 34:2d7d09f9965c 2173 wait_ms(TEMPO_POMPE);
ares1999 34:2d7d09f9965c 2174 etat = rangement_2;
ares1999 34:2d7d09f9965c 2175 break;
ares1999 34:2d7d09f9965c 2176 case rangement_2:
ares1999 34:2d7d09f9965c 2177 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement2_BAR, serial_select);
ares1999 34:2d7d09f9965c 2178 //verification();
ares1999 34:2d7d09f9965c 2179 wait_ms(TEMPO);
ares1999 34:2d7d09f9965c 2180 etat = rangement;
ares1999 34:2d7d09f9965c 2181 break;
ares1999 34:2d7d09f9965c 2182 }
ares1999 34:2d7d09f9965c 2183 }
ares1999 34:2d7d09f9965c 2184 }
ares1999 34:2d7d09f9965c 2185
ares1999 34:2d7d09f9965c 2186 void fct_prise_AV_milieu(char serial_select)
ares1999 34:2d7d09f9965c 2187 {
ares1999 34:2d7d09f9965c 2188 //Rangement
ares1999 34:2d7d09f9965c 2189 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement_BM, serial_select);
ares1999 34:2d7d09f9965c 2190 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 2191 //Pré Prise
ares1999 34:2d7d09f9965c 2192 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, pre_prise_BM, serial_select);
ares1999 34:2d7d09f9965c 2193 wait_ms(TEMPO);
ares1999 34:2d7d09f9965c 2194 //Prise
ares1999 34:2d7d09f9965c 2195 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, prise_BM, serial_select);
ares1999 34:2d7d09f9965c 2196 wait_ms(TEMPO_POMPE);
ares1999 34:2d7d09f9965c 2197 //Rangement avec echantillon
ares1999 34:2d7d09f9965c 2198 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAV, rangement2_BM, serial_select);
ares1999 34:2d7d09f9965c 2199 wait_ms(TEMPO);
ares1999 34:2d7d09f9965c 2200 }
ares1999 34:2d7d09f9965c 2201
ares1999 34:2d7d09f9965c 2202 void fct_prise_AR_milieu(char serial_select)
ares1999 34:2d7d09f9965c 2203 {
ares1999 34:2d7d09f9965c 2204 //Rangement
ares1999 34:2d7d09f9965c 2205 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement_BM, serial_select);
ares1999 34:2d7d09f9965c 2206 wait_ms(TEMPO_LONGUE);
ares1999 34:2d7d09f9965c 2207 //Pré Prise
ares1999 34:2d7d09f9965c 2208 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, pre_prise_BM, serial_select);
ares1999 34:2d7d09f9965c 2209 wait_ms(TEMPO);
ares1999 34:2d7d09f9965c 2210 //Prise
ares1999 34:2d7d09f9965c 2211 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, prise_BM, serial_select);
ares1999 34:2d7d09f9965c 2212 wait_ms(TEMPO_POMPE);
ares1999 34:2d7d09f9965c 2213 //Rangement avec echantillon
ares1999 34:2d7d09f9965c 2214 positionControl_Mul_ensemble_complex(3, PLAYTIME, servos_BAR, rangement2_BM, serial_select);
ares1999 34:2d7d09f9965c 2215 wait_ms(TEMPO);
ares1999 34:2d7d09f9965c 2216 }
ares1999 34:2d7d09f9965c 2217
ares1999 34:2d7d09f9965c 2218 ////////////////////////////////////////////////CHASSE-NEIGE/////////////////////////////////////////////////////
ares1999 34:2d7d09f9965c 2219 void ouverture_CN(void)
ares1999 34:2d7d09f9965c 2220 {
ares1999 34:2d7d09f9965c 2221 positionControl_Mul_ensemble(CN_GAUCHE, 790, PLAYTIME, RLED_ON, CN_DROITE, 240, RLED_ON, SERIAL_SPECIAL);
ares1999 34:2d7d09f9965c 2222 }
ares1999 34:2d7d09f9965c 2223
ares1999 34:2d7d09f9965c 2224 void fermeture_CN(void)
ares1999 34:2d7d09f9965c 2225 {
ares1999 34:2d7d09f9965c 2226 positionControl_Mul_ensemble(CN_GAUCHE, 240, PLAYTIME, RLED_ON, CN_DROITE, 790, RLED_ON, SERIAL_SPECIAL);
ares1999 34:2d7d09f9965c 2227 }*/