Para este projeto, exceto um telefone celular com GPS para gravar sentenças GPS NMEA, nenhum hardware é necessário. Usei um telefone Android e vários aplicativos estão disponíveis na Play Store que permitem gravar frases NMEA no formato “.txt” ou “.log”. Como nem todos os usuários têm acesso a um telefone Android, anexei dois conjuntos de frases de GPS para permitir que você conclua este projeto. Como nenhum sinal de GPS pôde ser obtido em ambientes fechados, o primeiro conjunto de sentenças de GPS foi registrado caminhando aproximadamente 100 metros ao ar livre. O segundo conjunto de sentenças GPS foi gravado em ambientes fechados para uma condição sem sinal GPS. O único outro hardware necessário é um PC Host. Para este projeto, usei um laptop HP Pavilion série G6 com processador Intel de 2,1 GHz e 3 GB de RAM executando o sistema operacional Windows 7 Home Basic de 64 bits. O seguinte software é necessário para concluir este projeto com sucesso:
1) GPS Sim
2) Labcenter Proteus v7.6 ou superior (para este projeto foi usado v7.8 com SP2)
3) Divisor de porta serial Eltima v5.0
Figura 1 : Janela do Simulador GPS
A Figura 1 mostra a janela do Simulador GPS. Para começar a navegar até a pasta que contém os arquivos de log de sentenças NMEA, clique no botão Procurar. Selecione o intervalo como 8 segundos. 4 segundos também podem ser selecionados; entretanto, qualquer intervalo inferior a este causará erros no Proteus e as informações de latitude e longitude não serão visualizadas para todas as sentenças. Além disso, selecione RMC como tipo de sentença, pois somente essas sentenças são passadas para a simulação do Proteus e são usadas para obter informações de latitude e longitude. Em seguida, selecione a porta COM1 no menu de seleção de porta. Qualquer porta disponível pode ser selecionada, desde que não seja a porta COM2. A porta COM2 é usada no Proteus para transmitir dados para o pino USART RX do controlador. Além disso, a porta selecionada neste menu deve ser a mesma usada para criar um link virtual (usando Eltima Serial Splitter) entre a porta e a porta COM2 no Proteus. O software GPS Simulator pode ser baixado no seguinte link:
Fig. 2:Janela Divisor Serial
A Figura 2 mostra a janela do Serial Splitter 5.0 da Eltima Software. Para criar o link virtual entre a porta selecionada no GPS Simulator e a porta COM2 utilizada no Proteus, selecione a aba 'Complex Bundles'. Para o lado de entrada, selecione a opção 'Porta Virtual' e depois a porta COM utilizada pelo Simulador GPS para passar as sentenças ao Proteus (COM1 neste caso). Em seguida, clique no botão 'Adicionar porta'. Repita o mesmo procedimento para o lado de saída, mas selecione a porta COM2. Depois que as portas de entrada e saída forem adicionadas, clique no botão ‘Adicionar pacote’. Um pacote criado com sucesso aparecerá no lado esquerdo da janela do software, conforme mostrado na figura. Uma versão de teste de 14 dias do Serial Splitter pode ser baixada no seguinte link:
A guia Diagrama de circuito mostra o circuito Proteus para a simulação. Um cristal de 15,9744 MHz está conectado aos pinos 13 e 14 do microcontrolador PIC18F458. A chave SW1 é a chave de reinicialização. O pino RXD do componente P2 COMPIM está conectado ao pino RX (pino 26) do controlador. Um IC MAX232 não é necessário, pois está integrado ao componente COMPIM. A porta D do controlador está conectada às linhas de dados paralelas D0:D7 do display LCD. Os pinos VSS e VDD do LCD são aterrados e fornecem uma tensão de 5V respectivamente. Os pinos RS, R/W e E do LCD estão conectados aos pinos 38, 39 e 40 respectivamente na Porta B.
Para desenvolver a lógica de controle para análise de sentenças GPS, o módulo UART foi configurado e as informações de latitude e longitude foram analisadas usando manipulação de strings. Para configurar o módulo UART, o pino RX foi configurado para entrada e a recepção serial foi habilitada atribuindo um valor 0x90 ao registrador de recepção RCSTA. O registro do gerador de taxa de transmissão SPBRG recebeu um valor de 0x19 para taxa de transmissão de 9600bps. O modo assíncrono foi escolhido limpando o bit SYNC no status de transmissão e no registro de controle do TXSTA. O sinalizador de recebimento foi apagado e os dados foram copiados do registrador de recebimento RCREG para uma variável temporária quando o sinalizador foi definido na recepção dos dados. O bit de habilitação de recepção contínua CREN no registro de recepção RCSTA foi então limpo para permitir a recepção contínua de dados.
As sentenças $GPRMC foram passadas do simulador GPS para o pino RX do controlador por meio do componente COMPIM. Dois conjuntos dessas frases foram pré-gravados usando um telefone celular com GPS para duas condições – uma localização GPS variável e nenhum sinal GPS. Para uma localização GPS variável, o primeiro conjunto de frases foi gravado a uma distância de 100m. Na ausência de sinal GPS, o segundo conjunto de sentenças GPS foi gravado em ambientes fechados. As sentenças $GPRMC e $GPGGA (condição de sinal GPS encontrado) tinham o mesmo comprimento (76 caracteres). Se nenhum sinal de GPS fosse encontrado, as frases com comprimento inferior a 76 caracteres não continham informações de latitude e longitude; em vez disso, uma série de vírgulas era encontrada nas frases gravadas. Essas características das sentenças gravadas foram utilizadas para identificar a sentença $GPRMC e então extrair informações de latitude e longitude. A identificação da sentença $GPRMC e da ausência de sinal GPS foi obtida usando comparação de strings. Uma vez encontrados o sinal GPS e o $GPRMC, a latitude e a longitude foram extraídas determinando-se a posição inicial e o número de caracteres nos valores de latitude e longitude. A Figura 5 mostra a lógica de controle para analisar a sentença $GPRMC.
Figura 3: Lógica de controle para análise de sentença GPS
Para executar a simulação os seguintes passos devem ser executados na ordem indicada:
1) Inicie o Serial Splitter e crie o pacote complexo entre a porta de entrada do Simulador GPS e a porta COM2 do circuito Proteus
2) Abra 'gps.DSN' no Proteus
3) Inicie o Simulador GPS e selecione o arquivo de log
4) Inicie a simulação no Proteus e depois inicie a transmissão do arquivo de log no GPS Simulator
O display LCD mostrará que o sinal GPS foi encontrado e exibirá informações de latitude e longitude. Apenas parte desta informação é mostrada na Figura 6, pois o display LCD é apagado e as informações seguintes sobre latitude e longitude são mostradas. Para o segundo arquivo de registro, o display LCD mostrará que o sinal GPS não foi encontrado.
Fig. 6: Informações de latitude mostrando parcialmente
Código fonte do projeto
###
#incluir
###
Diagramas de circuito
gps_proteus |