Trabalho Prático 2
Link para o relatório do trabalho 2 :
tprob_2.pdf
Objetivo
O Objetivo do primeiro trabalho prático foi a familiarização dos alunos com as principais características do ambientes de programação Interactive C, por meio da utilização de sensores, avaliando montagem e processamento dos sinais medidos.
Construção do robô
Nome do ROBO: CEGUETA VX-2
Neste trabalho, utilizamos a estrutura do primeiro robô adicionando apenas as melhorias que foram sugeridas pelo professor, como apoiar duplamente o eixo dos motores e reforçar sua estrutura.
Foi definido que para realizar as tarefas propostas, utilizariamos três sensores LDR e um LED.
Dois sensores LDR foram colocados a frente do robô para que ele identifique as bordas da linha preta e possa corrigir o traçado. O outro sensor LDR foi colocado no lado de trás do robô junto de um LED para que ele possa distinguir as cores. O LED foi necessário para reduzir a interferência da iluminação ambiente na tarefa de identificar as cores.
(Os motores com o eixo duplamente apoiado)
(Os dois sensores LDR que foram colocados para identificar a faixa preta)
(Adição do terceiro sensor para identificar cores)
(O robô em seus estágios finais)
Programação da HandyBoard
Como já havíamos desenvolvido uma interface interativa para a calibração do primeiro trabalho, não precisamos de desenvolver novamente a interface, apenas a adaptamos para as funções do segundo trabalho.
Desenvolvemos inicialmente o trecho do código para fazer as medições pedidas nas tarefas, e utilizamos a biblioteca encontrada no site da disciplina e o programa hyperterminal para capturar os dados armazenados na handyboard.
Após todas as medidas tomadas, desenvolvemos o trecho do código que trata de fazer o robô seguir a linha preta. Na implementação, consideramos que o robô sempre iniciaria já alinhado com a faixa preta, por isso a correção que ele faz é bem suave. Como descobrimos durante a execução do trabalho, caso o robô não inicie alinhado com a faixa preta, ele não consegue se corrigir a tempo e ele sai da linha preta.
O último método implementado é o método de reconhecimento de cores. Para esta função inicialmente deve ser calibrar as cores no robô, após colocar um bloco colorido em frente ao sensor LDR iluminado pelo LED, o programa faz uma média durante 5 segundos, para encontrar o valor médio deste bloco. Após todos os blocos calibrados o programa tenta encontrar a cor continuamente, ele avalia a cor do bloco no momento e compara com a média de cores definido anteriormente para informar a cor do bloco atual.
Tarefas
Os resultados iniciais mostram que uma iluminação controlada diminui bastante a variação do sinal, mas ele continua inconstante.
Os testes de distância, mostram que quanto mais distante, menor o valor só sinal recebido, e quanto mais distante maior a interferência gerada pela iluminação ambiente.
(Bloco de lego com iluminação ambiente a 3mm)
(Bloco de lego com iluminação constante a 3mm)
(Bloco de lego a 6 cm de distancia)
(Bloco de lego a 10 cm de distancia)
(Bloco de lego a 16 cm de distancia)
(Bloco de lego a 20 cm de distancia)
(Bloco de lego a 24 cm de distancia)
(Bloco de lego a 32 cm de distancia)
Resultados Obtidos
O método desenvolvido para seguir a faixa preta, é capaz de corrigir a posição do robô caso ele já esteja inicialmente alinhado com a faixa preta. Caso o robô não esteja alinhado inicialmente ele não é capaz de se corrigir a tempo e os dois sensores encontram o chão branco, e neste caso os motores param.
O método desenvolvido para reconhecer cores é competente caso os blocos sejam calibrados bem próximos do sensor (1cm). E para que o robô identifique as cores corretamente eles devem estar na mesma distância em que foi realizada a calibração.
Conclusão
A conclusão que chegamos é que trabalhar com sensores é mais trabalhoso do que aparentava inicialmente. As condições da iluminação ambiente influenciam muito nos resultados, por isso para se obter os melhores resultados deve se reduzir a influência da iluminação ambiente o máximo possível.
Utilizando um LED amarelo, conseguimos reduzir a influência, mas para um reconhecimento de cores mais competente deveremos utilizar mais LEDs de cores diferentes. E para evitar com que sombras atrapalhem ao robô distinguir a faixa preta do chão branco é interessante também adicionar um LED voltado para o chão.