sistema de identificaÇÃo de participantes em postos de...

36
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE INFORMÁTICA ENGENHARIA DE COMPUTAÇÃO BRUNO SILVA KINOPF CAUÃ BARNEZE ROCHA LUCAS CHOCIAY MARIANA F. MACHADO CABRAL RAFAEL HENRIQUE ZALESKI SISTEMA DE IDENTIFICAÇÃO DE PARTICIPANTES EM POSTOS DE CONTROLE DE CORRIDAS DE ORIENTAÇÃO RELATÓRIO FINAL CURITIBA 2013

Upload: hahuong

Post on 20-Nov-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

DEPARTAMENTO ACADÊMICO DE INFORMÁTICA

ENGENHARIA DE COMPUTAÇÃO

BRUNO SILVA KINOPF

CAUÃ BARNEZE ROCHA

LUCAS CHOCIAY

MARIANA F. MACHADO CABRAL

RAFAEL HENRIQUE ZALESKI

SISTEMA DE IDENTIFICAÇÃO DE PARTICIPANTES EM POSTOS DE

CONTROLE DE CORRIDAS DE ORIENTAÇÃO

RELATÓRIO FINAL

CURITIBA

2013

BRUNO SILVA KINOPF

CAUÃ BARNEZE ROCHA

LUCAS CHOCIAY

MARIANA F. MACHADO CABRAL

RAFAEL HENRIQUE ZALESKI

SISTEMA DE IDENTIFICAÇÃO DE PARTICIPANTES EM POSTOS DE

CONTROLE DE CORRIDAS DE ORIENTAÇÃO

Relatório Final para projeto apresentado na disciplina de Oficina de Integração 2, no curso de Engenharia de Computação da Universidade Tecnológica Federal do Paraná

Orientador: Prof. Raul M. P. Friedmann

CURITIBA

2013

RESUMO

KINOPF, Bruno Silva; ROCHA, Cauã Barneze; CHOCIAY, Lucas; CABRAL, Mariana F. Machado; ZALESKI, Rafael Henrique. Sistema de Identificação de Participantes em Postos de Controle de Corridas de Orientação. 2013. 34 f. Relatório Final(Oficina de Integração 2) - Engenharia de Computação, Universidade Tecnológica Federal do Paraná. Curitiba, 2013.

Este relatório apresenta os conteúdos teóricos e descrição de desenvolvimento de um protótipo para um sistema capaz de identificar participantes e registrar sua passagem em postos de controle de corridas de orientação através de comunicação sem fio por ondas de rádio. É parte integrante de um futuro sistema de controle do evento completo, capaz de gerar tanto os relatórios individuais do competidor quanto os relatórios e classificações gerais por categoria.

Palavras-chave: Corrida de Orientação. RFID. Identificação. Protótipo. Posto de Controle.

ABSTRACT

KINOPF, Bruno Silva; ROCHA, Cauã Barneze; CHOCIAY, Lucas; CABRAL, Mariana F. Machado; ZALESKI, Rafael Henrique. Contestant Identification System on Control Posts of Guidance Races. 2013. 34 f. Relatório Final(Oficina de Integração 2) - Engenharia de Computação, Universidade Tecnológica Federal do Paraná. Curitiba, 2013.

This report presents the theory and a description for the development of a prototype of a system capable of identifying contestants and register their passage on control posts of orienteering races through wireless communication using radio waves. It’s an integrant part of a future system for complete event control, capable of generating individual reports for a contestant and reports for general classification by category.

Keywords: Orienteering Race. RFID. Identification. Prototype. Control Post.

LISTA DE ILUSTRAÇÕES

Figura 1 – Mapa em escala 1:10.000 do terreno da Pista Permanente de Orientação Heróis da Lapa. Formato Original: A4 210x297mm) .................................................. 8

Figura 2– Cartão de descrição dos postos de controle da Pista Permanente de Orientação Heróis da Lapa.......................................................................................... 9

Figura 3– Ilustração de prisma numerado. ................................................................ 10

Figura 4– Cartão de picote de postos de controle com ilustração de picotador. ....... 11

Figura 5 – Diagrama de blocos de um sistema RFID ................................................ 14

Figura 6 – Diagrama de blocos simplificado de um microcontrolador ....................... 16

Figura 7 – Diagrama de blocos do sistema proposto ................................................ 20

Figura 8 – Arduino Uno R3 e suas Dimensões Aproximadas.................................... 22

Figura 9 – Diagrama de blocos do MFRC522 ........................................................... 23

Figura 10 – Exemplificação do bloco de memória trailer do cartão MIFARE Classic 1K .............................................................................................................................. 24

Figura 11 – Diagrama esquemático do sistema proposto ......................................... 26

Figura 12 – Janela de seleção de modo de operação ............................................... 29

Figura 13 – Janela do modo de operação Largada ................................................... 30

Figura 14 – Janela do modo de operação Base ........................................................ 31

Figura 15 – Janela do modo de operação Chegada ................................................. 31

SUMÁRIO

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

1.1 PROBLEMATIZAÇÃO E OBJETIVO.................................................................10

2 REVISÃO BIBLIOGRÁFICA ................................................................................13

2.1 SISTEMAS DE IDENTIFICAÇÃO POR RADIOFREQUÊNCIA (RFID) .............13

2.1.1 Camada de Operação Física ..........................................................................14

2.1.2 Camada de Operação Virtual..........................................................................15

2.2 MICROCONTROLADORES E ARDUINO .........................................................15

2.2.1 Microcontroladores .........................................................................................15

2.2.2 Arduino ...........................................................................................................17

2.3 RELÓGIO DE TEMPO REAL (RTC) .................................................................17

2.4 DIODO EMISSOR DE LUZ (LED) .....................................................................18

3 METODOLOGIA ...................................................................................................19

3.1 DESCRIÇÃO DO PROJETO ............................................................................19

