PROJETO ROBÔ

 

Equipe:

Dennis Carnelossi Furlaneto

Guilherme Spyra Gubert

Hood Wilson Gusso Silva

Vídeo

 

1. Definição da equipe e escopo do projeto

 

A equipe, composta por três alunos de Engenharia de Computação, da Pontifícia Universidade Católica do Paraná, 6º Período, terá os seguintes integrantes: Dennis Carnelossi Furlaneto, Guilherme Spyra Gubert e Hood Wilson Gusso Silva.

O grupo de alunos em questão implementará um robô móvel autônomo, não conectado ao computador (devendo este ser microcontrolado) que, baseando seu funcionamento em sensores, deverá solucionar pelo menos um dos problemas propostos. São eles:

*      Seguidor de Linha

*      Sair de um Labirinto

*      Detector de Buraco

*      Robô que se alimenta

*      Seguidor de Luz

      A implementação que será feita por este grupo será a de um robô seguidor de linha e que desvia de obstáculos. Através dos sensores, este robô deverá detectar o grau de absorção da luz emitida através dos sensores e, com isso, detectar se ele de fato está seguindo a linha ou indo para a superfície que absorve ou reflete mais a luz emitida pelo  emissor de infravermelho. Mais detalhes a respeito da parte mecânica e eletrônica será dado mais adiante.

A escolha por este projeto em específico dependeu única e exclusivamente do interesse dos alunos por este.

Em primeira instância, o grupo decidiu por fazer o robô movimentar-se através de esteiras, por, além de achar mais conveniente, a implementação deste, tanto pela parte do projeto eletrônico como pela parte do software, mais simples e eficaz.

 

2. Projeto mecânico preliminar

 

         Para a realização do projeto robô, a equipe decidiu utilizar uma estrutura mecânica existente no mercado, pois o desenvolvimento de uma nova estrutura demandaria muito tempo. Por esse motivo, a equipe adotou uma estrutura com esteiras para a movimentação, as quais teriam torque vindo de dois motores DC de 3 Volts, ligados às esteiras através de caixas de redução.

            Com a intenção de evitar problemas posteriores, foram adquiridas duas estruturas idênticas pela equipe, sendo que em caso de defeito apresentado, teremos peças de reposição. Por esse motivo não foram apresentadas alternativas para os motores utilizados nem para a estrutura mecânica em geral. Além disso, a equipe possui certa experiência no trabalho com motores DC, sendo por isso a nossa escolha definitiva. A foto dessa estrutura utilizada está a seguir:

 

Figura 1: Estrutura mecânica utilizada.

 

            A verificação da posição do robô na pista será feita através de dois sensores óticos, os quais podem ser um par, LED IR e fototransistor, ou LED IR e receptor IR. A preferência da equipe é de utilizar a primeira opção, porém caso não seja obtido sucesso, será feita a tentativa com a segunda. Ainda existe a última possibilidade, que seria a substituição do LED IR por um LED padrão, se o trabalho com infravermelho gerar resultados não satisfatórios.

            A idéia inicial é fixar os sensores na parte de baixo do robô, através de uma abertura que deverá ser feita na estrutura. A distância do sensores até a pista de prova não preocupa, pois a altura da base da estrutura até o chão não ultrapassa dois centímetros.

 

 

3. Projeto da pista de prova

 

A pista de prova idealizada pela equipe foi um trajeto, provavelmente em cor preta, em uma superfície qualquer branca. Esta superfície, pelo menos por enquanto, deverá ser plana e lisa.

            A linha deverá ser contínua, para não termos a possibilidade de o robô não conseguir voltar para o trajeto. Eventualmente, uma rotina poderá ser implementada para tratar este caso excepcional.

            Em primeira instância, também não teremos qualquer tipo de obstáculos na pista. Eventualmente, para incrementar a pista, poderemos, por exemplo, utilizar outros tons de cores em alguns trechos do caminho que funcionariam como obstáculo.

            O trecho de cor escura (ou clara, o que dependerá do projeto eletrônico e da implementação do software) poderá ser feita tanto em uma plataforma quanto em uma superfície sem altura alguma como uma folha de cartolina ou o piso.

            O caminho a ser seguido pelo robô será sinuoso, como, por exemplo, mostra a figura abaixo:

           

Figura 2: Exemplo do caminho a ser seguido pelo robô. “Pista de prova”

 

4. Projeto dos sensores

 

