Interfaceando receptor GPS GT-3731 com Arduino

O sistema de posicionamento global (GPS) é usado a mais de 15 anos, porém somente nos últimos, se tornou algo economicamente viável para civis. Hoje temos até celulares com sistemas navegadores de GPS. Seu funcionamento consiste basicamente em um receptor receber sinais de 4 satélites, e de acordo com o tempo de recepção de cada um, calcular sua posição.

Os navegadores de carros e celulares, usam as coordenadas recebidas pelos receptores e as aplicam em seus mapas, dessa forma conseguem com precisão informar onde o aparelho receptor se encontra, qual sua altitude, velocidade, e qual é a hora local. Experimente acessar http://maps.google.com e pesquisar por “-27.00687,-51.152902” sem as aspas. Esse local indica a cidade onde moro atualmente. Experimente variar pequenos valores nestes números e verá o ponteiro “navegando” no mapa. Assim percebemos o quão “simples” é a tarefa de um navegador no que diz respeito a exibir onde você está.

Mas o que exatamente o receptor de sinal GPS envia ao navegador? Aqui tudo começa ficar muito interessante. Se adquirirmos um navegador GPS para PC, e conectarmos um serial logger nele, veremos as coordenadas no padrão NMEA 0183 que nada mais são que caracteres informando dados em determinado padrão. No meu caso, comprei no mercadolivre o receptor GT-3731 que hoje está disponível apenas em: http://www.maregps.com.br/loja/mouse-gt3731-altasensibilidade-canais-para-windows-linux-p-502.html . Na época paguei pouco mais que 120,00 reais. Hoje temos módulos menores e próprios para o que venho propor neste post, veja aqui uma lista: http://lista.mercadolivre.com.br/m%C3%B3dulo%20receptor%20gps%20.

O único problema do receptor que comprei, foi de que ele se comunica com o computador via USB. Normalmente isso é ótimo, porém quando estamos falando de sistema embarcado a melhor comunicação se faz via I2C ou Serial. Aí surge um problema: como interfacear o receptor GPS com um microcontrolador, neste caso a plataforma Arduino?

Primeiramente o que fiz foi estudar qual a comunicação entre o receptor e o PC. Sabia que era via USB, mas logo percebi que ela se faz via um adaptador Serial -> USB. Vários dispositivos de comunicação estão usando esses adaptadores hoje em dia que são baseados no módulo FT232 da FTDI. No meu curso de C, falo sobre ele: http://www.paulotrentin.com.br/programacao/curso-gratuito-programacao-c/apresentacao-e-motivacao-do-curso/ e o próprio arduino usa-o para comunicar-se entre o computador e o microprocessador. Este receptor usa o adaptador PL-2303 que também é muito conhecido, e funciona de forma semelhante ao anterior, com a diferença que no windows é reconhecido, às vezes, como mouse, aí ocorre uma interferência onde comandos do GPS são enviados para o ponteiro do mouse, e então podemos imaginar o que acontece.

Tendo em mente que em dado momento o receptor tem um sinal serial e o converte para USB, podemos logo supor que em algum lugar do circuito poderemos capturar esse sinal serial. Mas em qual lugar? Aqui entra em sena a grande vantagem de recorrer a um datasheet do circuito principal do receptor. Porém olhe na figura abaixo:

DSC06978-normal

Como podemos ver, a identificação do chip foi “raspada” pela empresa. Isso acontece muito em eletrônica e como podemos supor, é uma medida de segurança para evitar cópias de projetos. Essa marcação que vemos no chip impossibilita sua identificação, logo não teremos como acessar o datasheet do componente e identificar os pinos responsáveis pela comunicação serial.

Porém, como reparei que no conector do receptor  havia 6 pinos, sendo dois para alimentação e 2 para comunicação USB, não foi difícil imaginar que os outros dois poderiam ser para comunicação serial. Testando com um multímetro percebi que os outros dois fios que antes não eram usados, estavam diretamente conectados ao chip principal, então aumentaram ali as possibilidades para que eles fossem responsáveis pela comunicação serial:

conexão serial entre conector e chip principal

Nesta imagem, marquei as conexões existentes, identificadas com o testador de continuidade do multímetro. O fio branco é o TX e o verde o RX da comunicação serial com o chip. Tive muita sorte ao perceber que haviam dois pinos “livres” no chip e em seguida supus que poderiam estar conectados ao conector e seriam a comunicação serial.

conector receptor gps

Originalmente o conector vem com os fios verde e branco entre os fios preto e vermelho, pois serve para a conexão USB. O que fiz basicamente foi mudá-los de posição como vemos na figura ao lado. Para isso basta usar uma ferramenta com ponta e puxar a aste que trava o encaixe interno do conector, puxando-o para fora. Como podemos perceber as duas hastes que prendiam os fios estão marcadas, isto ocorreu no processo citado. Feito isto, o conector está pronto para receber sinais seriais e não USB.

Tendo os fios conectados nos pinos de comunicação serial bastou fazer o mais simples: ligá-los ao arduino. Para isso usei a porta Serial1 do arduino Mega 1280 como pode ver abaixo:

Interface gps entre arduino e gt-3731
Após tudo feito, basta fechar novamente o receptor com sua proteção metálica e fazer as conexões com o Arduino para testar. Usei a comunicação Serial1 que corresponde aos pinos 18 e 19 do Arduino Mega 1280.

Feita a parte de conexão física entre o arduino e o receptor GPS, basta agora vermos a parte lógica, o software. Aqui vem uma dica muito importante ao trabalhar com conexão serial no Arduino: use sempre a condição “if (Serial1.available() > 0 )”. Do contrário verá um registro de dados vindos do dispositivo Serial como este:

programa iniciado.
ÿ9æ02135.001,A,2700.2369,S,05109.9916,W,ÿ00ÿ0.ÿ0ÿ,31ÿ8.9ÿ,2504ÿ11ÿ,,,Aÿ*66
ÿ
$ÿGPÿVTGÿ,ÿ31ÿ8.ÿ9ÿ,Tÿ,,ÿM,ÿ000.0ÿ,N,ÿ000ÿ.0,Kÿ,A*ÿ0E
$ÿGPÿGGA,ÿ2021ÿ36ÿ.001,ÿ27ÿ00ÿ.2ÿ3ÿ69ÿ,Sÿ,0ÿ510ÿ9.991ÿ6,ÿW,1,0ÿ9,1ÿ.0,ÿ696.ÿ7,ÿM,ÿ4.0ÿ,ÿM,ÿ,0ÿ0ÿ00*6ÿ5
$ÿGPÿGSA,Aÿ,3,ÿ22,1ÿ6,1ÿ8,2ÿ1,ÿ06ÿ,ÿ03,ÿ30ÿ,ÿ15ÿ,1ÿ4ÿ,,,,ÿ1.9,ÿ1.0,ÿ1.6*ÿ36ÿ
$GPÿRMCÿ,202ÿ136ÿ.00ÿ1,ÿA,2ÿ70ÿ0.2ÿ36ÿ9,S,ÿ05ÿ109.ÿ9916ÿ,Wÿ,000.0ÿ,3ÿ18.9ÿ,ÿ25ÿ04ÿ11ÿ,,ÿ,Aÿ*65ÿ
ÿ$GPVTÿG,3ÿ18.ÿ9,T,ÿ,M,ÿ000.0ÿ,ÿN,ÿ00ÿ0ÿ.0ÿ,Kÿ,Aÿ*0Eÿ
ÿ
ÿÿÿÿÿÿ$GÿPGÿGA,ÿ202ÿ137.0ÿ0ÿ1,2ÿ70ÿ0ÿ.2ÿ36ÿ9ÿ,Sÿ,0ÿ51ÿ09.ÿ9ÿ916,ÿW,ÿ1,09,ÿ1.0ÿ,696ÿ.7,ÿM,4ÿ.0,M,ÿ,ÿ000ÿ0*ÿ6ÿ4
ÿ
ÿ$GÿPGSAÿ,A,3ÿ,22ÿ,16,1ÿ8,ÿ21,0ÿ6,03ÿ,3ÿ0,ÿ15ÿ,1ÿ4,ÿ,,ÿ,ÿ1.ÿ9,ÿ1.ÿ0,1ÿ.6*3ÿ6
ÿ$GPRMÿC,ÿ2021ÿ37.0ÿ01ÿ,Aÿ,27ÿ0ÿ0.ÿ23ÿ6ÿ9,ÿS,ÿ05ÿ109ÿ.9916ÿ,W,ÿ000.ÿ0,3ÿ18.9,ÿ25ÿ0411ÿ,,,Aÿ*6ÿ4
ÿ
$ÿGPÿVTÿGÿ,3ÿ18.9ÿ,T,ÿ,M,ÿ000.0ÿ,Nÿ,000.ÿ0,Kÿ,A*ÿ0ÿE

