persistent float PADRAO_VERMELHO[4]; persistent int ACAO_VERMELHO; persistent float PADRAO_AZUL[4]; persistent int ACAO_AZUL; persistent float PADRAO_AMARELO[4]; persistent int ACAO_AMARELO; persistent float PADRAO_VERDE[4]; persistent int ACAO_VERDE; persistent float LINHA_PRETA_D; persistent float MESA_BRANCA_D; persistent float LINHA_PRETA_E; persistent float MESA_BRANCA_E; int ACAO_PARE=0; int ACAO_VIRE_ESQ=1; int ACAO_VIRE_DIR=2; int ACAO_SIGA=3; int SIGA_TEMPO; void MenuCalibraCor() { float maxesc[]={63.75, 128}; int opcoes[]={0,0}, i=0, opcaoant=-1; char Cor[4][13]; char Tipo[2][13]; Cor[0]="Vermelho"; Cor[1]="Verde"; Cor[2]="Azul"; Cor[3]="Amarelo"; Tipo[0]="Calibrar Cor"; Tipo[1]="Alterar Acao"; sleep(.3); while(1) { opcoes[i]=(int)((float)knob()/maxesc); if ((opcoes[i]!=opcaoant)&&(i==0)) { printf("Selecione Cor: %d - %s \n", opcoes[0]+1, Cor[opcoes[0]]); } if ((opcoes[i]!=opcaoant)&&(i==1)) { printf("Opcoes: %d - %s \n", opcoes[1]+1, Tipo[opcoes[1]]); } if (start_button()) { i++ sleep(.3); opcaoant=-1; } if (i==2) { printf("Deu: %d %d ", opcoes[0],opcoes[1]); break; } opcaoant=opcao[i]; sleep(.1); } } void SigaLuz() { int i=(int)(knob()/255)*2-1; while (!stop_button()) { SegueLuz(AchaLuz(i),i); } } int AchaLuz(int Lado) { int i; int melhorposicao=0; int melhorvalor=-255*Lado; int valor; GiraEsquerda(); for (i=0; i<180; i++) { valor=(analog(0)-analog(2)); if (Lado==1) { if (valor>melhorvalor) { melhorvalor=valor; melhorposicao; } } else { if (valor=-2) break; printf("%d \n",melhorvalor-valor); sleep(6.0/180.0); } alloff(); return melhorvalor; } void SegueLuz(int melhorvalor, int Lado) { int valor; while (!stop_button()) { Frente(); sleep(3.0); valor=(analog(0)-analog(2)); if (Lado==1) { if (valor>=melhorvalor) { melhorvalor=valor; } else break; } else { if (valor<=melhorvalor) { melhorvalor=valor; } else break; } } } void GiraEsquerda() { motor(0,-40); motor(1,40); } void GiraDireita() { motor(0,40); motor(1,-40); } void Frente() { motor(0,40); motor(1,40); }