INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
U-blox Neo 6M GPS auslesen
06.05.2016, 07:44 (Dieser Beitrag wurde zuletzt bearbeitet: 06.05.2016 07:54 von Matthias_Arduino.)
Beitrag #1
U-blox Neo 6M GPS auslesen
Hallo Arduino-Gemeinde,

ich habe einen u-blox Neo-6M und möchte damit GPS-Koordinaten auf meinem Arduino Mega2560 (IDE Arduino 1.6.5.) aufzeichnen und in der Konsole ausgeben.

Angeschlossen ist das Ganze wie folgt:
Neo-6M <----> Arduino-Mega2560

GND <----> GND
VCC <----> 3,3 V
TX <----> Digital Pin4 (RX)
RX <----> Digital Pin3 (TX)

   
   

Mit Beispielen aus dem Internet wie z.B. von
http://arduiniana.org/libraries/tinygpsplus/
kommen allerdings immer nur Fehlermeldungen bzw. die Konsole bleibt leer.

Code:
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
/*
   This sample sketch demonstrates the normal use of a TinyGPS++ (TinyGPSPlus) object.
   It requires the use of SoftwareSerial, and assumes that you have a
   4800-baud serial GPS device hooked up on pins 4(rx) and 3(tx).
*/
static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 9600;

// The TinyGPS++ object
TinyGPSPlus gps;

// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);

void setup()
{
  Serial.begin(9600);
  ss.begin(GPSBaud);

  Serial.println(F("DeviceExample.ino"));
  Serial.println(F("A simple demonstration of TinyGPS++ with an attached GPS module"));
  Serial.print(F("Testing TinyGPS++ library v. ")); Serial.println(TinyGPSPlus::libraryVersion());
  Serial.println(F("by Mikal Hart"));
  Serial.println();
}

void loop()
{
  // This sketch displays information every time a new sentence is correctly encoded.
  while (ss.available() > 0)
    if (gps.encode(ss.read()))
      displayInfo();

  if (millis() > 5000 && gps.charsProcessed() < 10)
  {
    Serial.println(F("No GPS detected: check wiring."));
    while(true);
  }
}

void displayInfo()
{
  Serial.print(F("Location: "));
  if (gps.location.isValid())
  {
    Serial.print(gps.location.lat(), 6);
    Serial.print(F(","));
    Serial.print(gps.location.lng(), 6);
  }
  else
  {
    Serial.print(F("INVALID"));
  }

  Serial.print(F("  Date/Time: "));
  if (gps.date.isValid())
  {
    Serial.print(gps.date.month());
    Serial.print(F("/"));
    Serial.print(gps.date.day());
    Serial.print(F("/"));
    Serial.print(gps.date.year());
  }
  else
  {
    Serial.print(F("INVALID"));
  }

  Serial.print(F(" "));
  if (gps.time.isValid())
  {
    if (gps.time.hour() < 10) Serial.print(F("0"));
    Serial.print(gps.time.hour());
    Serial.print(F(":"));
    if (gps.time.minute() < 10) Serial.print(F("0"));
    Serial.print(gps.time.minute());
    Serial.print(F(":"));
    if (gps.time.second() < 10) Serial.print(F("0"));
    Serial.print(gps.time.second());
    Serial.print(F("."));
    if (gps.time.centisecond() < 10) Serial.print(F("0"));
    Serial.print(gps.time.centisecond());
  }
  else
  {
    Serial.print(F("INVALID"));
  }

  Serial.println();
}




Habt ihr Vorschläge und Ideen, wo der Fehler liegen kann. Da ich es schon mit unterschiedlichsten Beispielen versucht habe, gehe ich langsam davon aus, dass das GPS-Modul einen Treffer hat.

Kann es sein, dass die Anschlüsse auf dem GPS falsch benannt / vertauscht sind? Denn bei vielen Abbildungen die man so über google findet, sind GND und VCC anderst herum. Kann man die Polung versuchshalber tauschen, oder zerstöre ich damit das Modul?

viele Grüße,
Matthias

(06.05.2016 07:44)Matthias_Arduino schrieb:  Hallo Arduino-Gemeinde,

ich habe einen u-blox Neo-6M und möchte damit GPS-Koordinaten auf meinem Arduino Mega2560 (IDE Arduino 1.6.5.) aufzeichnen und in der Konsole ausgeben.

Angeschlossen ist das Ganze wie folgt:
Neo-6M <----> Arduino-Mega2560

GND <----> GND
VCC <----> 3,3 V
TX <----> Digital Pin4 (RX)
RX <----> Digital Pin3 (TX)

   
   


Mit Beispielen aus dem Internet wie z.B. von
http://arduiniana.org/libraries/tinygpsplus/
kommen allerdings immer nur Fehlermeldungen bzw. die Konsole bleibt leer.

Code:
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
/*
   This sample sketch demonstrates the normal use of a TinyGPS++ (TinyGPSPlus) object.
   It requires the use of SoftwareSerial, and assumes that you have a
   4800-baud serial GPS device hooked up on pins 4(rx) and 3(tx).
*/
static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 9600;

// The TinyGPS++ object
TinyGPSPlus gps;

// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);

void setup()
{
  Serial.begin(9600);
  ss.begin(GPSBaud);

  Serial.println(F("DeviceExample.ino"));
  Serial.println(F("A simple demonstration of TinyGPS++ with an attached GPS module"));
  Serial.print(F("Testing TinyGPS++ library v. ")); Serial.println(TinyGPSPlus::libraryVersion());
  Serial.println(F("by Mikal Hart"));
  Serial.println();
}

void loop()
{
  // This sketch displays information every time a new sentence is correctly encoded.
  while (ss.available() > 0)
    if (gps.encode(ss.read()))
      displayInfo();

  if (millis() > 5000 && gps.charsProcessed() < 10)
  {
    Serial.println(F("No GPS detected: check wiring."));
    while(true);
  }
}

void displayInfo()
{
  Serial.print(F("Location: "));
  if (gps.location.isValid())
  {
    Serial.print(gps.location.lat(), 6);
    Serial.print(F(","));
    Serial.print(gps.location.lng(), 6);
  }
  else
  {
    Serial.print(F("INVALID"));
  }

  Serial.print(F("  Date/Time: "));
  if (gps.date.isValid())
  {
    Serial.print(gps.date.month());
    Serial.print(F("/"));
    Serial.print(gps.date.day());
    Serial.print(F("/"));
    Serial.print(gps.date.year());
  }
  else
  {
    Serial.print(F("INVALID"));
  }

  Serial.print(F(" "));
  if (gps.time.isValid())
  {
    if (gps.time.hour() < 10) Serial.print(F("0"));
    Serial.print(gps.time.hour());
    Serial.print(F(":"));
    if (gps.time.minute() < 10) Serial.print(F("0"));
    Serial.print(gps.time.minute());
    Serial.print(F(":"));
    if (gps.time.second() < 10) Serial.print(F("0"));
    Serial.print(gps.time.second());
    Serial.print(F("."));
    if (gps.time.centisecond() < 10) Serial.print(F("0"));
    Serial.print(gps.time.centisecond());
  }
  else
  {
    Serial.print(F("INVALID"));
  }

  Serial.println();
}




Habt ihr Vorschläge und Ideen, wo der Fehler liegen kann. Da ich es schon mit unterschiedlichsten Beispielen versucht habe, gehe ich langsam davon aus, dass das GPS-Modul einen Treffer hat.

Kann es sein, dass die Anschlüsse auf dem GPS falsch benannt / vertauscht sind? Denn bei vielen Abbildungen die man so über google findet, sind GND und VCC anderst herum. Kann man die Polung versuchshalber tauschen, oder zerstöre ich damit das Modul?

viele Grüße,
Matthias
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.05.2016, 12:00
Beitrag #2
RE: U-blox Neo 6M GPS auslesen
(06.05.2016 07:44)Matthias_Arduino schrieb:  Kann es sein, dass die Anschlüsse auf dem GPS falsch benannt / vertauscht sind? Denn bei vielen Abbildungen die man so über google findet, sind GND und VCC anderst herum. Kann man die Polung versuchshalber tauschen, oder zerstöre ich damit das Modul?

Hallo,

leider kann ich zu deinem eigentlichen Problem nichts sagen, aber die Betriebsspannung darfst du nicht verpolt anschließen, danach ist das Modul sicher hin. Wenn es tatsächlich falsch bezeichnet wäre, würde die Led auf dem Modul n bei dir nicht leuchten. Damit scheint das schon korrekt zu sein.
Was du versuchsweise ändern kannst, wären die Anschlüsse RX und TX der UART.

Mir ist aber aufgefallen, dass die eingestellte BaudRate bei dir unterschiedlich ist.

