LusoRobótica - Robótica em Português

Robótica => Tutoriais => Tópico iniciado por: tr3s em 24 de Julho de 2009, 22:28

Título: Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: tr3s em 24 de Julho de 2009, 22:28
Boas a todos!

Desta vez venho mostrar como é que ponho o meu Arduino a saber onde está! É verdade o meu Arduino agora sabe onde anda ehhehe :D

"Como?"

É tão simples que vocês vao ficar todos :O boquiabertos, eheheh.
Eu tenho um GPS Holux M1000,
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fi00.twenga.com%2Fp%2F00%2F98%2F200098vb.png&hash=eb6933afb354e7cd32e3a3bcc3204ba77aec0fe2)

Este GPS externo comunica por Bluetooth com tudo que nós quisermos, Telemovel, PC, Rádio, etc. Se pensam "ah é um GPS externo Nluetooth vamos precisar de um módulo Bluetooth para o Arduino", não podiam estar mais enganados. Este amigo tem ali uma pequena USB right? Pois é, tudo o que ele envia por Seral no bluetooth também mete ali ;) 4 pinos (USB) Vcc, RX, TX, GND! Não é só este GPS que faz isto, por exepriência própria sei que o seu antecessor Holux GPSlim 236,
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.navegadoresgps.com%2Fredim-imagen.php%3Fimg%3Dholuxgr236.jpg%26amp%3Btam%3D3&hash=a9fca5ed782e48b3a6b2158d07e94bf6f208db0a)

Também o faz. haverá outros que fazem o mesmo mas não tenho experiência com mais nenhum.

Vantagens de usar estes GPS no meu Arduino:
   - Uma vez que ja tinha o Holux M1000, para quê gastar 50 euros ou mais num módulo para ligar no Arduino?
   - Ainda teria de fazer a placa, adicionar componentes, etc.

Bem este já faz tudo, ja tem tudo calibrado, funciona bem, tem uma sensibilidade tão boa que apanho sinal dentro de casa, é rápido a adquirir satélites, posso usá-lo com qualquer coisa (no telemovel da imaenso jeito) e só custa 43 euros! Sim na www.navegadoresgps.com (Espanha) custa 43 euros e enviam de um dia para ao outro! Eu só paguei 3 euros de portes numa promoção (o normal é 6 ou 7 euros).

Continuando...
Peguei num cabo mini-usb que tinha para ali abandonado e meti-lhe os 4 fios à solta!
No meu cabo o preto é o GND e o verde é o TX,. Soldei-lhe dois pinos para ser mais fácil de ligar na breadboard. O resultado foi este:

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fi240.photobucket.com%2Falbums%2Fff159%2Fsuper-mascarada%2FSNC00136.jpg&hash=b2a80c38649da13eb449f7bd360e682844855fb8)

De seguida liguei o cabo no GPS e liguei-o.
Peguei no manual do GPS, aqui (http://hsuuk.powweb.com/image/Holux/M1000/M1000%20User%60s%20Manual.pdf) li tudo para perceber que sinais o GPS me dava e cheguei à pagina 11 onde diz la as funções dos pinos da USB. Perfeito o GPS tem TXD e o RXD entre os 3v3 e os 5V (Voltage Level)!

Liguei o cabo à breadboard, o pino preto vai a GND e o TX directamente para o RX do Arduino (pino 0):
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fi240.photobucket.com%2Falbums%2Fff159%2Fsuper-mascarada%2Fgpslig.jpg&hash=d9f0ca18bec4d430c1a79c2cf75602b54eabdad4)

Ainda no manual li que o BaudRate da ligação é de 38400 bps.

No Arduino IDE fiz então um simples programa de teste que lia os dados do GPS e mostrava-os na consola:

Citar

 
byte incomingByte = 0;

void setup() {
  Serial.begin(38400);
}

void loop() {
  if (Serial.available() > 0) {
    incomingByte = Serial.read();
    Serial.print(incomingByte);
  }
}


 

Agora façam o upload deste código para o vosso Arduino e liguem a consola, Não se esqueçam de seleccionar o Baudrate 38400 na dropdown list!
Pronto, se seguiram tudo com rigor até agora, têm o vosso Arduino a enviar os dados todos do GPS (Mensagens NMEA) para a consola.

