Trabalho Prático 1
Link para o relatório do trabalho 1 : tprob_1.pdf
Objetivo
O Objetivo do primeiro trabalho prático foi a familiarização dos alunos com a construção de estruturas mecânicas com Lego. O robô construído deve conseguir traçar um círculo e um quadrado.
Construção do robô
Nome do ROBO: CHICONATOR
Como o sugerido nas tarefas definidas do trabalho prático, para o início da construção do robô, nos baseamos no HandyBug similar ao 9645 ([Martin] pg. 30-51) . Como já era previsto, o nosso kit lego não possui todas as peças descritas no guia do HandyBug, por isso começamos as improvisações ao utilizar peças similares.
Inicialmente, nós seguimos a construção do HandyBug da maneira mais fiel possível, apenas substituindo uma peça ou outra por similares. Mas aos poucos percebemos que o nosso robô não se comportaria como o HandyBug descrito no livro. Isso gerou uma mudança total do planejamento da estrutura do robô duas vezes, deixando o projeto final bem diferente do projeto do HandyBug, pricipalmente pelo fato de os motores serem motores totalmente diferentes dos motores fornecidos no kit Lego. Apesar das diferenças do projeti final, foi decidido manter a redução sugerida pelo livro o mais similar o possível, pois nós não possuirmos nenhuma experiência em construir reduções com o Lego e seria difícil para nós encontrar uma solução melhor do que a sugerida pelo livro em pouco tempo. Os motores foram colados a peças de pelo com cola quente e devidamente ajustados para que ficassem na mesma altura.
(as reduções descritas como no livro, mas com o chassi alterado)
Para encaixar os motores para que não ficassem muito apertados, aumentamos o tamanho do chassi sugerido pelo livro, e para manter o apoio do chassi, utilizamos um roll-on. Construimos uma estrutura com vigas reforçadas sobre os motores para acomodar a HadyBoard.
(os motores encaixados, e o roll-on)
(a HandyBoard encaixada)
(o design quase final)
Decidimos prender a caneta em pé, e o mais próximo do centro do eixo das rodas o possível, para que a 'orelha' desenhada durante a curva entre os vértices do quadrado fosse a menor possível.
Programação da HandyBoard
Inicialmente definimos como prioridade de implementação, a função que calibraria os dois motores, compensando a diferença entre eles. Esta compensação é fundamental para que o robô possa andar em linha reta.
Como a diferença entre os motores variava por questões da bateria e por questões de montagem como diferença no encaixe das engrenagens e diferença de aderência da superfície em que o robô se encontra, foi definido que a calibração seria feita com base em tentativas. Para fazer esta calibração ser fácil de se executar, implementamos uma interface simples na HandyBoard que inicia com um valor padrão de diferença entre os motores, e se ao verificarmos que o robô não se desloca em linha reta, pode-se alterar o valor da calibração pela própria HandyBoard de maneira simples. Desta maneira foi fácil preparar o robô para que ele se deslocasse em linha reta. O segundo método implementado, foi um método para ligar os dois motores no mesmo sentido, e que se os motores estivessem corretamente calibrados, o robô iria se deslocar em linha reta. Este método era complementar ao de calibrar, utilizando os dois em conjunto conseguimos sempre definir com que o robô se deslocasse em linha reta.
Para realizar as tarefas deste primeiro trabalho, foram implementados mais dois métodos, um para o robô andar em círculos e outro para ele traçar um quadrado. Ambos os métodos podiam ter as variáveis calibradas independentemente, de modo que é possível determinar na HandyBoard qual seria o tamanho estimado do círculo e o tamanho do vértice do quadrado. Todos os métodos eram acessados na HandyBoard por um menu também implementado.
Resultados Obtidos
Abaixo estão fotos da cartolina em que o robô traçou círculos e 'quadrados'.
(os quadrados com orelhas)
(vários círculos e mais um quadrado com orelhas)
Conclusão
Apesar de parecer simples implementar um pequeno robô que trace um quadrado ou um círculo, não é tarefa simples. Esse pequeno projeto consumiu várias horas de trabalho e nos mostrou que o planejamento inicial, e um software de fácil atualização e com uma interface amigável são essenciais para este projeto.
Consideramos os nossos resultados obtidos satisfatórios, já que os quadrados e círculos desenhados pelo robô foram bem próximos do esperado e de fácil reprodução em diferentes superfícies já que o método de calibração desenvolvido é simples.