Tabela de conteúdos
Objetivo
Este trabalho prático consistiu na realização de algumas tarefas específicas, listadas abaixo:
- Desenvolver um robô móvel capaz de realizar um determinado caminho que será selecionado através do menu. A figura abaixo mostram os caminhos que poderiam ser escolhidos através do menu de opções:
Figura 1 - Opções de caminhos para o robô executar
- Identificação de cor: O robô deveria ser capaz de identificar a cor dos blocos posicionados à sua frente (os blocos poderiam ser da cor azul, verde, vermelho ou amarelo), utilizando de um sensor LDR e três LEDs, ou um LED RGB - A cor identificada deve ser exibida na tela da handy board
- A ultima tarefa consistia na implementação de multitarefa e tomada de decisão, ou seja, o robô deve realizar duas tarefas simultaneamente, sendo elas: - Locomover-se por uma trajetória em linha reta e identificar a presença de um bloco à sua frente. O robô deverá tomar uma decisão com base na cor do bloco identificado, sendo as seguintes ações possíveis:
- Bloco Azul → vire à direita 90 graus e ande para frente;
- Bloco Amarelo → vire à esquerda 90 graus e ande para frente;
- Bloco Vermelho → gire 180 graus e ande para frente;
- Bloco Verde → pare e dê um giro de 360 graus.
- Todas as tarefas devem ser interrompidas se o robô não encontrar nenhum bloco no intervalo de 10s.
Estrutura
Para a realização das trajetórias especificadas, utilizamos dois motores, um conectado a cada roda dianteira do robô. Também utilizamos uma roda esférica na parte de trás do robo, dando maior estabilidade à ele.
Para possuirmos um maior torque, utilizamos duas caixas de redução de 243:1, uma para cada motor, mostradas na “figura 2”
Figura 2 - Caixas de redução de cada motor.
Por questões de espaço (em nossa base, não havia espaço para fixar um motor ao lado do outro), a transmissão do motor para as rodas foi construída de duas maneiras diferentes, como mostrado na figura abaixo:
Figura 3 - Roda dianteira (esquerda)
Figura 4 - Roda dianteira (direita)
Uma das nossas preocupações era posicionar a placa de forma que tornasse fácil a visualização dos valores exibidos em sua tela, além da facilidade de utilizar os botões start e stop para controlar o menu do robô. Sendo assim, optamos por criar uma pequena estrutura acima do nível dos motores para colocá-la, o que de fato resultou em grande facilidade uma para manusear a placa.
Figura 5 - Robô visto de cima (posicionamento da placa)
O último passo da estrutura consistiu em definir a posição dos LEDs e do sensor LDR.
Decidimos fixar os LEDs e o LDR na parte frontal e inferior do robô, pois assim, tanto os LEDs quanto o LDR ficariam direcionados para o centro de cada bloco. Sendo assim, fixamos o LDR e colocamos 3 LEDs ao seu redor, um azul, um verde e um vermelho.
No entanto, esta construção não foi funcional para nosso robô. O principal problema é que cada LED utilizado apresentava uma intensidade diferente do outro, sendo assim, o LDR fazia uma medição muito maior do LED mais intenso quando comparado aos outros.
Para solucionar este problema, optamos por substituir os 3 LEDs por um único LED RGB. Dessa forma, a fonte de luz estaria sempre na mesma posição, e a intensidade de cada cor seria mais uniforme.
Por fim, para melhorar a leitura do nosso sensor LDR, utilizamos fita isolante para “encapsular” o sensor, fazendo com que ele recebesse menos luz do ambiente a sua volta, “direcionando-o” para medir a luz refletida pelo bloco.

Figura 6 - LDR fixado na parte inferior do robô
Ao final do processo descrito acima, obtivemos uma estrutura estável e bem resistente.
Figura 7 - Visão frontal do robô
Figura 8 - Visão frontal do robô com LED aceso
Software
O software possui duas partes importantes neste trabalho, lidar com o sensor de modo a identificar obstáculos e controlar a execução de multitarefas permitindo a Adam mover, avaliar os sensores e manter a contagem do tempo limite.
Para o sensor foi implementado um filtro que tira média dos últimos valores lidos e uma função de atualização responsável por fazer todas as medidas e correções necessárias. As cores e obstáculos são identificados com base na diferença entre os valores lidos e a medida do ambiente obtida com todos leds apagados.
O bloco verde era identificado quando o retorno do LDR fosse maior para o led verde do que para o azul e o vermelho. O bloco azul, por sua vez, era identificado quando o retorno do LDR fosse maior para o led azul do que para os outros dois. Já o bloco vermelho e amarelo, em ambos o LDR retornava um valor alto para o led vermelho, sendo assim, quando a diferença entre o retorno para o led vermelho e para o led verde fossem próximos, o bloco era considerado amarelo, caso fossem distantes, o bloco era vermelho.
Para realização da multitarefa foi implementado um relógio com funções para ativar despertador, desativar e o seu alarme. Assim sempre que uma tarefa é identificada o alarme é desativado e sempre que ele inicia o movimento para procurar blocos o alarme é ativado novamente, sendo responsável por parar o robô quando nenhuma nova tarefa é identificada
Testes
Para a verificação do funcionamento do Adam foram realizados diversos testes. Foram testados as rotinas relativas ao percurso de uma das formas geométricas especificadas (linha reta, ida e volta, quadrado e triângulo). Erros foram relatados, como mostra os testes 1, e 2, por exemplo, nos vídeos abaixo.
Teste 1:
Teste 2:
No entanto, os erros foram corrigidos, de tal forma que tais rotinas foram realizadas com sucesso, como mostram os vídeos de teste abaixo:
Testes de acertos para linha reta, quadrado e triângulo:
Para a rotina de multitarefa, na qual o Adam deve identificar a cor e daí realizar uma determinada ação, houve alguns erros, mas o principal foi o de identificar as cores de forma correta e estável. O amarelo foi uma das cores que houve maior instabilidade, como mostra os vídeos de testes abaixo. Assim como a multitarefa sendo realizada com êxito.
Teste ao identificar o amarelo (FALHA):
Teste Multitarefa (ÊXITO)
Principais dificuldades
Após a experiência do primeiro Trabalho Prático, podemos dizer que as coisas andaram de forma mais compassada. A construção da estrutura foi feita de forma rápida e consciente, tivemos um bom resultado em resistência e estabilidade e as reduções se encaixaram bem para o tamanho e peso da estrutura.
Por ser o nosso primeiro contato com os sensores ópticos reflexivos, e por não sabermos muito bem sobre o seu comportamento e padrão, encontramos nossa maior dificuldade nessa área. Precisamos fazer muitas alterações em nossos projetos para eliminar ruídos da luz ambiente, por exemplo, criamos um encapsulamento ao redor da resistência LDR e utilizamos um led único RGB que atua de forma igual para todas as cores.
Superando esses desafios intrínsecos aos materiais, podemos dizer que conseguimos lidar bem com a tarefa proposta e entregamos um bom resultado. Tivemos algumas falhas de montagem ao utilizar materiais indevidos, que acabaram causando certa desorganização, como cola quente em excesso, mas nada que já não tenhamos a solução em mente.
