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

Dependencies:   mbed

Committer:
terhorst
Date:
Mon Jun 22 22:13:27 2020 +0000
Revision:
2:281470e6654a
Parent:
1:2e9e37f35e3f
Child:
3:a9c1946f0518
.;

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