Nestas mensagens conseguem extrair tudo o que quiserem, posiçao (Latitude e Longitude duh), horas, data, orientação, velocidade, altitude, etc, há mesmo muita niformação nestas  mensagens!

Para mais informações sobre as mensagens NMEA visitem estes links:

http://aprs.gids.nl/nmea/#rmc
http://www.codepedia.com/1/The+GPRMC+Sentence

Com um pouco mais de código, algum conhecimento de javaScript e/ou Ajax e consultando a API do Google Maps podem fazer algo como o que eu fiz:

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fi240.photobucket.com%2Falbums%2Fff159%2Fsuper-mascarada%2Fmapsgoogle.jpg&hash=6e4934ccded24ba43a6ba6dd415d32bbccbaacb1)

Fiz um log com o Arduino onde gravava a minha posição de minuto a minuto numa EEPROM, desde o trabalho até casa. Quando cheguei a casa descarreguei tudo para o computador que abriu um site que criei usando a API do Google Maps e onde me mostra o percurso que fiz, as horas a que passei em cada ponto e a velocidade a que ia nesse momento!

API Google Maps: http://code.google.com/apis/maps/documentation/introduction.html

Espero que gostem e alguma dúvida é só perguntar!

Abraços,
Daniel Gonçalves, Tr3s.

P.S.: Pessoalemente, a mensagem que uso para fazer tudo o que preciso é a $GPRMC, dá praticamente tudo o que se quer!
Título: Re:Arduino + GPS Holux M1000 ou Slim 236
Enviado por: tr3s em 24 de Julho de 2009, 22:32
Se vocês tiverem outros módulos semelhantes e queiram seguir este tutorial, força! Partilhem os resultados, mas ATENÇÃO LEIAM BEM O MANUAL antes de fazerem alguma coisa!
Título: Re:Arduino + GPS Holux M1000 ou Slim 236
Enviado por: metRo_ em 24 de Julho de 2009, 22:34
Podias era quando tiveres tempo explicar como fizeste o que fizeste :P
Título: Re:Arduino + GPS Holux M1000 ou Slim 236
Enviado por: tr3s em 24 de Julho de 2009, 22:47
Podias era quando tiveres tempo explicar como fizeste o que fizeste :P

Referes-te à parte do Site? Claro mas isso faz sentido que seja noutro tópico!
Se te referes à parte do processamento dos dados, não coloquei aqui o que fiz por tr3s motivos:
  - Não faz sentido no contexto do tutorial (a imagem é só uma sugestão de utilização, noutro tópico ou em resposta a membros com dúvidas)
  - A minha solução foi orientada ao tipo de mensagem que eu quis usar, outras pessoas podem querer usar outras mensagens e a solução já não se aplicava.
  - Os links que dei têm mais do que informação suficiente para fazerem o mesmo, portanto para quê estragar o prazer de "o" fazer?

E claro, se alguem precisar de ajuda ou não conseguir fazer o que quer, é só perguntar e num espaço de minutos tem a resposta! :D
Título: Re:Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: amando96 em 24 de Julho de 2009, 22:58
excelente trabalho!

gostava de fazer isso, sei quem tem um igual por 45€, vou ver se baixo o preço um bocadinho :P

agora a nível de conhecimentos, é preciso programar mais alguma coisa que não seja o arduino? :S
Título: Re:Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: tr3s em 24 de Julho de 2009, 23:01
excelente trabalho!

gostava de fazer isso, sei quem tem um igual por 45€, vou ver se baixo o preço um bocadinho :P

agora a nível de conhecimentos, é preciso programar mais alguma coisa que não seja o arduino? :S

Para fazer o tutorial, isto é, ler os valores do GPS e envia-los para a consola não precisas de progamar mais nadinha! :D
Título: Re:Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: amando96 em 24 de Julho de 2009, 23:17
mas para saber onde ele anda é nessessário um PC?

ou dá com lcd, sem ser gráfico?

so quero ver as coordenadas e altura.
Título: Re:Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: tr3s em 24 de Julho de 2009, 23:20
Para isso o Arduino faz td, não precisas de programar mais nada, nem do pc. É como já disse, as mensagens dão toda a informaçao necessária e as mensagens são texto normal, numeros e letras! Cada campo separado por virgulas :D

Daqui a nada ja ponho um exemplo no topico.

Edit:
Já recebi algumas mensagens de pessoas a pedirem para eu mostrar como uso o Google! Maps.
Vou deixar aqui um exemplo:


