Low Cost HD-Video Übertragung + Telemetrie

Status
Nicht offen für weitere Antworten.
Da ich nun gerade endlich mal etwas entspanntere Zeiten habe, meld ich mich auch mal wieder ;)

Erstmal, super, dass sich in der Zwischenzeit schon wieder so viel getan hat. Dank an Sledge und Lonestar!

Ansonsten hatte ich mir vorgenommen, eine iOS App zu basteln, damit hier alle Lager bedient werden. Leider stellte sich dabei heraus, dass bislang ARM64 von GStreamer nicht unterstützt wird, und ein Port sehr aufwendig ist, sodass ich nicht weiß, wann es da weitergeht.
Deshalb nun meine Frage an euch: Was gibt es noch zu tuen?
Ich hatte zwischenzeitlich auch darüber nachgedacht, ob es Sinn macht, Textoverlay auf dem Raspberry zu erzeugen. Es gibt wohl Möglichkeiten das mit dem UV4L Projekt hinzubekommen. Allerdings ist das nur für Raspbian vorgesehen, und ich habe es bis jetzt noch nicht auf Arch zum Laufen bekommen. Der Vorteil wäre halt, dass wir nicht 100 verschiedene Implementierungen in den Groundstations bräuchten.
Was haltet ihr davon?
 
Hi Senseless,
habe keine Ahnung von iOS, aber brauchst Du ARM64?
Fertige Packages für iOS gibts ja ansonsten: http://gstreamer.freedesktop.org/data/pkg/ios/

Grüße
Hi Lonestar,

ich bin auch so ein Ochse. Manchmal sieht man den Wald vor lauter Bäumen nicht ^^
Ich hab völlig verplant, dass ARMv8/ARM64 auch rückwärtskompatibel ist und ich einfach die App
als 32bit Version auch auf dem A7 laufen lassen kann.
DANKE für die Befreiung aus meinem geistigen Käfig!

Dann schau ich mal was sich so machen lässt ;)

Grüße senseless
 

Sledge

lonesome Cowboy
So langsam wird hier doch ein Schuh draus, demnächst können auch die sonst so geknechteten Apfel Jünger in den Genuss vom digitalen fpv kommen :) Nur aus Interesse, braucht das App dann ein Jailbreak oder willst Du den offiziellen Weg über den Apple Store gehen?
 

Sledge

lonesome Cowboy
So ich hab mal den Quellcode vom Webserver aufgeräumt und alles noch mal durchgetestet. Fürs erste lade ich nur den php Quellcode hoch. Das fertige Image dauert noch ein paar Tage, da ich das ganze noch ein wenig unschön gelöst habe. Im Moment laufen sowohl der Webserver, Streams und sämtliche Dienste über den Root Account. Im Fertigen Image soll das alles über den Benutzer Pi laufen. Obwohl der Airpi und die Groundsoftware "zunächst" nicht im Internet hängen muss es ja nicht sein derart schnöde Sicherheitslücken offen zu lassen. Darüber hinaus will ich nginx ebenfalls selbst kompilieren damit die Software auf dem neuesten Stand ist.

Um den Webserver in Betrieb zu nehmen empfehle ich nginx und php-fpm da es deutlich Ressourcen schonender ist als die gute alte Apache / PHP Kombo. Damit PHP die Linux Kommandos absetzen darf habe ich den user www-data zur sudoers Liste hinzugefügt. Einfach folgender Eintrag in die /etc/sudoers "www-data ALL=(ALL) NOPASSWD: ALL" Wie gesagt, nicht ganz fein aber läuft :)

Auf Datenbanken habe ich komplett verzichtet. Sämtliche Einstellungen laufen über xml Dateien und fressen somit kein Brot.

Die Hauptseite zeigt folgenden Bildschirm:

airpi control.PNG

Die Funktion der Buttons sollte selbsterklärend sein. Die Buttons UDP start und RTSP start zeigen farblich an ob ein Stream läuft oder ob die Pipe in die Grütze gegangen ist.

