Endlich GPS für Multiwii

Derjunior

Erfahrener Benutzer
Hallo,
ich hab die Codeänderung eben ausprobiert und bei mir funzt es super. Bei mir ist er jedesmal wenn ich PH an geschaltet hab von dem Punkt erstmal weg geflogen, wenn er sich dann ein wenig um den Punkt eingependelt hat ist er aber nach kurzer zeit in irgendwelche richtungen abgehauen und jetzt keinerlei ausreißer mehr , er zuckt noch ein bischen was durch PID Tuning aber besser wird;)

Gruß Micha
 

Butcher

Bill the Butcher
Könnte mal jemand nen extra thread mit der bisherigen verbesserung aufmachen, sonst geht das hier so unter ^^

ich warte immernoch auf mein GPS :(
 

Derjunior

Erfahrener Benutzer
Hey, ich hab das Mega Board mit dem Rushduino Gps von Paul über I2C angeschlossen mit dem Code von Wolle bzw. Roberto Mod.
@ Jürgen: ich hab auch das UBlox CN 06, ich hatte es an Serial 2 angeschlossen aber nie ein Fix bekommen, die Grüne Led leuchtet am Board, Led indikator für Fix hab ich im Sketch an aber nix passiert, selbst nach ner halben stunde auf dem Balkon nix. Ich hab leider nicht so viel plan von der Materie und bin auf euch angewiesen. Wenn du ne idee hast dann bitte her damit;)

Gruß Micha

P.s.: wäre nett wenn du zu dem UBX noch mehr schreiben würdest das ich das vieleicht auch umsetzen kann.
 

JUERGEN_

Generation 60++
... ich hab auch das UBlox CN 06, ich hatte es an Serial 2 angeschlossen aber nie ein Fix bekommen,
P.s.: wäre nett wenn du zu dem UBX noch mehr schreiben würdest das ich das vieleicht auch umsetzen kann.
und was sagt das Modul am PC ? u-center
welche Version CN-06 ?

FC auf u-BLOX eingestellt ?
wurde das Modul erkannt ?
 

fdietsch

Erfahrener Benutzer
Ublox hab nicht vor mir aber mal so aus dem Gedächtnis.
1. Downloade : http://www.u-blox.com/en/evaluation-tools-a-software/u-center/u-center.html
2. Installieren
3. GPS mit PC verbinden dazu im Grätemangager nachsehen welcher Com Port dazu kommt wenn man den USB-Serialwandler einstöpselt. Com Nr. Merken
4. Ucenter starten, Com Port von oben auswählen, Baudrate steht meist auf 9600 zur Baudrate gibt es im U-center auch eine Autoeinstellung.
Wird die Verbindung grün weiter mit 7.
5. eventuell RX und TX tauschen
6. eventuell verschiedene Baudraten probieren
7. Jetzt kannst du die einzelnen Fenster öffnen da sollten Daten durchlaufen
8. Oben links 2.oder 3. Tab geibts Einstellungen
9. Ublox aktivieren
10. Baudrate auf 115 stellen
11. Speichern
12. Abziehen
13. Im U-center Baud 115 einstellen
14. anstecken und testen ob das GPS die Einstellung gespeichert hat
15. Spielen , mal die Karte anmachen rauszoomen und schauen wie das GPS spazieren geht.

manchmal braucht der satfix 15 min.
manchmal hilft spannung aus und wieder an
Gps modul mal in eine Plastetüte wickeln langes kabel dran und raus legen (in meinem Hobbykleller bekomme ich keinen Empfang).
 
Zuletzt bearbeitet:

Derjunior

Erfahrener Benutzer
LOL ich glaub ich trau mich nicht dir zu Antworten :D
Also 1. welches U-center? Link?
2. Version? das was drauf steht: Neo-6M-0-001... kein plan wie man das mit nem Programm auslesen kann.
3. Ich hab den Sketch rauf und runter gelesen ob man irgendwo was einstellen kann bezüglich UBlox aber nix gefunden
4. ich würd sagen nein da es kein fix bekommt

