Trabalho Prático 1
O trabalho prático um consiste na construção de um robô manipulador que seja capaz de escrever a palavra “UFMG” em um espaço determinado. O robô, teoricamente deveria ser construído através de dois eixos (x e y), cada um controlado por um motor. A soma dos movimentos prismáticos dos eixos x e y, seriam capazes executar a tarefa final, escrever “UFMG”.
Dia 01: No primeiro dia de testes buscamos aprender mais sobre como trabalhar com as peças de LEGO que tínhamos disponíveis. Através das montagens nos habituamos com as possibilidades de construção de uma nova estrutura, bem como com o encaixe de engrenagens, travamento de estruturas, problemas com instabilidades, etc. Em nossa primeira montagem decidimos construir uma caixa de transmissão simples para compreendermos como as engrenagens se encaixam. Também analisamos qual a melhor combinação para redução de velocidade e aumento de torque. Uma vez construída a primeira caixa de transmissão, buscamos uma forma de fazê-la movimentar-se sobre uma esteira. Construindo dessa forma nosso protótipo do eixo x do motor.
Problemas/dificuldades: Utilizando os orifícios laterais do LEGO como suporte para o eixo de sustentação das engrenagens, notamos que não seria possível encaixar quaisquer engrenagens umas nas outras. As combinações de tamanhos de engrenagens, bem como o espaço entre os eixos eram bastante restritas e por vezes a redução que planejamos não era possível de ser executada. Uma vez finalizada a caixa de transmissão, notamos que a esteira pela qual ela deslizava era muito larga, devido ao tamanho da caixa. Isso provocava muito atrito e alta instabilidade nos movimentos prismáticos. Sempre que a caixa se movimentava sobre a esteira havia trepidação. Decidimos por alterar todo o projeto, visando construir uma estrutura mais leve a ser movimentada e a melhorarmos a caixa de transmissão.
Dia 02: Após identificarmos os problemas no bloco montado no primeiro dia, decidimos refazer a estrutura com a ideologia de adaptarmos o motor e as engrenagem à uma estrutura simples e robusta que montaríamos primeiro para conseguirmos a estabilidade e robustez desejadas, ao invés de montarmos uma caixa de redução e tentar encaixa-la numa estrutura a ser montada.
Com isso obtivemos ótimos resultados. A estrutura do “braço” do robô, que seria responsável por segurar a caneta, ficou em um tamanho reduzido sem comprometer a estrutura garantindo movimentos firmes com o uso de um trilho duplo, como na imagem.
Já o “braço” era movido sob uma plataforma que garantia uma boa estabilidade visto que foi colocado um trilho na região central, como mostrado na imagem.
Depois, a fim de manter o robô responsável pelo o movimento do braço sob a plataforma parado, utilizamos uma correia que era ligada na engrenagem do eixo preso ao braço do robô que fazia com que ele movesse sob o trilho da plataforma, como mostra a imagem.
Paralelamente a montagem de toda essa estrutura, programamos o arduíno para realizarmos movimentos de modo manual com intuito de testá-la e verificar sua funcionalidade, antes de iniciarmos testes com o código completo. Depois de testada a estrutura, demos por encerrado o dia de trabalho.
Dia 03: Após a estrutura montada, e com o código já compilando, no terceiro dia era hora de juntar ambas as partes do projeto para testes. Primeiro foram feitos alguns ajustes, como por exemplo, a polaridade que o motor precisaria estar conectada para girar na direção correta, tempos de funcionamento dos motores e a potência necessária para funcionar, o primeiro teste foi realizado e um problema no software foi detectado e resolvido.
Após isso no segundo teste, o robô conseguiu escrever UFMG, em partes já estava funcional. Depois disso, era necessário testar as potencias dos motores e velocidades com a pilha, pois a mesma tem potência diferente da fonte e poderia causa diversos problemas e, era necessário fazer os últimos ajustes para que a tarefa seja executada da melhor maneira possível.
Após diversos outros testes na pilha e na fonte, o projeto se mostrou uma solução viável para o problema.
Implementação: No âmbito algorítmico do problema, a solução parte de quatro parâmetros:
- A velocidade do motor responsável pelo deslocamento no eixo x(constante durante toda a execução)
- A velocidade do motor responsável pelo deslocamento no eixo y(constante durante toda a execução)
- O tempo em milissegundos para atravessar o eixo x
- O tempo em milissegundos para atravessar o eixo y
É interessante ressaltar que, como a velocidade utilizada tanto em x quanto em y é constante e d = v*t, o tempo de rotação do motor é utilizado como medida de distância na implementação, já que são diretamente proporcionais.
Afim de tornar essa parametrização dinâmica e evitar exaustivas recompilações e carregamentos de código na máquina, um menu inicial simples foi feito para configurar os quatro parâmetros, tornando o programa bastante adaptável.
Dada a parametrização, a escrita é dividida em três tipos de movimento:
- Vertical
- Horizontal
- Diagonal (utilizado somente pela letra M)
Foram desenvolvidos métodos individuais para os três movimentos, recebendo como parâmetro a direção e a duração do movimento.
Cada letra foi divida em movimentos desses três tipos, considerando a ponta da caneta no extremo à esquerda e acima do espaço em que a letra será escrita e por fim é deixada no extremo à direita e acima. Exemplificando, a letra U é caracterizada por um movimento vertical descendente, um horizontal para a direita e um vertical ascendente. As outras letras seguem o raciocínio análogo.
Como o tempo total de travessia em x foi definido, esse tempo foi dividido entre as letras e os espaços. Arbitrariamente definiu-se a razão entre o tamanho horizontal de uma letra e o de um espaço como 5/1.
Assim, como são 3 espaços e 4 letras, o tempo de escrita destinado a um espaço foi de (travessia em y) / 23. Cada letra tinha uma largura de 5 vezes a de um espaço.
Além disso, os motores não interrompem a rotação imediatamente, logo foram adicionados pequenas esperas entre cada movimento para que a escrita fosse mais retilínea, menos suscetível a esse tipo de problema.
O que poderíamos ter lido antes de começar a montar o robô: Sem dúvidas o dia mais frustrante e exaustivo foi o primeiro dia de testes. Neste evento não possuiamos conhecimento algum sobre a estrutura do robô e menos ainda afinidade para trabalhar com as peças de LEGO. As aulas foram bastante úteis para que moldassemos a forma do robô trabalhar em nossos projetos, bem como o arquivo “The Art of LEGO” disponibilizado na Wiki. Certamente deveriamos ter lido mais sobre estruturas de LEGO antes de iniciarmos as montagens, bem como buscado vídeos e conteúdo de experiencias similares no universo da robótica. Embora tenhamos tido contato com todo esse conteúdo no decorrer da montagem do robô, aprendemos que o conhecimento empírico é sempre mais fácil quando aliado a uma boa base teórica. Base essa que obtivemos no decorrer das aulas.