Der Setup Screen zeigt folgenden Inhalt:


airpi control setup screen.PNG

Der Obere Teil widmet sich dem RTSP Server. Unter path muss der Pfad zum kompilierten RTSP Server Example eingetragen werden. In Lonestars Image heist der Ordner glaube ich airpi.
Direkt darunter können 5 verschiedene rtsp Pipes gespeichert werden und die aktuell zu benutzende Pipe ausgewählt werden.

Gleiches Gilt für den UDP Part, den ich wohl noch umbenenne in Direkt Stream da ja auch TCP Streams oder Multicast Streams realisiert werden können.

Nach Auswahl einer Pipe mit dem Radio Button zeigen die Buttons udp start und rtsp start auf die Pipe und starten den Stream.

Hier ist der Quellcode: Anhang anzeigen airpi_control_V0.1.tgz.zip
Entfernt das .zip im Dateinamen (Forumseinschränkung) und entpackt die Dateien im Zielordner (www Ordner des nginx) mit tar xvzf airpi_control_V0.1.tgz

Viel Spaß beim Testen!
 
So, gerade mal auf die Schnelle einen Test gemacht. Auf Anhieb hat bis jetzt nur TCP funktioniert, und das schon mit rund 135-145 ms Latenz. Ist denke ich ganz vertretbar für einen ersten Test ;)

Vieleicht können wir Features und Look and feel ähnlich halten, wenn Du magst.
Naja, Look wird sicherlich nicht ganz so einfach, weil ich schon die mitgelieferten Elemente nutzen wollte und keine Buttons selber zusammenschustern ^^ aber ich denke das war auch nicht gemeint. Können da aber gerne schauen, dass wie featuremäßig gleichauf sind ;)

So langsam wird hier doch ein Schuh draus, demnächst können auch die sonst so geknechteten Apfel Jünger in den Genuss vom digitalen fpv kommen :) Nur aus Interesse, braucht das App dann ein Jailbreak oder willst Du den offiziellen Weg über den Apple Store gehen?
Jaja, immer diese Vorurteile. Ich fühle mich jedenfalls nicht geknechtet :p Aber bevor hier der übliche Streit ausbricht, lieber mal schnell zurück zum Thema :p
Ich habe noch keine Ahnung davon, was ich alles an Voraussetzungen erfüllen muss, damit ich damit in den Store durchkomme. Muss ich mich zu gegebenem Zeitpunkt mal schlau machen (also in ferner Zukunft :p). Und ich müsste halt einen Developer Account bezahlen. Da muss ich mir noch überlegen, ob es mir das wert ist...


Muss jetzt aber erstmal weg. Ich hoffe morgen komme ich schonmal etwas weiter. Und dann ab Mitte nächster Woche wieder (Urlaub)
 

Lonestar78

Erfahrener Benutzer
Ja, ich wollte Dir schon das Logo schicken....Glaube aber, dass ein IPhone kaputt geht, wenn ein Androide mit Videobrille angezeigt werden soll.

Latenz ist der Hammer! Auf nem 5S?
Da muss ich jetzt echt mal schuen, was auf dem Android da vieleicht rauszuholen ist.....


Ich spiel auch mit dem Gedanken, die Android App in den Play Store zu packen. Vieleicht gegen einen kleinen Obulus? Was denkt Ihr?
 
Zuletzt bearbeitet:
Hey Leute,

verfolge euren Thread und bin gespannt obs bald ohne viel KnowHow auch klappt ;). Raspberry und Cam sind schon angeschafft, allerdings 2mal. Wäre es möglich/ ist es geplant, mit 2 Cams zu streamen und dann 3D FPV zu fliegen?
 
