Tabela de conteúdos
Aprendendo a trabalhar com Manipuladores
Introdução
O Trabalho Prático 1 consiste na a criação de um robô que escreva “UFMG” em uma folha de papel. O objetivo deste é a desenvolver a familiaridade dos alunos com a construção de estruturas mecânicas utilizando LEGO e iniciar o aprendizado da utilização do Arduíno (comandos, motores). Robôs manipuladores se desenvolveram em especial entre as décadas de 1950 à 1980. Eles são dispositivos compostos por dois elementos básicos que são os elos e as juntas. Os elos servem para interligar o mecanismo, enquanto as juntas permitem as conexões e são as responsáveis por fazer o robô assumir diferentes posições.
Materiais
- Lego
- Arduino Mega 2560 (com respectivo cabo)
- 2 motores DC
- Arame
- Alicate de corte
- Alicate de bico
- Fios
- Ferro de solda
- Solda
- Termo Retrátil
- Papel
- Caneta
Procedimentos
A montagem do robô foi dividida em 4 etapas:
- Criação da base do robô;
- Teste da base do robô, criação das caixas de redução para diminuir a velocidade dos motores;
* Implementação teste dos motores;
- Implementação do código para o Arduino;
- Teste do LCD :
- Primeiros testes do robô :
Documentação do código
O código foi realizado de forma que o robô possa escrever qualquer palavra de até 16 letras. Inicialmente, o programa faz com que apareça no LCD as letras do alfabeto em um vetor que pode ser percorrido pelo usuário com o auxilio de botões. As letras selecionadas são enviadas para uma string. Quando terminado este processo, o algoritmo verifica as letras selecionadas e a realiza a função de escrever cada uma delas.
Como é feito o desenho das letras
No algoritmo há uma função chamada de MovivementoRobo que com os dados da velocidade verifica se deve mover os motores para frente ou para trás.
void MovimentoRobo(int x, int y){
if( x>0){
motor2->setSpeed(x/1.7);
motor2->run(FORWARD);
}
else{
motor2->setSpeed(x*(-1)/1.7);
motor2->run(BACKWARD);
}
if( y>0){
motor1->setSpeed(y);
motor1->run(FORWARD);
}
else{
motor1->setSpeed(y*(-1));
motor1->run(BACKWARD);
}
delay(1000/tamanholetra);
motor1->setSpeed(0);
motor2->setSpeed(0);
}
Dessa forma, é possível formar várias letras de forma modularizada, pois é necessário apenas saber ordenar várias vezes a função MovimentoRobo para chegar na letra desejada. Por exemplo a letra C:
void LetraC(){
//Primeira descida
MovimentoRobo(0,-255);
delay(10);
MovimentoRobo(0,-255);
delay(10);
MovimentoRobo(0,-255);
delay(10);
MovimentoRobo(0,-255);
delay(10);
MovimentoRobo(0,-255);
delay(10);
MovimentoRobo(0,-255);
delay(10);
//Reto
MovimentoRobo(-255,0);
delay(10);
MovimentoRobo(-255,0);
delay(10);
MovimentoRobo(-255,0);
delay(10);
MovimentoRobo(-255,0);
delay(10);
MovimentoRobo(-255,0);
delay(10);
MovimentoRobo(-255,0);
delay(10);
//Volta reto
MovimentoRobo(255,0);
delay(10);
MovimentoRobo(255,0);
delay(10);
MovimentoRobo(255,0);
delay(10);
MovimentoRobo(255,0);
delay(10);
MovimentoRobo(255,0);
delay(10);
MovimentoRobo(255,0);
delay(10);
//Sobe
MovimentoRobo(0,255);
delay(10);
MovimentoRobo(0,255);
delay(10);
MovimentoRobo(0,255);
delay(10);
MovimentoRobo(0,255);
delay(10);
MovimentoRobo(0,255);
delay(10);
MovimentoRobo(0,255);
delay(10);
//Reto
MovimentoRobo(-255,0);
delay(10);
MovimentoRobo(-255,0);
delay(10);
MovimentoRobo(-255,0);
delay(10);
MovimentoRobo(-255,0);
delay(10);
MovimentoRobo(-255,0);
delay(10);
MovimentoRobo(-255,0);
delay(10);
//Reto superior
MovimentoRobo(-255,0);
delay(10);
MovimentoRobo(-255,0);
delay(10);
MovimentoRobo(-255,0);
delay(10);
MovimentoRobo(-255,0);
}
Resultados
O resultado do robô foi satisfatório, tanto em questões mecânicas como de programação. O grupo conseguiu comprimir com o objetivo de escrever “UFMG” e conseguiu promover a produção de outros elementos que não estavam no projeto inicial (como por exemplo a produção de qualquer palavra de até 16 letras).
O vídeo abaixo mostra o resultado final obtido pelo robô projetado e confeccionado pelo grupo realizando o desafio da escrita robótica, foram produzidas duas versões de letras: letra cursiva e letra de forma (com um formato quadrado).
Problemas encontrados
Alguns dos problemas enfrentados foram: a caixa de redução, o motor, a altura das peças de lego, o código e a edição de imagens e vídeos.
A caixa de redução foi um problema na medida que foi preciso estimar o número e a configuração das engrenagens para que a velocidade do motor pudesse virar torque. Além disso como manter as engrenagens no lugar também foi um detalhe que foi um tanto custoso, uma vez que nem todas elas são possíveis de prender com apenas uma pecinha.
Em relação ao motor como posicioná-lo em relação às engrenagens e usando preferencialmente uma peça de lego também teve uns problemas, como por exemplo, as peças tem uma certa restrição de movimento, e como as peças que são usadas para colar os motores são distintas das que compõem majoritariamente o motor algumas delas já estão derretidas, coladas ou com um LDR preso em uma das bolinhas do encaixe.
Quanto ao código, sempre aparecem problemas como bugs, e funcionamentos inesperados, o que faz requer muitos testes, simulando situações que,inclusive, possam ser evitadas.
Sobre as imagens e edições de vídeos elas foram feitas basicamente com câmeras de telefones, o que às vezes pode comprometer um pouco a qualidade da imagem. Além disso alguns efeitos foram feitos usando o Power Point e os vídeos no movie maker. O movie maker apresentou um problema quanto a dessincronização da imagem do som o que atrasou as edições e requereu instalações e vários testes também.
Gostaria ainda de fazer um adendo aqui em relação ao grupo. Mas não para reclamar da participação. Gostaria de tratar dos desafios e vantagens de se trabalhar em grupo. Já que a cada nova experiência percebemos coisas novas.
Como vantagens de se trabalhar em grupo temos que esta é uma forma de aprendizado em que pessoas trocam ideias e experiências para alcançar um objetivo. Pois a intenção de um trabalho em grupo em especial nessa disciplina é explorar a interdisciplinaridade, mas além disso a troca entre as pessoas de grupos distintos. Pois as ideias que foram descartadas para a execução de um trabalho podem ajudar na solução dos problemas das demais pessoas. De modo que ao contrário de um pensamento competitivo tenha-se um pensamento colaborativo,dentro e entre grupos, já que todos se ajudando fazendo críticas e dando ideias conseguiram alcançar suas metas. Além disso a própria extensão do trabalho requer um grupo, uma vez que ele requer muitos testes, e reconfigurações que se estenderiam demais caso fossem feitas por apenas uma pessoa.
Como desafios temos os clássicos: tempo, comunicação e ideias. Tempo na medida que cursos distintos implicam em horários distintos, além das atividades extras-classe que cada membro tem que executar. Em termos de comunicação os problemas se deram, pois cada um estava tentando resolver uma pequena questão, então enquanto um precisava de tratar um empecilho com um determinado raciocínio o outro estava usando outro raciocínio para exercer outra tarefa. Chegando assim no último ponto que são as ideias. Diversas vezes tivemos que convencionar uma ideia para projetar o robô, pois há diferentes formas de fazer, cada uma com suas peculiaridades e diferentes implementações.
O que teria sido bom da gente saber/ ler antes de ter montado o robô
Para a realização deste trabalho, seria interessante que o grupo tivesse tido maior contato com formas de montar uma base segura e estável para o robô. Este problema de instabilidade demandou diversas horas do grupo em busca da melhor construção do projeto.
Para otimizar o projeto, o poderia ter tido um contato maior com livros e documentos que abordassem este tema. O material utilizado pelo grupo foi o The Art of LEGO Design disponibilizado pelo professor. Este material gerou grandes contribuições na montagem deste robô e com o entendimento dos alunos sobre o tema.
Pontos a melhorar
O grupo acredita que seria interessante buscar outras maneiras de produzir a base, de forma à tornar a base mais estável.



















