trabalho de conclusão

88
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

Upload: gsantin1

Post on 24-Jun-2015

1.708 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Trabalho de Conclusão

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

Page 2: Trabalho de Conclusão

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

Page 3: Trabalho de Conclusão

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

Page 4: Trabalho de Conclusão

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.

Page 5: Trabalho de Conclusão

Se o conhecimento pode criar problemas,

não é através da ignorância que podemos solucioná-los.

(Isaac Asimov)

Page 6: Trabalho de Conclusão

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

Page 7: Trabalho de Conclusão

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.

Page 8: Trabalho de Conclusão

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.

Page 9: Trabalho de Conclusão

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

Page 10: Trabalho de Conclusão

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

Page 11: Trabalho de Conclusão

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

Page 12: Trabalho de Conclusão

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

Page 13: Trabalho de Conclusão

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

Page 14: Trabalho de Conclusão

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.

Page 15: Trabalho de Conclusão

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

Page 16: Trabalho de Conclusão

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.

Page 17: Trabalho de Conclusão

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

Page 18: Trabalho de Conclusão

2.1.3 Pinagem e Diagrama de bloco do 8051 (AT89S8252)

FIGURA 1 – PINAGEM DO 8051

FIGURA 2 – DIAGRAMA DE BLOCO DO 8051

17

Page 19: Trabalho de Conclusão

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

Page 20: Trabalho de Conclusão

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

Page 21: Trabalho de Conclusão

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

Page 22: Trabalho de Conclusão

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

Page 23: Trabalho de Conclusão

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

Page 24: Trabalho de Conclusão

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

Page 25: Trabalho de Conclusão

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

Page 26: Trabalho de Conclusão

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

Page 27: Trabalho de Conclusão

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

Page 28: Trabalho de Conclusão

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

Page 29: Trabalho de Conclusão

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

Page 30: Trabalho de Conclusão

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

Page 31: Trabalho de Conclusão

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

Page 32: Trabalho de Conclusão

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

Page 33: Trabalho de Conclusão

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

Page 34: Trabalho de Conclusão

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

Page 35: Trabalho de Conclusão

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

Page 36: Trabalho de Conclusão

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

Page 37: Trabalho de Conclusão

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

Page 38: Trabalho de Conclusão

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

Page 39: Trabalho de Conclusão

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

Page 40: Trabalho de Conclusão

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

Page 41: Trabalho de Conclusão

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

Page 42: Trabalho de Conclusão

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

Page 43: Trabalho de Conclusão

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

Page 44: Trabalho de Conclusão

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

Page 45: Trabalho de Conclusão

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

Page 46: Trabalho de Conclusão

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

Page 47: Trabalho de Conclusão

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.

Page 48: Trabalho de Conclusão

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

Page 49: Trabalho de Conclusão

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.

Page 50: Trabalho de Conclusão

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

Page 51: Trabalho de Conclusão

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.

Page 52: Trabalho de Conclusão

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

Page 53: Trabalho de Conclusão

ANEXOS

Page 54: Trabalho de Conclusão

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

Page 55: Trabalho de Conclusão

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

Page 56: Trabalho de Conclusão

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