Pages: [1] 2   Go Down
Author Topic: GPS - Shield richtig anschließen  (Read 1479 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 238
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Forum,
ich habe Probleme bei der Verwendung eines GPS-Shields, dieses Stecke ich einfach auf mein Arduino drauf. Das Problem besteht darin das ich anschließend ein Synchronisationsfehler (avrdude...) erhalte und keine Daten mehr auf mein Board uploaden kann.
Bei dem Shield handelt es sich um folgendes:
http://www.ebay.de/itm/261191623683?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

vielleicht fällt euch ein Hinweis ein.

mit freundlichem Gruß
Balli
Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Das Shield wird vermutlich auch die Pins 0 und 1 (serielle Schnittstelle) verwenden, um mit dem Arduino zu reden. Zieh das Shield ab, spiele den Sketch drauf und stekce das Shield wieder drauf. Das sollte helfen.
Was siehst Du denn im serial Monitor, wenn das Shield drauf steckt? Werden da die Zeilen des GPS-Recievers angezeigt?

Mario.
Logged

Germany S-H
Offline Offline
Faraday Member
**
Karma: 146
Posts: 3031
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ich habe Probleme bei der Verwendung eines GPS-Shields, dieses Stecke ich einfach auf mein Arduino drauf. Das Problem besteht darin das ich anschließend ein Synchronisationsfehler (avrdude...) erhalte und keine Daten mehr auf mein Board uploaden kann.

Zeig mal ein Datenblatt zum Shield mit einer Beschreibung der Pinbelegung und Jumperpositionen!

Der Sync-Fehler deutet darauf hin, dass das Shield auf dieselbe Hardware-Serial an Pin-0/1 zugreifen möchte, über die Du den Sketch hochladen möchtest.

Reine Spekulation: Vielleicht kann man über die ON/OFF Jumperpositionen etwas deaktivieren, so dass der Upload über Bootloader möglich ist, wenn die Verwendung der Hardware-Serial über das Stecken eines Jumpers zeitweise deaktiviert ist.

Ansonsten:
Shield zum Uploaden abstöpseln.
Oder einen Programmer anschaffen und über Programmer hochladen.
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 238
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Das probiere ich gleich mal aus, ich kann bei den Pins 0-7 noch Jumper setzen eventuell kann ich damit ja steuern,welche Pins zur Kommunikation verwendet werden sollen.
Ich melde mich ob und was geklappt hat.

Es wurde gar nichts angezeigt, aber ich hatte auch noch nichts upgeloaden.

mfg
Balli
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 238
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,
vielen Dank daran scheint schon einmal das Uploadproblem gelegen haben, ich habe die Jumper von Pin 0 und 1 auf 5 und 6 gelegt und nun funktioniert das Hochladen wieder. Vielen Dank
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 238
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So, also anscheinend funktioniert es wenn ich die Jumper umstecke(habe Sie auf 5 und 6 umgesteckt). Wobei ich bei der Verwendung der TinyGPS Bibliothek keine Koordinaten ausgegeben bekomme. Und zwar verwende ich das einfache Beispiel:
Code:
#include <SoftwareSerial.h>

#include <TinyGPS.h>

/* This sample code demonstrates the normal use of a TinyGPS object.
   It requires the use of SoftwareSerial, and assumes that you have a
   4800-baud serial GPS device hooked up on pins 3(rx) and 4(tx).
*/

TinyGPS gps;
SoftwareSerial ss(0, 1);

void setup()
{
  Serial.begin(115200);
  ss.begin(4800);
  
  Serial.print("Simple TinyGPS library v. "); Serial.println(TinyGPS::library_version());
  Serial.println("by Mikal Hart");
  Serial.println();
}

void loop()
{
  bool newData = false;
  unsigned long chars;
  unsigned short sentences, failed;

  // For one second we parse GPS data and report some key values
  for (unsigned long start = millis(); millis() - start < 1000;)
  {
    while (ss.available())
    {
      char c = ss.read();
      // Serial.write(c); // uncomment this line if you want to see the GPS data flowing
      if (gps.encode(c)) // Did a new valid sentence come in?
        newData = true;
    }
  }

  if (newData)
  {
    float flat, flon;
    unsigned long age;
    gps.f_get_position(&flat, &flon, &age);
    Serial.print("LAT=");
    Serial.print(flat == TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : flat, 6);
    Serial.print(" LON=");
    Serial.print(flon == TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : flon, 6);
    Serial.print(" SAT=");
    Serial.print(gps.satellites() == TinyGPS::GPS_INVALID_SATELLITES ? 0 : gps.satellites());
    Serial.print(" PREC=");
    Serial.print(gps.hdop() == TinyGPS::GPS_INVALID_HDOP ? 0 : gps.hdop());
  }
  
  gps.stats(&chars, &sentences, &failed);
  Serial.print(" CHARS=");
  Serial.print(chars);
  Serial.print(" SENTENCES=");
  Serial.print(sentences);
  Serial.print(" CSUM ERR=");
  Serial.println(failed);
}

Als Ausgabe erhalte ich leider nur:
Simple TinyGPS library v. 12
by Mikal Hart

 CHARS=0 SENTENCES=0 CSUM ERR=0
 CHARS=0 SENTENCES=0 CSUM ERR=0
 CHARS=0 SENTENCES=0 CSUM ERR=0
 CHARS=0 SENTENCES=0 CSUM ERR=0
 CHARS=0 SENTENCES=0 CSUM ERR=0
 CHARS=0 SENTENCES=0 CSUM ERR=0
 CHARS=0 SENTENCES=0 CSUM ERR=0
 CHARS=0 SENTENCES=0 CSUM ERR=0
 CHARS=0 SENTENCES=0 CSUM ERR=0
....

und keine Koordinaten, muss ich da noch irgendetwas beachten?
mit freundlichen Grüßen
Balli
« Last Edit: June 28, 2013, 09:49:39 am by Ballibum » Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

<GLASKUGEL MODE=ON>
Vermutlich muss im Sketch dann auch noch geändert werden auf welchen Pins das serielle Signal des GPS-Empfängers eintrudelt.
</GLASKUGEL>
Wenn Du uns keine spezifikation des Boards lieferst, können wir auch nur raten. Außer Dir hat hier vermutlich keiner so ein Board, also woher sollen wir bitte wissen wie es an den Arduino angeschlossen ist?

Mario.

P.S. Hast Du den Sketch angepasst?

Code:
/* This sample code demonstrates the normal use of a TinyGPS object.
   It requires the use of SoftwareSerial, and assumes that you have a
   4800-baud serial GPS device hooked up on pins 3(rx) and 4(tx).
*/

TinyGPS gps;
SoftwareSerial ss(0, 1);
Im Kommentar steht, das Pin 3 und 4 verwendet werden für das GPS-device, du setzt aber Pin 1 und 0 für das SoftSerial ein??
Das sind aber die Hardware-UART Pins.
« Last Edit: June 28, 2013, 09:53:34 am by mkl0815 » Logged

Germany S-H
Offline Offline
Faraday Member
**
Karma: 146
Posts: 3031
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

und keine Koordinaten, muss ich da noch irgendetwas beachten?

SoftwareSerial ss(0, 1);

Pins 0 und 1 sind üblicherweise die Hardware-Serial. Und an der Hardware-Serial, die Du auf 115200 Baud betreibst, soll gleichzeitig eine SoftwareSerial mit 4800 Baud laufen???

Dunkel war's, der Mond schien helle,
Schnee lag auf der grünen Flur,
als die Daten blitzesschnelle,
langsam um die Ecke fuhr'n.
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 238
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mein Board hat ja nur auf 0 und 1 RX und TX, daher habe ich diese Werte im Sketch verwendet. Die Jumper die sich auf diesen Pins befinden stecken jetzt so auf 5 und 6. Ich finde das Board leider nur bei ebay-sprich der obige link, dass ist das Board um welches es sich dreht.
Ich bin ehrlich bemüht den Glaskugel-Mod zu verlassen.
mfg
Balli
Logged

Offline Offline
Faraday Member
**
Karma: 119
Posts: 3962
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Du kannst Serial in Hardware machen oder es mit Software emulieren (und auch andere Protokolle wie I²C). Software Serial geht auf allen Pins und nicht nur auf 0 und 1. Da muss man immer beachten was genau gemacht wird.
Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dann stell doch mal die SoftSerial Pins auf 5 und 6, so wie Du das auf dem Board gejumpert hast. Evtl. auch mal mit verschiedenen Baudraten versuchen.
Mario.
Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hmm, ich hab 2 Minuten gebraucht, um das Board zu finden:
http://imall.iteadstudio.com/im120417017.html
Da gibt es eine Spezifikation zu den verwendeten Pins, Demo-Code, ein Datenblatt und was man sonst noch braucht.
Logged

Germany S-H
Offline Offline
Faraday Member
**
Karma: 146
Posts: 3031
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mein Board hat ja nur auf 0 und 1 RX und TX, daher habe ich diese Werte im Sketch verwendet. Die Jumper die sich auf diesen Pins befinden stecken jetzt so auf 5 und 6.

Eine Software-Serial kannst Du an ALLEN Pins definieren, AUSSER an den Pins, die für irgendwas anderes benutzt werden.

Wenn Du die Hardware-Serial an 0 und 1 für den seriellen Monotor benutzt, und das GPS-Shield auf 5 und 6 kommuniziert, dann mußt Du die Software-Serial natürlich an 5 und 6 definieren!
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 238
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Darf ich fragen welche Suchbegriffe du verwendet hast?Ich such schon seid gestern nach einer eigenen Seite.
mit freundlichem Gruß
Balli
Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Das was hinter auf dem Board steht: "DT studio gps shield". Das führt zu einem Arduino-Forum Link (wer hätte das gedacht  smiley ), indem es um das GPS Shield von ITEADSTUDIO geht. Wenn man sich das Baodlayout anschaut, ist Dein Board ein Klone davon.
Wie gesagt, 2 Minuten.  smiley-mr-green
Logged

Pages: [1] 2   Go Up
Jump to: