OpenVideoModem - GPS Daten per Video/Audio senden

Status
Nicht offen für weitere Antworten.

ernieift

Erfahrener Benutzer
#42
Jein,
der MAX7456 braucht einen Init, um auf PAL/NTSC programmiert zu werden. Dafür muss man ihn wenigstens einmal selektieren. In meinem Source (muerzi hat ihn schon) ist nur die Initsequenz vom minimOSD drin und die paar Zeichen, die im Video zu sehen sind. Wenn man danach den MAX einfach machen läßt, mehr tut er bei mir auch nicht, könnte es funktionieren.
Die Idee ist super. Für meine Lösung habe ich auch lieber das minimOSD genommen, weil es viel billiger zu bekommen ist als z.B. ein SimpleOSD.
Im Prinzip müsste man nur auf der Empfängerseite die gleichen Zeilen selektieren und die Informationen zurückgewinnen. Wieviel in eine Zeile passt, weiß ich nicht. Eventuell setzt ihr den SPI-Takt runter und versucht die Daten einfach so zu lesen. Ich habe noch nicht nachgesehen, aber vielleicht kann man auch ohne SCK den SPI-Input benutzen. Ich glaube mal gelesen zu haben, dass man mit dem Schreiben auf das SPI-Register nicht nur die Ausgabe anstößt sondern auch ankommenden Daten an MISO gelesen werden. Das erspart irgendwelche Synchronisationen.
Im "dunklen" Bereich braucht es eventuell nicht mal einen Komperator. Für schwarz/weiss reicht vielleicht schon die normale Triggerschwelle.

VG
ernieift

PS: Ist schon spät. Sonst hätte ich noch einen Github aufgemacht, sorry.
 

Rangarid

Erfahrener Benutzer
#43
Ah stimmt du hast recht. Ist ne 600TVL. Frage ist dann nur warum bei VSYNC nichts kommt...

EDIT: Schickst du mir bitte auch mal den Code?
 
Zuletzt bearbeitet:

muerzi

Erfahrener Benutzer
#44
Ob pal oder ntsc müsste dem 7456 am boden ja egal sein. Das einzige was wir brauchen sind die h- und vsync pulse.

Notfalls liese sich das SS auf nen anderen pin des atmega löten
 

Rangarid

Erfahrener Benutzer
#45
Kannst du mal sagen was wo dran muss für den Sender und was für den Empfänger? Dann kann ich die MinimOSDs schonmal vorbereiten und vielleicht schonmal anfangen.
 

ernieift

Erfahrener Benutzer
#46
@muerzi: Ich glaube der MAX ist leider nicht so naiv wie der LM. Ich habe bei mir eh nur den HSYNC Interrupt eingeschaltet und VSYNC in der ISR getestet. Der ATMEGA unterstützt leider keine richtigen Prioritäten. Es geht also immer nur ein Interrrupt. Es sei den, Du gibst sie während der ISR wieder frei. Für Videotiming ist es die schlechtere Wahl, da es Laufzeitprobleme gibt.

Verdrahtung des MAX zum ATMEGA 328p: Brücke von ATMEGA Pin1 (INT1) an MAX Pin 18 (/HSYNC). Ansonsten noch DGND/AGND DVCC und DVDD/AVDD verbinden - fertig.
 

muerzi

Erfahrener Benutzer
#48
Mit welcher geschwindigkeit kommuniziert denn der atmega mit dem max7456?
Für telemetrie müsst ich den spi speed kurzzeitig auf 500khz stellen.

Das sind dann 2 Zeichen pro Zeile, 17 zeilen pro halbbild und 50 halbbilder pro sekunde, also 1700 Zeichen pro Sekunde was mehr als 10Hz bei vollen NMEA sätzen bedeuten würde. Ist denk ich mehr als ausreichend.
 

ernieift

Erfahrener Benutzer
#49
Der MAX braucht nur ein Init. Dann kann er in Ruhe gelassen werden. Wenn Du es also in die Setup() packst, dann reicht das. Da der MAX eh schon SCK hat, interessiert doch nur die maximale Baudrate. Nach der Initialisierung stelle ich SPI sowieso um und der MAX läuft alleine.
 

Rangarid

Erfahrener Benutzer
#50
Das sind dann 2 Zeichen pro Zeile, 17 zeilen pro halbbild und 50 halbbilder pro sekunde, also 1700 Zeichen pro Sekunde was mehr als 10Hz bei vollen NMEA sätzen bedeuten würde. Ist denk ich mehr als ausreichend.
Das ist in der Tat ziehmlich viel. Ich hoffe, du willst aber nicht tatsächlich NMEA übertragen ;)

Ich denke wir sollten ein Protokoll nutzen, was mindestens folgende Daten enthält:
- Lat/Long
- Höhe (Absolut oder Relativ??)
- Checksum

Außerdem braucht man natürlich Datensätze wie
- Home Punkt gesetzt (inkl. Home Punkt Koordinaten und Höhe falls absolute Höhe übertragen wird)
weitere fallen mir grad erstmal nichtmehr ein...


Mir wäre es lieber man überträgt diese Daten möglichst oft, als dass man alles vollmacht mit anderen Telemetriedaten. Man könnte es natürlich so machen, dass man weitere Daten "freischalten" kann, also z.B. Spannung, Geschwindigkeit usw, sehe das aber als absolut unwichtig an, da man diese Daten ja im OSD anzeigt.
 

muerzi

Erfahrener Benutzer
#51
Was is nicht doof finde wäre das LTM wie in der ghettostation/ghettosd verwendet wird

Code:
/* #################################################################################################################
 * LightTelemetry protocol (LTM)
 *
 * Ghettostation one way telemetry protocol for really low bitrates (1200/2400 bauds). 
 *			   
 * Protocol details: 3 different frames, little endian.
 *   G Frame (GPS position) (2hz @ 1200 bauds , 5hz >= 2400 bauds): 18BYTES
 *    0x24 0x54 0x47 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF  0xFF   0xC0   
 *     $     T    G  --------LAT-------- -------LON---------  SPD --------ALT-------- SAT/FIX  CRC
 *   A Frame (Attitude) (5hz @ 1200bauds , 10hz >= 2400bauds): 10BYTES
 *     0x24 0x54 0x41 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xC0   
 *      $     T   A   --PITCH-- --ROLL--- -HEADING-  CRC
 *   S Frame (Sensors) (2hz @ 1200bauds, 5hz >= 2400bauds): 11BYTES
 *     0x24 0x54 0x53 0xFF 0xFF  0xFF 0xFF    0xFF    0xFF      0xFF       0xC0     
 *      $     T   S   VBAT(mv)  Current(ma)   RSSI  AIRSPEED  ARM/FS/FMOD   CRC
 * ################################################################################################################# */
[\CODE]

Für die videotelemetry auch gern etwas weniger, mal testen.
Als Audiopart sich empfehlenswert

In der Endausbaustufe dann zb.: 
1Hz FrySky/Hott/Jeti Telemetrie
2Hz Audiotelenetrie
5Hz Videotelemetrie

Als Gps dann entweder ein Standalone gps ala ublox, oder das NazaGps
 
Zuletzt bearbeitet:

Rangarid

Erfahrener Benutzer
#52
Ich hab mal mit Flytron geschwätzt, die würden uns etwas unter die Arme greifen mit ein paar SimpleOSD. Ist allerdings auf Backorder, dauert also ca 2 Wochen, bis wieder welche da sind. Das hätte den Vorteil, dass wir alles Verkabeln können wie wir es brauchen und noch viele zusätzliche Anschlüsse hätten. Was meint ihr? Wäre natürlich nur sinnvoll, wenn das mit dem MinimOSD am Boden nicht geht.

Kannst du mal deine Verkabelung für dein Videomodem posten? Also das was du bisher gemacht hattest mit dem LM1881...
 
Zuletzt bearbeitet:

Rangarid

Erfahrener Benutzer
#55
Wie müsste man denn nun die jeweiligen Seiten mit dem MinimOSD verkabeln? VSYNC/HSYNC ist klar, Video an D6 meintest du am Boden. Kann man auch D7 nehmen? Da ist ja AIN1, oder ist der anders als AIN0?
 

muerzi

Erfahrener Benutzer
#56
Ain0 und ain1 sind die beiden seiten des komparators.
Soll und Ist

Ich zeichne morgen mal wie es verkabelt werden sollte.

Bekomme die tage minimosd nr.1
Nr 2 wird noch verhanndelt
 

muerzi

Erfahrener Benutzer
#57
Bodenstation wie folgt:

An PD6, bzw AIN0 gehört das videosignal, da wo schon eine leiterbahn weggeht (SS des MAX7456)

Als Referenz ein poti an +5V und gnd und den mittelpin an analog2.
1.: lässt sich mit poti ein bissl debuggen
2.: können wir den code von hier verwenden: http://nootropicdesign.com/projectlab/2011/03/20/decoding-closed-captioning/

Als Refenz für unser vorhaben kann man sich an videoexpermienterboard halten: http://nootropicdesign.com/ve/




Im Modell dann:

Wie ernie das gemacht hat


Codeteile können aus meinem openvideomodem projekt entnommen werden. https://code.google.com/p/openvideomodem/

Im Modell der insertercode, am boden der closedcaptions code

Muss natürlich noch ans minimosd angepasst werden
 
Zuletzt bearbeitet:

ernieift

Erfahrener Benutzer
#58
Die TVOUT-lib habe ich auf dem minimOSD auch schon zu laufen gehabt. Geht damit. VideoCaputering habe ich noch nicht probiert. Der Preis war auch der Grund, warum ich das minimOSD genommen habe.
 

Rangarid

Erfahrener Benutzer
#59
Ok, wenn wir das also so anschließen könnten wir die angepasste Lib von ernie nehmen und deinen Senden/Empfangen Code und dann sollte es direkt funktionieren?
 

muerzi

Erfahrener Benutzer
#60
wie wärs mit folgender idee.

für den max7456 2 eigene Zeichen ins Charset einfügen welche die telemetrie sichtbar im Videobild einfügen.

Zeichen 1 transparent bis auf die obersten 2 Zeilen von pixel weiß,
Zeichen 2 transparent bis auf die obersten 2 Zeilen von pixel schwarz.

Vorteil, man muss beim Minimosd im modell nix löten und hat noch resourcen für anderen code frei.
Wenn das Video dann aufgezeichnet wird, können die daten später noch am pc extrahiert werden
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten