ArduFrSky-Antennen-Tracker

Lonestar78

Erfahrener Benutzer
#1
*** Ständig UNDER CONSTRUCTION ***

UPDATE 12.02.2012: Firmware 1.1 mit Ansteuerung I2C Display, Ansteuerung Rangevideo Diversity, RSSI Tracking als Fallback oder Standard, falls kein GPS Signal anliegt

UPDATE 29.01.2012: Platinenlayout, Hardwareerweiterungen, Bilder, Etwas aufgeräumt
UPDATE 30.12.2011: Neue Firmwareversionen, Bildchen getauscht

Hallo Zusammen,

hier im ersten Post entsteht nach und nach die Dokumentation zu einem Antennentracking-System, welches zur Datenübertragung aus dem Flieger den Rückkanal des FrSky Two Way Telemetry Systems nutzt. Als Mikrokontroller werden Arduino pro minis eingesetzt.

Der Name für diesen Tracker ergibt sich damit automatisch:
-> ArduFrSky-Tracker (kurz AFS-Tracker) :D

Ich löse damit meine Bruchstücke aus diesem Thread heraus und trage hier alles zusammen...

Grüße
Christian

Das Ganze tut mit emulierten GPS-Daten (NMEAGEN108) und Hardware-GPS. Auch der RSSI basierte Fallback tut jetzt. Der Algorithmus unterscheidet sich allerdings von Heckmic.



Konzept:
Airborne: Im Flieger nimmt das Arduino per serieller Schnittstelle (Hardware) die NMEA-Strings vom GPS entgegen und extrahiert über TinyGPS Höhe, Breite und Länge der aktuellen Position. Diese Daten werden über die zweite serielle Schnittstelle (Software, Library: NewSoftSerial) an den FrSky-Empfänger D8R-II übergeben.

Groundstation: Vom FrSky-Sender, der in der Groundstation verbaut ist, nimmt das zweite Arduino die oben genannten Daten entgegen, macht etwas Mathe und läßt die Antenne dahin zeigen, wohin sie soll...ganz einfach...;)
Wenn kein GPS Signal verfügbar ist (warum auch immer), schaltet der Tracker auf RSSI-basiertes Tracking zurück.


Hardware Groundstation:
Bauteile für AFS-Tracker Platine und Steuerung:
- Arduino Pro Mini 16Mhz 5V
- Level-Converter (http://www.sparkfun.com/products/8745)
- Magnetometer (http://www.sparkfun.com/products/10530)
- Max232 Serial Level Shifter
- 78L33 Spannungswandler 5->3,3V
- OpAmp LM358 für zweimal RSSI input
- I2C Display von Ebay :)
- Taster,Poti,LEDs,Kondensatoren,Widerstände...

Restliche Hardware für den Tracker:
- FrSky Two Way Hack Sendemodul
- Rangevideo Diversity
- Vierfach Video-Verstärker
- Spannungsversorgung gefiltert (2x5V, 1x7.5V, 1x9V)
- BEC 7,5A
- 1x RC305 Videoempfänger
- 1x RX5808 basierter Eigenbau-Videoempfänger direkt mit Helix von rabe2000 verlötet
- Pan/Tilt von Servocity




Neue Bilder von meiner ersten selbst geätzten Platine :)
Das ist der jetzt aktuelle Nachfolger zum obigen Prototypen.



Layouts zum Ausdrucken, die unterscheiden sich leicht von der von mir Geätzten. Stiftreihen sind etwas anders angeordnet und zwei kleine Fehler sind ausgemerzt.




Frontlayout wieder geändert. So solls jetzt bleiben...:





Ganz wichtig: :D





Hardware Airborne:
In den FrSky D8R-II läßt sich das Arduino pro mini board direkt ins Gehäuse verbauen, da ist genug Platz.
Anbei drei Bilder, auf dem 2. kann man das eingebaute Arduino erkennen. Auf dem Dritten ist das neue GPS zu sehen, meingott war das eine Frickelei mit dem Lötkolben. Aber schön klein :)








Bedienung:
Es gibt ne gote,gelbe und grüne LED. Dazu nen roten und gelben Taster, sowie ein Poti. Neu: Jetzt gibts auch noch ein I2C Display für Statusmeldungen.

Gimmick: Wird beim Einschalten der rote Taster gedrückt gehalten, wechselt der Tracker in einen seriellen Passthrough-Mode, damit kann auf den FrSky Sender von aussen zugegriffen werden.

Nach dem normalen Einschalten leuchtet erstmal nur die grüne LED dauerhaft, sobald gültige GPS-Pakete durchkommen blinkt sie.
Norden wird automatisch dauerhaft mit 10Hz über das Magnetometer gefiltert bestimmt (filtern mit gewichtetem Mittelwert, damit keine Sprünge auftreten, allerdings nicht beim aktiven Tracking. Das macht Probleme wegen des sich ändernden Magnetfelds des laufenden Pan-Servos).
Sollte es hier Abweichungen vom "echten" Norden geben, läßt sich dass immer per Poti nachstellen.

Wenn die rote Taste kurz gedrückt wird, wird aus 10 GPS-Paketen die home-Position des Trackers bestimmt. Hierzu muss der Flieger natürlich neben dem Tracker liegen. Dabei blinkt die rote LED und ist nach home-Findung dauerhaft rot. Der Vorgang ist wiederholbar.

Über den gelben Taster kann man dann drei Zustände des Trackers druchschalten:
(1) Gelbe Led aus: Antenne zeigt in die gewünschte Transportstellung.
(2) Gelbe Led an:
-(Normales Anschalten) Antenne zeigt nach Norden (das ist quasi ein Test).
-(Beim Anschalten gelben Taster gedrückt gehalten) Antenne fährt diverse Positionen im 90° Winkel an, um zu überprüfen, ob die Servos richtig eingestellt sind.
(3) Gelbe Led blinkt: Tracking ist aktiv, Antenne zeigt auf Flieger. Dieser Modus ist nur verfügbar, wenn Home bereits gesetzt ist.
Neu: Ohne Home oder GPS wird automatisch ein RSSI-basiertes Tracking gewählt (motiviert durch Heckmic, aber mit komplett from scratch geschriebenem Algorithmus)

Reset des Trackers erfolgt über dern Ein/Aus-Schalter der Stromversorgung.

Debug-Informationen werden über die nach aussen geführte serielle Schnittstelle ausgegeben. Über die kann man auch bequem, ohne den Tracker zu öffnen, neue Firmwares einspielen....


Software Groundstation/Airborne:
Code als Zip-Datei. Steht unter GPL V3.
NEU (AllinOne, inklusive der Libraries):
Anhang anzeigen FrSkyTracker_1.2a_Arduino022.zip

Videobeweis ;)
AFS-Tracker Demo
http://vimeo.com/34261705
Google Earth Input for AFS-Tracker Demo
http://vimeo.com/34360831



Im Video wird die Airborne-HW vom Laptop mit GPS-Daten für einen Flug rund um die SAP-Arena in Mannheim versorgt. Der Tracker steht dabei gedacht auf dem Dach der Arena.
 
Zuletzt bearbeitet:

nachbrenner

Erfahrener Pfuscher
#2
Hi Lonestar,

sehr cooles Projekt und vor allem noch überschaubar was die Hardware angeht! Könnte praktisch sein für besonders kleine Flieger wo kein schweres OSD mit Tracking drauf soll.

Wie schwer ist die Airborne-Hardware? Kommt man da mit 10g hin? Arduino Mini wären ca. 2g, GPS so 6g - die Frage ist wie viel da noch dazu kommt ...

Wie hast du deinen Prototypen für die Ground-Station gebaut: Sind das einfach verlötete Lochraster-Platinen? Oder hast du Wire-Wrap genutzt? Was sind die anderen Komponente im zweiten Bild? Empfänger und 2 SMA-Buchsen erkenne ich. Was ist der Rest: Diversity (rot) und Videosplitter (mit dem vielen Heißkleber)?

