Post on 26-Sep-2018
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.
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
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:
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
Depois da mensagem enviada, de 6 – 10 segundos a ação irá ser realizada.
36
9 APÊNDICE <ARTIGO>
Sistema de alarme automotivo micro-processado e gerenciado através de
mensagens SMS
Ricardo Afonso Pedri – ricardopedri@bol.com.br / ricardopedri@gmail.com
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 – viopniop@gmail.com
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.