@Sledge: das mit dem Webserver schaut auch schonmal super aus. Ich hoffe ich kann es bald mal bei mir ausprobieren. Und wenn du Unterstützung brauchst, um nginx zu kompilieren, sag Bescheid. Ich habs erst letztens für Baikal (Cal-/CardDAV) kompiliert, weil mir ein Modul beim Binärpaket gefehlt hatte. Allerdings war das unter Arch. Ich weiß ja nicht worauf du unterwegs bist. Aber an sich ists ganz hübsch unter Arch, weil man mit makepkg direkt ein Paket für den Paketverwalter pacman erzeugt, sodass dieser sich auch um Dependencies und so kümmern kann, halt die üblichen Vorteile von Paketmanagern. Und neuer sind die Binärpakete unter Arch auch durchweg. Aber genug der Werbung jetzt ;)

Ja, ich wollte Dir schon das Logo schicken....Glaube aber, dass ein IPhone kaputt geht, wenn ein Androide mit Videobrille angezeigt werden soll.

Latenz ist der Hammer! Auf nem 5S?
Da muss ich jetzt echt mal schuen, was auf dem Android da vieleicht rauszuholen ist.....


Ich spiel auch mit dem Gedanken, die Android App in den Play Store zu packen. Vieleicht gegen einen kleinen Obulus? Was denkt Ihr?
Ne, stimmt, mit dem Logo käme man sicherlich auch nicht durch den App Review seitens Apples :D

Wie viel Latenz gibt es denn im Schnitt mit deiner App?
Lief auf einem iPad mini Retina.

Und zu dem letzten Punkt müsste wohl der Rest Rückmeldung geben. Ich sage mal so, wenn es gute Resonanz gibt, und die Aussicht darauf besteht, wenigstens einen Teil der Kosten wieder reinzuholen, würde ich mir wohl die Mühe machen, und versuchen, es im Store verfügbar zu machen.

Hey Leute,

verfolge euren Thread und bin gespannt obs bald ohne viel KnowHow auch klappt ;). Raspberry und Cam sind schon angeschafft, allerdings 2mal. Wäre es möglich/ ist es geplant, mit 2 Cams zu streamen und dann 3D FPV zu fliegen?
Selbst KnowHow aneignen und mit dazu beitragen, ist auch gerne gesehen ;)
Aber ansonsten steht doch alles hier, was man zum Starten braucht. Und wenn noch was unklar ist, wird auch sicher jemand helfen können.

Was genau ist zweimal gekauft? Nur die Cams oder auch die RPis? Denn mit 2 RPis und einem Switch sollte es auch jetzt schon möglich sein, zwei Streams hinzubekommen. Das dann in ein Bild zusammenzuführen sollte dann nicht mehr so die große Arbeit sein. Nur extra einen Switch mitschleppen ist ja eigentlich blödsinnig. Daher wäre das Fernziel wohl, das RPi Compute Modul zu nutzen, wo auch zwei Kameras an einen angeschlossen werden können. Problem ist nur, dass es nicht so einfach ist, eine Platine dafür zu entwerfen und bestücken. Zudem weiß ich nicht, wie viel Durchsatz der Videocore so schafft, also ob auch 2 Streams gleichzeitig encodiert werden könnten. Ich befürchte 2x 1080p30 wird genauso wenig drin sein wie 2x 720p45. Ist aber rein spekulativ...
 
Ich habe 2 Raspis und 2 PiCams. Den Videostream habe ich bisher immerhin über VLC empfangen, der start des gstreamers ist mir noch nicht so richtig geglückt.

Fürs Mergen der 2 Videoquellen habe ich was interessantes gefunden:
http://www.analog.com/library/analogdialogue/archives/47-12/stereo_video.html Gibts jetzt nicht schon ein Shield für den Raspi mit FPGA?
Es müsste aber bestimmt auch einfacher gehen, also direkt am Android Smartphone, wobei ich mir vorstellen könnte, dass dann die Latenz sich eher erhöht.
 

funfex

Erfahrener Benutzer
Warum willst Du etwas mergen, um es dann wieder zu trennen ? Ich glaub so eine Cinemizer hat einfach zwei Eingänge, für links und rechts ..... Oder um welche Brille soll es gehen ?
 
