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

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

  1. #101 Labmaster, 27. Januar 2017
    Zuletzt bearbeitet: 27. Januar 2017
    Hmmm, das mit den "unsicheren Kanälen" ist so ne Sache.
    Was wenn der NodeMCU mal neu startet z.B. wegen Störungen von aussen. Es sind ja schliesslich nicht mal Gate Widerstände verbaut ;), es fehlen auch diverse andere Schaltungsteile welche man als "good practice" zum "robust machen" verwenden würde. Wie die NodeMCU ansich aufgebaut ist weis man auch nicht so recht, wieviel Mühe haben sich dort die Designer gegeben. Wie sauber läuft die Software auf der NodeMCU.....

    Grundsätzlich sollte man immer davon ausgehen, daß bei einem solchen System mit Absturz, Reset oder ähnlichem zu rechnen ist. Für mich zumindest wäre es eine ganz essenzieller Anspruch an so ein System daß dieses zumindest bei so grundlegenden Dingen sicher ist.
    Selbst wenn man das als reines Lernprojekt und Bastelprojekt abtut sollte man sich bewust sein, dass es gegebenfalls durch die veröffentlichung hier Nachbauer geben wird welche die Risiken nicht abschätzen können und wir gehen hier schließlich mit Pyrotechnischen Gegenständen um, daß ist was anderes als einen MP3 Player zu bauen .....

    Grüße,
    Walter
     
  2. Der NodeMCU ist ne Bitch. Auch D0 ist beim Start auf HIGH. Daher kommt es, dass der P-Channel erstmal durchschaltet.

    Ich hab also umgemappt. Main wird jetzt mit D6 geschalten. D0 ist auf Kanal 6 gerutscht. Jetzt kommt beim Einschalten kein hoher Strom mehr durch.

    Somit gibt es 5 sichere Kanäle und 3 unsichere. Die 3 unsicheren Kanäle bekommen bei einem Reset kurz Strom, falls die Anlage Scharf war (also auch Main muss an gewesen sein).

    Wenn man elektrisch scharf schaltet, solte man sowieso schon in Sicherheit sein. Falls jetzt der NodeMCU aus irgend einem Grund einen Reset macht, dann geht ggf. was ungeplant hoch, aber man ist auf jeden Fall weit genug weg.

    Im scharfen Modus schwankt die Spannung stark. Unscharf habe ich konstant 2,28 - 2,3V am Pin (errechnet). Schalte ich scharf, so schwankt die Spannung zwischen 10,9 und 11,8. Im Mittel komme ich dann auf die 11,5V, die mein Netzteil hier gerade liefert.
    Vermutlich muss ich hier eine Mittelwertbildung über mehrere Messwerte machen, damit das nicht mehr so schwankt.
     
  3. Mal einen ganz pragmatischen Ansatz, nimm ein Schieberegister (z.B. 75HC595) und erweitere dir so den NodeMCU um annähernd beliebig viele Ausgänge. (Die Schieberegister sind anreihbar.)
    Diesem Schiebregister ist es egal was für eine Pegel an den Eingangs Pins herrscht, so lange nur "G" ordentlich als high definiert ist (z.B. mit Pullup an einem NodeMCU Pin welcher inital hochohmig ist)

    Hab hier gerade noch eine gute Beschreibung für Anfänger gefunden:
    http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister

    Wäre auch sehr einfach in der Software umzusetzen.

    Grüße,
    Walter
     
  4. Ich sehe das mit der Eigensicherheit auch kritisch.
    Du musst (!) davon ausgehen, dass das Teil jederzeit ohne bekannten Grund weg schmiert oder halt auch mal neu startet.
    D.h. es darf keine "unsicheren" Ausgänge geben. Ob die Sicherheit jetzt durch eine zentrale Freigabe gewährleistet wird oder über definierte Pegel an jedem Port, ist dabei sekundär.

    NodeMCU ist ja "nur" eine Firmware für den ESP8266 Chip welche eben Lua Scripts versteht. Gehässig gesprochen IoT Hipsterk***e für diejenigen die sich nicht mit Embedded Entwicklung rumschlagen wollen oder können. Und das zugehörige Board ist primär eine Experimentieeplattform. Klar kann man sowas auch ins fertige Produkt einsetzen, dann muss man aber mit den Nickeligkeiten leben (können).

    Wenn die Bits beim Booten ALLE wild rumwackeln ist die Lösung dafür nicht geeignet. Dann kann man damit aber generell nichts machen wo man einen definierten Zustand braucht.
    Du brauchst zumindest einen Port der in diesem Zustand einen definierten Pegel hat, denn auch ein Schieberegister, ein Latch oder irgendwelche anderen Porterweiterungen dürfen ja beim booten nicht wild mit Daten befeuert werden.
    Ob das D0, D23 oder D0815 ist, spielt da ja keine Rolle.

    Ich lese noch an der ESP Doku, generell sieht es für mich aber so aus dass alles was nicht zum Laden der Firmware gebraucht wird, durchaus nicht rumwackeln sollte.
     
  5. Ich hab mir jetzt ein IO expansion Board bestellt, mit PCF8574
     
  6. NodeMCU ist nicht nur eine firmware, es ist auch der Name eines breakout boards. Die NodeMCU firmware nutze ich nicht, ich verwende einfach das arduino IDE
     
  7. Arduino hat auch eine Firmware. Den Bootloader :). Wenn du wirklich low level arbeiten möchtest, dann musst du mit Avrdude direkt flashen und mit Atmel Studio oder ner anderen IDE mit avr gcc programmieren. Dann hast du zumindest viel weniger Overhead. Ich benutze dafür Eclipse. Funktioniert ganz gut.
     
  8. Für die Zündanlage brauche ich so wenig Rechenleistung und RAM, da stört mich der overhead null.
     
  9. Ja das stimmt. Aber wenn es um Stromsparen geht, ist das schon von Vorteil. Hatte so mal einen Amtega328 über eine AA Batterie laufen. Ging relativ gut. Leider hat mir nur das Funkmodul NRFL01 einen Strich durch die Rechnung gemacht.
     
  10. Beim ESP8266 ist auch der WLAN-Sender der Übeltäter, aber der ist ja das tolle feature. Bei maximaler Sendeleistung sind das mal schnell 200mA (oder mehr). Wenn man Wlan ausschaltet, ist man ohne Aufwand mit arduino-IDE bei ~10mA mit aktiver CPU.
     
  11. Es tut sich hier ein weiteres Problem auf:

    Habe ich den NodeMCU als Client in meinem lokalen Netzwerk, dann funktioniert die Kommunikation schnell und einwandfrei.
    Schalte ich jetzt mein Android als AP und lasse den NodeMCU als Client dort hin verbinden, so finde ich den NodeMCU nicht mehr (er verbindet, aber ist nicht zugreifbar). Der AP sieht wohl den Client nicht.

    Mache ich es umgekehrt, also NodeMCU als AP und verbinde Android als Client, dann meckert Android, dass keine Internetverbindung besteht. Nicht schlimm, kann man prinzipiell ignorieren. Aber es gibt hier keine stabile Verbindung mehr. Immer wieder gehen Requests einfach nicht raus oder kommen noch extrem verzögert. So ist das einfach unbrauchbar.

    Jetzt weiß ich allerdings nicht, ob es am AP Modus des NodeMCU liegt oder am Android.

    Im AP Modus ist mir der NodeMCU vorhin auch mit einer Exception abgeschmiert. Hatte ich vorher so noch nie gesehen.

    Korrekter wäre eh der Modus, in dem sich der NodeMCU beim Android anmeldet. Nur so könnte man theoretisch auch mehrere betreiben. Ich muss mich da mal einlesen, ob man nicht doch irgendwie ein echtes lokales Netzwerk hinbekommt.
     
  12. Bei mir funktioniert der AP-Modus perfekt. Mit was ist der bei dir denn abgeschmiert? Und wie machst du überhaupt die kommunikation zwischen ESP und Android?

    EDIT: Mir ist jetzt etwas gruseliges aufgefallen: Wenn ich mein laptop unter linux mit dem AP verbinde, ist alles super, 0% paketverlust und durchschnittlich 5ms ping-dauer. Unter windows sind immer wieder timeouts und pings, die mehrere Sekunden brauchen, dabei.
     
  13. Hab AP nochmal mit Windows Tablet getestet und da ging es dann wunderbar. Also nochmal mit Android und siehe da, jetzt funktioniert es da auch.

    Vorhin hatte ich den USB mit dran, jetzt hatte ich den nicht dran. Vieleicht lag es daran, dass er als AP durcheinander kommt, wenn er Strom über USB und Vin bekommt.
     
  14. Ich könnte Kotzen!!!

    Jetzt will ich den ersten Praxistest machen, schließe den Akku an, schalte ein und... NIX.

    Jetzt ist der ******* Schalter verreckt. Schaltet einfach nicht mehr durch die Drecksau...
    Man kommt an den ******* extrem schlecht dran :(
     
  15. Lötstelle defekt oder ist tatsächlich der Schalter hinüber?
     
  16. Schalter hinüber. Multimeter lässt kein Durchgang messen.
    Allerdings ist der Schalter 2 Polig. Ich hab ihn jetzt umgedreht, der andere Pol funktioniert ja noch.

    War jetzt auch draussen zum testen: Es funktioniert.
    Durchgangsprüfung ist auch schon implementiert. Ich überlege aktuell noch, wie da eine ordentliche Visualisierung aussieht. Vermutlich mach ich da Togglebuttons draus und wenn sie Durchgang haben, gehen sie an.

    Aktuell hab ich ja den "armed" als Togglebutton. Der sollte aber denke ich deutlicher sein. Da mach ich vermutlich nen normalen Button mit Hintergrundfarbe (Rot und Grün).
    Ansonsten sind ja nur noch die Zündspannung und Verbindungsstatus interessant. Die mach ich dann als Statuszeile ganz unten. Da steht dann entweder Verbindungsfehler oder eben die aktuelle Spannung. Dazu noch den Button für den Durchgangscheck und das wars erstmal.
     
  17. Mehr Features, mehr Probleme ;-)

    @TelosNox: Jetzt weißt du warum ich mir einfach die billigen Gehäuse für 8 Euro gekauft habe...

    @tommiehommie: Ja nu, und das Board gibts dann auch wieder in Varianten und Versionen, usw. Das macht die Sache für mich ziemlich unübersichtlich.
    Sei's drum - ich konzentriere mich hier auf Hinweise zur Hardware; Software können andere besser als ich...
     
  18. Auf jeden Fall mal ein dickes Danke für die Beratung zur Hardware.
    Software ist jetzt für mich weniger ein Problem (mal von dem ******* UI Verhalten von Android abgesehen...).

    Ich schau mal noch, dass ich den Schaltplan vervollständige, Code sauber mache und das dann irgendwie auf GitHub oder so share. Kleine Anleitung dazu und gut ist.
    Allerdings kann ich zum Layout keine Anleitung machen. Ich hab zwar bei mir bischen was fotografiert, aber da ich am Ende noch Kanäle tauschen musste, passt das nicht mehr. Davon abgesehen ist mein Layout für den Arsch :rolleyes: Viel zu fummelig beim löten, das hätte man intelligenter machen können.
     
  19. Layout auf Lochraster ist auch etwas witzlos ;)
    Das ist eigentlich nur interessant wenn man daraus eine Platine erstellt und die dann fertigen (lassen) kann.

    Wesentlich interessanter wäre eine Doku zum Protokoll. Bei den PC gestützten Anlagen geht die Reise ja eh schon dahin dass man die Software per Plugin an die Anlage anpassen kann.
    Für meine Boxen müsste ich dann z.B. nur einen Wrapper auf so nem EMC Chip implementieren und das auf dem Uart raus hauen.
     
  20. Hab mal den aktuellen Schaltplan angehängt. Hoffe mal, dass ich nix falsch gezeichnet hab.

    Protokoll ist simpel:
    Der ESP läuft als WebServer und wird über entsprechende Requests gesteuert.
    "/" entspricht der Statusabfrage
    "/c1" feuert Kanal 1
    "/a" macht die Anlage scharf
    "/check" führt die Durchgangsprüfung durch

    Der Status kommt als Text in Form von lesbaren properties. z.B.:
    Code:
    voltage=11,55
    a=1
    c1=1
    c2=0
    Analge hat 11,5v Spannung, ist scharf und Kanal 1 ist gerade aktiv. Kanal 2 ist inaktiv.
    Auch die Durchgangsprüfung arbeitet so und liefert als identifikatoren c1, c2 etc..

    Das macht es mir dann im Javacode sehr einfach, die Werte einzulesen. Ich muss nix selber parsen, ich kann einfach ein Properties Objekt erzeugen und dann direkt auf die Werte zugreifen (die Schlüssel müssen natürlich bekannt sein).

    Extra Sicherheit gibt es keine. Die Anlage ist durch das WLAN ja bereits sicher (WPA2).

    Die App könnte man prinzipiell dynamisch machen (Anzahl Kanäle einstellbar, Buttons werden automatisch erzeugt etc.), ich hab das aber aktuell alles fix drin, weil es fürs Layout deutlich einfacher ist.

    Zündschaltplan.PNG
     
  21. Hast du abgefangen dass die Durchgangsprüfung bei eingeschaltetem Zündstrom nicht erfolgen darf? Weil das wäre elektrisch identisch mit Auslösen ;)

    Die Option sich mit mehreren Boxen zu verbinden gibt es nicht!?
     
  22. Prüfung schaltet automatisch die elektrische Zündung ab und checkt danach zusätzlich die anliegende Zündspannung. Da passiert also nix.

    Aktuell kann ich nur 1 Modul ansteuern.
    Grund 1: Verbindung geht nur wenn das Modul AP ist. Handy als AP klappt bisher nicht.
    Grund 2: Man müsste dann mehrere Url definieren, dann brauche ich eine Konfiguration. So wie es jetzt ist, gibt es eine feste IP, auf der das Modul liegt. Ist deutlich einfacher.

    Ich werde noch versuchen Problem 1 zu lösen. Wenn das klappt, mach ich vielleicht noch die erforderliche Dynamik dazu.


    Was man natürlich machen könnte wäre Master/Slave. So dass ein Modul den AP macht und alle andere sind Clients. Dann muss der AP den Proxy spielen und Befehle weiterleiten. Vorteil wäre dann, dass man virtuell nur 1 Modul mit entsprechend mehr Kanälen hat.
    Die App könnte dann am Modul erfragen, wie viele Kanäle es gibt und dann dynamisch das UI erzeugen.

    Mal schauen, wie weit meine Lust reicht. Ich habe nicht vor, mir mehrere Module zu bauen, mir sollte eins reichen.
     
  23. ******* Wlan. Zu Hause noch im AP modus getestet, einwandfrei. Anlage zum Vorführen mitgenommen und Zack wieder Verbindung instabil. Liegt nicht am Android, mit Windows ist die Verbindung ebenfalls schlecht.

    Es scheint da Probleme zu geben, wenn man zwischen client und ap mode wechselt. Muss mal lesen, was es dazu zu finden gibt.
     
  24. Vom Hersteller gibts da noch einr Mesh API...
     
  25. Sagt mir nix. Ich code mit Arduino IDE und entsprechendem Boardmanager.
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden