Projeto Mecatrônico
/
ProjetoMecatronico
testando
Diff: main_PM.cpp
- Revision:
- 65:5a759e3014dd
- Parent:
- 63:32ba7c4becfc
- Child:
- 67:ecd4feb40f94
--- a/main_PM.cpp Mon Jun 01 20:03:17 2020 +0000 +++ b/main_PM.cpp Tue Jun 02 12:50:43 2020 +0000 @@ -115,26 +115,26 @@ string status_tela = "zeramento"; int programa = 0; -float pos_x_pega = 0; -float pos_y_pega = 0; -float medida_lado_pega=0; -float volume_pega = 0; -int tipo_pega=0; +float pos_x_pega[30]; +float pos_y_pega [30]; +float medida_lado_pega[30]; +float volume_pega[30]; +int tipo_pega[30]; -float dimensao_solta=0; +float dimensao_solta[30]; -float volume_solta_1=0; -float volume_solta_2=0; -float volume_solta_3=0; -float volume_solta_4=0; -float volume_solta_5=0; -float volume_solta_6=0; -float volume_solta_7=0; -float volume_solta_8=0; -float volume_solta_9=0; +float volume_solta_1[30]; +float volume_solta_2[30]; +float volume_solta_3[30]; +float volume_solta_4[30]; +float volume_solta_5[30]; +float volume_solta_6[30]; +float volume_solta_7[30]; +float volume_solta_8[30]; +float volume_solta_9[30]; -float pos_x_solta=0; -float pos_y_solta=0; +float pos_x_solta[30]; +float pos_y_solta[30]; //main @@ -268,21 +268,61 @@ tecla = pega_tecla(); if(tecla =='1' && status_tela =="salvo_confirmacao"){ - funcao_salvo_agree_pos_aviso(); + funcao_salvo_agree_pos_aviso(); //Tela de aviso ao usuário que a pega se deslocará na posição aduequada wait(3); - //posicionar no local da pega salvo; (motor -> programa.pos_x_pega e motor -> programa.pos_y_pega) - funcao_salvo_agree_pos_certo(); + if(coord_x < pos_x_pega[programa]){ //posicionar no local da pega salvo; - se for menor o valor da referencia, gira no sentido horário para aumentar + mov_x_mais(); + } + if (coord_x > pos_x_pega[programa]){ //posicionar no local da pega salvo; - se for maior o valor da referencia, gira no sentido antihorário para diminuir + mov_x_menos(); + } + if(coord_y < pos_y_solta[programa]){ //posicionar no local da pega salvo; - se for menor o valor da referencia, gira no sentido horário para aumentar + mov_y_mais(); + } + if (coord_y > pos_y_solta[programa]){ //posicionar no local da pega salvo; - se for maior o valor da referencia, gira no sentido antihorário para diminuir + mov_y_menos(); + } + funcao_salvo_agree_pos_certo(); //Tela para o usuário confirmar se é essa a posição de fato da pega status_tela="salvo_pos_certo_pega" ;} else if(tecla =='2' && status_tela =="salvo_confirmacao"){ - funcao_salvo_agree_solta_aviso(); + funcao_salvo_agree_solta_aviso(); //posicionar no local de solta para confirmação; (motor -> programa.pos_x_solta e motor -> programa.pos_y_solta) wait(3); - //posicionar no local de solta para confirmação; (motor -> programa.pos_x_solta e motor -> programa.pos_y_solta) + if(coord_x < pos_x_solta[programa]){ //posicionar no local da pega salvo; - se for menor o valor da referencia, gira no sentido horário para aumentar + mov_x_mais(); + } + if (coord_x > pos_x_solta[programa]){ //posicionar no local da pega salvo; - se for maior o valor da referencia, gira no sentido antihorário para diminuir + mov_x_menos(); + } + if(coord_y < pos_y_solta[programa]){ //posicionar no local da pega salvo; - se for menor o valor da referencia, gira no sentido horário para aumentar + mov_y_mais(); + } + if (coord_y > pos_y_solta[programa]){ //posicionar no local da pega salvo; - se for maior o valor da referencia, gira no sentido antihorário para diminuir + mov_y_menos(); + } funcao_salvo_agree_pos_certo(); status_tela = "salvo_pos_certo_solta";} else if(tecla =='3' && status_tela =="salvo_confirmacao"){ - funcao_salvo_agree_pega_vol(); - //programação de volume igual da de cima (programa.vol_pega) - status_tela="salvo_conf_vol_pega";} + funcao_salvo_agree_pega_vol(); //Função que imprime na tela do usuário que ele deve dar entreda no volume + continuar = 1; + multiplicador = 10; + while(continuar){ // Pega o valor imputado pelo usuário + printf("\n%c",pega_tecla()); + tecla = pega_tecla(); + lcd.locate(6,1); + wait(1); + if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ + volume = multiplicador*volume + ((int)tecla-48); + lcd.printf("%c", tecla); + } + else if(tecla == 'A'){ + volume_pega[programa]=volume //recebe o valor que o usuário colocou no volume. + lcd.locate(0,2); + printf("Volume inputado!"); + continuar = 0; + wait(1); + } + } + status_tela="salvo_conf_vol_pega";} else if(tecla =='4' && status_tela =="salvo_confirmacao"){ funcao_salvo_agree_solta_vol(); //volumes configurados por cada pipeta. (programa.vol_solta_pipeta) @@ -302,7 +342,32 @@ funcao_salvo_agree2(); status_tela = "salvo_confirmacao"; }//salva essa posição como correta - else if(tecla =='2' && status_tela =="salvo_pos_certo_pega"){} + else if(tecla =='2' && status_tela =="salvo_pos_certo_pega"){ //Caso o usuário queria ajustar o posicionamento + continuar = 1; //Inicia o loop de posicionamento + while(continuar){ + tecla = pega_tecla(); // pegla a tecla apertada pelo usuário para sair do loop + if(x_menos == 0){mov_x_menos(); // Movimenta o eixo conforme o botão selecionado + lcd.cls(); + lcd.printf("X: %4.1f", coord_x);} //Printa para o usuário isso + else if(x_mais == 0){mov_x_mais(); // Movimenta o eixo conforme o botão selecionado + lcd.cls(); + lcd.printf("X: %4.1f", coord_x);} //Printa para o usuário isso + else if(y_menos == 0){mov_y_menos(); //Movimenta o eixo conforme o botão selecionado + lcd.cls(); + lcd.printf("Y: %4.1f", coord_y);} //Printa para o usuário isso + else if(y_mais == 0){mov_y_mais(); // Movimenta o eixo conforme o botão selecionado + lcd.cls(); + lcd.printf("Y: %4.1f", coord_y);} //Printa para o usuário isso + if(tecla=='A'){ + continuar = 0; + pos_x_pega[programa] = coord_x; + pos_y_pega[programa] = coord_y; + lcd.printf("Posicao de x e y salva!"); + printf("Posicao X: %4.1f", coord_x); + printf("Posicao Y: %4.1f", coord_y); + } + } + } else if(tecla =='B' && status_tela =="salvo_pos_certo_pega"){ funcao_salvo_agree1(); wait(1); @@ -329,7 +394,32 @@ funcao_salvo_agree2(); status_tela = "salvo_confirmacao"; }//salva essa posição como correta - else if(tecla =='2' && status_tela =="salvo_pos_certo_solta"){} + else if(tecla =='2' && status_tela =="salvo_pos_certo_solta"){ + continuar = 1; //Inicia o loop de posicionamento + while(continuar){ + tecla = pega_tecla(); // pegla a tecla apertada pelo usuário para sair do loop + if(x_menos == 0){mov_x_menos(); // Movimenta o eixo conforme o botão selecionado + lcd.cls(); + lcd.printf("X: %4.1f", coord_x);} //Printa para o usuário isso + else if(x_mais == 0){mov_x_mais(); // Movimenta o eixo conforme o botão selecionado + lcd.cls(); + lcd.printf("X: %4.1f", coord_x);} //Printa para o usuário isso + else if(y_menos == 0){mov_y_menos(); //Movimenta o eixo conforme o botão selecionado + lcd.cls(); + lcd.printf("Y: %4.1f", coord_y);} //Printa para o usuário isso + else if(y_mais == 0){mov_y_mais(); // Movimenta o eixo conforme o botão selecionado + lcd.cls(); + lcd.printf("Y: %4.1f", coord_y);} //Printa para o usuário isso + if(tecla=='A'){ + continuar = 0; + pos_x_pega[programa] = coord_x; + pos_y_pega[programa] = coord_y; + lcd.printf("Posicao de x e y salva!"); + printf("Posicao X: %4.1f", coord_x); + printf("Posicao Y: %4.1f", coord_y); + } + } + } else if(tecla =='B' && status_tela =="salvo_pos_certo_solta"){ funcao_salvo_agree1(); wait(1); @@ -358,7 +448,7 @@ else if(tecla =='2' && status_tela == "novo"){ volume = 0; printf("\n%c",pega_tecla()); - funcao_pega_volume(); //!!!!!!!!!!!!!!!!!!!!!!!!!!!WTFFFFF + funcao_pega_volume(); // Função que permite a entreda do valor de volume pelo usuário status_tela = "volume"; continuar = 1; multiplicador = 10; @@ -372,6 +462,7 @@ lcd.printf("%c", tecla); } else if(tecla == 'A'){ + volume_pega[programa]=volume; lcd.locate(0,2); printf("Volume inputado!"); continuar = 0; @@ -388,7 +479,6 @@ } else if(tecla == '3' && status_tela == "novo"){ funcao_pega_pos_x(); - pos_x_pega = coord_x; continuar = 1; while(continuar){ tecla = pega_tecla(); @@ -400,6 +490,7 @@ lcd.printf("X: %4.1f", coord_x);} if(tecla=='A'){ continuar = 0; + pos_x_pega[programa] = coord_x; lcd.printf("Posicao de x salva!"); printf("Posicao X: %4.1f", coord_x); }