Trabalho Prático 2
Roteiro
1.5)Durante a coleta de dados não ocorreu grande variação do valor retornado pelo sensor. Num tamanho amostral de 25 leituras ao longo de 5 segundos, praticamente todos os valores retornados foram os mesmos, resultando num desvio padrão tendendo a zero.
1.6)A variação da iluminação também não acarretou em mudanças significativas da leitura do sensor.
1.8)O resultado também não foi alterado mesmo com os motores acionados. Esperávamos algum ruído devido à corrente que passava pelo motor, interferindo na leitura dos sensores, porém isso não ocorreu.
3.1)3mm
3.3)Analisando o gráfico sinalXdistância, podemos observar que à distância de 3mm há maior disparidade entre os valores retornados para cada cor. Mais perto que isso, a sensibilidade para identificação das cores começa a cair. Para distâncias maiores, a intensidade do infravermelho refletido começa a decair proporcional ao inverso do quadrado da distância.
4.2.1)Utilizando a função normalize do livro (página 84), definimos a variável MAX_LIGHT como o valor retornado pelo sensor com uma lanterna acesa em sua frente: 32. A variável MIN_LIGHT foi o valor retornado com as luzes apagadas: 238.
4.2.2)Verificamos o bom funcionamento da função normalize, conseguindo produzir resultados de 0 a 100 como previsto, apesar da variação da leitura do LDR ser maior que a do sensor IR.
4.2.3)As variáveis MIN_LIGHT e MAX_LIGHT foram definidas a partir dos valores médios retornados para as condições de luz apagada e acesa, respectivamente. O ruído do valor retornado, inerente ao sensor, pode retornar valores muito maiores ou menores que a média estabelecida. No caso de um ruído retornar um valor menor do que o estabelecido como mínimo, isso faria com que a função normalize retornasse um valor negativo. Da mesma maneira, se um ruído causasse uma leitura maior que a estipulada como máximo, a função retornaria um valor maior que 100. Para filtrar possíveis ruídos que causariam os efeitos citados acima, a função estabelece os limites de 0 a 100 nas últimas linhas do código.
4.4)Após implementada a interface, observamos que as leituras variam mesmo com a luz incidindo pelo lado de trás do LDR. Então, para melhorar a resposta no teste de seguir luz, blindamos os lados do sensor com um material opaco, barrando a luz que chega de qualquer direção menos da frente.
IR: Análise detalhada
Inúmeras medições foram feitas com ambos os sensores infravermelho recebidos. E nos dois casos a variação dos valores medidos foi inexistente ou de apenas uma unidade. Portanto, concluimos que seria redundante fazer histogramas e análises de desvio padrão das medições, pois como elas se concentraram todas em um ponto, o desvio padrão tende a zero, e o histograma se reduz a uma única coluna. A influência de iluminação externa foi mínima, provavelmente porque as janelas estavam com cortina, e a sala era iluminada por luz fluorescente. O fato do motor estar ligado também não gerou ruído nem mudança na resposta do sensor.
![]() | ![]() |
---|---|
Medições do sensor da esquerda, tiradas de 2 em 2mm (clique para aumentar) | Medições do sensor da direita, tiradas de 2 em 2mm (clique para aumentar) |
Analisando os gráficos é evidente que, após uma fase de transição entre 0 e 3mm, a resposta dos sensores passa a variar com o inverso do quadrado da distância. Também podemos concluir que os blocos verde e vermelho têm a mesma refletividade ao infravermelho, então é impossível usar essas cores no trabalho prático e obter um resultado positivo. Como esperado, o amarelo, mais claro, refletiu mais infravermelho, resultando em valores baixos na resposta do sensor, ao contrário do azul.
A partir de 3mm de distância, a leitura dos sensores começa a aumentar. A diferença entre as cores começa a diminuir, até todas convergirem para uma leitura de aproximadamente 250. Assim, deduzimos que a melhor distância para a diferenciação das cores é de 3mm, perto o bastante para haver contraste entre as medidas, e longe o bastante para não haver o efeito de transição citado anteriormente.
Código IC
Os sensores foram posicionados de forma que eles ficam fora da linha. O procedimento para segui-la foi: O robô começa andando em linha reta até que um dos sensores “veja” preto. Quando isso acontece, ele gira até que ambos sensores estejam em cima da linha preta. Desse jeito, o robô terá certeza que está perpendicular à linha. Depois ele gira novamente até que os sensores vejam branco, pois dessa maneira ele se orientará paralelamente à linha.
Uma vez em cima da linha, com a orientação correta, ele segue em frente, até que, por desvios aleatórios, um dos sensores passe por cima da linha. Nesse caso, o robô gira para o lado do sensor que percebeu o desvio, corrigindo sua rota. Se por algum motivo os dois sensores estiverem sobre a linha preta, o robô assume que está sobre uma encruzilhada, ou cruzamento em T. O grupo decidiu que, nesse caso, ele sempre pegará o caminho da direita.
Para diferenciar as cores dos blocos, foram escolhidas as cores com maior contraste: preto, azul e amarelo. Também foi montado um suporte ao redor dos sensores, para que um bloco encostado nesse suporte sempre estará na mesma distância do sensor. Quando aperta o botão START, o processador compara o valor medido com um valor pré estabelecido de cada cor. Quanto mais perto o valor medido está desse valor pré estabelecido, maior é a porcentagem de chance do bloco ser daquela cor.
Por exemplo: os valores pré estabelecidos são Preto: 240, Azul: 170, Amarelo: 120. Se o sensor retornar um valor de 130, haverá uma chance alta do bloco na frente dele ser amarelo. Uma chance menor de ser um bloco azul, e menor ainda para um bloco preto, e é isso que é escrito no visor LCD.