1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
Information ausblenden

Die blauen Farben vom alten Forum, die Breite der Darstellung und die Sprache können auf dieser Seite unten links in der Fußzeile ausgewählt werden.

Handhabung & Technik Besteht Interesse an einer DIY Zündanlage?

Dieses Thema im Forum "Effekte, Feuerwerkskörper, Technik, Hilfsmittel" wurde erstellt von TelosNox, 4. Jan. 2017.

  1. Youtube ist mir ein wenig zu öffenlich. Normalerweise pack ich sowas einfach ins google drive und gebe dann den Link weiter.
     
  2. Man kann auf YT videos auch auf nicht gelistet stellen
     
  3. Ok das wäre ne Option.
    Ich hab bisher noch nie was auf Youtube hochgeladen, daher hab ich 0 Erfahrung damit. Aber irgendwann muss man damit ja mal anfangen.

    Kurzer Zwischenstand:
    Wie geplant läuft die Konfiguration jetzt direkt über die gefundenen AdHoc Module. Die kann man per Context Menü in ein Konfiguriertes Modul umwandeln. Umgekehrt kann man Konfigurierte Module mittels Kontext Menü auch wieder löschen.
    Screenshot ist angehängt.

    Dämlicherweise erscheint das Context Menü beim obersten Eintrag irgendwo ganz unten (weil es sonst außerhalb der View wäre). Lässt sich lösen, wenn ich die Buttons nach oben verlege. Sieht aber dann irgendwie doof aus...
    /edit: Das falsch platzierte Context Menü scheint Android 7 spezifisch zu sein. Zumindest lese ich das so im Netz. Ist also aktuell weniger tragisch.

    Module_Overview.jpg
     
  4. Neue Baustelle:
    Ich hab die ganze direkte Kommunikation mit den Modulen über AsyncTask gelöst. Dumm, dass die Dinger in einer Queue laufen und sich gegenseitig blockieren.

    Aufgefallen ist mir das irgendwie schon vorher. Das eine Modul hatte einen guten Ping und beim anderen Modul war der Wert fast doppelt so hoch.
    Jetzt als ich mal das erste Modul ausgeschalten hab, ist der Ping vom 2. Modul massiv in die Höhe gegangen.
    Ist auch logisch. Die erste Anfrage wartet 300ms auf Antwort und bricht dann ab (Timeout, das Modul ist offline). Erst danach kommt das zweite Modul überhaupt zum Zug.

    Das ist *******e! So darf das nicht sein, denn im Zweifel hat man 5 bekannte Module, die 4 ersten gehen offline und Modul 5 braucht jetzt gute 2 Sekunden, um Befehle abzusetzen.

    Ich muss den ganzen Mist jetzt also nochmal umbauen. Back to the basics.... wird erstmal wieder nix mit neuen Features :(
     
  5. Umbau ist erfolgt und man kann jetzt schon grundsätzlich ein Feuerwerk planen:
    Man kann Name, Modul, Kanal und Delay angeben.
    Allerdings wird das bisher weder abgespeichert, noch kann man es irgendwie abspielen (das kommt natürlich noch).
    Auch umsortieren der Reihenfolge ist noch nicht möglich, das muss noch rein.

    Als nächstes muss das dann irgendwie gespeichert werden können (idealerweise unter einem Namen) und dann muss man es auch noch "abspielen".

    Dann wäre schonmal ein großer Teil geschafft. Das ist jetzt alles noch ohne virtuelle Kanäle. Man kann Kanäle nicht umbennen. Aber die Zündaktionen im geplanten Feuerwerk kann man bennenen.
    Ich kann mir vorstellen, dass das bereits reichen könnte.

    Ich hab wieder nen Screenshot angehängt, wie das aktuell aussieht, wenn man so ein Feuerwerk zusammengeklickert hat.
    Die Zeiten sind aktuell als Delta angegeben (also Abstand zum vorherigen Zündzeitpunkt).

    Das ist vielleicht nicht ganz so intelligent. Vielleicht macht es mehr Sinn, wenn man der jeweiligen Zündaktion ihre Laufzeit mitgibt. Dann würden die Zeitpunkte immer noch stimmen, wenn man umsortiert.
    Allerdings trifft das nur zu, wenn man nach Ende eines Effekts das nächste zünden will. Wenn man etwas verzögert zünden will, so dass beide Effekte Zeitgleich enden, bringt es wieder nix mehr mit der Laufzeit.

    FeuerwerkPlan.jpg
     
  6. Ich hab mal die Kamera draufgehalten. Dummerweise ist die Aufnahme LED an, die spiegelt im Handy. Sollte aber nicht so tragisch sein.

    Die Texte im UI sind stellenweise noch Schrott. Einfach ignorieren, ich lasse mir da noch was gescheites einfallen.

    Wohl bekomms...
    https://youtu.be/FziFb449aEc
     
    tommihommi1 gefällt das.
  7. Langsam wirds interessant.
    Ich hab mal den ersten Entwurf am laufen, wie so ein geplantes Feuerwerk dann in der App automatisiert abläuft.

    Aktuell kann die App ein geplantes Feuerwerk abspielen. Die Delays sind immer relativ zur vorherigen Zündung (also Verzögerungen). Auch der Start kann verzögert werden (wenn die erste Zündaktion ein Delay hat).

    Screenshot ist angehängt. Oben rot sieht man die letzte Zündung (das läuft also gerade). Darunter mit einem ProgressBar die nächste anstehende Zündung. Wenn der Balken durch ist, wird gezündet. Darunter dann die Liste mit den übrigen Zündaktionen (die ist scrollbar, man kann sich also nen Überblick verschaffen).

    Noch werden keine Zündungen ausgelöst, das ist aber nachher eine Kleinigkeit. Es gibt aktuell auch eine feste Taktung von 200ms (alle 200ms wird geprüft, wie weit der Fortschritt ist). Man könnte hier auch beliebige Verzögerungen realisieren, allerdings wirds dann mit dem ProgressBar kompliziert. Das stelle ich erstmal hintenan, zumal ich Verzögerungen eh im Sekundenbereich geplant habe (alleine die Kommunikation braucht schon ca. 30ms, da macht es nicht viel Sinn im Millisekunden Bereich zünden zu wollen). Auch eine Verzögerung von 0 ist aktuell immer mindestens 200ms lang (******* Konzept...). Da werd ich mir noch was einfallen lassen, denn das ist nachher die Brückenlösung, um mehrere Kanäle gleichzeitig zu zünden.

    Geplant ist jetzt erstmal, dass die gleichzeitige Zündung geht und dass auch tatsächlich Module angesteuert werden.
    Wenn ich das soweit habe, dann will ich die Semiautomatik machen.
    Wenn das durch ist, will ich eine Übersicht des geplanten Feuerwerks realisieren. So dass man jeweils das vollständige Modul mit allen Kanälen sieht und dann aber am jeweiligen Kanal angezeigt wird, welcher Zündaktion er zugeordnet ist und wann sein absoluter Zündzeitpunkt wäre (relativ wäre an der Stelle unnütz).
    Damit kann man dann bequem kontrollieren, ob man korrekt verkabelt hat (wenn man die Module aufbaut, so wie ich :D - dann entspricht die Anzeige in der App nämlich den Terminals am Modul).

    Irgendwann zwischenrein muss ich mir dann mal noch überlegen, wie man so ein geplantes Feuerwerk speichert. Schwierigkeit dabei ist, dass es sich ja auf konkrete Module bezieht, die nicht (mehr) zwingend in der Konfiguration vorhanden sein müssen. Außerdem will man vielleicht parallel unterschiedliche Feuerwerke planen. Also will man das benennen und die gespeicherten Planungen auswählen können. Alles leider nicht trivial, vor allem, wenn man mit so wenig Berechtigungen wie möglich auskommen will.

    GeplantesFeuerwerkSchiessen.jpg
     
  8. Mann mann mann...

    wenn man mal vorher schaut, wie man so einen Countdown Progress machen kann, ohne das alles zu Fuß zu implementieren, dann geht es einfacher.
    0 Delay funktioniert jetzt korrekt und das Delay kann jetzt theoretisch im Millisekunden Bereich liegen (ich erlaube es aktuell aber nicht).

    Als nächstes mache ich definitiv die Speicherei fürs Planen. Es nervt nämlich, wenn man für jedes mal ausprobieren wieder alles neu eingeben muss.
     
  9. Hier gibt's wieder was zu sehen:
    https://youtu.be/u8LUBe3yIUU

    Das automatische Abspielen eines geplanten Feuerwerks ist jetzt als Prototyp implementiert.

    Ansonsten hab ich jetzt auch schon das Speichern der geplanten Feuerwerke drin, allerdings ergibt sich aktuell die Reihenfolge aus der alphabetischen Order der Namen. Ich muss hier noch den Index mitspeichern und nach dem dann sortieren.

    Die Automatische Ausführung sendet aktuell auch nur blind die Befehle und interessiert sich weder für Rückantworten, noch für den aktuellen Status. Auch Scharfschalten geht hier noch nicht, das muss man im manuellen Modus machen.

    Frage die hier aufkommt: Was mache ich beim Automatischen Abspielen, wenn eine Zündung nicht erfolgt ist (also das Modul nicht Erfolg zurückmeldet). Ich würde es jetzt einfach mal ignorieren und nach Plan weitermachen. Alles Andere nützt dem User ja nix, er kann ja eh nix an der Situation ändern.

    Was definitiv noch rein muss ist vor dem Start eine Prüfung, ob alle benötigten Module online sind und ob alle nötigen Kanäle belegt sind. Und ein Scharfschalten aller nötigen Module natürlich auch (samt Prüfung, ob sie alle scharf sind).
     
  10. wie sieht es eigentlich mit dem Code für die boards aus, darf man sich das mal anschauen? :)
     
  11. Natürlich.
    Ich hänge heut abend mal das aktuelle Sketch an.
     
    tommihommi1 gefällt das.
  12. https://github.com/TelosNox/noxnition
    Hier der komplette Code und auch das KiCad.

    Ich bin was Git angeht ein absoluter Noob. Ich hoffe mal, dass ich alles korrekt mache und das Zeug auch gepublished ist.

    Schlagt mich nicht für den teils arg unaufgeräumten Code, das Ganze wächst halt, wie es wächst und Android ist für mich relativ neu. Da, wo es mich stört, da räume ich zwischendurch mal auf.
     
    tommihommi1 gefällt das.
  13. Hab mir bisher nur den Arduino-Code angeschaut, der ist doch recht übersichtlich und kürzer als erwartet, dank tollen libraries
     
  14. Jo aber alles prozedural wird halt schnell voll. Allerdings da jetzt noch eigene Libs schneidern wäre zu viel des Guten, es lohnt nicht =)

    Übrigens, falls sich jemand mal selbst die App anschauen will: Die kompilierte Apk liegt im bin Ordner mit drin.
     
  15. Mir fällt grad auf, dass man mit der App nicht wirklich rumspielen kann, wenn man kein Modul hat. Man kann ja kein Modul konfigurieren, wenn sich keines meldet.

    Jetzt müsste man noch irgendwie irgend einen Fake bereitstellen, der auf den Broadcast reagiert und sich meldet. Allerdings hab ich aktuell wenig Lust dazu, das umzusetzen :rolleyes:
     
  16. Nachdem sich jetzt länger nix getan hat, wollte ich mal kurz Rückmeldung geben.
    Der Stand ist unverändert, ich hab nichts weiter gemacht. Aktuell bin ich einfach nicht so motiviert (bzw. hab einfach andere Dinge, auf die ich Bock habe).
    Außerdem bin ich unentschlossen, wie ich den Modulstatus aggregieren will (wird ja beim automatischen Zünden mit mehreren Modulen benötigt).
    Ich tendiere aber dazu, das so zu machen, dass man ein Programm scharf schaltet und der Schritt dann prüft, ob die Module online sind und ob alle notwendigen Kanäle Durchgang haben. Außerdem werden abschließend alle Module scharf geschalten und nur wenn der Status dann passend zurückkommt, dann kann auch das Programm abgespielt werden.
    Auf Zustandsänderungen zwischendrin reagiere ich dann nicht mehr, da gibt es nur noch Fire&Forget (man kann als Nutzer dann eh nichts mehr ändern).

    Wie schon gesagt, im Moment ist bei mir Pause. Wenn es mich wieder packt, dann gehts weiter.