===== Trabalho Prático 1 ===== __Objetivo__ - O objetivo desse trabalho prático é montar e programar um robô que realize movimentos pré-programados de deslocamento sobre um plano. Dessa forma, o robô deve desenhar um quadrado de 30cm de lado no chão em que esse se movimenta. Para isso, dispõe-se de dois motores cc e o kit lego. __Idéias__ - Com a experiência do primeiro trabalho prático, percebemos que a primeira coisa a se fazer num projeto como este é fazer o robô o mais simples possível para que o mesmo primeiro cumpra o objetivo proposto. - Então, resolvemos primeiro criar uma caixa de lego que coubesse a HandyBoard e, à partir da mesma, fazer o restante do robô, respeitando suas medidas. __Decisão__ - Decidiu-se a montagem de um robô que se apóia sobre três rodas, sendo uma totalmente livre, sem nenhum tipo de acionamento, e outras duas acionadas, independentemente, pelos motores. __Problemas Encontrados__ - O primeiro problema foi que um dos motores não veio com nenhuma parte metálica em um dos conectores, impossibilitando seu ativamento. Porém, quando conversamos com o monitor da matéria, ele nos forneceu outro no mesmo momento. - Outro problema encontrado é que os motores não são idênticos (nem ao menos pertencem a um mesmo fabricante). Em determinados níveis de potência aplicada igualmente nos mesmos, o robô não se movimenta em linha reta (pois os motores não giram a uma mesma velocidade). Esse fato levou ao uso de um fator de correção que ajusta a potencia de um dos motores para que haja o movimento em linha reta. É importante salientar que o fator de correção muda para diferentes valores de potência. Por exemplo, para uma potência de 100% o fator de correção foi de "0.92". - Um terceiro problema foi colocar a caneta de forma mais precisa possível e exatamente abaixo do eixo central do robô, para que a mesma não deslize quando o robô gira sobre os vértices dos quadrados a serem desenhados. - Por fim, foi difícil fixar o motor em uma peça de lego, de forma que o mesmo fique bem fixo e não trepide durante seu funcionamento. __Montagem__ - A HandyBoard fica em cima do robô, localizada acima do centro de gravidade do mesmo. - A Caneta foi colocada exatamente entre as duas rodas, e no centro do eixo do robô. Além disso, colocamos uma mola para a mesma ficar sempre com uma certa pressão e não atrapalhar também o movimento do robô. - Cada motor foi envolvido por um tubo termo-retrátio e preso por presilhas plásticas a uma peça lego. - Os motores ficam próximos às respectivas rodas que eles impulsionam e são reduzidos para que o movimento seja mais suave e forte ao mesmo tempo. Eles estão diretamente ligados ao "sem-fim" que faz as engranagens funcionarem. __Funcionamento__ - Para a realização de curva pelo robô basta fazer com que haja diferença entre as velocidades angulares das duas rodas que são acionadas pelos motores. Caso a roda esquerda gire mais rápido que a roda direita o robô realiza uma curva para direita. Se, ao contrário, a roda direita girar mais rápido que a esquerda uma curva para a esquerda é efetuada. - A HandyBoard possui um menu para a escolha da tarefa a ser executada pelo robô e configurar as constantes de calibragem. A navegação no menu é feita da seguinte forma: Na primeira linha do display é descrita a opção atual, enquanto na segunda linha estão indicados nas partes esquerda e direita da tela as funções dos botões start e stop, respectivamente, dependendo do contexto. As tarefas presentes no menu são desenhar os quadrados, tocar a música enquanto se movimenta, andar para frente e girar. As duas últimas foram incluídas para realizar as medições. Há também uma opção ajustes, que abre um submenu com diversas constantes que podem ser especificadas, como a potência dos motores, tempo de execução das tarefas, etc. É possível ajustar cada casa decimal das constantes de forma independente por meio do knob, de forma a obter uma maior precisão. - O robô não possui sensores. Toda a programação das tarefas é baseada no tempo. No caso da tarefa de se desenhar um quadrado informa-se a velocidade linear e angular que o robô desenvolve (esses dados dependem muito da carga disponível na bateria) e o tempo de acionamento dos motores é calculado internamente. __Medições__ - Foram realizadas 10 medidas para cada potência tanto para rotação quanto para translação. Com isso, pudemos perceber que a melhor potência no nosso caso foi a de 100% tanto para rotação quanto para translação, já que foi encontrado um menor desvio nos resultados. - Após definida a potência, definimos o tempo para o robô andar 30cm de lado para o quadrado e o tempo para o mesmo girar 90º para realizar cada vértice do quadrado. - Abaixo seguem os gráficos e os histogramas das medidas realizadas: ^ Gráficos ^^ ^ Rotação ^ Translação ^ |{{:cursos:introrobotica:2007-2:grupo5:tp1:rotacao.JPG?200x200|Gráfico1}}|{{:cursos:introrobotica:2007-2:grupo5:tp1:translacao.JPG?200x200|Gráfico2}}| ^ Histogramas ^^^ ^ Rotação ^^^ ^ P = 40% ^ P = 60% ^ P = 100% ^ |{{:cursos:introrobotica:2007-2:grupo5:tp1:rot40.jpg?200x200|Histograma1}}|{{:cursos:introrobotica:2007-2:grupo5:tp1:rot60.jpg?200x200|Histograma2}}|{{:cursos:introrobotica:2007-2:grupo5:tp1:rot100.jpg?200x200|Histograma3}}| ^ Translação ^^^ ^ P = 40% ^ P = 60% ^ P = 100% ^ |{{:cursos:introrobotica:2007-2:grupo5:tp1:trans40.jpg?200x200|Histograma4}}|{{:cursos:introrobotica:2007-2:grupo5:tp1:trans60.jpg?200x200|Histograma5}}|{{:cursos:introrobotica:2007-2:grupo5:tp1:trans100.jpg?200x200|Histograma6}}| __Demonstração__ ^ Fotos ^^^ |{{:cursos:introrobotica:2007-2:grupo5:tp1:DSC01233.JPG?200x200|Foto1}}|{{:cursos:introrobotica:2007-2:grupo5:tp1:DSC01234.JPG?200x200|Foto2}}|{{:cursos:introrobotica:2007-2:grupo5:tp1:DSC01235.JPG?200x200|Foto3}}| |{{:cursos:introrobotica:2007-2:grupo5:tp1:DSC01236.JPG?200x200|Foto4}}|{{:cursos:introrobotica:2007-2:grupo5:tp1:DSC01237.JPG?200x200|Foto5}}|{{:cursos:introrobotica:2007-2:grupo5:tp1:DSC01238.JPG?200x200|Foto6}}| ^ Vídeo ^ |[[http://youtube.com/watch?v=_vxKsGTuV7A|Vídeo YouTube]]| __Documentação__ 1 - {{:cursos:introrobotica:2007-2:grupo5:tp1:Tp1.pdf|Documentação Tp1}}