Hab bitte erbarmen mit mir, ich bin zwar nicht mehr ganz so jung aber Gps serial ist mir halt neu und ich hab noch keine Ahnung davon und man findet leider sehr wenig darüber.

Gruß Micha

Ok Fdietsch hab ich grad nicht gesehen, das mach ich erstmal
 

bigbretl

Erfahrener Benutzer
Servus,
jetzt stehe ich auf`m Schlauch.
Ich habe ein serielles NMEA GPS, nur bin ich nicht ganz mitgekommen, wie und was ich von der GPS.ino der neuen dev in die 2.1 (NewBaro4Final) einfügen soll. Oder ist damit gleich die ganze GPS.ino gemeint?
Grundsätzlich hält er ja gut die Position, nur selten kam es zu Ausreisern, aber wenn man die auch noch weg bekommt sind wir wieder ein stück weiter.
Gruß bigbretl
 

Roberto

Erfahrener Benutzer
Hi, Bigbretl!
Bei der 2.1 (auch bei der "final4", da gps.ino nicht geändert) ist es Zeile 787. Dann weiter wie hier: http://fpv-community.de/showthread....f%FCr-Multiwii&p=242649&viewfull=1#post242649

Mittlerweile habe ich das MTK-Binärprotokoll mit dem lz gps ausprobiert (5Hz und 10Hz) und bin auf die gleichen Probleme wie hier gestossen:
http://www.multiwii.com/forum/viewtopic.php?f=8&t=649&start=1170#p19048
http://www.multiwii.com/forum/viewtopic.php?f=8&t=649&start=1170#p19132
Deswegen habe ich wieder auf NMEA zurückgeflasht. http://code.google.com/p/i2c-gps-nav/downloads/detail?name=MTK-firmware-tools-for-2.1.zip&can=2&q=. Wenn Wolle die gleiche FW verwendet (MTK3329_A1.5E_20110118_10Hz_115200.bin), kann man noch WAAS und SBAS einsschalten (http://www.multiwii.com/forum/viewtopic.php?f=8&t=649&start=40#p4085).
Laut mini GPS 1.4 ist das bei der FW aus. Ich habe das mal in die EosBandi I2C_GPS_NAV-v2.1rc2 eingebaut, da kann man jetzt in der config.h zwischen 5 und 10 Hz wählen.
Code:
//#define ROBNMEAMTK5HZ
#define ROBNMEAMTK10HZ
Mal sehen, ob das einen Praxiseffekt hat.

LG
Rob
 

Anhänge

Wollez

Erfahrener Benutzer
Hallo Rob,

ich verwende für das LZ-GPS die "AXN1.50_2697_3329_1152.1151100.10.bin". Diese wurde für mich vom Hersteller angepasst.
Sie ist fix auf 10 Hz und 1151100 baud eingestellt. Es wäre aber kein Problem auch andere Einstellungen fix zu machen. Würde das von dem Hersteller dann anfordern. Welche Möglichkeiten bestehen, kann ich Dir ja mal mailen.

Gruß Wolfgang

Edit: SBAS wird auch von meiner FW unterstützt und kann eingeschaltet werden.
 
Zuletzt bearbeitet:

Roberto

Erfahrener Benutzer
Hi!
Danke für die Info, Wollez! Ich habe mir gleich wieder Deine original FW aufgespielt. Vielleicht bringt das SBAS Einschalten ja etwas auf freiem Feld.


LG
Rob

Ps.: Liege mit Schüttelfrost im Bett :( :( :(.
 

Karsten J.

Erfahrener Benutzer
Mach mal ein Bild von der Fr. Schüttelfrost :D
Deine Verbesserung des "2km Fehler" funktioniert super !

Wünsche Dir schonmal Gute Besserung, Rob

Gruß Karsten
 

Desaster

Erfahrener Benutzer
Hiho
Ähm Roberto kl. Frage ma ,in der Dev 1240 sieht das so aus :
uint32_t GPS_coord_to_degrees(char* s) {
char *p, *q;
uint8_t deg = 0, min = 0;
unsigned int frac_min = 0;
uint8_t i;

// scan for decimal point or end of field

uint8_ i; steht da jetzt zusätzlich was sollte man jetzt machen, wegen deiner code änderung ?

Danke
und wech
 

Roberto

Erfahrener Benutzer
Code:
Das hier:
...
#define DIGIT_TO_VAL(_x)        (_x - '0')
uint32_t GPS_coord_to_degrees(char* s) {
  char *p, *q;
  uint8_t deg = 0, min = 0;
  unsigned int frac_min = 0;
  uint8_t i;

  // scan for decimal point or end of field
...

Ändern in:
...
#define DIGIT_TO_VAL(_x)        (_x - '0')
uint32_t GPS_coord_to_degrees(char* s) {
  char *p, *q;
  uint8_t deg = 0, min = 0;
  uint32_t frac_min = 0;
  uint8_t i;

  // scan for decimal point or end of field
...
Das uint8_t i muss natürlich stehen bleiben!!

Mittlerweile habe ich im Fieber einen besseren Filter, als diesen Moving Average Filter ausgedacht und an Barowerten getestet (GPS geht bei mir indoor nicht). Sieht SEHR vielversprechend aus.

LG
Rob
 

FireN

trägt sonst keine Brille!
ich bin seit Dienstag krankgeschrieben und mir fallen keine so tollen Sachen ein :D
Gute Besserung :)
 

Roberto

Erfahrener Benutzer
Moin,Moin.
@Desaster: Danke für den Link! Ich Denke, dass betrifft hauptsächlich die "neuen" Baroausleseroutinen (DEV). Bis die ausgereift sind, verwende ich lieber die alten (von mir timingkorrigierten) Routinen da weiss ich, was ich habe. Natürlich kommen auch durch 32 Bit Rechengenauigkeit Fehler rein. Tja, meine original 197X Pressung von "Dark Side Of The Moon" klingt immer noch besser als die digital remastered CD Version. Wobei wir beim Thema sind. Eigentlich braucht man zu Berechnung der GPS Variablen 64 Bit Genauigkeit. Die Arduino Leute eiern da drum herum, aber letztendlich führt daran kein Weg vorbei. Vielleicht erlaubt der extra Arduino bei einer I2C Lösung die Verwendung von 64 Bit Mathematik.
Hier kann es jeder in seinem EOS BANDI / Arduino / Dev code lesen:
// this is a little bit tricky since the 1e7/deg precision easily overflow a long, so we apply the filter to the fractions
// only, and strip the full degrees part. This means that we have to disable the filter if we are very close to a degree line
Also, wenn man an einer Gradgrenze fliegt, sollte z.B kein #define GPS_FILTERING verwendet werden.
Was soll das denn?
Die Gradgrenzen sind für mich genau so unbegreiflich wie Erdstrahlen oder Wasseradern. Wenn, dann soll man wenigstens sagen: Wir bekommen keine 64 Bit Arithmetik auf die Kette (langsame CPU, zu wenig Speicher usw), deswegen lass die Option aus, wenn Du nicht vorher geschaut hast, dass Du keine Gradgrenze überfliegst.
Naja, ich mach mal wieder die Augen zu, bis mich die Grippe wieder weckt...

LG
Rob
 
Zuletzt bearbeitet:

JUERGEN_

Generation 60++
...
Die Gradgrenzen sind für mich genau so unbegreiflich wie Erdstrahlen oder Wasseradern.
Wenn, dann soll man wenigstens sagen: Wir bekommen keine 64 Bit Arithmetik auf die Kette (langsame CPU,
zu wenig Speicher usw), deswegen lass die Option aus,
wenn Du nicht vorher geschaut hast, dass Du keine Gradgrenze überfliegst. ...
was uns dann wohl wieder auf die STM32 Schiene bringt ? :)

es muss ja nicht gleich ein ARM9 sein, wie bei MikroKopter verwendet. :D
 
Zuletzt bearbeitet:
FPV1

Banggood

Oben Unten