Grupo 4 - UaiBot Flávio Bastos Haueisen Luiz Fernando Leite Oliveira Roberto Almeida Gontijo TP 1 - Fotos {{img_20120928_103530.jpg?204x154}} {{img_20120928_103605.jpg?204x154}} {{img_20120928_103554.jpg?204x154}} {{img_20120928_103637.jpg?204x154}} {{img_20121005_173610.jpg?204x154}} {{img_20120928_113033.jpg?154x204}} {{img_20120928_113024.jpg?154x204}} {{img_20121005_173558.jpg?154x204}} {{img_20121005_173620.jpg?154x204}} No TP1 tivemos como grande problema a montagem inicial do nosso robô, decorridas do fato que o motor nunca ficava da mesma altura que as peças de lego. Após realizar alguns testes, descobrimos uma montagem que funcionou muito bem em cada eixo dos motores nós colocamos uma peça espiral que fica indiferente a variações de altura pequenas. Fizemos uma montagem para o pivô que pode ser observada na seguinte imagem: Notamos que a borracha que envolvia a peça de lego impedia o eixo de rodar por estar arrastando na hora da curva, com isso, tiramos a borracha e tivemos um melhor resultado. Para o suporte da caneta fizemos algo bem simples, em que a caneta ficava inclinda e apenas travada, se ele ficasse escrevendo durante um longo período de tempo tinhamos que dar uma forçada nela para ela voltar a escrever. {{img_20120928_103614.jpg?204x154}} **__Conhecendo os Motores__** ---- --- //[[xp.luiz@gmail.com|Luiz Fernando Leite Oliveira]] 2012/11/19 11:32// Após a montagem estar pronta fizemos testes iniciais para verificar em qual, potencia que o robô andaria em linha reta, a combinação obtida foi 73 para um motor e 70 para o outro. **__Medições de Tempo__** ---- Após o momento em que já conheciamos a potência que colocavamos em cada motor para ele andar em uma linha reta fizemos medições para ver em quanto tempo ele fazia os 30cm que eram pedidos pela descrição do TP. O resultado obtido foi: 6.3 segundos. Ao fazer várias medições com esse tempo que encontramos os erros obtidos foram: Fizemos os testes apenas com a potência que já conheciamos que fazia o nosso robô andar em linha reta. ^ Medida^ Distância(cm)^ |1 | 32,1| |2 | 31,7| |3 | 29,0| |4 | 33,4| |5 | 29,3| |6 | 31,5| | 7 | 28,3| **__Giro de 90 graus__** ---- Para fazer o nosso robô girar apenas multiplicamos por -1 a potência de uma das rodas, ou seja, passou a funcionar como 73 e -70. E fizemos novas medições de tempo para ver quando ela passava a girar os 90 graus desejados. ^Tempo(seg) ^Rotação (graus)^ |2| >>90| |1| 110| |0.9| 100| |0.7| 84| |0.8| 92| |0.78| 90(na maioria das vezes)| **__O circulo__** Ao fazer o circulo não encontramos problemas pois fizemos um calculo para, com a potencia de linha reta já calculada e o raio do circulo que teriamos que descrever, qual seria a potência para de uma das rodas para o robô fazer o cir- culo da forma desejada, e com isso, apenas medimos o tempo de um circulo completo e depois fizemos os motores ficarem ligados por esse tempo vezes três. ====== A apresentação ====== Nossos teste para fazer mais rapidamente as a trocas de tempo para o giro foram feitos com a porta que liga a handy-board ao computador ligadas. Ao chegar na apresentação o robô se comportou de forma inesperada tendo giros maiores que os de 90 graus e deslocamentos maiores que 30cm depois, descobrimos que tinha uma diferença com essa porta ligada quando a ligamos o resultado voltou a ser o esperado. ====== TP2 ====== ===== Montagem dos sensores ===== ==== Sensor de Cores ==== {{:cursos:introrobotica:2012-2:grupo04:2012-11-23_09.32.14.jpg|}} Como pode ser visto pela foto a montagem do sensor consiste em tres leds (RGB) que estão junto com um LDR, que está envolvido por um termoretractil para evitar que os raios dos três leds cheguem diretamente a ele, e essa estrutura está dentro de uma "caixa" feitas por peça de lego e atrás desta existe uma folha de papelão para que não chegasse luz por de trás do LDR. Tivemos um certo problema ao fazer essa lógica de ligar os trés leds devido a duas portas digitais de saída de nossa placa não estarem funcionando, com isso, descobrimos uma função que transformava a porta digital 9 em uma porta de saída. ==== Sensor de Linha ==== {{:cursos:introrobotica:2012-2:grupo04:2012-11-23_09.32.51.jpg|}} No começo tentamos usar uma montagem com dois sensores sendo um LDR com um led acoplado e outro sensor infra-vermelho, o que não funcionou direito. Ao conversar com outro grupo que nos emprestou outro infra-vermelho pegamos os valores e os colocamos na frente do UAIBOT. ===== A Calibração dos Sensores ===== A calibração foi primeiramente com o sensor dentro da caixa e fizemos um programa para imprimir a cada segundo o que o sensor retornava. A calibração foi feita como mostram as fotos a seguir: {{:cursos:introrobotica:2012-2:grupo04:2012-10-28_11.03.41.jpg|}} {{:cursos:introrobotica:2012-2:grupo04:2012-10-28_11.41.47.jpg|}} Dados obtidos: ^ ^Sensor Trapésio ^ LDR todos os leds acesos^ ^3 mm anteparo vermelho dentro da caixa | 11|10| | | 11|12| | |11|11| | |12|10| | |12|11| ^ ^Sensor Trapésio ^ LDR todos os leds acesos^ ^ 3 mm anteparo vermelho |9|196| | |10|201| | |10|190| | |10|194| | |10|198| ^3 mm com motor ligado anteparo vermelho |não foi notada diferença|| ^ ^Sensor Trapésio ^ LDR todos os leds acesos^ ^3 mm anteparo preto | 138| 232| | |140|232| | |139|232| | |135| 232| | |135|232| **__Cosiderações Notadas__** Foi notado que através dos sensores que os sensor infra-vermelho seria melhor para verificar as linhas pretas as quais o robô deveria seguir, e o LDR seria melhor para o sensor de isopor. ===== A Implementação ===== Após a coletagem de dados que os sensores nos retornaram fizemos a implementação do programa que iria rodar. ==== Seguir Linha Preta ==== O programa de seguir linha preta consiste em uma máquina de estados com quatro estados, considerando 1 como preto e 0 como branco o que o sensor que está localizado embaixo está medindo, temos a seguinte máquina que foi bem simples de ser implementada: {{:cursos:introrobotica:2012-2:grupo04:maquina.pdf|}} ==== Detecção de Cores ==== Para diferenciar as cores dos blocos primeiro foram feitas medições de cada bloco, com todos LEDs acesos, e com cada um aceso individualmente. Dessa maneira cada bloco tinha quatro medições. Dispondo esses dados em uma tabela extraimos a maneira mais rápida de determinar qual a cor do bloco. Com todos LEDs acessos conseguiamos determinar o maior número de blocos, e quando acontecia dúvida acendiamos somente um LED, e esse seria o que possibilitava a determinação da cor ou então que separasse os blocos em dúvida no maior número de grupos.