- 3D-Druck Einstieg und Tipps         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 90

Thema: html-Code für virtuelles website-Button-Pad

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Man kann rein schreiben, was man möchte. Es wäre auch die Hintergrundfarbe zu ändern, was ich dann persönlich für besser fände, wenn das Feld ein Muster abbilden soll.

    Das mit den "Betriebsmodi" verstehe ich noch nicht.
    Das mit dem Muster trainieren kann ich mir vorstellen, aber dann fehlt die Zielvorgabe, was am Ende erkannt werden soll.

    Jetzt ist es so nur ein Eingabefeld. Man könnte durch anklicken der Felder ein Muster erstellen / eingeben und abschicken.

    Mal sehen ...



    MfG

  2. #2
    HaWe
    Gast
    man trainiert mehrere Eingabemuster gemeinam mit enem jew. Ausgabemuster (Ziel), z.B
    000
    0
    (training)

    010
    0
    (training)

    100
    0
    (training)

    110
    1
    (training)


    dadurch lernt das Netz, die verschiedenen Eingabemuster zuzuordnen.
    Dabei werden nicht die Einzelmuster gespeichert, sondern die Neuronen verändern ihre innere Struktur für alle Muster gemeinsam:
    sie bilden eine interne Variablen-Matrix aus internen Gewichten und Thresholds, die auf alles gemeinam passt.

    gibt man nun ein
    011
    drückt man auf
    (erkennen)
    dann wurde dieses Muster bisher nicht trainiert, trotzdem wendet das Netz seine Matrix auf dieses Muster an und erzeugt ein Ergebnis, das irgendwie zu den bisherigen Mustern passt, möglicherweise wird es auch eine 1 sein, aber das muss man ausprobieren: es lässt sich nicht vorhersagen.

    Als Inputschicht könnte man die obersten 9 Zeilen des html-Buttonpads verwenden, als Ausgabeschicht die unterste, 10.

    Ich bin aber gestern abend/nacht auf eine Sache gestoßen, als ich ein einfaches meiner alten Netze auf den ESP8266 portieren wollte:

    alle meine bisherigen MCUs konnten Multithreading (Lego NXT und Arduino Due), und beiden machte es nichts aus, wenn eine Funktion für eine Berechnung sehr lange gebraucht hat (Minuten bis Stunden).

    Der ESP8266 kann aber überhaupt kein Multithreading, und er stürzt ab und rebootet, wenn eine Funktion den Prozessor länger als wenige (1-2) Sekunden komplett mit einer Berechnung belegt. Training aber kann mehrere Stunden dauern, und auch Auswertungen (Erkennen) zumindest mehrere Sekunden

    Das zweite Problem lässt sich vielleicht (!) durch etliche delay(1) in der Trainingsfunktion kaschieren (weiß ich noch nicht),
    aber Mutithreading ist unverzichtbar, wenn man im Betrieb das Gehirn (ich nenne es HAL) simultan Muster bearbeiten als auch Inputs, Steuerbuttons und das Display bedienen soll.
    Würde man das alles Spagetticodemäßig hintereinander schreiben, wird es nicht nur unübersichtlich, sondern auch extrem langsam, weil dadurch die sehr schnellen Gehirnroutinen im Mikrosekunden-Bereich ausgebremst werden durch TFT-Anzeige- oder GPIO- und html-Abfrageroutinen, die man nur 1x pro Sekunde aktualisieren muss.
    Ein dritter Grund, was gegen den ESP8266 spricht: er hat zu wenie GPIOs, um auch zusätzlich neben lokalen Pin-Buttons eine SD-Karte per SPI anzusprechen.

    Der ESP8266 macht daher keinen Sinn als Basis für ein NN, zumindest bei meinen NN-Pogrammen, die ich bereits geschrieben habe.
    Es müsste ein Arduino Due sein wie früher, der kann aber keinen Webserver aufbauen,
    oder ein esp32 ,
    denn nur diese beiden können derzeit Multithreading (Due Scheduler bzw. std::thread).

    Da der Due wegen mangelndem html aber komplett rausfällt und wir auch kein Hardware-Buttonpad haben, bleibt nur mein ESP32 als einzige Basis (meiner hat ein Adafruit Feather HX8367 Display) , für die ich die NNs neu programmieren könnte.
    Allerdings verwendet der ESP32 auch etwas andere wifi- und webserver libs als der esp8266.

    Mir ist daher jetzt noch nicht klar, wie es weitergehen kann, und ob es Sinn macht, zunächst mit den esp8266-html-Buttons zweigleisig zu fahren, mit absolut ungewissem Ausgang...

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650

    Quelltext für KeyPad

    alle meine bisherigen MCUs konnten Multithreading (Lego NXT und Arduino Due), und beiden machte es nichts aus, wenn eine Funktion für eine Berechnung sehr lange gebraucht hat (Minuten bis Stunden).
    Macht es dem nodeMCU auch nicht, wenn man im Programmcode mitteilt, dass man beschäftigt aber aktiv ist. Der Befehl dafür ist: yield();


    Ich habe das mal, so weit es bis jetzt mit den Infos möglich war, erstellt und etwas beschrieben. Datei hier zum Herunterladen.

    KeyPadSource.zip

    MfG
    Geändert von Moppi (31.10.2019 um 08:06 Uhr) Grund: Anhang hinzufügen

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    und einem unsichtbaren Frame, zwecks Datenübertragung.
    https://www.html5rocks.com/en/tutori...ockets/basics/

    geht auch etwas eleganter als ständig http requests zu schicken

    Und weil ichs persönlich liebe hole ich nochmal die Python Keule raus und sag mal

    https://github.com/pallets/flask

    Da fällt das parsen etwas leichter und man kann die Webseiten als richtige HTMl Files schreiben und muss dann wie bei PHP in den Patzhaltern nur den PyCode packen der dann aus Daten die Lücken des HTML Dokuments an der entsprechenden Stelle ergänzt.

    Finde ich persönlich eleganter als den HTML code als String mit ein zu compilen (und man kann auch die files on-the-fly updaten wenn was nicht stimmt und muss nicht immer erst alles compilen und hochladen
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Zitat Zitat von Ceos Beitrag anzeigen
    https://www.html5rocks.com/en/tutori...ockets/basics/

    geht auch etwas eleganter als ständig http requests zu schicken
    Wenn Du es kannst: super! Mach bitte ein Beispiel für nodeMCU.

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    Wenn Du es kannst: super! Mach bitte ein Beispiel für nodeMCU.
    Netter Beißreflex ... war als Denkanstoß zu verstehen und um etwas Last aus der Verbindung zu nehmen, aber wenn man sich zu fein ist mal damit zu beschäftigen ... bitte ... daher nur eine vereinfachte Antwort und viel Glück

    https://www.tutorialspoint.com/html5..._websocket.htm

    für die NodeMCU Seite braucht man allerdings ein klein wenig mehr Einrichtungsarbeit

    https://github.com/micropython/micropython (Als Grundlage)
    https://github.com/pfalcon/picoweb (Die Flask Version für den kleinen Speicher)
    https://github.com/hiway/micropython...ockets-modules (Die Websocket Anbindung)

    Allerdings habe ich damals den richtigen Flask genommen und etwas angepasst damit er auf µPy läuft. Hab sogar mal Owncloud drauf laufen lassen, aber die Datenrate war eher bescheiden :P
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  7. #7
    HaWe
    Gast
    Zitat Zitat von Moppi Beitrag anzeigen
    Wenn Du es kannst: super! Mach bitte ein Beispiel für nodeMCU.
    schließe ich mich an, in Arduinisch!
    Python ist hier völlig OT, denn dann müsste ja auch das NN in Python geschrieben werden, und das ist völlig illusorisch für meine Zwecke.

    yield() ist aber nichts anderes als delay(1) in Arduinsch, das hatte ich ja schon angesprochen und damit müsste ich es ausprobieren.

    Dennoch nützt es nichts, wenn die cpu kein MT kann.

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Wir haben in diesem Forum keine Beispiele für die Programmierung von NN in C
    für Arduino z.B.
    Aus diesem Grund hatte ich dieses in einem andern Thread nochmals geäußert.


    Wenn man sich zu weit von der Basis entfernt, die ich hier bei Arduino und nodeMCU
    sehe, entfernt man sich zu weit von der Mehrzahl der User in diesem Forum.


    Ich hatte diesbezüglich schon woanders zum Nachdenken anregen wollen, als ich
    sinngemäß schrieb, dass man sich überlegen soll eine Art Supercomputer zu verwenden.
    Also irgendwas leistungsstarkes mit mehreren GHz Taktrate, mehreren Gigabyte RAM
    und Festplattenspeicher, wenn man auf diesen Komfort dieser Geräte zurückgreifen
    möchte: Schnelligkeit, Multitasking, Webfähigkeit. Dort hätte man dann alle Möglichkeiten,
    wie Webserver mit PHP, man kann Javaprogramme drauf laufen lassen, man kann
    Webanwendungen drauf laufen lassen, die ihre Datentransfer auch anders abwickeln,
    Stichwort: AJAX.


    Wenn ich hier jetzt anfange, mich in Neuronale Netze einzuarbeiten und dies in einem Thread
    darzustellen, weiß ich genau was passiert. Nämlich dasselbe, was soeben auch hier passiert ist:
    dann - und genau dann, nicht vorher - kommen die Leute die "Ahnung" davon haben und
    den Thread so richtig aufmischen, mit diversen, nicht zielführenden Bemerkungen oder
    "gut gemeinten Ratschlägen".
    Deshalb wünschte ich mir etwas zum Thema Neuronale Netze, um die User hier zu wecken, die
    etwas davon verstehen und sich der Sache annehmen, damit wir alle hier etwas davon haben und
    es nicht in einem Zerreden des Themas endet.


    Ich habe schon vieles gemacht und auch eine Webanwendung die mittels Sockets / AJAX-like,
    Daten mit einem Webserver austauscht. Die Anwendung ist toll geworden, hier aber nicht brauchbar!

    Ich sehe mein Projekt zuhause momentan als bestes Beispiel, wie weit man sich von einer allgemein handhabbaren Basis,
    für viele Menschen / User - entfernen kann. Deshalb bin ich dafür, ganz klein anzufangen und es für jeden
    verständlich zu machen. Hier jetzt besonders das Thema neuronales Netz.








    MfG

  9. #9
    HaWe
    Gast
    dankeschön, ich teste es gerne noch mal !

    was mir noch nicht klar ist:
    wir haben ja insg. 10x10=100 keypad-Felder auf der html-Website.
    Im Programm hätte ich einen array-buffer
    float/buffArray[100];
    zum temporären Speichen.

    wo und wie kann ich die html-keypad-Werte auf diesen buffer-array übertragen zur Weiterverarbeitung,
    und wie merkt meine loop(), ob per [ok/Senden] tatsächlich soeben neue keypad-Werte übertargen wurden?
    Geändert von HaWe (31.10.2019 um 20:51 Uhr)

  10. #10
    HaWe
    Gast
    hmm - danke, aber wie ich weiß, wann [ok/Senden] gedrückt wurde und wie ich dann die Daten auf meinen buffer übertrage, weiß ich dadurch immer noch nicht.

    Wie schon gesagt, html- und webserver Code und was man wie damit anstellt ist nicht meine Welt...

    der Buffer muss bei mir strenggenommen eigentlich float sein, aber das kann man ja umwandeln): (editiert)

    float buffArray[100];
    Geändert von HaWe (09.11.2019 um 23:26 Uhr)

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 20.03.2019, 14:40
  2. html code für User Login + password (esp8266 + Arduino IDE)
    Von HaWe im Forum NodeMCU-Board und ESP8266, ESP32-Serie
    Antworten: 35
    Letzter Beitrag: 19.08.2018, 20:10
  3. html-Code für nodeMCU mit Arduino IDE + Wifi libs
    Von HaWe im Forum Arduino -Plattform
    Antworten: 7
    Letzter Beitrag: 14.08.2018, 19:30
  4. HTML-Code (scripts)
    Von Technik =) im Forum Umfragen
    Antworten: 6
    Letzter Beitrag: 10.10.2008, 10:21
  5. virtuelles Autocockpit
    Von redg im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 6
    Letzter Beitrag: 02.10.2005, 14:53

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress