Fliegender Pixelstick mit APA102 und External-Serial-Flash

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Fliegender Pixelstick mit APA102 und External-Serial-Flash

      Ein Pixelstick ist ein "Tool für Nerds" in der Langzeitbelichtungs-Fotografie Szene.
      Im Gegensatz zum "normalen" Pixelstick, der nur "von Hand" getragen wird, wollte ich diesen mit einem Modellflugzeug in die Luft bringen.

      P9133781_101.jpg

      Erzeugt werden die Bilder mittels 192 LEDs, die beim Vorbeiflug das Motiv Pixel für Pixel darstellen. Live sieht man dabei nur ein kurzes Aufblitzen der LEDs. Das Motiv selbst ist nur auf der Langzeitaufnahme zu erkennen (daher Tool für Nerds) :rolleyes:

      Das größte Problem war die Geschwindigkeit, mit der die Daten raus mussten (das Flugmodell wiegt 1400g und benötigt im Kurvenflug eine Mindestfluggeschwindigkeit von ca. 30 kmh). Im Forum wurden hierzu bereits an anderer Stelle wertvolle Tipps gegeben ( @tschoeatsch -> APA102, @six1 -> ESF). Ganz besondere Dank geht dabei an @Mitch64, der immer wieder mit neuen Ideen um die Ecke kam, damit wir die Geschwindigkeit steigern konnten. Der Löwenanteil des Codes (insbesondere der Libs/Incs) stammt aus seiner Feder. Seiner Ausdauer ist es zu verdanken, das dieses Projekt letztenendes fertiggestellt werden konnte.
      Den Durchbruch brachte am Ende der Umstieg auf den "Pololu A-Star 328PB Micro - 5V, 20MHz" durch den schnelleren Quarz, aber vor allem den 2 HW-SPIs. Während die eine SPI die Daten zu den APAs sendet, holt die andere parallel dazu neue Daten vom ESF, ohne die zeitraubende Zwischenspeicherung in einem riesigen Array.

      Ich hab mich für einen 2-teiligen Aufbau dieses Projekts entschienen:
      Ein Komponente, die "Prog-Unit", liest Bitmap-Dateien von einer SDHC-Karte, sortiert die Daten und legt sie nach einem bestimmten Schema (siehe "Speichernutzung ESF") auf den External-Serial-Flash. Dieser wird anschließend abgezogen und am Flugmodell in die zweite Komponente (Flight-Unit) gesteckt. Die Flight-Unit holt sich nach dem Auslösen über die Fernsteuerung die jeweils ausgewählten Bilddaten vom ESF und sendet diese an die LED-Strips.

      Prog_Unit_V1.jpg

      Schaltplan Prog Unit V1.0.0.pdf
      Speichernutzung ESF.pdf
      Code Prog-Unit.zip

      Fliegender Pixelstick.pdf

      Gleich gehts weiter...
    • Die Flight-Unit

      Flight Modul.jpg

      Zur Funktion:
      Das Modell signalisiert durch die Anzahl leuchtender Segmente das gerade ausgewählte Motiv. Leuchten die Segmente rot, muss der Anflug von links erfolgen, leuchten sie grün, erfolgt der Anflug von rechts.
      Nach dem Auslösen der Bildausgabe gehen für ca 700ms alle LEDs am Modell aus. Diese Zeit bleibt der Kamerafrau, um die Langzeitbelichtung zu starten. Anschließend erfolgt die Bildausgabe. Nach der Bildausgabe gibt es ein weiteres "Blackout"-Zeitfenster, um die Langzeitbelichtung zu beenden.

      P9204007_18.jpg P9214087_06.jpg P9214118_11.jpg P9203987_11.jpg

      Noch eine kleine Info: Ich habe beim fliegenden Pixelstick den Einfluss des gewinkelten Einbaus der beiden Strips unterschätzt. Je nach Fluglage wirkt sich dieser unterschiedlich stark (negativ) auf das gemachte Foto aus. Außerdem macht die Kompensierung des Knicks bei der Vorbereitung der Bitmaps zusätzlich Arbeit. Daher sollte (sofern dies konstruktionsbedingt möglich ist) der Einbau in einer geraden Linie angestrebt werden.

      Trägerflugzeug_oben.jpg Trägerflugzeug_unten.jpg

      In diesem Zusammenhang noch eine Anmerkung zum Protokol der APA102: Aufgrund der vielen Clone der APAs und SK9822 weiß man in der Regel nicht, was man bekommt. Bei meinen Strips hat sich das Datenblatt der APAs als falsch heraus gestellt. Die angegebene Länge des Endframes funktioniert nur bis zu einer Strip-Länge von 64 LEDs. Ab 65 LEDs musste der Endframe verlängert werden! Siehe hierzu auch:
      cpldcpu.wordpress.com/2014/11/…ding-the-apa102-superled/
      cpldcpu.wordpress.com/2016/12/…22-a-clone-of-the-apa102/
      pololu.com/product/2554 (siehe "Protokol", ziemlich weit unten)

      Die Verwendung der Codes ist ausschließlich für nichtkommerzielle Zwecke freigegeben.

      Schaltplan Flight_Unit.pdf
      Code_Flight_Unit.zip

      Nette Grüße
      Robert
    • Danke an alle für die positive Resonanz, hier wie auch beim anderen Pixelstickprojekt.

      Ich möchte hier aber nochmals deutlich hervorheben, dass das nicht alleine mein Projekt war.
      Den größten Teil des Codes hat Mitch64 geschrieben.

      Wir tauschten in den letzten Monaten hunderte von Mails aus, testeten unentwegs neue Ideen, bis es letztenendes dann tatsächlich geklappt hat. Ich wäre alleine dazu nicht in der Lage gewesen.

      Daher hier nochmal meinen herzlichsten Dank an Mitch. :thumbsup: