RELATÓRIO FINAL DAS ATIVIDADES DO BOLSISTA
(Relatório individual por bolsista por projeto)1. IDENTIFICAÇÃO DO PROJETO
Título do Projeto:
Desenvolvimento de um módulo embarcado para controle dos movimentos de um robô móvel autônomo. Professor responsável pelo Projeto (identificar o nome do líder do grupo de pesquisa):
Kenia Carvalho Mendes
Equipe Executora
Docente Departamento e-mail
Kenia Carvalho Mendes Mecânica keniapoli@yahoo.com.br
Marcílio André Félix Feitosa Eletrônica marciliofeitosa@uol.com.br
2. IDENTIFICAÇÃO DO BOLSISTA
Nome do Aluno Curso Matrícula e-mail
Jose Carlos Barbosa Pereira Filho Mecânica / Mecatrônica
056.569.454-56 engcarlosmec@gmail.com
3. PERÍODO DE REALIZAÇÃO
Início ______ / ______ / _______ Término ______ / ______ / _______
3. Sobre o Projeto
3.1. Resumo do Projeto (Introdução, Objetivos) Introdução:
Sistemas embarcados (Embedded Systems) são sistemas microprocessados ou microcontrolados capazes de realizar uma ou mais tarefas específicas, com seus recursos computacionais, como memória e poder de processamento projetados restritamente para este propósito específico. Estima-se que em 2010, 90% dos sistemas existentes sejam Embarcados. Esse tipo de estrutura é parte essencial de um sistema robótico autônomo.
Um exemplo típico seria a aplicação de um sistema embarcado realizando o controle dos movimentos do robô, estando este sistema subordinado a uma unidade de processamento central, responsável pela interpretação dos dados coletados por sensores instalados no robô. Esta unidade central, também é responsável por tomar decisões sobre rotas a seguir ou maneiras de agir. O desenvolvimento deste módulo de controle de movimentos deve ser realizado de forma que ele possa ser integrado a outros módulos, através de um protocolo de comunicação pré-estabelecido.
Objetivos:
•
Desenvolver um módulo embarcado para controle dos movimentos de um robô móvel autônomo.o Estabelecer um protocolo de comunicação entre o módulo embarcado e a unidade de processamento central;
o Projetar e montar o sistema microcontrolado provido de canal serial para comunicação com a unidade de processamento central;
o Projetar e montar a interface de potência necessária entre o microcontrolador e os motores de passo e/ou de corrente contínua;
o Projetar e montar um sistema encoder responsável por detectar o movimento realizado pelo robô e comunica-lo ao microcontrolador;
o Desenvolver o programa a ser executado pelo microcontrolador, responsável pelo controle do sistema e da comunicação com a unidade de processamento central;
o Desenvolver um programa a ser executado em um computador pessoal, que simulará o funcionamento da CPU Embarcada e permitirá a execução de testes;
o Divulgar o resultados do projeto através de publicações científicas.
3.2. Cronograma proposto Etapas 10/2006 11/2006 12/2006 01/2007 02/2007 03/2007 04/2007 05/2007 06/2007 07/2007 08/2007 09/2007 1 2 3 4 5 6 7 8
Ite
m Atividade Geral Atividades Específicas Prof. Orientador 1 Estudar os conceitos básicos envolvidos no projeto.
Fazer uma revisão completa sobre motores, encoders,
microcontroladores, comunicação serial, programação em assembler, C e
alguma linguagem de alto nível.
Kenia Carvalho Mendes / Marcílio André Félix Feitosa
2 Estabelecer um protocolo de comunicação.
Estudar protocolos de comunicação de dados em ambientes industriais, mais
susceptíveis a ruídos. Estabelecer o melhor e definir uma forma de endereçamento
individual de cada módulo.
Kenia Carvalho Mendes
3 Projetar e montar o sistema microcontrolado.
Montar o hardvare básico baseado no microcontrolador 8051 e o driver de comunicação
serial-RS232. Montagem inicial em protoboard e posteriormente
em PCI (Placa de Circuito Integrado).
Marcílio André Félix Feitosa
4 Projetar e montar a interface de potência.
Projeto e testes dos drivers de potência necessários na comunicação entre os módulos microcontrolados e os motores.
Marcílio André Félix Feitosa
5 Projetar e montar um sistema encoder.
Projeto e montagem do encoder, responsável por informar ao microcontrolador a distância percorrida pelo robô, que por sua
vez irá enviar este dado para a CPU.
Marcílio André Félix Feitosa
6 Desenvolver o programa a ser executado pelo microcontrolador.
Programar em C o código a ser executado pelo microcontrolador,
incorporando a comunicação serial, o processamento dos dados do encoder e o controle
da velocidade dos motores (PWM)
Marcílio André Félix Feitosa
7 Desenvolver um programa para testes.
Um programa deverá ser elaborado para permitir a execução de testes do sistema. Esse programa será executado em um computador pessoal (PC)
e deve se comunicar com o módulo através do canal serial e simular o funcionamento da CPU
Embarcada..
Kenia Carvalho Mendes
3.3. Descrição do Projeto
Este projeto permitiu a criação de um robô móvel autônomo, pesando x quilos, com capacidade de movimentar-se em terrenos planos e desvia-se de obstáculos. O projeto desenvolveu-se em três etapas distintas: o projeto e montagem do hardware mecânico, o projeto e montagem dos circuitos do sistema embarcado, e o desenvolvimento do software de comunicação entre os módulos deste sistema.
Como mostrado na figura abaixo, a estrutura mecânica do robô é formada por um chassis quadrado, construído em perfil de alumínio, montado sobre esteiras. A escolha do uso de esteiras como meio de locomoção, baseou-se no fato, de que sistemas montados sobre esteiras apresentam maior estabilidade na movimentação, além de serem capazes de passar por cima de pequenos obstáculos, que eventualmente, podem ser encontrados sobre o solo. A carcaça do robô foi feita em acrílico e serve para cobrir e proteger os motores e os circuitos do sistema embarcado. Fora da carcaça ficam os sensores de ultra-som, os quais permitem que o robô detecte a presença dos obstáculos, que por ventura, apareçam em sua trajetória.
O conjunto possui três motores elétricos, dois dos quais são usados para movimentação da esteira e o outro que permite a movimentação do sensor de ultrasom para detecção dos obstáculos. O sistema embarcado é formado por uma unidade de processamento central e dois módulos, um de movimentação e outro de sensoriamento, cujos circuitos foram montados dentro da carcaça do robô, sobre o chassis. A alimentação dos circuitos e motores é feita por uma bateria de 12 volts, também instalada sobre o chassis dentro da mesma caraça.
3.4. Tecnologias Desenvolvidas Ponte H
Para que os motores girassem nos dois sentidos, horário e anti-horário, desenvolvemos um circuito conhecido como ponte H, que muda o sentido da passagem de corrente elétrica pelo motor mudando assim o sentido de rotação.
Este circuito foi desenvolvido com transistores BC 548 e transistores darlington TIP 122 e TIP 127, os transistores darlington possuem um maior ganho de corrente dado pela expressão.
ß = Ic / Ib
onde a razão entre a corrente de coletor pela corrente de base é igual ao ganho do transistor.
Encoder
Encoder é um dispositivo que converte movimentos lineares ou circulares
em sinais digitais elétricos. Ele é largamente utilizado na automação industrial,
onde é essencial a utilização de instrumentos de precisão para garantir o bom
funcionamento das máquinas, como ferramentas CNC, motores elétricos,
robôs, manipuladores, etc.
Para os dados serem medidos, é usado um par emissor-receptor de luz
infravermelha dispostos em formato de barreira foto-elétrica para se obter os
sinais, e (no caso de um encoder rotativo) um disco com furos uniformemente
espaçados uns dos outros formando uma circunferência e permitindo assim, a
alternância de sinais da barreira foto-elétrica quando se é aplicada rotação ao
disco.
Imagem Ilustrativa da disposição de componentes do encoder simples.
Sabendo as dimensões do disco e dos furos, podem-se calcular
velocidades, distâncias percorridas, posições angulares, direções e
acelerações, bastando apenas que o encoder fique afixado ao eixo de rotação
do dispositivo a ser inspecionado.
Os encoders normalmente são divididos em três tipos: os encoders
simples, os encoders incrementais e os encoders absolutos.
Os encoders simples são utilizados normalmente quando se precisa
saber apenas a distância percorrida, número de giros ou mesmo a velocidade
do eixo acoplado a ele. De todos os tipos, esse é o que proporciona maior
facilidade para ser construído, devido ao número de pares ópticos e ao número
de circunferências com furos a serem utilizados (esse foi o encoder selecionado
para ser empregado ao robô, vista a dificuldade de se produzir outro tipo de
encoder).
Para que um encoder incremental seja produzido, são necessários dois
pares emissor-receptor e duas fileiras de furos no disco, defasadas de 180
graus uma com a outra, cada fileira de furo com seus respectivos pares de
sensores óticos são chamados de canais (canal A e canal B). Outra maneira de
se produzi-lo é mantendo apenas uma fileira de furos e distanciando os pares
de sensores de forma a permitir uma coleta de dados defasada de 180 graus.
Dessa maneira, pode-se medir também o sentido que o eixo está girando, uma
vez que a combinação dos sinais quando o disco gira para um lado é diferente
dos dados recebidos quando o disco gira para o outro lado. Alguns encoders
incrementais possuem ainda um terceiro canal, o canal Z (zero), que indica a
posição inicial do sistema, identificando quando o disco passa pela origem
(neste caso, será necessário um outro sensor para detectar o zero).
Imagem detalhando o sinal de saída do encoder incremental.
O Encoder absoluto difere do incremental por ter uma leitura dos dados
diferenciada. Ele detecta a posição na qual o disco parou de se mover por meio
da utilização de várias circunferências de furos e vários pares de sensores
óticos. O encoder absoluto usa a combinação de sinais transmitida por cada
um dos receptores de infravermelho para dizer em qual ângulo o eixo parou. É
de extrema utilidade em casos onde se precise mover manipuladores com
muita precisão.
Imagem de um encoder absoluto.
Para uma verificar o funcionamento do protocolo de comunicação foi desenvolvido o módulo sonar, que tem a função de detectar obstáculos ao seu redor.
O sensor de ultra-som é um dispositivo largamente usado na indústria para medições. Ele é bastante útil, pois pode ser empregado na medição de várias grandezas, principalmente se utilizado com a ajuda de programação.
Para medir a distância das paredes para o robô, foi-se utilizado o sensor detector por ultra-som. Ele é um sensor disposto para agir na forma de sensor difuso (possui um emissor e um emissor e um receptor de ultra-som, ambos paralelos e um ao lado do outro) que emite um sinal e espera a captação do mesmo pelo eco que será proporcionado. Sabendo-se o meio no qual a onda ultra-sônica está, pode-se calcular a distância percorrida por ela, uma vez que se tem o tempo em que o sinal foi emitido e o tempo no qual ele voltou.
O modulo capta os sinais enviados pelo sensor que esta situado no eixo do servo motor, que permite o deslocamento angular do sensor em 180°, dessa maneira o robô detecta obstáculos localizados na sua direita, frete e esquerda.
Veja o esquema do circuito abaixo.
3.5. Resultados obtidos e discussão
•
Obtivemos um sistema leve, funcional e inteligente, capaz de controlar a tração das rodas e a direção do movimento de um robô modular móvel autônomo, através da técnica de modulação por largura de pulsos, e que receberá as informações captadas pelo encoder e realimentá-las para a CPU. Esse sistema de malha aberta responde às informações enviadas pela unidade de processamento central, bem como informa-la dos movimentos realizados (realimentação);3.6. Conclusões
Este trabalho é uma literatura importante para fomentar a pesquisa nos ingressantes e veteranos no estudo da robótica, servindo como consulta e até mesmo impressão de cópias, ajudando no aperfeiçoamento de seus conhecimentos de técnicas de todas as etapas de confecção de robôs móveis. O projeto pode também ser aprimorado por estudantes de disciplinas como sistemas de controle, procurando melhores performances de controle de velocidade em função de variáveis importantes não utilizadas no sistema, como para robôs que se movam em terrenos acidentados.
3.7. Dificuldades encontradas Controle da ponte H
O acionamento da ponte H não poderia ser feito ligando direto a bases do TIP 122 nas portas do microcontrolador, por que a quantidade de corrente enviada pelo microcontrolador é muito pequena para fazer o transistor conduzir.
Para resolver o problema descrito acima usamos um resistor de pull-up em serie com a ligação em paralelo existente entre a base do transistor TIP 122 e com o coletor do BC 548 permitindo assim o acionamento do TIP. E para o acionamento do BC 548 foi colocado um outro resistor de pull-up em serie com a ligação em paralelo existente entre a base do BC 548 e a porta do microcontrolador. A figura abaixo descreve a situação dita acima.
Reconhecimento de sinais do encoder
O sinal do encoder, a pesar de funcionar corretamente, não era compatível com o sinal desejado para microcontrolador, pois ele era muito baixo para que o microcontrolador o identificasse. Foi necessário utilizar um amplificar operacional para digitalizar a saída do encoder e aumentar seu valor, tornando possível a identificação pelo microcontrolador. O amplificador operacional foi usado como comparador fazendo assim com que ele capte tensões e as compare com uma outra tensão de referência, transformando todas as tensões abaixo da tensão de referência em "0" digital e as tensões maiores que a tensão de referência em "1" digital.
Comunicação de Sinais
Foi verificado que todos os módulos e circuitos funcionam individualmente de maneira perfeita, mas quando colocados todos os circuitos juntos ocorre algumas interferências de sinal que ocasionam num mau controle de todo o robô. O motivo pelo qual ocorrem esses erros no controle é atribuído a maneira completamente artesanal, mas altamente didática, que foram produzidas as placas de circuito impresso.
Controle de Velocidade
O sistema de controle desenvolvido para controlar a velocidade do robô é definido como malha aberta, pois não existe algo que faça com que o sinal de entrada no sistema produza uma saída desejada. A saída indesejada é produzida por variáveis não introduzidas no sistema como inclinação do relevo, seja ele com inclinação ascendente ou descendente, e colocação de peso excedente no robô.
O sistema construído e incorporado ao robô é ideal para locais planos. 3.8. Referências bibliográficas (de acordo com as normas da ABNT)
Sensors for Mobile Robots: Theory and Application H. R. Everett
Computational Principles of Mobile Robotics Gregory Dudek and Michael Jenkin
Embedded Systems Building Blocks: Complete and Ready-To-Use Modules in C Jean J. Labrosse
Sistemas Embarcados - Hardware e Firmware na Prática André Schneider de Oliveira e Fernando Souza de Andrade Internet Embedded - TCP/IP para Microcontroladores Marcos Perez Mokarzel e Karina Perez Mokarzel Carneiro Microcontrolador 8051 - Detalhado
Denys Emílio Campion Nicolosi
Microcontrolador 8051 com linguagem C - Prático e Didático - Família AT89S8252 Atmel Denys E. C. Nicolosi e Rodrigo B. Bronzeri
Programação C para Microcontroladores 8051 Maurício Cardoso de Sá
Microcontroladores PIC - Técnicas Avançadas Fábio Pereira
Automação Industrial - Controle do Movimento e Processos Contínuos Alexandre Capelli
Declaro que as informações prestadas no relatório sobre o Projeto:
_________________________________________________________________________ são verdadeiras.
Local Data Assinatura do Bolsista
Declaro que as informações prestadas no relatório sobre o Projeto:
_________________________________________________________________________ são verdadeiras.
Local Data Assinatura / carimbo do Coordenador do Projeto
Assinatura dos demais docentes da equipe executora:
(acrescente mais linhas, se necessário)Declaro ter tido participação ativa no Projeto:
_________________________________________________________________________
Data Assinatura
Data Assinatura