sistema de alarme veÍcular inteligente - … · teclado matricial e display lcd; d) comunicação...

68
UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS CURSO DE ENGENHARIA DA COMPUTAÇÃO RICARDO AFONSO PEDRI VINICIUS HANREJSZKOW SISTEMA DE ALARME VEÍCULAR INTELIGENTE Trabalho de Conclusão de Curso. Prof. Valfredo Pilla Jr. Orientador Curitiba, Dezembro de 2010.

Upload: vuongquynh

Post on 26-Sep-2018

214 views

Category:

Documents


1 download

TRANSCRIPT

UNIVERSIDADE POSITIVO

NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS

CURSO DE ENGENHARIA DA COMPUTAÇÃO

RICARDO AFONSO PEDRI – VINICIUS HANREJSZKOW

SISTEMA DE ALARME VEÍCULAR

INTELIGENTE

Trabalho de Conclusão de Curso.

Prof. Valfredo Pilla Jr.

Orientador

Curitiba, Dezembro de 2010.

ii

UNIVERSIDADE POSITIVO

Reitor: Prof. José Pio Martins

Vice-Reitor: Prof. Arno Antonio Gnoatto

Pró-Reitor de Graduação: Prof. Renato Casagrande

Diretor Acadêmico dos Núcleos de Ciências Exatas e Tecnológicas, Humanas e

Sociais Aplicadas, e Biológicas e da Saúde: Prof. Marcos José Tozzi

Coordenador do Curso de Engenharia da Computação: Prof. Edson Pedro Ferlin

iii

SUMÁRIO

LISTA DE ABREVIATURAS E SIGLAS ....................................................... V

LISTA DE FIGURAS .................................................................................... VI

LISTA DE TABELAS .................................................................................. VII

1 INTRODUÇÃO ........................................................................................ 1

2 ESPECIFICAÇÃO DO PROJETO ........................................................... 2

2.1 Características do projeto ....................................................................................................... 2 2.1.1 Requisitos ........................................................................................................................ 2

2.2 Arquitetura .............................................................................................................................. 3

2.3 Software.................................................................................................................................... 3

2.4 Hardware ................................................................................................................................. 4

2.5 Testes de validação do sistema ............................................................................................... 4 2.5.1 Teste módulo GSM .......................................................................................................... 4 2.5.2 Teste micro-controlador ................................................................................................... 5 2.5.3 Teste teclado e display ..................................................................................................... 6

2.6 Planejamento do projeto ......................................................................................................... 6

3 PROJETO ............................................................................................... 7

3.1 Hardware ................................................................................................................................. 7 3.1.1 Diagrama em blocos ........................................................................................................ 7 3.1.2 Descrição dos blocos ....................................................................................................... 8

3.1.2.1 Display ........................................................................................................................ 8 3.1.2.2 Módulo GSM .............................................................................................................. 9 3.1.2.3 Micro-controlador ..................................................................................................... 10 3.1.2.4 Alarme....................................................................................................................... 11 3.1.2.5 Teclado ...................................................................................................................... 12 3.1.2.6 Alimentação .............................................................................................................. 12 3.1.2.7 Veículo ...................................................................................................................... 13

3.1.3 Componentes ................................................................................................................. 13 3.1.4 Esquemáticos ................................................................................................................. 15

3.2 Firmware ................................................................................................................................ 16 3.2.1 Descritivo ....................................................................................................................... 16 3.2.2 Compilador .................................................................................................................... 16 3.2.3 Gravar o PIC .................................................................................................................. 16 3.2.4 Fluxograma .................................................................................................................... 18

iv

4 RESULTADOS ...................................................................................... 19

4.1 Módulo de configuração .............................................................................................................. 21

4.2 Disparo do alarme........................................................................................................................ 25

4.3 Ações no veículo ........................................................................................................................... 26

5 CONCLUSÃO ....................................................................................... 28

6 REFERÊNCIAS ..................................................................................... 29

7 ANEXO A <MANUAL DE INSTALAÇÃO> ........................................... 31

8 ANEXO B <MANUAL DE UTILIZAÇÃO> ............................................. 33

9 APÊNDICE <ARTIGO> ........................................................................ 36

v

LISTA DE ABREVIATURAS E SIGLAS

CI Circuito integrado

LED Light Emitting Diode

GSM Global System for Mobile communications

SMS Short Message Service

SIM Subscriber Identity Module

TTL Transistor-Transistor Logic

vi

LISTA DE FIGURAS

Figura 1 - Descrição da arquitetura do sistema. ......................................................................................... 3 Figura 2 - Diagrama em blocos ................................................................................................................... 4 Figura 3 – Cronograma de atividades do sistema ....................................................................................... 6 Figura 4 – circuito de comunicação micro-controlador/módulo. ................................................................ 7 Figura 5 – Definição dos pinos do display. .................................................................................................. 8 Figura 6 – Controle de contraste do display. ............................................................................................... 9 Figura 7 – Circuito de reset do micro-controlador 16F877A. ................................................................... 10 Figura 8 – Funcionamento dos sensores do alarme................................................................................... 11 Figura 9 – Circuito de alerta sonoro. ........................................................................................................ 11 Figura 10 – Diagrama da circuito do teclado. ........................................................................................... 12 Figura 11 – funcionamento da bobina do relé ........................................................................................... 13 Figura 12 - Circuito do micro-controlador e principais módulos. ............................................................ 15 Figura 13 – Configuração do WinPic800. ................................................................................................. 17 Figura 14 - Fluxograma do firmware ........................................................................................................ 18 Figura 15 – Módulo do sistema de alarme inteligente ............................................................................... 19 Figura 16 – Módulo de configuração ......................................................................................................... 20 Figura 17 – Módulo com o alarme ligado.................................................................................................. 20 Figura 18 – Módulo com o alarme disparado ............................................................................................ 21 Figura 19 - Tela incial ............................................................................................................................... 22 Figura 20 – Inserir Senha .......................................................................................................................... 22 Figura 21 – Senha Invalida ........................................................................................................................ 22 Figura 22 – Menu Geral............................................................................................................................. 22 Figura 23 – Menu do Telefone ................................................................................................................... 23 Figura 24 – Tela cadastrar telefone ........................................................................................................... 23 Figura 25 – Visualizar telefone .................................................................................................................. 23 Figura 26 – Alterar senha .......................................................................................................................... 23 Figura 27 – Progressão da tarefa .............................................................................................................. 24 Figura 28 – Confirmação de atividade concluída com sucesso ................................................................. 24

vii

LISTA DE TABELAS

Tabela 1 – Valores dos capacitores do clock ............................................................................................. 10 Tabela 2 – Pinos do teclado....................................................................................................................... 12

Tabela 3 - Tempo para inicialização do modulo SIM340.......................................................................... 24

Tabela 4 – Tempo de chegada as mensagens de disparo.......................................................................... 25

Tabela 5 – Ações sobre o veículo............................................................................................................... 26

Tabela 6 – Tempo decorrido para executar as ações no veículo................................................................26

viii

RESUMO

Este projeto descreve o desenvolvimento de um sistema de vigilância para

veículos com comunicação GSM. Para alertar o proprietário de um veículo que seu

alarme encontra-se disparado, é enviado ao número telefônico cadastrado na memória

da central, uma mensagem de texto personalizada informando a situação das portas (se

foram abertas ou não), e oferecendo a possibilidade ao proprietário de tomar ações

sobre o veículo mesmo estando a distância, através de mensagens de texto. Este

equipamento é composto por um módulo GSM, que possui função de transmitir a

mensagem de que o alarme esta disparado, recepcionar comandos vindos do

proprietário e repassar ao micro-controlador, que por sua vez é responsável por

coordenar o funcionamento do sistema como um todo. Também é possível realizar a

programação do número telefônico aos quais as mensagens serão envidas, através de um

display LCD e um teclado matricial.

Palavras-Chave: GSM, Veículo, Vigilância.

ix

ABSTRACT

This project describes the development of a monitoring system for vehicles with

GSM communication. To alert the owner of a vehicle that your alarm is triggered, a text

message is sent to the phone number registered in the memory, a custom text message

stating the status of ports (if they were open or not), and offering the possibility to the

owner taking action on the vehicle even though the distance, through text messages.

This equipment consists of a GSM module, which has the function to convert the

message that the alarm is triggered, to receive commands from the owner and pass on

the microcontroller, which in turn is responsible for coordinating the operation of the

system as a whole. You can also program the phone number to which the messages will

be sent, through an LCD display and a matrix keyboard.

Keywords: GSM, vehicle, surveillance.

1

1 INTRODUÇÃO

Na criminalidade contemporânea o veículo, como produto do crime de

receptação, tornou-se cada vez mais visado por uma extensa rede de ladrões, agressores,

golpistas, traficantes e delinqüentes juvenis e fez proliferar o número de locais de

desmanches ilegais (PORTAL DA SEGURANÇA NACIONAL, 2010).

De acordo com estudos fornecidos pelo DFRV (Delegacia de Furtos e Roubo de

Veículos) somente no mês de junho de 2008 houve uma média diária de 22 veículos

roubados em Curitiba e de 34 no interior do estado, com recuperação da ordem de 47%.

Sabemos que os ladrões se mostram cada vez mais preparados e habilidosos na

reincidência dessa prática criminosa, porém os proprietários de veículos, devem ficar

atentos e se precaver com a adoção de medidas de segurança contra qualquer possível

furto ou roubo de seu carro.

Muitas vezes nossos veículos ficam longe do alcance de nossos olhos e ouvidos

seja para trabalhar ou para passear, e podemos não ser alertados e muito menos realizar