Schön mit anzusehen, wie weit ihr mittlerweile seid. Hatte wenig Zeit, um es immer zu verfolgen.

Dann haben meine Pis ja doch noch ne Aufgabe. ;)

Erstmal CAMs organsisieren....
 

Hörbi1

Neuer Benutzer
Zum Computermodule:
Ich hab mir gerade die Doku geladen, aus der ist ersichtlich,
dass eine Kamera nur mit einer anstatt 2 Datenleitungen angebunden ist, ist also fraglich ob beide Cams die volle Datenrate haben:
Schaltplan des IO Boards (Seite 3 Cam 0)
Zum Vergleich der normale Pi ist voll belegt.

Zum Eigenen IO Board
Unmöglich ist es nicht, da das ganze eigentlich gut dokumentiert ist, und wenn man die GPIOs weglässt ,spart mann sich auch einiges an Zeit:
Programme zum Platinenerstellen gibt es im Internet:
(Z.b. Eagle(ist in der Kostenlosen Version ist auf 100 x 80 mm Platinenfläche und auf 2 Layer beschränkt,eine Nicht-Kommerziell Lizenz kostet 166€))

Und zum Ätzen gibt es genügend Anbieter im Internet (teils auch mit Bestückung).
Das einzige Problem ist, dass sich soetwas nur lohnt, wenn man gleich >5 Platinen auf einmal macht weil sonst ist der Stückpreis
(alleine fürs Ätzen) >55€.
 

Lonestar78

Erfahrener Benutzer
Willkommen Hörbi.
Naja, wenn man 2 Bilder Side-By-Side für 3d Haben möchte, halbiert sich ja die Auflösung und damit reicht ja vieleicht auch eine statt zwei Leitungen pro Cam. Das war jetzt Dreisatz-Logik, ich weiss....;-)
 
Zum Computermodule:
Ich hab mir gerade die Doku geladen, aus der ist ersichtlich,
dass eine Kamera nur mit einer anstatt 2 Datenleitungen angebunden ist, ist also fraglich ob beide Cams die volle Datenrate haben:
Schaltplan des IO Boards (Seite 3 Cam 0)
Zum Vergleich der normale Pi ist voll belegt.

Zum Eigenen IO Board
Unmöglich ist es nicht, da das ganze eigentlich gut dokumentiert ist, und wenn man die GPIOs weglässt ,spart mann sich auch einiges an Zeit:
Programme zum Platinenerstellen gibt es im Internet:
(Z.b. Eagle(ist in der Kostenlosen Version ist auf 100 x 80 mm Platinenfläche und auf 2 Layer beschränkt,eine Nicht-Kommerziell Lizenz kostet 166€))

Und zum Ätzen gibt es genügend Anbieter im Internet (teils auch mit Bestückung).
Das einzige Problem ist, dass sich soetwas nur lohnt, wenn man gleich >5 Platinen auf einmal macht weil sonst ist der Stückpreis
(alleine fürs Ätzen) >55€.
Zu den Datenleitungen: irgendwo meine ich gelesen zu haben, dass sowieso nur 2 vom aktuellen Treiber genutzt würden. Ich bin mir aber nicht sicher und kann es auch gerade nicht mehr finden.


Mit der eigenen Platine: Klar, grundsätzlich ist es möglich, und eigentlich ist das Compute Module auch ideal, weil man sich dann den ganzen kritischen Kram um den Broadcom sparen kann. Ob ich mir das alleine zutrauen würde, weiß ich noch nicht, hab ich mir bisher zu wenig die Anforderungen angeschaut. Müssen die CSI-Leitungen Length- und Impedance-Matched sein? Ich gehe von aus, wenn man auf den RPi schaut, und die Mäanderförmigen Leitungen zum CSI sieht.. Wie wenig Ripple darf auf der Versorgung maximal drauf sein? Nimmt man deswegen lieber einen Linearregler und pfeift auf Effizienz oder versucht man sich an einem Schaltregler-Design? Das sind alles so fragen, die nicht soo trivial sind.
Ansonsten habe ich bezüglich Platinen herstellen keine Bedenken. Ich habe hier schon einige Platinen machen lassen, das Ergebnis war super und der Preis spottbillig.
Wo ich aber ein Problem sehe ist in der Bestückung. Der DIMM-Sockel ist sicherlich per Hand nur schwer verlötbar. Und mit Bestückung bei unseren Freunden in China habe ich leider keine Erfahrung, aber soll ja auch irgendwie gehen.


