EV3

G3ôm3tra

Escrito por Ana Paula. Publicado em EV3

                Em alguns momentos que estive dando uma olhadinha pela internet, para ver algumas coisas sobre o EV3, quando ainda não tinha um kit meu, vi um vídeo onde um robô traçava polígonos.

                Cheguei a escrever para o autor do robô e do vídeo, perguntando se poderia me ensinar a fazer o mesmo, mas acabei sem nenhuma resposta.

                Desta forma, tornou-se um desafio, fazer um robô simples e que desenhasse os polígonos.

                Pensei muito a respeito, rabisquei algumas coisas em papel, pois ainda não tinha o kit. Passou-se mais de um ano e finalmente tive a oportunidade de adquirir um kit EV3 Edu e um almoxarifado. Comecei a aprender a usar, montando os modelos do software junto ao conhecimento que tinha do NXT, fui tentando aprender um pouco mais. Surgiu a oportunidade de fazer um curso da ManuffatoTC, ministrado pelo Adriano Machado, onde aprendi muito!

                Pouco a pouco fui pensando em como poderia fazer esse robô. Onde colocar a caneta? Tamanho do robô? Que rodas usar? Muitas perguntas e rabiscos em algumas folhas de um caderninho...

                Enfim, comecei a pensar no local da caneta, algo importante, pois no momento em que o robô fizer o giro em um dos vértices do polígono, a caneta deveria permanecer no mesmo ponto e só depois se deslocar para traçar a aresta (lado) do polígono. Foi assim que pensei:

                Como podemos ver na foto, os eixos das rodas e onde a caneta é colocada, ela fica exatamente entre os eixos, permitindo o movimento descrito anteriormente.

                Minha ideia era que ao inserir a quantidade de lados do polígono, o robô fosse capaz de traça-lo. Então a programação deveria fazer todos os cálculos necessários para que no final assim o realizasse.

                Mas.... Que cálculos são estes?

                Teremos que rever alguns conceitos de geometria e álgebra para fazer isso funcionar.

                Primeiro de tudo, os polígonos são formados por lados, vértices e ângulos internos, no caso como quero polígonos regulares, possuem lados de mesma medida e ângulos iguais em todos os vértices.

                Vamos observar a imagem abaixo, escolhi o Pentágono para ilustrar o pensamento matemático do nosso desafio.

                Neste exemplo, é um polígono de 5 lados, tem como ângulo interno  .

                Queremos dizer ao robô, a quantidade de lados do polígono que queremos que seja desenhado, e não o ângulo interno do polígono. Assim, buscando ajuda na geometria, podemos escrever   em função de  (número de lados):

Vale lembrar que o software EV3, usa cerca de 4 casas decimais. Desta forma, iremos utilizar , para os cálculos que seguirão.

                Para fazer o cálculo no software, usamos o bloco matemática, escolhemos ADV (avançado), inserimos a fórmula acima da seguinte forma:

Temos que usar as letras , ,  ou  em nossas fórmulas para inserir na programação, pois é o padrão do software. Neste caso só precisamos da letra  substituindo a letra  da equação (I). Ficando assim:

                Guardamos o valor calculado em uma variável, para que possamos usar novamente em outro momento.

                Precisamos descobrir agora o ângulo   formado pelo eixo das rodas do robô para a roda sair da posição inicial, para a posição final:

                No caso, podemos observar que o eixo das rodas, forma um ângulo de  com o lado do polígono, tanto na posição inicial, quanto na final. Então, se somarmos todos os ângulos o resultado deve ser 360º:

 

                E por fim,

                Para isso, fazemos o mesmo processo para o cálculo usando o próprio software:

                Já sabemos o ângulo , agora precisamos descobrir o quanto nosso robô deve se deslocar, indicado na figura com a letra L em amarelo:

                Precisamos pensar agora, como fazer nosso robô sair da posição inicial e chegar à final. Ele deve percorrer o arco de circunferência   que possui ângulo . Mas esta medida  depende também do tamanho do eixo do robô.

                Então precisamos conhecer algumas medidas do nosso robô:

                O diâmetro do eixo você terá que medir, usando uma régua ou trena. O diâmetro reduzido é a distância entre a metade da roda até a outra metade da roda, mas sabendo a banda do seu pneu, bastando fazer:

                Sobre a banda do pneu e o diâmetro da roda, só precisamos observar a roda usada, pois essas informações estão escritas no pneu, veja o exemplo da roda que estou utilizando:

                Está escrito 43.2 x 22, mas estes valores estão em milímetros, precisamos deles em centímetros, então convertemos para: 4,32 cm x 2,2 cm. O primeiro número é o diâmetro da roda e o segundo a banda (largura) do pneu. Claro, cada tipo de roda possui um valor!

                Agora, recorrendo a geometria, temos que,  em centímetros pode ser encontrado com a seguinte relação:

                Mas temos um detalhe, precisamos fazer um ajuste em , pois há a questão do atrito, que pode nos atrapalhar. Então vamos usar  , onde  é nossa constante de correção, e teremos que encontrar esse valor na tentativa e erro:

                Onde  é o diâmetro  ,  a banda do meu pneu,  a correção ( , que chamamos anteriormente, encontrado via tentativa e erro, no meu caso o valor que encontrei foi ) e  o valor do ângulo .

                Agora precisamos saber o quanto nossa roda deve girar para percorrer .

                Sabemos os dados da roda:  e . Podemos calcular o comprimento da circunferência da roda, em centímetros, utilizando:

                Como  , temos:

  (V)

                Colocando no programa:

                Mas precisamos trabalhar com a rotação do motor em graus, por questão de precisão, usaremos o   e uma relação com o , uma simples regra de três:

                Portanto,

 ,

Onde  é a quantidade de graus que o motor deve girar para que percorra o  calculado.

Assim,

                Então, sabemos quanto o robô deve girar sua roda em graus, usando a variável , vamos criar um ciclo (loop) assim:

Onde o robô seguirá por meia rotação em linha reta, com força 18, para traçar a aresta (lado) do polígono, em seguida fará um giro de acordo com o valor calculado , com força 10, usamos a direção como 100 (para que uma roda gire para um lado e a outra para o outro), permitindo o giro do robô. Tudo isso, dentro de um ciclo (loop) que se repetirá por 5 vezes que é a quantidade de lados que tem o Pentágono, que foi o polígono escolhido como exemplo no início deste texto.

                Você pode baixar a programação clicando aqui!

                E para baixar o modelo do robô feito no LDD, clique aqui! Não ficou perfeito, mas dá pra seguir...

                Veja o vídeo do G3ôm3tra funcionando: Vídeo - G3ôm3tra

                Agora é só variar o valor da quantidade de lados do polígono que você desejar para fazer diferentes polígonos. Não esqueça que este deve ser o mesmo valor para o loop. Você pode melhorar a programação, criar my blocks, inserir sensores.... Use sua criatividade e compartilhe conosco!

                Comente! Compartilhe! Até a próxima!

Attachments:
Download this file (g3om3tra.zip)LDD G3om3tra[Arquivo LDD do G3om3tra]13 kB
Download this file (G3ometra.zip)G3om3tra[Arquivo da programação do G3om3tra]1545 kB

©Roboticando - 2010 - Todos os direitos reservados!
"LEGO® and MINDSTORMS® are trademarks of The LEGO Group of companies which does not sponsor, autorize ir endorse this site"

Powered by Warp Theme Framework