Projeto Robô: Labirinto
Alan Vergaças Seleme
Alvaro Nogueira
Bernardo Bonato Brandalize
Professor Orientador:
Profº Afonso Ferreira Miguel - Sistemas Digitais -
afonso.miguel@pucpr.br
1. Descrição
Trabalho apresentado para disciplina de Microprocessadores 2 do Curso de Engenharia de Computação da Pontifícia Universidade Católica do Paraná.
O objetivo deste trabalho é construir um robô autônomo (funcionando independente de um computador) que consiga sair de um labirinto construído pela própria equipe. A técnica utilizada para a execução da tarefa foi a de encostar um sensor na parede da direita e outra na parte da frente, sendo que o caminho percorrido não seria sempre o menor, mas o robô acharia a solução para o problema.
2. Projeto Mecânico
O robô desenvolvido pela equipe se locomoverá através de rodas. O robô possuirá duas rodas traseiras que darão a tração e a direção, e duas rodas dianteiras para equilíbrio.
Os motores utilizados serão ou de passo ou contínuos. A melhor alternativa é o motor de passo, que possui melhor controle de movimentação. Porém, caso o motor de passo venha a causar problemas quanto a implementação, existirá a possibilidade de uso de motores contínuos.
Serão utilizados primeiramente dois sensores, podendo ser ambos push buttons, ambos sensores de proximidade, ou ainda alternados. Os testes com os sensores que determinará quais serão utilizados.
A idéia inicial é utilizar um push button como sensor frontal para caso o robô encontre uma parede, e um sensor de proximidade lateral para manter o robô sempre baseado na parede à sua direita.
Quanto ao tamanho da base do robô, ainda não foi definido pois ainda não temos idéia do tamanho das placas e baterias utilizadas. O material da base será borracha, madeira, ou ainda algum material leve e resistente.
Figura 1: Design do Robô
3. Projeto da Pista de Prova
A estrutura a ser montada como pista de prova será um labirinto.
Este labirinto possuirá uma entrada e uma saída, podendo existir mais de um caminho ligando ambas.
O labirinto será feito de madeira, com a base possivelmente emborrachada para evitar problemas com tração devido à falta de atrito.
As laterais do labirinto serão feitas também em madeira, se possível MDF, que possui uma superfície mais regular, possibilitando a utilização de sensores push button também na lateral do robô.
A distância entre paredes será grande o suficiente para que o robô possa executar manobras como dar voltas sem grandes dificuldades.
Abaixo está o projeto do labirinto, onde pode ser visto que, caso o robô seguisse a parede esquerda, a saída seria rápida e fácil, porém seguindo a parede direita, a saída seria mais demorada e a utilização dos sensores mais intensa.
Figura 2: Labirinto
4. Sensores
Os sensores utilizados serão sensores mecânicos.
Pequenos testes foram realizados com os sensores.
Um deles foi o teste de velocidade, no qual foi visto que o sensor responde de acordo com a exigência para este projeto.
Não houve teste de consumo de energia por se tratar de um sensor mecânico, não havendo alimentação para que o mesmo passe a funcionar.
O tamanho do sensor é pequeno, em torno de 1 a 2 cm.
Não serão necessários circuitos eletrônicos adicionais.
Figura 3: Sensor em teste
5. Projeto Eletro-Mecânico
Serão utilizados dois motores contínuos que farão a locomoção do robô de forma independente.
Os dois motores estarão localizados na parte traseira do robô, e não haverá nenhuma forma de transmissão, sendo eles diretamente conectados às rodas. Esse tipo de montagem fará com que seja mais fácil fazer o robô fazer voltas, pois basta um motor rodar independente do outro.
Não serão utilizadas caixas de redução por se tratar de motores de passo pequenos.
O consumo médio previsto para estes motores é de aproximadamente 17 mA.
6. Projeto Eletrônico de Microprocessador
O microprocessador escolhido para o projeto foi o AT89C52.
O funcionamento deste microprocessador, assim como sua programação, foram melhor compreendidos pela equipe do que o funcionamento do PIC16F876, tornando mais fácil a implementação do robô, além de possuir todas as características necessárias para que o mesmo funcione.
Os pinos de entrada e saída usados serão:
- Pinos de entrada dos sensores que estarão na porta 3, pois serão os pinos de interrupção. - Pinos de saída para os motores que estarão na porta 2Serão ainda necessários os recursos de contadores para que os motores funcionem por tempos determinados.
Possivelmente, só um Timer será utilizado.
Além do Timer, serão utilizadas as portas de interrupção.
O clock utilizado para o funcionamento do robô será de aproximadamente 4MHz.
As tensões necessárias para alimentação tanto do microprocessador como dos sensores será de 5 volts. Os motores também estarão ligados à bateria, sendo acionados através de dois circuitos com transistores que podem tanto rodar os motores no sentido horário como anti-horário. Haverá um circuito para cada motor.
Figura 4: Esquema do Microprocessador
7. Projeto do Sistema de Alimentação
O circuito de alimentação necessário será uma bateria de 5 Volts. Esta tensão será obtida a partir de uma bateria de 6 Volts em conjunto com um circuito redutor de tensão.
Não serão necessárias diferentes tensões sobre o circuito, já que tanto os sensores, motores e o microprocessador estarão operando no mesmo valor de tensão.
Não existe o diagrama dos circuitos elétricos pois só será utilizado uma bateria e um circuito redutor de tensão, que poderá ser feito através de um LM-7805, ou ainda algum outro circuito equivalente.
O tamanho da bateria é de aproximadamente 7,5 cm x 5,5 cm x 1,5 cm (C x L x A).
Figura 5: Bateria
8. Fluxograma do Software Embarcado
O processador iniciará verificando se o sensor da direita está ativado, significando que o robô está encostado na parede.
Caso o robô não esteja encostado, o processador fará com que o mesmo se aproxime da parede. Após a ativação deste sensor, o robô seguirá em frente, ate que o sensor da direita seja desligado ou o sensor da frente venha a ser ligado.
Caso o sensor da direita se desligue, o robô fará uma curva de 90° para direita. Caso o sensor da frente seja ligado, o robô fará uma curva de 90° para esquerda.
Após esta volta, o robô voltará a procurar pela parede a sua direita.
Figura 6: Fluxograma
9. Parte Final do Projeto
O projeto foi finalizado apesar de problemas.
O labirinto foi construído para que os testes de funcionamento do robô pudessem ser executados. Além da implementação da solução para o problema descrito utilizando-se do software Keil uVision2.
Foi verificado o funcionamento do circuito do motor, assim como o funcionamento dos sensores. A programação e teste do microprocessador com clock gerado pelo cristal também foram efetuados com sucesso.
O problema verificado foi com o torque do motor, que não era suficiente para que o carrinho se locomovesse.
Foi tentada a troca dos motores, porém não houve grande diferença pois não foram achados motores fortes o suficiente.
10. Fotos
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()