GPS-Modul hat 4800 und die UART hat 9600. Du solltest sicher die UART auch auf 4800 setzen. Da ich das Modul nicht kenne, nur eine Vermutung.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.05.2016, 21:00
Beitrag #3
RE: U-blox Neo 6M GPS auslesen
Danke für den Kommentar.
RX und TX zu tauschen und die Baud Rate ändern haben leider auch nichts gebracht.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.05.2016, 21:21
Beitrag #4
RE: U-blox Neo 6M GPS auslesen
(07.05.2016 21:00)Matthias_Arduino schrieb:  Danke für den Kommentar.
RX und TX zu tauschen und die Baud Rate ändern haben leider auch nichts gebracht.

Dann solltest du die Fehlermeldungen mal posten, die immer kommen.
Das gibt sicher mehr Auskunft.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.05.2016, 21:32
Beitrag #5
RE: U-blox Neo 6M GPS auslesen
Kompilieren & Hochladen funktioniert einwandfrei.

Beide Baud-Raten und die im Monitor auf 4800 gestellt, kommt im Monitor die Meldung:
"No GPS detected: check wiring".
Aber das ist ja auch keine wirkliche Fehlermeldung sondern die Ansage aus dem Code.
"
if (millis() > 5000 && gps.charsProcessed() < 10)
{
Serial.println(F("No GPS detected: check wiring."));
"

Wüsstest du einen idiotensicheren Code, mit dem ich Prüfen kann, ob das GPS-Modul richtig arbeitet?

Kann in der Pin-Belegung der Fehler leigen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.05.2016, 09:09
Beitrag #6
RE: U-blox Neo 6M GPS auslesen
Wie ich schon schrieb, kenne ich das Modul nicht, kann daher nicht weiter helfen.
Es gibt im Web aber einige Post mit dem Modul, z.B. hier:
http://www.hjberndt.de/soft/ardgpstime.html

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.10.2016, 15:23 (Dieser Beitrag wurde zuletzt bearbeitet: 23.10.2016 15:25 von Harry Hirsch.)
Beitrag #7
RE: U-blox Neo 6M GPS auslesen
Matthias_Arduino, ich bin mit dem gleichen Modul am Testen. Hol Dir die Software von der Herstellerseite damit kannst Du das Modul super bedienen. Ich habe das Modul mit einem USB zu Seriellwandler (3,3V) der als Zugabe beim Modul dabei war am Laufen. Meins hat 9600 Baud, es gibt auch eine Autofunktion in der Software von UBlox. Dass das Modul mit 3,3V läuft weist Du ja sicher und das am die Schnittstelle kein TTL-Pegel darf sicher auch, vom Arduino einen Spannungsteiler in die TXD Arduino zu der RXD zum Modul einschleifen. Auf deinen Bild sehe ich aber keinen??? Das ganze ist auch im Netz gut beschrieben, einfach bei Google schauen. Wenn 5V an die Schnittstelle vom Neo6 kommen.... und das wars dann meistens. Lg Harry
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.11.2016, 18:54
Beitrag #8
RE: U-blox Neo 6M GPS auslesen
Hallo Harry,
vielen Dank für die Antwort.
Was meinst du mit " das an die Schnittstelle kein TTL-Pegel darf ... vom Arduino einen Spannungsteiler in die TXD Arduino zu der RXD zum Modul einschliefen"? Kannst du das näher erläutern?

vielen Dank und Gruß,
Matthias
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Mit dem Arduino JSON Webseiten auslesen seb201 3 82 Gestern 22:25
Letzter Beitrag: Tommy56
  Messchieber auslesen mit nem UNO roadcaptain 8 296 15.11.2016 14:30
Letzter Beitrag: Tommy56
  mit Attiny85 Feuchtigkeitssensor auslesen toto1975 17 557 19.08.2016 22:40
Letzter Beitrag: hotsystems
  Encoder auslesen Phil333 1 663 23.03.2016 21:40
Letzter Beitrag: hotsystems
  "WORT" über die serielle Schnittstelle auslesen hannes77 1 524 08.03.2016 12:13
Letzter Beitrag: Binatone
  Probleme beim Auslesen eines IR Empfängers linuxpaul 7 574 06.03.2016 14:44
Letzter Beitrag: hotsystems
  Elro HIS20m Wandsender 433MHz auslesen mayrst 6 943 10.02.2016 12:33
Letzter Beitrag: mayrst
  Wetterdaten von Yahoo auslesen nowak222 12 1.270 08.02.2016 16:33
Letzter Beitrag: ardu_arne
  Anfängerhilfe: Piezo-Signal auslesen/kopieren Koregan 9 891 31.12.2015 08:40
Letzter Beitrag: Bitklopfer
  Pins setzen und auslesen im Yun mit FreeBasic arduinofan 3 555 08.12.2015 15:03
Letzter Beitrag: manau21

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste