Máquina de Estados

Mecatrônica é uma área que engloba muitas outras: mecânica, computação, controle e eletrônica. Dessa forma, é comum que, quando você começa a desenvolver interesse por essas áreas, a sua visão do projeto fica mais ampla, o que te permite enxergar a programação antes mesmo de projetar as bases, por exemplo.

Tendo em vista essa forma de pensar dos mecatrônicos, resolvemos lançar essa dica que é conhecida como máquina de estados.

Uma máquina de estados é um sistema no qual suas respostas estão atreladas a estados anteriores, ou seja, a posição de trabalho atual influencia momentos futuros. Mas como isso é útil?

Bem, um caso clássico disso é quando vamos fazer um seguidor de linha com dois sensores e ficamos com velocidade limitada pois o robô costuma sair da linha, ou treme muito. Para resolver esse problema acabamos por colocar um terceiro sensor no meio para checar se ele ainda está na linha, mas, por muitas vezes, a "tremedeira" ainda persiste.

Uma forma eficaz de solucionar esse problema é colocar ambos os sensores dentro da linha preta e utilizar uma máquina de estados. Assim, o que antes era feito com três sensores, pôde ser feito com dois, economizando espaço, evitando possíveis falhas e melhorando a resposta do robô, que agora tem cinco possíveis estados.

O código a seguir contribui com o entendimento.


int Estados(){
if(direito && esquerdo){
estado_ini=0;
return 0;
}
if(direito){
estado_ini=-1;
return -1;
}
if(esquerdo){
estado_ini=1;
return 1;
}
if(estado_ini==-1){
return -2;
}
return 2;
}

Essa ideia é bem comum na mecatônica, mas, para quem está iniciando, é uma ótima dica para ajudar no entendimento geral dos sistemas robóticos.