Trabalho Prático 1

Objetivo

O primeiro trabalho prático da disciplina visa familiarizar os alunos com o kit Lego e com a programação da HandyBoard. Baseando-se na montagem do HandyBug mostrada no livro do Fred Martin ([Martin] pg. 30-51), tinhamos como montar nosso próprio robô. O acionamento das rodas seria feito com dois motores diferentes e o robô deveria desenhar um quadrado e um círculo. A seguir apresentamos o desenvolvimento do Robolation v1.0.

Construção

A montagem teve início com os três (iniciais) integrantes do grupo. Reunidos numa terça feira após a aula e com o livro em mãos começamos a construção de nosso primeiro robô. Todos queriam montar um pedaço, como criança seguindo o manual que ensina a montar o castelo de Lego. Aos poucos percebemos que as coisas não eram exatamente iguais: não existiam as peças necessárias e o guia não era muito explicativo. Fim do dia: apenas as rodas e as reduções foram montadas.

O próximo passo era a montagem dos motores. Utilizando as baterias de celular disponíveis, testamos diversos motores de dentro da caixa até encontrar dois que tivessem um comportamento parecido. Ambos os motores escolhidos já tinham uma gambiarra montagem de fixação pronta. Os grupos anteriores haviam utilizado cola quente e braçadeiras para prender o motor a uma peça de lego 2×4, sendo que o rotor de um deles já estava preso a uma rosca sem fim. Porém ao tentarmos conectar os motores as rodas, verificamos que o eixo do robô era pequeno para caber os dois motores lado a lado e por isso decidimos adotar a estratégia de colocar os motores acionando as engrenagens na vertical. Utilizando braçadeiras e uma peça específica do kit, conseguimos posicionar os motores de forma adequada.

Primeiramente estávamos utilizando rodinhas com apenas um grau de liberdade na parte dianteira do robô, porém isso impedia sua rotação. Assim como os grupos anteriores optamos por utilizar a bolinha de um desodorante roll-on para dar maior liberdade de movimento. Notamos que caso o robô se movimentasse com tração traseira, o roll-on agarrava na superfície, fazendo com que o movimento não ficasse adequado. Dessa forma decidimos que nosso robô “andaria de ré”, ou seja, a tração seria dianteira com o roll-on na parte traseira do robô. Num dos testes feitos acionamos cada motor em um sentido e o resultado segue:

Para finalizar a montagem faltava apenas fixar a HandyBoard e iniciar a programação. Utilizando restos de fita-dupla face, fixamos em uma das placas verdes de Lego e posicionando na parte superior do robô. Dessa forma finalizamos a montagem.

Programação

Antes mesmos de iniciarmos a programação do robô, notamos que ao acionarmos ambos os motores com potência máxima, ele percorria uma linha com um desvio para a direita. Verificamos empiricamente que se colocássemos a potência do motor da esquerda 70% menor que a da direita ele percorria a linha reta. Dessa forma, utilizamos inicialmente as potências de 100%(MD) e 70%(ME) e prosseguimos com o desenvolvimento das funções.

A estratégia inicial era desenvolver duas funções diferentes, uma delas para fazer o círculo e a outra para fazer o quadrado. Dentro dessas funções chamaríamos as funções básicas de linha reta (acionamento “igual” de ambas as rodas) e rotação, todas recebendo como parâmetro um valor de tempo. Para diferenciarmos as chamadas das funções, utilizamos o potenciômetro para poder selecionar a tarefa a ser desenvolvida pelo robô: para valores menores que 100 desenha o quadrado, caso contrário o círculo.

Para simplificar a programação decidimos por criar apenas uma função base que seria tanto para curvas quanto para linha reta. Ela recebe um valor de raio e caso esse valor seja muito alto ele desenha a linha reta, simplificando o código.

Pausa para problemas mecânicos

Sem nenhum pudor as engrenagens estavam sendo comidas pelas roscas sem fim e por isso devíamos fazer alterações. Primeiramente diminuímos a potência de ambos os motores, porém ainda assim ocorria o desgaste. Dessa forma seria necessária a troca das engrenagens problemática por uma engrenagem com projeção, que verificamos não haver desgaste. Na foto podemos ver a engrenagem que apresentava problema.

Refazendo o mau-feito

Agora com a montagem estabilizada poderíamos retornar a programação do robô. Novamente, utilizando critérios empíricos, conseguimos definir os valores de tempo corretos para que o Robolation v1.0 fizesse a trajetória esperada, mas já sabíamos que um fator importante devia ser levado em conta: a bateria devia ser recarregada, o que mudaria bastante os tempos calibrados. Já esperávamos o pior: um quadrado losango, um círculo espiral ou qualquer outra forma geométrica que não fosse o desejado. Só podíamos esperar que tudo desse certo…

Apresentação

Bateria carregada, programa verificado e rezas feitas fomos para o dia da apresentação. Antes de qualquer coisa a recalibração, apenas para verificar o quanto a carga da bateria havia afetado o comportamento do robô. Valores alterados e tudo certo para apresentar. Ao contrário de todos os fatores contrários, segue o resultado inesperado de nosso Robolation, que tinha tudo para dar errado.

Círculo

Quadrado

Conclusão

  • Nunca ria do robô alheio, o seu pode ser pior.
  • No fim quase tudo dá certo.
  • Quadrados têm orelhas.
  • Não importa se na semana anterior você fique 24 horas por conta, o dia anterior será o mais produtivo.
  • Braçadeiras comandam.
  • Nunca corte um pincel atômico no meio, ele vai secar.
cursos/introrobotica/2010-2/grupo06/tp1.txt · Última modificação: 2010/09/26 21:48 por lucasfmd