Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed SerialHalfDuplex SDFileSystem liaison_Bluetooth ident_crac DISCO-F469NI_portrait
Robots/Strategie_small.cpp@6:ef2418d23a06, 2020-01-31 (annotated)
- Committer:
- gabrieltetar
- Date:
- Fri Jan 31 15:12:18 2020 +0000
- Revision:
- 6:ef2418d23a06
- Parent:
- 1:7e925468f9d9
- Child:
- 10:1964bb91b925
Suppression robot BIG
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| gabrieltetar | 1:7e925468f9d9 | 1 | #include "global.h" |
| gabrieltetar | 1:7e925468f9d9 | 2 | |
| gabrieltetar | 1:7e925468f9d9 | 3 | unsigned short distance_recalage; |
| gabrieltetar | 1:7e925468f9d9 | 4 | unsigned short distance_revenir; |
| gabrieltetar | 1:7e925468f9d9 | 5 | |
| gabrieltetar | 1:7e925468f9d9 | 6 | unsigned short x; |
| gabrieltetar | 1:7e925468f9d9 | 7 | unsigned short y; |
| gabrieltetar | 1:7e925468f9d9 | 8 | unsigned char isStopEnable = 1;//Permet de savoir si il faut autoriser le stop via les balises |
| gabrieltetar | 1:7e925468f9d9 | 9 | //unsigned short telemetreDistance; |
| gabrieltetar | 1:7e925468f9d9 | 10 | |
| gabrieltetar | 1:7e925468f9d9 | 11 | |
| gabrieltetar | 1:7e925468f9d9 | 12 | /****************************************************************************************/ |
| gabrieltetar | 1:7e925468f9d9 | 13 | /* FUNCTION NAME: doFunnyAction */ |
| gabrieltetar | 1:7e925468f9d9 | 14 | /* DESCRIPTION : Permet de faire la funny action en fin de partie */ |
| gabrieltetar | 1:7e925468f9d9 | 15 | /****************************************************************************************/ |
| gabrieltetar | 1:7e925468f9d9 | 16 | void doFunnyAction(void) |
| gabrieltetar | 1:7e925468f9d9 | 17 | { |
| gabrieltetar | 1:7e925468f9d9 | 18 | |
| gabrieltetar | 1:7e925468f9d9 | 19 | |
| gabrieltetar | 1:7e925468f9d9 | 20 | } |
| gabrieltetar | 1:7e925468f9d9 | 21 | |
| gabrieltetar | 1:7e925468f9d9 | 22 | |
| gabrieltetar | 1:7e925468f9d9 | 23 | /*************************************************************************************************/ |
| gabrieltetar | 1:7e925468f9d9 | 24 | /* FUNCTION NAME: doAction */ |
| gabrieltetar | 1:7e925468f9d9 | 25 | /* DESCRIPTION : Effectuer une action specifique correspondant au numéro dans le fichier strat */ |
| gabrieltetar | 1:7e925468f9d9 | 26 | /*************************************************************************************************/ |
| gabrieltetar | 1:7e925468f9d9 | 27 | unsigned char doAction(unsigned char id, unsigned short arg1, short arg2) |
| gabrieltetar | 1:7e925468f9d9 | 28 | { |
| gabrieltetar | 1:7e925468f9d9 | 29 | int retour = 1; |
| gabrieltetar | 1:7e925468f9d9 | 30 | CANMessage msgTx=CANMessage(); |
| gabrieltetar | 1:7e925468f9d9 | 31 | msgTx.format=CANStandard; |
| gabrieltetar | 1:7e925468f9d9 | 32 | msgTx.type=CANData; |
| gabrieltetar | 1:7e925468f9d9 | 33 | //SendMsgCan(0x5BB, &id,1); |
| gabrieltetar | 1:7e925468f9d9 | 34 | switch(id) { |
| gabrieltetar | 1:7e925468f9d9 | 35 | case 101: //bras gabarit |
| gabrieltetar | 1:7e925468f9d9 | 36 | SendRawId(GABARIT_PETIT_ROBOT); |
| gabrieltetar | 1:7e925468f9d9 | 37 | break; |
| gabrieltetar | 1:7e925468f9d9 | 38 | case 102: //attraper presentoir avant |
| gabrieltetar | 1:7e925468f9d9 | 39 | SendRawId(PRESENTOIR_AVANT); |
| gabrieltetar | 1:7e925468f9d9 | 40 | break; |
| gabrieltetar | 1:7e925468f9d9 | 41 | case 103: //attraper presentoir arriere |
| gabrieltetar | 1:7e925468f9d9 | 42 | SendRawId(PRESENTOIR_ARRIERE); |
| gabrieltetar | 1:7e925468f9d9 | 43 | break; |
| gabrieltetar | 1:7e925468f9d9 | 44 | case 104: //balance avant |
| gabrieltetar | 1:7e925468f9d9 | 45 | SendRawId(BALANCE_AVANT); |
| gabrieltetar | 1:7e925468f9d9 | 46 | break; |
| gabrieltetar | 1:7e925468f9d9 | 47 | case 105: //balance arriere |
| gabrieltetar | 1:7e925468f9d9 | 48 | SendRawId(BALANCE_ARRIERE); |
| gabrieltetar | 1:7e925468f9d9 | 49 | break; |
| gabrieltetar | 1:7e925468f9d9 | 50 | case 106: //accelerateur avant |
| gabrieltetar | 1:7e925468f9d9 | 51 | //SendRawId(ACCELERATEUR_AVANT); |
| gabrieltetar | 1:7e925468f9d9 | 52 | distance_recalage=arg1; |
| gabrieltetar | 1:7e925468f9d9 | 53 | distance_revenir=arg2; |
| gabrieltetar | 1:7e925468f9d9 | 54 | Send2Short(ACCELERATEUR_AVANT, distance_recalage,distance_revenir); |
| gabrieltetar | 1:7e925468f9d9 | 55 | break; |
| gabrieltetar | 1:7e925468f9d9 | 56 | case 107: //accelerateur arriere |
| gabrieltetar | 1:7e925468f9d9 | 57 | distance_recalage=arg1; |
| gabrieltetar | 1:7e925468f9d9 | 58 | distance_revenir=arg2; |
| gabrieltetar | 1:7e925468f9d9 | 59 | Send2Short(ACCELERATEUR_ARRIERE, distance_recalage,distance_revenir); |
| gabrieltetar | 1:7e925468f9d9 | 60 | break; |
| gabrieltetar | 1:7e925468f9d9 | 61 | case 108: //goldenium avant |
| gabrieltetar | 1:7e925468f9d9 | 62 | //SendRawId(GOLDENIUM_AVANT); |
| gabrieltetar | 1:7e925468f9d9 | 63 | x = arg1; |
| gabrieltetar | 1:7e925468f9d9 | 64 | if(InversStrat == 1) { |
| gabrieltetar | 1:7e925468f9d9 | 65 | y = 3000 - arg2; |
| gabrieltetar | 1:7e925468f9d9 | 66 | } else { |
| gabrieltetar | 1:7e925468f9d9 | 67 | y = arg2; |
| gabrieltetar | 1:7e925468f9d9 | 68 | } |
| gabrieltetar | 1:7e925468f9d9 | 69 | Send2Short(GOLDENIUM_AVANT, x, y); |
| gabrieltetar | 1:7e925468f9d9 | 70 | break; |
| gabrieltetar | 1:7e925468f9d9 | 71 | case 109: //goldenium arriere |
| gabrieltetar | 1:7e925468f9d9 | 72 | x=arg1; |
| gabrieltetar | 1:7e925468f9d9 | 73 | y=arg2; |
| gabrieltetar | 1:7e925468f9d9 | 74 | Send2Short(GOLDENIUM_ARRIERE, x,y); |
| gabrieltetar | 1:7e925468f9d9 | 75 | break; |
| gabrieltetar | 1:7e925468f9d9 | 76 | case 110: //sol avant |
| gabrieltetar | 1:7e925468f9d9 | 77 | SendRawId(SOL_AVANT); |
| gabrieltetar | 1:7e925468f9d9 | 78 | break; |
| gabrieltetar | 1:7e925468f9d9 | 79 | case 111: //sol arriere |
| gabrieltetar | 1:7e925468f9d9 | 80 | SendRawId(SOL_ARRIERE); |
| gabrieltetar | 1:7e925468f9d9 | 81 | break; |
| gabrieltetar | 1:7e925468f9d9 | 82 | case 112: //sol avant relache |
| gabrieltetar | 1:7e925468f9d9 | 83 | SendRawId(SOL_AVANT_RELACHE); |
| gabrieltetar | 1:7e925468f9d9 | 84 | break; |
| gabrieltetar | 1:7e925468f9d9 | 85 | case 113: //sol arriere relache |
| gabrieltetar | 1:7e925468f9d9 | 86 | SendRawId(SOL_ARRIERE_RELACHE); |
| gabrieltetar | 1:7e925468f9d9 | 87 | break; |
| gabrieltetar | 1:7e925468f9d9 | 88 | case 114://relache les 3 ventouses avants |
| gabrieltetar | 1:7e925468f9d9 | 89 | SendRawId(AVANT_RELACHE); |
| gabrieltetar | 1:7e925468f9d9 | 90 | break; |
| gabrieltetar | 1:7e925468f9d9 | 91 | |
| gabrieltetar | 1:7e925468f9d9 | 92 | case 115://relache les 3 ventouses arrieres |
| gabrieltetar | 1:7e925468f9d9 | 93 | SendRawId(ARRIERE_RELACHE); |
| gabrieltetar | 1:7e925468f9d9 | 94 | break; |
| gabrieltetar | 1:7e925468f9d9 | 95 | |
| gabrieltetar | 1:7e925468f9d9 | 96 | case 116://relache une pompe |
| gabrieltetar | 1:7e925468f9d9 | 97 | unsigned char arg_tempo; |
| gabrieltetar | 1:7e925468f9d9 | 98 | if(InversStrat == 1) { |
| gabrieltetar | 1:7e925468f9d9 | 99 | switch(arg1) { |
| gabrieltetar | 1:7e925468f9d9 | 100 | case AV_DROIT: |
| gabrieltetar | 1:7e925468f9d9 | 101 | arg_tempo = AV_GAUCHE; |
| gabrieltetar | 1:7e925468f9d9 | 102 | break; |
| gabrieltetar | 1:7e925468f9d9 | 103 | case AV_GAUCHE: |
| gabrieltetar | 1:7e925468f9d9 | 104 | arg_tempo = AV_DROIT; |
| gabrieltetar | 1:7e925468f9d9 | 105 | break; |
| gabrieltetar | 1:7e925468f9d9 | 106 | case AR_DROIT: |
| gabrieltetar | 1:7e925468f9d9 | 107 | arg_tempo = AR_GAUCHE; |
| gabrieltetar | 1:7e925468f9d9 | 108 | break; |
| gabrieltetar | 1:7e925468f9d9 | 109 | case AR_GAUCHE: |
| gabrieltetar | 1:7e925468f9d9 | 110 | arg_tempo = AR_DROIT; |
| gabrieltetar | 1:7e925468f9d9 | 111 | break; |
| gabrieltetar | 1:7e925468f9d9 | 112 | default : |
| gabrieltetar | 1:7e925468f9d9 | 113 | arg_tempo =(unsigned char)arg1; |
| gabrieltetar | 1:7e925468f9d9 | 114 | break; |
| gabrieltetar | 1:7e925468f9d9 | 115 | } |
| gabrieltetar | 1:7e925468f9d9 | 116 | |
| gabrieltetar | 1:7e925468f9d9 | 117 | } else arg_tempo =(unsigned char)arg1; |
| gabrieltetar | 1:7e925468f9d9 | 118 | SendMsgCan(HACHEUR_RELEASE_ATOM, &arg_tempo,1); |
| gabrieltetar | 1:7e925468f9d9 | 119 | waitingAckFrom = 0; |
| gabrieltetar | 1:7e925468f9d9 | 120 | waitingAckID =0; |
| gabrieltetar | 1:7e925468f9d9 | 121 | break; |
| gabrieltetar | 1:7e925468f9d9 | 122 | case 117: |
| gabrieltetar | 1:7e925468f9d9 | 123 | SendRawId(RECROQUEVILLER); |
| gabrieltetar | 1:7e925468f9d9 | 124 | break; |
| gabrieltetar | 1:7e925468f9d9 | 125 | case 118: |
| gabrieltetar | 1:7e925468f9d9 | 126 | SendRawId(VENTOUSE_AV_CENTRE_BALANCE); |
| gabrieltetar | 1:7e925468f9d9 | 127 | break; |
| gabrieltetar | 1:7e925468f9d9 | 128 | case 119: |
| gabrieltetar | 1:7e925468f9d9 | 129 | SendRawId(VENTOUSE_AR_CENTRE_BALANCE); |
| gabrieltetar | 1:7e925468f9d9 | 130 | break; |
| gabrieltetar | 1:7e925468f9d9 | 131 | case 120: |
| gabrieltetar | 1:7e925468f9d9 | 132 | SendRawId(ACCELERATEUR_INSERTION_AVANT_GAUCHE); |
| gabrieltetar | 1:7e925468f9d9 | 133 | break; |
| gabrieltetar | 1:7e925468f9d9 | 134 | |
| gabrieltetar | 1:7e925468f9d9 | 135 | case 121: |
| gabrieltetar | 1:7e925468f9d9 | 136 | SendRawId(ACCELERATEUR_INSERTION_ARRIERE_GAUCHE); |
| gabrieltetar | 1:7e925468f9d9 | 137 | break; |
| gabrieltetar | 1:7e925468f9d9 | 138 | |
| gabrieltetar | 1:7e925468f9d9 | 139 | case 150: |
| gabrieltetar | 1:7e925468f9d9 | 140 | SCORE_PR+=arg1; |
| gabrieltetar | 1:7e925468f9d9 | 141 | liaison_Tx.envoyer_short(0x30,SCORE_PR); |
| gabrieltetar | 1:7e925468f9d9 | 142 | waitingAckFrom = 0; |
| gabrieltetar | 1:7e925468f9d9 | 143 | waitingAckID = 0; |
| gabrieltetar | 1:7e925468f9d9 | 144 | break; |
| gabrieltetar | 1:7e925468f9d9 | 145 | |
| gabrieltetar | 1:7e925468f9d9 | 146 | |
| gabrieltetar | 1:7e925468f9d9 | 147 | case 200 : |
| gabrieltetar | 1:7e925468f9d9 | 148 | SendRawId(DATA_TELEMETRE); |
| gabrieltetar | 1:7e925468f9d9 | 149 | /*telemetreDistance = dataTelemetre(); |
| gabrieltetar | 1:7e925468f9d9 | 150 | wait_ms(1); |
| gabrieltetar | 1:7e925468f9d9 | 151 | telemetreDistance = dataTelemetre(); |
| gabrieltetar | 1:7e925468f9d9 | 152 | telemetreDistance = telemetreDistance - 170;*/ |
| gabrieltetar | 1:7e925468f9d9 | 153 | break; |
| gabrieltetar | 1:7e925468f9d9 | 154 | |
| gabrieltetar | 1:7e925468f9d9 | 155 | case 201 : |
| gabrieltetar | 1:7e925468f9d9 | 156 | SendRawId(0x99);// |
| gabrieltetar | 1:7e925468f9d9 | 157 | retour = 2; |
| gabrieltetar | 1:7e925468f9d9 | 158 | break; |
| gabrieltetar | 1:7e925468f9d9 | 159 | |
| gabrieltetar | 1:7e925468f9d9 | 160 | |
| gabrieltetar | 1:7e925468f9d9 | 161 | case 11://0 Désactiver le stop,1 Activer le stop saut de strat,2 Activer le stop avec evitement |
| gabrieltetar | 1:7e925468f9d9 | 162 | isStopEnable =(unsigned char) arg1; |
| gabrieltetar | 1:7e925468f9d9 | 163 | // SendMsgCan(0x5BC, &isStopEnable,1); |
| gabrieltetar | 1:7e925468f9d9 | 164 | waitingAckFrom = 0; |
| gabrieltetar | 1:7e925468f9d9 | 165 | waitingAckID =0; |
| gabrieltetar | 1:7e925468f9d9 | 166 | break; |
| gabrieltetar | 1:7e925468f9d9 | 167 | |
| gabrieltetar | 1:7e925468f9d9 | 168 | |
| gabrieltetar | 1:7e925468f9d9 | 169 | |
| gabrieltetar | 1:7e925468f9d9 | 170 | case 20://Désactiver l'asservissement |
| gabrieltetar | 1:7e925468f9d9 | 171 | setAsservissementEtat(0); |
| gabrieltetar | 1:7e925468f9d9 | 172 | break; |
| gabrieltetar | 1:7e925468f9d9 | 173 | |
| gabrieltetar | 1:7e925468f9d9 | 174 | case 21://Activer l'asservissement |
| gabrieltetar | 1:7e925468f9d9 | 175 | setAsservissementEtat(1); |
| gabrieltetar | 1:7e925468f9d9 | 176 | break; |
| gabrieltetar | 1:7e925468f9d9 | 177 | |
| gabrieltetar | 1:7e925468f9d9 | 178 | case 22://Changer la vitesse du robot |
| gabrieltetar | 1:7e925468f9d9 | 179 | SendSpeed(arg1);//,(unsigned short)arg2, (unsigned short)arg2); |
| gabrieltetar | 1:7e925468f9d9 | 180 | wait_us(200); |
| gabrieltetar | 1:7e925468f9d9 | 181 | waitingAckFrom = 0; |
| gabrieltetar | 1:7e925468f9d9 | 182 | waitingAckID = 0; |
| gabrieltetar | 1:7e925468f9d9 | 183 | break; |
| gabrieltetar | 1:7e925468f9d9 | 184 | case 23: |
| gabrieltetar | 1:7e925468f9d9 | 185 | SendAccel(arg1,(unsigned short)arg2);//,(unsigned short)arg2, (unsigned short)arg2); |
| gabrieltetar | 1:7e925468f9d9 | 186 | wait_us(200); |
| gabrieltetar | 1:7e925468f9d9 | 187 | waitingAckFrom = 0; |
| gabrieltetar | 1:7e925468f9d9 | 188 | waitingAckID = 0; |
| gabrieltetar | 1:7e925468f9d9 | 189 | break; |
| gabrieltetar | 1:7e925468f9d9 | 190 | |
| gabrieltetar | 1:7e925468f9d9 | 191 | |
| gabrieltetar | 1:7e925468f9d9 | 192 | case 19: // CHANGER LA VITESSE + DECELERATION |
| gabrieltetar | 1:7e925468f9d9 | 193 | //SendSpeedDecel(arg1,(unsigned short) arg2); |
| gabrieltetar | 1:7e925468f9d9 | 194 | wait_us(200); |
| gabrieltetar | 1:7e925468f9d9 | 195 | waitingAckFrom = 0; |
| gabrieltetar | 1:7e925468f9d9 | 196 | waitingAckID =0; |
| gabrieltetar | 1:7e925468f9d9 | 197 | break; |
| gabrieltetar | 1:7e925468f9d9 | 198 | |
| gabrieltetar | 1:7e925468f9d9 | 199 | case 30://Action tempo |
| gabrieltetar | 1:7e925468f9d9 | 200 | wait_ms(arg1); |
| gabrieltetar | 1:7e925468f9d9 | 201 | waitingAckFrom = 0; |
| gabrieltetar | 1:7e925468f9d9 | 202 | waitingAckID = 0; |
| gabrieltetar | 1:7e925468f9d9 | 203 | break; |
| gabrieltetar | 1:7e925468f9d9 | 204 | |
| gabrieltetar | 1:7e925468f9d9 | 205 | default: |
| gabrieltetar | 1:7e925468f9d9 | 206 | retour = 0;//L'action n'existe pas, il faut utiliser le CAN |
| gabrieltetar | 1:7e925468f9d9 | 207 | |
| gabrieltetar | 1:7e925468f9d9 | 208 | } |
| gabrieltetar | 1:7e925468f9d9 | 209 | return retour;//L'action est spécifique. |
| gabrieltetar | 1:7e925468f9d9 | 210 | |
| gabrieltetar | 1:7e925468f9d9 | 211 | } |
| gabrieltetar | 1:7e925468f9d9 | 212 | |
| gabrieltetar | 1:7e925468f9d9 | 213 | |
| gabrieltetar | 1:7e925468f9d9 | 214 | |
| gabrieltetar | 1:7e925468f9d9 | 215 | /****************************************************************************************/ |
| gabrieltetar | 1:7e925468f9d9 | 216 | /* FUNCTION NAME: needToStop */ |
| gabrieltetar | 1:7e925468f9d9 | 217 | /* DESCRIPTION : Savoir si il faut autoriser le stop du robot via balise */ |
| gabrieltetar | 1:7e925468f9d9 | 218 | /****************************************************************************************/ |
| gabrieltetar | 1:7e925468f9d9 | 219 | unsigned char needToStop(void) |
| gabrieltetar | 1:7e925468f9d9 | 220 | { |
| gabrieltetar | 1:7e925468f9d9 | 221 | return isStopEnable; |
| gabrieltetar | 1:7e925468f9d9 | 222 | } |
| gabrieltetar | 1:7e925468f9d9 | 223 | |
| gabrieltetar | 1:7e925468f9d9 | 224 | /****************************************************************************************/ |
| gabrieltetar | 1:7e925468f9d9 | 225 | /* FUNCTION NAME: doBeforeEndAction */ |
| gabrieltetar | 1:7e925468f9d9 | 226 | /* DESCRIPTION : Terminer les actions du robot 1s avant la fin du match */ |
| gabrieltetar | 1:7e925468f9d9 | 227 | /****************************************************************************************/ |
| gabrieltetar | 1:7e925468f9d9 | 228 | void doBeforeEndAction(void) |
| gabrieltetar | 1:7e925468f9d9 | 229 | { |
| gabrieltetar | 1:7e925468f9d9 | 230 | |
| gabrieltetar | 1:7e925468f9d9 | 231 | } |