Willkommen Hörbi.
Naja, wenn man 2 Bilder Side-By-Side für 3d Haben möchte, halbiert sich ja die Auflösung und damit reicht ja vieleicht auch eine statt zwei Leitungen pro Cam. Das war jetzt Dreisatz-Logik, ich weiss....;-)
Ist aber wohl richtig so, steht auch hier irgendwo drin.

Ansonsten ist für die 3D-Fraktion sicherlich folgendes auch noch ganz interessant.
 

nique

Legal-LongRanger
Wow, hab meine Konstruktion mal auf ein RC-Auto gepackt. Das ist wirklich ein tolles Bild. Und immerhin kann ich eine erste (nicht erstaunliche) Aussage machen. Die CL-Antenne ist besser als die Stabantenne. Ich bin ja mit dem 5.8er-Modul unterwegs und von daher sind die Reichweiten nicht soo interessant. Ich war schon mal erstaunt, dass ich fast ums Haus gekommen bin (Stahlbeton). Dabei war die Sendeantenne rund 2m höher als das Auto. Das Signal musste nicht einfach "nur" durch die Wand, sondern auch in einem sehr flachen Winkel durch den Boden (ebenfalls Stahlbeton).
Das Wetter ist nicht so toll um mit offenen Platinen rumzufahren, darum wird das mit einem LOS-Test noch nix.
Ich freu mich aber, wie es hier zu und her geht - einfach TOLL
 

nique

Legal-LongRanger
Ach so, in Sachen Platine würde ich vermutlich schon alleine 6-10 Stück nehmen..... Also macht euch da wegen dem Preis keinen Bock.
Noch ein paar Anforderungen:
- Das Kabel zur Cam darf kein so steifes Flachband sein. Eher wie die Verlängerung bei der Mobius mit Einzellizen. Und es muss die in verschiedenen Längen geben, damit man mit dem Sensor alleine ein Gimbal bestücken kann.
- Die Platine sollte gut zu den UBI-Prints passen, damit man damit eine möglichst kompakte Einheit herstellen kann (z.B. Lochraster für die Befestigung, Schnittstellen)
 

Hörbi1

Neuer Benutzer
Müssen die CSI-Leitungen Length- und Impedance-Matched sein? Ich gehe von aus, wenn man auf den RPi schaut, und die Mäanderförmigen Leitungen zum CSI sieht..
Das weis ich erlich gesagt auch nicht kann aber gut sein


Wie wenig Ripple darf auf der Versorgung maximal drauf sein? Nimmt man deswegen lieber einen Linearregler und pfeift auf Effizienz oder versucht man sich an einem Schaltregler-Design?
Hier kann man etwas zur Spannung finden


Wichtig ist dieser Absatz
Power sequencing

Supplies must be synchronised to come up at exactly the same time. Alternatively, they should be staggered so that the highest voltage comes up first, then the remaining voltages in descending order. This is to avoid forward biasing internal (on-chip) diodes between supplies, and causing latch-up.
Die Frage ist: Was Passiert wenn ein Regler ausfällt??

Im Original ist dieses Problem mit einer Ein-Chip-Lösung entschärft
Datenblatt
Ich selbst hab mich zwar schon mit Eagle gespielt aber noch keine eigene Platine geätzt.


Dimmsockel selbst verlöten wäre bestimmt machbar
Aber da muss man schon gut sein
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten