PROJETO ROBÔ

 

 

Vídeo

 

1.                       Equipe

 

A equipe será formada pelos seguintes alunos: Diogo D’Olivo, Gustavo Madruga e João Victor Gonçalves.

 

 

2.                       Escopo do Projeto

 

O objetivo do projeto é desenvolver um robô autônomo. Assim sendo, este deverá tomar decisões sem a intervenção do usuário e sem a necessidade de estar conectado a um dispositivo externo.

Dentre os diversos problemas propostos pelo professor, optamos pelo “Seguidor de linha”. Logo, projetaremos um robô apto a seguir uma linha qualquer no chão. Para isso, faremos uso de sensores, microcontroladores, motores, baterias e o que mais for preciso para a completa independência do robô em questão.

Logo na primeira discussão da equipe sobre como implementar o robô, fomos bem objetivos quando decidimos que a roda faria a movimentação do mesmo. Não só pela solução que esta escolha nos trará, mas como também, pela alta complexidade (principalmente mecânica) dos outros modelos propostos.

    Estaremos estudando ao longo do projeto, a possibilidade de que o robô também seja capaz de detectar falhas, sendo isto, um diferencial no nosso projeto.

 

3.                       Projeto Mecânico Preliminar

 

A idéia do corpo do robô ainda não foi definida. Porém será algo de madeira ou até mesmo de lego. A idéia é montar um robô que se sustente por roda, ainda há duas possibilidades a serem estudadas pela equipe.

A primeira seria onde o robô teria duas rodas na mesma linha reta, cada roda com um motor DC único, e uma terceira roda apenas de sustentação. Onde as rodas que possuem o motor rodariam normalmente caso esteja na direção certa, e caso chega numa borda, apenas um motor seria acionado, fazendo o robô girar em torno do seu próprio eixo, ajustando a direção do mesmo.

A segunda opção seria onde o robô tem duas rodas ligadas por um eixo, contendo um motor, que daria a força para o robô andar para frente. E uma roda na parte da frente ou na parte de trás, contendo um motor de passo, para dar a direção do robô.

Os sensores que serão usados provavelmente, serão de infravermelho, para detectar a mudança de cor na pista de prova. Um outro sensor possível seria um sensor de ultra-som, caso a proposta do robô desviar obstáculos seja aceita pela equipe. 

 

4.                       Projeto Pista de Prova

 

Como o problema que o robô irá resolver, é o de seguir uma linha de uma determinada cor, a pista de prova provavelmente será da cor branca, com a pista para o robô seguir da cor preta, medindo algo ente oito a doze centímetros de largura. O material usado provavelmente será uma cartolina branca, com a pista pintada coma tinta preta. A pista deverá medir no total algo perto de um metro e meio de comprimento por um metro de largura.

Caso a equipe obtenha sucesso na resolução do problema de desvio de obstáculo, serão colocados objetos com uma determinada altura mínima na pista de prova.

Na próxima página segue uma figura que mostra como deverá ser, mais ou menos, a pista de prova.

 

Figura 1: Figura do protótipo da pista de prova.

 

 

Figura 2: Pista de prova.

 

5.                       Projeto dos Sensores

 

Visto que o problema a ser resolvido pela equipe, é o de seguir uma linha de certa cor no chão, então foi optado pelo sensor de proximidade, ou seja, um sensor infravermelho. O sensor funciona com um LED emissor de luz infravermelho, que ao ser refletido por algum obstáculo, é detectado por um foto transistor.

O funcionamento é simples, se o robô estiver passando por uma parte onde o chão é escuro, o chão tende a absorver as ondas de infravermelho, logo o sinal recebido no receptor será fraco. Caso o chão seja claro, ele tende a refletir a onda, chegando um sinal mais forte no receptor. E dependendo do sinal, o robô tomará as devidas decisões.

Abaixo a figura mostra o LED emissor, TIL32, e do foto transistor (receptor), TIL78.

Figura 1. Foto transistor (receptor) e LED emissor.

 

6.                       Validação dos Sensores

 

6.1- Circuito Eletrônico Testado

 

O circuito montado para a validação dos sensores, foi o circuito passado pelo professor Afonso. Não foi focada a utilização correta do PIC, mas apenas a funcionalidade dos sensores, juntamente com o PIC. Para que quando não houvesse reflexão do sinal, um LED estivesse acesso, e quando houve um obstáculo para gerar a reflexão, este mesmo LED apagasse.

Figura 2. Circuito utilizado para validação do sensor.

 

A validação foi satisfatória, como mostram as figuras abaixo.

Figura 3. Emissor e receptor atrás na figura, quando não há um obstáculo para criar a reflexão, o receptor não recebe um sinal forte, e deixa o LED (parte da frente da foto) acesso. Quando há um obstáculo para gerar a reflexão, o receptor capta um sinal forte, e apaga a luz do LED.

 

 

6.2- Dimensões dos Sensores

 

Para medir as dimensões do sensor, foi usada uma régua para calcular a altura, e uma régua com o auxílio de um barbante para calcular seu diâmetro. Tanto o LED emissor de luz infravermelho quanto o foto transistor medem sete milímetros de altura por cinco milímetros de diâmetro.

 

6.3- Consumo de Energia

 

Para calcular o gasto de energia, foi medida a tensão e a corrente no LED emissor, e no foto transistor, tanto no estado sem reflexão quanto no estado com reflexão.

 

Tabela 1. Consumo de energia do sensor.

 

Estado

Corrente

Tensão

LED emissor

Sem Reflexão

17,67 mA

0,3 V

 

Com Reflexão

17,67 mA

0,3 V

Foto Transistor

Sem Reflexão

0,2 mA

0,2 V

 

Com Reflexão

6,3 mA

2,4 V

 

Figura 4. Pontas de prova em paralelo com o circuito, medindo a tensão de 0,3 Volts no LED emissor.

 

6.4- Velocidade de Resposta

 

Para medir o teste de resposta do circuito, foi usado um osciloscópio para medir o tempo de subida do sinal de saída. Medidos o tempo de 0,1 mili segundos.

Figura 5. Tempo de subida do sinal medido através do osciloscópio.

 

 

7.                       Projeto Eletromecânico

 

A idéia inicial era usar um motor DC simples, sem transmissão ou caixa de redução, pois iria ser projetado um robô leve. Ao montarmos o primeiro protótipo do robô, para testarmos os motores, foi desastroso. O robô tinha muita velocidade nos motores, porém nenhum torque.

Em conversas com outros grupos, e em busca de uma nova solução, chegou à conclusão que a aquisição de um servo motor, adaptado para que funcionasse como um motor DC, seria ideal, por já ter todo o sistema de transmissão e caixa de redução. Logo, fizemos à validação destes servos motores.

 

8.                       Validação dos Elementos Motrizes

 

8.1- Circuito Eletrônico de Potência

 

Como a equipe ainda não projetou o sistema de alimentação, tal como pilha ou bateria, pois foi usada como fonte de energia a fonte liberada nos laboratórios, que fornece uma corrente de até três Amperes. Logo não nos deparamos com o problema da falta de corrente para alimentar o motor, não necessitando de uma etapa de potência.

 

8.2- Consumo de Energia

 

Para determinar o consumo de energia, limitamos o valor da tensão fornecida aos motores em 5 Volts, e com o robô em movimento, foi usada uma corrente de 140 mA. A equipe acredita que estes valores serão suficientes.

Figura 1. 5 Volts de tensão no motor, e 140 mA de corrente.

 

Tabela 1. Consumo de energia do motor.

 

Estado

Corrente

Tensão

Motor

Movimento

140 mA

5 V

 

Repouso

Tende a 0

5 V

 

 

8.3- Caixa de Redução e Sistema de Transmissão

 

Como já foi dito anteriormente, foi optado pelo uso dos servos motores para que não tivesse maiores problemas com a parte mecânica do projeto. Algumas modificações se fizeram necessárias para o uso pleno do motor. O servo motor foi aberto, e retirado o limitador de volta do motor. E um encaixe para a transmissão da força do motor para a roda teve de ser feita, com a ajuda de durepoxi.

 

Figura 2. Motor DC do servo motor, onde será aplicada a tensão e corrente. E o eixo de transmissão da força para a roda feito com durepoxi.

 

 

8.4- Torque

 

Para calcular o torque final no motor, foi usado um dinamômetro de até cinco Newtons. Medido a força no eixo de transmissão. Ou seja, apenas a força, sem o atrito da roda e sem o peso do robô. E também medimos a força no conjunto todo.

No teste de torque no eixo da transmissão, foi medido que o sistema agüentou ate aproximadamente 4 Newtons, então rompeu o sistema de transmissão.

No teste de torque na roda, mediu-se que o sistema fornece mais que cinco Newtons de força.

 

Figura 3. Inicio do teste de torque no eixo.

 

Figura 4. Teste na roda, força registrada acima de cinco Newtons.

 

8.5- Velocidade dos Motores

 

Como a equipe escolheu pelo uso do sistema inteiro do servo motor, não foi possível medir a velocidade do motor DC. Então medimos a velocidade do robô. Marcamos a distancia de cinqüenta centímetros, e ao aplicarmos uma tensão de cinco Volts nos dois motores, percebeu-se que ele demorou 41,5 segundos para completar a distancia total. Logo se conclui que o robô vai ter uma velocidade final de aproximadamente 0,012 m/s.

 

Figura 5. Trajeto de 50 cm que o robô percorreu em 41,5 segundos.

9.                       Projeto Eletrônico do Microprocessador

 

Em primeiro momento, a equipe escolheu o 89S51 como microprocessador para um correto funcionamento do robô. Porém, ao fazer alguns testes, verificou-se que era melhor usar um PIC, tal qual o 16F876A, pois este consegue fornecer mais tensão e corrente em suas portas de saídas, diferente do 89S51.

 

9.1 – Pinos de Entrada e Saída

 

Os pinos de entrada serão os pinos RB0 e RB1, é neles que serão jogadas as respostas dos sensores. Com o valor nesses pinos variando entre zero e um, o microprocessador irá variar a tensão nas saídas RC0 e RC1. Podendo assim chavear os relés, para controlar os motores.

 

9.2 – Recursos Necessários

 

Para a conclusão da primeira parte, que se resume em fazer o robô apenas seguir uma linha no chão, não será usado nenhum recurso adicional. Apenas a programação simples do PIC, sem temporizadores ou interrupções, será suficiente.

Para a segunda parte, será necessário o uso de temporizadores, para fazer o robô se mover tantos segundo para frente, para trás, ou girar tantos graus do seu próprio eixo.

 

9.3 – Clock

 

O clock inicialmente usado será o clock fornecido pelo cristal que será coloca no circuito. Este fornece um clock de 4 MHz.

 

9.4 – Características Elétricas

 

É a própria característica elétrica do microprocessador. Alimentação baseada em 5 Volts. Consumo de corrente nas saídas de no máximo 200 mA.

 

 

 

 

10.               Esquema Eletrônico

 

Abaixo segue o esquema eletrônico do microprocessador, juntamente com as suas entradas de dados, suas saídas de dados, que passam por um transistor, e vão para os relés. Podemos ver as entradas nas postas RB1 e RB0 e as saídas nas portas RA1 e RA0.

 

Figura 1. Esquema eletrônico.

 

11.               Fluxograma Seguidor de Linhas Simples

 

Figura 1: Fluxograma do software que programa um seguidor de linhas simples.

 

 

11.1– Descrição do Fluxograma

 

Este fluxograma descreve um robô seguidor de linhas apenas.   

Quando um sensor está ativo, ele está na região branca, ou seja, deve continuar reto. Sendo assim, ele solta na sua saída o valor um, para que o motor que está no seu lado continue ativo. Quando ele entra na região preta, ele para de estar ativo (pois não há reflexão do sinal), logo, ele solta na saída zero, para que seu motor pare, fazendo o robô girar, e voltando para a região ativa.

 

 

 

 

12.               Código Comentado

 

#include <p16f873.inc>
        
        BANKSEL TRISB                  ;seleciona banco do TRISB
        movlw .255
        movwf TRISB                    ;setando PORTB como entrada
        movlw .0
        movwf TRISC                    ;setando PORTC como saída
        BANKSEL PORTB                  ;selecionando banco do PORTB
 
        movlw .0
        movwf PORTB
        movwf PORTC                    ;zerando PORTB e PORTC
testa0:                        
        btfss PORTB,0                  ;testa valor do bit 0 da PORTB
        goto pb0entra0sai1             ;se for 1, vai pra pb0entra0sai1
        goto pb0entra1sai0             ;se for 0, vai pra pb0entra1sai0
 
testa1:
        btfss PORTB,1                  ;testa o valodr do bit 1 da PORTB
        goto pb1entra0sai1             ;se for 1, vai pra pb1entra0sai1
        goto pb1entra1sai0             ;se for 0, vai pra pb1entra1sai0
 
pb0entra0sai1:
        bsf PORTC,0                    ;seta 1 valor do bit 0 PORTC
        goto testa1    
pb0entra1sai0:
        bcf PORTC,0                    ;seta 0 valor do bit 0 PORTC
        goto testa1
pb1entra0sai1:
        bsf PORTC,1                    ;seta 1 valor do bit 1 PORTC
        goto testa0
pb1entra1sai0:
        bcf PORTC,1                    ;seta 0 valor do bit 1 PORTC
        goto testa0
end

 

        Este programa apenas lê os valores na entrada da PORTB e inverte eles para a saída PORTC.

 

 

 

 

 

 

 

 

 

 

 

13.               Fotos

Figura 1: Robô seguindo linha.                         Figura 2: Circuito do sensor e dos PIC´s.

 

Figura 3: Alimentação, 4 pilhas e 1 bateria.       Figura 4: Placa da alimentação.

 

Figura 5: Sensores posicionados em baixo.