alguma ação caso o veículo esteja sendo roubado ou simplesmente estiver com o alarme

disparado.

Agora imagine um sistema que integre um alarme automotivo e um sistema

GSM (GSM Tecnology, 2010) possibilita que o veículo ao qual o alarme esteja

instalado possa ser monitorado e controlado remotamente, desde um aviso informando

que o mesmo foi arrombado, até o bloqueio deste, utilizando apenas mensagens SMS.

Este é o projeto proposto, que descreve a criação de uma solução que possibilita o

aumento da segurança e maior tranquilidade e flexibilidade do seu proprietário.

Palavras-Chave: GSM, Veículo, Vigilância.

2

2 ESPECIFICAÇÃO DO PROJETO

Este projeto se destina ao desenvolvimento de um alarme automotivo

microcontrolado (Pereira, Fábio. 2005.), adequado para alertar sobre o seu disparo e

sobre as condições do veículo a qualquer momento, proporcionando realizar ações

como por exemplo: desligar ou ligar o motor, desativar ou ativar o alarme, verificar se o

alarme encontra-se ligado ou desligado, tudo através de mensagens de texto enviadas

pelo proprietário para a central GSM instalada dentro do veículo. A interface do módulo

veícular com o usuário é realizada através de um display e um teclado que em conjunto

proporcionam ao usuário configurar parâmetros importantes para o funcionamento do

sistema, como por exemplo: o número que as mensagens devem ser encaminhadas caso

o alarme dispare, o número que pode realizar ações sobre o veículo através de

mensagens de texto, a senha para ter acesso as configurações.

Este equipamento objetiva maior segurança a um veiculo estacionado em um

local aonde não se pode escutar o som, produzido pelo alarme caso ocorra o seu disparo.

E baixo custo de utilização por se tratar de tecnologia GSM e utilizar como comandos

mensagens SMS.

2.1 Características do projeto

a) Interação do usuário com o sistema via SMS, necessitando de um chip ativo por

alguma empresa de telefonia móvel, com o protocolo GSM;

b) Alimentação: bateria 12V +/- 1,25V; Consumo médio de corrente: 300mA; Potência

Média consumida de 3,6W;

c) Configuração do equipamento por meio de um módulo removível, composto de um

teclado matricial e display LCD;

d) Comunicação com o alarme do veículo via cabos;

e) Comunicação com o módulo GSM via RS232;

f) Sensores para detectar a de abertura das portas.

2.1.1 Requisitos

- Fonte de alimentação externa com tensão de 12 Volts.

- Sensores, para leitura das portas do veículo.

- Módulo GSM, Microprocessador, Teclado, Display e Chip GSM ativo;

3

2.2 Arquitetura

O fluxo normal do sistema depende do disparo do alarme e da situação das

portas, que são informadas na mensagem de alerta de disparo do alarme. Com as

informações necessárias em mãos, o proprietário poderá tomar remotamente ações que

considerar ideal para cada situação, como por exemplo: desligar a alimentação do motor

caso o carro esteja sendo roubado, ou desligar e ligar novamente o alarme caso o

mesmo tenha disparado por acaso. A figura 1 logo abaixo, ilustra de forma sucinta o

funcionamento do sistema.

Figura 1 - Descrição da arquitetura do sistema.

2.3 Software

O projeto possui um firmware que caso o alarme esteja ligado verifica seu estado

periodicamente, caso ocorra o disparo do alarme o micro-controlador emitirá os

comandos para o modem GSM enviar a mensagem SMS de aviso ao proprietário. Após

estes comandos serem processados e enviados, o software fica no aguardo de uma

4

resposta do usuário, caso ele queira tomar alguma ação sobre o veículo. Mesmo que o

alarme não esteja ligado, nosso sistema está habilitado para receber e executar os

comandos através de mensagens SMS, deixando de funcionar apenas o envio da

mensagem contendo a situação do alarme, pois depende exclusivamente do disparo do

mesmo.

2.4 Hardware

O sistema é composto por um bloco central chamado controle, este coordenada os

demais blocos que compõem o projeto, suas principais funções são: monitorar as portas

do veículo, tratar comandos e acionar o Módulo GSM, que por sua vez irá enviar uma

mensagem ao número que foi cadastrado através do display e do teclado, e recepcionar

comandos recebidos através de SMS. Para alimentar todo o nosso sistema, foi

produzido um bloco de alimentação que possui o objetivo de transformar os 12 Volts da

bateria do veículo nas diferentes tensões requeridas pelos demais blocos.

Figura 2 - Diagrama em blocos

2.5 Testes de validação do sistema

2.5.1 Teste módulo GSM

O módulo GSM é capaz de executar tarefas e trabalhar dados de forma que o

programador possa ter a informação de que necessitar do usuário dentro do cartão SIM,

facilitando assim a programação e o desempenho do módulo.

Para avaliar o funcionamento deste dispositivo é necessário um teste on-the-fly,

ou seja, testes de funcionamento diretos no módulo por intermédio de um computador.

Uma vantagem que deve ser levada em consideração é que o dispositivo

responde aos comandos AT (DEVELOPER‟S HOME, 2010), que é um linguagem de

5

comandos que consiste em uma série de textos curtos que, em conjunto, produzem

comandos que efetuam operações como ligações, finalizam ligações e mudar

parâmetros de conexão. Esta linguagem foi desenvolvida em 1977 e é utilizada até hoje

na grande maioria dos modems.

O fato do modem atender aos comandos AT facilita o desenvolvimento e

manutenção de sistemas criados nesse ambiente, pois possui uma linguagem simples e

clara para o desenvolvimento do sistema em questão. Chega-se assim a um item

importante deste estudo, o teste de funcionalidade do módulo via comandos AT.

Para facilitar esta etapa, é essencial encontrar todos os comandos necessários

para simulação do dispositivo com a finalidade desejada. Para melhor entendimento

destes, o comando está em negrito e sua resposta em itálico.

Comandos AT:

Teste interno:

- AT OK

Reseta todos os parâmetros para o padrão do fabricante:

- AT&F OK

Seleciona modo de mensagem SMS (Modo texto = 1)

- AT+CMGF=<mode> OK

Envia mensagem SMS (Somente no modo texto)

- AT+CMGS=<da><CR> TEXT <CTRL-Z>/<ESC>:

+CMGS: <mn> OU OK

Obs: <da> = Número de destino.

<mn> = Número da mensagem enviada.

2.5.2 Teste micro-controlador

Com o objetivo de garantir a funcionalidade do micro-controlador também é

necessário um teste do mesmo antes de passar para o passo seguinte de testar a sua

comunicação com o módulo.

Para testar o funcionamento do micro-controlador é necessário realizar a

gravação de um firmware que possa verificar a funcionalidade do componente. Para isso

devem ser executados os seguintes procedimentos: construção de um circuito para

gravar, um circuito para o correto funcionamento e a configuração do software de

gravação do micro-controlador, somente a partir deste momento em diante podemos

criar os programas para realizar os testes desejados.

O primeiro teste realizado, foi a gravação de um firmware que alterava

periodicamente o estado lógico de uma porta do micro-controlador, fazendo um LED

que estava conectado a esta porta piscar. Por mais simples que este teste pareça ser, ele

foi o nosso primeiro contato com o micro-controlador e garantiu que tínhamos o

controle sobre o mesmo.

Os próximos testes foram dedicados a enviar e receber comandos para o modem

GSM, pois são as principais funcionalidades deste projeto. Foram testados inúmeros

firmwares, aonde comandos de envio e tratamento das mensagens eram realizados

através das interrupções externa e serial. Porém observamos que o sistema fica mais

6

estável se não utilizarmos estas interrupções para tratamento de caracteres, apenas para

acionamento de funções específicas.

2.5.3 Teste teclado e display

Com o objetivo de garantir a integração do display, do teclado e do micro-

controlador é necessário testar o funcionamento destes em conjunto. Para isso foi

montado e simulado todo o funcionamento do teclado e do display em um software

chamado Proteus, com isto podemos programar o micro-controlador no compilador

PCW e testar imediatamente no hardware, vinculando o arquivo de extensão “.hex”

criado após a compilação do programa escrito em C ao hardware simulado no Proteus

(LABCENTER ELETRONICS, 2010).

Para validar o funcionamento do circuito foram realizados testes contínuos para

validação de funções básicas como: A letra que estou apertando é a letra que está

aparecendo no display?, A letra aparece no display?, A tecla de limpar esta

funcionando?, A tecla gravar esta efetuando esta operação com sucesso?, O que esta

gravado na memória do micro-controlador?, Etc.

2.6 Planejamento do projeto

Cronograma das atividades encontra-se na figura 3.

Figura 3 – Cronograma de atividades do sistema

7

3 PROJETO

3.1 Hardware

Para executar uma ação, o sistema aguarda o alarme ser disparado ou receber algum

comando via mensagem, recebida pelo módulo GSM. Para isso, a saída do alarme é

testada continuamente no loop de execução do micro-controlador. Enquanto o sistema

está aguardando, constantemente verifica por novas mensagens no módulo GSM.

Para a comunicação com o módulo GSM é utilizado o padrão RS232 (CAMI

RESEARCH INC, 2010), para tal comunicação utiliza-se o CI MAX232 . O mesmo é

utilizado para converter a tensão do micro-controlador e do módulo para o padrão de

RS232, permitindo assim uma comunicação estável, segue abaixo o circuito utilizado.

Figura 4 – circuito de comunicação micro-controlador/módulo.

Para a simulação dos circuitos foram utilizados os programas Proteus 7 pela

facilidade de sua simulação facilitando assim o teste de funcionamento do hardware

mesmo antes de monta-lo.

3.1.1 Diagrama em blocos

O diagrama de blocos, representado na figura 2, mostra uma visão macro do

hardware do projeto. A seguir a descrição dos seus blocos.

8

3.1.2 Descrição dos blocos

3.1.2.1 Display

O display é a parte aonde o usuário fará a interação visual durante a configuração

local do sistema. O display utilizado no projeto é um DISPLAY LCD 16x2

(WINSTAR, 2010).

Cada pino do display possui uma função especifica que deve ser conhecida e

respeitada para o correto funcionamento do mesmo. Abaixo segue explicação sobre,

qual o nome e função que cada pino possui, e o circuito utilizado para controle de

contraste.

Figura 5 – Definição dos pinos do display.

Pino 1 (GND): Pino que deve ser ligado ao terra do circuito.

Pino 2 (VCC): Pino que deve ser ligado a alimentação positiva do circuito.

9

Pino 3 (controle de contraste): Este pino deve ser ligado ao pino central de um

potenciômetro e os demais pinos do potenciômetro, um a alimentação

positiva do circuito e outro ao terra conforme figura abaixo para regular o contraste

(Forte quando em GND e fraco em Vcc),.

Figura 6 – Controle de contraste do display.

Pino 4 (RS): Seleciona se o que está trafegando é dado (1) ou instrução (0).

Pino 5 (RD/WR): Seleciona se é leitura (1) ou escrita (0), normalmente este pino é

ligado ao terra para que sempre que for necessário escrever algo no display, ele já esteja

selecionado para escrita, muito difícil possuir a necessidade de ler algo do display.

Pino 6 (EN): É o pulso do registrador, isto é, a cada pulso os dados serão

processador pelo controlador do LCD.

Pinos 7 (D0) ao 14 (D7): São os pinos de dados do display, é através deles que as

mensagens são exibidas.

3.1.2.2 Módulo GSM

O módulo GSM utilizado no sistema utiliza o CI SIM340 (SIM Tecnology, 2010). A

comunicação com o módulo GSM é feita através do padrão RS232 para possibilitar a

mudança do módulo, caso necessária, ou para futuras alterações na maneira da

interatividade com o usuário, não havendo impacto direto no hardware do sistema

central, já que este padrão é o mais utilizado na comunicação serial, presente em vários

equipamentos e de fácil adaptação.

Características SIM340:

Tri-Band GSM/GPRS 900/1800/1900MHz ou Quad-Band GSM/GPRS

850/900/1800/1900MHz;

Estação GPRS móvel classe B;

Controle via comandos AT;

Tamanho de 40mm x 33mm x 2,85mm;

10

Tensão de alimentação de 3.4 V a 4.5V, consumo de 2.5mA;

Funciona nas temperaturas de -20ºC até 55ºC.

3.1.2.3 Micro-controlador

PIC16F877A (MICROCHIP TECNOLOGY INC, 2010), RISC de alta performance.

Possui velocidade de funcionamento de 20 MHz de clock de entrada e 200 ns de

instrução por ciclo, 8K x 14 palavras de memória de programa flash, 368 x 8 bytes de

memória de dados (RAM), 256 x 8 bytes de memória de dados EEPROM, 40 pinos e

tensão de alimentação TTL (5 Volts). Este micro-controlador pode ter seu firmware

regravado até 100.000 vezes e pode regravar até 1.000.000 de vezes na memória

EEPROM que possui retenção de dados acima de 40 anos, possui circuito de detecção e

tratamento a falhas (Watchdog Timer) e possui baixo consumo de energia 7 mA. Segue

abaixo algumas características do 16F877A.

Recomendamos a montagem do circuito de reset do micro-controlador, apresentado

na figura 7 para proteger o dispositivo contra quedas de tensão, surtos de corrente e

correto funcionamento do mesmo.

Figura 7 – Circuito de reset do micro-controlador 16F877A.

R1 deve ser menor que 40 kΩ, garantindo que se ocorrer queda de tensão não viole

as especificações elétricas do dispositivo.

R2 deve ser maior que 1KΩ, pois possui função de limitar a corrente que flui para o

MCLR vinda do capacitor, em caso de colapso devido a descarga eletrostática.

Existem valores específicos de capacitores que devem ser colocados em série com

os pinos de clock e o terra definidos pelo fabricante para um bom funcionamento do

circuito. Segue abaixo uma tabela que especifica com os valores que devem ser

utilizados para cada tipo de freqüência.

Tabela 1 – Valores dos capacitores do clock.

11

3.1.2.4 Alarme

O alarme veicular foi adaptado para que tenha a interatividade como o sistema. O

módulo do alarme assim que detectar o roubo, irá disparar o seu alarme sonoro e

também informar o micro-controlador da sua detecção. Esta é uma parte muito

importante do projeto, pois se o furto não for detectado o sistema terá sua eficiência

comprometida.

O disparo do alarme se deve a abertura dos sensores de contato, presentes nas portas

do veículo. Estes sensores estarão ativos se alarme estiver ligado e servirão como

gatilho para alertar o dono do veículo sobre o disparo de seu alarme. Sua configuração

básica para o alarme ativo é normalmente fechado. Seu funcionamento é baseado em

duas portas do micro-controlador, aonde uma emite nível lógico alto e a outra recebe

este nível lógico alto reconhecendo assim que a porta esta fechada e o alarme não esta

disparado. Caso este nível lógico alto pare de chegar até a porta receptora do micro-

controlador o mesmo interpretará que a porta esta aberta, acionando assim o alarme e o

módulo GSM devendo este, enviar uma mensagem personalizada ao dono do veiculo

informando qual porta encontra-se aberta. A figura 8 demonstra o funcionamento dos

sensores.

Figura 8 – Funcionamento dos sensores do alarme.

Para emitir um alerta sonoro foi utilizado um buzzer, seu acionamento se deve ao

disparo do alarme e posterior liberação do interruptor ao nível lógico alto do micro-

controlador. Segue abaixo o circuito utilizado.

Figura 9 – Circuito de alerta sonoro.

12

3.1.2.5 Teclado

O teclado utilizado é um teclado matricial com 12 caracteres. O teclado é

responsável pela inserção dos dados pelo usuário durante a configuração local do

sistema.

O método de varredura do teclado é controlado através de 7 pinos do micro-

controlador, sendo 3 pinos responsáveis por varrer as colunas e 4 pinos responsáveis

por varrer as linhas. Na figura 10 segue o diagrama do circuito do teclado, que na

verdade é bem simples e consiste basicamente de botões interconectados entre linhas e

colunas que se forem apertados fecham um curto entre pontos da matriz e assim

conseguimos localizar qual botão foi apertado.

Figura 10 – Diagrama da circuito do teclado.

Tabela 2 – Pinos do teclado

3.1.2.6 Alimentação

A alimentação utilizada vem da bateria do veículo. Está bateria é de 12V, sendo

necessária a sua regulagem para os 5V do sistema. Para ajustar a tensão será utilizado o

regulador de tensão 7805 FAIRCHILD SEMICONDUTOR, 2010).

13

3.1.2.7 Veículo

Está descrito por veículo todos os componentes do veículo que serão controlados,

como por exemplo o motor. A parte da interação com o veículo remotamente é feita

através deste bloco, sendo necessária para executar as ações no veículo.

Devido a utilização de um carrinho elétrico, para cortar a alimentação dos motores

foram utilizados basicamente relés que atuaram como uma chave controlada pelo micro-

processador.

Os relés são componentes eletromecânicos capazes de controlar circuitos externos

de grandes correntes a partir de pequenas correntes ou tensões, ou seja, acionando um

relé com uma pilha podemos controlar um motor que esteja ligado em 110 ou 220 volts,

por exemplo.

O funcionamento dos relés é bem simples: quando uma corrente circula pela bobina,

esta cria um campo magnético que atrai um ou uma série de contatos fechando ou

abrindo circuitos. Ao cessar a corrente da bobina o campo magnético também cessa,

fazendo com que os contatos voltem para a posição original.

Os relés podem ter diversas configurações quanto aos seus contatos: podem ter

contatos NA, NF ou ambos, neste caso com um contato comum ou central (C).

Os contatos NA (normalmente aberto) são os que estão abertos enquanto a bobina não

está energizada e que fecham, quando a bobina recebe corrente. Os NF (normalmente

fechado) abrem-se quando a bobina recebe corrente, ao contrário dos NA. O contato

central ou C é o comum, ou seja, quando o contato NA fecha é com o C que se

estabelece a condução e o contrário com o NF. Segue abaixo ilustração do

funcionamento da bobina e do relé.

Figura 11 – funcionamento da bobina do relé.

3.1.3 Componentes

Os componentes utilizados no projeto do hardware são:

1 PIC 16F877A;

1 REGULADOR 7805;

1 MAX232;

3 LEDS;

1 CRISTAL OSCILADOR 20MHZ;

14

1 TECLADO MATRICIAL DE 12 CARACTERES;

1 DISPLAY LCD 16X2;

2 CAPACITORES DE 22pF;

4 CAPACITORES DE 1uF;

1 CHAVE SWITCH;

2 SENSORES DE CONTATO;

1 CAIXA PLÁSTICA 30 X 20 X 10 CM

1 ANTENA RECEPTORA.

RESISTORES DIVERSOS;

15

3.1.4 Esquemáticos

O esquemático da figura 12 mostra o circuito do micro-controlador e seus principais

módulos.

Figura 12 - Circuito do micro-controlador e principais módulos.

16

3.2 Firmware

3.2.1 Descritivo

O firmware foi desenvolvido em linguagem C utilizando a IDE PCW do fabricante

CCS, devido a sua grande facilidade de programação e variedade de bibliotecas

disponíveis se comparado a linguagem Assembly.

Para a comunicação com o módulo GSM via padrão RS232 foi utilizada a diretiva

de programação #use rs232 já pronta no compilador, esta diretiva ajusta os pinos

indicados como pino RX e pino TX para funcionarem como entrada e saída serial com

velocidade indicada em taxa, e com palavra de n bits.

Para a programação do display LCD foi utilizada a biblioteca mod_lcd.c, sendo

utilizadas as funções:

lcd_ini(): Responsável pela correta inicialização do display;

lcd_pos_xy(coluna,linha): Define em qual pixel do display a informação

deverá começar a ser escrita;

lcd_escreve(“Escreva aqui sua mensagem”) : Define e envia qual mensagem será exibida na tela do display LCD.

O algoritmo do teclado consiste em injetar o nível lógico TTL 5 Volts continua e

alternadamente nos pinos responsáveis pelas colunas e verifica se em algum momento

uma linha e uma coluna estiveram as duas com nível lógico alto, a coluna por estar em

processo de varredura e a linha devido ao ato de apertar o botão. Com isto conseguimos

mapear qual botão foi apertado e tomar a ação apropriada ao botão selecionado.

O funcionamento do firmware consiste basicamente em um loop infinito, que estará

sempre verificando se algum comando foi enviado ao módulo GSM, se o módulo de

configuração foi conectado ou se ocorreu o disparo do alarme. Ao ser detectada

qualquer uma das ações mencionadas acima, existem funções especificas que irão

executar as atividades proposta.

3.2.2 Compilador

O compilador utilizado para programar o PIC 16F877A foi o PCW da empresa CCS,

ele gera a partir do código C, um arquivo de extensão .hex, que é então é gravado no

microcontrolador, com o programa WinPic800 (WinPic800, 2010).

3.2.3 Gravar o PIC

Para a gravação do PIC foi utilizado o gravador fornecido pela Universidade. Este

gravador é de autoria da Universidade, não sendo disponível o seu esquemático.

Primeiramente encaixa o PIC nos pinos indicados do gravador, sempre se atentando

com a sequência dos pinos. Depois de se certificar que todos as conexões estão certas,

conectamos o próprio gravador na porta serial do computador com o WinPic800

instalado.

Então abre-se o WinPic800 e seleciona-se o modelo correto do PIC, no caso o

16F877A, no canto superior direito, conforme indicado pela figura 13. Depois do

WinPic800 configurado para gravar o modelo certo do PIC, abre-se o arquivo de

extensão .hex gerado pelo PCW e seleciona-se a opção Dispositivo -> Programar Todo.

17

Pronto, o PIC foi gravado com sucesso!

Figura 13 – Configuração do WinPic800.

18

3.2.4 Fluxograma

Fluxograma é um tipo de diagrama, e pode ser entendido como uma representação

esquemática de um processo, muitas vezes feito através de gráficos que ilustram de

forma descomplicada a transição de informações entre os elementos que o compõem.

Podemos entendê-lo, na prática, como a documentação dos passos necessários para a

execução de um processo qualquer.

A figura 14 representa o fluxograma do firmware.

Figura 14 - Fluxograma do firmware

19

4 RESULTADOS

Como resultado principal foi obtida uma maior segurança do veículo e confiança do

seu proprietário em estacionar em lugares que o mesmo se encontra fora do seu alcance

visual e sonoro.

Todo o sistema do alarme inteligente foi montado com placas de fenolite, corroídas

com o percloreto, e então foram adaptadas dentro de uma caixa de plástico para facilitar

a sua montagem e locomoção dentro do veículo. As figuras 15 a 18 demonstram o

sistema montado.

Figura 15 – Módulo do sistema de alarme inteligente

20

Figura 16 – Módulo de configuração

Figura 17 – Módulo com o alarme ligado

21

Figura 18 – Módulo com o alarme disparado

4.1 Módulo de configuração

O módulo de interface com o usuário para cadastramento do número de telefone do

proprietário funciona somente com o módulo conectado e a navegação pelo sistema é

bem intuitiva, possibilitando o usuário cadastrar o número de telefone que será feita a

ligação caso o alarme dispare, visualizar o número cadastrado e alterar a senha de

inicialização do módulo. Abaixo segue as telas com o funcionamento do módulo de

configuração.

O módulo de configuração é demonstrado pela figura 16.

22

1º - Este é o ponto de partida para qualquer ação dentro do módulo de configuração,

todo comando quando efetuado completamente retorna para a tela inicial, conforme

demonstrado pela figura 19.

Figura 19 - Tela incial

2º - É inserida a senha de segurança para poder efetuar qualquer configuração no

sistema, conforme demonstrado pela figura 20.

Figura 20 – Inserir Senha

3º - Caso a senha fornecida esteja incorreta, o sistema exibe uma mensagem de erro,

conforme demonstrado pela figura 21, e retorna para a tela inicial.

Figura 21 – Senha Invalida

4º - Caso a senha fornecida esteja correta, aparecera a tela a seguir. Esta tela fornece a

possibilidade de tomar ações sobre o telefone que esta ou devera ser cadastrado, ou

sobre a senha de acesso ao sistema, conforme demonstrado pela figura 22.

Figura 22 – Menu Geral

23

5º - Escolhendo-se a opção 1 (Phone), aparecera a tela conforme demonstrado pela

figura 23. Esta tela permite ao usuário tomar atitudes sobre o telefone que devera ser

enviada a mensagem caso o alarme dispare.

Figura 23 – Menu do Telefone

6º - Caso a opção escolhida foi 1 (Enter Phone), o sistema possibilita cadastrar um novo

telefone na eprom do micro-controlador, conforme demonstrado pela figura 24.

Figura 24 – Tela cadastrar telefone

7º - Caso tenha escolhido a opção 2 (View Phone), será exibido o telefone cadastrado

anteriormente na eprom do micro-controlador, conforme demonstrado pela figura 25.

Figura 25 – Visualizar telefone

8º - Voltando no item 4, se escolhermos a opção 2 (Enter Password), será exibida a tela

conforme demonstrado pela figura 26 que permitira o usuário cadastrar uma nova

senha de acesso para o sistema.

Figura 26 – Alterar senha

24

9º - Todas as ações sobre o sistema, como cadastrar um novo numero de telefone ou

uma nova senha, são seguidas da tela de progressão da atividade (figura 27) e

confirmação de sucesso (figura 28).

Figura 27 – Progressão da tarefa

Figura 28 – Confirmação de atividade concluída com sucesso

O monitoramento das portas através de sensores, disparo do alarme, e envio da

mensagem contendo a situação das portas, apresentou um ótimo funcionamento, sempre

considerando que o sistema começa a funcionar somente após receber uma resposta do

módulo GSM, após a sua inicialização. Segue abaixo, tabela contendo 9 amostras do

tempo que o modulo demora para começar a funcionar corretamente após ser

inicializado.

A diferença de tempo se dá pela qualidade do sinal no lugar dos testes.

Tabela 3 - Tempo para inicialização do modulo SIM340.

Numero do teste. Tempo para obtenção do sinal pelo

modulo GSM.

Teste 1 10 segundos

Teste 2 9 segundos

Teste 3 9 segundos

Teste 4 11 segundos

Teste 5 9 segundos

Teste 6 8 segundos

Teste 7 9 segundos

Teste 8 11 segundos

Teste 9 10 segundos

25

4.2 Disparo do alarme

Após o disparo do alarme, uma mensagem é enviada ao usuário com a informação

de que o alarme foi disparado e com a situação das portas, aberta ou fechada. Como

exemplo, digamos que a porta direita seja aberta, então receberíamos a seguinte

mensagem: “Alarme disparou. Porta direita aberta”. Se a porta esquerda for aberta

mudará apenas qual foi a porta aberta.

O disparo do alarme é imediato e se mostrou eficiente em todos os testes. O teste

de tempo que as mensagens levaram para chegar no celular do proprietário é

demonstrado na tabela 4.

Tabela 4 – Tempo de chegada as mensagens de disparo

26

4.3 Ações no veículo

Como objeto de testes foi utilizado um carro elétrico de controle remoto. Com este,

conseguimos simular todo o funcionamento do alarme e a realização das ações

propostas como indicado na tabela 5.

Tabela 5 – Ações sobre o veículo

Código Ação

1 Ligar alarme

2 Desligar alarme

3 Desligar motor

4 Ligar motor

5 Retornar o estado do alarme e do motor

Foi executada uma bateria de testes com as diverças ações do veículo em ordem

randômica e foram anotados os tempos em que essas ações levaram para executar a ação

correspondente. Estas informações estão disponíveis na tabela 6.

Tabela 6 – Tempo decorrido para executar as ações no veículo

27

Para a configuração, testes e certificação do funcionamento do sistema foi

necessário uma carga com um pacote de 150 mensagens SMS, sendo 20 mensagens

para os testes do disparo do alarme e 130 para os testes com as ações tomadas sobre o

veículo.

Durante a realização dos testes notou-se uma interferência no sistema RF do alarme

com outros controles ou sistemas de mesma frequência. Com esta interferência, o

sistema demorava um pouco para que conseguíssemos ligar e desligar o alarme. A

única maneira de acabar com essa interferência é desligando o sistema que está

causando esta interferência.

28

5 CONCLUSÃO

A idéia de integrar o alarme residencial a centrais telefônicas já é utilizada a

aproximadamente 15 anos. Porém a telefonia móvel foi uma das principais inovações do

século XXI, proporcionando aos indivíduos carregar um aparelho eletrônico para se

comunicar em grande parte do planeta. Com o passar dos anos foi investido mais e mais