Os sensores utilizados no projeto desenvolvido são de natureza ótica, utilizando diodos infravermelho. O projeto dos sensores foi baseado quase que inteiramente num projeto fornecido pelo professor da disciplina, sendo que apenas alguns valores de resistores foram modificados.

            Os sensores são microcontrolados através de um PIC 12F675, o qual tem por função digitalizar o sinal recebido do par led infravermelho e foto-transistor. Além disso, o software contido no PIC, minimiza interferências da iluminação do ambiente onde o sensor está localizado, fazendo com que o sensor possa trabalhar em ambientes de luminosidade variada sem nenhuma adaptação física. O diagrama do circuito bem como o diagrama da placa de circuito impresso estão logo a seguir:

 

 

Figura 3: circuito eletrônico dos sensores.

 

Figura 4: diagrama da placa de circuito impresso, primeira parte.

 

Figura 5: diagrama da placa de circuito impresso, segunda parte.

 

 

            A placa de circuito impresso utilizada para os sensores, será dividida em duas partes, como pode ser observado nas figuras dois e três. O motivo disso, é o isolamento em uma placa dos leds infravermelho e dos foto-transistores, para que seu posicionamento na estrutura mecânica seja facilitado. As dimensões aproximadas das placas serão 50mm por 35mm para o circuito da figura dois, e 25mm por 25mm para o circuito da figura três.

            Com a intenção da equipe de possibilitar ao robô a detecção e desvio de obstáculos, será necessário o desenvolvimento de dois circuitos controladores de sensores, já que serão utilizados quatro sensores de proximidade.

            Após essa definição dos sensores utilizados, foram realizados os testes exigidos, sendo que os resultados obtidos bem como fotos desses experimentos estão nos próximos parágrafos. A única observação a ser feita é de que os testes foram realizados com o circuito montado no protoboard, pois ainda não haviam sido montadas as placas de circuito impresso definitivas para o projeto.

            Primeiramente, foi feito o teste do funcionamento do sensor. Para isso, foi utilizado uma folha de papel branco, com uma faixa de plástico fosco preto, simulando a pista de prova utilizada. O resultado foi satisfatório, uma vez que o circuito funcionou perfeitamente, sendo necessário apenas o ajuste da inclinação do foto-transistor. A seguir estão as fotos da equipe realizando o teste:

Figura 6: circuito montado para testes e fragmento de pista de prova.

 

Figura 7: teste do circuito. Na esquerda houve reflexão e na direita não houve.

 

O segundo teste a ser realizado, foi a medição do tempo de resposta do sensor. Para isso, primeiramente foi colocado no led infravermelho uma grande freqüência. Então foi colocada a ponta de prova do osciloscópio no circuito receptor que contém o foto-transistor. Com isso, foi possível verificar a existência de um tempo de resposta não ideal do sensor, cujo valor foi de aproximadamente 140μs. A foto com o formato de onda obtido no osciloscópio está logo a seguir:

 

Figura 8: teste do tempo de resposta. Os sinais de entrada e saída estão em cima e em baixo, respectivamente.

 

            O último teste realizado foi o consumo de energia elétrica pelo sensor. Foram obtidos valores diferentes para quando o circuito detectava a pista branca da pista preta já que nesse segundo caso, o led da saída do circuito acendia, aumentando assim o consumo de energia elétrica. Os valores de corrente obtidos (para apenas um sensor e uma saída) para pista branca e preta foram respectivamente, 7,03mA e 11,04mA. Uma foto mostrando o resultado obtido com a saída desligada está logo a seguir:

 

Figura 9: teste de consumo de energia com a saída desligada.

           

Para o valor total de corrente consumida por cada módulo dos sensores, foi medido o valor da corrente que circulava por cada sensor. Assim, obteve-se o valor final de 13,07mA para a saída desligada e 21,9mA, sendo essa última a corrente máxima que cada módulo do sensor pode consumir.

 

           

5. Projeto eletro-mecânico

 

A escolha da estrutura eletro-mecânica utilizada no projeto pela equipe foi realizada tomando por base as seguintes características de custo, complexidade e funcionalidade.

Como foi dito no documento sobre o projeto mecânico preliminar, a equipe decidiu por utilizar uma estrutura mecânica pronta, ao invés de desenvolver uma nova. Isso reduziu os custos e proporcionou mais tempo para o desenvolvimento das outras etapas do projeto.

O Sistema mecânico é baseado na movimentação do robô através de esteiras, com a movimentação destas feita por dois motores DC, um para cada esteira.

Nos próximos parágrafos estará uma descrição detalhada sobre a estrutura empregada no projeto.

Como foi dito, serão utilizados dois motores DC para a movimentação do robô. Foram escolhidos motores deste tipo pela facilidade em seu controle, seu baixo consumo de energia. Além disso, a equipe possui certa experiência no trabalho com esse tipo de motor, simplificando o processo de desenvolvimento.

A transmissão do torque dos motores, bem como a redução de velocidade para o aumento do torque será feita através de um sistema redutor ligado ao eixo de cada motor. Este sistema é formado basicamente por engrenagens de plástico e eixos metálicos. A equipe não possui maiores detalhes sobre esse sistema, pois veio instalado na estrutura mecânica, não exigindo assim maior estudo, uma vez que seu funcionamento adequado foi verificado. Abaixo está uma foto desse sistema de transmissão/redução.

 

Figura 10: sistema de transmissão/redução.

 

Devemos ressaltar o fato de que, como há um motor individual para cada esteira do robô, não há um eixo interligando aquelas. Se por um lado há a facilidade de controle da movimentação do robô, a equipe notou uma pequena diferença entre a velocidade dos motores, o que pode acarretar algum problema com relação á manter o robô em uma linha reta (se necessário).

Foram realizados diversos testes para verificar as características da estrutura eletro-mecânica utilizada. Esses testes verificaram: velocidade de movimentação do robô, torque e consumo de energia elétrica (motores junto com circuito de controle).

A velocidade de movimentação do robô foi medida através da relação entre uma distância percorrida pelo tempo necessário para isso. Esse teste foi feito em uma mesa comum, sendo que a distancia percorrida pelo robô foi de 80cm e o tempo total foi de aproximadamente 18s. Com isso, obteve-se uma velocidade aproximada de 4,45cm/s. A seguir está uma foto do local de realização desse experimento, juntamente com o instrumento de medida de distância (régua de 30cm).

Figura 11: teste de velocidade de movimentação.

 

O torque do robô gerado por cada um dos motores foi medido da seguinte maneira: retirou-se a esteira e amarrou-se carga de massa conhecida através de um barbante, na última roda (roda que fornece o torque). Com a carga suspensa no ar, ligou-se o motor. A carga foi trocada até o momento em que o motor não conseguia mais movimentar a roda. A massa suspensa era de aproximadamente 0,47Kg. Essa massa gerava um peso de 4,61N. Como o raio da roda que gerava o torque era de 1,2cm, o valor daquele vale 5,53N.cm.

Para o controle dos motores (etapa de potência), foi utilizado um circuito transistorizado, sendo que cada circuito contendo quatro transistores, é responsável pelo controle de um dos motores. Cada motor pode estar em um de três estados, desligado, ligado para frente ou ligado para trás. O diagrama do circuito está logo a seguir:

 

Figura 12: circuito de potência para controle de um motor.

 

Os sinais de número um e quatro devem ser ligados juntos e o mesmo deve acontecer entre os sinais dois e três. O único cuidado a ser tomado na utilização do circuito é não fornecer nível lógico um para os quatro transistores, pois estaria havendo um curto circuito na fonte de alimentação.

Os testes realizados do consumo de energia, de cada motor juntamente com seu respectivo circuito de controle, apresentaram o seguinte resultado: 246mA para o motor em funcionamento e aproximadamente 0mA para o motor em repouso, lembrando que a tensão de entrada no circuito deve ser de 3V. Deve existir uma pequena corrente circulando pelo circuito quando o motor estiver parado, porém o equipamento utilizado não conseguiu obter tal medição. A seguir está uma foto mostrando o circuito montado no protoboard para os testes e com os quatro transistores em corte.

 

Figura 13: circuito de controle dos motores.

 

A placa de circuito impresso ainda não está terminada, porém o seu diagrama está pronto e está na próxima figura. Como observação, a equipe decidiu unir os dois circuitos de controle dos motores em uma única placa de circuito impresso, para facilitar a fixação na estrutura do robô.

 

Figura 14: esquema da placa de circuito impresso para controle dos motores.

 

 

6. Projeto eletrônico do microprocessador

 

