Páginas

miércoles, 19 de abril de 2017

Modulo GPS

  

 

 Modulo GPS

Hoy traigo un módulo GPS muy sencillo de utilizar el Ublox NEO-6M pero que es compatible con otros muchos que se venden sueltos para Arduino.

Este módulo funciona tanto con Arduino como suelto, ya que simplemente hay que alimentarlo con 3,3V y escuchar la patilla TX. Por lo tanto su utilización es de lo más sencillo.





Lleva una antena externa amplificadora así como las diferentes patillas para alimentarlo y comunicarse con él.

Lo conectamos a nuestro Arduino de la siguiente forma, las conexiones TX/RX son configurables, yo elijo las entradas digitales del Arduino 8 y 10:



Modulo GPS
Arduino UNO/MEGA
3,3V
3,3V
GND
GND
TX
8
RX
10








A la hora de utilizarlo simplemente hay que escuchar lo que el modulo nos mande. Un ejemplo, sería este:



  1. // Modulo GPS
  2. // Conectamos el modulo de la siguiente forma:
  3. // GND -> GND
  4. // 3,3V -> 3,3V
  5. // TX -> 8
  6. // RX -> 10
  7. // http://arubia45.blogspot.com.es/

  8. #include <SPI.h>
  9. #include <SD.h>
  10. #include <SoftwareSerial.h>

  11. File myFile;

  12. void grabar_txt(String Fichero, String Linea) {
  13.   myFile = SD.open(Fichero, FILE_WRITE);
  14.   if (myFile) {
  15.     myFile.println(Linea);
  16.     myFile.close();
  17.   } else {
  18.     Serial.println("Error abriendo el fichero.");
  19.   }
  20. }

  21. SoftwareSerial mySerial(8, 10); // RX, TX
  22. // Patilla CS del lector SD (RobotDyn)
  23. const int chipSelect = 9;

  24. String Linea;

  25. void setup()
  26. {
  27.   Serial.begin(9600);

  28.   if (!SD.begin(chipSelect)) {
  29.     Serial.println("Fallo de inicializacion SD!!");
  30.     return;
  31.   }
  32.   Serial.println("Inicializacion SD realizada");

  33.   mySerial.begin(9600);
  34.   Serial.println("Iniciando ...");
  35.   delay(200);
  36. }

  37. void loop()
  38. {
  39.   while (mySerial.available() > 0)  {
  40.     char c;
  41.     c = mySerial.read();
  42.     if (c == '$') {
  43.       int pos  = Linea.indexOf("GPGGA");
  44.       if (pos >= 0) {
  45.         Serial.print(Linea);
  46.         grabar_txt("GPGGA.TXT", Linea);
  47.         delay(500);
  48.       }
  49.       Linea = "";
  50.       Linea.concat(c);
  51.     }
  52.     else {
  53.       Linea.concat(c);
  54.     }
  55.   }
  56. }


Si cargamos este ejemplo en nuestro Arduino y abrimos el Monitor Serie de nuestro Arduino IDE debería de verse:




Este ejemplo filtra los datos que recibimos del módulo quedándonos solo con los GPGGA ya que este módulo es capaz de darnos datos de localización en disitntos estándares. Además los graba en la tarjeta SD en el fichero GPGGA.TXT

Si cargamos una web de geolocalización podemos ver nuestro recorrido



Una web que está muy bien para todo esto y nos permite pasarlo al Google Earth es esta:

http://www.gpsvisualizer.com

El módulo lo puedes comprar por unos 8€ o quizás algo menos ya dependiendo del acabado y donde lo compres.

Espero que os sea de utilidad ya que sobre esto se pueden hacer muchas cosas.

No hay comentarios:

Publicar un comentario