Isso é necessário, pois do contrário o arduino exibe informações seriais mesmo sem que elas existam gerando, para este exemplo, na maior parte do tempo lixo. Quebrei um pouco a cabeça até que descobri isso, mas no início é assim mesmo. Outro detalhe importante é a velocidade da conexão Serial1 que deve ser igual ao do dispositivo remoto qual recebemos dados. Então como o GT-3731 trabalha a 4800 bauds (4800 bits enviados por segundo, veja mais aqui: http://www.webopedia.com/TERM/B/baud.html), devemos configurar a Serial1 do Arduino para também trabalhar à 4800 baunds. Porém a comunicação entre o Arduino e o PC pode ser feita a 9600 bauds sem problemas. Segue abaixo o código fonte que exibirá no serial logger do Arduino as coordenadas enviadas pelo receptor GPS.


void setup(){
  Serial.begin(9600);
  Serial1.begin(4800);
  Serial.println("programa iniciado.");
}

void loop(){
  if (Serial1.available() > 0 ) {
    //  Lê caracteres vindos do GPS
    char c = Serial1.read();
    //  Envia caracteres em forma de Bytes
    Serial.print(c, BYTE);
  }
}

Simples assim, com Arduino chega a ser estranho o quão fácil é fazer as coisas. Iniciando o programa, podemos já conferir sua resposta:


programa iniciado.
$GPGGA,194520.001,2700.2366,S,05109.9925,W,1,10,0.9,698.5,M,4.0,M,,0000*69
$GPGSA,A,3,22,16,29,18,21,06,03,30,15,14,,,1.9,0.9,1.6*35
$GPGSV,3,1,12,22,71,305,38,16,42,272,38,29,17,052,33,18,70,148,37*73
$GPGSV,3,2,12,21,39,128,44,06,45,219,38,03,31,222,41,01,39,322,26*75
$GPGSV,3,3,12,30,40,303,39,15,17,126,39,14,18,012,32,19,03,225,*7A
$GPRMC,194520.001,A,2700.2366,S,05109.9925,W,000.0,318.9,250411,,,A*65
$GPVTG,318.9,T,,M,000.0,N,000.0,K,A*0E

Os dados acima nada mais são que sentenças NMEA Padrão 0183 que podem ser facilmente decifradas seguindo este maravilhoso tutorial do próprio site do Arduino: http://www.arduino.cc/playground/Tutorials/GPS . Ok, mas e se você quer algo já pronto para trabalhar, sem precisar escrever nada de código para analisar as sentenças? Então basta Entrar neste site http://www.maartenlamers.com/nmea/ e baixar os fontes para o Arduino, descompactar a pasta na pasta “libraries” do Arduino e incluir o cabeçalho no programa, ficando assim:


#include "WProgram.h"
//  Cria uma instancia de um objeto NMEA
#include "nmea.h"
NMEA gps(GPRMC);

void setup(){
  Serial.begin(9600);
  Serial1.begin(4800);
  Serial.println("programa iniciado.");
}

void loop(){
  if (Serial1.available() > 0 ) {
    //  Lê caracteres vindos do GPS
    char c = Serial1.read();

    //  Verifica se o valor recebido e uma sentença GPS valida
    if (gps.decode(c)) {
      //  Verifica se o posicionamento GPS esta ativo
      if (gps.gprmc_status() == 'A') {
        Serial.print("Latitude: ");
        Serial.print(gps.gprmc_latitude(), DEC);
        Serial.print("     Longitude: ");
        Serial.println(gps.gprmc_longitude(), DEC);
      }
    }
  }
}

Executando o programa acima teremos apenas a saída com latitude e longitude:


programa iniciado.
Latitude: -27.0039520263     Longitude: -51.1665420532
Latitude: -27.0039520263     Longitude: -51.1665420532
Latitude: -27.0039520263     Longitude: -51.1665420532
Latitude: -27.0039520263     Longitude: -51.1665420532

Tendo em vista a facilidade que é trabalhar com o Arduino, e o baixo custo de receptores GPS (chegando a 60 reais o módulo), tornou-se fácil e viável fazer aplicações que envovam o uso desta excelente tecnologia que com um pouco de criatividade nos permite por exemplo criar um sistema de rastreamento veicular que, apesar de já existir, ainda é uma grande inspiração de projeto.

Outras fotos do receptor GPS GT-3731

marcação de chips do receptor gps

Aqui temos a identificação dos chips do receptor GPS. O chip 1 é um receptor de sinais GPS, ele faz a parte suja, que é receber os sinais dos satélites. O chip 2 é responsável por fazer todo o processamento pesado destes sinais e possibilitar uma interface de comunicação serial. E por último o chip 3 é um PL-2303 que, como citado anteriormente, faz a conversão de um sinal serial para USB.

receptor GPS GT-3731 montado
Após aberto, estudado e testado é hora de montar a capa metálica ao receptor. Para isso apenas refiz as soldas, como podemos ver no detalhe. A luz vermelha fica piscando e indica estado de funcionamento do componente.

receptor GPS gt-3731 adaptado e pronto
Por fim, o receptor bonito e montado novamente, já com seus fios adaptados para uma conexão com protoboard ou diretamente ao Arduino.

Minha reflexão

Nunca imaginei que trabalhar com o Arduino fosse tão fácil. Nada contra a família PIC, mas vejo que os 16f628 irão se aposentar, afinal o custo/benefício é incomparável. Se gostou do POST acima, por favor, deixe seu comentário, vamos trocar ideias!

47 Comments

    1. Oi Paccelli, concordo que é mais prático um shield, sempre é mais prático.
      Porém em uma aplicação final, ou quando se quer entender exatamente como funciona, um shield não resolve seu problema. Na aplicação final, tu irá elaborar um circuito, então é fundamental entender todos os conceitos que, muitas vezes, o shield abstrai. Sem falar no preço.

      Agradeço seu comentário!

  1. Paulo, obrigado pelo feedback, pois o que você falou é mais do que certo… Estive pesquisando um shield GPS e não encontro por menos de R$200 variando até R$350… Enquanto isso, apenas o modulo GPS custa entre R$70 a R$120… Valeu!!

  2. Ola paulo, antes de tudo queria dizer que vc é fera e muito obrigado me ajudará bastante.

    Gostaria de saber se teria um modelo de receptor GPS que não vá precisar fazer essa alteração de USB->Serial?

    Grato.

    1. Olá Fábio, valeu o apoio!

      Olha só, tem os modelos prontos para integração (conhecidos também como shields), que como conversei como Paccelli ali em cima, são bem mais caros. Fazendo uma pesquisa rápida aqui no mercadolivre, olha só o que encontrei: <a target="_blank" href="http://produto.mercadolivre.com.br/MLB-201561384-arduino-gps-skylab-skm53-_JM&quot; rel="nofollow"&gt <a href="http://;http://produto.mercadolivre.com.br/MLB-201561384-arduino-gps-skylab-skm53-_JM” target=”_blank”>;http://produto.mercadolivre.com.br/MLB-201561384-arduino-gps-skylab-skm53-_JM. É um modelo perfeito!

      Qualquer GPS que lhe retorne dados via conexão serial será fácil para trabalhar. Em últimos casos, não é difícil fazer a adaptação vista aqui.

      Qualquer dúvida, posso lhe auxiliar, basta mandar um email ou um post aqui mesmo.

      Valeu!

  3. cara parabens pelo post, nao conhecia essa biblioteca, e vc salvo minha vida hahahah

    agora ali no seu programa, na terceira linha de codigo o include ta faltando o "nmea.h"

    abraços

  4. Prezado Paulo,

    Boa noite!

    Estou tentando resolver um problema que de tanto rodar na internet acho que cheguei no lugar exato…

    Primeiramente gostei das suas explicações e não sou engenheiro eletronico nem nada disto, apenas um administrador financeiro que gosta de eletronica por hobby…

    Vamos lá, veja se pode ajudar-me…

    Comprei um GPS e está tudo ok funcionando perfeito e sei que ele tem um cartão de memória e um programa chamado IGO que recebe os sinais do GPs e entendo a coisa funcionando mais ou menos assim:

    satélite —> emite sinais —-> o aparelho Foston recebe estes sinais — > o programa dentro da memória do GPS (cartão SDMMC ) um tal de IGO recebe ou vai buscar estes sinais —-> o programa IGO ativa o mapa etc… etc… e consegue navegar… Perfeito?

    Entendo assim meu GPS

    Quando eu ligo voa USB o GPS no PC eu consigo ver as pastas dentro da memória e também dois arquivos:

    Um deles tem apenas um

    O outro tem o nome de ResidentFlash

    E o outro o cartão memória… SDMMC – É onde fica o IGO etc… etc…

    Agora o que eu quero ou pretendo…

    Ligar o GPS via cabo USB ao meu PC e utilizando um programa – já tenho alguns – pegue ou eu mande um comando para o GPS mandar o sinal que recebe do satélite.

    1) tem algum programa que consegue ver aonde estão estes sinais?

    2) posso entender que o GPS esteja lendo sem parar e codificando o que recebe… Isto deve ser um bip sem parar dentro da máquina… Como pegar estes bips de vez em quando???

    Espero que tenha entendido minha dúvida e possa ajudar-me

    Grato,

    Flavio

    1. Olá Flavio,

      inicialmente fico agradecido pelo comentário, e muito feliz por saber que é, assim como eu, um "hobbista".
      Não conheço nenhum software que faça acesso via usb ao gps e obtenha esses dados, dos que você disse ter, pode me passar os nomes para eu pesquisar?

      Possivelmente possa ser desenvolvido um software que ao rodar, capture esses sinais (da porta serial do windows ce provavelmente) e envie-os através da USB.

      Não entendi a questão dos "bips", está se referindo aos bits?
      Se sim, acredito que é possível ter acesso sim, mas como citei acima, via comunicação serial, que deve ser o modo qual o módulo GPS dentro do seu aparelho conversa com o sistema operacional dele.

      Para tentarmos fazer isso, preciso de mais informações, como modelo de seu GPS e qual Sistema operacional ele está rodando ok?

      Abraços

    1. Olá André, obrigado pelas considerações.

      O que acontece é que conectei o GPS na segunda conexão Serial do Arduino Mega, chamada Serial1.
      Se olharmos no site oficial, veremos que:
      "Serial: 0 (RX) and 1 (TX); Serial 1: 19 (RX) and 18 (TX); Serial 2: 17 (RX) and 16 (TX); Serial 3: 15 (RX) and 14 (TX). Used to receive (RX) and transmit (TX) TTL serial data. Pins 0 and 1 are also connected to the corresponding pins of the FTDI USB-to-TTL Serial chip."

      Ou seja, Pinos 0 e 1, são usados para a primeira porta Serial (O chip Atmega328 tem apenas 1 – deve ser o seu caso), e os pinos 18 e 19 são usados pela Serial1, porta qual conectei o GPS.

      Fiz isso, pois pela Serial1 recebo os dados do GPS no padrão NMEA e através da Serial (normal – conectada ao chip FT232RL da placa Arduino) eu envio os dados para serem lidos pelo computador.

      Em resumo da história: não funcionou para você, pois provavelmente você não esteja usando o Arduino Mega ok?

      Abraço!

  5. Paulo

    Excelente seu material, acredito que voce deve ter muito mais

    Quero montar um GPS, preciso de sua ajuda, onde eu compro e como vou montar o que voce falou acima

    1. Olá Eliu,

      Obrigado pelas considerações. Este material é realmente só uma introdução ao assunto. Podemos fazer desenas de projetos usando um GPS. Para comprar um módulo GPS eu recomendo o mercadolivre. <a target="_blank" href="http://produto.mercadolivre.com.br/MLB-207823971-lote-com-3-modulo-gps-1315ta-c-antena-pic-atmel-avr-arduino-_JM&quot; rel="nofollow">Aqui temos um módulo pequeno e pronto, porém caro. <a target="_blank" href="http://produto.mercadolivre.com.br/MLB-210580729-modulo-receptor-gps-me-622r-antena-embutida-lvttl-22×22-mm-_JM&quot; rel="nofollow">Este já é um pouco maior, porém mais em conta.

      O que importa de um módulo é a comunicação com o microcontrolador, que normalmente é serial. Sendo assim, basta aplicar o tutorial visto que funcionará certinho, e você terá acesso aos códigos NMEA e claro, pode usar uma biblioteca do Arduino para obter posições de latitude e longitude, entre outras, para desenvolver sua aplicação.

      Sobre montar, aí depende do que você deseja fazer. Montar o receptor em uma placa <a target="_blank" href="http://pt.wikipedia.org/wiki/Circuito_impresso&quot; rel="nofollow">PCI é fácil, porém recomendo fazer antes testes usando o Arduino para ver como ele funciona, em seguida fazer o layout usando um software CAD (exemplo o Eagle) e por fim, depois de revisado o circuito, montá-lo na PCI.

      Posso lhe dar toda ajuda que precisar para desenvolver o circuito e a programação, basta conversarmos e você me passar mais especificações e detalhes.

      Bons estudos!

  6. Paulo,

    Meu gps é lvttl a serial, sera que com bipolar apenas eu consigo conectar?

    Ou vc tem alguma idéia

    Obrigado

    1. Olá amigo André,
      olha só, se seu GPS tem saída serial é simples, basta conectar corretamente e sair programando! Se tiver dúvidas, me passa o modelo dele que pesquiso o esquema elétrico e te passo como você fará as conexões.

      Bons estudos!

  7. Olá, gostei muito das informações aqui. Também tenho um problema, gostaria de buscar as rotas salvas no GPS via USB e código de programacao. Já consegui como o exemplo acima, as informacoes que o GPS envia no momento.

    Se puderem ajudar, agradeço.

    Edilson

    1. Olá Edilson. Em relação à buscar as rotas salvas no GPS via USB, vai depender muito do Sistema Operacional de Seu GPS e o programa que você usa. Muitas vezes os programas são fechados o que pode dificultar o processo. Esse "código de programação" que você diz é o código fonte do programa do GPS que você quer??
      Se me passar o software GPS que usa e a versão, talvez eu possa lhe ajudar à obter as rotas salvas…

      Abraços!

  8. Paulo,

    Estou desenvolvendo em Delphi uma aplicação que trata esses dados do GPS, o que preciso é comunicar com o GPS e obter as rotas salvas. O GPS em questão é o Hollux M1000, ele tem um software próprio para tratar as informações. Eu consigo através do software do GPS exportar as rotas e depois tratá-las no meu aplicativo. Mas neste caso, fico dependente do software do GPS. Quero que o meu software faça isso, ou seja, buscar as informações e tratá-las diretamente do GPS.

    Abraço, e obrigado!

    Edilson

    1. Oi Edilson,

      veja bem, o que você deseja (ao meu entender) é poder recuperar rotas salvas no GPS. Suponho o que você realmente quer é poder fazer cálculos de áreas percorridas pelo GPS. O que você dispõe é de um aplicativo nativo do GPS qual calcula as rotas e as exportas em um arquivo externo, certo? Se for isso você sempre ficará dependente do software do GPS, pois este software é o responsável por receber os dados no padrão NMEA e fazer os processamentos necessários para então gerar as rotas.

      O que você precisa: Como você não quer ficar dependente do software do equipamento, não vejo outra alternativa senão você mesmo desenvolver um software que em tempo real grave as coordenadas recebidas do satélite num período de tempo T. Por exemplo, você pode comprar um módulo GPS qualquer, conectá-lo ao Arduino, e salvar os dados em um cartão de memória (custo total do hardware de uns 200,00 reais). Depois, você abre esse arquivo com os dados da rota (dados padrão NMEA) e os processa com seu programa em Delphi, que tal?

      Você pode conectar seu GPS Hollux M1000 direto na USB, veja <a target="_blank" href="http://lusorobotica.com/index.php?topic=1238.0&quot; rel="nofollow">aqui um tutorial.

      Bons estudos, Abraços!

  9. Olá Paulo,

    É exatamente o que quero fazer: recuperar as rotas salvas e não depender do software do GPS. Com a ajuda do tutorial sugerido por você e outros que encontrei na internet consegui fazer através do Delphi a comunicação com o GPS, só que os dados que capturo no GPS são os dados em tempo real, tal como o tutorial.

    A título de explicação: o software nativo do GPS consegue capturar os dados das rotas salvas (do dia atual e de dias anteriores) normalmente, bastando conectar o GPS ao PC. Isso quer dizer que os dados estão salvos na memória do GPS.

    Se o software nativo consegue capturar essas rotas, eu também poderia faze-lo através do Delphi. O que não estou conseguindo é ter acesso a esses dados (rotas salvas) e sim apenas às informações que o GPS envia no momento.

    A questão é: como conseguir o acesso a esses dados e não aos que estão sendo enviados em tempo real?

    Como o aplicativo nativo consegue através da conexão USB ter acesso as rotas salvas, desconsiderando ou diferenciando as das informações em tempo real?

    O exemplo do tutorial que você informou serve como parâmetro. Como aquele exemplo buscaria as rotas salvas ao invés de capturar as informações em tempo real?

    Desculpe por tantas perguntas, tenho pouca experiência ao lidar com GPS, e agradeço pela atenção!

    Abraços!

  10. Paulo e Bruna,

    Garimpando e estudando exemplos foi que cheguei ao site de voces.

    Muito obrigado por compartilharem as informacoes e de forma clara e didatica.

    Minha sobrinha adorou os desenhos do elevador da Peg :-)

    Eu sou usuario de GNU/Linux e estou comecando a desenvolver algumas coisas de sistemas embarcados usando hardware livre.

    Nao tenho conhecimentos em eletronica, trabalho com cartografia. Programo em C, python e shell script.

    Tenho algumas duvidas em relacao a parte de alimentacao por baterias e nas tensoes de comunicacao serial TTL 3v3 e TTL 5V.

    Meus dispositivos serao usados em campo e devem ser leves, portateis e alimentados por baterias.

    Gostaria de saber se tambem prestam algum tipo de assessoria nesta area de robotica.

    grande abraco, obrigado,

    julio menezes

  11. Paulo,

    Primeiramente meus Parabens! Só agora pela manhã eu li uns 6 posts sobre arduino e eletronica seus, e sao sensacionais, consegui assimilar tudo.
    Eu estou aqui tentando visualizar as imagens do post:
    http://www.paulotrentin.com.br/eletronica/interfaceando-receptor-gps-gt-3731-com-arduino/

    Porem as imagens estao apontando para um endereço ip de rede local. Segue o logo abaixo:

    1 message is hidden by filters. Show all messages.
    Uncaught TypeError: Property ‘$’ of object [object Object] is not a function customscript.js?ver=3.6.1:13
    Failed to load resource http://192.168.56.101/paulotrentin/wp-content/uploads/2013/09/DSC06978-normal-300×225.jpg
    Failed to load resource http://192.168.56.101/paulotrentin/wp-content/uploads/2013/09/conex%C3%A3o-serial-entre-conector-e-chip-principal-300×225.jpg
    Failed to load resource http://192.168.56.101/paulotrentin/wp-content/uploads/2013/09/conector-receptor-gps-300×221.jpg
    Failed to load resource http://192.168.56.101/paulotrentin/wp-content/uploads/2013/09/Interface-gps-entre-arduino-e-gt-3731-300×225.jpg
    Failed to load resource http://192.168.56.101/paulotrentin/wp-content/uploads/2013/09/marca%C3%A7%C3%A3o-de-chips-do-receptor-gps-300×225.jpg
    Failed to load resource http://192.168.56.101/paulotrentin/wp-content/uploads/2013/09/receptor-GPS-GT-3731-montado-300×225.jpg
    Failed to load resource http://192.168.56.101/paulotrentin/wp-content/uploads/2013/09/receptor-GPS-gt-3731-adaptado-e-pronto-300×225.jpg
    3
    Uncaught Error: Error calling method on NPObject. http://www.paulotrentin.com.br/:1
    event.returnValue is deprecated. Please use the standard event.preventDefault() instead.

    1. Oi Felipe.
      Que bom que os posts estão lhe sendo úteis! Muito obrigado pelo retorno!

      Olha só, como rodei o site na minha máquina virtual primeiro, aqui estava abrindo certinho hehe. Agora corrigi os caminhos, valeu pela observação, agora está 100%.

    1. Oi Johnny,
      se entendi, você pediu se com este GPS conseguimos acessar internet? Se foi isso, não, afinal ele só recebe sinal dos satélites de GPS e calcula sua distância entre eles, fornecendo assim um posicionamento. É um circuito que só faz isso. Para obter sinal de internet, ele deveria ser capaz de comunicar-se com satélites específicos além de enviar informações também. Mas neste caso não seria mais um receptor de GPS e sim um módulo de comunicação.

  12. Nobre Paulo,

    primeiramente parabéns pelo excelente trabalho que traz luz e esclarecimento a muitos como eu.
    Minha dúvida é, qual a precisão de um GPS desse por exemplo? Preciso gravar as coordenadas lat/long de um robo arduino. Funcionará da seguinte forma, ele perseguirá um material enterrado (tipo um duto). Preciso gravar as coordenadas para saber posteriormente por onde esse duto está passando. Conseguiriamos através da lat/long chegar a precisão de centímetros?? Grato, Julio Ribeiro

    1. Muito obrigado Julio!

      A precisão média é de 15 metros, mas varia para +ou- dependendo da geografia, como por exemplo entre prédios num centro urbano será menor.
      Existem GPSs profissionais que maior precisão, aqueles usados por agrônomos por exemplo, se não me engano chegam com precisão de centímetros, mas o equipamento passa de 15 mil reais até onde sei.

      Este visto aqui é para brincar mesmo hehe, mas serve para um protótipo no seu caso.
      Bons estudos!

  13. Paulo, é possível fazer com que uma shield GPS envie via SMS uma mensagem com as informações de posicionamento???

  14. Bom dia, Paulo gostaria de saber qual é a maior vantagem de fazer um sistema de rastreamento via gps usando o arduino?

    1. Olá Paulino,
      a maior vantagem sem dúvida será a flexibilidade. Porém, vale lembrar que existem excelentes soluções no mercado para isso. Eu recomendo você montar seu próprio sistema de rastreamento somente se você quiser aprender como fazer, como funciona, e usar isso como estudo.

  15. Olá Paulo, há alguma maneira de que eu consigo ver a posição do GSP em tempo real em alguma plataforma Web? grato!

Leave a Reply

%d