3.2 COMPONENTES ..............................................................................................21

3.2.1 Arduino Uno R3 ..............................................................................................21

3.2.2 Shield RFID MFRC522 ...................................................................................22

3.2.3 Cartão MIFARE Classic 1K .............................................................................23

3.2.4 RTC ................................................................................................................24

3.2.5 LEDs ...............................................................................................................25

3.3 MONTAGEM DO SISTEMA E FUNCIONAMENTO ..........................................25

3.3.1 Funcionamento dos Elementos de Hardware .................................................27

3.3.1.1 Leitura de Dados .........................................................................................27

3.3.1.2 Gravação de Dados ....................................................................................27

3.3.1.3 Operação dos LEDs ....................................................................................29

3.3.2 Funcionamento da Aplicação de Software ......................................................29

4 RESULTADOS E DISCUSSÕES .........................................................................32

4.1 RESULTADOS OBTIDOS .................................................................................32

4.2 PROBLEMAS ENCONTRADOS DURANTE O DESENVOLVIMENTO ............32

4.3 DESENVOLVIMENTOS FUTUROS..................................................................33

5 CONCLUSÃO .......................................................................................................34

REFERÊNCIAS .......................................................................................................35

7

1 INTRODUÇÃO

A corrida de orientação é uma atividade competitiva realizada ao ar livre em

que os competidores devem utilizar um mapa e uma bússola para se orientar em

meio a um terreno amplo geralmente composto por florestas e trilhas. O aspecto

competitivo reside no fato de cada participante ter que passar obrigatoriamente em

alguns pontos específicos do terreno, chamados formalmente de postos de controle,

em uma sequência correta. O competidor que passar por todos os postos de

controle, em sua ordem correta, e alcançar o ponto de chegada no menor tempo,

vence a prova em sua categoria. [1]

O mapa representa o terreno em escala reduzida. Este inclui as referências

aos postos de controle que devem ser passados para conclusão da prova. Na Figura

1 podemos observar um exemplo de mapa para uma pista permanente de

orientação, onde podem ser vistas as localizações dos postos de controle no terreno

como círculos numerados. Na Figura 2 pode ser visto um exemplo do cartão de

descrição dos postos de controle, o qual fica geralmente no verso do mapa e possui

tabelas que indicam a natureza dos postos de controle, ou seja, o que os

competidores devem estar procurando visualizar nas proximidades do posto de

controle especificado. O significado dos símbolos, tanto no mapa quanto na tabela,

podem ser vistos na obra em [1] e nas normas ISOM 2000[2] e International

Specification For Control Descriptions[3]. Além do mapa e do cartão de descrição

dos postos de controle, os competidores podem utilizar uma bússola para auxiliar

sua navegação. Apesar de existir um vencedor, a maioria dos praticantes encara

concluir o percurso como a melhor parte da prova.[1]

8

Figura 1 – Mapa em escala 1:10.000 do terreno da Pista Permanente de Orientação Heróis da Lapa. Formato Original: A4 210x297mm)

Fonte: [4]

9

Figura 2– Cartão de descrição dos postos de controle da Pista Permanente de Orientação Heróis da Lapa

Fonte: [4]

10

1.1 PROBLEMATIZAÇÃO E OBJETIVO

Ao chegar em um posto de controle de uma pista de orientação, poderá ser

encontrado no mesmo uma estrutura chamada prisma, que consiste normalmente de

um objeto na forma de uma base triangular com faces laterais quadradas como pode

ser visto na Figura 3. Cada prisma possui uma identificação numérica de seu

respectivo posto de controle e um picotador. Cada participante de uma corrida de

orientação recebe um cartão de controle ou cartão de picote. Neste cartão que é

pessoal e intransferível, o participante deve utilizar o picotador no prisma do posto

de controle para marcar no lugar correto que o mesmo passou por este posto de

controle. Cada picotador possui um padrão geométrico de picote específico ao seu

posto de controle, um destes padrões pode ser visto em destaque no cartão de

picote da Figura 4. O competidor comprova que completou a prova ao chegar no

ponto de chegada com o cartão completamente marcado com os picotes dos postos

de controle necessários para a conclusão da mesma.[1]

Figura 3– Ilustração de prisma numerado. Fonte: [1]

11

Figura 4– Cartão de picote de postos de controle com ilustração de picotador. Fonte: [1]

Um dos problemas neste sistema de picote é que, apesar do mesmo garantir

que o participante passou por todos postos necessários, não garante que o mesmo

se deu na ordem correta, o que acaba exigindo uma fiscalização do itinerário da

prova ou a criação de um percurso que não favoreça a troca na ordem de passagem

dos postos. Além disso, por apenas tratar-se normalmente de uma folha de papel

picotado, os cartões de controle ficam sujeitos a fraudes como utilização de

picotadores falsos e à picotagem do cartão de outro competidor. Além das fraudes, a

espera para utilização do picotador pode ser grande, caso vários participantes

cheguem em um tempo próximo ao posto de controle. Existem sistemas que ao

invés de utilizarem o cartão de picote, implementam sistemas eletrônicos como o

SPORTIDENT e o EMIT, porém estes sistemas são custosos e de difícil

12

implementação pois são normalmente dimensionados para eventos maiores com um

número elevado de participantes.

O objetivo deste projeto é substituir o sistema de picote e cartão de controle

por um sistema informatizado de identificação por radiofrequência, capaz de realizar

a marcação da passagem nos postos de controle de uma maneira rápida e a prova

de fraudes. O sistema em cada posto de controle deve ser capaz de gravar dados

que indicam a passagem pelo mesmo, sem redundância, em um dispositivo que seja

único ao participante e muito difícil de ser alterado manualmente pelo mesmo,

funcionando como uma espécie de “cartão de picote eletrônico”, sendo altamente

portátil, prático de ser utilizado e resistente à intempéries.

13

