Mudanças entre as edições de "TCC-BrunoAntonio TCC Bruno"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(72 revisões intermediárias por 4 usuários não estão sendo mostradas)
Linha 1: Linha 1:
=Estrutura do Texto=
+
=Descrição do sistema=
 +
O sistema inicialmente proposto é mostrado na figura abaixo. O sistema é composto por uma base de dados um computador, um leitor, um dispositivo de configuração e as tags RFID.
  
#Introdução
+
[[Arquivo:Cenario_natacao_nrf51.png]]
#Fundamentação Teórica (20 páginas)
 
##Visão geral do que é o RFID
 
##O RFID com sensores ativos
 
##O Projeto Openbeacon
 
###Visão geral do projeto
 
###Componentes do sistema
 
###Projetos derivados
 
##Sistemas de Medição e Localização de Objetos Móveis
 
###sensores utilizados
 
###onde pode se aplicar o RFID ativo
 
###aplicações no esporte equestre
 
#Proposta (5 Páginas)
 
#Bibliografia
 
  
=Introdução=
+
O computador (RaspbarryPI) esta conectado a uma base dados, na qual estão armazenadas as informações sore o atleta, e o leitor através de uma conexão UART. O leitor tem como objetivo fazer a comunicação entre o computador e as tags obtendo a id do atleta enviada pela tag e transmitindo para o pc através da UART. O dispositivo de configuração permite que certas informações da tag sejam alteradas .O atleta tem uma tag no braço e uma na perna, a tag quando em modo de transmissão envia um numero de identificação e quando em modo de recepção a mesma pode ser reprogramada inserindo novas informações.
  
=Visão geral do que é o RFID=
+
==Tag==
  
===História do RFID===
+
A tag atua como transmissor e receptor. Quando a tag esta transmitindo a unica informação enviada no quadro é a sua id. Quando em modo de recepção o quadro recebido pela tag possui informações de configuração: taxa de transmissão, potência de transmissão, tempo de intervalo entre as transmissões a id atual da tag a qual o pacote está interessado e a nova id caso queira-se alterar a id da tag.
  
===Componentes do Sistema===
+
[[Arquivo:Maquina de estado tag nrf51.png]]
Radio Frequency Identification (RFID) é uma tecnologia de comunicação sem fio que permite um usuário a identificar um objeto ou pessoa  marcada.
 
  
Um sistema RFID é composto por três componentes básicos: uma tag, um interrogator e um host.
+
A imagem acima mostra o funcionamento da tag através de uma maquina de estado.
  
'''Tag:''' é composta basicamente por um chip semicondutor e uma antena. A função basica da tag é armazenar uma informação (pode ser um número de série, instruções, etc) e transmiti-las através de um sinal.
+
[[Arquivo:Diagrama de tempo cenario natacao nrf51.png]]
  
'''Interrogator:''' A função do interrogator é fazer a comunicação entre as tags e o host, adicionalmente a isso ele pode criptografar/descriptografar a informação, fazer autenticação e ter forma para evitar colisão entre pacotes.
+
A imagem acima mostra o funcionamento padrão da tag no qual ela permanece um tempo configuravel x em modo sleep, termidado esse tempo é ativado o modo de trasmissão no qual a tag enviará a sua id, após isso ela entrara em modo de recepção caso receba um pacote em um tempo pré-determinado de 200 us a tag voltara a entrar em modo de transmissão caso contrario ela entrara em modo sleep.
  
'''Host:''' O host é o equipamento que ira utilizar as informações recebidas pelo interrogator.
+
==Leitor==
  
===Tipos de Tag===
+
O leitor funciona unicamente em modo de recepção. Quando um pacote é recebido é verificado o crc, caso não tenha ocorrido nenhum erro a id é transmitida através da UART para o pc.
  
'''Passivas:''' As tags passivas usam a energia captada do sinal recebido para enviar o seu sinal graças a esse fator elas se tornam menores e mais baratas que as tags ativas porém elas possuem um alcance menor, uma memória interna maior, e precisam de um interrogator com uma maior potência para transmitir o sinal.
+
==Configurador==
  
'''Semi-Ativa:'''
+
O dispositivo de configuração funciona em modo de transmissão. Os dado são pegos através da UART inseridos em um pacote e enviados em broadcast para as tags. As seguistes informacões sã emviados no pacote de configuração:
  
'''Ativas:''' As tags ativas por sua vez possui uma bateria interna o que permite um sinal com alcance maior, tipicamente também possuem memórias maiores (até 128 KB), porém devido a esses fatores elas, são maiores, possuem um preço maior e um tempo de vida menor (de 2 a 7 anos).
+
A potência de transmissão da tag;
  
'''Smart-Tags:'''
+
O tempo em que a tag pemeneçerá em modo sleep;
  
===Padrões===
+
A ID á qual o pacote é destinado;
  
===Utilizações do RFID===
+
E uma nova ID caso queira se alterar a ID atual da tag.
  
=O Projeto Openbeacon=
+
=Esboço do Sistema=
O projeto OpenBeacon foi fundado em 2006 pela companhia Bitmanufaktur GmbH como uma plataforma aberta para aplicações com RFID ativo                                                                  operando na banda de 2.4GHz. O OpenBeacon é baseado em
+
A imagem abaixo mostra o fluxograma do funcionamento inicialmente pensado para a tag no sistema.
software livre, muito flexível, reprogramável e de baixo custo. Os códigos de firmware e os esquemáticos de hardware se encontram
 
disponíveis sobre a sobre a ''GNU General Public License'' (GPL).
 
  
==Visão geral do projeto==
+
[[Arquivo:Fluxograma_Sistema_Natação_NRF51.png]]
Um sistema OpenBeacon é um conjunto especifico de software e hardware envolvendo OpenBeacons que implementam uma funcionalidade
 
especifica. Embora o OpenBeacon seja muito flexível e cada sistema acabe sendo diferente do outro a maioria dele pode ser
 
classificados de duas maneiras:
 
  
'''Mestre/escrevo:''' é o clássico sistema RFID onde um ou mais OpenBeacons (tags) trocam informações com dispositivos chamados
+
=Memória Flash=
estações base (interrogators).
+
Como pode se visto através da imagem abaixo a memória flash do NRF51 é dividida basicamente em três partes:
  
'''Peer-to-Peer:''' neste tipo de sistema os OpenBeacons comunicam-se uns com outros diretamente de tal maneira  que  acabam
+
Code: É a área reservada para o código porém pode ser utilizada pelo usuário para gravar informações.
criando uma rede mesh.
 
  
==Componentes do sistema==
+
FICR: Possui as configurações e informações dos registradores. Essa área vem programada de fabrica e não pode ser apagada.
'''OpenBeacon tag:''' A tag OpenBeacon é constituída basicamente por um microcontrolador PIC16F688 e um transceiver nRF24L01.
 
O microcontrolador PIC16F688 possui 14 pinos, opera numa faixa 2 a 5.5 V, clock de 20 MHz,tem memória flash de 4096 palavras (cada
 
palavra possui 14 bits), memória SRAM e EEPROM de 256 bytes. O nRF24L01 é um transceiver de 2.4 GHz, baixo custo, baixo consumo de
 
potência, opera a 1 ou 2 Mbps, 40 bits de endereçamento, 80 canais, transmissor e receptor FIFO de 32 bytes.
 
  
'''OpenBeacon USB 1 e USB 2:''' Os OpenBeacons USB 1 USB 2 são interrogators com microcontroladores ARM programáveis (AT91SAM7X e LPC1343 respectivamente). O USB 1 funciona como um dispositivo USB podendo ser conectado diretamente ao computador e acessado via HyperTerminal
+
UICR: Essa área é utilizada para gravar informações de configuração do usuário. Entre as configurações que podem ser feitas pelo usuário estão a definição do tamanho máximo da ''code region 0'' e proteção para evitar a leitura da memória.
(como o minicom por exemplo). O USB 2 assim como o USB 1 pode ser reprogramado via USB, nesse caso via micro USB,
 
utilizando um gcc toolchain. O USB 2 permite carregar uma bateria externa através da entrada micro USB, possui uma interface
 
bluetooth permitindo uma conexão wireless com o computador, 4 MB de memória flash para armazenamento de dados, um acelerômetro de
 
3 eixos para permitir detecção e orientação e orientação 3D, 3 botões que permitem uma interface simples com o usuário e 11 pinos
 
para expansão.
 
  
'''EasyReader:''' O OpenBeacon EasyReader é um interrogator que possui um processador ARM 32 bits (AT91SAM7X), 2 interfaces RF OpenBeacon, micro SD para armazenamento de  dados, entrada Ethernet e 20 pinos para expansão.
+
[[Arquivo:NRF51_Memory_Map.png]]
  
==Projetos derivados==
+
O tamanho máximo da área de código é Y onde: Y = tamanho_máximo_da_memória_flash - 1. Tendo como exemplo a placa PCA1000 do kit de desenvolvimento cujo o tamanho da memória flash é de 256 KB ou 0x40000 logo o ultimo endereço disponível para gravar na flash é 0x3FFFF. A área de código é dividida em paginas e único meio de apagar uma informação na área de código é apagar a pagina onde se encontra a informação e para isso é utilizado o primeiro endereço da pagina. Cada pagina possuí 1 KB logo se tivermos um dispositivo com 256 KB de memória flash ele terá 256 paginas, para se encontrar o primeiro endereço de uma determinada pagina basta seguir a seguinte equação: endereço = (nº_da_pagina - 1) * 1024.
  
'''Sputinik:''' O projeto Sputinik é um sistema para localização em tempo real dentro de construções usando a tag OpenBeacon.
+
=Sleep Modes=
                   
 
A tag OpenBeacon é usada em combinação com 25 estações base (interrogators) para facilitar a localização. As tags quadros aleatoriamente com diferentes níveis de potência. Se o pacote for recebido por uma ou mais estações base é possível se ter uma ideia sobre a sua localização.
 
  
As estações base não exploram diferenças de tempo ou triangulação e sim apenas a força do sinal para fazer o posicionamento.
+
==System OFF==
 +
É o modo de economia de energia mai eficiente que o NRF51 pode entrar. Neste modo o processamento é reduzido ao minimo e todas as atividades sendo executadas são finalizadas. Os únicos mecanismos funcionando nesse modo são o de ''wake-up'' e o reset. O dispositivo pode sair desse estado através de um sinal DETECT gerado pelo GPIO, um sinal ANADETECT gerado pelo módulo LCOMP, ou um reset. Quando o dispositivo sai desse modo é gerado um reset.
  
A saída das estações base é introduzida no Chaos Positionig System (CPS), queprove uma maneira mais alto nível e abstrata de manter e distribuir as
+
==System ON==
informações de posicionamento.
+
Nesse a CPU e os periféricos selecionados podem ser induzidos a um estado aonde eles estão ativos e mais ou menos responsivos dependendo do sub modo de energia selecionado. Nesse modo a CPU pode tanto estar ativa quanto em modo sleep. A CPU pode entrar em modo sleep através das instruções WFI ou WFE. Quando selecionado o WFI a cpu voltara a ser ativada quando houver uma requisição de interrupção do NVIC. Quando WFE for selecionado a CPU voltara a ser ativada quando houver qualquer requisição de interrupção. O System ON possui dois sub modos de energia, são eles:
  
'''Blinkenlights:''' Em Toronto 960 janelas foram iluminadas individualmente em duas construções separadas e a instalação de conexões cabeadas precisavam ser evitadas devido a manutenção, para que isso fosse possível foram criados dois dispositivos:
+
===Costant Latency===
 +