[Edit]
Sehe gerade: Das Telefly-OSD hat auch "nur" 8G Gewicht. Gewichtsersparnis ggü. MyFlyDream-Tracker wäre also nicht sooo hoch. Trotzdem super interessant die Lösung :)
 

DerCamperHB

Erfahrener Benutzer
#4
Ich habe vor , in meiner Funke ein BT Modul zu verbauen

Für Android gibt es ein Anzeigetool das über BT Arbeitet
Genauso kann dann in der Trackerbox ein BT MOdul verbaut werden, bzw der Arduino mit BT eingesetzt werden, so kann das Sendemodul weiter in der Funke bleiben, die Verbindung ist dann sehr Variabel
Das Modul muss dann nur als Mastermodul Programmiert werden, das verbindet sich dann Automatisch mit dem Slavemodul in der Funke
 

Lonestar78

Erfahrener Benutzer
#5
Hallo Zusammen,

@nachbrenner: Ich wiegs mal aus und mach Photos. Airborne-HW ist gerade der FrSky-Empfänger mit eingebautem Arduino. GPS kommt eigentlich vom Dragon-OSD.
Hab gerade noch ein GPS bestellt. Das kommt morgen oder so. Wenn ich alles verlötet hab, stell ich es hier rein. Hier dann die minimal-Tracking-Lösung ohne OSD für kleinere Flieger.

@D4RK1: Jupp, die Funke wird über LS-Kabel an die GS angebunden. Nachdem da ehh die Brille kabelgebunden dran ist, stört das nicht (mich zumindest).

@Camper: Hmm, da hät ich auch selbst drauf kommen können mit der BT-Geschichte. Schau ich mir mal an.
 

Lonestar78

Erfahrener Benutzer
#6
@nachbrenner: Vergessen, ja sind Lochrasterplatinen mit Kabelsalat. Ansonsten hast Du recht. Videoverstärker mit 4Ports, Rangevideo-Diversity.
 

DerCamperHB

Erfahrener Benutzer
#8
Macht guten Eindruck
Warum sehen die Bewegung von der Mechanik eigentlich immer so abgehackt aus, liegt das an der Übersetzung vom Servo?
Ist mir scho bei mehreren aufgefallen, dachte das liegt vor allen an der Auswertung

Mit was hast du die GPS Koordinaten Vorgegeben, ist das Google Earth?
 

Lonestar78

Erfahrener Benutzer
#9
Abgehackte Bewegung: es kommen halt alle 100 bis 200 ms gültige GPS Daten rein. Ich spiel schon mit dem Gedanken, einen Filter (Oder vieleicht eine Art Software PID) einzubauen, damit das flüssiger läuft.
[Edit:] So ein Filter hat halt den Haken, dass ich seo einen zeitlichen Lag bekomme. Irgendwie bräuchte man einen guten Prädiktor-Algorithmus, für den Flieger ein kleines Physikmodell und ne Trajektorienvorhersage (ob das der Arduino noch macht?)...

Software: Der GPS-Emulator aus dem ersten Post (http://homepage2.nifty.com/k8/gps/#004) sendet über com0com und hub4com an eine virtuelle und eine Hardware-Schnittstelle. Die virtuelle wird von GooPs abgezapft, welches wiederum Google Earth ansteuert.
 
#10
Hi,
mal ganz doof gefragt

wofür brauchst du den level shifter? wenn du den max232 nutzt hast du ja nen rs232 port da zur verfügung. soll da direkt der PC dran?

ich dachte das frsky hat nen 3,3V uart.

nebenbei, mit dem atmega könntest du komplett auf 3,3V arbeiten. dann könntest du dir komplett den level shifter für den i2c sparen und auch direkt ans frski(falls du auf 3,3V uart runterwillst).
bräuchtest nur 2 transistoren für den uart vom gps (da diese leitungen ja nicht bidirektional sind ist das ja was einfacher) und im programm nur einstellen das der uart vom atmega die daten invertiert rausgibt.

ich war schon am überlegen mir ne frsky mit telemetry zu kaufen und hab deshalb mir schon was überlegt so einfach wie möglich das aufzubauen ;)
 

