====== TRABALHO PRÁTICO 2 ====== ====== Objetivo ====== Esse trabalho prático tem por objetivo a introdução e a aplicação de sensoreamente e tratamento de informações para controle a atuação de um robô. Deve-se implementar sensores capazes de auxiliar o robô em duas tarefas, seguir uma linha escura no chão e o reconhecimento de cores de objetos. ====== Desenvolvimento ====== ===== Alterações Estruturais ===== Percebemos que para o desenvolvimento do TP2 seria necessário fazer algumas mudanças estruturais no robô, como o reforço do eixo biapoiado, que não era robusto o suficiente para suportar choques mecânicos, bem como a troca do referencial frete-traz do robô para melhor aproveitamento de espaço para fixação de sensores. {{:cursos:introrobotica:2010-2:grupo04:tp2_8.png|}} No modo de calibração o programa solicita que o usuário aproxime dos sensores blocos de diferentes cores e pressione start. O sistema determina assim as faixas de valores que serão consideradas para cada uma das seis cores disponíveis (preto, azul, verde, amarelo, marrom e vermelho) e para cada um dos leds. No modo de execução, a partir do cruzamento das informações fornecidas pelos dois leds é possível determinar a cor dos blocos. ===== Contrução dos Sensores ===== Para realizar as taferas solicitadas para o trabalho prático foi nessário a construção de alguns sensores, que têm a função de detectar e mensurar a distância entre o robô e objetos , identificar a cor dos objetos, além de detectar linha escura no solo para poder seguir trajeto formado por ela. ==== Sensor Ópto Reflexivo ==== Tais sensores são muito utilizados comercialmente em diversas aplicações como detecção de ojetos, caracterização de superfícies , medição de distâncias, construção de shaft encoders, detecção de códigos de barras. Para detectar e menssurar a distância de objetos posicionados de frete ao robô, bem como a detecção das linhas escuras no solo foi implementado no robô sensores opto-reflexivos, CHAVE OPTICA REFLEXIVA TRIANGULAR do fabricante CROMATEK. {{:cursos:introrobotica:2010-2:grupo04:tp2-1a.png|}} Para a implementação foi necessário a fazer a interface dos sensores com a handy-board. Para cada elemento do sensor, emissor e receptor, foi contruído um circuitos para interface como mostrado. {{:cursos:introrobotica:2010-2:grupo04:tp2_2.png|}} **Emissor:** Segundo o data-sheet do sensor a tensão de operação do emissor (LED1) varia entre 1,2 e 1,7V, e a corrente de operação entre 20 e 100mA. Senso assim analisando a malha do emissor foi dimensionado o resistor R1 do circuito apresentado.Foi escolhido um resistor de 100R por ser um valor comercial e estar centralizado dentro da faixa calculada para R1. **Receptor:** Conforme apresentado no circuito o receptor (Q1) teve um de seus terminais conectado no barramento de terra e outro no terminal V sens da handy-board, que é uma entrada analógica do circuito controlador do robô. **Implementação Física:** Para implementação fisica soldamos os terminais de terra do emissor e do receptor em um mesmo condutor. No terminal do emissor foi soldado um condutor com a resistência R1 em série, e no terminal de sinal do receptor foi soldado um condutor sem associação de resistências. Todos as conecções foram isoladas com tubos termoretráteis e conectadas com barramento de pinos para facilitar a ligação no barramento da handy-board. Para facilitar a organização dos sensores padronizamos os fios condutores conforme mostrado: {{:cursos:introrobotica:2010-2:grupo04:tp2_4.png|}} As chaves ópticas foram posicionadas no robô de acordo com a sua função, conforme ilustrado na figura abaixo: {{:cursos:introrobotica:2010-2:grupo04:tp2_5.png|}} ==== Sensor de Cores ==== Para a implementação do sensor para detecção de cores, utilizou-se se um LDR (Light Dependent Resistor), que é um tipo de resistor cuja resistência varia conforme a intensidade de radiação do expectro visível que incide sobre ele. Utilizando dessa caracteristica do LDR e do princípio de que os corpos de cores diferentes absorvem certas faixas de onda do espéctro visível e refletem as outras, pensamos em um sensor RGB, que emitiria feixes de luz dentro de faixas específicas do expéctro de luz visível (vermelho, verde e azul). Uma vez controlada a emissão dos feixes de luz, e medindo e recepção da intensidade luminosa do LDR conseguiríamos então inferir a cor do objeto posicionado de frente ao sensor. Fazendos testes com o senso ainda na forma de protótipo , e sem nenhuma isolação contra a influencia da luz ambiente, podemos adquirir os dados mostrados abaixo: ^ ^Led Vermelho^ Led Azul^ Led verde^ |Bloco Vermelho|20|70|47| |Bloco Verde|65|60|23| |Bloco Azul|50|40|32| |Bloco Amarelo|20|44|17| Analisando os dados chegamos a conclusão que não seria necessário implementar um sensor RGB uma vez que o sensor respoderia muito bem mesmo que fosse um sensor do tipo RB. Sendo assim implementamos o sensor utilizando um LDR, conectado em uma entrada analógica da handy-board, e dois LED (vermelho e azul) que foram conectados na porta SPI, configurada como saída digital, para que pudessemos controlar a emissão dos feixes de luz. A montagem do sensor foi feita em uma matriz de contatos, na qual os componentes foram inseridos e soldados para que tivessemos um posicionamento estável dos mesmo. A matriz de contatos foi encoberta por blocos legos da cor preta, de forma a possibilitar a montagem do sensor no robô e a proteção do LDR contra a influencia da luz ambiente, uma vez que o bloco a ser análisado ocuparia toda a abertura frontal do sensor impedindo que feixes de luz oriundos da luz ambiente incidissem sobre o LDR. {{:cursos:introrobotica:2010-2:grupo04:tp2_6a.png|}} ===== Aquisição de Dados dos Sensores ===== Foram adquiridos dados dos sensores para que pudéssemos fazer análise dos dados obtidos. Tal análise encontra-se no Relatório em versão PDF. ===== Programação ===== O programa desenvolvido para a Handy Board conta com um menu de funções e programas para a execução das atividades do TP1 (Desenhar um círculo e um quadrado) e as funções do TP2 (Seguir linha e identificar cores). As opções podem ser selecionadas girando o potenciômetro e confirmando as escolhas através do botão start. O botão stop retorna ao menu inicial ou cancela a função em execução. As funções do TP2 apresentam dois modos cada sendo um para calibração e um para execução. No modo de calibração da função de seguir linha o programa solicita ao usuário que posicione os sensores opto fora da linha e pressione start para realizar a identificação do solo. Este valor é gravado em uma variável global e determina a separação entre os valores que serão considerados piso normal e linha. No modo de execução o robô se movimenta seguindo a trajetória marcada no piso utilizando um fator de correção fixo na velocidade de cada uma das rodas caso o sensor detecte a linha. Na função de identificação de cores os dois leds coloridos são acionados alternadamente para identificar o bloco que se encontra a frente do robô conforme mostrado na Figura 5. Este modo de identificação foi utilizado ao invés da identificação utilizando apenas um led colorido para aumentar a confiabilidade do processo. {{:cursos:introrobotica:2010-2:grupo04:tp2_9.png|}} No modo de calibração o programa solicita que o usuário aproxime dos sensores blocos de diferentes cores e pressione start. O sistema determina assim as faixas de valores que serão consideradas para cada uma das seis cores disponíveis (preto, azul, verde, amarelo, marrom e vermelho) e para cada um dos leds. No modo de execução, a partir do cruzamento das informações fornecidas pelos dois leds é possível determinar a cor dos blocos. ===== Conclusão ===== AS duas tarefas do TP2 foram realizadas com sucesso, o robô for capaz de identificar todos os 6 blocos disponíveis no laboratório,de forma bem confiável. A função de seguir a trilha escura do campo foi executada de forma bem pragmática, o robô somente seguia linhas retas e quando identificava o fim da linha ou uma curva parava a sua trajetória. Concluímos que o TP2 foi bem sucedido, todas as funcionalidades requisitadas foram implementadas com resultados finais satisfatórios. ==== ANEXO ==== Em anexo cópia do relatório em formato PDF e código do robô {{:cursos:introrobotica:2010-2:grupo04:tp2_robotica-_hummer.pdf|}} {{:cursos:introrobotica:2010-2:grupo04:prog_tp2.rar|}}