BPSK Modem für GPS Downlink via Audiokanal

kally

Neuer Benutzer
#1
Hallo FPV Freunde,

hier möchte ich auch meinen Beitrag für die Weiterentwicklung unseres schönen Hobby's leisten. Es geht hier um eine kleine feine Elektronik mit der man via Audiokanal des 2,4 GHz Videosenders die GPS NMEA Daten eines GPS Empfängers zur Bodenstation(PC oder PDA) funken kann.
Hier der Link des Entwicklers

Modem

Ich selbst habe die Schaltung nachgebaut und letzten Sommer mit meinem Movie Star ausgiebig getestet und ich war sehr zufrieden damit.



Ich habe gegenüber der Originalschaltung jeweils einen Quarz verwendet das Ganze mit dem Internen Oszialltors sehr Temperaturabhängig war. Im Anhang befindet sich eine KML Datei die wenn man Google Earth installiert hat einfach doppelklickt und schon sieht man die Flugaufzeichnung.
Momentan kann ich nur mit 1 Hz GPS Daten ausgeben denn mehr geht bei der Datenmenge von NMEA Datensätzen nicht aber die uBlox GPS Module kann man auch so konfigurieren das sie ein sogenanntes UBX Datenformat ausgeben damit müssten dann auch 5 Hz möglich sein. Der Sinn des ganzen ist mit diesem Dowlink einen Antennentracker zu steuern. Per PC und Labview habe ich das schon realisiert aber das ist ein wenig zu unhandlich.
Wer Interresse hat der kann hier einfach Posten ob er Platinen haben will dann lege ich mal noch eine kleine Serie auf.

Gruß

Kally
 

kally

Neuer Benutzer
#2
Hallo alle miteinander,

hier jetzt die Berechnungsformeln die man für eine Trackerantenne braucht.

s = Entfernung in km
b1 = Breitengrad Startplatz in Rad
b2 = Breitengrad Objekt in Rad
l1 = Längengrad Startplatz in Rad
l2 = Längengrad Objekt in Rad
rho = der Headingwinkel in Grad
h = Höhe
h1 = Höhe Startplatz
h2 = Höhe Flugobjekt
Los = Entfernung zum Modell (Line of sight)
elev = Elevationswinkel in Grad

die if Schleife dient zur Entscheidung in welcher Richtung sich das Objekt befindet.


s=(acos(sin(b1)*sin(b2)+cos(b1)*cos(b2)*cos(l1-l2))/Pi*180)*60*1.852;

rho = asin(sin(l2-l1)*(cos(b2))/sin((s/(60*1.852))*Pi/180))*180/Pi;

if (b1<b2) { if (rho>0) {Kurs = rho;} else Kurs = rho + 360;} else Kurs=180 - rho;

h = h2 - h1;

Los = sqrt (h*h + (s*s*1000000));

elev = (asin(h/Los))*180/Pi;

Gruß

kally
 

ygramul

Erfahrener Benutzer
#3
Hallo Kally,

ich finde das ist wirklich eine feine Sache die Datenübertragung im Audio Kanal!

Könnte ich da auch andere Daten übertragen? Zum Beispiel Akkuspannung oder irgendwelche anderen Messwerte von Sensoren?
 

kally

Neuer Benutzer
#4
Hallo ygramul,

selbstverständlich kann man auch andere Daten übertragen. Der Eingang des Mikrocontrolers ist ja eine ganz normale Serielle Schnittstelle die mit 4800 Baud arbeitet da könnte man z.B. auch eine C-Control von Conrad dranhängen mit der man die Analogen Daten vom Modell erfasst und als Bodenstation nimmt man wieder eine C-Control mit LCD Display. Möglichkeiten gibt es da viele.

Gruß

Kally
 

Helimensch

Erfahrener Benutzer
#5
Wir haben bereits im Chat drüber gesprochen - Kally würde anbieten, eine kleinere Auflage dieser Platinen zu erstellen.

Stellt sich allerdings die Frage, wer von Euch noch Interesse daran hätte!

Könnte das hier etwas organisieren. Sprich: Schickt mir doch bitte eine PM/Mail, um mal grunds. den Bedarf feststellen zu können. Kally und ich unterhalten uns dann nochmal über die weiteren Details, die wir dann im Anschluß bekanntgeben würden. Ich lege Wert drauf, hier erstmal noch nicht von einer Bestellung zu reden!

Kally hat ja schon erwähnt, daß es sich hierbei um einen Vorschlag zur Weiterentwicklung handelt. Das Modem ist also eigentlich nur der Schlüssel für die eigentlichen Anwendungen, die man "dahinter" realisieren könnte.

Eine dieser Ideen hat er ja schonmal durchklingen lassen:
Wir überlegen derzeit, ob wir nicht ein "Opensource Antennentracking" auf die Beine stellen. Das Modem muß natürlich erstmal noch richtig getestet werden. Vorher wäre es wirklich Quatsch, hier nähere Details und Planungen bekanntzugeben. Daß es allerdings durchaus mehr als eine blöde Idee ist, kam in Kally's Antwort ja schon durch. Es ist allerdings rel. aufwändig - deswegen bin erstmal noch vorsichtig!

Schreibe das auch nur deswegen, um auf diesem Wege schonmal die evtl. Bereitschaft zur Mitentwicklung eines solchen Systems "abzuklopfen". Solltet Ihr entsprechende Kenntnisse und auch die Zeit für sowas haben, wäre das interessant zu erfahren.

@ ygramul: Derzeit kann das Modem nur NMEA. Wir haben nur die Hex-Files für die Atmels. Daher sind andere Daten erstmal nicht machbar.
Update: OK - Kally schreibt grade es ginge doch! Deswegen auch erstmal testen. War der Meinung, das Modem ist so erstmal auf die GPS-Daten "geeicht".

...achso:
-Kosten für das Modem sollten unter 20 Eur sein.
-Würde mal so ca. 10 Tage auf Eure Bedarfsmeldungen warten.
-Danach reden wir nochmal über die Details.

Mario
 
G

Gonzo

Gast
#6
Hi

...ich hatte auch schon mal eine Trackingantenne mit dem gleichen Schaltung gebaut. Hier auf den hinteren Seiten ist sie etwas genauer beschrieben, evtl. findet ihr ja die ein oder andere Anregung für euer Projekt.

Mfg
 

Helimensch

Erfahrener Benutzer
#7
Gonzo - danke für die Info. Sehr interessant!
Würde sich echt anbieten, an der Stelle nochmal anzusetzen. Leider ist das Ganze dort wohl etwas eingeschlafen bzw. wird in abgeänderter Form an anderem Ort fortgesetzt.
Glaube erkannt zu haben, warum das vielleicht so ist. Für einen Eigenbau ist die Geschichte den meisten Leuten etwas zu komplex. C-Programmierung, Schaltung dimensionieren, etc. - das ist ganz schön happig. Zwei Wochen nicht damit beschäftigt und selbst der Entwickler tut sich wieder extrem schwer damit, den Quellcode nachzuvollziehen. So geht es mir zumindest, wenn ich an C und die diversen Ableger denke.
Ein fertiges, für jeden verfügbares System liegt auch in weiter Ferne.

Ist zwar schon ein Detail, an dieser Stelle würde ich aber gerne mal diese Module ins Gespräch bringen. Preislich mit Sicherheit etwas ganz anderes als so ein einzelner PIC oder Atmel. Trotzdem bin ich der Meinung, diese bieten sich gerade für so ein evtl. Open-Source-Projekt an.

Habe vor ca. zwei Jahren sehr positive Erfahrungen damit gemacht. Den Quelltext meiner Programme seinerzeit kann ich auch jetzt noch wunderbar nachvollziehen. Wahrscheinlich bin ich für C aber auch einfach zu doof. :)

