GPS Roboter

Ich bin grad dabei einen GPS Roboter zu bauen und jetzt hab ich ein arges Problem:
ich hab die NMEA Bibliothek genommen und mir die aktuelle Position printen lassen und leds an und ausgehen lassen je nach dem wo ich grad bin … das funktioniert soweit auch nur jetzt möchte ich zur Steuerung des Roboters servos ansteuern … also hab ich die servo bib genommen und einfach gesagt: wenn du bei N52.00000 und E008.00000 bist schreibst du ein servosignal von 100 oder so. aber immer wenn der NMEA datenstream erneuert wird spinnt der servo total und stellt immer auf 180 von 180 … das ist natürlich doof um geradeaus zu fahren =D

ich brauch wirklich Hilfe !

das ist der Code:

#include <Servo.h>
#include <nmea.h>
#include <NewSoftSerial.h>

NewSoftSerial nss(2, 3);
NMEA gps(GPRMC);

Servo Lenkservo;

int led = 13;
int val = 10;

double soll_lat = 53.1640;
double soll_lon = 008.65775;
double lat;
double lon;

void setup() {
Serial.begin(9600);
nss.begin(4800);
pinMode(13, OUTPUT);
Lenkservo.attach(6);
}

void loop() {
if (nss.available() > 0 ) {
digitalWrite(led, HIGH);
char c = nss.read();
if (gps.decode(c)) {
lat = gps.gprmc_latitude();
lon = gps.gprmc_longitude();
}

if (lat > 52.00000)
{
Lenkservo.write(100);
}

else
{
Lenkservo.write(20);
}
}
}

also so vom programm oder so kann ich leider nicht helfen...

aber die idee ist nicht schlecht ...

klingt für mich das ideale für n automatischen rasemäher ^^

rauschgiftengel: klingt für mich das ideale für n automatischen rasemäher ^^

Dafür dürfte die Genauigkeit ein gutes Stück zu schlecht sein. :(

Joghurt: Auf den ersten Blick würde ich sagen Du liest nur ein Zeichen statt der ganzen NMEA-Zeile, mit der Du arbeiten willst.

na ja manchmal reicht das ja ... aber mein problem ist ja das ich immer wenn das gps gerät aktualisiert ein störsignal auf den servo bekomme!

ich benutze das GPS 72 von garmin und das hat bei klarem Himmel angeblich eine Genauigkeit von 5m und die bleibt konstant also sollte das funktionieren! Außerdem bekomme ich aus dem NMEA stream eine 12 stellige zahl als latitude! und das gps zeigt nur 6 an !

Liebe Grüße Neumi

Ich hab mir die NMEA-Library grade nochmal angeguckt und das mit dem ein-Zeichen-lesen scheint schon zu passen. Hab aber trotzdem keine Ahnung was da nicht stimmt, tut mir leid. :blush:

So jetzt hab ich das Problem gelöst:
Die NewSoftSerial Library ist scheinbar nicht für Servos geeignet…
hab diese jetzt herausgenommen und jetzt läufst!

Danke für die Hilfe!
Neumi

Wahrscheinlich benutzen beide den gleichen Timer.
Grüße Uwe