neste tipo de serviço, e hoje operadoras garantem uma qualidade espetacular de

distribuição e disponibilidade da conexão e oferecem pagamento diferenciado através

da tecnologia GSM, que proporcionou o surgimento do telefone celular pré-pago. Com

toda esta globalização e influência de tecnologia internacional, houve uma

popularização e conseqüente barateamento do custo pela utilização da rede, o que o

tornou viável na sua utilização para comandar tarefas a partir de qualquer telefone

celular que envie mensagens SMS, sendo desta maneira um grande diferencial para

nosso sistema de alarme inteligente.

O projeto foi concluído de acordo com o cronograma estipulado no começo do

ano, alcançando os resultados previstos e respeitando os períodos de cada etapa. Com

isto pudemos verificar a real importância, de se fazer um bom planejamento de todas as

etapas antes de começar o desenvolvimento, evitando assim a compra excessiva de

componentes, que em grande escala encareceriam o projeto.

A maior dificuldade encontrada no desenvolvimento do sistema foi o

sincronismo do micro-controlador ao módulo GSM, pois não utilizamos um debbuger

para realizar uma verificação linha a linha, do comportamento do código perante

comandos enviados pelo módulo, o que dificultou muito para tornarmos o sistema

estável o suficiente para ser utilizado.

Desde o início nos preocupamos em realizar a comunicação do usuário com o

carro de forma estável e tornar o sistema o mais próximo possível de um sistema

comercial. Mesmo depois de um ano inteiro de desenvolvimento ainda assim seriamos

capazes de sugerir melhoramentos no firmware e incluir novas funcionalidades ao

sistema como trancar as portas, fechar os vidros, incluir um GPS para se saber a

localização exata do veículo ou colocar um sistema de alimentação telerantes a falha, o

que tornaria o nosso sistema cada vez mais próximo do utilizado pelo ator Pierce

Brosnan nos carros dirigidos pelo seu personagem nos filmes do Agente Secreto 007.

Aconselha-se ao usuário sempre ter um pacote de torpedos no chip utilizado na

central, e sempre que possível verificar o seu saldo, evitando assim que o sistema fique

sem funcionar por falta de crédito.

29

6 REFERÊNCIAS

PORTAL DA SEGURANÇA NACIONAL. PERIÓDICO SEGURANÇA, JUSTIÇA

E CIDADANIA. Disponível em: http://www.segurancacidada.org.br/ . Acesso em 15

de out. 2010.

FÁBIO CAMPANA. Paraná tem média de 53,5 carros roubados por dia. Disponível

em: http://www.fabiocampana.com.br/2009/07/parana-tem-media-de-535-carros-

roubados-por-dia/. Acessado em 15 de out. 2010.

MICROCHIP TECNOLOGY INC. PIC16F87XA Data Sheet. Disponível em:

http://ww1.microchip.com/downloads/en/devicedoc/39582b.pdf. Acessado em 15 de

out. 2010.

GOOGLE. Definições na internet. Disponível em:

http://www.google.com.br/search?hl=pt-

BR&defl=pt&q=define:RISC&sa=X&ei=DUuxTJWbD4H98AabntyhCQ&ved=0CBU

QkAE. Acessado em 15 de out. 2010.

Pereira, Fábio ; Micro-controladores PIC : programação em C. Editora Erica. São

Paulo. 2005.

CCS INC. CCS C Compiler. Disponível em: http://www.ccsinfo.com/. Acessado em

15 de outubro de 2010.

SIM Tecnology. SIM340 GSM Module. Disponível em:

http://wm.sim.com/Sim/FrontShow_en/wireless/detail.aspx?cid=6&nid=4. Acessado em

15 de outubro de 2010.

RISSARDI, CLEIPSON LUIZ; Gerenciamento de alarmes residenciais em

condomínios. v1, n1. Curitiba. 2004.

LABCENTER ELETRONICS. Proteus PCB Design Packages. Disponível em:

http://www.labcenter.com/products/pcb_overview.cfm. Acessado em 15 de out. de 2010

30

GSM WORLD. GSM Tecnology. Disponível em:

http://www.gsmworld.com/technology/index.htm. Acessado em 15 de out. de 2010.

DEVELOPER‟S HOME. Introduction to AT Commands. Disponível em:

http://www.developershome.com/sms/atCommandsIntro.asp. Acessado em 15 de out de

2010

TEXAS INSTRUMENTS. MAX232, MAX232I Datasheet. Disponível em:

http://www.datasheetcatalog.org/datasheet/texasinstruments/max232.pdf. Acessado em

15 de out de 2010.

CAMI RESEARCH INC. The RS232 Standard. Disponível em:

http://www.camiresearch.com/Data_Com_Basics/RS232_standard.html. Acessado em

15 de out de 2010.

WINSTAR. Character LCD. Disponível em:

http://www.winstar.com.tw/products_detail.php?CID=17&lang=pt. Acessado em 15 de

out. de 2010.

FAIRCHILD SEMICONDUTOR. KA78XXX/KA78XXXA Datasheet. Disponível

em: http://www.datasheetcatalog.org/datasheets/228/390068_DS.pdf. Acessado em out

de 2010

WINPIC800 SOFTWARE. WinPic800. Disponível em:

http://www.winpic800.com//index.php?option=com_content&task=blogcategory&id=1

8&Itemid=64. Acessado em out de 2010.

31

7 ANEXO A <MANUAL DE INSTALAÇÃO>

1 – Indicação do estado do alarme;

2 – Indicação do disparo do alarme;

3 – Indicação do estado do motor;

4 – Slot para o módulo de configuração;

5 – Entrada da alimentação do motor;

6 – Saída da alimentação do motor;

7 – Entrada do sensor da porta direita;

8 – Entrada do sensor da porta esquerda;

9 – Alimentação negativa;

32

10 – Alimentação positiva.

Ligações necessárias:

A instalação do alarme inteligente é muito simples, é necessário apenas seguir, na

ordem, os 6 passos a seguir:

1. Conectar o sensor da porta direita no conector 7 e a ligação “NA” do sensor no

GND do circuito;

2. Conectar o sensor da porta esquerda no conector 8 e a ligação “NA” do sensor

no GND do circuito;

3. Desconectar o motor do GND e conectar na entrada 5;

4. Conectar a entrada 6 no GND;

5. Conectar a entrada 9 no GND (preto) da bateria do veículo;

6. Conectar a entrada 10 no positivo (vermelho) da bateria do veículo;

Pronto, o seu alarme está instalado e pronto para uso!

33

8 ANEXO B <MANUAL DE UTILIZAÇÃO>

LEDs de indicação:

Verde: Indica de o alarme está ativado (LED ligado) ou desativado (LED

desligado);

Vermelho: Indica se o alarme está disparado(LED ligado) ou não (LED

desligado);

Amarelo: Indica se o motor está com a energia cortada (LED ligado) ou se

está funcionando normal (LED desligado) .

Configurando o alarme

Para efetuar qualquer um dos passos a seguir, é necessário conectar o módulo de

configuração junto ao alarme, pelo conector número 4. Sempre conectando a parte

elevada do cabo do módulo de configuração junto ao buraco do conector do alarme,

conforme demonstrado pela figura abaixo.

A senha padrão do alarme é 1234;

O botão * serve para limpar os caracteres da tela;

O botão # serve para confirmar os dados digitados.

Alterando a senha

Depois de conectar o módulo de configuração, digitar a senha e acessar a opção

“2” do menu. Informar a nova senha e digitar o botão #;

Visualizar o telefone cadastrado

34

Depois de conectar o módulo de configuração, digitar a senha e acessar as

opções “1” e “2”, respectivamente, do menu. O telefone cadastrado irá ser mostrado

na tela.

Alterando o telefone do proprietário

Depois de conectar o módulo de configuração, digitar a senha e acessar as

opções “1” e “1”, do menu. Digitar o telefone, com DDD, do proprietário.

Executando ações no veículo

Para executar uma ação no veículo, basta escrever uma mensagem SMS para o

número do CHIP inserido no alarme, com um dos seguintes códigos da tabela:

Tabela de ações e seus códigos:

digo

Ação

1 Ligar alarme

2 Desligar alarme

3 Desligar motor

4 Ligar motor

5 Retornar o estado do alarme e do

motor

Depois da mensagem enviada, de 6 – 10 segundos a ação irá ser realizada.

35

36

9 APÊNDICE <ARTIGO>

Sistema de alarme automotivo micro-processado e gerenciado através de

mensagens SMS

Ricardo Afonso Pedri – [email protected] / [email protected]

Formando do Curso de Engenharia da Computação da Universidade Positivo.

Endereço para contato:

Universidade Positivo – Unicenp. Curso de Engenharia da Computação Rua Prof.

Pedro Viriato Parigot de Souza, 5300 – Campo Comprido 81280-330, Curitiba – PR

Tel.: (+55) 41 3777-5421 Cel.: (+55) 41 9956-7828.

Vinicius Hanrejszkow – [email protected]

Formando do Curso de Engenharia da Computação da Universidade Positivo.

Endereço para contato:

Universidade Positivo – Unicenp. Curso de Engenharia da Computação Rua Prof.

Pedro Viriato Parigot de Souza, 5300 – Campo Comprido 81280-330, Curitiba – PR

Tel.: (+55) 41 3360-7410 Cel.: (+55) 41 9625-7487.

Resumo: Neste trabalho são apresentadas técnicas e tecnologias utilizadas,

funcionamento, aplicação e testes de uma central GSM gerenciada através de um

microcontrolador e mensagens SMS, acoplada a um alarme para automóveis e aos seus

periféricos. Esta central possui como principal tarefa: comunicação automóvel/usuário e

