P>
Clique aqui para ler todos os artigos desta edição
JavaME usando GPS
Introdução à manipulação via celular de dados de posicionamento global
Serviços relacionados à questão de posicionamento global são cada vez mais aplicados e importantes no dia-a-dia de empresas e até mesmo de pessoas,
Outro problema interessante, esse enfrentado não por empresas, mas por pessoas, é o gerenciamento de suas atividades durante sua jornada diária. Pais e mães podem, por exemplo, querer que seus filhos não saiam de determinado local na cidade, como a escola, ou o parque. Eles desejam serem avisados quando esse tipo de incidente ocorrer para tomar medidas imediatamente.
Baseando-se nesse contexto, este artigo propõe uma forma de solucionar problemas de posicionamento global, como os citados, usando um celular com MIDP 2.0 (mobile information device protocol 2.0) e CLDC 1.0 (connection limited device configuration 1.0). Alguns celulares já são equipados com módulos GPS onboard. Mas para quem não possui tal aparelho e não pretende trocar o seu, iremos utilizar também a JSR-082 (Java Specification Request–082), pacote Java para usar a interface Bluetooth de dispositivos móveis, e um módulo GPS externo com interface Bluetooth, facilmente encontrado no mercado. Existem várias soluções no mercado, e aqui pretendemos demonstrar uma simples para você entender o conceito e poder desenvolver suas próprias aplicações.
O sistema GPS
O GPS (global positioning system) consiste de três órbitas médias (aproximadamente
Usam-se freqüências da Banda L (1 GHz a 2 GHz) para os sinais de comunicação. Essa banda é utilizada por possuir características interessantes para o sistema de satélites:
· Baixa perda de potência ao se deslocar no espaço, o que permite que o sinal atravesse os 20.000 km que separam o satélite da Terra sem se deteriorar a ponto de se tornar imperceptível;
· Baixa atenuação devido à chuva, tornando o sistema próprio em virtualmente qualquer condição climática;
· Baixa absorção da atmosfera: o oxigênio e o vapor d’água na atmosfera não prejudicam o sinal de forma grave;
· Relativa capacidade de atravessar objetos: com um receptor GPS sensível, é possível até mesmo usar o sistema dentro de locais cobertos ou passar por baixo de árvores;
· Próprio para sistemas em linha de visada: baixas freqüências não são capazes de atravessar a ionosfera, isto é um problema sério para sistemas de satélite. Por isso, o uso de freqüências na banda L.
O funcionamento do sistema é bastante simples: cada satélite e usuário devem sincronizar seus relógios internos entre si. Esse relógio é conhecido como UTC (universal time, coordinated) e marca o horário no meridiano de Greenwich. O usuário deve se comunicar com pelo menos quatro satélites. O sinal transmitido carrega informações de posicionamento do satélite transmissor em relação ao sistema de coordenadas da Terra e o instante em que o sinal foi enviado. O usuário, após a recepção, verifica o tempo gasto na propagação e com isso calcula sua distância em relação à fonte do sinal.
O receptor sabe que, para cada satélite, ele se encontra na superfície de uma esfera imaginária centrada no próprio satélite e com raio igual à distância calculada. A intersecção de duas esferas forma um círculo. O usuário, então, está em algum ponto desse círculo. Se uma terceira esfera for usada, ela cortará o círculo em dois pontos. Logo, o usuário se encontra em algum desses dois pontos. Uma quarta esfera determina qual desses pontos é a posição correta em relação aos quatro satélites. Como dito antes, o sinal transmitido também possui a informação de posição do satélite em relação ao sistema de coordenadas da Terra. Assim, com essa informação em mãos e seu posicionamento em relação aos satélites, o usuário é capaz de, finalmente, calcular sua latitude e longitude. Outros dados como velocidade e direção do movimento são facilmente obtidos usando as posições em cada instante.
Formatando dos dados de posicionamento: o protocolo NMEA-0183
Uma vez obtidos os dados de posição, velocidade, direção do movimento e outros relativos à localização, o receptor GPS deve formatá-los em determinado padrão antes de ser transferido para um dispositivo Bluetooth. Dessa forma, os dados serão facilmente reconhecidos por aplicativos rodando no aparelho. A NMEA (national marines eletronic association), entidade norte-americana responsável por definir padrões de mensagens trocados entre aparelhos eletrônicos de navegação, definiu o protocolo NMEA-0183 para ser usado por aparelhos GPS.
Esse padrão define as características do sinal elétrico, os protocolos de transmissão de dados, a sincronização entre os dispositivos e os formatos específicos de mensagens em um canal de comunicação serial de 4800 bauds (símbolos por segundo), de acordo com sua página na Internet disponível em http://www.nmea.org/pub/0183/. Esse canal é facilmente simulado pelo perfil SPP (serial port profile) do Bluetooth, por isso a possibilidade de módulos GPS usarem interfaces desse tipo para transmitir seus dados.
As mensagens são formatadas observando a tabela ASCII (american standard code for information interchange). Cada sentença começa com o símbolo $ e termina com os caracteres CR (carriage return) e LF (line feed). Os dados são separados por vírgulas. Portanto, um dado não pode conter ele próprio uma vírgula, sob o risco de o protocolo considerar a vírgula como um marcador. Seguindo o $, tem-se o campo “aaccc”, em que “aa” identifica o dispositivo (GP para dispositivos GPS), e “ccc” identifica o tipo de mensagem daquele dispositivo. O site http://www.gpsinformation.org/dale/nmea.htm apresenta uma série de formatos de mensagens. Aqui transcrevemos alguns desses formatos que serão importantes para o exemplo deste artigo.
· GGA (global positioning system fix data): fornece posição, hora, e outros dados relacionados ao receptor GPS;
· GSA (dop and active satellites): fornece os valores de diluição de precisão dos cálculos e identifica os satélites usados para o posicionamento (no máximo 12);
· GSV (satellites in view): fornece informações à cerca dos satélites avistados pelo receptor;
· RMC (recommended minimum specific GPS/transit data): descreve hora, data, posição curso e velocidade.
Esta última mensagem será usada na nossa aplicação, por isso vamos mais a fundo nela. Seu formato padrão é:
$GPRMC,hhmmss.dd,S,xxmm.dddd,
A Tabela 1 mostra o significado de cada campo.
|
hhmmss.dd |
Tempo UTC hh – horas; mm – minutos ss – segundos; dd – décimos de s. |
|
S |
Indicador de Status A – Dados válidos V – Dados inválidos |
|
xxmm.dddd |
Latitude xx – Graus; mm – minutos; dddd – décimos de minuto |
|
|
Caractere N ou S (N = Norte, S = Sul) |
|
yyymm.dddd |
Longitude yyy – Graus; mm – minutos; dddd – décimos de minuto |
|
|
Caractere E ou W (E = Leste, W = Oeste) |
|
s.s |
Velocidade em nós |
|
h.h |
Direção do movimento em relação ao norte (000.0 a 359.9 graus) |
|
ddmmyy |
... |
Confira outros conteúdos:
Programador Mobile
Desenvolvimento de aplicativos para...
Conceitos básicos para programar para...
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.