carte esclave Petit Robot

Dependencies:   mbed Herkulex_Library_2019 actions_Gr ident_crac actions_Pr

Committer:
Artiom
Date:
Fri May 31 21:03:45 2019 +0000
Revision:
46:85208ab1fa12
Parent:
45:3cb347342a0d
fork PR

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kyxstark 25:9627700d989f 1
Artiom 1:568955af8c2b 2 #include "main.h"
Artiom 0:bc74da1c502f 3
Artiom 0:bc74da1c502f 4 #define SIZE_FIFO 50
Artiom 0:bc74da1c502f 5
Artiom 30:d034f469359e 6
Artiom 0:bc74da1c502f 7 CAN can(PB_8,PB_9,1000000); // Rx&Tx pour le CAN
Artiom 0:bc74da1c502f 8
kyxstark 22:9e92a2b941ba 9 Serial pc(USBTX,USBRX);
Artiom 0:bc74da1c502f 10
Artiom 0:bc74da1c502f 11 CANMessage msgRxBuffer[SIZE_FIFO];
Artiom 0:bc74da1c502f 12 unsigned char FIFO_ecriture=0; //Position du fifo pour la reception CAN
Artiom 0:bc74da1c502f 13 signed char FIFO_lecture=0;//Position du fifo de lecture des messages CAN
Artiom 0:bc74da1c502f 14 unsigned char EtatGameEnd=0;
Artiom 0:bc74da1c502f 15
marwanesaich 42:a7300d563596 16 char cote=0;
Artiom 32:e9947815c4d7 17
Artiom 44:381ecf63e6ab 18 unsigned short distance_recalage,distance_revenir;
Artiom 45:3cb347342a0d 19 unsigned short x,y;
Artiom 45:3cb347342a0d 20
Artiom 45:3cb347342a0d 21 signed short x_robot,y_robot,theta_robot;
Artiom 32:e9947815c4d7 22
kyxstark 21:edf6d03fdb20 23 void canProcessRx(void);
Artiom 12:191486ba5118 24
Artiom 12:191486ba5118 25
Artiom 0:bc74da1c502f 26 /*********************************************************************************************/
Artiom 0:bc74da1c502f 27 /* FUNCTION NAME: canRx_ISR */
Artiom 0:bc74da1c502f 28 /* DESCRIPTION : lit les messages sur le can et les stocke dans la FIFO */
Artiom 0:bc74da1c502f 29 /*********************************************************************************************/
Artiom 0:bc74da1c502f 30 void canRx_ISR (void)
Artiom 0:bc74da1c502f 31 {
Artiom 0:bc74da1c502f 32 if (can.read(msgRxBuffer[FIFO_ecriture])) {
Artiom 0:bc74da1c502f 33 if (msgRxBuffer[FIFO_ecriture].id==GLOBAL_GAME_END) {
Artiom 0:bc74da1c502f 34
Artiom 0:bc74da1c502f 35 }
Artiom 0:bc74da1c502f 36 FIFO_ecriture=(FIFO_ecriture+1)%SIZE_FIFO;
Artiom 0:bc74da1c502f 37
Artiom 0:bc74da1c502f 38 }
Artiom 0:bc74da1c502f 39
Artiom 0:bc74da1c502f 40 }
Artiom 0:bc74da1c502f 41
Artiom 0:bc74da1c502f 42 int main()
Artiom 0:bc74da1c502f 43 {
Artiom 0:bc74da1c502f 44 can.attach(&canRx_ISR); // création de l'interrupt attachée à la réception sur le CAN
Artiom 0:bc74da1c502f 45 servo_interrupt_en(); //permettre les interuptions
Artiom 11:6c11c081c855 46
Artiom 0:bc74da1c502f 47 wait(1);//attente servo boot
Artiom 31:29500874c1cc 48
Artiom 31:29500874c1cc 49
kyxstark 21:edf6d03fdb20 50 #ifdef ROBOT_SMALL
kyxstark 22:9e92a2b941ba 51 pc.printf("\nPetit robot\n\n");
Artiom 32:e9947815c4d7 52 deverouillage_torque();
kyxstark 21:edf6d03fdb20 53 #endif
kyxstark 21:edf6d03fdb20 54
kyxstark 21:edf6d03fdb20 55
Artiom 31:29500874c1cc 56
kyxstark 21:edf6d03fdb20 57 #ifdef ROBOT_BIG
kyxstark 22:9e92a2b941ba 58 pc.printf("\nGros robot\n\n");
kyxstark 38:9295a9721acb 59 deverouillage_torque();
marwanesaich 41:a71d06f292ac 60 wait(0.5);
kyxstark 21:edf6d03fdb20 61 #endif
kyxstark 21:edf6d03fdb20 62
kyxstark 38:9295a9721acb 63 gabarit_robot();
kyxstark 22:9e92a2b941ba 64 pc.printf("\nLAUNCHED");
Artiom 0:bc74da1c502f 65 while(1) {
marwanesaich 42:a7300d563596 66 /*setTorque(doigt,TORQUE_FREE,2);
marwanesaich 42:a7300d563596 67 pc.printf("pos : %d\n", getPos(doigt,2));
marwanesaich 42:a7300d563596 68 wait_ms(10.0);*/
Artiom 0:bc74da1c502f 69 canProcessRx();
Artiom 10:48c0d1b8aed9 70 f_mesure();//dt35
Artiom 45:3cb347342a0d 71 interrupt();//dt35 seuil logique
kyxstark 21:edf6d03fdb20 72 #ifdef ROBOT_SMALL
Artiom 5:6e198cdd99ad 73 automate_ventouse_presentoir_arriere();
kyxstark 24:33c7ff467bd9 74 automate_ventouse_presentoir_avant();
Artiom 7:553f3f1c2c53 75
Artiom 6:45f9cf44718a 76 automate_ventouse_goldenium_arriere();
kyxstark 24:33c7ff467bd9 77 automate_ventouse_goldenium_avant();
Artiom 31:29500874c1cc 78
Artiom 6:45f9cf44718a 79 automate_ventouse_sol_avant();
Artiom 7:553f3f1c2c53 80 automate_ventouse_sol_arriere();
Artiom 7:553f3f1c2c53 81
kyxstark 24:33c7ff467bd9 82 automate_ventouse_balance_avant();
Artiom 12:191486ba5118 83 automate_ventouse_balance_arriere();
Artiom 12:191486ba5118 84
Artiom 12:191486ba5118 85 automate_ventouse_relache_arriere();
kyxstark 24:33c7ff467bd9 86 automate_ventouse_relache_avant();
Artiom 14:b1abd2f6df75 87
Artiom 13:9e19048eb065 88 automate_ventouse_sol_avant_relache();
Artiom 14:b1abd2f6df75 89 automate_ventouse_sol_arriere_relache();
Artiom 14:b1abd2f6df75 90
Artiom 14:b1abd2f6df75 91 automate_ventouse_accelerateur_arriere();
kyxstark 24:33c7ff467bd9 92 automate_ventouse_accelerateur_avant();
kyxstark 21:edf6d03fdb20 93 #endif
kyxstark 21:edf6d03fdb20 94
kyxstark 21:edf6d03fdb20 95 #ifdef ROBOT_BIG
kyxstark 38:9295a9721acb 96 automate_ventouse_presentoir_avant();
kyxstark 24:33c7ff467bd9 97 automate_ventouse_goldenium_avant();
kyxstark 24:33c7ff467bd9 98 automate_ventouse_relache_avant();
kyxstark 38:9295a9721acb 99 automate_ventouse_accelerateur_avant();
Artiom 31:29500874c1cc 100
kyxstark 21:edf6d03fdb20 101 fifo_couleur();
kyxstark 21:edf6d03fdb20 102 ascenseur();
Artiom 44:381ecf63e6ab 103 if(cote) {
Artiom 44:381ecf63e6ab 104 convoyeur_gauche_violet();
Artiom 44:381ecf63e6ab 105 convoyeur_droit_violet();
Artiom 44:381ecf63e6ab 106 } else {
Artiom 44:381ecf63e6ab 107 convoyeur_gauche_jaune(); //ok
Artiom 44:381ecf63e6ab 108 convoyeur_droit_jaune(); //ok
Artiom 44:381ecf63e6ab 109 }
kyxstark 21:edf6d03fdb20 110
kyxstark 21:edf6d03fdb20 111 #endif
Artiom 13:9e19048eb065 112
Artiom 0:bc74da1c502f 113 if(EtatGameEnd==1) {
Artiom 0:bc74da1c502f 114 while(1);
Artiom 0:bc74da1c502f 115 }
Artiom 0:bc74da1c502f 116
Artiom 0:bc74da1c502f 117 }
Artiom 0:bc74da1c502f 118 }
Artiom 0:bc74da1c502f 119
Artiom 0:bc74da1c502f 120 /****************************************************************************************/
Artiom 0:bc74da1c502f 121 /* FUNCTION NAME: canProcessRx */
Artiom 0:bc74da1c502f 122 /* DESCRIPTION : Fonction de traitement des messages CAN */
Artiom 0:bc74da1c502f 123 /****************************************************************************************/
Artiom 0:bc74da1c502f 124 void canProcessRx(void)
Artiom 0:bc74da1c502f 125 {
Artiom 0:bc74da1c502f 126 static signed char FIFO_occupation=0,FIFO_max_occupation=0;
Artiom 0:bc74da1c502f 127 CANMessage msgTx=CANMessage();
Artiom 0:bc74da1c502f 128 FIFO_occupation=FIFO_ecriture-FIFO_lecture;
Artiom 0:bc74da1c502f 129 if(FIFO_occupation<0)
Artiom 0:bc74da1c502f 130 FIFO_occupation=FIFO_occupation+SIZE_FIFO;
Artiom 0:bc74da1c502f 131 if(FIFO_max_occupation<FIFO_occupation)
Artiom 0:bc74da1c502f 132 FIFO_max_occupation=FIFO_occupation;
Artiom 0:bc74da1c502f 133 if(FIFO_occupation!=0) {
Artiom 0:bc74da1c502f 134 int identifiant=msgRxBuffer[FIFO_lecture].id;
Artiom 0:bc74da1c502f 135
Artiom 0:bc74da1c502f 136 switch(identifiant) {
Artiom 32:e9947815c4d7 137
Artiom 32:e9947815c4d7 138
Artiom 32:e9947815c4d7 139 case CHOICE_COLOR:
Artiom 32:e9947815c4d7 140 cote = msgRxBuffer[FIFO_lecture].data[0];
Artiom 36:04c3ad41064d 141 /*SendMsgCan(0x788, (unsigned char*)&cote, 1);
Artiom 36:04c3ad41064d 142 if(cote) printf("\nCote violet : %d",cote);
Artiom 36:04c3ad41064d 143 else printf("\nCote jaune : %d", cote);*/
Artiom 32:e9947815c4d7 144 break;
Artiom 32:e9947815c4d7 145
Artiom 0:bc74da1c502f 146 case GLOBAL_GAME_END:
Artiom 0:bc74da1c502f 147 EtatGameEnd = 1;
Artiom 45:3cb347342a0d 148 deverouillage_torque();
Artiom 45:3cb347342a0d 149 break;
Artiom 45:3cb347342a0d 150
Artiom 45:3cb347342a0d 151 case ODOMETRIE_BIG_POSITION:
Artiom 45:3cb347342a0d 152 case ODOMETRIE_SMALL_POSITION:
Artiom 45:3cb347342a0d 153
Artiom 45:3cb347342a0d 154 x_robot=msgRxBuffer[FIFO_lecture].data[0]|((unsigned short)(msgRxBuffer[FIFO_lecture].data[1])<<8);
Artiom 45:3cb347342a0d 155 y_robot=msgRxBuffer[FIFO_lecture].data[2]|((unsigned short)(msgRxBuffer[FIFO_lecture].data[3])<<8);
Artiom 45:3cb347342a0d 156 theta_robot=msgRxBuffer[FIFO_lecture].data[4]|((signed short)(msgRxBuffer[FIFO_lecture].data[5])<<8);
Artiom 0:bc74da1c502f 157 break;
Artiom 0:bc74da1c502f 158
Artiom 0:bc74da1c502f 159 case DATA_TELEMETRE: //Lit le telemetre N°X suivant la data dans le CAN
Artiom 0:bc74da1c502f 160 char numero_telemetre=msgRxBuffer[FIFO_lecture].data[0];
Artiom 0:bc74da1c502f 161 short distance=lecture_telemetre(numero_telemetre);
Artiom 0:bc74da1c502f 162
Artiom 0:bc74da1c502f 163
Artiom 0:bc74da1c502f 164 msgTx.id=RECEPTION_DATA; // tx Valeur Telemetre1
Artiom 0:bc74da1c502f 165 msgTx.len=2;
Artiom 0:bc74da1c502f 166 msgTx.format=CANStandard;
Artiom 0:bc74da1c502f 167 msgTx.type=CANData;
Artiom 0:bc74da1c502f 168 // Rayon sur 2 octets
Artiom 0:bc74da1c502f 169 msgTx.data[0]=(unsigned char)distance;
Artiom 0:bc74da1c502f 170 msgTx.data[1]=(unsigned char)(distance>>8);
Artiom 0:bc74da1c502f 171
Artiom 0:bc74da1c502f 172 can.write(msgTx);
Artiom 0:bc74da1c502f 173 SendAck(ACKNOWLEDGE_TELEMETRE,RECEPTION_DATA);
Artiom 0:bc74da1c502f 174 break;
Artiom 0:bc74da1c502f 175
Artiom 0:bc74da1c502f 176 case DATA_RECALAGE:
Artiom 0:bc74da1c502f 177 short distance1=lecture_telemetre(1);
Artiom 0:bc74da1c502f 178 short distance2=lecture_telemetre(2);
Artiom 0:bc74da1c502f 179 short distance3=lecture_telemetre(3);
Artiom 0:bc74da1c502f 180 short distance4=lecture_telemetre(4);
Artiom 0:bc74da1c502f 181
Artiom 0:bc74da1c502f 182 msgTx.id=RECEPTION_RECALAGE; // tx Valeur Telemetre1
Artiom 0:bc74da1c502f 183 msgTx.len=8;
Artiom 0:bc74da1c502f 184 msgTx.format=CANStandard;
Artiom 0:bc74da1c502f 185 msgTx.type=CANData;
Artiom 0:bc74da1c502f 186 // Rayon sur 2 octets
Artiom 0:bc74da1c502f 187 msgTx.data[0]=(unsigned char)distance1;
Artiom 0:bc74da1c502f 188 msgTx.data[1]=(unsigned char)(distance1>>8);
Artiom 0:bc74da1c502f 189 msgTx.data[2]=(unsigned char)distance2;
Artiom 0:bc74da1c502f 190 msgTx.data[3]=(unsigned char)(distance2>>8);
Artiom 0:bc74da1c502f 191 msgTx.data[4]=(unsigned char)distance3;
Artiom 0:bc74da1c502f 192 msgTx.data[5]=(unsigned char)(distance3>>8);
Artiom 0:bc74da1c502f 193 msgTx.data[6]=(unsigned char)distance4;
Artiom 0:bc74da1c502f 194 msgTx.data[7]=(unsigned char)(distance4>>8);
Artiom 0:bc74da1c502f 195 can.write(msgTx);
Artiom 0:bc74da1c502f 196 SendAck(ACKNOWLEDGE_TELEMETRE,RECEPTION_RECALAGE);
Artiom 0:bc74da1c502f 197 break;
Artiom 44:381ecf63e6ab 198
Artiom 44:381ecf63e6ab 199 case DATA_TELEMETRE_LOGIQUE:
Artiom 43:7fff7f4d79a1 200 msgTx.id=RECEPTION_TELEMETRE_LOGIQUE; // tx Valeur Telemetre1
Artiom 43:7fff7f4d79a1 201 msgTx.len=4;
Artiom 43:7fff7f4d79a1 202 msgTx.format=CANStandard;
Artiom 43:7fff7f4d79a1 203 msgTx.type=CANData;
Artiom 43:7fff7f4d79a1 204 msgTx.data[0]=(unsigned char)DT1_interrupt_Ex;
Artiom 43:7fff7f4d79a1 205 msgTx.data[1]=(unsigned char)DT2_interrupt_Ex;
Artiom 43:7fff7f4d79a1 206 msgTx.data[2]=(unsigned char)DT3_interrupt_Ex;
Artiom 43:7fff7f4d79a1 207 msgTx.data[3]=(unsigned char)DT4_interrupt_Ex;
Artiom 43:7fff7f4d79a1 208 can.write(msgTx);
Artiom 43:7fff7f4d79a1 209 SendAck(ACKNOWLEDGE_TELEMETRE,RECEPTION_TELEMETRE_LOGIQUE);
Artiom 43:7fff7f4d79a1 210 break;
kyxstark 25:9627700d989f 211
kyxstark 25:9627700d989f 212
Artiom 45:3cb347342a0d 213 ///////////////////////////////////////////////////////////ACK carte pompe/////////////////////////////////////////
kyxstark 25:9627700d989f 214
kyxstark 25:9627700d989f 215
kyxstark 25:9627700d989f 216 case HACHEUR_STATUT_VENTOUSES:
kyxstark 25:9627700d989f 217 status_pompe = msgRxBuffer[FIFO_lecture].data[1];
kyxstark 25:9627700d989f 218 //can.write(CANMessage(0x529, &status_pompe,1));
kyxstark 25:9627700d989f 219 break;
kyxstark 25:9627700d989f 220
kyxstark 25:9627700d989f 221 case HACHEUR_GET_ATOM_ACK:
kyxstark 25:9627700d989f 222 status_pompe |= (0x01 << msgRxBuffer[FIFO_lecture].data[0]);
kyxstark 25:9627700d989f 223 //can.write(CANMessage(0x529, &status_pompe,1));
kyxstark 25:9627700d989f 224 break;
kyxstark 25:9627700d989f 225
kyxstark 25:9627700d989f 226 case HACHEUR_RELEASE_ATOM_ACK :
kyxstark 25:9627700d989f 227 status_pompe &= ~(0x01 << msgRxBuffer[FIFO_lecture].data[0]);
kyxstark 25:9627700d989f 228 break;
Artiom 44:381ecf63e6ab 229
Artiom 44:381ecf63e6ab 230
kyxstark 25:9627700d989f 231
Artiom 45:3cb347342a0d 232 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
kyxstark 25:9627700d989f 233
kyxstark 38:9295a9721acb 234 case PRESENTOIR_AVANT:
kyxstark 38:9295a9721acb 235 fpresentoir_avant=1;
Artiom 45:3cb347342a0d 236
kyxstark 38:9295a9721acb 237 break;
kyxstark 38:9295a9721acb 238
kyxstark 38:9295a9721acb 239 case GABARIT_ROBOT:
kyxstark 38:9295a9721acb 240 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
kyxstark 38:9295a9721acb 241 gabarit_robot();
kyxstark 38:9295a9721acb 242 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
kyxstark 38:9295a9721acb 243 break;
kyxstark 38:9295a9721acb 244
kyxstark 39:124575240d09 245 case AVANT_RELACHE:
kyxstark 39:124575240d09 246 favant_relache=1;
kyxstark 39:124575240d09 247 break;
kyxstark 38:9295a9721acb 248
kyxstark 38:9295a9721acb 249
kyxstark 25:9627700d989f 250 #ifdef ROBOT_SMALL
Artiom 45:3cb347342a0d 251 ////////////////////////////////////////////////////////Actions petit robot////////////////////////////////////////////////////////////
Artiom 0:bc74da1c502f 252 case PRESENTOIR_ARRIERE:
Artiom 5:6e198cdd99ad 253 fpresentoir_arriere=1;
Artiom 0:bc74da1c502f 254 break;
Artiom 0:bc74da1c502f 255
Artiom 31:29500874c1cc 256 case BALANCE_AVANT:
Artiom 31:29500874c1cc 257 fbalance_avant=1;
Artiom 31:29500874c1cc 258 break;
Artiom 32:e9947815c4d7 259
Artiom 0:bc74da1c502f 260 case BALANCE_ARRIERE:
Artiom 12:191486ba5118 261 fbalance_arriere=1;
Artiom 2:9e63099cca99 262 break;
Artiom 32:e9947815c4d7 263
Artiom 31:29500874c1cc 264 case ACCELERATEUR_AVANT:
Artiom 31:29500874c1cc 265 faccelerateur_avant=1;
Artiom 44:381ecf63e6ab 266 distance_recalage=msgRxBuffer[FIFO_lecture].data[0]|((unsigned short)(msgRxBuffer[FIFO_lecture].data[1])<<8);
Artiom 44:381ecf63e6ab 267 distance_revenir=msgRxBuffer[FIFO_lecture].data[2]|((unsigned short)(msgRxBuffer[FIFO_lecture].data[3])<<8);
Artiom 31:29500874c1cc 268 break;
Artiom 2:9e63099cca99 269
Artiom 2:9e63099cca99 270 case ACCELERATEUR_ARRIERE:
Artiom 14:b1abd2f6df75 271 faccelerateur_arriere=1;
Artiom 45:3cb347342a0d 272 distance_recalage=msgRxBuffer[FIFO_lecture].data[0]|((unsigned short)(msgRxBuffer[FIFO_lecture].data[1])<<8);
Artiom 45:3cb347342a0d 273 distance_revenir=msgRxBuffer[FIFO_lecture].data[2]|((unsigned short)(msgRxBuffer[FIFO_lecture].data[3])<<8);
Artiom 2:9e63099cca99 274 break;
Artiom 6:45f9cf44718a 275
Artiom 31:29500874c1cc 276 case GOLDENIUM_AVANT:
Artiom 31:29500874c1cc 277 fgoldenium_avant=1;
Artiom 45:3cb347342a0d 278 x=msgRxBuffer[FIFO_lecture].data[0]|((unsigned short)(msgRxBuffer[FIFO_lecture].data[1])<<8);
Artiom 45:3cb347342a0d 279 y=msgRxBuffer[FIFO_lecture].data[2]|((unsigned short)(msgRxBuffer[FIFO_lecture].data[3])<<8);
Artiom 31:29500874c1cc 280 break;
Artiom 32:e9947815c4d7 281
Artiom 2:9e63099cca99 282 case GOLDENIUM_ARRIERE:
Artiom 6:45f9cf44718a 283 fgoldenium_arriere=1;
Artiom 46:85208ab1fa12 284 x=msgRxBuffer[FIFO_lecture].data[0]|((unsigned short)(msgRxBuffer[FIFO_lecture].data[1])<<8);
Artiom 45:3cb347342a0d 285 y=msgRxBuffer[FIFO_lecture].data[2]|((unsigned short)(msgRxBuffer[FIFO_lecture].data[3])<<8);
Artiom 2:9e63099cca99 286 break;
Artiom 6:45f9cf44718a 287
Artiom 2:9e63099cca99 288 case SOL_AVANT:
Artiom 6:45f9cf44718a 289 fsol_avant=1;
Artiom 2:9e63099cca99 290 break;
Artiom 2:9e63099cca99 291
Artiom 2:9e63099cca99 292 case SOL_ARRIERE:
Artiom 6:45f9cf44718a 293 fsol_arriere=1;
Artiom 2:9e63099cca99 294 break;
Artiom 2:9e63099cca99 295
Artiom 2:9e63099cca99 296 case SOL_AVANT_RELACHE:
Artiom 7:553f3f1c2c53 297 fsol_avant_relache=1;
Artiom 2:9e63099cca99 298 break;
Artiom 2:9e63099cca99 299
Artiom 2:9e63099cca99 300 case SOL_ARRIERE_RELACHE:
Artiom 7:553f3f1c2c53 301 fsol_arriere_relache=1;
Artiom 0:bc74da1c502f 302 break;
Artiom 12:191486ba5118 303
Artiom 12:191486ba5118 304 case ARRIERE_RELACHE:
Artiom 12:191486ba5118 305 farriere_relache=1;
Artiom 12:191486ba5118 306 break;
Artiom 45:3cb347342a0d 307
Artiom 14:b1abd2f6df75 308 case RECROQUEVILLER:
Artiom 14:b1abd2f6df75 309 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
Artiom 14:b1abd2f6df75 310 recroqueviller_avant();
Artiom 14:b1abd2f6df75 311 recroqueviller_arriere();
Artiom 14:b1abd2f6df75 312 verification();
Artiom 14:b1abd2f6df75 313 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
Artiom 14:b1abd2f6df75 314 break;
Artiom 13:9e19048eb065 315
Artiom 31:29500874c1cc 316 case VENTOUSE_AV_CENTRE_BALANCE:
Artiom 31:29500874c1cc 317 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
Artiom 31:29500874c1cc 318 goldenium_avant();
Artiom 31:29500874c1cc 319 verification();
Artiom 31:29500874c1cc 320 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
Artiom 31:29500874c1cc 321 break;
Artiom 31:29500874c1cc 322
Artiom 20:42f8ec726ac8 323 case VENTOUSE_AR_CENTRE_BALANCE:
Artiom 20:42f8ec726ac8 324 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
Artiom 20:42f8ec726ac8 325 goldenium_arriere();
Artiom 46:85208ab1fa12 326 positionControl(AR_poigne_D, 200,1,BLED_ON,3);//actionneur rentre ventouse pour pas s'eclater sur la balance
Artiom 46:85208ab1fa12 327 positionControl(AR_poigne_G, 780,1,BLED_ON,1);//actionneur rentre ventouse pour pas s'eclater sur la balance
Artiom 20:42f8ec726ac8 328 verification();
Artiom 20:42f8ec726ac8 329 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
Artiom 20:42f8ec726ac8 330 break;
Artiom 32:e9947815c4d7 331
Artiom 31:29500874c1cc 332 case ACCELERATEUR_INSERTION_AVANT_GAUCHE:
Artiom 31:29500874c1cc 333 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
Artiom 31:29500874c1cc 334 accelerateur_insertion_avant_gauche();
Artiom 31:29500874c1cc 335 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
Artiom 31:29500874c1cc 336 break;
Artiom 32:e9947815c4d7 337
Artiom 36:04c3ad41064d 338 case ACCELERATEUR_INSERTION_ARRIERE_GAUCHE :
Artiom 31:29500874c1cc 339 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
Artiom 31:29500874c1cc 340 accelerateur_insertion_arriere_gauche();
Artiom 31:29500874c1cc 341 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
Artiom 31:29500874c1cc 342 break;
Artiom 0:bc74da1c502f 343 #endif
kyxstark 23:93a427b242ce 344
Artiom 45:3cb347342a0d 345
Artiom 0:bc74da1c502f 346 #ifdef ROBOT_BIG
kyxstark 21:edf6d03fdb20 347 case ASCENSEUR:
kyxstark 22:9e92a2b941ba 348 flag_ascenseur = msgRxBuffer[FIFO_lecture].data[0];
Artiom 0:bc74da1c502f 349 break;
Artiom 0:bc74da1c502f 350
Artiom 44:381ecf63e6ab 351 case HACHEUR_ETAT_CONTACTS :
Artiom 44:381ecf63e6ab 352 status_contact = msgRxBuffer[FIFO_lecture].data[0];
Artiom 44:381ecf63e6ab 353 break;
Artiom 0:bc74da1c502f 354 #endif
Artiom 0:bc74da1c502f 355 }
Artiom 0:bc74da1c502f 356 FIFO_lecture=(FIFO_lecture+1)%SIZE_FIFO;
Artiom 0:bc74da1c502f 357
Artiom 0:bc74da1c502f 358 }
Artiom 4:4a79942713fa 359
Artiom 4:4a79942713fa 360
Artiom 4:4a79942713fa 361 }
Artiom 4:4a79942713fa 362
Artiom 4:4a79942713fa 363
Artiom 4:4a79942713fa 364
Artiom 11:6c11c081c855 365