Trabalho Prático 2
O objetivo deste trabalho prático é familiarizar o aluno com sensores, sua aplicação e utilidade através da construção, avaliação e processamento dos sinais medidos. Após isso, esses sinais serão processados e utilizados com o propósito de auxiliar o robô nas suas tarefas.
Objetivos
O robô deve ser capaz de:
- Localização. Utilizando o sensor diferencial, o robô deverá demonstrar que sabe localizar-se e mover-se em direção à fonte de luz especificada no menu (selecionar polarização desejada) a partir de qualquer ponto do campo;
- Seguir linha. O robô deverá demonstrar que consegue seguir linhas marcadas no campo de competição. Para isso deverá utilizar sensor(es) óptico(s);
- Utilizando o sensor de identificação de blocos, o robô deverá locomover-se seguindo uma das linhas pretas da mesa de competição no laboratório sobre a qual estarão blocos de isopor coloridos. O robô tomará ações com base na cor do bloco identificado. A ação correspondente ao bloco será selecionada no menu. Bloco Azul → vire à direita 90 graus; Bloco Amarelo → vire à esquerda 90 graus; Bloco Vermelho → Pare; Bloco Verde → Siga em frente por X segundos (O valor de X deverá poder ser ajustado no menu).
Desenvolvimento do Robo
Construção de Sensores Ópticos Ativos
Nesta etapa, optamos por construir sensores ópticos ativos a partir de pares led/LDR(Light Dependent Resistor). Os sensores responsáveis pela localização foram constituídos de LDR+Polarizador de forma que os polarizadores estejam defasados de 90º, permitindo que um sensor seja sempre mais sensível a determinada lâmpada polarizada(presente nas extremidades do campo de competição) do que o outro.
Os sensor responsável pela identificação das cores consiste de um LDR unido à quatro LEDs: vermelho, amarelo, azul e verde. Isso permite uma maior exatidão na determinação das cores dos blocos, já que pressupõe-se que o bloco verde, por exemplo, reflita mais a luz verde do que a luz das outras cores.
Já para a detecção das linhas marcadas no campo de competição foram utilizadas duas montagens. A primeira contém dois LDRs e dois LEDs brancos. A segunda utiliza um sensor pronto, constituído de um emissor infravermelho e um receptor responsável pela captação do sinal.
Caracterização do sensor
Nesta etapa, colocamos o bloco de cor verde a uma distância de cerca de 3mm do sensor e, mantendo as condições de iluminação constantes, adquirimos dados do sensor por cerca de 10 segundos. Obtivemos o seguinte gráfico:
Removendo a caixa de papelão que mantinha as condições de iluminação constantes, efetuamos um novo teste e obtivemos o seguinte gráfico:
A influência da variação da luz ambiente altera a qualidade das medições e para isso utilizamos tubos de termo retráteis fixados à frente dos LDRs na tentativa de “isolar” o sensor destas perturbações não desejadas.
Repetindo os testes com os motores acionados, obtivemos os seguintes resultados:
Observamos que o movimento dos motores alterou as medidas fornecidas pelo sensor, o que comprova o efeito da perturbação introduzida pelo motor.
Influência da distância e cor do objeto
Colocamos o bloco colorido a 3 distâncias diferentes: 1cm, 1.5cm e 2cm. O erro médio entre a medida fornecida pelo sensor e o valor médio calculado anteriormente para a distância 3mm são visualizados nos gráficos seguintes:
A partir dos vários testes realizados pudemos definir uma distância “ótima” para a determinação das cores dos blocos. Para todos os blocos essa distância foi d = 3mm. A tabela abaixo resume o comportamento do sensor nesse caso:
Sensores diferenciais
Utilizando um LDR, conectamos este sensor a uma das portas analógicas da Handy Board e observamos a variação da leitura do sensor relacionada à qualidade da luz externa.
Para o sensor que fará a localização do robô no campo, construímos um sensor diferencial com 2 LDRs. Cada LDR foi coberto por um tubo de termo retrátil contendo um polarizador na extremidade. A orientação destes polarizadores foi ajustada de forma a obter a melhor medição para cada uma das fontes de luz polarizada presentes no campo de competição
Localização
Para executar a tarefa de localização em relação às luzes polarizadas, utilizamos o seguinte princípio: o robô gira 360º e registra o maior valor lido (ou menor dependendo da polaridade da luz de destino). Após um giro completo, o robô volta até o ponto da leitura de interesse e realiza um movimento de translação na direção da luz polarizada. Durante o movimento de translação, o valor lido pelo sensor é analisado. Caso sua intensidade sofra uma grande variação, o robô interrompe o movimento de translação e inicia novamente o processo, ou seja, gira 360º registrando o maior valor lido.
Detecção das linhas marcadas
Para executar a tarefa de seguir reta utilizamos três sensores. Dois na parte traseira do robô são responsáveis por identificar o erro no trajeto do robô e o sentido em que ocorreu esse erro. O sensor dianteiro é responsável por realocar o robô na linha caso os outros sensores detectem o erro na trajetória. Além disso, o sensor dianteiro é responsável pela orientação do robô em trajetos curvilíneos.
Identificação de cores
A execução dessa tarefa foi feita da seguinte maneira. Foi criado um algoritmo de calibração do sensor. Insere-se o bloco da cor de interesse na frente do sensor e executa-se o algoritmo. Então são feitas várias medidas e extraída a média dos valores (os valores iniciais são descartados porque são sobrecarregados de ruído). Esse valor é registrado como uma identificação para aquela cor. Para identificar as cores, o sensor faz várias medidas e analisa o erro médio em relação aos valores calibrados. A cor visualizada é, portanto, aquela cujo erro médio possui a menor amplitude.
Conclusões
Este trabalho nos permitiu uma maior familiarização com os sensores, suas características e detalhes de instalação. Um dos maiores problemas foi a escolha dos sensores, sua construção no robô e respectiva calibração, que era influenciada por detalhes do ambiente, como luminosidade e distância dos objetos. Apesar disso, foi interessante analisar como o processo de identificar cores/linha preta alterava a saída dos sensores, assim como a variabilidade das medições fornecidas, o que nos permitiu concluir que não é possível confiar em somente uma medição do sensor. Várias medidas devem ser levadas em conta e manipuladas de forma que o robô tome as decisões de forma correta.