Projeto Mecatrônico - 2020 - G3 / Mbed 2 deprecated Movimentacao

Dependencies:   mbed

Committer:
terhorst
Date:
Mon Jun 22 01:05:28 2020 +0000
Revision:
1:2e9e37f35e3f
Parent:
0:92a99259dafa
Child:
2:281470e6654a
Correcao

Who changed what in which revision?

UserRevisionLine numberNew contents of line
terhorst 1:2e9e37f35e3f 1 # include "mbed.h"
terhorst 1:2e9e37f35e3f 2
terhorst 0:92a99259dafa 3
terhorst 0:92a99259dafa 4 int PosicaoRecipiente[3];
terhorst 0:92a99259dafa 5 PosicaoRecipiente[0] = 40;
terhorst 0:92a99259dafa 6 PosicaoRecipiente[1] = 35;
terhorst 0:92a99259dafa 7 PosicaoRecipiente[2] = 10;
terhorst 0:92a99259dafa 8
terhorst 0:92a99259dafa 9 void ativa_pipeta() {
terhorst 0:92a99259dafa 10 }
terhorst 0:92a99259dafa 11
terhorst 0:92a99259dafa 12 void recebe_comandos(){
terhorst 0:92a99259dafa 13
terhorst 0:92a99259dafa 14 }
terhorst 0:92a99259dafa 15
terhorst 0:92a99259dafa 16 void avaliar_distancia(){ //Função para detectar e movimentar a pipeta até o local da pega
terhorst 0:92a99259dafa 17 int x = 0;
terhorst 0:92a99259dafa 18 int y = 0;
terhorst 0:92a99259dafa 19 int z = 0;
terhorst 0:92a99259dafa 20
terhorst 0:92a99259dafa 21 int x_2 = 0;
terhorst 0:92a99259dafa 22 int y_2 = 0;
terhorst 0:92a99259dafa 23 int z_2 = 0;
terhorst 0:92a99259dafa 24
terhorst 0:92a99259dafa 25 while (x == 0){ // Checa se a pipeta está na posição de pega, se n estiver ela se movimenta até lá
terhorst 0:92a99259dafa 26 if (Posicao_inicial[0] < PosicaoFrasco[0]) {
terhorst 0:92a99259dafa 27 Fase_M1_A = 1;
terhorst 0:92a99259dafa 28 wait(tempo);
terhorst 0:92a99259dafa 29 Fase_M1_A = 0;
terhorst 0:92a99259dafa 30 Fase_M1_B = 1;
terhorst 0:92a99259dafa 31 wait(tempo);
terhorst 0:92a99259dafa 32 Fase_M1_B = 0;
terhorst 0:92a99259dafa 33 Fase_M1_C = 1;
terhorst 0:92a99259dafa 34 wait(tempo);
terhorst 0:92a99259dafa 35 Fase_M1_C = 0;
terhorst 0:92a99259dafa 36 Fase_M1_D = 1;
terhorst 0:92a99259dafa 37 wait(tempo);
terhorst 0:92a99259dafa 38 Fase_M1_D = 0;
terhorst 0:92a99259dafa 39 Posicao_inicial[0] = Posicao_inicial[0] + 5;
terhorst 0:92a99259dafa 40
terhorst 0:92a99259dafa 41 }
terhorst 0:92a99259dafa 42
terhorst 0:92a99259dafa 43 if (Posicao_inicial[0] > PosicaoFrasco[0]) {
terhorst 0:92a99259dafa 44 Fase_M1_D = 1;
terhorst 0:92a99259dafa 45 wait(tempo);
terhorst 0:92a99259dafa 46 Fase_M1_D = 0;
terhorst 0:92a99259dafa 47 Fase_M1_C = 1;
terhorst 0:92a99259dafa 48 wait(tempo);
terhorst 0:92a99259dafa 49 Fase_M1_C = 0;
terhorst 0:92a99259dafa 50 Fase_M1_B = 1;
terhorst 0:92a99259dafa 51 wait(tempo);
terhorst 0:92a99259dafa 52 Fase_M1_B = 0;
terhorst 0:92a99259dafa 53 Fase_M1_A = 1;
terhorst 0:92a99259dafa 54 wait(tempo);
terhorst 0:92a99259dafa 55 Fase_M1_A = 0;
terhorst 0:92a99259dafa 56 Posicao_inicial[0] = Posicao_inicial[0] - 5;
terhorst 0:92a99259dafa 57
terhorst 0:92a99259dafa 58 }
terhorst 0:92a99259dafa 59
terhorst 0:92a99259dafa 60 if (Posicao_inicial[0] == PosicaoFrasco[0]) {
terhorst 0:92a99259dafa 61 x = 1;
terhorst 0:92a99259dafa 62 }
terhorst 0:92a99259dafa 63 }
terhorst 0:92a99259dafa 64
terhorst 0:92a99259dafa 65 while (y == 0){ // Checa se a pipeta está na posição de pega, se n estiver ela se movimenta até lá
terhorst 0:92a99259dafa 66 if (Posicao_inicial[1] < PosicaoFrasco[1]) {
terhorst 0:92a99259dafa 67 Fase_M2_A = 1;
terhorst 0:92a99259dafa 68 wait(tempo);
terhorst 0:92a99259dafa 69 Fase_M2_A = 0;
terhorst 0:92a99259dafa 70 Fase_M2_B = 1;
terhorst 0:92a99259dafa 71 wait(tempo);
terhorst 0:92a99259dafa 72 Fase_M2_B = 0;
terhorst 0:92a99259dafa 73 Fase_M2_C = 1;
terhorst 0:92a99259dafa 74 wait(tempo);
terhorst 0:92a99259dafa 75 Fase_M2_C = 0;
terhorst 0:92a99259dafa 76 Fase_M2_D = 1;
terhorst 0:92a99259dafa 77 wait(tempo);
terhorst 0:92a99259dafa 78 Fase_M2_D = 0;
terhorst 0:92a99259dafa 79 Posicao_inicial[1] = Posicao_inicial[1] + 5;
terhorst 0:92a99259dafa 80
terhorst 0:92a99259dafa 81 }
terhorst 0:92a99259dafa 82
terhorst 0:92a99259dafa 83 if (Posicao_inicial[1] > PosicaoFrasco[1]) {
terhorst 0:92a99259dafa 84 Fase_M2_D = 1;
terhorst 0:92a99259dafa 85 wait(tempo);
terhorst 0:92a99259dafa 86 Fase_M2_D = 0;
terhorst 0:92a99259dafa 87 Fase_M2_C = 1;
terhorst 0:92a99259dafa 88 wait(tempo);
terhorst 0:92a99259dafa 89 Fase_M2_C = 0;
terhorst 0:92a99259dafa 90 Fase_M2_B = 1;
terhorst 0:92a99259dafa 91 wait(tempo);
terhorst 0:92a99259dafa 92 Fase_M2_B = 0;
terhorst 0:92a99259dafa 93 Fase_M2_A = 1;
terhorst 0:92a99259dafa 94 wait(tempo);
terhorst 0:92a99259dafa 95 Fase_M2_A = 0;
terhorst 0:92a99259dafa 96 Posicao_inicial[1] = Posicao_inicial[1] - 5;
terhorst 0:92a99259dafa 97
terhorst 0:92a99259dafa 98 }
terhorst 0:92a99259dafa 99
terhorst 0:92a99259dafa 100 if (Posicao_inicial[1] == PosicaoFrasco[1]) {
terhorst 0:92a99259dafa 101 y = 1;
terhorst 0:92a99259dafa 102 }
terhorst 0:92a99259dafa 103 }
terhorst 0:92a99259dafa 104
terhorst 0:92a99259dafa 105 while (z == 0){ // Checa se a pipeta está na posição de pega, se n estiver ela se movimenta até lá
terhorst 0:92a99259dafa 106 if (Posicao_inicial[2] < PosicaoFrasco[2]) {
terhorst 0:92a99259dafa 107 Fase_M3_A = 1;
terhorst 0:92a99259dafa 108 wait(tempo);
terhorst 0:92a99259dafa 109 Fase_M3_A = 0;
terhorst 0:92a99259dafa 110 Fase_M3_B = 1;
terhorst 0:92a99259dafa 111 wait(tempo);
terhorst 0:92a99259dafa 112 Fase_M3_B = 0;
terhorst 0:92a99259dafa 113 Fase_M3_C = 1;
terhorst 0:92a99259dafa 114 wait(tempo);
terhorst 0:92a99259dafa 115 Fase_M3_C = 0;
terhorst 0:92a99259dafa 116 Fase_M3_D = 1;
terhorst 0:92a99259dafa 117 wait(tempo);
terhorst 0:92a99259dafa 118 Fase_M3_D = 0;
terhorst 0:92a99259dafa 119 Posicao_inicial[2] = Posicao_inicial[2] + 5;
terhorst 0:92a99259dafa 120
terhorst 0:92a99259dafa 121 }
terhorst 0:92a99259dafa 122
terhorst 0:92a99259dafa 123 if (Posicao_inicial[2] > PosicaoFrasco[2]) {
terhorst 0:92a99259dafa 124 Fase_M3_D = 1;
terhorst 0:92a99259dafa 125 wait(tempo);
terhorst 0:92a99259dafa 126 Fase_M3_D = 0;
terhorst 0:92a99259dafa 127 Fase_M3_C = 1;
terhorst 0:92a99259dafa 128 wait(tempo);
terhorst 0:92a99259dafa 129 Fase_M3_C = 0;
terhorst 0:92a99259dafa 130 Fase_M3_B = 1;
terhorst 0:92a99259dafa 131 wait(tempo);
terhorst 0:92a99259dafa 132 Fase_M3_B = 0;
terhorst 0:92a99259dafa 133 Fase_M3_A = 1;
terhorst 0:92a99259dafa 134 wait(tempo);
terhorst 0:92a99259dafa 135 Fase_M3_A = 0;
terhorst 0:92a99259dafa 136 Posicao_inicial[2] = Posicao_inicial[2] - 5;
terhorst 0:92a99259dafa 137
terhorst 0:92a99259dafa 138 }
terhorst 0:92a99259dafa 139
terhorst 0:92a99259dafa 140 if (Posicao_inicial[2] == PosicaoFrasco[2]) {
terhorst 0:92a99259dafa 141 z = 1;
terhorst 0:92a99259dafa 142 }
terhorst 0:92a99259dafa 143 }
terhorst 0:92a99259dafa 144
terhorst 0:92a99259dafa 145 ativa_pipeta();
terhorst 0:92a99259dafa 146
terhorst 0:92a99259dafa 147 while (Posicao_inicial[2] != 0) { //Depois de sugar o líquido a pipeta é levada para cima para evitar possíveis colisões
terhorst 0:92a99259dafa 148 Fase_M3_D = 1;
terhorst 0:92a99259dafa 149 wait(tempo);
terhorst 0:92a99259dafa 150 Fase_M3_D = 0;
terhorst 0:92a99259dafa 151 Fase_M3_C = 1;
terhorst 0:92a99259dafa 152 wait(tempo);
terhorst 0:92a99259dafa 153 Fase_M3_C = 0;
terhorst 0:92a99259dafa 154 Fase_M3_B = 1;
terhorst 0:92a99259dafa 155 wait(tempo);
terhorst 0:92a99259dafa 156 Fase_M3_B = 0;
terhorst 0:92a99259dafa 157 Fase_M3_A = 1;
terhorst 0:92a99259dafa 158 wait(tempo);
terhorst 0:92a99259dafa 159 Fase_M3_A = 0;
terhorst 0:92a99259dafa 160 Posicao_inicial[2] = Posicao_inicial[2] - 5;
terhorst 0:92a99259dafa 161 }
terhorst 0:92a99259dafa 162
terhorst 0:92a99259dafa 163 while (x_2 == 0){ // Checa se a pipeta está na posição de solta, se n estiver ela se movimenta até lá
terhorst 0:92a99259dafa 164 if (Posicao_inicial[0] < PosicaoRecipiente[0]) {
terhorst 0:92a99259dafa 165 Fase_M1_A = 1;
terhorst 0:92a99259dafa 166 wait(tempo);
terhorst 0:92a99259dafa 167 Fase_M1_A = 0;
terhorst 0:92a99259dafa 168 Fase_M1_B = 1;
terhorst 0:92a99259dafa 169 wait(tempo);
terhorst 0:92a99259dafa 170 Fase_M1_B = 0;
terhorst 0:92a99259dafa 171 Fase_M1_C = 1;
terhorst 0:92a99259dafa 172 wait(tempo);
terhorst 0:92a99259dafa 173 Fase_M1_C = 0;
terhorst 0:92a99259dafa 174 Fase_M1_D = 1;
terhorst 0:92a99259dafa 175 wait(tempo);
terhorst 0:92a99259dafa 176 Fase_M1_D = 0;
terhorst 0:92a99259dafa 177 Posicao_inicial[0] = Posicao_inicial[0] + 5;
terhorst 0:92a99259dafa 178
terhorst 0:92a99259dafa 179 }
terhorst 0:92a99259dafa 180
terhorst 0:92a99259dafa 181 if (Posicao_inicial[0] > PosicaoRecipiente[0]) {
terhorst 0:92a99259dafa 182 Fase_M1_D = 1;
terhorst 0:92a99259dafa 183 wait(tempo);
terhorst 0:92a99259dafa 184 Fase_M1_D = 0;
terhorst 0:92a99259dafa 185 Fase_M1_C = 1;
terhorst 0:92a99259dafa 186 wait(tempo);
terhorst 0:92a99259dafa 187 Fase_M1_C = 0;
terhorst 0:92a99259dafa 188 Fase_M1_B = 1;
terhorst 0:92a99259dafa 189 wait(tempo);
terhorst 0:92a99259dafa 190 Fase_M1_B = 0;
terhorst 0:92a99259dafa 191 Fase_M1_A = 1;
terhorst 0:92a99259dafa 192 wait(tempo);
terhorst 0:92a99259dafa 193 Fase_M1_A = 0;
terhorst 0:92a99259dafa 194 Posicao_inicial[0] = Posicao_inicial[0] - 5;
terhorst 0:92a99259dafa 195
terhorst 0:92a99259dafa 196 }
terhorst 0:92a99259dafa 197
terhorst 0:92a99259dafa 198 if (Posicao_inicial[0] == PosicaoRecipiente[0]) {
terhorst 0:92a99259dafa 199 x_2 = 1;
terhorst 0:92a99259dafa 200 }
terhorst 0:92a99259dafa 201 }
terhorst 0:92a99259dafa 202
terhorst 0:92a99259dafa 203 while (y_2 == 0){ // Checa se a pipeta está na posição de solta, se n estiver ela se movimenta até lá
terhorst 0:92a99259dafa 204 if (Posicao_inicial[1] < PosicaoRecipiente[1]) {
terhorst 0:92a99259dafa 205 Fase_M2_A = 1;
terhorst 0:92a99259dafa 206 wait(tempo);
terhorst 0:92a99259dafa 207 Fase_M2_A = 0;
terhorst 0:92a99259dafa 208 Fase_M2_B = 1;
terhorst 0:92a99259dafa 209 wait(tempo);
terhorst 0:92a99259dafa 210 Fase_M2_B = 0;
terhorst 0:92a99259dafa 211 Fase_M2_C = 1;
terhorst 0:92a99259dafa 212 wait(tempo);
terhorst 0:92a99259dafa 213 Fase_M2_C = 0;
terhorst 0:92a99259dafa 214 Fase_M2_D = 1;
terhorst 0:92a99259dafa 215 wait(tempo);
terhorst 0:92a99259dafa 216 Fase_M2_D = 0;
terhorst 0:92a99259dafa 217 Posicao_inicial[1] = Posicao_inicial[1] + 5;
terhorst 0:92a99259dafa 218
terhorst 0:92a99259dafa 219 }
terhorst 0:92a99259dafa 220
terhorst 0:92a99259dafa 221 if (Posicao_inicial[1] > PosicaoRecipiente[1]) {
terhorst 0:92a99259dafa 222 Fase_M2_D = 1;
terhorst 0:92a99259dafa 223 wait(tempo);
terhorst 0:92a99259dafa 224 Fase_M2_D = 0;
terhorst 0:92a99259dafa 225 Fase_M2_C = 1;
terhorst 0:92a99259dafa 226 wait(tempo);
terhorst 0:92a99259dafa 227 Fase_M2_C = 0;
terhorst 0:92a99259dafa 228 Fase_M2_B = 1;
terhorst 0:92a99259dafa 229 wait(tempo);
terhorst 0:92a99259dafa 230 Fase_M2_B = 0;
terhorst 0:92a99259dafa 231 Fase_M2_A = 1;
terhorst 0:92a99259dafa 232 wait(tempo);
terhorst 0:92a99259dafa 233 Fase_M2_A = 0;
terhorst 0:92a99259dafa 234 Posicao_inicial[1] = Posicao_inicial[1] - 5;
terhorst 0:92a99259dafa 235
terhorst 0:92a99259dafa 236 }
terhorst 0:92a99259dafa 237
terhorst 0:92a99259dafa 238 if (Posicao_inicial[1] == PosicaoRecipiente[1]) {
terhorst 0:92a99259dafa 239 y_2 = 1;
terhorst 0:92a99259dafa 240 }
terhorst 0:92a99259dafa 241 }
terhorst 0:92a99259dafa 242
terhorst 0:92a99259dafa 243 while (z_2 == 0){ // Checa se a pipeta está na posição de solta, se n estiver ela se movimenta até lá
terhorst 0:92a99259dafa 244 if (Posicao_inicial[2] < PosicaoRecipiente[2]) {
terhorst 0:92a99259dafa 245 Fase_M3_A = 1;
terhorst 0:92a99259dafa 246 wait(tempo);
terhorst 0:92a99259dafa 247 Fase_M3_A = 0;
terhorst 0:92a99259dafa 248 Fase_M3_B = 1;
terhorst 0:92a99259dafa 249 wait(tempo);
terhorst 0:92a99259dafa 250 Fase_M3_B = 0;
terhorst 0:92a99259dafa 251 Fase_M3_C = 1;
terhorst 0:92a99259dafa 252 wait(tempo);
terhorst 0:92a99259dafa 253 Fase_M3_C = 0;
terhorst 0:92a99259dafa 254 Fase_M3_D = 1;
terhorst 0:92a99259dafa 255 wait(tempo);
terhorst 0:92a99259dafa 256 Fase_M3_D = 0;
terhorst 0:92a99259dafa 257 Posicao_inicial[2] = Posicao_inicial[2] + 5;
terhorst 0:92a99259dafa 258
terhorst 0:92a99259dafa 259 }
terhorst 0:92a99259dafa 260
terhorst 0:92a99259dafa 261 if (Posicao_inicial[2] > PosicaoRecipiente[2]) {
terhorst 0:92a99259dafa 262 Fase_M3_D = 1;
terhorst 0:92a99259dafa 263 wait(tempo);
terhorst 0:92a99259dafa 264 Fase_M3_D = 0;
terhorst 0:92a99259dafa 265 Fase_M3_C = 1;
terhorst 0:92a99259dafa 266 wait(tempo);
terhorst 0:92a99259dafa 267 Fase_M3_C = 0;
terhorst 0:92a99259dafa 268 Fase_M3_B = 1;
terhorst 0:92a99259dafa 269 wait(tempo);
terhorst 0:92a99259dafa 270 Fase_M3_B = 0;
terhorst 0:92a99259dafa 271 Fase_M3_A = 1;
terhorst 0:92a99259dafa 272 wait(tempo);
terhorst 0:92a99259dafa 273 Fase_M3_A = 0;
terhorst 0:92a99259dafa 274 Posicao_inicial[2] = Posicao_inicial[2] - 5;
terhorst 0:92a99259dafa 275
terhorst 0:92a99259dafa 276 }
terhorst 0:92a99259dafa 277
terhorst 0:92a99259dafa 278 if (Posicao_inicial[2] == PosicaoRecipiente[2]) {
terhorst 0:92a99259dafa 279 z_2 = 1;
terhorst 0:92a99259dafa 280 }
terhorst 0:92a99259dafa 281 }
terhorst 0:92a99259dafa 282
terhorst 0:92a99259dafa 283 }
terhorst 0:92a99259dafa 284
terhorst 0:92a99259dafa 285 void repetir(){
terhorst 0:92a99259dafa 286
terhorst 0:92a99259dafa 287 }
terhorst 0:92a99259dafa 288
terhorst 0:92a99259dafa 289 int main() {
terhorst 0:92a99259dafa 290 zeramento();
terhorst 0:92a99259dafa 291 Joystick();
terhorst 0:92a99259dafa 292
terhorst 0:92a99259dafa 293 int verdade = 1;
terhorst 0:92a99259dafa 294
terhorst 0:92a99259dafa 295 while (verdade == 1) {
terhorst 0:92a99259dafa 296 repetir();
terhorst 0:92a99259dafa 297 }
terhorst 0:92a99259dafa 298
terhorst 0:92a99259dafa 299 }
terhorst 0:92a99259dafa 300
terhorst 0:92a99259dafa 301
terhorst 0:92a99259dafa 302