Citar
<!--
  copyright (c) 2009 Google inc.

  You are free to copy and use this sample.
  License can be found here: http://code.google.com/apis/ajaxsearch/faq/#license
-->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>Google Maps API Sample</title>
    <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false&amp;key=ABQIAAAA1XbMiDxx_BTCY2_FkPh06RRaGTYH6UMl8mADNa0YKuWNNa8VNxQEerTAUcfkyrr6OwBovxn7TDAH5Q"></script>
    <script type="text/javascript">

    function initialize() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map_canvas"));
        map.setCenter(new GLatLng(37.4419, -122.1419), 13);
  
        var bounds = map.getBounds();
        var southWest = bounds.getSouthWest();
        var northEast = bounds.getNorthEast();
        var lngSpan = northEast.lng() - southWest.lng();
        var latSpan = northEast.lat() - southWest.lat();

          var point = new GLatLng(southWest.lat() + latSpan * Math.random(),
                                  southWest.lng() + lngSpan * Math.random());
          map.addOverlay(new GMarker(point));
      }
    }
    

    </script>
  </head>
  <body onload="initialize()" onunload="GUnload()" style="font-family: Arial;border: 0 none;">
    <div id="map_canvas" style="width: 500px; height: 300px"></div>
  </body>
</html>
Título: Re:Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: jagsilva em 24 de Julho de 2009, 23:57
eu fui um dos que pedi mais detalhaes... mas pareço um burro a olhar para um palacio.

Onde esta alojada esta pagina?
ja a coloquei on-line mudei a api mas nada...

:)
mais umas dicas?
Título: Re:Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: amando96 em 25 de Julho de 2009, 00:03
parece que valerá a pena tentar  ;D será sensivel o suficiente para um robot poder orientar-se por ele?
Título: Re:Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: ricardo-reis em 25 de Julho de 2009, 00:06
sendo que é html e javascript, basta abrir o bloco de notas, colar lá o código, gravar em .html  e abrir o ficheiro.. não é preciso alojar..
Título: Re:Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: jagsilva em 25 de Julho de 2009, 00:10
e as coordenadas do log?
Título: Re:Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: tr3s em 25 de Julho de 2009, 00:11
parece que valerá a pena tentar  ;D será sensivel o suficiente para um robot poder orientar-se por ele?

A sensibilidade é a melhor que possas imaginar, certamente que é melhor que os módulos GPS que se vendem aí para electrónica (Shields e etc)!

JagSilva:
é como o ricardo-reis disse! É so colar no notepad e gravar como HTML. Depois as cordenadas do GPS colocas onde diz "map.setCenter(new GLatLng(37.4419, -122.1419), 13);" e substituis  37.4419 e -122.1419 pelas tuas cordenadas (que tiras do gps e dps fazes a conversão, como ja foi dito aqui no forum e ta nos links que dei!)

Dps o script gera um ponto aleatoriamente na janela ;)
Vai fazendo perguntas ;)
Título: Re:Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: jagsilva em 25 de Julho de 2009, 00:51
pensei que o codigo era para traçar o percurso com base no que o logger gravou

esse nao disponibilizas?

ou entao ter um formulario em cima para preencher com latitude e longitude e dar-nos a localização...

dá para ajudares a fazer uma das opçoes?
Título: Re:Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: ricardo-reis em 25 de Julho de 2009, 00:55
faz-se ou tens isso aí à mão, tr3s?
Título: Re:Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: wear em 25 de Julho de 2009, 11:29
Excelente Tutorial

Os meus parabéns  ;D

Título: Re:Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: maurosmartins em 18 de Agosto de 2009, 23:22
Olá tr3s, o projecto é realmente interessante, mas não percebi uma coisa :S

Disseste que o módulo tto comunica por bluetooth como para uma porta USB, mas as portas USB não tem RX e TX, não é uma porta série! Se aquilo for realmente uma porta USB, o arduino teria de fazer de USB host.

Um colega anda a trabalhar em algo semelhante, mas regra geral o interface com estes módulos é o mais complicado...

Cumprimentos, Mauro.

Título: Re:Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: kast em 19 de Agosto de 2009, 00:27
Complicado ??? porquê ?? Tens módulos GPS a 9€ no ebay ....
Título: Re:Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: TigPT em 19 de Agosto de 2009, 09:46
Parabéns.

Realmente estou como o maurosmartins, que raio de ligação usb foi aquela? Supostamente os pinos D+ e D- da porta usb são de alta frequência e não podem ser utilizados sem um conversor. Podes explicar melhor a parte da interface usb!?
Título: Re:Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: msaleiro em 19 de Agosto de 2009, 10:03
Realmente.. também não vejo como é que essa ligação é feita.. a não ser que a única coisa k isso tem de USB seja o conector.. ???
Título: Re:Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: tr3s em 19 de Agosto de 2009, 11:35
Realmente.. também não vejo como é que essa ligação é feita.. a não ser que a única coisa k isso tem de USB seja o conector.. ???

Exacto! De USB é só mesmo o conector! Se lerem BEM o manual do GPS vão perceber ;)
Título: Re:Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: maurosmartins em 19 de Agosto de 2009, 22:05
:D Ah, então há marosca nesse Pseudo USB!!! :D

sendo assim esse módulo de GPS é bastante útil.

Tenho de dar uma vista de olhas ao manual!

Cumprimentos, Mauro.
Título: Re: Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: rmonteiro em 14 de Outubro de 2009, 16:45
Boas,

Obg pelo excelente exemplo, antes de comprar pra ai um modulo qualquer, aproveitei o que tenho à mão (um Gspace R232 bluetooth tb a 38400), ate para aprender um pouco a programar o arduino (nao está facil...). Bom mas a duvida:

Consigo ver as string NMEA, usando o codigo simples. Tentei usar a lib TinyGps e alterei no codigo a veloc para 38400 em vez dos 4800 de default e os pinos para 2 e 3, nao sai nada excepto a msg de entrada:

Citar
Testing TinyGPS library v. 9
by Mikal Hart
Sizeof(gpsobject) = 103

alguma dica? a diferenca de velocidades de leitura impede a TinyGPs de funcionar com este tipo de gps ?

Cumps,
Rui
Título: Re: Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: bytter em 13 de Dezembro de 2009, 14:38
Boas,

Será que este dá? Tenho um destes que não está a ser usado...

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.ubergizmo.com%2Fphotos%2F2006%2F10%2Fholux-gpslim-240.jpg&hash=46c8221e7e87a518f7f368dafe4a045395d0a316)

http://www.holux.com/JCore/en/products/products_spec.jsp?pno=253 (http://www.holux.com/JCore/en/products/products_spec.jsp?pno=253)

Agora que penso bem, será que a bateria integrada (do GPS) dará para alimentar o arduino?

Ab.
Título: Re: Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: metRo_ em 13 de Dezembro de 2009, 22:51
O Arduino em si tem alguns consumos extra, agora se depois fizeres um sistema tipo numa vero board ou mesmo numa pcb só com o atmega e aquilo que necessitas é capaz de dar. Mas diz ai as características da bateria.
Título: Re: Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: tr3s em 14 de Dezembro de 2009, 11:43
Boas,

Será que este dá? Tenho um destes que não está a ser usado...
http://www.holux.com/JCore/en/products/products_spec.jsp?pno=253 (http://www.holux.com/JCore/en/products/products_spec.jsp?pno=253)

Agora que penso bem, será que a bateria integrada (do GPS) dará para alimentar o arduino?

Ab.

Bytter Olha só a página 12 do "User's Manual":

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fi240.photobucket.com%2Falbums%2Fff159%2Fsuper-mascarada%2Fhx.jpg&hash=665e8ab79e4f816977c47825259f6f17b1928f6e)

É por isto que eu adoro os GPSs da Holux ehehehehe :D
Título: Re: Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: xiserre em 30 de Abril de 2010, 17:12
E ja tentaram utilizar a porta serie do arduino para ser retransmitida por bluetooth?? Eu vou me iniciar nestas andanças.. Ja comprei um arduino no ebay e ja tenho um modulo gps semelhante a esses em olho...
Título: Re: Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: wanderbv@hotmail.com em 27 de Janeiro de 2012, 00:10
Boa eu estou a usar um Arduino e um GPS EN 408.
Mas nao consigo receber nada no hyperterminal.

Título: Re: Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: dvdt em 27 de Janeiro de 2012, 19:31
Boas também só descobri este tópico hoje e pus me a pesquisar e gostava de saber qual será o melhor e mais em conta e que de para usar claro
http://www.holux.com/JCore/en/products/products_content.jsp?pno=223 (http://www.holux.com/JCore/en/products/products_content.jsp?pno=223)
http://www.holux.com/JCore/en/products/products_content.jsp?pno=222 (http://www.holux.com/JCore/en/products/products_content.jsp?pno=222)
http://www.holux.com/JCore/en/products/products_content.jsp?pno=227 (http://www.holux.com/JCore/en/products/products_content.jsp?pno=227)

Ou ha alguem que queira fazer negocio?
Título: Re: Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: GnGz em 27 de Janeiro de 2012, 21:37
O USB com txd e rxd? Serial no usb?
Título: Re: Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: senso em 27 de Janeiro de 2012, 21:47
A classe cdc do usb serve precisamente para implementer serial sobre usb, portanto não tem razão para ser estranho.
Título: Re: Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: GnGz em 27 de Janeiro de 2012, 21:54
Não sabia, e um computador  consegue interpretar em serial assim?
Título: Re: Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: senso em 27 de Janeiro de 2012, 21:57
Sim, os chips FTDI funcionam assim, classe CDC, e no windows/linux/mac/whatever aparece como uma simples porta COM/tty
Título: Re: Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: GnGz em 27 de Janeiro de 2012, 22:01
Mas se o Arduino lê assim o usb do bluetooth porque precisa de um ftdi?
Título: Re: Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: senso em 27 de Janeiro de 2012, 22:03
Não percebi o que queres dizer de todo.
Título: Re: Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: GnGz em 27 de Janeiro de 2012, 22:05
Então , o gps pode-se ligar ao pc, e o arduino o consegue entender.
Então porque o arduino não disponibiliza um tx e um rx para comunicar com o computador em vez de usar o ftdi?

Título: Re: Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: senso em 27 de Janeiro de 2012, 22:07
Mas esse gps tem um chip para fazer o usb, tanto que esses gps's são uma caixa bonitinha com leds, os gps's que se usam com arduinos só têm interfaces serial.
O arduino usa um atmega328p que não tem qualquer suporte em hardware para usb, mas tens os atmegaxxu2 e atmegaxxu4 que têm usb em hardware e tens a fantástica LuFa do Dean que é uma biblioteca extensiva para usar o usb.
Título: Re: Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: GnGz em 27 de Janeiro de 2012, 22:10
Está bem , já entendi. O meu espanto foi o arduino ler directamente do usb. Se consegue ler também consegue imitar esse CDC. Pelo que levo a pensar que não precisa de nenhum chip.
Título: Re: Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: senso em 27 de Janeiro de 2012, 22:11
Mas quem é que disse que o Arduino lê USB?
O rapaz anda á procura de gps's para Arduino, coisa que só reparei agora, mas nenhum daqueles dá para usar com um Arduino nem nada que se pareça.
Para fazer host USB ainda é preciso mais hardware, e só os AT90USB é que fazem host de usb, esses e penso que os mais recentes atxmega.
Título: Re: Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: GnGz em 27 de Janeiro de 2012, 22:15
Tou a falar da primeira mensagem do topico.
Título: Re: Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: senso em 27 de Janeiro de 2012, 22:17
Oh god, serial numa ficha USB?!?
Isso é tão errado...
Pronto parece que tiveram a infeliz ideia de meter sinais serial numa ficha usb..
Título: Re: Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: tr3s em 30 de Janeiro de 2012, 11:36
Yep Senso, yep!

Para nós é "bom"... é mais fácil para brincar!  ;)

http://lusorobotica.com/index.php?topic=1238.msg13459#msg13459 (http://lusorobotica.com/index.php?topic=1238.msg13459#msg13459)

e

http://lusorobotica.com/index.php?topic=1238.msg16900#msg16900 (http://lusorobotica.com/index.php?topic=1238.msg16900#msg16900)
Título: Re: Arduino + GPS Holux M1000 ou GPSlim 236
Enviado por: Edilson Gonçalves em 07 de Março de 2012, 23:49
Olá a todos,

Sou novo aqui no Forum, estou a procura de informaçoes a respeito do GPS Holux M1000. Tenho a seguinte situação: Necessito ler as rotas salvas neste GPS. Consegui efetuar a comunicaçao e pegar os dados em tempo real. Entretanto, nao consegui uma maneira de buscar para o meu PC as rotas salvas.

Acho que estou reabrindo este post, visto que já as informações são de longa data.

Se alguem puder ajudar, agradeço.