Esse modo irá manter a latência de ''wake-up'' da CPU e a resposta da ''task PPI'' constante e minima. O consumo de energia no entanto irá aumentar.
  
''WDMI:'' Em cada lampada relevante da construção foi instalado um wireless dimmer (WDMI). O propósito era receber uma informação através da rede sem fio e desligar ou ligar a lampada através da técnica de controle de fase.
+
===Low Power===
 
+
Esse é o sub-modo padrão do System ON e é mais eficiente e econômico que o ''Constant Latency'', porém a latência da CPU e a resposta da ''PPI task'' são variáveis.
O dimmer foi feito com base em um Atmel ARM SAM7S como processador e um NRF24L01 HF (High Frequence) para comunicação RF.
 
 
 
''WMCU:'' O Wireless Matrix Control Unit (WMCU) é um dispositivo feito com base em um processador Atmel ARM SAM7X feito para a instalação do Blinkenlights, possui uma interface Ethernet em um lado e um openBeacon RF do outro. Para a comunicação RF assim como no WDMI foi utilizado um NRF24L01 HF.
 
 
 
O WMCU tem uma lista interna de até 32 lampadas que pode controlar e possui a linha, a coluna e o endereço mac do dimmer de cada uma delas. Quando um pacote UDP contendo as informações da imagem a ser exibida é recebida pelo firmware a informação de cada pixel individual é dividida para cada lampada relevante para então ser extraída e envida em brodcast para todos os dimmers.
 
 
 
Na instalação do Bliinkenlights em Toronto cada um dos 36 andares foi instalado um WMCU conectado a rede Ethernet controlando 22 ou 30 lampadas. Para cada lampada foi instalado um dimmer wirelles configurado para um pixel em uma posição especifica na matriz global assim o dimmer saberia quando piscar.
 
 
 
=Sistemas de Localização em Tempo Real (RTLS)=
 
Um Sistemas de Localização em Tempo Real ou do inglês ''Real Time Location System'' (RTLS) permite localizar, gerenciar, analisar, ou ainda utilizar as informações sobre as pessoas ou objetos que estejam utilizando um dispositivo que faça uso de uma tecnologia que permita uma localização em tempo real. Entre as varias tecnologias que podem ser usadas para fazer localização em tempo real temos:
 
 
 
==Tipos de RTLS==
 
 
 
===Baseados em imagens===
 
 
 
===Não Baseados em imagens===
 
 
 
'''GPS:''' O Sistemas de Posicionamento Global ou do inglês ''Global Positioning System'' (GPS) foi criado em 1973, sendo constituído por um grupo de 24 satélites, e concebido inicialmente com fins militares porém após os anos 80 se tornou disponível para o publico em geral.
 
 
 
O GPS determina a posição de um objeto através de cálculos feitos pelo receptor a partir dos sinais enviados pelos satélites e sua posições.
 
 
 
'''Wi-Fi:''' Embora possa parecer estranho é possível usar uma rede Wi-Fi em conjunto com protocolos para se criar um RTLS, uma das vantagens desse sistema é a possibilidade de se usar um único ponto de acesso para fazer a localização embora que consequentemente faça o sistema com que o sistema tenha uma baixa precisão.
 
 
 
'''RFID:''' É possível ter um RTLS com RFID através de uma triangulação através da potência do sinal. Um dos cenários em que esse tipo de sistema pode ser utilizado é quando se tem vários interrogators recebendo o sinal de uma ou mais tags como cada, interrogator receberá uma potencia diferente é possível se ter uma relação da distancia entre as tags e cada um dos interrogators e assim saber a posição das tags.
 
 
 
 
 
==Métodos utilizados para determinar a distancia entre o transmissor e o receptor==
 
 
 
==Onde o RFID ativo pode ser utilizado==
 
O RFID ativo por ter um alcance maior é normalmente utilizado em RTLS para projetos nas mais diversas áreas como:
 
 
 
'''Segurança:''' O TSI PRISM RFID é um sistema de localização desenvolvido pela empresa Alanco para presídios com o objetivo de eliminar o custo da contagem manual de detentos, diminuir os custos do sistema prisional e tornar o ambiente mais seguro.
 
 
 
Entre as funcionalidade do sistema se encontram identificação e localização individual, distribuição de alimentos e medicamentos, gerenciamento de áreas restritas e locais específicos, informações de entrada e saída.
 
 
 
'''Automóveis:''' Uma companhia do Reino Unido está desenvolvendo uma placa de automóveis com RFID ativo. O sistema possibilita os sensores de velocidade e outros mecanismos a identificar a automóveis a uma distancia de até 300 metros. O sistema tem como objetivos por pedagios, para pagamento eletrônico, localização, roubos, etc.
 
 
 
==Aplicações do RFID ativo no esporte equestre==
 
Alguns sistemas RFID de localização em tempo real tem sido usado no hipismo para melhora a postura de atletas como é o caso do produto desenvolvido pela empresa Integrated Equine Technologies. Normalmente instrutores e cavaleiros costumam avaliar seu desempenho treinando numa arena cercada por espelhos e assim vendo a sua desenvoltura e a de seu cavalo ou trazendo um a amigo para filmar a performance, porém o sistema desenvolvido pela empresa escolhe o melhor angulo para ser filmado por cada uma das 2 câmeras motorizadas instaladas no estabulo através de tags presas no corpo do cavalo.
 
 
 
Em outro exemplo do RFID sendo usado para melhorar o desempenho de atletas no hipismo temos um estudo feito pela University College Dublin usaram tags RFID para verificar a postura de cavaleiros (novatos e experiente) durante as performances para coletar dados e assim ajudar a melhorar o desempenho dos atletas.
 
 
 
=Proposta=
 
 
 
=Bibliografia=
 
Hunt, V. Daniel; ''et al'' RFID - A Guide to RFID
 
 
 
Malik, Ajay RTLS for Dummies
 
 
 
Paz, Sérgio M.; Cugnasca, Carlos E. O Sistema de Posicionamento Global (GPS) e suas aplicações
 
 
 
Abreu, Pedro; Vinhas, Vasco; ''et al'' Real-Time Wireless Location and Tracking System with Motion Pattern Detection
 
 
 
RFIDjournal RFID-Guided Video System Gives Equestrians Their Best Shot
 
 
 
Patterson, M.; Doyle, J.; ''et al'' Quantifying Show Jumping Horse Rider Expertise using IMUs
 
 
 
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4374381&tag=1
 

Edição atual tal como às 14h28min de 28 de abril de 2014

Descrição do sistema

O sistema inicialmente proposto é mostrado na figura abaixo. O sistema é composto por uma base de dados um computador, um leitor, um dispositivo de configuração e as tags RFID.

Cenario natacao nrf51.png

O computador (RaspbarryPI) esta conectado a uma base dados, na qual estão armazenadas as informações sore o atleta, e o leitor através de uma conexão UART. O leitor tem como objetivo fazer a comunicação entre o computador e as tags obtendo a id do atleta enviada pela tag e transmitindo para o pc através da UART. O dispositivo de configuração permite que certas informações da tag sejam alteradas .O atleta tem uma tag no braço e uma na perna, a tag quando em modo de transmissão envia um numero de identificação e quando em modo de recepção a mesma pode ser reprogramada inserindo novas informações.

Tag

A tag atua como transmissor e receptor. Quando a tag esta transmitindo a unica informação enviada no quadro é a sua id. Quando em modo de recepção o quadro recebido pela tag possui informações de configuração: taxa de transmissão, potência de transmissão, tempo de intervalo entre as transmissões a id atual da tag a qual o pacote está interessado e a nova id caso queira-se alterar a id da tag.

Maquina de estado tag nrf51.png

A imagem acima mostra o funcionamento da tag através de uma maquina de estado.

Diagrama de tempo cenario natacao nrf51.png

