Jeder kennt das große Bildfeld und den Style der GoPro Superview aufnahmen. aber was tun wenn man keine GoPro hat?! Die beste Idee ist wohl sich eine zu Kaufen denn sie sind halt immer noch die Besten auf dem Markt (meine unbezahlte Meinung).
Eine alternative hat allerdings Niek auf GITHUB zur Verfügung gestellt. Dieses kleine CMD tool welches er Programmiert hat tut seinen Dienst echt gut. Es gibt nur eine Sache die mich gestört hat. Ich muss jedes Video einzeln über den cmd Befehl stretchen lassen. Man kann es zwar mehrfach starten, dass ist aber keine Option für mich da der Renderprozess ziemlich rechenintensiv ist und sich dadurch die Renderzeit für ein Video rapide verlängert.
Aus diesem Grund habe ich mir eine einfache kleine Batch geschrieben, die man in das Verzeichnis in dem die Videodateien liegen, die gestretcht werden sollen, kopiert und ausführt. Die Batch startet dann sobald ein Rendervorgang fertig ist automatisch den nächsten bis alle Dateien durch sind.
@echo off
REM ###########################################
REM EINSELLUNGEN ANPASSEN
set vidType=.mp4
set superviewPfad=C:\Eigene Dateien\Camera\
REM ###########################################
REM NICHT AENDERN
set batchPfad=%cd%\
For /F %%i in ('dir /B *%vidType%') do (
cd %superviewPfad%
call superview -i "%batchPfad%%%i" -o "%batchPfad%superview_%%~i"
cd %batchPfad%
)
ECHO ###############################################################
ECHO STRETCHING ABGESCHLOSSEN
ECHO ###############################################################
pause
Was muss ich tun?
Niek Superview vollständig zur Funktion bringen.
Den oben stehenden Code in eine .txt datei kopieren.
„set vidType=“ anpassen auf dein aufgenommenes Video Format.
„set superviewPfad=“ anpassen auf den kompletten Pfad in dem die superview.exe von Niek liegt.
Datei speichern als xxxxx.bat
xxxxx.bat in das Verzeichnis kopieren in dem die Videos liegen und ausführen.
ACHTUNG die batch wird alle Video Dateien in dem Verzeichnis stretchen. Die Originale bleiben aber immer erhalten.
und ich wünsche allen ein Frohes neues Jahr und hoffe das Ihr das abschießen von Raketen, anzünden von Batterien und Böllern gut überstanden habt.
In diesem Jahr hat mich der Geiz gepackt und ich habe mir das Kaufen von Feuerwerk aller Art gespart. Meine Nachbarn hatten aber mehr als genug, so dass ich ein paar Bilder schießen konnte.
Für meine Ersten Feuerwerksbilder finde ich sie Relativ gut gelungen.
Nun ist es soweit und ich kann endlich mal eine Kleinigkeit veröffentlichen.
Die Idee war es eine alte Robbe Charter wieder zum Leben zu erwecken. (darüber werde ich später berichten)
Da das Modell es mehr als Verdient hat wollte ich es ein wenig „Scale“ aufbauen und da dürfen natürlich Positions Lichter auch nicht fehlen.
Klar kann man kaufen einbauen fertig! Aber warum?! Selbst gemacht ist doch immer besser.
Mögliche Funktionen
Steuern von 5 LED´s (erweiterung möglich)
Auslesen eines SBUS Signals des Empfängers zur Steuerung von bis zu 9 unterschiedlichen Modis.
Einlesen von verschiedenen Kombinationen aus Schaltern.
2wege, 3wege, 2x2wege, 2x3wege, 1×2&1x3wege.
Scale Modus, Blink Modus und Lauflicht sind vorbereitet.
Benötigtes Material
Arduino Nano/Uno (mini wäre auch möglich)
LED´s (ACHTUNG maximal Ausgangsleistung des Arduinos beachten) Ich verwende superhelle mit 20mA
Vorwiderstände (in meinem Fall 150ohm)
Kleinmaterial (Leitungen, Schrumpfschlauch usw.)
Der Aufbau
Ich werde hier keine fertig verlötete Steuerung zeigen sondern lediglich meinen Aufbau auf dem Bredboard, da ich zum jetzigen Zeitpunkt noch nicht genau weiß wie es hinter im Flieger verbaut wird.
Der elektrische aufbau gestaltet sich denkbar einfach und sollte von jedem easy durchgeführt werden können.
Die LED´s werden an die PWM fähigen digitalen I/O´s über einen Widerstand angeschlossen.
Sollte man für die Steuerung eine andere Spannungsversorgung benutzen als für den Empfänger, dann ist es zwingend erforderlich die Masse bzw. minus der beiden miteinander zu verbinden. In meinem Bild kommt die Spannungsversorgung direkt vom Empfänger, was bei meinen Tests keine Probleme bereitet hat. DIE BESSERE WEG IST DIE STEUERUNG GETRENNT VOM EMPFÄNGER ZU VERSORGEN UND NUR DIE MASSE ZU VERBINDEN. DANN KANN ES BEI EINEM EVENTUELLEN KURZSCHLUSS NICHT ZUM ABSCHALTEN DES EMPFÄNGERS KOMMEN.
Wie sieht es dann aus?
Wenn ihr das alles gemacht habt und den Code hoch ladet, dann sollte es ca so wie in dem Video aussehen. Das Video stammt von einer der ersten Versionen von mir die sich aber um einiges erweitert hat mittlerweile.
DAS GEHIRN DES GANZEN
Vorab sei gesagt ich habe mir das Programmieren durch lesen, Videos und ausprobieren selber beigebracht. Einige Codeabschnitte sind mit Sicherheit deutlich besser zu schreiben und vor allem kürzer zu halten. ICH FREUE MICH ÜBER JEDEN TIPP IN DEN KOMMENTAREN
Nun aber zum eigentlichen Programm.
Ich habe versucht das gesamte Programm so übersichtlich und einfach wie möglich zu halten, das jedermann es nachvollziehen kann und nach seinen Vorstellungen erweitern darf. Viele Dinge sind im Code Kommentiert so das ihr wisst wo ihr was ändern könnt und auf was es Einfluss hat.
Wie oben erwähnt, gibt es fünf verschiedene Möglichkeiten was die Schalter-Kombinationen betrifft.
//SBUS SWITCH MODES //WHAT TYPE OF SWITCHES DO YOU USE AT THE SBUS CHANNELS?
#define SBUSswitchMode 2 // 1 = BOTH 2 WAY SWITCHES (HIGH LOW)
// 2 = BOTH 3 WAY SWITCHES (HIG MID LOW)
// 3 = FIRST 2 WAY SECOND 3 WAY (HIGH MID & HIGH MID LOW)
// 4 = ONE 2 WAY SWITCH (HIGH LOW)
// 5 = ONE 3 WAY SWITCH (HIGH MID LOW)
Solltet ihr euch für Modus 3 entscheiden dann ist es wichtig das der Erste Kanal der 2 Wege Schalter ist.
Welchen Kanal Ihr einlesen wollt könnt ihr mit den beiden Werten verändern
//SBUS CHANNEL NUMBER
#define SBUSchannel_1 5 //CHANGE IT TO YOUR RC CHANNEL
#define SBUSchannel_2 9 //CHANGE IT TO YOUR RC CHANNEL
Der Bereich Kind of Modes ist dafür da die Programmieretn Funktionen (Modis) auf eine andere Schalterkombination zu legen und die Funktionen ggf. umzubenennen. Ich habe Sie für den Anfang erstmal mode_1() usw. genannt.
Solltest du hier den Funktionsnamen ändern sprich, mode_1(); in Blinken(); umbenennen, dann musst du die Funktion (weiter unten im Code) natürlich mit umbenennen.
Eine Tabelle welche Schalterkombination für welchen Modus ist findest du hier.
Download Links
Ich möchte in diesem Beitrag nicht die Dateien zur Verfügung stellen sondern auf meine Repository verweisen. Dort findet Ihr immer die letzte Version als „master-branch“ https://github.com/Peschi90/ScalePlaneLights
Für die kommunikation mit SBUS ist außerdem eine Libary von nöten. Diese Findest du hier. https://github.com/fdivitto/sbus
Ich habe den Code soweit Kommentiert, das man sich gut zurecht finden sollte.
Bei Fragen stehe ich gerne zur Verfügung und mache ggf. nochmal einen Erklärungsbeitrag, der sich auf den Code bezieht.
Da ich selber immer wieder über die ein oder andere Lücke in Dokumentationen oder Probleme bei gewissen dingen hatte, dachte ich mir warum sollen sich andere damit auch rum schlagen?! Ich könnte doch einfach selber meine Erfahrungen zusammen schreiben und versuchen anderen damit zu helfen.
Manchmal ist es auch einfach nur das Brett vorm Kopf was einen nicht zur Lösung führt.
Hier schreibe ich über meine Projekte und Hobbys und hoffe das es dem ein oder anderen hilft und er/sie schneller zum Ziel kommt.