Para realizar o controle do movimento do robô desenvolvido no projeto, a equipe decidiu utilizar o microcontrolador 89S52. Além da equipe apresentar uma boa experiência no desenvolvimento de aplicações com esse controlador, este apresenta todos os recursos necessários para a sua utilização, bem como parâmetros de consumo aceitáveis.

            Como entrada, utilizaremos a porta P2, sendo que apenas os seus quatro bits menos significativos serão utilizados. Além disso, a porta P3.2 será utilizada como entrada também pois é o pino da interrupção INT0 que será aproveitado no software desenvolvido.

            A saída para o circuito dos motores será feita a partir dos pinos P1.0 e P1.1. Entretanto devido a baixa corrente fornecida na saída do controlador, este não era capaz de saturar os transistores do circuito dos motores. Por isso, foi colocado um resistor entre a alimentação e cada um dos pinos da porta utilizada, garantindo assim, o nível de corrente desejado.

            O circuito que controla o reset, tem duas funções: ele é um power-on-reset e permite que o programa seja reinicializado a partir de um push-button. Com isso, o robô poderá iniciar o seu funcionamento automaticamente ao ser ligado, e ainda poderá ser reiniciado caso seja necessário a qualquer momento.

             A equipe verificou que para altas freqüências, o robô funciona perfeitamente. Por esse motivo, o clock do controlador será de 11,052MHz e será gerado através de um cristal oscilador de quartzo. O robô havia funcionado para um clock de alguns kilohertz, porém, como a equipe já possuía o cristal oscilador mencionado, e este apresentou bom funcionamento, será utilizado.

            Como recurso interno do processador, apenas a interrupção INT0 será utilizada, sendo que esta deverá ser configurada para funcionar por rampa ao invés de nível. A sua função será de executar uma rotina especial quando da detecção de um obstáculo frontal na pista. Dessa maneira será garantido o tratamento imediato de tal obstáculo.

            O diagrama completo do circuito do microprocessador está logo a seguir:

Figura 15: diagrama do circuito do microprocessador.

 

            Por último, a equipe montou o circuito em um protoboard para verificar o seu funcionamento, e após ter obtido sucesso, realizamos a medição de corrente consumida pelo módulo. O valor medido foi de aproximadamente 31,71mA, que, segundo a espectativa da equipe, é um baixo consumo, sendo portanto, aceitável.

           

7. Projeto do sistema de alimentação

 

Os elementos que serão utilizados para a alimentação embarcada do robô serão pilhas de alta capacidade de fornecimento de corrente, não alcalinas e recarregáveis.

 

Figura 16: Fonte de energia que será utilizada pela equipe. Pilha recarregável.

 

Serão utilizadas seis destas pilhas na alimentação do robô, carga esta que será utilizada tanto para alimentação dos motores quanto para os circuitos dos sensores e do microprocessador 89S52.

Cada pilha tem capacidade para fornecer 2,1Ah e, embora o valor da tensão nominal na pilha esteja como 1,2V, a medição indicou que as pilhas fornecem aproximadamente 1,5V.

 

 

Utilizaremos seis pilhas para a alimentação dos circuitos e dos motores. Eventualmente, caso tenhamos algum contratempo com o fornecimento de corrente, poderemos utilizar oito pilhas, quatro em paralelo com outras quatro.

Em função de estabilizar a tensão contínua em 5V (tensão necessária tanto para o módulo dos motores quanto para o módulo do microprocessador) utilizamos um regulador de tensão de 5V, componente através do qual se consegue uma tensão de saída de 5V com uma entrada de 5V ou maior.

 

 

 

 

Figura 17: Diagrama do Circuito de alimentação

 

Apesar da capacidade de fornecimento das pilhas serem de 2,1A, a corrente que entra no circuito é, de fato, menor ou igual à 1,5A, devido a limitações do próprio regulador de tensão.

Vale lembrar que foram postas duas fontes em séria para ressaltar o fato de os circuitos dos motores serem alimentados com 3V, e não os 5V que saem do regulador.

            Foram tiradas medidas do valor de corrente consumido pelo sistema com o robô em repouso e ativo.

 

Figura 18: Robô Ativo. Medição da corrente.

 

 

 

 

O valor da medição no multímetro é de, aproximadamente, 52mA. Este valor é toda a corrente consumida por todos os módulos implementados até agora. Como o módulo do sensor que será utilizado para o desvio de objetos ainda não foi contabilizado, este ainda não é o valor da corrente total.

Porém, como a capacidade de fornecimento de corrente de nossa fonte é de aproximadamente 1,5 A, não são esperados problemas quanto a alimentação.

            Neste valor não foi contabilizado o consumo de corrente dos motores que, juntos, consomem aproximadamente 400mA.

 

Figura 19: Robô desativado. Medição da corrente.

 

O valor da medição no multímetro é de, aproximadamente, 31.57mA.

            Como a fonte de alimentação será a mesma para quase todos os circuitos, aqueles serão alimentados com o valor de tensão de output do regulador de tensão, ou seja, 5V. A única exceção a regra é o circuito dos motores, que será alimentado com 3V obtidos diretamente de 2 das pilhas.

            Os componentes que nos levaram a adotar o valor base de 5V para a alimentação foram principalmente os micros controladores, os quais são muito sensíveis com relação a alimentação.

 

 

8. Fluxograma do software embarcado

 

O software embarcado foi desenvolvido pela equipe com o objetivo de solucionar os dois problemas propostos anteriormente, fazer com que o robô siga linha e desvie de obstáculos frontais.

            O programa é constituído da seguinte forma: o programa principal é o responsável por fazer o robô seguir linha, enquanto que uma rotina de tratamento de interrupção, chamada quando ocorre uma rampa descendente no pino INT0, fica responsável por realizar o desvio do obstáculo assim como o retorno do robô à pista.

            A função de seguir linha é simples, sendo que quando o programa detecta a linha preta em algum dos sensores inferiores, altera o movimento do robô para ir na mesma direção  em que foi detectada essa linha. Caso os dois sensores estejam fora da linha, ou dentro da linha, nenhuma atitude é tomada e o robô continua a executar o seu movimento atual. Essa implementação garante que o robô seja capaz de executar curvas cujos raios são muito pequenos, pois caso o robô saia da trajetória correta, aquele fica capaz de retornar à pista mais à frente.

            A seguir está o fluxograma da rotina seguidora de linha:

Figura 20: Fluxograma da rotina seguidora de linha.

            Para realizar o desvio de obstáculo, foi utilizada uma rotina de tratamento de interrupção, como foi dito anteriormente.  Essa rotina faz com que o robô inicie o desvio girando para a direita enquanto o obstáculo estiver à sua frente ou ao seu lado esquerdo. Quando essas condições forem falsas, se iniciará a próxima etapa de verificação. O robô então deve virar à direita se detectar o objeto à esquerda, ou virar à esquerda em caso contrário. A cada laço de repetição onde é feita essa verificação também são analisadas outras duas condições. Verifica-se novamente se há um obstáculo à frente (em caso afirmativo volta à primeira verificação da rti) e verifica se voltou à linha com o sensor inferior direito (em caso afirmativo, volta ao programa seguidor de linha).

Figura 21: Fluxograma da rotina de desvio de obstáculo.

 

 

9. Relatório final

 

Após o término bem sucedido das etapas anteriores do projeto como pode ser visto nos relatórios anteriores, foi realizada a montagem efetiva das placas de circuito impresso bem como a instalação dos sensores na estrutura mecânica do robô. Na etapa de montagem das placas, foram encontrados alguns problemas. Vale destacar principalmente o erro de projeto na placa dos sensores, o qual ocasionou o dano permanente de alguns componentes da placa, exigindo assim, reposição desses.

Além disso, foi alterado o projeto do circuito controlador dos motores, já que foi percebida a não necessidade da reversão desses motores para o correto funcionamento do projeto. Assim, cada motor pode estar em apenas dois estados, em repouso ou fazendo o robô se movimentar para a frente.

Para a instalação dos sensores, foi necessário um trabalho de certa forma exaustivo de posicionamento até que a distância e ângulos ideais fossem obtidos. Excluindo o tempo que foi demandado para essa etapa, não foram encontrados mais problemas.

O desenvolvimento do software foi feito sem grandes problemas, sendo que a rotina principal (seguir linha) não necessitou nenhum tipo de alteração durante os testes já que seu funcionamento foi o esperado. Entretanto, a rotina de interrupção responsável pelo desvio de obstáculos, necessitou de algumas alterações que se tornaram evidentes quando da realização dos testes. Quando estes foram feitos, o robô não retornava à linha após o desvio do obstáculo, por isso foi alterada a condição de verificação para que funcionasse corretamente. Essa alteração provocou o imediato funcionamento que estava sendo esperado, não restando mais alterações a serem realizadas.

A seguir estão algumas fotos do projeto após concluído:

Figura 22: robô percorrendo a pista de prova.

 

Figura 23: imagem frontal e lateral do robô, respectivamente.

 

Figura 24: imagem superior do robô.

 

Figura 25: imagem inferior do robô.