usuário/automóvel, monitorar portas e alarme, e gerenciar ações em periféricos através

de mensagens de texto. A comunicação é realizada através do módulo GSM SIM340 e

do microcontrolador 16F877A, que se comunicam com o dono do veículo e vice-versa

através do número configurado a partir de um teclado e um display para configuração

de parâmetros do sistema, como por exemplo senhas de acesso ao sistema e o número

que o veiculo utilizará para se manter em contato. O monitoramento das portas é

realizado através de sensores de contato e as ações são realizadas basicamente através

de reles, que controlam se dispositivos estarão ligados ou desligados. Além de todo o

37

hardware envolvido também será apresentado o firmware do sistema e sua lógica, peça

fundamental para o funcionamento do mesmo.

Palavras-chave: SIM340, 16F877A, GSM, SMS, firmware.

Abstract: This work presents techniques and technologies, operation,

implementation and testing of a GSM module managed from a microcontroller and

SMS messages coupled to an alarm for automobiles and their peripherals. This GMS

module has as its primary task: communication car/user and user/car, doors and alarm

monitoring, and manage actions in peripheral through text messages. The

communication is performed through the SIM340 GSM module and the microcontroller

16F877A, which communicate with the owner of the vehicle and vice versa via the

configured number from a keyboard and a display for setting system parameters, such

as passwords system access and the number that the vehicle will use to keep in touch.

The monitoring of the ports is accomplished via contact sensors and the actions are

carried out primarily through relays, which control whether devices are connected or

disconnected. Besides all the hardware involved will also be presented the system

firmware and its rationale, key to the functioning.

Key words: SIM340, 16F877A, GSM, SMS, firmware.

1 INTRODUÇÃO

Na criminalidade contemporânea o veículo, como produto do crime de

receptação, tornou-se cada vez mais visado por uma extensa rede de ladrões, agressores,

golpistas, traficantes e delinqüentes juvenis e fez proliferar o número de locais de

desmanches ilegais (Vargas, 2007).

Este projeto descreve a criação de uma solução que possibilita o aumento da

segurança de um veículo, atuando na detecção e ação contra furtos e roubos.

De, acordo com estudos fornecidos pelo DFRV ( Delegacia de Furtos e Roubo

de Veículos ) somente no mês de junho de 2008, houve uma média diária de 22 veículos

roubados em Curitiba e de 34 no interior do estado, com recuperação da ordem de 47%.

Sabemos que os ladrões se mostram cada vez mais preparados e habilidosos na

reincidência dessa prática criminosa, porem, os proprietários de veículos, por sua vez,

devem ficar atentos e se precaver com a adoção de medidas de segurança contra

qualquer possível furto ou roubo de seu veículo.

38

Muitas vezes deixamos nossos veículos longe do alcance de nossos olhos e

ouvidos seja para trabalhar ou para passear, e podemos não ser alertados e muito menos

realizar alguma ação caso o veículo esteja sendo roubado ou simplesmente estiver com

o alarme disparado.

Assim, um sistema que integre um alarme automotivo e um sistema GSM

possibilita que o veículo ao qual o alarme esteja instalado possa ser monitorado e

controlado por via remota, desde um aviso informando que o mesmo está sendo

roubado, até o bloqueio deste, utilizando apenas mensagens SMS.

Nas próximas seções apresenta-se o microcontrolador 16F877A, o módulo GSM

SIM340, módulo de configuração e interação com o usuário, sensores das portas, reles

de ações sobre os periféricos e firmware do sistema.

2. MICROCONTROLADOR 16F877A

CPU (Unidade central de processamento) RISC (Reduced Instruction Set

Computer ou Computador com um Conjunto Reduzido de Instruções) de alta

performance. Possui velocidade de funcionamento de 20 MHz de clock de entrada e 200

ns de instrução por ciclo, 8K x 14 palavras de memória de programa flash, 368 x 8 bytes

de memória de dados (RAM), 256 x 8 bytes de memória de dados EEPROM, 40 pinos

e tensão de alimentação TTL (5 Volts). Este microcontrolador pode ter seu firmware

regravado até 100.000 vezes e pode regravar até 1.000.000 de vezes na memória

EEPROM que possui retenção de dados acima de 40 anos, possui circuito de detecção e

tratamento a falhas (Watchdog Timer) e possui baixo consumo de energia 7 mA. Segue

abaixo algumas características do 16F877A.

2.1 – Pinagem.

39

2.2.1 - Características dos principais pinos utilizados.

Pino 1 MCLR/VPP:

Reset do microntrolador, ativo em nível lógico baixo.

Pinos 13 - OSC1 e 14 - OSC2:

Entradas para ligar o clock externo, crystal DC – 20MHz.

Pinos 2 - RA0, 3 - RA1, 4 - RA2, 5 - RA3, 6 - RA4 e 7 - RA5:

Portas de entrada e saída bidirecionais, barramento A.

Pinos 11 e 32 VDD:

Entradas de alimentação positiva + 5Volts.

Pinos 12 e 31 VSS:

Entradas de referência (terra).

Pinos 8 – RE0, 9 – RE1 e 10 - RE2:

Portas de entrada e saída bidirecional, barramento E.

Pinos 15 – RC0, 16 – RC1, 17 – RC2, 18 – RC3, 23 – RC4, 24 – RC5, 25 – RC6

e 26 – RC7:

Portas de entrada e saída bidirecionais, barramento C.

Os pinos 25 – RC6 e 26 – RC7 merecem especial atenção, pois são

respectivamente TX (emissor) e RX (receptor) de informações do

microcontrolador no padrão serial.

Pinos 19 – RD0, 20 – RD1, 21 – RD2, 22 – RD3, 27 – RD4, 28 – RD5, 29 –

RD6 e 30 – RD7:

40

Portas de entrada e saída bidirecionais, barramento D.

Observação: Os pinos possuem muitas outras funções que não foram explicadas

aqui, por não terem ligação com o projeto desenvolvido. Qualquer informação que não

conste aqui deve ser pesquisada no datasheet do componente.

2.2 – Circuitos recomendados.

É recomendado construir o circuito abaixo para a ligação do pino 1 – MCLR,

protegendo assim o dispositivo contra quedas de tensão e surtos de corrente.

R1 deve ser menor que 40 kΩ, garantindo que se ocorrer queda de tensão não viole

as especificações elétricas do dispositivo.

R2 deve ser maior que 1KΩ, pois possui função de limitar a corrente que flui para o

MCLR vinda do capacitor, em caso de colapso devido a descarga eletrostática.

2.3 – Capacitores para os pinos de clock.

Existem valores específicos de capacitores que devem ser colocados em série com

os pinos de clock e o terra definidos pelo fabricante para um bom funcionamento do

clock. Segue abaixo uma tabela que especifica os valores que devem ser utilizados para

cada tipo de freqüência.

41

3. MÓDULO GSM SIM 340

SIM340 é um módulo GSM/GPRS que trabalha nas freqüências GSM 850 MHz,

GSM 900 MHz, DCS 1800 MHz, e PCS 1900 MHz. Com um tamanho de 40mm x

33mm x 2,85mm, pode ser utilizado em inúmeras aplicações como: Smart phones, PDA

phones e outros dispositivos móveis. Possui tensão de alimentação de 3.4 V a 4.5V e

consumo de 2.5mA, funciona em um range de temperatura de -20ºC até 55ºC e é

controlado por comandos AT recebidos pela porta serial do dispositivo.

3.1 – Circuito de comunicação microcontrolador porta serial.

O microcontrolador 16f877a, fornece nível lógico de tensão TTL/CMOS ou seja 5

Volts, porém a porta serial do módulo SIM 340 trabalha com nível lógico RS232 ou

seja 12 volts, então foi necessário utilizar o circuito integrado MAX232 para que os

dispositivos se comuniquem corretamente, segue abaixo a circuito que foi utilizado para

ligar o RX, TX do microcontrolador ao RX, TX do módulo.

42

3.2 – Comandos AT.

O prefixo “AT” deve ser definido no início de cada linha de comando. Para finalizar

uma linha de comando digite <CR>.Estes comandos AT devem ter o formato AT <x>

<n> onde <x> é o comando e <n> é ou são os argumentos para esse comando.

Os principais comando utilizados neste projeto foram:

AT+CMGF = 1: Seleciona o formato da mensagem SMS em modo texto.

AT+CMGS = “\” : Envia uma mensagem SMS.

AT: Testa se o dispositivo esta ativo.

ATH: Desconecta a conexão existente.

Os demais comandos existentes podem ser verificados na especificação de software

do módulo.

4. MÓDULO DE CONFIGURAÇÃO E INTERFACE COM O USUÁRIO

O módulo de interface com o usuário para cadastramento do número de telefone

do dono do veículo é destacável e funciona somente com o módulo conectado. A

navegação pelo sistema é bem intuitiva, possibilitando o usuário a cadastrar o número

de telefone que será feita a ligação caso o alarme dispare, visualizar o número

cadastrado e alterar a senha de inicialização do módulo caso o módulo esteja conectado.

Abaixo segue as telas com o funcionamento do módulo de configuração.

4.1 – Navegação no modulo de configuração.

1º - Este é o ponto de partida para qualquer ação dentro do módulo de configuração,

todo comando quando efetuado completamente, retorna para esta tela.

Tela incial

43

2º – Deve ser inserida a senha de segurança para poder efetuar qualquer

configuração no sistema.

Inserir Senha

3º - Caso a senha fornecida esteja incorreta, o sistema exibe uma mensagem de erro

e retorna para a primeira tela.

Senha Invalida

4º - Caso a senha fornecida esteja correta, aparecera a tela a seguir. Esta tela fornece

a possibilidade de tomar ações sobre o telefone que esta ou devera ser cadastrado, ou

sobre a senha de acesso ao sistema.

Menu Geral

5º - Escolhendo-se a opção 1 (Phone), aparecera a tela abaixo. Esta tela permite o

usuário tomar atitudes sobre o telefone que devera ser enviada a mensagem caso o

alarme dispare.

Menu do Telefone

44

6º - Caso a opção escolhida foi 1 (Enter Phone), o sistema o possibilita cadastrar um

novo telefone na eprom do microcontrolador.

Tela cadastrar telefone

7º - Caso tenha escolhido a opção 2 (View Phone), será exibido o telefone

cadastrado anteriormente na eprom do microcontrolador.

Visualizar telefone

8º - Voltando no item 4, se escolhermos a opção 2 (Enter Password), será exibida a

tela abaixo que permitira o usuário cadastrar uma nova senha de acesso para o sistema.

Alterar senha

9º - Todas as ações sobre o sistema, como cadastrar um novo numero de telefone ou

uma nova senha, são seguidas da tela de progressão da atividade e confirmação de

sucesso.

Progressão da tarefa

45

Confirmação de atividade concluída com sucesso

4.2 – Explicação técnica sobre o módulo

O módulo é constituído basicamente por um teclado matricial 4 X 3 e um display

LCD 16 X 2 com backlight controlados e chaveados pelo microcontrolador.

4.2.1 – Funcionamento do teclado

O método de varredura do teclado é controlado através de 7 pinos do

microcontrolador, sendo 3 pinos responsáveis por varrer as colunas e 4 pinos

responsáveis por varrer as linhas. Na figura abaixo segue o diagrama do circuito do

teclado, que na verdade é bem simples e consiste basicamente de botões interconectados

entre linhas e colunas que se forem apertados fecham um curto entre pontos da matriz e

assim conseguimos localizar qual botão foi apertado.

Diagrama do circuito do teclado

46

Pinagem do teclado

Quem controla realmente o teclado é o microcontrolador que possui um algoritmo

que injeta o nível lógico TTL 5 Volts continua e alternadamente nos pinos responsáveis

pelas colunas e verifica se em algum momento uma linha e uma coluna estiveram as

duas com nível lógico alto, a coluna por estar em processo de varredura e a linha devido

ao ato de apertar o botão. Com isto conseguimos mapear qual botão foi apertado e

tomar a ação apropriada ao botão selecionado.

4.2.2 – Funcionamento do display LCD.

Mostrar os dados para os usuários é essencial, e foi implementado estudando

basicamente as funções de cada um dos 14 pinos que o display possui e as funções da

biblioteca mod_lcd.c. Segue abaixo uma figura com o nome de cada pino do display e a

posterior explicação sobre cada um deles.

47

Pino 1 (GND): Pino que deve ser ligado ao terra do circuito.

Pino 2 (VCC): Pino que deve ser ligado a alimentação positiva do circuito.

Pino 3 (controle de contraste): Este pino deve ser ligado ao pino central de um

potenciômetro e os demais pinos do potenciômetro, um a alimentação

positiva do circuito e outro ao terra conforme figura abaixo para regular o contraste

(Forte quando em GND e fraco em Vcc),.

Pino 4 (RS): Seleciona se o que está trafegando é dado (1) ou instrução (0).

48

Pino 5 (RD/WR): Seleciona se é leitura (1) ou escrita (0), normalmente este pino é

ligado ao terra para que sempre que for necessário escrever algo no display, ele já esteja

selecionado para escrita, muito difícil possuir a necessidade de ler algo do display.

Pino 6 (EN): É o pulso do registrador, isto é, a cada pulso os dados serão

processador pelo controlador do LCD.

Pinos 7 (D0) ao 14 (D7): São os pinos aonde trafegam os dados.

A biblioteca mod_lcd.c possui funções pré moldadas de manipulação do display a

partir do microcontrolador 16f877a, e elimina a necessidade de nos aprofundarmos no

funcionamento do LCD, basta entender quais são e como podem ser utilizadas as

principais funções desta incrível biblioteca. Segue abaixo as funções mais utilizadas em

nosso projeto.

lcd_ini(): Inicializa o display.

lcd_pos_xy (coluna,linha): Define em qual pixel do display a informação deverá

começar a ser escrita.

lcd_escreve ("Escreva aqui a sua mensagem"): Define e envia qual mensagem será

exibida na tela do display.

4.2.3 – Bit de controle liga e desliga do módulo

Todo o módulo deve estar ligado e com seu código ativo apenas se o mesmo estiver

conectado a placa mãe do circuito através de conectores. O funcionamento do

chaveamento do circuito mediante a conexão ou não do módulo se deve ao motivo de

que quando conectamos o barramento do módulo existe um jump entre dois pinos

específicos do barramento aonde um esta ligado ao nível lógico alto do

microcontrolador e passa esse nível lógico ao vizinho que por sua vez coloca um pino

escolhido no microcontrolador em nível lógico alto e anuncia que o módulo esta ativo

ou não.

Funcionamento do bit de controle

49

5. SENSORES DAS PORTAS.

São basicamente sensores de contato, estarão ativos se alarme estiver ligado e

servirão como gatilho para alertar o dono do veículo sobre o disparo de seu alarme. Sua

configuração básica para o alarme ativo é normalmente fechado. Seu funcionamento é

baseado em duas portas do microcontrolador, aonde uma emite nível lógico alto e a

outra recebe este nível lógico alto reconhecendo assim que a porta esta fechada e o

alarme não esta disparado. Caso este nível lógico alto pare de chegar até a porta

receptora do microcontrolador o mesmo interpretará que a porta esta aberta, acionando

assim o alarme e o módulo GSM devendo este, enviar uma mensagem personalizada ao

dono do veiculo informando qual porta encontra-se aberta.

5.1 – Possíveis estados dos sensores

6. RELÉS DE AÇÃO SOBRE PERIFÉRICOS.

Os relés são componentes eletromecânicos capazes de controlar circuitos

externos de grandes correntes a partir de pequenas correntes ou tensões, ou seja,

acionando um relé com uma pilha podemos controlar um motor que esteja ligado em

110 ou 220 volts, por exemplo.

O funcionamento dos relés é bem simples: quando uma corrente circula pela bobina,

esta cria um campo magnético que atrai um ou uma série de contatos fechando ou

abrindo circuitos. Ao cessar a corrente da bobina o campo magnético também cessa,

fazendo com que os contatos voltem para a posição original.

Os relés podem ter diversas configurações quanto aos seus contatos: podem ter contatos

NA, NF ou ambos, neste caso com um contato comum ou central (C).

Os contatos NA (normalmente aberto) são os que estão abertos enquanto a bobina não

está energizada e que fecham, quando a bobina recebe corrente. Os NF (normalmente

fechado) abrem-se quando a bobina recebe corrente, ao contrário dos NA. O contato

central ou C é o comum, ou seja, quando o contato NA fecha é com o C que se

50

estabelece a condução e o contrário com o NF. Segue abaixo ilustração do

funcionamento da bobina e do relé.

Em nosso sistema, foram utilizados relés em duas situações:

Primeira ligar ou desligar o motor do automóvel, que no caso era um carro elétrico.

Através de comandos enviados por mensagens de texto, recepcionados pelo módulo

GSM SIM340 e entregues ao microcontrolador, permitíamos ou não a passagem de

energia originada da bateria para os motores.

Segunda ligar ou desligar o alarme do automóvel, que possui o mesmo processo de

recepção de mensagem do comando anterior porém age sobre o bit de liga ou desliga do

alarme.

7. FIRMWARE DO SISTEMA

O firmware do sistema foi totalmente escrito na linguagem de programação C,

compilado pelo software PCWHD Compiler e gravado no microcontrolador através do

software WinPic. Apresentarei nos próximos parágrafos basicamente as ferramentas

utilizadas e suas principais características.

7.1 – Linguagem C.

C é uma linguagem de programação compilada de propósito geral, estruturada,

imperativa, procedural, de alto nível, padronizada pela ISO, criada em 1972, por Dennis

Ritchie, no AT&T Bell Labs, para desenvolver o sistema operacional Unix (que foi

originalmente escrito em Assembly).

É uma das linguagens de programação mais populares para hardware, é estruturada e

possui ponteiros que dão maior flexibilidade a linguagem através de alocações

dinâmicas de memória evitando-se assim desperdicio da mesma em situações aonde este

é um dos principais limitadores do projeto.

51

7.2 – PCWHD Compiler.

PCWH é um software compilador de linguagem C para microcontrodores PIC

construído pela empresa CCS especializada em produzir softwares para compilação de

programas para microcontroladores. Neste aplicativo vem incluso softwares de edição

de fluxogramas além de outros especializados na edição da documentação do projeto,

comunicação serial, engenharia reversa de software, comparação entre arquivos de

códigos, etc. Segue abaixo a tela inicial do software e informações sobre diretivas de

programação e funções já escritas para PIC‟s.

7.2.1 – Diretivas de programação.

#asm #endasm

Permite a inclusão de trechos em assembler dentro do programa em C.

Muito cuidado deve ser tomado com o uso esta diretiva, pois toda ação gerada em

assembler é de inteira responsabilidade do usuário, e pode vir a prejudicar outras

variáveis ou posições de RAM usadas pelo compilador.

52

Exemplo:

.

x = a;

#asm

bsf PORTB,3 // estas duas instruções geram um pulso

bcf PORTB,3 // no pino RB3.

#endasm

x += 5;

#case

Indica para o compilador ser “sensitivo” a diferenças entre letras maiúsculas e

minúsculas.

Embora a linguagem C de forma padrão seja sensível ao tipo de letra, sem esta

diretiva, o compilador ignora as diferenças.

Exemplo: com o #case

Teste, teste e TESTE são variáveis diferentes

Exemplo: sem o #case

Teste, teste e TESTE são a mesma variável

#define ‘nome’ ‘seqüência’

Permite a substituição, no momento da compilação, do „nome‟ pela cadeia de

caracteres (string) definida em „seqüência‟.

Exemplo:

#define largura 4

portb = largura; // será visto pelo compilador como portb = 4

largura = 5; // ERRO. Não é uma variável.

Sua principal vantagem esta em não precisarmos trocar constantes em todo o

programa, bastando alterar na definição, ou ainda para facilitar a escrita de funções

mais

complexas.

Outras aplicações serão vistas nos exemplos.

#include <arquivo>

O arquivo indicado será adicionado ao fonte no „momento da compilação‟. novo.

Ideal para incluir trechos pré-definidos, evitando sua digitação a cada programa

53

Exemplo típico é o arquivo 16F877.H que contém as definições sobre o

processador usado.

Exemplo: #include < 16F877.H >

#fuses ’opções’

Avisa ao compilador para incluir no arquivo .HEX informações sobre os fusíveis de

configuração, facilitando na hora de se gravar o chip.

Devemos cuidar para que não haja repetição de uma mesma opção.

Algumas opções são:

Oscilador: XT (cristal até 4 MHz), LP (cristal baixa potência),

HS (cristal alta velocidade), RC (oscilador RC), ...

WatchDog: WDT (ligado) e NOWDT (desligado)

Código: PROTECT (protegido) e NOPROTECT (não protegido)

Power-up: PUT (Com power-up) e NOPUT (Sem power-up)

Ajuste usado nos exemplos com o 16F877 (deverá estar em uma única linha):

#fuses HS, NOLVP, NOWDT, NOBROWNOUT, PUT

Veja nos arquivos .H quais os fusíveis suportados pelo modelo de PIC que estiver

usando.

#INT_#### , onde #### indica o nome da rotina

Indica para o compilador que o trecho a seguir refere-se a uma rotina de

interrupção.

O compilador vai gerar um código padrão para entrar e sair da rotina, salvando o

estado da máquina e zerando o flag de requisição de interrupção ao sair da mesma.

Algumas das interrupções reconhecidas são:

INT_EXT (RB0/Int0)

INT_EXT1 (RB1/Int1)

INT_TIMER0

INT_AD (Conversor A/D interno)

INT_RDA (Recepção Serial)

Para uma lista completa do nome das diretivas de interrupção das várias dezenas de

chips existentes, consultar o manual da CCS e o arquivo .H do chip utilizado.

O nome da rotina é definido pelo seu programa.

Exemplo:

#INT_EXT // avisa que a rotina a seguir é a da interrupção externa

54

SincronismoDeRede()

{

.....

}

#Priority

Permite ao programador escolher a prioridade das interrupções habilitadas.

A primeira da lista é a mais prioritária.

Exemplo:

#priority rtcc, ext // Timer 0 é mais prioritária que a

// interrupção externa.

#ROM

Permite a gravação de constantes na memória de programa ou na EEPROM de

dados interna no momento da compilação.

Não influencia no programa, apenas informa ao gravador para gravar os valores

indicados no endereço indicado.

Exemplo:

Determinando os 10 primeiros bytes da eeprom de dados (inicio em F00000H):

#ROM int8 0xF00000 = { 0,1,2,3,4,5,6,7,8,9 }

#use rs232 (BAUD = taxa, XMIT = pinoTx, RCV = pinoRx, BITS = n )

Ajusta os pinos indicados como pinoRX e pinoTX para funcionarem como entrada e

saída serial com velocidade indicada em taxa, e com palavra de n bits.

O compilador tem incorporado rotinas que permitem a transmissão e recepção no

formato assíncrono típico da comunicação serial.

Para o uso destas rotinas a diretiva acima deve ser utilizada.

Nos PIC's com USART interna, se os pinos indicados forem os pinos da

USART o software usara o Hardware interno.

Embora o nome da diretiva nos de a sugestão de usar RS232, devemos lembrar que

os sinais do PIC são de nível TTL.

Importante: antes do uso desta diretiva o #use delay é obrigatório.

Exemplo:

Transmitindo e depois esperando um byte com clock de 6 MHz, pelo pino RA4 e

recebendo pelo pino RB7, a 9600 bps e palavra de 8 bits:

#use delay (clock=6000000)

55

#use rs232 (BAUD = 9600, XMIT = pin_A4, RCV = pin_B7, BITS = 8 )

X = getchar (); // fica esperando um byte chegar pelo serial

// e então escreve na variável X

putchar ( X ); // e depois envia o mesmo de volta.

Observação: os nomes de pinos e outras constantes serão vistos ao final e estão no

arquivo .H correspondente ao chip utilizado.

7.2.2 - Funções escritas para os PIC’s

Output_High( pino ) e Output _Low ( pino )

Servem para setar ou zerar um pino de I/O.

b = input( pino )

Lê o estado do pino indicado e escreve na variável indicada.

Exemplo: espera o pino RB0 ir de 0 para 1.

while ( ! input (pin_b0) ); // realiza bit test . É o teste Ideal.

ou

while ( pin_b0 == 0); // realiza teste lógico em byte. Evitar !

Observação: os nomes de pinos e outras constantes serão vistos ao final e estão no

arquivo .H correspondente ao chip utilizado.

Delay_Ms ( x )

Gera um delay de „ x ‟ milisegundos. Se „x‟ for constante, pode variar de 1 à 65.535.

Se „x‟ for uma variável, seu valor pode variar de 1 à 255.

O programa deve conter a diretiva "#use delay(...)" antes de se usar esta função.

Exemplo:

Pulsa o pino RB2 a cada 10 ms (aproximadamente).

while (1)

{

output_high (pin_b2); // RB2 = 1

delay_ms (10); // espera 10 ms

output_low (pin_b2); // RB2 = 0

delay_ms (10); // espera 10 ms

}

7.2.3 – Funções para interrupções

enable_interrupts ( tipo/qual )

56

Permite habilitar interrupções individualmente ou globalmente. Quando habilitando

globalmente apenas o bit de mascaramento geral será afetado, e não as habilitações

individuais.

Alguns tipos são os seguintes:

global (GIE), int_ext (RB0), int_timer0,

Exemplo: habilitando a interrupção do timer 0 e do A/D

enable_interrupts (int_timer0);

enable_interrupts (int_ad);

enable_interrupts (global);

disable_interrupts ( tipo )

Funciona de forma semelhante ao “enable_interrupts ()”, desabilitando

individualmente ou globalmente as interrupções.

7.2.4 - Funções para EEPROM de dados interna

Read_Eeprom ( endereço )

Lê o dado presente na posição endereço da eeprom interna.

O limite para o endereço depende do modelo (de 0 a 255 no 16F877).

Exemplo: Posicao_0 = read_eeprom(0);

Write_Eeprom ( endereço , valor )

Escreve no endereço da eeprom interna o valor indicado.

Importante: Esta instrução leva em média 4 ms para ser finalizada.

(Lembre-se que para a CPU rodando a 6 MHz internamente, o Tcy será de 2 00 ns, o

que implica que a escrita na eeprom leva em media o equivalente a 20.000 Tcy)

7.2.5 - Funções de uso geral

Sleep()

Coloca o processador no modo de economia de energia.

getc(), getch() OU getchar() ( * )

São a mesma função. Entra numa rotina para esperar a chegada de um caractere pelo

pino RCV definido na diretiva #use RS232.

57

Exemplo: espera a chegada do caractere „A‟

while ( getchar() != „A‟ );

putc( valor ) OU putchar(valor ) ( * )

São a mesma função. Envia “valor” serialmente pelo pino XMIT definido na

diretiva #use RS232.

Exemplo: Enviar a palavra „OLA‟ pelo serial.

putchar ( „O‟ );

putchar ( „L‟ );

putchar ( „A‟ );

7.3 – WinPIC

O software usado para descarregar o ficheiro "*.HEX" para o microcontrolador é o

"WINPIC800" e está disponível para download em "www.winpic800.com". Segue

abaixo a tela incial do gravador.

No software WINPIC800 podemos tanto gravar os arquivos HEX gerados pelo

PCWHD quanto apagar o mesmo, verificar o seu funcionamento através de testes

básicos e ler o seu conteúdo, tanto memória de programa quanto memória de dados.

58

Para gravação do código, foi utilizada a placa disponibilizado pelo curso de

engenharia da Universidade Positivo, ela possui entrada serial e é compativel com o

WINPIC. Segue abaixo o circuito da placa utilizada.

Circuito para gravar o pic

Como a entrada é serial deve-se realizar a seguinte configuração no WINPIC, clicar

em Ferramentas, Opções do programador, selecionar a aba Programador e em tipo de

programador selecionar JDM (2) para porta serial, conforme figura abaixo.

Selecionar a aba Configuração do dispositivo para escolher o PIC utilizado em seu

projeto.

59

De volta a aba Código, carregar o arquivo .HEX ou firmware a ser gravado e clicar

em programar dispositivo. Ok, seu PIC já esta gravado e pode ser testado em seu

circuito.

A grande dificuldade encontrada em realizar este projeto, foi a escolha do circuito

que utilizamos para gravar o código no PIC, pois diferente de alguns kits vendidos por

ai, não nos permitia debugar o código, tendo que encontrar diferentes formas de testar

comandos que poderiam ser testados facilmente caso tivéssemos esta funcionalidade.