2 REVISÃO BIBLIOGRÁFICA

2.1 SISTEMAS DE IDENTIFICAÇÃO POR RADIOFREQUÊNCIA (RFID)

A identificação por radiofrequência (ou RFID, do inglês, Radio-Frequency

IDentification) é uma técnica de captura e gravação de dados em uma etiqueta, ou

em inglês, tag, através de uma comunicação sem fio dada por ondas de rádio. Trata-

se de uma tecnologia relativamente nova, acreditando-se que sua concepção se

originou na identificação de aviões militares durante a 2ª Guerra Mundial e a partir

disto começou a ser desenvolvida para diversas outras utilizações.[5]

Os sistemas RFID permitem leitura e gravação de dados, sem contato direto, de

etiquetas eletrônicas através de sinais eletromagnéticos. Estes sinais

eletromagnéticos são essencialmente ondas de rádio de diferentes frequências que,

em sistemas RFID, vão normalmente de 125 kHz até 960 MHz. Quanto maior a

frequência de operação do sistema, maior a quantidade de dados que pode ser

transmitida através da onda e maior seu alcance. A maior parte dos sistemas RFID

existentes opera na frequência de 13,56 MHz devido à combinação de propriedades

que essa frequência possui, como sua alta taxa de transferência de dados e baixo

alcance, o que diminui a existência de interferências.[2]

Um sistema RFID consiste em duas camadas principais que chamaremos de

camada de operação física e camada de operação virtual. No diagrama de blocos da

Figura 5 é possível visualizar um sistema RFID usual e os componentes que o

definem, separados entre a camada de operação física e a camada de operação

virtual. Estes componentes e suas funções serão explicados brevemente na

sequência.

14

Figura 5 – Diagrama de blocos de um sistema RFID Fonte: Autoria própria.

2.1.1 Camada de Operação Física

Etiqueta: Etiquetas são os sistemas que são anexados em algum objeto

como, por um exemplo, um cartão de plástico. Estes sistemas consistem em

dois componentes principais: uma antena e um microcontrolador.

Dependendo da aplicação, outros componentes como sensores podem ser

integrados ao sistema. A antena da etiqueta comunica-se com o leitor através

de ondas eletromagnéticas, que no caso de etiquetas passivas, também

recebem a energia necessária para operação da mesma. O microcontrolador

armazena a identificação única que cada etiqueta possui em forma numérica

e outros dados que devem ser lidos ou gravados na etiqueta. Uma etiqueta

ativa, além destes componentes, também possui uma bateria para operação

de seu circuito;

Leitor: Um leitor RFID consiste basicamente em dois componentes principais:

uma antena e o circuito comunicador. A antena é utilizada para se comunicar

com a etiqueta através de ondas eletromagnéticas. Caso a etiqueta seja do

tipo passiva, a antena fornecerá energia para a mesma, através de indução

eletromagnética, para a operação de seu circuito integrado. O circuito

15

comunicador realiza as tarefas de enviar dados através da antena do leitor,

receber dados oriundos da antena da etiqueta e mandar estes dados para a

parte do sistema em que está integrado para processamento. A arquitetura

detalhada do leitor pode ser visualizada em [5];

Zona de Comunicação: A zona de comunicação é um espaço físico

tridimensional onde o sistema se mantém operacional e consiste de tudo que

existe nas proximidades da etiqueta e do leitor por onde as ondas

eletromagnéticas viajam. Consiste na região do espaço em que o leitor

lê/escreve dados de/em uma etiqueta.[5]

2.1.2 Camada de Operação Virtual

Sistema Intermediário: O sistema intermediário é o sistema responsável por

enviar e receber dados diretamente do leitor, processar os dados da maneira

especificada, armazená-los e enviá-los para a aplicação adequada. O sistema

intermediário também inclui o software utilizado para monitoramento,

configuração e funcionamento do hardware do leitor;[5]

Aplicação: Os dados conseguidos através do sistema intermediário serão

utilizados pela aplicação, que é um software, para processos relevantes ao

propósito do sistema RFID. Em um sistema de cartões de estacionamento,

por exemplo, a aplicação irá receber do sistema RFID o horário em que o

veículo entrou no estacionamento e processar este horário com o de retirada

do veículo para calcular o preço que o cliente deve pagar.

2.2 MICROCONTROLADORES E ARDUINO

2.2.1 Microcontroladores

Um microcontrolador é um circuito integrado composto de diversos

elementos computacionais e periféricos que se comunicam entre si, como pode ser

visualizado no diagrama de blocos da Figura 6, consistindo em um sistema

16

computacional completo.[6] Cada componente possui uma função específica

explicada brevemente na sequência.

Figura 6 – Diagrama de blocos simplificado de um microcontrolador Fonte: Autoria própria.

Unidade Central de Processamento (CPU): Assim como nos computadores

normais, a CPU de um microcontrolador é responsável por realizar as

operações lógicas e aritméticas, entre outras, sobre os dados recebidos;

Memória: Onde todos os dados e programas ficam armazenados, antes,

durante e depois do processamento pela CPU;

Entradas: Dispositivos conectados nas entradas do microcontrolador

fornecem os dados para a CPU processar, estes dados vem de um sistema

externo;

Saídas: Os dispositivos conectados nas saídas do microcontrolador recebem

os dados após o processamento feito pela CPU.

Além dos componentes principais existem vários periféricos como

conversores AC/DC e temporizadores que podem ser incluídos em um

microcontrolador. Alguns desses periféricos e informações mais detalhadas sobre o

funcionamento de um microcontrolador podem ser vistas em [6].

17

2.2.2 Arduino

O Arduino é uma ferramente de hardware, mais especificamente uma placa

microcontroladora, para a criação de computadores que utilizem sensores e

atuadores que possam interagir mais com o mundo físico ao contrário de um

computador convencional. O Arduino é composto por dois componentes principais:

uma plataforma computacional física de código aberto baseada em um

microcontrolador e um ambiente de desenvolvimento para a criação de aplicações

computacionais (IDE). O Arduino contém o que é necessário para sua operação

através de um computador comum, logo é utilizado amplamente em ambientes

didáticos. Existem vários modelos diferentes fabricados de Arduino, porém por tratar-

se de um projeto de código aberto, é possível a montagem de Arduino próprio, dado

os recursos e conhecimento necessário para fazê-lo. Os diversos modelos diferentes

de Arduinos fabricados oficialmente podem ser visualizados no site oficial do Arduino

Team[7].

O Arduino pode ser utilizado para desenvolver objetos interativos, que

recebem entradas de uma grande variedade de chaves ou sensores, controlando

uma grande variedade de luzes, motores e outras saídas físicas. O Arduino é capaz

de armazenar aplicações criadas em seu ambiente de desenvolvimento podendo

assim realizar as funções desejadas por contra própria sem a necessidade de um

computador.[7]

O uso de um Arduino pode ser extendido através do uso de placas de circuito

periféricas contendo outros dispositivos, por exemplo um leitor RFID, chamadas

shields. Shields são conectados diretamente ao Arduino, utilizando as portas

adequadas.[8]

2.3 RELÓGIO DE TEMPO REAL (RTC)

Um relógio de tempo real (ou RTC, do inglês, Real-Time Clock), é um

sistema composto normalmente por um circuito integrado, um cristal oscilador e uma

fonte de energia. O RTC é capaz de fornecer o tempo atual quando necessário, pois

o mesmo o mantém sempre atualizado, possibilitando a equipamentos eletrônicos a

18

implementação de funções como alarme e calendário. A vantagem que os RTCs

possuem sobre outros sistemas que desempenham a mesma função é o seu baixo

consumo de energia.

Um RTC só pode ser tão preciso quanto a sua referência usada,

normalmente um cristal oscilador. A frequência característica de um cristal depende

do formato do mesmo e pode ser controlada pelo fabricante dependo dos ângulos

em que o mesmo é cortado. Porém a manufatura de cristais com diferentes ângulos

requer um trabalho complexo e custoso.[9] Os cristais mais utilizados oscilam em

frequências de 32,768 kHz devido ao seu custo-benefício e facilidade de fabricação.

2.4 DIODO EMISSOR DE LUZ (LED)

Um diodo emissor de luz (ou LED, do inglês, Light Emitting Diode) é um

dispositivo semicondutor que "emite luz quando polarizado diretamente"[10]. Quando

um LED é diretamente polarizado, elétrons livres encontram lacunas na estrutura

deste semicondutor, liberando energia na forma de fótons, portanto emitindo uma

luz. Este efeito é chamado de eletroluminescência e os LEDs podem exibir diversas

cores diferentes, conforme o comprimento de onda, que varia com os materiais

semicondutores empregados. LEDs são especialmente úteis para se obter uma

reposta visual do estado dos sistemas em que estão integrados, devido também à

rapidez com que podem ser ligados e desligados.[10]

19

3 METODOLOGIA

3.1 DESCRIÇÃO DO PROJETO

O projeto consiste em um sistema RFID completo, capaz de substituir o

cartão de postos de controle de uma corrida de orientação por uma etiqueta RFID

adequada, e o picotador nos postos de controle por um leitor RFID e um sistema

intermediário, capaz de fornecer à etiqueta do participante, que possui identificação

única, os dados necessários para comprovar sua passagem pelo posto, bem como o

tempo em que esta passagem foi feita, através do uso de um RTC no sistema.

Esta etiqueta será cadastrada antes da corrida através de uma aplicação,

que irá definir os dados a serem gravados na etiqueta como o nome do participante

e outras informações relevantes à corrida de orientação em questão, como sua

categoria. Quando o participante alcançar o ponto de chegada da corrida de

orientação, os dados em sua etiqueta serão lidos e processados e a aplicação, a

partir destes dados, irá determinar se o participante passou por todos postos

necessários, em sua ordem correta, e sua classificação ao fim da prova.

Para a concepção do protótipo os componentes utilizados, e sua função no

sistema, são os seguintes:

Componente Função no Sistema

Arduino Uno R3 Sistema intermediário(Controle do leitor RFID, leitura do RTC, comunicação com PC).

Shield RFID MFRC522 da NXP Semicondutores

Leitor RFID

Cartão MIFARE Classic 1K Etiqueta RFID

Circuito Integrado DS1307 com cristal oscilador de 32,768 kHz e bateria CR2032 de 3V

RTC

LEDs vermelho, verde e amarelo Sinalização de estado do sistema

Quadro 1 – Componentes Utilizados no Sistema e suas Funções Fonte: Autoria Própria.

No diagrama de blocos da Figura 7 é possível observar de maneira

simplificada a comunicação entre estes componentes no sistema. A aplicação,

embora não seja um componente físico, desempenha diversos papéis no sistema.

20

Estes papés, junto com uma descrição detalhada dos componentes e seu

funcionamento, serão explicados nas seções seguintes.

Figura 7 – Diagrama de blocos do sistema proposto Fonte: Autoria própria.

21

3.2 COMPONENTES

3.2.1 Arduino Uno R3

No protótipo o sistema intermediário é um Arduino modelo Uno R3 que

utiliza o microcontrolador ATmega328 da Atmel como seu processador central. Em

termos de conexões, este modelo possui 14 entradas/saídas digitais, das quais 6

podem ser utilizadas como saídas PWM (modulação por largura de pulso); 6

entradas analógicas; 1 conexão USB e 1 conexão de energia.

A principal diferença do modelo Uno para outros modelos de Arduino é a

utilização de um chip Atmega382 da Atmel programado para fazer a conversão entre

USB-serial enquanto outros modelos utilizam o chip de conversão USB-serial da

