Upload
gsantin1
View
1.708
Download
3
Embed Size (px)
Citation preview
URI - UNIVERSIDADE REGIONAL INTEGRADA DO ALTO URUGUAI E DAS
MISSÕES
DEPARTAMENTO DE ENGENHARIAS E CIÊNCIA DA COMPUTAÇÃO
CAMPUS DE FREDERICO WESTPHALEN
CURSO DE INFORMÁTICA
DISPOSITIVO DE NAVEGAÇÃO AUTÔNOMA
GABRIEL SANTIN
Frederico Westphalen, Novembro de 2004
GABRIEL SANTIN
DISPOSITIVO DE NAVEGAÇÃO AUTÔNOMA
Monografia de Conclusão de Curso, apresentada como requisito parcial para obtenção do Título de bacharel em Informática na Universidade Regional Integrada do Alto Uruguai e das Missões, Campus de Frederico Westphalen, pelo Departamento de Engenharias e Ciência da Computação.
Orientador: Dr. Eduardo Appel
Frederico Westphalen, Novembro de 2004
Universidade Regional Integrada do Alto Uruguai e das MissõesDepartamento de Engenharias e Ciência da Computação
Curso de Informática
A Comissão Examinadora, abaixo assinada,Aprova a Monografia de Conclusão de Curso
DISPOSITIVO DE NAVEGAÇÃO AUTÔNOMA
Elaborado porGabriel Santin
Como requisito parcial para a obtenção do grau deBacharel em Informática
COMISSÃO EXAMINADORA
________________________________________Prof. Dr. Eduardo Appel
(Orientador)
________________________________________Prof. Giancarlo Cerutti Panosso
________________________________________Prof. Leandro Rosniak Tibola
Frederico Westphalen, Novembro de 2004
AGRADECIMENTOS
Agradeço aos meus professores que, mais do que mestres, foram verdadeiros amigos.
Agradeço aos meus colegas, companheiros de todas as horas. Estes estarão sempre
nas minhas lembranças.
Agradeço especialmente aos meus pais, que foram decisivos em mais essa etapa de
minha vida.
Se o conhecimento pode criar problemas,
não é através da ignorância que podemos solucioná-los.
(Isaac Asimov)
IDENTIFICAÇÃO
Instituição de Ensino/Unidade
URI – Universidade Regional Integrada do Alto Uruguai e das Missões
Campus de Frederico Westphalen
Direção do Campus
Diretor geral: Prof. Lauro Paulo Mazzutti
Diretora Acadêmica: Profª Edite Maria Sudbrack
Diretor Administrativo: Bel. Sergio Luiz Zenatti
Departamento/Curso
Departamento de Engenharias e Ciência da Computação – Chefe: Prof. Dr. Nelson Zang
Disciplina:Trabalho de Conclusão
Orientador:
Prof. Eduardo Appel
Orientando:
Gabriel Santin
RESUMO
A proposta principal deste trabalho é o desenvolvimento de um dispositivo de navegação autônoma programável, com um custo baixo em relação a equipamentos similares disponíveis no mercado. O trabalho envolve as áreas da eletrônica, lógica, física e programação. O tema foi escolhido pelo fato de que muitas vezes a teoria estudada sobre o assunto não pode ser complementada na prática, devido ao custo elevado das ferramentas necessárias para isso. Seguindo esse objetivo, grande parte dos estudos realizados dizem respeito aos microcontroladores da família 8051, que se caracterizam por ter uma ótima relação custo/benefício. Para a aplicação prática dos estudos realizados foi utilizado o microcontrolador AT89S8252, que é a base de todo o trabalho. Dentro dos estudos realizados sobre o microcontrolador destacam-se as configurações de seus registradores. Através destas configurações é possível direcionar o potencial do componente para a finalidade desejada. O microcontrolador utilizado é responsável pelo processamento dos dados coletados pelos sensores, que foram desenvolvidos após estudos realizados sobre os princípios básicos da propagação e reflexão do som no ambiente. O tipo de sensor utilizado baseia-se na emissão e captação de ondas ultra-sônicas, e é chamado de SONAR. O Sensor desenvolvido é capaz de medir com precisão distâncias entre 0,05m e 1m. Os dados coletados no ambiente através desse sensor são analisados pelo software de tomada de decisão, que interage com os atuadores do dispositivo, fazendo com que a navegação autônoma aconteça. Para avaliar todas as funções desenvolvidas foi criado um ambiente de testes, onde se pôde verificar a viabilidade do trabalho desenvolvido. Os objetivos inicialmente propostos foram alcançados de forma satisfatória.
Palavras-chave: Microcontrolador, 8051, Navegação Autônoma, SONAR.
ABSTRACT
The main proposal of this work is the development of a programmable autonomous navigation, with a low cost in relation the available similar equipment in the market. The work involves the areas of the electronics, logic, physics and programming. The theme was chosen due to the fact that sometimes the studies theory about the subject could not be complemented in practice, due to the high cost of the necessary tools to implement it. Following this aim, the great majority of the studies carried out were regarding the microcontrollers of family 8051 which have a good cost/benefits relation. For the practical application of the carried out studies a AT89S8252 microcontroller was used which is the basis of the whole work. Inside the studies about the microcontroller the configuration of its registers are in prominence through these configurations it is possible to direct the potential of the component to the desired end. The microcontroller used is responsible for the processing of the collected data by the sensors which where developed after studies carried out about the basic principles of propagation and reflection of the sound in the environment. The type of used sensor is based on the emission and collection of ultrasonic waves, and is called SONAR. The developed sensor is capable of measuring with precision distances between 0,05 and 1 meter. The data collected in the environment through this sensor are analyzed by the software of decision taking which interacts with the actuators of the device, making autonomous navigation happen. In order to evaluate all the developed functions a test environment was created, in which one can prove the viability of the developed work The aims initially proposed were reached in a satisfactory way.
Key words: Microcontroller, 8051, Autonomous Navigation, SONAR.
LISTA DE FIGURAS
FIGURA 1 – PINAGEM DO 8051 ........................................................................................ 17
FIGURA 2 – DIAGRAMA DE BLOCO DO 8051 ............................................................... 17
FIGURA 3 – CONTROLE DE HABILITAÇÃO DAS INTERRUPÇÕES .......................... 21
FIGURA 4 – CONTROLE DE PRIORIDADE DAS INTERRUPÇÕES ............................. 23
FIGURA 5 – BITS DE CONTROLE (0 AO 3) DO REGISTRADOR TCON ..................... 24
FIGURA 6 – DIAGRAMA DE BLOCO DE UMA PORTA I/O ......................................... 25
FIGURA 7 – EQUAÇÃO DO CÁLCULO DA DISTÂNCIA PERCORRIDA PELO SOM 28
FIGURA 8 – DIAGRAMA DE LIGAÇÃO DOS MOTORES ............................................. 29
FIGURA 9 – MODELO DE NAVEGAÇÃO ........................................................................ 30
FIGURA 10 – EXEMPLO DE CONFLITO ENTRE OS DOIS MÓDULOS ...................... 31
FIGURA 11 – ESTRUTURA GERAL DO SISTEMA ......................................................... 33
FIGURA 12 – CIRCUITO EMISSOR .................................................................................. 34
FIGURA 13 – CIRCUITO RECEPTOR ............................................................................... 35
FIGURA 14 – LAYOUT DE PLACA DO EMISSOR ......................................................... 36
FIGURA 15 – LAYOUT DE PLACA DO RECEPTOR ...................................................... 36
FIGURA 16 – DIAGRAMA DE BLOCO DO MODO 2 ...................................................... 38
FIGURA 17 – CONFIGURAÇÃO DO REGISTRADOR TMOD ....................................... 38
FIGURA 18 – CONFIGURAÇÃO DO REGISTRADOR TCON ........................................ 39
FIGURA 19 – CONTROLE DE HABILITAÇÃO DAS INTERRUPÇÕES ........................ 40
FIGURA 20 – TEMPO GASTO EM CADA CONTAGEM (TG) ........................................ 41
FIGURA 21 – CÁLCULO DA DISTÂNCIA ....................................................................... 41
FIGURA 22 – DIAGRAMA ESQUEMÁTICO DA FONTE ............................................... 42
FIGURA 23 – LAYOUT DE PLACA DA FONTE DE ALIMENTAÇÃO ......................... 43
FIGURA 24 – DIAGRAMA ESQUEMÁTICO DO DRIVER DE POTÊNCIA .................. 44
FIGURA 25 – RELAÇÃO DAS ENGRENAGENS DA REDUÇÃO .................................. 45
FIGURA 26 – KIT UTILIZADO NO TRABALHO ............................................................. 45
FIGURA 27 – AMBIENTE DE TESTES ............................................................................. 47
FIGURA 28 – DISPOSITIVO DE NAVEGAÇÃO AUTÔNOMA ...................................... 47
LISTA DE TABELAS
TABELA 1 – DESCRIÇÃO DOS PINOS DO 8051 ............................................................. 18
TABELA 2 – FUNÇÕES ESPECIAIS DOS PINOS DA PORTA 3 .................................... 19
TABELA 3 – FUNÇÕES ESPECIAIS DOS PINOS DA PORTA 1 .................................... 19
TABELA 4 – VETOR DE INTERRUPÇÕES ...................................................................... 21
TABELA 5 – PRIORIDADES INTERNAS ......................................................................... 23
TABELA 6 – PROPAGAÇÃO DO SOM EM DIFERENTES MEIOS ................................ 27
TABELA 7 – LÓGICA DE ACIONAMENTO DOS MOTORES ....................................... 29
TABELA 8 – LISTA DE COMPONENTES UTILIZADOS NO EMISSOR ...................... 36
TABELA 9 – LISTA DE COMPONENTES UTILIZADOS NO RECEPTOR ................... 37
TABELA 10 – COMPONENTES UTILIZADOS NA FONTE ............................................ 43
TABELA 11 – COMPONENTES UTILIZADOS NO DRIVER .......................................... 44
LISTA DE ABREVIATURAS
CPU Central Processing Unit
DC Direct Current
EA Enable All
EEPROM Electrically Erasable Programmable Read Only Memory
ES Enable Serial
ET Enable Timer
EX Enable External
I/O Input/Output
IE Interrupt Enable
IP Interrupt Priority
MOS Metal Oxide Semiconductor
PS Priority Serial
PT Priority Timer
PX Priority External
RAM Random Access Memory
RF Radio Freqüência
ROM Read Only Memory
SONAR Sound Navigation and Ranging
T/C Timer/Counter
TCON Timer Control
TG Tempo Gasto
TH Timer High
TL Timer Low
TMOD Timer Mode
TTL Transistor Transistor Logic
SUMÁRIO
IDENTIFICAÇÃO......................................................................................................................5
RESUMO....................................................................................................................................6
ABSTRACT................................................................................................................................7
LISTA DE FIGURAS.................................................................................................................8
LISTA DE TABELAS................................................................................................................9
1 INTRODUÇÃO.....................................................................................................................13
1.1 Objetivos.........................................................................................................................14
1.1.1 Objetivo Geral..........................................................................................................14
1.1.2 Objetivos Específicos...............................................................................................14
1.1.3 Estrutura do trabalho................................................................................................14
2 REFERENCIAL TEÓRICO..................................................................................................15
2.1 Microcontroladores.........................................................................................................15
2.1.1 A família MCS-51....................................................................................................16
2.1.2 Principais características do AT89S8252................................................................16
2.1.3 Pinagem e Diagrama de bloco do 8051 (AT89S8252)............................................17
2.1.4 Função dos pinos......................................................................................................18
2.1.5 Interrupções..............................................................................................................20
2.1.5.1 IE (Interrupt Enable).........................................................................................21
2.1.6.2 IP (Interrupt Priority)........................................................................................22
2.1.7 Portas de I/O............................................................................................................25
2.1.6 Temporizadores/Contadores....................................................................................26
2.2 Sensores..........................................................................................................................27
2.2.1 Navegação e Determinação da Distância Pelo Som (SONAR)...............................27
2.2.1.1 Princípios de funcionamento de um SONAR...................................................27
2.3 Os Atuadores...................................................................................................................28
2.4 Navegação autônoma......................................................................................................30
3 MATERIAIS E MÉTODOS..................................................................................................32
3.1 O SONAR.......................................................................................................................33
3.1.1 Construção dos dispositivos de emissão e recepção................................................34
3.1.2 Configuração do Microcontrolador..........................................................................37
3.1.3 Cálculo da distância.................................................................................................40
3.2 Construção do dispositivo...............................................................................................42
3.2.1 Alimentação.............................................................................................................42
3.2.2 Atuadores.................................................................................................................43
3.2.3 Reduções..................................................................................................................44
3.2.4 Placa de controle......................................................................................................45
4 RESULTADOS OBTIDOS...................................................................................................46
5 CONCLUSÕES E TRABALHOS FUTUROS......................................................................48
5.1 Conclusão........................................................................................................................48
5.2 Trabalhos futuros............................................................................................................49
REFERÊNCIAS BIBLIOGRÁFICAS......................................................................................50
ANEXOS..................................................................................................................................52
12
1 INTRODUÇÃO
Há muito tempo o homem vem tentando, cada vez mais, fazer com que máquinas
desempenhem tarefas até então exclusivas do ser humano. No início eram apenas pesquisas de
laboratório, mas com o tempo, sistemas automatizados que desempenham tarefas cada vez
mais complexas vêm ganhando espaço.
A construção de dispositivos, capazes de interagir com o ambiente ao seu redor, sem
a interferência humana, são base de inúmeras pesquisas envolvendo as mais diversas áreas do
estudo científico. Várias aplicações, que até então eram simplesmente pesquisas, agora estão
realmente sendo usadas na prática.
Projetos desse porte geralmente consomem muitos recursos humanos e materiais, e
isso é um fator determinante para que instituições ou empresas tenham acesso ao
desenvolvimento prático dessas tecnologias.
Sendo assim, o objetivo principal deste projeto é a aplicação prática de vários
conceitos estudados, nas áreas que envolvem assuntos ligados à eletrônica, navegação
autônoma, aprendizado computacional e inteligência artificial.
1.1 Objetivos
1.1.1 Objetivo Geral
Construir um dispositivo de navegação autônoma utilizando componentes de baixo
custo, utilizando recursos de navegação autônoma, aprendizado computacional e inteligência
artificial.
1.1.2 Objetivos Específicos
- Utilizar os principais recursos dos microcontroladores da família 8051.
- Desenvolver um sistema de sensores ultra-sônicos para medir distâncias.
- Utilizar técnicas de navegação autônoma.
- Desenvolver um ambiente para o dispositivo de reconhecimento.
1.1.3 Estrutura do trabalho
A estrutura do trabalho é disposta da seguinte forma: O primeiro capítulo contém
uma introdução aos estudos realizados e os objetivos a serem alcançados; No segundo
capítulo é apresentado todo o referencial teórico em que o trabalho é baseado; No capítulo 3
são descritos os métodos usados para o desenvolvimento do trabalho, e por fim, no capítulo 4
são apresentados os resultados obtidos e, na seqüência, as conclusões do estudo e sugestões
para a continuação e realização de trabalhos futuros.
14
2 REFERENCIAL TEÓRICO
2.1 Microcontroladores
Um microcontrolador é um componente eletrônico que possue em seu invólucro
elementos como RAM, ROM, temporizadores, contadores, canal de comunicação serial,
portas de I/O, entre outros. Isso faz com que em um único chip tenhamos memória de
programa e CPU. Esta característica diferencia os sistemas baseados em microcontroladores
daqueles baseados em microprocessadores, em que normalmente se utilizam vários
componentes para implementar essas funções. (SILVA Junior, 1994).
Por outro lado, os microcontroladores possuem CPUs menos poderosas. O seu
conjunto de instruções é mais simples, sua freqüência de clock é mais baixa e o espaço de
memória endereçável costuma ser bem menor.
Percebe-se desta forma, que o campo de aplicação dos microcontroladores é
diferente do campo de aplicação dos microprocessadores, e que sistemas baseados em
microcontroladores, tendem a ser menos complexos, mais compactos e de custo mais baixo
em relação aos sistemas baseados em microprocessador. Existem inúmeros modelos de
microcontroladores no mercado, cada um com suas características particulares, fornecendo
inúmeras opções para as mais diversas aplicações.
Um dos mais populares modelos de microcontroladores do mercado são os da família
MCS-51. Produzida inicialmente pela Intel, compreende hoje vários modelos que preservam
as características básicas de sua arquitetura.
2.1.1 A família MCS-51
É formada por vários modelos de microcontroladores, dos mais diversos fabricantes,
cada um com características específicas, mas sempre compartilhando os mesmos elementos
básicos.
No desenvolvimento do trabalho foi usado o microcontrolador AT89S8252, integrante
da família MCS-51 e fabricado pela ATMEL. Como todo o estudo foi baseado na arquitetura
padrão da família MCS-51, não houve nenhuma incompatibilidade em relação ao
AT89S8252. A seguir são apresentadas as principais características do microcontrolador
utilizado.
2.1.2 Principais características do AT89S8252
Compatível com a família MCS-51
8K Bytes de memória Flash interna
o Interface serial para carregamento
o Durabilidade de 1.000 ciclos de Escrever/Apagar
2K Bytes EEPROM
o Durabilidade de 100.000 ciclos de Escrever/Apagar
Voltagem de operação: 4V a 6V
Clock de funcionamento: 0Hz a 24MHz
Três níveis de Bloqueio de memória de programa
256 x 8-bit Memória RAM interna
32 Linhas programáveis de I/O (P0, P1, P2, P3)
Três Temporizador/Contadores de 16-bit
Nove modos de interrupção
16
2.1.3 Pinagem e Diagrama de bloco do 8051 (AT89S8252)
FIGURA 1 – PINAGEM DO 8051
FIGURA 2 – DIAGRAMA DE BLOCO DO 8051
17
2.1.4 Função dos pinos
Pinos Nome Descrição1 a 8 P1.0 – P1.7 Estes pinos são endereçados como porta bidirecional de 8 bits,
podendo ter seus pinos individualmente endereçáveis.Podem alimentar ou drenar uma carga TTL, ou várias cargas MOS diretamente sem pull-up externos. Durante a verificação de programas, serve como entrada da parte menos significativa de endereços.
9 RST/VPD Pino para resetar o sistema, pela aplicação de um nívellógico 1 TTL, durante 2 ou mais ciclos de máquina.
10 a 17 P3.0-P3.7 Porta de I/O bidirecional de 8 bits, com resistores de pull-up interno, servindo também as funções especiais descritas à frente.
18 XTAL2 Saída do amplificador inversor do oscilador e entrada para o gerador de clock interno. Se for usado clock externo, serve como entrada para o mesmo.
19 XTAL1 Entrada do amplificador inversor do oscilador. Deve serconectado a terra se usarmos clock externo.
20 GND Conexão de Terra21 a 28 P2.7
(A8-A15)Porta bidirecional de 8 Bits, usada como saída ou da parte mais significativa do endereço na expansão de memória, ou verificação da programação, respectivamente. Estes pinos podem suprir/drenar 1 carga TTL ou entradas MOS sem pull-up externo.
29 PSEN Saída para habilitação do programa externo. É o strobe da memória de programa externa. Quando o sistema vai buscar instruções ou operandos na memória externa, este pino vai a nível zero. PSEN\ não é ativado (permanece alto) durante busca na memória interna de programa.
30 ALE Saída habilitadora do latch de endereços. Serve para separar a parte menos significativa do endereço que está multiplexada com os dados, no uso de memória externa.
31 EA/VPP Entrada de seleção da memória de programa. Quando setada em nível lógico 0, a CPU trabalha apenas com a memória de programa externa. Se em nível lógico 1, a CPU executa instruções da memória de programa interna, desde que o PC seja menor que 4096. Este pino recebe +21.0 volts durante a programação da ROM interna.
32 a 39 P0.7 -P0.0(AD7-AD0)
Porta de 8 bits bidirecional com dreno aberto. Durante operações com memória externa, fornece multiplexadas à parte menos significativas de endereço e os dados, ativando pull-ups internos. Serve também como saída dos bytes de instrução, durante a verificação dos programas, sendo necessária a colocação de pull-ups externos para esta operação. Cada pino desta porta pode suprir/drenar 2 cargas TTL.
40 VCC Pino para ligação de + 5.0 volts durante a operaçãonormal.
TABELA 1 – DESCRIÇÃO DOS PINOS DO 8051
18
TABELA 2 – FUNÇÕES ESPECIAIS DOS PINOS DA PORTA 3
P3.0 RXD/data: Receptor da porta serial assíncrona ou entrada e saída de dados
síncronos (expansão de I/O pela porta serial).
P3.1 TXD/clock: Saída de transmissão da porta serial assíncrona, ou saída de clock
para os registradores de deslocamento externos (expansão de I/O pela porta
serial).
P3.2 INT0\: Interrupção externa número 0, ou bit de controle para o T/C 0.
P3.3 INT1\ Interrupção externa número 1 ou bit de controle para o T/C 1
P3.4 T0 Entrada externa para o T/C 0
P3.5 T1 Entrada externa para o T/C 1
P3.6 WR\: Strobe (sinalizador) de escrita na memória de dados externa.
P3.7 RD\: Strobe (sinalizador) de leitura na memória de dados externa.
TABELA 3 – FUNÇÕES ESPECIAIS DOS PINOS DA PORTA 1
P1.0 T2 (Entrada externa do T/C 2)
P1.1 T2EX (T/C 2 capture/reload trigger and direction control)
P1.4 SS (Slave port select input)
P1.5 MOSI (Master data output, slave data input pin for SPI channel)
P1.6 MISO (Master data input, slave data output pin for SPI channel)
P1.7 SCK (Master clock output, slave clock input pin for SPI channel)
Algumas funções das portas especiais são encontradas somente em alguns
integrantes da família MCS-51. Na tabela 2.3 são descritas as funções especiais encontradas
no microcontrolador AT89S8252. Essas características não estão presentes em todos os
integrantes da família.
19
2.1.5 Interrupções
As interrupções nos sistemas microcontrolados são sem dúvida uma das mais
importantes ferramentas, pois é através delas que se torna possível interromper a execução de
um processo para a realização de outro. Essas interrupções são geradas de acordo com as
necessidades de eventos internos ou externos. (SILVA Junior, 1994).
Sendo assim podemos classificar três modos de interrupção: A interrupção por
software (instrução), a pedida por algum Hardware externo e a pedida por periféricos internos
como os T/C, porta serial, etc.
Dessa forma temos as seguintes possibilidades de interrupções no 8051:
Interrupção externa 0 (INT0\ - pino P3.2);
Interrupção externa 1 (INT1\ - pino P3.3);
Interrupção do contador/temporizador 0;
Interrupção do contador/temporizador 1;
Interrupção pelo canal de comunicação serial.
A grande vantagem de se usar interrupções é a simplificação de Hardware que isso
causa, pois dessa forma, não é necessário ficar monitorando nenhum dispositivo periférico,
como acontece em alguns sistemas, pois assim que ele for ativado, necessitando recursos do
sistema, uma interrupção é gerada e a sua solicitação é atendida.
No 8051 as interrupções são vetoradas, ou seja, o endereço de inicio da rotina de
tratamento da interrupção é fixo. Abaixo segue a tabela com os vetores das interrupções:
20
INTERRUPÇÃO Endereço no 8051
INT 0 0003 h
C/T 0 000B h
INT 1 0013 h
C/T 1 001B h
SERIAL 0023 h
2.1.5.1 IE (Interrupt Enable)
As interrupções no 8051 são mascaradas, ou seja, podem ser desabilitadas através de
comandos de software. Para esse controle de habilitação das interrupções, existe um
registrador, o IE (Interrupt Enable). A seguir, são descritas as funções desse registrador.
EA X X ES ET1 EX1 ET0 EX0
BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0
EA (Enable All)
0 = Desabilita todas as interrupções.
1 = Permite que cada opção seja habilitada de forma individual.
ES (Enable Serial)
Habilita ou desabilita a interrupção pedida pelo canal de serial.
0 = Desabilita.
1 = Habilita, se EA = 1.
TABELA 4 – VETOR DE INTERRUPÇÕES
FIGURA 3 – CONTROLE DE HABILITAÇÃO DAS INTERRUPÇÕES
21
ET1 (Enable Timer 1)
Habilita ou desabilita a interrupção pedida pelo temporizador 1.
0 = Desabilita.
1 = Habilita, se EA = 1.
EX1 (Enable External 1)
Habilita ou desabilita a interrupção externa 1.
0 = Desabilita.
1 = Habilita, se EA = 1.
ET0 (Enable Timer 0)
Habilita ou desabilita a interrupção pedida pelo temporizador 0.
0 = Desabilita.
1 = Habilita, se EA = 1.
EX0 (Enable External 0)
Habilita ou desabilita a interrupção externa 0.
0 = Desabilita.
1 = Habilita, se EA = 1.
2.1.6.2 IP (Interrupt Priority)
Todas interrupções do 8051 podem ser programadas de forma individual, para um
dos níveis de prioridade de atendimento (0 = Prioridade Baixa ou 1 = Prioridade Alta) . Isto é
feito através dos bits do registro IP (Interrupt Priority).
22
X X X PS PT1 PX1 PT0 PXO
BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0
PS (Priority Serial) - Nível de prioridade para o canal serial;
PT1 (Priority Timer 1) - Nível de prioridade para o temporizador 1;
PX1 (Priority External 1) - Nível de prioridade para a interrupção externa 1;
PT0 (Priority Timer 0) - Nível de prioridade para o temporizador 0;
PX0 (Priority External 0) - Nível de prioridade para a interrupção externa 0;
Uma interrupção de nível baixo poderá ser interrompida por outra de nível alto, mas
não por outra de nível baixo. Uma interrupção de nível alto não poderá ser interrompida por
qualquer outra fonte de interrupção.
Se ocorrerem dois pedidos de interrupções simultaneamente, o que é quase impossível,
e ambas forem de mesma prioridade, ocorrerá uma outra seleção interna, que escolherá qual
interrupção será atendida primeiro. Essa seleção interna é realizada de acordo com a tabela
2.5.
PRIORIDADE INTERNA
INTERRUPÇÃO
1º Externa 0
2º Temporizador 0
3º Externa 1
4º Temporizador 1
5º Serial
As interrupções externas no 8051 podem ser ativadas por borda de descida, ou seja,
FIGURA 4 – CONTROLE DE PRIORIDADE DAS INTERRUPÇÕES
TABELA 5 – PRIORIDADES INTERNAS
23
pela transição de 1 para 0, ou por nível lógico baixo (“0”).
Para escolher a forma com que a interrupção externa é ativada, é preciso configurar o
registro TCON (Controle do Temporizador), através dos bits 0,1 ,2 e 3.
IE1 IT1 IE0 IT0
BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0
IT0
0 = Ativa a interrupção com nível lógico baixo no pino INT0\ (pino P3.2);
1 = Ativa a interrupção com borda de descida no pino INT0\;
IT1
0 = Ativa a interrupção com nível lógico baixo no pino INT1\ (pino P3.3);
1 = Ativa a interrupção com borda de descida no pino INT1\;
IEx
Fica em setado em nível alto "1" quando for detectada uma borda de descida (pedido
de interrupção). É setado em nível baixo “0” após o atendimento da rotina de tratamento da
interrupção.
Se a interrupção for ativada por nível lógico baixo “0”, o pino INTx\ poderá
permanecer em "0" durante a execução da rotina de tratamento da interrupção, no entanto,
deve ser setado em nível lógico alto "1" antes do término da rotina, caso contrário será feito
um novo pedido de interrupção.
2.1.7 Portas de I/O
FIGURA 5 – BITS DE CONTROLE (0 AO 3) DO REGISTRADOR TCON
24
Os microcontroladores da família MCS-51 têm por padrão 4 portas paralelas
denominadas P0, P1, P2 e P3, o que constitui basicamente em 32 pinos de I/O. Essas portas
podem ser endereçáveis como portas de 8 bits ou como bit a bit. De acordo com a
configuração efetuada no hardware, uma ou mais dessas portas poderão estar totalmente ou
parcialmente disponíveis.
Para utilizar essas portas de I/O basta escrever o valor desejado, caso seja saída, ou
efetuar a leitura, caso seja entrada. Se um dado presente em uma porta for alterado após ter
sido efetuada a leitura essa alteração não será percebida pelo sistema, até que seja feita uma
nova leitura. Isso acontece porque cada uma das linhas funciona como um Buffer tri-state de
um bit. No caso da escrita, é associado a cada uma das linhas um flip-flop do tipo D, de um
bit. Na figura a 6 é apresentado um esquema básico de um dos pinos de uma porta. Apesar do
esquema não ser na realidade igual para todas as portas, será tomado como padrão apenas
para essa explicação.
2.1.6 Temporizadores/Contadores
Os 8051 possuem internamente dois Temporizadores/Contadores (T/C), que são
D Q
CK Q
LÊ PINO
ESCREVE
LÊ LATCH
VIA DE DADOS INTERNA PINO
+
FIGURA 6 – DIAGRAMA DE BLOCO DE UMA PORTA I/O
25
geralmente utilizados para gerar eventos após ter decorrido um determinado intervalo de
tempo. Também são usados na geração de pedidos de interrupção periódicos, ou ainda na
contagem de tempo e na medição da largura de pulsos externos. Ambos podem ser
configurados como temporizador ou contador de eventos.
Esses T/C são programados por software, e sua operação ocorre de forma
independente em relação aos demais sistemas do microcontrolador, podendo ser habilitados
por software através de funções que manipulem seus bits de controle ou por um hardware
externo, utilizando os pinos de interrupção que serão detalhados mais adiante.
Quando configurado como Temporizados será incrementado um registro a cada ciclo
de máquina. Levando em conta a arquitetura interna da família MCS-51, onde cada ciclo de
máquina corresponde a 12 períodos do Clock, a taxa de contagem será de 1/12 da freqüência
do oscilador.
Na função de Contador, um registro será incrementado em resposta a uma transição
de "1" para "0" (borda de descida) de seu correspondente pino de entrada externa, T0 (P3.4) e
T1 (P3.5).
Nessa configuração, os pinos externos (T0 e T1) são amostrados a cada ciclo de
máquina. Quando uma amostragem indicar um nível alto em um ciclo de máquina e um nível
baixo no próximo ciclo, o contador será incrementado.
A taxa máxima de contagem será de 1/24 da freqüência do Clock, visto que são
necessários dois ciclos de máquina para o reconhecimento de uma transição de "1" para "0".
2.2 Sensores
2.2.1 Navegação e Determinação da Distância Pelo Som (SONAR)
26
Um SONAR (Sound Navigation and Ranging), ou seja, navegação e determinação da
distância pelo som, utiliza-se de ondas sonoras de alta freqüência para tal. (LEANG, 2004).
Seu funcionamento descrito a seguir é extremamente simples.
2.2.1.1 Princípios de funcionamento de um SONAR
O funcionamento básico de um sistema de SONAR se dá pela emissão de sinais
sonoros de alta freqüência e pela captação de sua reflexão. As ondas sonoras emitidas
percorrem o ambiente em um determinado tempo, que varia de acordo com o meio de
propagação e temperatura. (BERTULANI, 2004). Isso é demonstrado na tabela 6:
MeioTemperatura
em 0C
Metros/
segundo
Ar 25 340,29
Hidrogênio 0 1286
Oxigênio 0 317,2
Água 15 1450
Chumbo 20 1230
Alumínio 20 5100
Cobre 20 3560
Ferro 20 5130
Granito 0 6000
Borracha
vulcanizada0 54
Tomando como base as informações da tabela 2.6 e utilizando o ar como meio de
propagação, há uma temperatura de 25°C, o som alcança uma velocidade de
TABELA 6 – PROPAGAÇÃO DO SOM EM DIFERENTES MEIOS
27
aproximadamente 340,29 metros por segundo. Tendo como base esta informação podemos
aplicar a equação da figura 7 para determinar a distância percorrida pelo som.
A distância é obtida através da multiplicação da velocidade de propagação do som no
ar, tendo como base uma temperatura média de 25ºC (340,29 m/s), pelo tempo decorrido entre
a emissão do som e a captação do seu eco em segundos, dividido por 2 (ida e volta).
Para uma aplicação prática destes princípios é necessário o desenvolvimento de
dispositivos eletrônicos que tornem possível a emissão e recepção de sinais sonoros de alta
freqüência.
2.3 Os Atuadores
Os atuadores do dispositivo é que possibilitam o seu deslocamento. São compostos
por dois motores DC, ligados de forma independente a caixas de reduções apropriadas para
deslocar o peso de todo o equipamento na velocidade ideal. Esses dois motores são
controlados por quatro drivers de potência, que integrados ao programa gravado no
microcontrolador possibilitam uma movimentação em todas as direções. Como temos quatro fios, dois de cada motor, precisamos dispor de quatro drivers,
um para cada fio ligado de acordo com o diagrama da figura 8.
2viagem
somObjeto
TVD
OndeD – Distância do ObjetoV – Velocidade do SomT – Tempo de viagem do som
FIGURA 7 – EQUAÇÃO DO CÁLCULO DA DISTÂNCIA PERCORRIDA PELO SOM
28
Cada motor pode assumir três estados, ligado para frente, ligado para trás e
desligado. Os drivers deverão ser acionados seguindo uma ordem específica. A tabela 2.7
ilustra a lógica de acionamento dos motores que será gerada pelo microcontrolador.
Motor 1 Driver 1 Driver 2
Para frente 1 0
Para Trás 0 1
Parado 0 0
Motor 2 Driver 3 Driver 4
Para frente 1 0
Para Trás 0 1
Parado 0 0
2.4 Navegação autônoma
MOTOR 1
MOTOR 2
M
M
Driver 1
Driver 2
Driver 3
Driver 4
P1_0
P1_1
P1_2
P1_3
FIGURA 8 – DIAGRAMA DE LIGAÇÃO DOS MOTORES.
Para frente
Para trás
Para frente
Para trás
TABELA 7 – LÓGICA DE ACIONAMENTO DOS MOTORES
29
A navegação autônoma de um robô corresponde ao seu deslocamento de um ponto a
outro dentro de um espaço determinado sem a intervenção de um operador externo. Para
alcançar esse objetivo o robô precisa ter a capacidade de se locomover pelo ambiente
identificando os obstáculos.
O grau de complexidade dessa navegação depende de vários fatores como o tipo de
sensores usados, o poder de processamento, o tipo de ambiente em que o robô navega, além
dos objetivos impostos, como a escolha de um determinado caminho, por exemplo.
Alguns dos primeiros dispositivos de navegação para robôs foram desenvolvidos na
década de 60. Eram robôs projetados para navegar em ambientes com obstáculos demarcados,
onde tomavam decisões de navegação de acordo com seu objetivo principal. Seus sensores
atualizavam as informações que eles tinham sobre o ambiente externo e ajudavam na
construção de novos ambientes. (CRESTANI JR.,2001).
Em um modelo de navegação autônoma, o controle pode ser realizado por uma
arquitetura disposta de forma modular e hierárquica, conforme a figura 9.
Essa arquitetura é formada inicialmente por dois módulos responsáveis pelas
tomadas de decisão. O primeiro módulo é responsável pelo desvio dos obstáculos do
ambiente, enquanto que o segundo é responsável pelo objetivo de localizar o alvo. Em uma
Módulo 1Desvio de obstáculos
Módulo 2Objetivo (Alvo)
Módulo de Coordenação
Atuadores do sistema
FIGURA 9 – MODELO DE NAVEGAÇÃO
30
determinada situação as respostas produzidas por esses dois módulos podem ser conflitantes.
Poe esse motivo implementa-se um terceiro módulo, que atua como coordenador, capaz de
ponderar a influência de cada desses módulos de acordo com cada situação. Esse módulo
coordenador não tem nenhum tipo de conhecimento, que com o tempo vai sendo adquirido
por aprendizado, na medida em que o dispositivo interage com o ambiente, levando sempre
em consideração os objetivos principais do sistema. (CRESTANI JR.,2001).
Como exemplo podemos visualizar a figura 10, uma representação em que um robô
recebe ao mesmo tempo informações conflitantes dos dois módulos. Um determina o avanço
do robô, pois o alvo está logo à frente e o outro determina o desvio do obstáculo, que está
obstruindo a passagem.
ObjetivoRob
ô
Ob
stá
cu
lo
FIGURA 10 – EXEMPLO DE CONFLITO ENTRE OS DOIS MÓDULOS
Módulo 2Alcançar Objetivo
Módulo 1Desviar
obstáculo
31
3 MATERIAIS E MÉTODOS
O primeiro passo no desenvolvimento desse projeto, foi realizar diversos testes com
os microcontroladores da família 8051, cujo integrante AT89S8252 é a base de todo o sistema
desenvolvido.
Para a realização desses testes foi utilizado um kit de leitura e gravação de
microcontroladores 8051 e literatura específica sobre o assunto.
O passo seguinte foi o desenvolvimento do sensor utilizado (SONAR). Com base nas
informações estudadas a respeito do microcontrolador, foi desenvolvida a função responsável
pelo cálculo da distância percorrida pelo som emitido pelo módulo de emissão, e recebido
pelo de recepção, construídos na seqüência.
Após o estudo do microcontrolador 8051 e do desenvolvimento do módulo de
SONAR, começou-se então a construção da parte mecânica do dispositivo utilizado para o
deslocamento autônomo. Foram realizados vários testes de tração e deslocamento, de
velocidade, de consumo de energia, para chegar ao modelo final, que é alimentado por duas
baterias de 12V/2,5A, ligadas a reguladores de tensão que fornecem as tensões necessárias
para cada ponto do sistema. O deslocamento do dispositivo se dá através de dois motores DC
independentes, ligados a reduções formadas por engrenagens plásticas, fornecendo assim o
troque necessário para o deslocamento do dispositivo e uma velocidade constante nos dois
motores.
Depois disso foi iniciado o desenvolvimento do software de controle dos motores e
de tomada de decisão. Esse software é responsável por todo o funcionamento do sistema e
recebe os dados da função SONAR e aplica os resultados nos atuadores do sistema.
Na parte final foi construído um ambiente para os teste de deslocamento e dos
sensores do dispositivo, onde foram criados obstáculos para estimular cada ponto do sistema,
utilizando e testando assim, todos os recursos disponíveis.
A figura 11 mostra a estrutura de todo o sistema.
3.1 O SONAR
Com base nos estudos realizados, foi possível elaborar um software que, em conjunto
Microcontrolador
Motores DC
Módulo Emissor
Módulo Receptor
SONAR
Baterias e reguladores
12 volts
5 volts
Drive
Sin
al
Instrução
Função SONAR
Software Principal
12 volts
FIGURA 11 – ESTRUTURA GERAL DO SISTEMA
33
com o circuito emissor e receptor de ultra-sons, identifica de forma clara, qualquer obstáculo
que estiver à frente do dispositivo. A seguir serão descritos os métodos utilizados para o
desenvolvimento do sistema de SONAR.
3.1.1 Construção dos dispositivos de emissão e recepção
Para o desenvolvimento do sistema de SONAR foi necessária a construção de dois
módulos, um funcionando como emissor e o outro como receptor. O primeiro módulo, emite
um sinal de alta freqüência, de 40KHz, modulado em tom. Esse sinal percorre o ambiente e
retornar assim que refletir em algum obstáculo. O segundo módulo, receptor, decodifica esse
sinal de 40KHz, de forma que somente o sinal emitido passe, eliminando qualquer outro sinal
indesejado.
A seguir, é demonstrado um exemplo do circuito emissor de alta freqüência:
Como pode ser visto na figura 12, toda vez que o pino 4 (reset) do temporizador
LM555 estiver com um nível alto, é gerado um sinal que é aplicado na base do transistor NPN
de uso geral 2N3904, fazendo com que o transdutor emita um sinal de 40 KHz modulado em
FIGURA 12 – CIRCUITO EMISSOR
LM 555
34
tom, para ser reconhecido na etapa receptora.
Após refletir em algum obstáculo, o sinal é recebido e precisa ser amplificado,
filtrado e convertido em nível lógico pra ser inserido diretamente no microcontrolador, onde
estará o software responsável pelo processamento dos sinais. A figura 13 mostra o circuito
receptor.
O sinal recebido na freqüência de 40kHz é aplicado em um amplificador operacional
padrão LM741. O sinal é amplificado na ordem de 1 para 1000 e aplicado na entrada de um
decodificador de tom LM567, ajustado para identificar somente o tom transmitido pelo
emissor. A saída do LM567 se mantém em nível alto quando não há nenhum sinal
decodificado, mudando para um nível baixo assim que o sinal transmitido pelo outro módulo
seja detectado. Na saída do LM567 está um comparador LM311, para evitar acionamentos
indesejados.
Na figura 14 tem-se as placas de circuito impresso com as listas de componentes dos
respectivos módulos emissor e receptor. Para a confecção das placas foi utilizado o software
editor de layout de circuitos Eagle, versão 4.03 para windows.
FIGURA 13 – CIRCUITO RECEPTOR
35
Quantidade DescriçãoSemicondutores
01 LM555 (Single Timer)01 2N3904 (Transistor NPN de uso Geral)
Resistores02 10k 1/8w (Marrom, Preto, Laranja)01 10k trim-pot01 1k 1/8w (Marrom, Preto, Vermelho)01 560 1/8w (Verde, Azul, Marrom)
Capacitores01 1nf (Capacitor cerâmico)
Diversos01 Transdutor ultra-sônico de 40khz (TX)
TABELA 8 – LISTA DE COMPONENTES UTILIZADOS NO EMISSOR
FIGURA 14 – LAYOUT DE PLACA DO EMISSOR
FIGURA 15 – LAYOUT DE PLACA DO RECEPTOR
36
Quantidade DescriçãoSemicondutores
01 LM741 (Amplificador Operacional)01 LM567 (Decodificador de tom)01 LM311 (Comparador)
Resistores02 10k 1/8w (Marrom, Preto, Laranja)02 10k trim-pot02 1k 1/8w (Marrom, Preto, Vermelho)01 330 1/8w (Laranja, Laranja, Marrom)01 22k 1/8w (Vermelho, Vermelho, Laranja)01 18k 1/8w (Marrom, Cinza, Laranja)01 1M 1/8w (Marrom, Preto, Verde)
Capacitores02 20nf (Capacitor cerâmico)01 10nf (Capacitor cerâmico)01 1nf (Capacitor cerâmico)
Diversos01 Transdutor ultra-sônico de 40khz (RX)
3.1.2 Configuração do Microcontrolador
Para utilizar os módulos descritos anteriormente, foi necessário desenvolver uma
função gravada no microcontrolador para que o conjunto composto pelos dois módulos, mais
o microcontrolador, pudesse determinar a distância do dispositivo em relação aos obstáculos.
A configuração foi feita com base nos estudos realizados sobre o microcontrolador,
utilizando a função temporizador do mesmo e uma interrupção externa para interromper a
contagem assim que um sinal for recebido e decodificado.
O T/C0 do microcontrolador foi configurado para operar como temporizador no
modo 2, de 8 bits com recarga automática. Neste modo, os registros TL1 e TL0 são
responsáveis pela contagem e TH1 e TH0 ficam com o valor a ser carregado nos registros
TL1 e TL0, quando ocorrer overflow. Mesmo com a recarga automática do valor da
contagem, os registros TH1 e TH0 podem ser alterados a qualquer momento.
Neste modo de funcionamento, tem-se um sistema no qual não se precisa reescrever
TABELA 9 – LISTA DE COMPONENTES UTILIZADOS NO RECEPTOR
37
por software o valor a ser contado. Aqui, escreve-se no registro TLx o valor inicial da
contagem e em THx o valor inicial da próxima contagem. Ao ocorrer o overflow em TLx, o
sistema gera a interrupção e automaticamente recarrega em TLx o valor contido em THx, e
prossegue incrementando sob comando do sinal externo (contador) ou interno (temporizador).
Devido à recarga automática, não é necessário que seja feita a carga do valor inicial
na rotina de interrupção.
Na operação com T/C tem-se 4 modos possíveis de operação. A escolha de um dos
quatro modos de operação e a seleção do T/C para Temporizador ou Contador é feita através
de um registro especial chamado TMOD (Time Mode - Modo do Temporizador).
Esse registro é endereçável a byte, portanto sua configuração não pode ser feita bit a
bit. A figura 17 demonstra a configuração utilizada.
GATE-1 C/T-1 M1-1 M0-1 GATE-0 C/T-0 M1-0 M0-0
0 0 0 0 0 0 1 0
FIGURA 16 – DIAGRAMA DE BLOCO DO MODO 2
T/C 1 T/C 0
FIGURA 17 – CONFIGURAÇÃO DO REGISTRADOR TMOD
38
GATE-X – Quando GATE.x = 1 e TRx = 1, o temporizador irá operar somente enquanto o
pino INTx = 1 (controle por Hardware). Quando GATE.x = 0, o temporizador irá operar
somente quando TRx = 1 (controle por Software). TRx é um bit de controle do registrador
TCON, que será detalhado na seqüência.
C/T-X – Seleciona a função, Temporizador ou contador. Se o bit for 0 então funcionará como
Temporizador, e se o bit for 1 será contador.
M1-X e M0-X – Bits que configuram o modo de operação
Dessa forma, levando em consideração a função descrita de cada bit, a configuração
setada na figura 17, habilita o T/C0 como temporizador, no modo dois, com controle feito por
software.
Outro registrador que é utilizado em conjunto com o TMOD na configuração e uso
dos T/C é o TCON.
Para escolher a forma com que a interrupção externa é ativada é preciso configurar o
registro TCON (Controle do Temporizador), através do bit 0 para o T/C0, ou através do bit 2
para o T/C1. Esse registrador é endereçável a bit.
IE1 IT1 IE0 IT0
- - - 1
O bit IT0, setado, configura a Interrupção INT0, pino P3.2 do microcontrolador para
ser ativada com borda de descida, ou seja, a interrupção vai ser ativada quando houver uma
mudança de 1 para 0 no pino P3.2.
As interrupções no 8051 são mascaradas, ou seja, podem ser desabilitadas através de
comandos de software. Para esse controle de habilitação das interrupções, existe um
registrador, o IE (Interrupt Enable). Na figura 19 são descritas as funções desse registrador.
FIGURA 18 – CONFIGURAÇÃO DO REGISTRADOR TCON
39
EA X X ES ET1 EX1 ET0 EX0
1 - - 0 0 0 0 1
O bit EA setado, permite que cada opção seguinte seja habilitada de forma
individual. O bit ES habilita a interrupção pedida pelo canal serial, e como não foi usada foi
resetada. O mesmo ocorre com ET1 e ET0, que habilita a interrupção pedida pelos T/Cs, e
com a EX1, que é a interrupção externa 1, no pino P3.3. Já a interrupção EX0 precisa ser
setada, pois será utilizada para receber o sinal externo para gerar a interrupção.
3.1.3 Cálculo da distância
Para realizar o cálculo da distância de um determinado obstáculo detectado foi
preciso, além das configurações realizadas no microcontrolador, desenvolver um algoritmo
específico para a função.
A primeira parte do algoritmo lê do temporizador do microcontrolador o número de
contagens realizadas no intervalo de emissão e recepção do sinal de ultra-som. Esse sinal é
emitido através de um pulso alto (1) na porta P1.7, que está ligada ao módulo de emissão do
sinal de ultra-som. No momento em que o sinal é emitido inicia-se a contagem, e como o
temporizador está configurado para operar em modo 2, a cada 256 contagens de TL0 é gerado
um overflow, incrementando a variável de contagem e iniciando-a novamente.
O sinal é recebido através de uma transição de borda de descida de 1 para 0, gerada
pelo receptor de ultra-som através da porta P3.2, gerando assim uma interrupção externa 0
(INT/0) já configurada anteriormente, parando a contagem e realizando o cálculo explicado na
FIGURA 19 – CONTROLE DE HABILITAÇÃO DAS INTERRUPÇÕES
40
seqüência.
O primeiro passo é descobrir qual o tempo gasto para realizar cada contagem. Neste
caso, o cálculo é realizado tendo como base um sistema que utilize um clock de 12 MHz,
gerado através de um cristal oscilador, com instruções sendo processadas entre 1s e 4s.
Levando em conta essas características do microcontrolador, podemos calcular o tempo gasto
TG para realizar cada contagem.
Tendo o tempo gasto em cada contagem e o número total de contagens, obtido pela
multiplicação do número de overflows por 256 (Modo 2) mais o valor de TL0, pode-se
descobrir a variável t, que é o tempo total gasto em cada contagem. Com os valores dessas
variáveis é possível então, calcular a distância de um determinado obstáculo.
3.2 Construção do dispositivo
A construção do dispositivo foi desenvolvida após todos os estudos realizados com o
TG = (Clock x 106)/12TG = (12,0000 x 106) /12 = 10000000TG = 1 / 10000000 = 0,0000001TG = 0,0000001 segundos
FIGURA 20 – TEMPO GASTO EM CADA CONTAGEM (TG)
2
t VS D
NC = Número de overflows*256 + TL0 t = NC * TG
D = DistânciaVS = Velocidade do Som no ar (25°C – 340,29)t = Tempo total gasto para realizar as contagens2 = Ida e volta do som
FIGURA 21 – CÁLCULO DA DISTÂNCIA
41
microcontrolador e como o dispositivo de SONAR. Desta forma foi possível integrar todos as
partes do projeto nessa etapa do trabalho.
3.2.1 Alimentação
A alimentação do dispositivo é feita através de duas baterias de 2,5A. Todas as
tensões necessárias para o funcionamento do sistema são geradas a partir de reguladores de
tensão, adaptados a um circuito de potência e um radiador de calor. Na figura 22, é
apresentado o diagrama esquemático da etapa de alimentação e a lista dos componentes
utilizados.
FIGURA 22 – DIAGRAMA ESQUEMÁTICO DA FONTE.
FIGURA 23 – LAYOUT DE PLACA DA FONTE DE ALIMENTAÇÃO
42
Quant. DescriçãoSemicondutores
02 TIP125 (Transistor Darlington de potência)01 LM7805 (Regulador de Tensão de 5 volts)01 LM7812 (Regulador de Tensão de 12 volts)
Resistores02 6,8 1W (Azul, Cinza, Ouro)
3.2.2 Atuadores
Para acionar os dois motores do dispositivo são necessários quatro drivers de
potência que recebem do microcontrolador os comandos para locomoção. Cada driver suporta
uma tensão de 30V com uma corrente de até 2A, o que é mais do que suficiente para o
funcionamento do dispositivo, levando em conta o consumo dos motores e o peso do
dispositivo. Esse excedente de potência elimina a necessidade de utilizar ventilação forçada,
economizando assim a carga das baterias. O driver foi originalmente desenvolvido para ser
usado com motores de passo. Por isso, foi adaptado para trabalhar com motores DC.
A figura 24 mostra o diagrama esquemático do driver. Os transistores escolhidos
proporcionam uma ótima corrente de trabalho na saída e uma boa sensibilidade na entrada.
FIGURA 24 – DIAGRAMA ESQUEMÁTICO DO DRIVER DE POTÊNCIA.
TABELA 10 – COMPONENTES UTILIZADOS NA FONTE
43
Os componentes utilizados para a montagem de cada driver são dispostos a seguir.
Quant. DescriçãoSemicondutores
01 TIP125 (Transistor Darlington de potência)01 TIP122 (Transistor Darlington de potência)02 BC547 – Transistor NPN de uso geral
Resistores01 330 1/8w (Laranja, Laranja, Marrom)01 1k 1/8w(Marrom, Preto, Vermelho)01 3,3k 1/8w (Laranja, Laranja, Vermelho)03 4,7k 1/8w (Amarelo, Violeta, Vermelho)
3.2.3 Reduções
Para atingir a velocidade e o torque necessários para o deslocamento do dispositivo,
foram montadas reduções de velocidade utilizando engrenagens de nylon. A relação ideal foi
obtida através de inúmeras tentativas, com diferentes tamanhos de engrenagens. Na figura 25
está representada a redução final utilizada em cada roda.
TABELA 11 – COMPONENTES UTILIZADOS NO DRIVER
MOTOR
1
2345
6
Diâmetro dasEngrenagens
1 – 07 mm2 – 38 mm3 – 10 mm4 – 18 mm5 – 13 mm6 – 65 mm
FIGURA 25 – RELAÇÃO DAS ENGRENAGENS DA REDUÇÃO
44
3.2.4 Placa de controle
Para o desenvolvimento do trabalho foi adquirido um kit de leitura e gravação do
microcontrolador AT89S8252, que foi utilizado como placa de controle. Isso foi possível pois
o kit disponibiliza as conexões para gravação e para as portas de I/O do microcontrolador,
além de um display. Na figura 26 é apresentado o kit utilizado para desenvolver o trabalho.
FIGURA 26 – KIT UTILIZADO NO TRABALHO
45
4 RESULTADOS OBTIDOS
Para testar o dispositivo e analisar cada característica desenvolvida, foi criado um
ambiente onde, através de obstáculos, o dispositivo pode usar todos os recursos disponíveis.
Para a navegação nesse ambiente, foram estipuladas algumas regras de controle. Essas regras
de controle podem ser modificadas, de acordo com a necessidade de utilização do dispositivo.
As regras estabelecidas no software de controle são:
1º - Mover-se em linha reta;
2º - Identificar obstáculos que estejam a 0,15m ou menos;
3º - Ao identificar um obstáculo, desviar 90 graus para a direita.
Assim, usando um simples código para cumprir essas regras estipuladas, foi possível
ao dispositivo se locomover de forma autônoma no ambiente criado para os testes.
Depois dos testes realizados pode-se observar que os objetivos propostos foram
alcançados de forma satisfatória, pois além de ter sido construído com materiais de baixo
custo de fácil aquisição, o dispositivo apresenta uma importante característica, que é a de
poder ser programado de acordo com a necessidade de sua utilização.
Na figura 27 está a representação do ambiente criado para os testes, e na figura 28,
uma foto do dispositivo depois de pronto.
Na figura 27 pode-se notar que o dispositivo se locomove de acordo com as regras
estipuladas. A simplicidade do ambiente de testes favorece o conjunto de regras, também
simples, que foram utilizadas no experimento. Um conjunto de regras mais elaborado
permitirá ao dispositivo navegar em ambientes mais complexos.
E nt
ra da S
a íd a
Caminho percorrido
FIGURA 27 – AMBIENTE DE TESTES
FIGURA 28 – DISPOSITIVO DE NAVEGAÇÃO AUTÔNOMA
47
5 CONCLUSÕES E TRABALHOS FUTUROS
5.1 Conclusão
A configuração correta dos registradores de interrupção e dos temporizadores do
microcontrolador utilizado, foi sem dúvidas o ponto fundamental no desenvolvimento do
trabalho.
A maior dificuldade em relação ao desenvolvimento foi na implementação do
sistema de SONAR, mais especificamente na otimização do software que foi desenvolvido. A
excelente precisão obtida, podendo até ser comparada com dispositivos comerciais, foi o
resultado de inúmeros testes tanto no software gravado no microcontrolador, como no
material utilizado nas interfaces dos sensores.
Outro ponto importante foi os ajustes realizados no dispositivo, a forma com que o
software recebia os sinais captados pelos sensores e os convertia em sinais digitais, que eram
utilizados pelo software principal para interagir com os atuadores do dispositivo.
O objetivo principal do trabalho foi alcançado, e o dispositivo desenvolvido servirá
como ferramenta no desenvolvimento de projetos que envolvam técnicas de aprendizado
computacional, navegação autônoma e inteligência artificial. Isso pode ser visto na seqüência,
onde são citadas algumas opções para trabalhos futuros, utilizando o dispositivo
desenvolvido, ou então o aperfeiçoamento do mesmo.
5.2 Trabalhos futuros
Existem inúmeras possibilidades para a realização de trabalhos futuros utilizando
como base o dispositivo desenvolvido. Abaixo seguem algumas sugestões:
- Aumentar o número de sensores SONAR, e adicionar outros tipos, como sensores de
toque e de luz;
- Desenvolver um sistema de orientação de Norte, Sul, Leste e Oeste, usando componentes
do tipo bússola eletrônica;
- Implementar um banco de memória ao microcontrolador para que o dispositivo possa
armazenar ambientes e utilizar, de forma mais precisa, as técnicas de aprendizado
computacional;
- Desenvolver um sistema de comunicação entre o dispositivo e um microcomputador,
através de RF, para permitir a coleta de dados diretamente do dispositivo e a gravação e
leitura do microcontrolador.
- Ajustar o software de navegação autônoma para um deslocamento mais preciso e otimizado.
49
REFERÊNCIAS BIBLIOGRÁFICAS
BERTULANI, Carlos. Ondas Sonoras. Ensino de física à distância. Disponível em: <http://www.if.ufrj.br/teaching/fis2/ondas2/ondas2.html> Acessado em: 15 jul. 2004.
CRESTANI JR., Paulo Roberto. Sistemas inteligentes de navegação autônoma: uma abordagem modular e hierárquica com novos mecanismos de memória e aprendizagem. Dissertação (Mestrado) Unicamp: Campinas-SP, 2001.
GIRCZYC, Gregory. Software Development for the Rotating Sonar Project. Disponível em: <http://www.cs.ualberta.ca/~zhang/gregory/> Acessado em: 10 jul. 2004.
KEIL SOFTWARE. General: Byte-Wise Access to Float Values. Disponível em <http://www.keil.com/support/docs/2768.htm > Acessado em: 01 nov. 2004.
LEANG, Kam. Sonar Sensor for the MiniBots. Disponível em: <http://www.leang.com/robotics/info/articles/minison/minison.html> Acessado em: 11 jul. 2004.
LIMA, Alessandro de Souza. Microcontrolador 8051. Disponível em: <http://www.dmat.furg.br/~vagner/8051emu/apostila/> Acesso em 10 set. 2004.
MECATRÔNICA FÁCIL. São Paulo: Editora Saber, Ano 1, nº 1, nov. 2001. 32p.
MITCHELL, Tom M. Machine Learning. International Edition: McGraw-Hill, 1997.
PHILIPS SEMICONDUCTORS, 80C51 8-bit microcontroller family. 8XC51_8XC52_6.pdf. Datasheet. http://www.semiconductors.philips.com/acrobat/datasheets/, 04 ago. 2002. Arquivo 260K, Acrobat Destiller Command 3.01.
SABER ELETRÔNICA. Especial. São Paulo: Editora Saber, Ano 1, nº 1, out. 2000. 78 p. Edição Especial.
SILVA Junior, Vidal Pereira da. Aplicações Práticas do microcontrolador 8051. 5ª edição. São Paulo: Érica, 1994.
SUHETT, Marcos Riva. Eletrônica, Programação e Robótica. Disponível em <http://www.mrshp.hpg.ig.com.br/rob.htm> Acessado em: 15 set. 2004.
TOCCI, Ronald J.; WIDMER, Neal S. Sistemas Digitais, Princípios eAplicações. São Paulo, Makron Books, 2003.
WHITTEN JR., John. SONAR Ranging System. Disponível em <http://www.wizard.org/SONARdoc.html> Acessado em: 10 jul. 2004.
51
ANEXOS
ANEXO A
Código gravado no microcontrolador, desenvolvido utilizando o software C51 do fabricante KEIL, um compilador C e assembler para microcontroladores 8051.
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// SONAR
// Autor: Gabriel Santin
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include <at898252.h>
#include <display.h> //disponibiliza as funções para trabalhar com display
long int overs;
void resultado(void);
void frente(void);
//void direita(void);
//void esquerda(void);
void parado(void);
// Aciona os drivers dos motores fazendo com que o dispositivo se desloque
para frente, direita, esquerda e pare.
void frente(void)
{
P1_0=0;
P1_1=1;
P1_2=0;
P1_3=1;
}
void direita(void)
{
P1_7=0;
P1_0=1;
P1_1=0;
P1_2=0;
P1_3=1;
delay(0xFFFF);
delay(0x7FFF);
}
/*void esquerda(void)
{
P1_0=0;
P1_1=1;
53
P1_2=1;
P1_3=0;
delay(0xFFFFF);
}
void parado(void)
{
P1_0=0;
P1_1=0;
P1_2=0;
P1_3=0;
}*/
void main(void)
{
P1_7=0;
iniciar_disp(); //Inicializa o display
enviar_dsp_frase(" TCC URI 2004",0,0);
enviar_dsp_frase(" GABRIEL SANTIN",1,0);
EA=1; //Permite que cada interrupção seja programada individualmente
ES=0;
ET1=0;
EX1=0;
ET0=0;
EX0=1; //Habilta a interrupção externa 0;
IT0=1; //ativa a interrupção com borda de descida Ex.: tá em 1 e vai pra
0;
//Configuração do Registro TMOD
TMOD=0x2; //Gate0=0, CT0=0, M1.0=1, M0.0=0;
overs=0; //Zera a variável overs
//Zera as variáveis de contagem
TH0=0x0;
TL0=0x0;
overs=0;
frente();
while (1)
{
P1_7=0;
TR0=1;//Liga o timer
P1_7=1;
while(IE0==0 && P1_7==1)
{
//Conta cada overflow ocorrido
while (!TF0){}
overs++;
54
TF0=0;
}
}
}
void resultado(void) interrupt 0
{
P1_7=0;
// Se a distância estiver entre 5 e 10 Overflows, o dispositivo vira para a
direira e segue novamente para frente.
if ((overs>5) && (overs<10))
{
direita();
frente();
}
overs=0;
delay(0xFFF);
delay(0xFFF);
delay(0xFFF);
}
55