E ai pessoal, tudo bem?

Muitos times se questionam da precisão dos seus robôs ou acabam desiludidos pela performance dos seus “bebês”. A “perfeição”  só é atingida quando se une estratégia + eficiência mecânica + programação / formas de minimizar o erro. Hoje, vamos ensinar formas para facilitar a locomoção do robô na hora da programação.

fllrobot

Geralmente, os robôs de FLL utilizam 2 rodas para locomoção. Tirando os casos de robôs que são omnidirecionais, ou seja, que tem 360 graus de direção. Os robôs  “tradicionais” se orientam andando reto ou fazendo curvas e quando programamos estes robôs utilizamos blocos como os abaixo (Isso no caso do EV3):

blocos_ev3

Blocos de Ação do EV3

Dica de Design do Robô: http://www.newtoncbraga.com.br/index.php/robotica/4018-rp0001.html

(Tipos de locomoção para robôs)

 

Blocos similares à estes são também encontrados no NXT e no RCX. Um dos blocos mais utilizados para locomoção é o bloco “Mover” que utiliza 2 motores para o mesmo sentido tendo algumas variáveis como Força, Tempo, Graus, Travar / Liberar. Para curvas temos três opções. Uma delas é travar um motor e girar o outro no sentido que quer a curva seja feita. Tem também a possibilidade de  girar os dois para sentidos inversos. A terceira opção é utilizar a pilotagem. Confira um comparativo abaixo:

  • Travando um motor e girando com outro:

curva1

  • Girando com os dois em sentidos inversos:

curva2

  • Utilizando Pilotagem:

curva3

Vamos simular a ação de robô para andar para frente por 360 graus com força 75 (contando a direção dos dois motores fisicamente seja a mesma) e logo após faz uma curva de 90 graus:

simulacao

ai

 

É comum  essa rotina na locomoção do robô,

mas o que significam esses famosos “graus”?

 

 

 

Os graus que esse bloco utiliza, são graus da rotação do motor, ou seja, quando você pede para o motor girar 360 graus, ele irá dar uma volta completa no seu próprio eixo conforme mostra a imagem abaixo:


legomotor

1 rotação completa do motor = 360 graus

Pensando dessa maneira, para facilitar a programação, por que não programar utilizando a medida centímetros ao invés de utilizar os graus do motor?

“Andando” por centímetros

Antes de começar a programação, devemos entender como funciona a equação para transformar graus do motor em centímetros. A equação é:

Graus do motor = ( Cm / Circunferência da Roda ) * 360

Variável Cm = Distância que você deseja que motor gire em centímetros

Variável Circunferência da Roda = π x diâmetro da roda

* Para calcular a circunferência da roda do seu robô basta fazer o cálculo abaixo utilizando a medida do diâmetro da roda do seu robô:

diametro

Fonte: Aprenda Robótica

Constante 360 = Graus de uma circunferência completa

Criando a programação

Para começar a programação de transformar graus do motor em centímetros, vamos transformar essa equação acima em um bloco matemático do EV3. Primeiro vamos selecionar o bloco “Math”. (Data Operations > Math). Por padrão ele vem no modo de adição, vamos colocá-lo no modo Avançado.

math-advanced

Em seguida, vamos trocar a equação que vem por padrão (a+b-c*d) pela seguinte equação:

(a/b)*c

O valor de “a” nessa equação corresponde à distância em centímetros que seu robô andará. O valor de “b” corresponde à circunferência da roda e “c” corresponde a constante 360.

O resultado dessa equação, jogamos nos graus do motor. Pronto! Transformamos a distância que queremos andar (em centímetros) no número de graus no motor. Ficou dessa maneira:

quasepronta

Para não ficar toda hora criando esse bloco matemático, vamos criar um bloco que faça essa função e tenha implementações. O bloco finalizado ficou da seguinte maneira:

pronta

3 variáveis foram utilizadas:

  • Distância em CM
  • Força
  • Pilotagem

Os graus do motor são resetados antes dele fazer o movimento pois graus podem ser acumulados conforme o motor gira. No final travamos o motor para ele não girar muitos graus a mais. Colocamos um comentário para facilitar o entendimento da programação.

Fazendo curvas no próprio eixo

Agora que já aprendemos a se locomover utilizando os centímetros, já pensou nos modos de se fazer curvas? Para fazer curvas no próprio eixo, é utilizada a equação:

Graus do motor = (Distância entre eixos / Raio da Roda) * Ângulo da Curva

Variável Distância entre eixos =  Distância entre eixos do seu robô em centímetros.

* Para descobrir a distância entre eixo do seu robô basta medir a distância entre a meio de uma roda até o meio da outra conforme a imagem abaixo:distancia-entre-eixos

Variável Raio da Roda = Medida do raio da roda do seu robô em centímetros.

* Para calcular o raio da roda do seu robô, basta medir o raio da roda com uma régua conforme a figura abaixo:

roda

Variável Ângulo da Curva = O número de graus da curva do próprio eixo como mostra a figura abaixo:

curva_angulo

Transformando a matemática em blocos

O procedimento para transformar graus do próprio eixo do robô em graus do motor segue o procedimento anterior, começamos criando um bloco de matemática avançada.

math-advanced

Agora vamos substituir a equação padrão pela equação abaixo:

(a/b)*c

A variável “a” corresponde à distância entre eixos, a variável “b” é o raio da roda e a variável “c” são os graus da curva no próprio eixo. O resultado dessa equação jogamos no motor que desejamos fazer a curva. A imagem abaixo ilustra uma curva de 120º no próprio eixo feita pelo motor B, com uma roda de 6 cm de diâmetro e 14,6 cm de distância entre eixos.

curva

Agora transformamos essa equação em um maravilhoso bloco, documentamos e não esquecemos de resetar os graus dos motores B e C e travar o outro motor na hora da curva. O resultado então fica próximo ao abaixo:curva-completa

Seus próximos amigos na hora de programar!

Agora que aprendeu a andar por centímetros e fazer curvas no próprio eixo, você pode utilizar um transferidor e uma régua ou fita métrica na hora de programar, você economiza bastante tempo pois já sabe uma aproximação da distância que quer percorrer, ou seja, não precisa ficar chutando quantos graus seu robô deve andar 🙂

regua

Régua, Transferidor e Fita métrica podem ajudar nas suas medições

Espero que tenham gostado, qualquer dúvida ou sugestão basta comentar abaixo, ou entrar em contato pelo nosso Facebook ou enviar um email para thinkteam@thinkteam.com.br

 

Baixe as programações clicando no link abaixo:

(Leia tudo acima para realmente saber o que está fazendo)

download_btn