FTDI. Mais informações sobre esse recurso e suas utilidades estão disponíveis no

site do Arduino Team[11].

Abaixo está um sumário das principais características do modelo Uno,

traduzido diretamente do site oficial do Arduino Team[11].

Microcontrolador: ATmega328;

Tensão de operação: 5V;

Tensão de entrada (Recomendada): 7-12V;

Tensão de entrada (Limites): 6-20V;

Pinos de entrada/saída digital: 14, dos quais 6 podem fornecer saída

PWM (modulação por largura de pulso);

Pinos de entrada analógica: 6;

Corrente contínua por pino de entrada/saída: 40 mA;

Corrente contínua para o pino 3.3V: 50 mA;

Memória flash: 32 kB (ATmega328) dos quais 0.5 kB são utilizados

pelo gerenciador de boot;

Memória SRAM: 2 kB (ATmega328);

Memória EEPROM: 1 kB (ATmega328);

Velocidade de Clock: 16 MHz.

Algumas destas características serão mais detalhadas na seção de

montagem e funcionamento do projeto. A Figura 8 mostra a aparência do Arduino

Uno R3.

22

Figura 8 – Arduino Uno R3 e suas Dimensões Aproximadas Fonte: [11]

3.2.2 Shield RFID MFRC522

O shield utilizado consiste em um microcontrolador MFRC522 com antena

da NXP Semicondutores, com a pinagem correta para conexão ao Arduino via

protocolo SPI. O circuito integrado MFRC522 é um leitor/gravador altamente

integrado para comunicação sem fio por ondas de rádio na frequência de 13,56

MHz. O transimissor interno do MFRC522 é capaz de energizar uma antena de

leitura/gravação desenvolvida para comunicar-se com etiquetas RFID padrão

ISO/IEC 14443 A/MIFARE sem a necessidade de circuitos ativos adicionais.

O módulo receptor do MRFRC522 fornece uma implementação robusta e

eficiente para demodulação e decodificação de sinais das etiquetas RFID

compatíveis.

O MFRC522 oferece os protocolos de comunicação SPI (do inglês, Serial

Peripheral Interface), Serial UART e I2C-bus. Para o projeto em questão, o protocolo