Ein Trackerprojekt wird mit Sicherheit auch so wieder recht komplex werden. Evtl. liegt die "Einstiegsschwelle" bei Verwendung eines solchen Moduls aber deutlich niedriger. Vielleicht würden sich dann noch mehr Leute darauf einlassen.
 

kally

Neuer Benutzer
#8
Hallo Gonzo,

vielen Dank für den Tipp.

Hallo Helimensch,

ich habe mir mal die Wilke Module angesehen und auch die IDE meiner Meinung nach sind die Module sehr gut geeignet vor allem weil schon alle Mathematischen Module enthalten sind die wir benötigen.


Gruß

Kally
 

HeliTamer

Erfahrener Benutzer
#9
Hallo,

Echt Spitze was ihr da andenkt! ich mach mir auch schon eine Weile darüber Gedanken.

Allerdings möchte ich ein paar Dinge zu bedenken geben die das Tracking beeinflussen können:

a.) ist der Rückkanal über die Videostrecke wirklich sicher, wenn nicht ist der Flieger weg..
b.) viel neue GPS Module (die auch bei OSD's dabei sind) arbeiten mit 5Hz, dies wird vermutlich auch beim Vorbeiflug nötig sein, da sonst das Tracking nicht nachkommt, d.h das Modem ist zu langsam.

Um a.) & b) zu umgehen würde man zb. eine zweite Funkstrecke mit einer anderen Frequenz verwenden können. Radiometrix stellt solche Module her, Preis ca. 35Euro pro Stk. Da gibts nichts zu entwickeln.

Die Berechnung der Koordinaten sollte mit einem AVR ATMega locker gehen. Wer selber proggen will kann den WinAVR GCC Compiler verwenden, kostet nix und AVR Studio ist auch frei..
wer noch ein paar Infos braucht..
http://williams.best.vwh.net/avform.htm

ich selbst hab Module von http://alvidi.de/produkte.html schon verwendet, das ATmega128-16AU ist mit ca. 27Euro günstig.

Bleiben nur die Trackingmotoren. Wie schon mal gezeigt würde sich ein Segelwindenservo anbieten, dass könnte aber zu Problem führen wenn man ein paar mal um sich herum fliegt. Ein Schrittmotor währe auch nicht schlecht allerdings müsste man dazu auch etwas Hardware bauen. So gibts bei http://www.robotikhardware.de/ ein paar Schaltungen für die Schrittmotorsteuerung über RS232 sind aber nicht wirklich günstig. Wie man sieht bin ich da auch noch nicht wirklich weiter..

Auf jeden Fall bin ich bei dem Projekt dabei !

Gruss Patrick
 

kally

Neuer Benutzer
#10
Hallo Patrick,

freut mich das du dich zu dem Thema meldest und gleich bereitschaft signalisierst mitzumachen. Deinen Einwendungen ist nichts entgegenzusetzen. Wir schwanken in der Diskussion zwischen unnötig weil eine Patchantenne waagerecht hingelegt auch schon reicht bis zu einem Schrittmotor geführtem System das Überflüge und Drehungen von mehreren 360° beherrscht. Deshalb möchte ich gerne ein Modulares System entwerfen so das für jeden Gelbeutel was dabei ist. Das heißt also das ganze Modular aufzubauen.

Hier mal ein Systementwurf



Gruß

Kally
 

HeliTamer

Erfahrener Benutzer
#11
Hi Kally ,

genau richtig, in deinem Entwurf ist alles drin. Natürlich währe es vielleicht sinnvoll in Schritten vorzugehen. Wenn jemand mit einem Modem das GPS Signal empfängt kann man erst mal mit dem PC das ganze Umsetzen.. am einfachsten mit einer Segelwinde die ein paar Umdrehungen macht -> HS-785HB. Man braucht nur noch eine kleine Hardware die zb. per RS232 die/das Servo's ansteuert.

Ich hab mal deine Berechnung in Visual Basic kopiert und die Funktionen angepasst, leider kommt nicht das richtige raus.. hast du den Code schonmal in VB portiert?

Gruss Patrick
 

kally

Neuer Benutzer
#12
Hallo Patrick,

nein habe ich noch nicht portiert. Was man aber der Formel nicht ansieht ist das ich die NMEA Daten vorher in Dezimalgrad und RAD umrechne (LabView Rechnet in RAD) und das in der Formel wieder in Grad zurückgewandelt wird.
Find ich Klasse das du das in VB Portieren willst. Übrigends Software für einen Seriell zu PPM Wandler ATTINY 2313 basierend habe ich schon ich muß nur noch ein Platinchen dazu machen.

Gruß

Kally
 

Helimensch

Erfahrener Benutzer
#13
Hallo Ihr,

Modular gefällt mir sehr gut. Würde sich ja auch anbieten, ihr habt wohl schon einige Teile davon gelöst. Jeder hat da wahrscheinlich so seine eigenen Vorstellungen, was das System hinterher alles können soll. Da könnte sich jeder in einem spez. Teilbereich "austoben". Allerdings müsste man die Schnittstellen sauber definieren. Zusammenlaufen wird das alles ja dann am PC bzw. dem Mikrocontroller (eine eigenständige Lösung wäre so mein Favorit). Bevor wir uns zu sehr "verzetteln", sollten trotzdem auch mal die späteren Features festgelegt werden. Evtl. würde das in manchen Bereichen zunächst einen Kompromiss bedeuten, als Orientierungspunkt aber m. E. unbedingt nötig. Das gilt natürlich auch für die Festlegung der verwendeten Hardware. Eine "V2" betr. neuer Funktionen läßt sich dann immer noch entwickeln. Hauptsache die Basis würde mal stehen.

Mario
 

HeliTamer

Erfahrener Benutzer
#14
Hi Kally,

kannst mir mal nach deiner Berechnung den Output für folgende Koordinaten nennen:

b1 = 48; //48°0,0
b2 = 49;
l1 = 7; //7°0,0
l2 = 8;
h1 = 0;
h2 = 0;

mein Atmel rechnet für s = 5671.7202 aus.. da stimmt was nicht, für rho müssten ca. 45° rauskommen

Gruss Patrick
 

HeliTamer

Erfahrener Benutzer
#15
Sorry hatte übersehen dass die Koordinaten erst mal mit

b1 = (b1 / 180) * Pi

umgerechnet werden müssen :shy:

nun passt es, es geht sowohl in VB als auch auf dem Atmel...

lg Patrick
 

ygramul

Erfahrener Benutzer
#16
Helimensch hat gesagt.:
Stellt sich allerdings die Frage, wer von Euch noch Interesse daran hätte!

@ ygramul: Derzeit kann das Modem nur NMEA. Wir haben nur die Hex-Files für die Atmels. Daher sind andere Daten erstmal nicht machbar.
Update: OK - Kally schreibt grade es ginge doch! Deswegen auch erstmal testen. War der Meinung, das Modem ist so erstmal auf die GPS-Daten "geeicht".
Ich hätt Interesse!
 

HeliTamer

Erfahrener Benutzer
#18
Hallo Mario,

prima, dann kann man nun einfach nachrechnen was VB und Co. so macht :)

das nächste währe zu überlegen wie man die Antenne dreht, ich schwanke noch zwischen Segelwinde und Schrittmotor. Die Konstruktion mit zwei Holzscheiben die auf Rollen gelagert sind finde ich nicht schlecht.. gibts alles im Baumarkt.

Dann die Frage wie ich die GPS Daten vom Flieger runter bekomme, ich hab zwei Module im 869.5MHz FM Bereich gefunden die bis zu 3km funken und auch das TTL Signal des GPS übertragen könnten.. Die Lösung über den Audiokanal finde ich nicht so toll, zum Testen vielleicht aber dann müssten sich 9600Baut übertragen lassen...

Gruss Patrick
 

Helimensch

Erfahrener Benutzer
#19
Hab da noch einen kl. Bug gefunden - weis aber nicht, was genau in der Berechnung schief geht.
Schreibt doch irgendwo mal diese Formel in die Datei mit rein:
=SIN(RAD(B7-B2))*COS(RAD(A7))/SIN(RAD(A12/60/1,852))

Das ist ein Teil der Formel des Headingwinkels "rho". Immer wenn der Wert hier vor dem Komma eine "1" annimmt, schlägt die Berechnung fehl!
Nehmt z.B. mal folgende Position:
b1=49+34/60+14/3600
l1=11+11/60+6/3600
b2=49+34/60+14/3600
l2=11+10/60+56/3600

Könntet Ihr da mal einen Blick mit draufwerfen?
Mir momentan noch schleierhaft - wär aber übel, sollte das auch in VB und Co. schiefgehen. Sonst funktioniert die Tabelle aber und "spuckt" ganz sinnvolle Werte aus.

Update:
Bin da um eine Erkenntnis weiter! Tritt immer bei 90-Gradwinkeln auf. Was auch irgendwie logisch ist, kann "1" durch "0" in diesem Fall in der Formel dann einen unendlichen Wert ergeben. Für die vier Fälle 90, 180, 270 und 360 Grad muß die Berechnung also einen anderen Weg gehen. Das muß abgefangen werden, geht sonst auch bei unsererm Antennentracker schief!
(Muß aber zugeben, daß ich mich da gerade von einem Arbeitskollegen beraten ließ ... ;-))
Update2:
Noch schlimmer: Durch Rundungsfehler kann es auch noch passieren, daß für den Arkussinus ein Wert > 1 entsteht. Da das dafür nicht definiert ist, steigt die Berechnung an der Stelle aus. Mit ner Rundung auf 6 Stellen sollte das aber passen. Baue grade ne neue Tabelle zusammen. Sorry wenn ich nerve, aber ohne Feinarbeit an der Stelle wird das Ding nicht richtig laufen,

Die Praxis:
Also ich würde gerne zunächst einen 180 Grad-Schwenk mit normalen Servos realisieren. Denke dieser Bereich sollte für die meisten Anwendungen passen. Wenn das mal so läuft, ist der Weg zu ner 360 Grad-Lösung auch noch machbar (dachte dafür an eine mech. Übersetzung). Servos deswegen, weil diese ner echten Plug&Play-Variante am nächsten kommen. Außerdem kann man sich bei Servos halbwegs drauf verlassen, daß diese die eingestellte Postion auch wirklich einnehmen und halten. Könnte auch programmtechnisch etwas leichter sein - muß man sehen.

Auch würde ich gerne bei dem Tonkanal zur Übertragung bleiben. Die 4800bd mit 1 HZ GPS sollten m. E. ausreichen. Hätte da evtl. so eine Idee, wie man auch mit diesen Informationen schon eine flüssige Bewegung der Tracking-Antenne hinbekommen könnte.

Mario
 

Grandcaravan

Administrator
Mitarbeiter
#20
Morgen!
Wir hatten uns ja schon mal über Lokalisierungsmöglichkeiten eines verloren gegangenen Fliegers beschäftigt. Ich habe hier ein Programm, welches die GPS-Position mit Hilfe eine Bluetooth GPS Empfängers mit Google Earth anzeigen kann: http://sourceforge.net/projects/b7geps/ Die Position wird jede Sekunde aktualisiert.
Wäre ja ne tolle Sache, wenn man das Signal nach unten schickt und von dort per Bluetooth an den Laptop.
Natürlich muss man dabei wieder bedenken, dass man auf dem Feld UMTS oder GPRS o. ä. hat.
War halt nur gerade mal so eine Idee von mir.

Beste Grüße
Heiko
 
FPV1

Banggood

Oben Unten