Tabela de conteúdos
Sensores
Introdução
O objetivo do trabalho é utilizar os sensores em um robô móvel para que seja capaz de se movimentar por conta própria em uma linha escura pré-determinada. Além disso, ele também deve ser capaz de identificar cores de blocos coloridos. Para a execução do projeto foram utilizados as peças do kit de LEGO e a HandyBoard, dois motores, 3 LEDs, 1 sensor óptico reflexivo e um 1 sensor LDR.
Construção
Primeiramente foi necessário melhorar a construção e a eficiência do robô. Tentamos diminuir sua altura, porém sem sucesso devido ao pouco espaço que sobraria para os motores. Para aumentar sua velocidade diminuímos a redução utilizada sem grande perda de estabilidade. Posteriormente substituímos os LEDs por LEDs de alto brilho, fortalecemos a construção dos seus cabos, assim como dos sensores, utilizando tubos termo retráteis sempre que possível.
Depois começamos as instalações dos sensores que seriam utilizados. Os LEDs e o LDR foram instalados na parte dianteira inferior do robô para a identificação das cores dos blocos. O termo retrátil foi utilizado como aparato para evitar ao máximo que a luz ambiente interferisse na leitura do sensor.
A identificação de posição do robô foi feita utilizando um único sensor óptico reflexivo instalado ao lado do sensor LDR, direcionado para baixo.
Tarefas
Avaliação Experimental
Para avaliar a qualidade do sinal em relação à distancia, realizamos medições com o sensor óptico reflexivo de 3 blocos em 4 diferentes distancias, 5 mm, 10 mm, 15 mm e 20mm para cada cor. Cada medida foi realizada 10 vezes num intervalo de 5 segundos. O gráfico relacionado ao sinal medido com a distância do sensor aos blocos está apresentado a seguir:
O erro do sensor também foi nulo, realizando medições idênticas durante todos os 5 segundos para todos os blocos e distâncias. Como é possível notar, para todas as cores, foram obtidos valores quase iguais. Talvez para valores menores que 5mm fosse possível encontrar um diferença significativa nos valores, no entanto, para distâncias tão pequenas é impossível realizar medidas confiáveis já que não tem como saber se os blocos foram colocados em distâncias iguais. Por isso é possível perceber que o sensor óptico-reflexivo não é o ideal para realizar as medidas das cores.
Detecção de cores
Para o robô identificar as cores dos objetos, primeiramente realizávamos uma calibração com um bloco branco para poder realizar correções caso uma cor tivesse uma captação maior que as outra. Para isso eram acesos um LED de cada vez, e medido o valor identificado pelo LDR.
Depois da calbração, com o bloco na frente do sensor, seria realizada a medição. Primeiro mediamos o valor do LDR sem nenhum LED aceso, para que depois pudessemos remover esse valor (que chamamos de interferência) das medições. Depois os LEDs eram ligados um de cada vez, e a cor (vermelho, verde ou azul) que tivesse a maior medição seria a cor do objeto. No entanto, utilizamos uma margem de 10% dos valores, ou seja, essa cor só seria identificada se ele tivesse um valor 10% maior que as outras. Caso houvesse alguma cor que estivesse próxima da cor mais alta, o bloco identificado seria da fusão dessas cores (por exemplo amarelo, caso os valores de vermelho e verde estivessem próximos). Se todos os valores estivessem próximos dentro dessa margem de 10%, o bloco era considerado preto.
Line Following
Para que o robô pudesse seguir a linha, foram realizadas medidas com o sensor óptico reflexivo para descobrir quais eram os valores das cores branca e preta. Como esses valores poderiam variar, criamos uma função de calibragem que se adequaria a iluminação do ambiente. Para calibrá-lo basta executá-la e colocar ele em cima da parte branca e depois da preta para ele realizar as medidas. Com esses valores, era possível saber quando o robô se encontrava dentro da linha. Como nos utilizamos somente um sensor óptico reflexivo, as opções de movimentação eram bastante limitadas, já que era impossível saber para qual lado seria necessário virar. Decidimos fazer o robô andar até atingir o fim da linha preta, e, ao atingir a parte branca, girar até voltar a linha. Ele repetiria esse processo, alternando o sentido do giro toda vez, realizando um movimento de “zigue zague”. O movimento oscilatório do robô sobre a linha foi bastante eficiente, seguindo a linha com sucesso. Como exemplo, um vídeo da execução do movimento.
Para evitar a colisão do robô com as paredes do circuito, eram feitas medições constantes da interferência que o LDR capitava. Caso fosse baixa ele estaria muito próximo a algo e então tentaria dar ré e girar pro outro lado. Como exemplo, um vídeo da detecção de colisão.
Desafios e dificuldades
Já que utilizamos apenas um sensor óptico reflexivo o movimento do robô ficou bastante limitado e com poucas possibilidades de otimização, pois era impossível saber de qual lado estávamos saindo para poder realizar uma correção mas inteligente. A descarga rápida da bateria tornava a troca dos valores para o motor andar em linha reta tediosa e frequente.
Conclusão
Conseguimos completar as tarefas propostas. Conseguimos compreender e utilizar eficiente os sensores com a handyboard. No entando não utilizamos sensores suficientes para realizar as tarefas de forma mais inteligente.