utilizado foi o SPI (mais detalhes sobre o mesmo serão vistos na seção 3.3.

23

Na Figura 9 é possível observar um diagrama de blocos para o MFRC522, a

antena recebe o sinal analógico e o repassa para a interface analógica, que é

responsável pela modulação e demodulação destes sinais. O módulo UART (do

inglês, Universal Asynchronous Receiver/Transmitter) sem contato gerencia os

requerimentos padrão para os protocolos de comunicação com o hospedeiro, no

caso, o Arduino. O buffer FIFO (do inglês, First In, First Out) garante transferência de

dados rápida e conveniente para o/do hospedeiro e contactless UART e vice-versa,

através do protocolo de conexão escolhido.[12]

Figura 9 – Diagrama de blocos do MFRC522 Fonte: [12].

Os pinos presentes no shield, para conexão do MFRC522 com o Arduino

são Reset, SS (do inglês, Slave Select), MOSI (do inglês, Master Output Slave

Input), MISO (do inglês, Master Input Slave Output), SCK (do inglês, Serial Clock),

Ground (Aterramento) e 3,3V (Alimentação).

3.2.3 Cartão MIFARE Classic 1K

A etiqueta RFID utilizada para testes do sistema é um cartão do tipo

MIFARE Classic 1K. Este cartão possui dois elementos principais, o chip de circuito

integrado microcontrolador MF1S503x e uma antena de transmissão.

O circuito integrado MF1S503x, produzido pela NXP Semicondutores possui

uma memória EEPROM de 1kB, uma interface de radiofrequência e uma unidade de

controle digital. A antena, formada por uma bobina com um número pequeno de

voltas, transmite energia e dados para o circuito integrado MF1S503x.[13]

A interface de radiofrequência que existe no circuito MF1S503x consiste em:

Modulador/Demodulador;

Retificador;

Regenerador de Clock;

24

Power-On Reset (POR);

Regulador de Tensão.

Outros recursos relevantes que existem no circuito incluem:

Protocolo anti-colisão: Múltiplos cartões no alcance do leitor podem ser

selecionados e manuseados separadamente;

Autenticação: Antes de qualquer operação na memória do cartão, o

procedimento de autenticação certifica que o acesso a qualquer

trecho de memória só é possível dada a combinação de duas chaves

criptográficas(sendo uma delas opcional) para cada bloco de

memória;

Organização memória EEPROM: O 1kB de memória EEPROM é

organizado em 16 setores com 4 blocos cada. Um bloco de memória

contém 16 bytes. O último bloco de cada setor se chama trailer e

contém as duas chaves (sendo uma delas opcional) para acesso e

condições de acesso programáveis para cada bloco neste setor,

como pode ser visto na Figura 10;

Figura 10 – Exemplificação do bloco de memória trailer do cartão MIFARE Classic 1K Fonte: [13]

Identificador Único: Cada cartão contém um código numérico interno de

identificação criado durante sua fabricação armazenado no bloco de

memória inicial, utilizado para dados do fabricante.

3.2.4 RTC

O RTC do projeto utiliza o circuito integrado DS1307 da Dallas

Semiconductor, um cristal oscilador de frequência 32,768 kHz e uma bateria

CR2032 de 3V. O circuito integrado DS1307 é capaz de fornecer segundos, minutos,

horas, dia, mês, dia da semana e ano (incluindo ano bissexto até 2100). Além disso,

o circuito é capaz de ajustar o dia para meses com menos de 31 dias, incluindo as

correções necessárias para anos bissextos. O relógio opera nos modos de 24 horas

25

ou 12 horas com indicações AM/PM. O circuito contém ainda um sistema capaz de

detectar falhas de energia, utilizando uma fonte reserva para manter seu

funcionamento.[14]

Um RTC é tão preciso quanto seu cristal, e no caso do cristal utilizado de

32,768 kHz, o mesmo possui uma precisão de 20 ppm ou ±0,65536 Hz, o que traduz

em um erro de ±51,8 segundos por mês no fornecimento do tempo. Dado que uma

corrida de orientação dificilmente durará mais que um dia, e que o fornecimento da

hora será calibrado a partir da largada, este erro torna-se aceitável neste

contexto.[15]

A bateria CR2032 de 3V é mais do que suficiente para energizar o RTC pelo

que se presume seja muito tempo, apesar de ser dificil saber perfeitamente quanto,

já que o mesmo consome no mínimo 500nA de corrente durante sua operação.[14]

3.2.5 LEDs

Três LEDs são utilizados no projeto: um de luz vermelha, um de luz amarela e

um de luz verde. Os LEDs utilizados funcionam com tensão de 2,2V. Um resistor de

220 ohms é utilizado em cada para garantir que a corrente fique em torno de

13,64mA, dentro do limite que os LEDs utilizados possuem de 20mA

3.3 MONTAGEM DO SISTEMA E FUNCIONAMENTO

A conexão dos componentes foi feita utilizando-se de uma placa de ensaio (ou

protoboard) para evitar a necessidade de soldas que seriam difíceis de serem

desfeitas no caso de montagem incorreta. O diagrama esquemático da montagem

pode ser visto na Figura 11.

26

Figura 11 – Diagrama esquemático do sistema proposto Fonte: Autoria própria.

27

3.3.1 Funcionamento dos Elementos de Hardware

3.3.1.1 Leitura de Dados

Durante a aproximação do cartão com o shield RFID haverá uma transmissão

de sinal pela antena do cartão e recepção deste sinal pela antena do shield RFID. O

shield RFID está conectado ao Arduino utilizando o protocolo SPI. O protocolo SPI é

um protocolo de dados serial síncrono, utilizado por microcontroladores para se

comunicarem com dispositivos periféricos, ou para comunicação entre dois

microcontroladores, no caso, o microcontrolador presente no Arduino e o

microcontrolador presente no shield RFID.[16] Em uma conexão SPI existe sempre

um dispositivo que controla outros dispositivos periféricos chamado mestre, que

neste caso é o Arduino. O shield RFID é um dispositivo escravo. A conexão se dá

através dos seguintes pinos:

MISO (Master Input Slave Output): O pino de conexão do escravo para

enviar dados ao mestre(Utilizado durante a leitura do cartão);

MOSI (Master Output Slave Input): O pino do mestre para envio de

dados aos escravo (Utilizado durante gravação no cartão);

SCK (Serial Clock): Pino responsável pelos pulsos de clock que

sincronizam a transmissão de dados gerada pelo mestre;

SS (Slave Select): O pino em cada dispositivo que o mestre pode usar

para ligar ou desligar dispositivos específicos.

Após receber o sinal analógico do shield RFID, o Arduino transforma as

informações contidas neste sinal em dados digitais capazes de serem manipulados

através de aplicação escrita em seu ambiente de desenvolvimento. No projeto, o

Arduino irá receber do cartão os dados do participante e definir se o mesmo concluiu

a corrida de orientação e qual sua classificação na mesma.

3.3.1.2 Gravação de Dados

Ao contrário da leitura, na gravação a antena do shield RFID enviará o sinal

analógico e a antena do cartão irá recebê-lo. A interface de radiofrequência existente

no circuito dentro do cartão é capaz de receber este sinal e transformá-lo em dados

28

digitais para serem armazenados na memória do mesmo, dado que o mesmo tenha

sido autenticado.

A memória do cartão de 1kB é dividida em 64 blocos de 16 bytes, estes

blocos são divididos em 16 setores, contendo portanto 4 blocos em cada. Cada setor

possui um bloco chamado trailer onde estão contidas as chaves de autenticação,

logo o mesmo não pode ser editado. O primeiro bloco do cartão (0) e o último (63)

também não permitem gravação por razões não especificadas pelo fabricante.

No projeto são utilizados dois blocos para armazenamento de informações

sobre o participante, sobrando em torno de 640 bytes utilizáveis para registro de

passagem pelos postos de controle. Cada registro de passagem ocupará 9 bytes na

disposição seguinte:

2 bytes para armazenar a numeração do posto de controle;

2 bytes para o ano atual de passagem no posto de controle;

1 byte para o mês atual de passagem no posto de controle;

1 byte para o dia atual de passagem no posto de controle;

1 byte para a hora atual de passagem no posto de controle;

1 byte para o minutos atual de passagem no posto de controle;

1 byte para o segundo atual de passagem no posto de controle;

Os blocos para armazenamento de informações sobre os participantes

armazenam as seguintes informações:

2 bytes de ponteiro para a numeração dos bytes totais;

3 bytes para número de identificação na Confederação Brasileira de

Orientação (CBO);

4 bytes para categoria do participante (4 dígitos alfanuméricos);

23 bytes para armazenamento do nome do participante.

Os bytes de ponteiro para numeração dos bytes totais servem para simular

um armazenamento linear no cartão, ou seja, ao invés de pensar em termos de

blocos, numeramos os bytes do cartão. Cada vez que um posto de controle

armazena informações no cartão, o ponteiro é atualizado para 9 bytes a frente do

valor anterior. Existe uma lógica que faz o ponteiro avançar mais quando chega em

um bloco de autenticação, apontando sempre para os blocos de gravação, somente.

29

3.3.1.3 Operação dos LEDs

Enquanto o sistema estiver ligado, o LED verde sempre se manterá aceso.

Durante a gravação ou leitura do cartão, o LED amarelo irá se manter aceso e o

LED vermelho só acenderá caso ocorra algum erro durante a leitura ou gravação no

cartão.

3.3.2 Funcionamento da Aplicação de Software

Apesar do hardware composto ser o mesmo para postos de controle, ponto

de chegada e ponto de largada, o que irá definir a operação do mesmo para cada

uma destas funções será a aplicação de software criada. A aplicação criada na

linguagem java permite a mudança do modo de operação do sistema após o mesmo

ser ligado, não podendo ser mudado novamente até o desligamento e religamento

ou reset do sistema.

Para selecionar um dos modos, o Arduino deve se comunicar com um

computador capaz de executar o programa e se comunicar através de sua porta

USB. O usuário escolherá o modo adequado através de uma janela seleção que

pode ser visualizada na Figura 12.

Figura 12 – Janela de seleção de modo de operação Fonte: Autoria própria.

Caso o modo escolhido seja o Modo Posto de Controle, o computador pode

ser desconectado e o programa continuará em execução no Modo Posto de Controle

diretamente no Arduino. O funcionamento do Modo Posto de Controle e dos outros

modos disponíveis será descrito a seguir:

Modo Partida: Quando selecionado, o sistema operando em Modo

Largada necessita de conexão com um computador. O responsável

30

pela operação da aplicação no computador deve cadastrar os cartões

para cada participante, fornecendo ao cartão o nome do participante,

a categoria que está competindo e o seu número de identificação na

Confederação Brasileira de Orientação. A janela de registros exibe

informações sobre o funcionamento do programa. A aplicação em

Modo Largada pode ser vista na Figura 13.

Figura 13 – Janela do modo de operação Largada Fonte: Autoria própria.

Modo Posto de Controle: O software em modo base não necessita de

um computador para o seu funcionamento. Após o número do posto

de controle for definido no programa, o Arduino pode ser

desconectado do computador e o programa continuará funcionando

no mesmo, fornecendo ao cartão do participante que passar pelo

posto a identificação do mesmo. A janela de registros exibe

informações sobre o funcionamento do programa. A Figura 14 mostra

a tela para definição do número de identificação do posto de controle

durante a operação em Modo Base.

31

Figura 14 – Janela do modo de operação Base Fonte: Autoria própria.

Modo Chegada: Em modo chegada o programa fica aguardando a

passagem das etiquetas dos competidores. A cada passagem, o

programa salva os dados em um arquivo de texto que em seguida

pode ser processado para atualizar a classificação parcial dos

participantes. A janela de registros exibe informações sobre o

funcionamento do programa. A Figura 15 mostra o programa

operando em Modo Chegada.

Figura 15 – Janela do modo de operação Chegada Fonte: Autoria própria.

Todos os modos de operação comunicam ao Arduino a hora do computador

que por sua vez comunica este valor ao RTC, em um formato de Dia, Mês, Ano,

Hora, Minuto e Segundo para sincronia do mesmo

32

4 RESULTADOS E DISCUSSÕES

4.1 RESULTADOS OBTIDOS

Após a montagem do protótipo de funcionamento do sistema, foi possível

realizar a leitura de um cartão do tipo MIFARE Classic 1K e gravação de dados no

mesmo, através do Arduino conectado à um computador executando o programa

criado pela equipe. O programa pode ser manipulado para fornecer qualquer dado

ao cartão e receber qualquer dado do mesmo, sejam estes dados na forma de texto

ou de valores numéricos. Além disso, foi possível selecionar qual seção da memória

do cartão seria escolhida para receber os dados, porém descobriu-se que organizar

os bytes de forma numerada ao invés de trabalhar com as seções seria mais

simples.

O RTC montado foi capaz de fornecer o tempo, a partir da sincronização do

tempo inicial com o tempo no computador, incluindo segundo, minuto, hora, dia, mês

e ano de segundo em segundo. Os LEDs se comportaram como deveriam.

Dada a rapidez nas leituras e gravações, de 1 a 2 segundos, o resultado

obtido no projeto foi como o esperado e apesar de ser um protótipo, seu

funcionamento já satisfaz como solução do problema proposto.

4.2 PROBLEMAS ENCONTRADOS DURANTE O DESENVOLVIMENTO

Durante o desenvolvimento, o problema frequente sempre foi a dificuldade no

desenvolvimento de um software que fosse capaz de realizar as operações

necessária de leitura/gravação através do Arduino. Material de referência neste

quesito existia em abundância apenas para conexão com protocolo UART, sendo

que o modelo de shield utilizado só possuía os pinos que possibilitavam a conexão

por protocolo SPI. Após muita pesquisa, encontrou-se uma loja online do Reino

Unido[17] que vendia o shield em questão e disponibilizava o código exemplo para

conexão SPI. O código possuía várias funções úteis para controle do shield

MFRC522 porém ainda assim era extenso e confuso. Após mais alguma pesquisa

na internet foi encontrada uma adaptação prática desde código exemplo feita por

33

alguém chamado Miguel Balboa[18]. Esta adaptação transformava o código exemplo

em uma biblioteca para o Arduino, facilitando o desenvolvimento de um programa já

que as funções encontravam-se agora na biblioteca. Porém testes com esta

biblioteca só resultaram no cartão negando a autenticação sempre que tentávamos

alguma operação sobre o mesmo. Após revisão do datasheet do cartão e do código

de Miguel Balboa15, descobrimos que o mesmo não continha a seleção do cartão

para autenticar, um método do protocolo anti-colisão, logo o cartão negava

autenticação pois ainda não havia sido selecionado pelo shield.

Outro problema encontrado foi durante o funcionamento do RTC. Após a

montagem o mesmo não funcionava, porém foi descoberto que o problema estava

nos contatos da protoboard utilizada para testes.

Por fim, o projeto inicial previa uma tela de LCD para que os participantes

pudessem visualizar se o posto de controle estava fornecendo dados para o seu

cartão, porém a tela simplesmente parou de funcionar, não foi descoberto o motivo e

a equipe chegou a conclusão que LEDs poderiam realizar a função da tela de LCD

com a utilização de menos energia, logo a mesma acabou sendo descartada do

projeto.

4.3 DESENVOLVIMENTOS FUTUROS

Apesar de o Arduino Uno ser um sistema intermediário eficiente, a placa

Arduino Uno contém alguns elementos desnecessários para o sistema. A fabricação

de um sistema contendo os mesmos microcontroladores do Arduino Uno e do shield

RFID MFRC522 com os outros componentes que sejam necessários para o

funcionamento do sistema poderia reduzir o custo do sistema em um todo.

Como o sistema irá ficar em terreno ao ar livre, estará sujeito a ações

climáticas, logo uma carcaça deve ser desenvolvida para abrigar o mesmo das

ações do tempo.

34

5 CONCLUSÃO

Apesar de no início o projeto parecer bastante complicado para uma equipe

que não havia conhecimento anterior do assunto, o mesmo prosseguiu conforme o

cronograma planejado. Isto deve-se ao fato da equipe também ter se adiantado

durante o período de férias acadêmicas e adquirido os componentes necessários

para a montagem do sistema, junto com um estudo do tema de identificação por

radiofrequência.

Através do estabelecimento de metas e divisão das funções, o trabalho pôde

ser concluido dentro das expectativas da equipe, mesmo com o aparecimento de

alguns problemas durante o desenvolvimento, os quais foram solucionados sem

desvios no cronograma inicial.

Com o desenvolvimento deste projeto muitos novos conhecimentos foram

adquiridos, entre eles o uso da plataforma Arduino, o funcionamento de sistemas de

identificação por radiofrequência e o funcionamento de microcontroladores, todos

assuntos que ainda não haviam sido abordados durante o curso de Engenharia de

Computação.

Concluindo, a experiência total foi positiva e espera-se que o protótipo

desenvolvido possa ser evoluído em um sistema completo que possibilite seu uso

prático nas corridas de orientação, algo que não foi possível de ser realizado ainda..

35

REFERÊNCIAS

1 FRIEDMANN, Raul M. P.. Fundamentos de Orientação, Cartografia e Navegação Terrestre. 2 ed. Curitiba: Editora UTFPR, 2008.

2 International Orienteering Federation. International Specification for Orienteering Maps 2000 (ISOM2000). Disponível em: <http://orienteering.org/wp-content/uploads/2010/12/International-Specification-for-Orienteering-Maps-2000.pdf> Acesso em: 28 abr. 2013.

3 International Orienteering Federation. International Specification for Control Descriptions(2004). Disponível em: < http://orienteering.org/wp-content/uploads/2010/12/Control-Descriptions-2004-symbols-only1.pdf>. Acesso em: 28 abr. 2013.

4 Quartel General da 5ª Região Militar - 5ª Divisão de Exército em parceria com a Universidade Tecnológica Federal do Paraná / Câmpus Curitiba da e com o Centro de Desenvolvimento Regional do CISM para as Américas. Pista Permenante de Orientação Heróis da Lapa. Curitiba, 2012.

5 KARMAKAR, Nemai Chandra. Handbook of Smart Antennas for RFID Systems. Hoboken: John Wiley & Sons, Inc., 2010.

6 HEATH, Steve. Embedded Systems Design. 2 ed. London: Newnes, 2003.

7 Arduino Team. What is Arduino? Disponível em: <http://www.arduino.cc/en/Guide/Introduction>. Acesso em: 15 abr. 2013.

8 MCROBERTS, Michael. Beginning Arduino. New York: Apress, 2010.

9 Digi-Key Corporation. Enabling Timekeeping Function and Prolonging Battery Life in Low Power Systems. Disponível em: <http://www.digikey.com/us/en/techzone/microcontroller/resources/articles/enabling-timekeeping-function.html>. Acesso em: 15 abr. 2013.

10 FRENZEL JR., Louis E. Fundamentos de Comunicação Eletrônica – Volume 1. 3 ed. Porto Alegre: AMGH Ltda., 2013.

36

11 Arduino Team. Arduino Uno. Disponível em: <http://arduino.cc/en/Main/ArduinoBoardUno>. Acesso em: 15 abr. 2013.

12 NXP Semiconductors. MFRC522 Contactless reader IC product data sheet. Disponível em: <http://www.nxp.com/documents/data_sheet/MFRC522.pdf>. Acesso em: 15 abr. 2013.

13 NXP Semiconductors. MIFARE Classic 1K - Mainstream contactless smart card IC for fast and easy solution development product data sheet. Disponível em: <http://www.dfrobot.com.cn/image/data/TOY0019/MF1S50.pdf>. Acesso em: 15 abr. 2013.

14 Dallas Semiconductor. DS1307 64 x 8 Serial Real-Time Clock datasheet. Disponível em: <http://www.datasheetcatalog.org/datasheet/maxim/DS1307.pdf>. Acesso em: 15 abr. 2013

15 KUDAPALI, Kantesh. Run-Time Calibration of Watch Crystals. Disponível em: <http://ww1.microchip.com/downloads/en/AppNotes/01155a.pdf>. Acesso em: 15 abr. 2013.

16 Arduino Team. A Brief Introduction to the Serial Peripheral Interface (SPI). Disponível em: <http://arduino.cc/en/Reference/SPI>. Acesso em: 15 abr. 2013.

17 B2CQShop. Arduino RFID module Kit 13.56 Mhz with Tags SPI W and R By COOQRobot. Disponível em: <http://www.b2cqshop.com/products/203-rfid-module-kit-1356-mhz-with-tags-spi-w-and-r-for-arduino.aspx>. Acesso em 15 abr. 2013

18 BALBOA, Miguel. Arduino RFID Library for MFRC522. Disponível em: <https://github.com/miguelbalboa/rfid>. Acesso em 15 abr. 2013