A imagem acima mostra o funcionamento padrão da tag no qual ela permanece um tempo configuravel x em modo sleep, termidado esse tempo é ativado o modo de trasmissão no qual a tag enviará a sua id, após isso ela entrara em modo de recepção caso receba um pacote em um tempo pré-determinado de 200 us a tag voltara a entrar em modo de transmissão caso contrario ela entrara em modo sleep.

Leitor

O leitor funciona unicamente em modo de recepção. Quando um pacote é recebido é verificado o crc, caso não tenha ocorrido nenhum erro a id é transmitida através da UART para o pc.

Configurador

O dispositivo de configuração funciona em modo de transmissão. Os dado são pegos através da UART inseridos em um pacote e enviados em broadcast para as tags. As seguistes informacões sã emviados no pacote de configuração:

A potência de transmissão da tag;

O tempo em que a tag pemeneçerá em modo sleep;

A ID á qual o pacote é destinado;

E uma nova ID caso queira se alterar a ID atual da tag.

Esboço do Sistema

A imagem abaixo mostra o fluxograma do funcionamento inicialmente pensado para a tag no sistema.

Fluxograma Sistema Natação NRF51.png

Memória Flash

Como pode se visto através da imagem abaixo a memória flash do NRF51 é dividida basicamente em três partes:

Code: É a área reservada para o código porém pode ser utilizada pelo usuário para gravar informações.

FICR: Possui as configurações e informações dos registradores. Essa área vem programada de fabrica e não pode ser apagada.

UICR: Essa área é utilizada para gravar informações de configuração do usuário. Entre as configurações que podem ser feitas pelo usuário estão a definição do tamanho máximo da code region 0 e proteção para evitar a leitura da memória.

NRF51 Memory Map.png

O tamanho máximo da área de código é Y onde: Y = tamanho_máximo_da_memória_flash - 1. Tendo como exemplo a placa PCA1000 do kit de desenvolvimento cujo o tamanho da memória flash é de 256 KB ou 0x40000 logo o ultimo endereço disponível para gravar na flash é 0x3FFFF. A área de código é dividida em paginas e único meio de apagar uma informação na área de código é apagar a pagina onde se encontra a informação e para isso é utilizado o primeiro endereço da pagina. Cada pagina possuí 1 KB logo se tivermos um dispositivo com 256 KB de memória flash ele terá 256 paginas, para se encontrar o primeiro endereço de uma determinada pagina basta seguir a seguinte equação: endereço = (nº_da_pagina - 1) * 1024.

Sleep Modes

System OFF

É o modo de economia de energia mai eficiente que o NRF51 pode entrar. Neste modo o processamento é reduzido ao minimo e todas as atividades sendo executadas são finalizadas. Os únicos mecanismos funcionando nesse modo são o de wake-up e o reset. O dispositivo pode sair desse estado através de um sinal DETECT gerado pelo GPIO, um sinal ANADETECT gerado pelo módulo LCOMP, ou um reset. Quando o dispositivo sai desse modo é gerado um reset.

System ON

Nesse a CPU e os periféricos selecionados podem ser induzidos a um estado aonde eles estão ativos e mais ou menos responsivos dependendo do sub modo de energia selecionado. Nesse modo a CPU pode tanto estar ativa quanto em modo sleep. A CPU pode entrar em modo sleep através das instruções WFI ou WFE. Quando selecionado o WFI a cpu voltara a ser ativada quando houver uma requisição de interrupção do NVIC. Quando WFE for selecionado a CPU voltara a ser ativada quando houver qualquer requisição de interrupção. O System ON possui dois sub modos de energia, são eles:

Costant Latency

Esse modo irá manter a latência de wake-up da CPU e a resposta da task PPI constante e minima. O consumo de energia no entanto irá aumentar.

Low Power

Esse é o sub-modo padrão do System ON e é mais eficiente e econômico que o Constant Latency, porém a latência da CPU e a resposta da PPI task são variáveis.