Trabalho Prático 3
Introdução
Nosso robô deve executar 3 tarefas neste trabalho prático. A primeira tarefa consiste em utilizar um LDR diferencial para se alinhar com a fonte de luz mais próxima presente no campo. A segunda tarefa consiste em construir um shaft encoder utilizando sensores break-beam e implementar um controlador de velocidade para o robô. A última tarefa a ser realizada será a de seguir o trajeto demarcado pelas linhas pretas utilizando para isso dois sensores óptico-reflexivos.
Tarefa 1
Para implementar a tarefa 1 utilizamos um sensor LDR diferencial polarizado. Como a resistência do LDR varia de acordo com a quantidade de luz que ele recebe, podemos saber qual lado está recebendo mais luz e quantificar a quantidade de luz medida usando programação. A tensão no sensor é dada pela equação do divisor de tensão:
Como as fontes de luz são polarizadas, precisamos colocar um filtro polarizador horizontal em frente a um dos LDRs e um vertical em frente ao outro.
Assim, conseguimos alinhar o robô com a fonte de luz de acordo com a polaridade da luz recebida, enviando os comandos certos para os motores de modo a posicionar o robô em frente à fonte de referência.
Sensor LDR diferencial polarizado na frente do robô
De acordo com nosso código, se o sinal do LDR é menor que a calibração, o robô gira para um lado e se o sinal do LDR é maior, o robô gira para o outro lado. Isso acontecia de forma satisfatória em determinados pontos do quadrado, mas não funcionava para algumas posições do robô.
Tarefa 2
Para esta tarefa, foram colocados dois sensores break beam, conforme o esquema abaixo:
Fizemos um teste com o break beam usando um led e com os demais componentes iguais aos usados para implementar o shaft encoding, em que o sensor se mostrou funcional:
Os sensores break beam foram instalados na parte inferior do robô, acompanhando o sistema de engrenagens de redução do motor para cada roda, logo o sensor era capaz de ler as rotações pelos furos de uma polia instalada no conjunto. Era necessário apenas fazer ajustes para que as rotações da polia fossem proporcionais às rotações da roda do robô, sendo necessário calcular uma nova razão de proporção, usando a circunferência da roda para se estimar a distância percorrida. Tivemos problema para realizar a leitura com os sensores e não conseguimos obter um sinal na handyboard, e por isto, infelizmente, não conseguimos implementar a estratégia de controle requerida.
Devido ao mal funcionamento dos sensores break beam após serem instalados no robô, não conseguimos implementar o algoritmo de controle de velocidade, planejado como segue:
pos=read_encoder(0); //direita
refpos= read_encoder(1); //esquerda
printf("%d %d\n",pos, refpos);
reset_encoder(0);
reset_encoder(1);
erro=(pos-refpos);
pv = kp * erro + kd * (erro - ultimoErro);
ultimoErro = erro;
vel_right= 50 - pv;
vel_left= 50 + pv;
motor(motor_right,vel_right);
motor(motor_left,vel_left);
sleep(5.0);\\
Tarefa 3
Para implementar a tarefa 3 (line-following) optamos por utilizar dois sensores óptico-reflexivos posicionados na parte de baixo do robô apontados para a mesa e capazes de diferenciar entre branco e preto(linha).
Para seguir a linha o robô iria corrigir o trajeto quando um dos sensores não estivesse mais detectando a linha. No caso do sensor da direita não detectar a linha ele iria virar levemente para a esquerda e de maneira recíproca ele iria virar para a direita no caso do sensor esquerdo não detectar a linha.
A ideia inicial era também utilizar os shaft-encoders implementados na tarefa 2 para permitir que o robô fizesse menos correções ao longo da tarefa 3, mas devido aos problemas na instalação dos break-beams isso não ocorreu.
O caminho que o robô iria percorrer seria aleatório, mas sempre seguindo uma das linhas caso tenha encontrado uma.
Construção
Foi mantida a estrutura do robô anterior, com algumas modificações que foram:
-Uma nova fixação utilizando cola quente e abraçadeira nos motores, além de remoção das fixações do motor que utilizavam fita isolante.
-Renovações nas soldas dos fios, e foram observados que cordões de solda mais grossos, embora pareçam esteticamente piores, permitem uma durabilidade maior da conexão evitando problemas de desconexão que poderiam ser imperceptíveis dentro da fita termo retrátil.
-Um novo cabeamento para aglomerar os fios, já que um problema do trabalho prático anterior era a quantidade de fios poluindo a parte de cima do LCD do robô.
-Uma nova “casa” para o sensor LDR polarizado foi colocada na altura das lâmpadas, de forma a aproveitar melhor a iluminação.
Videos do projeto