Lonestar78

Erfahrener Benutzer
#11
Also der FrSky Sender erwartet RS232 level (-+16V soweit ich weiss) an der seriellen Schnittstelle, deshalb der MAX232. TTL tut nur auf der Reciever-Seite und da auch nur invertiert.

Der Level-Shifter kommt zwischen Magnetometer und Arduino. Im Prinzip hast Du recht und man könnte auch ein 3,3VArduino nehmen. Der hat aber dann nur 8MHz statt 16 (16MHz mit 3,3V geht, ist aber ausserhalb der speks)
 

Lonestar78

Erfahrener Benutzer
#12
Track Smoothing: http://en.wikipedia.org/wiki/Radar_tracker#Track_smoothing
Vieleicht wär das was für den Code....
 
G

Gelöschtes Mitglied 1973

Gast
#13
also ich finde das rucken total wurscht?! das is doch blos schönheitskorrektur.
 

Lonestar78

Erfahrener Benutzer
#14
Update im ersten Post.
- Neue Firmwareversionen (Kleine Bugs rausgemacht, Filter für PAN eingebaut, GTOP GPS PA6C Support in Airborne Firmware gebastelt).
- Bildchen getauscht
 
#16
Sehe ich das richtig, dass wenn Du zu weit wegfliegst, also die Sendeleistung des Empfängers nicht mehr ausreicht, das System nicht mehr funktioniert, auch wenn Du nen 1a Video-Downlink hättest?

Wie weit kann der Empfänger denn senden? Ich habe gelesen dass man die RC-Funktionen auch noch ohne Telemetrie steuern kann, aber der Rückweg fehlt dann ja. Mehr wie 800-1000m sollten da nicht drin sein, oder?
 

Lonestar78

Erfahrener Benutzer
#17
Im Prinzip korrekt. Nachdem mein Spotter bei 800 bis 1000m aber ehh nix mehr sieht ;-)

Spass beiseite: ich weiss nicht, wie weit der telemetrie-link geht, dass muss ich testen. Ich glaube aber, dass mehr als 800m drin sind. Das FrSky-System ist da zeimlich gut laut diverser Leute.
 
#18
Das schon, nutze es ja selber, und es gibt ja auch Patchantennen um die Reichweite zu erhöhen, nur eben auf der Empfängerseite nicht. Und wenn ich bedenke dass ich mit dem "popeligen" 10mW 2,4GHz Videosender ja schon 900 Meter nur mit ner BiQuad Antenne geschafft habe, wäre ein komplettumbau auf 5,8GHz nur Sinnvoll wenn man auch so weit kommt ;)

Da jetzt der AAT aber da ist *sabber*, teste ich den erstmal, aber für so kleine Flieggeräte wäre Dein System auf jeden Fall eine Alternative, gefällt mir (wo ist der Like Button *g*)
 

Lonestar78

Erfahrener Benutzer
#19
Sagt mal, was haltet Ihr davon, den AFS-Tracker um Video-Diversity basierend auf RSSI aufzubohren und dann auch noch heckmics RSSI-Tracker-Code als Fallback-Lösung einzubauen?
Dann vieleicht noch Video-Signalverstärkung für 3*Out und wir hätten alles zusammen auf einer Platine.
Zusätzlich hätte ich noch einen Pin frei, dann könnten wir alternativ zum FrSky-GPS-Empfang noch ein Audiomodem integrieren.

Gibts an sowas Interesse?
 

Phin

Erfahrener Benutzer
#20
Hi Lonestar, sieht nett aus. Wie hast du die NMEA-Daten aus Google Earth entlockt? Gibt es da eine Schnittstelle die mir entgangen ist? Oder dient GE nur
der Veranschaulichung?
 
RCLogger

FPV1

Banggood

Banggood

Oben