Hallo zusammen,
ich habe eine prinzipielle Frage bezüglich Mikrocontroller. Vorab muss
ich noch sagen, dass ich auf diesem Gebiet wirklich keine Ahnung habe,
aber beabsichtige dies in Zukunft noch zu ändern.
Wäre mit einem Controller, welcher Art auch immer, folgende Aufgabe zu
lösen.
Ein GPS-Empfänger gibt seine Daten seriell in Form eines so genannten
NMEA Satzes weiter. Dieser setzt sich unter anderem aus den Koordinaten
und der Geschwindigkeit zusammen. Siehe
http://de.wikipedia.org/wiki/NMEA_0183
Ich würde nun gerne diesen NMEA Satz in ein von der Geschwindigkeit
abhängiges Rechtecksignal umrechnen. Bei einer Geschwindigkeit von 1
km/h sollte die Frequenz ca. 35 Hz betragen)
Der GPS-Empfänger hat eine Updaterate von 5Hz. Mit dieser Frequenz
sollte dann auch das Rechtecksignal berechnet werden.
Ist dies von Seiten der Hardware überhaupt Möglich?
Vielen Dank für eure Antworten
Martin
Die Antwort hängt ein bisschen von der Komplexität Deiner Formel zur
Berechnung der Ausgabefrequenz ab. Ich vermute es geht um eine Art
Tachoimpuls-Simulierung? Ein Mikrocontroller sollte mehr als genügend
Zeit haben, um Deine Aufgabe zu erledigen:
- Parsing des richtigen Strings mit der Geschwindigkeit
- Umwandeln der Geschwindigkeit (ASCII) in eine Zahl
- Anwenden Deiner Formel
- Ausgabe der Frequenz (vermutlich mit PWM)
Gruss
Roman
soviel ich jetzt erkennen konnte, ist dem Datenstrom keine
Geschwindigkeitsangabe. Man muss sich die Geschwindigkeit errechnen aus
dem Längen und Breitengrad sowie der Ausrichtung.
Danke das sit der schwierigere Teil. Für die Frquenz müsste man
eigentlich nur einen Timer verwenden.
Das ist nicht ganz richtig, es kommt auf das GPS Gerät an. Viele GPS
unterstützen z.B. den VTG Satz, der die Geschwindigkeit in Knoten und
km/h ausgibt !
Der Wiki Link ist nicht das komplette NMEA protocol.
Gruss
Roman
Auszug aus Wiki
Jedes NMEA-Gerät muss mindestens den Recommended Minimum Sentence C
(empfohlener Mindestdatensatz C, RMC) Datensatz ausgeben können. Er
folgt folgendem Aufbau:
$GPRMC,162614,A,5230.5900,N,01322.3900,E,10.0,90.0,131006,1.2,E*13
$GPRMC,HHMMSS,A,BBBB.BBBB,b,LLLLL.LLLL,l,GG.G,RR.R,DDMMYY,M.M,m*PP
Symbol Bedeutung
HHMMSS Zeit (UTC)
A Status (A für OK, V bei Warnungen)
BBBB.BBBB Breitengrad
b Ausrichtung (N für Nord, nördlich; S für South, südlich)
LLLLL.LLLL Längengrad
l Ausrichtung (E für East, östlich; W für West, westlich)
GG.G Geschwindigkeit in Knoten
RR.R Richtung in Grad
DDMMYY Datum
M.M magnetische Abweichung
m Ausrichtung der Abweichung (E oder W)
PP hexadezimale Darstellung der Prüfsumme
GG.G sollte doch die Geschwindigkeit in Knoten wiedergeben?
Ja es geht um so was ähnliches wie einen Tachoimpuls. Bis jetzt verwende
ich zu Geschwindigkeitsmessung einen Radarsensor. Dieser gibt über eine
Strecke von 100m ca. 13000 Impules (in Abhängigkeit von allem) aus.
Der GPS Empfänger hat noch eine zusätzliche Signalleitung, auf der alle
0,2 Sekunden in Impuls (keine Ahnung welcher) ausgegeben wird.
Laut Wikipedia ist der siebte Abschnitt das Datenstrom die
Geschwindigkeit in in Konten.
Denkt Ihr man kann diese Aufgabe mit einem Mikrocontroller
bewerkstelligen?
mfg
Martin
kurz gesagt, ja. Stichwort wäre PWM
allerdings hab ich das Wikipedia nicht ganz verstanden:
*Recommended Minimum Sentence C
*Datum Reference
*Global Positioning System Fix Data
werden alle 3 Datensätz übertragen, oder können die Geräte jeweils nur
eins dieser Protokolle?
Ich vermute mal die 0.2 Sekunden Impulse könnten mit den 5 Hz zu tun
haben!?
Meiner Meinung nach ist das sehr gut mit einem Mikrocontroller lösbar.
Dieser braucht nichtmal sehr schnell oder gut zu sein, er braucht
lediglich:
- Serielle Schnittstelle (USART z.B.)
- PWM Ausgabe
Und sogar dafür gibt es Alternativen (Soft-PWM).
Gruss
Roman
@pacer: viele GPS übertragen jede Menge verschiedene Datensätze. Einige
GPS kann man sogar noch dazu bringen, weitere Datensätze zu senden
(indem man ein Kommando seriell zum GPS schickt).
Martin K wrote:
> Ich würde nun gerne diesen NMEA Satz in ein von der Geschwindigkeit> abhängiges Rechtecksignal umrechnen. Bei einer Geschwindigkeit von 1> km/h sollte die Frequenz ca. 35 Hz betragen)
Wobei diese Randbedingungen einen Haken haben und das zuerst mit einem
GPS-Empfänger ausprobiert werden sollte.
1 km/h sind 0,28 m/s bzw. 0,56 kt. Das ist zwar von der Auflösung her im
NMEA Datensatz drin (GG.G, d.h. eine Nachkommastelle) aber i.A. nicht in
der Genauigkeit der GPS-Position.
Selbst wenn der GPS-Empfänger still steht, gibt es eine zeitliche
Änderung in der Positionsanzeige, die grösser ist, als die Strecke bei
einer Geschwindigkeit von 1 km/h.
Am ehesten wäre das noch den Navis für Wanderer oder Radfahrer
zuzutrauen. Weiss jemand, wie die arbeiten? Vielleicht mit
Zusatzhardware (Beschleunigungssensoren, Schrittzähler, Kompass) zur
Unterstützung des GPS-Signals oder vielleicht per Software (Glättung,
Berechnung aus Wegstrecke/Zeit)?
Soweit ich weiß kann mit einem guten GPS-Empfänger mit WAAS
Unterstützung eine Geschwindigkeit ab 0,3 km/h bestimmt werden. Größere
Ungenauigkeiten treten dagegen bei der Positionsbestimmung auf. Diese
werden durch atmosphärische Störungen hervorgerufen
(Ausbreitungsgeschwindigkeit der Funkwellen ändert sich bei hohem
Wasseranteil in der Luft). Da Wetteränderungen aber in der Regel träge
ablaufen, hat dies keinen Einfluss auf die Geschwindigkeit. Bitte
korrigiert mich wenn ich falsch liege.
WAAS musste ich erst bei Wikipedia nachschlagen.
http://de.wikipedia.org/wiki/WAAS
Ich befürchte, WAAS ist keine Hilfe bei deinem Problem.
Mit WAAS kann eine Position auf 0.3 bis 1 m genau bestimmt werden,
über Geschwindigkeit steht bei Wikipedia nichts. Die Schwankung in der
Position ist ausserhalb des abgesteckten notwendigen Gebietes.
Und der Empfang des WAAS Signals ist nicht einfach: "Der Empfang von
WAAS-/EGNOS-Signalen ist meist nur auf Anhöhen oder offener See möglich.
Mir ist auch noch nie ein basteltaugliches GPS-Modul mit WAAS
untergekommen.
Gibt es denn überhaupt eine Anforderung in Bezug auf die
Positionsgenauigkeit? Wenn ja, müsste man tatsächlich drüber nachdenken,
ob GPS das Mittel zum Zweck ist. Wenn nicht, dann einfach machen, oder?
Martin K wrote:
> Mal sehen. Anforderungen an die Position gibts es keine. Es würde nur> die Geschwindigkeit ausgewertet.
in welcher art fahrzeug soll denn das ganze zum einsatz kommen bzw. bei
welchen geschwindigkeiten?
und welche genauigkeit ist für die umwandlung notwendig?
Okay, anders gefragt: Wie genau soll den Geschwindigkeit sein, bzw.
welche Abweichungen sind zulässig?
Ohne Beantwortung der Frage kann mn ja noch lange diskutieren um dann am
Ende festzustellen, dass alles sinnlos war, weil das Messsystem nicht
hinreichend genau ist.
Die normale Updaterate eines Garmin ist 1 Hz. Ich wuerde mal annehmen
dass auch noch etas Rauschen drauf ist, dh die Werte nicht linear durch
Null gehen. Irgendwann versinkt man im Rauschen. Es gibt Leute, die
werten auch dieses Rauschen in 2 Dimensionen aus und Mitteln lange
genug. Ob das beides fuer diese Applikation passt, muesste man erst
durch einen Test herausfinden.
oha wrote:
> Die normale Updaterate eines Garmin ist 1 Hz. Ich wuerde mal annehmen> dass auch noch etas Rauschen drauf ist, dh die Werte nicht linear durch> Null gehen.
Da vermutest du richtig. Bei einem normalen MNEA-GPS kann man sich das
Rauschen (und die Sat-Positionen) z.B. mit der Freeware VisualGPS 3D
anzeigen lassen. In meinen bisherigen versuchen mit stationärem GPS gab
es immer einen Drift, der nach Stunden/Tagen gelegentlich zurück zum
Ursprung kam.