- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 68

Thema: GUI für nodeMCU

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
    Vorschläge sind super, werden bei mir immer verarbeitet, sobald mein Gehirn damit Kontakt hatte. Allerdings eben immer die Frage, wann und wie?

    Zitat Zitat von Moppi Beitrag anzeigen
    ... Weg von der grafischen Oberfläche, die "alles"
    möglich macht, hin zu dem, was ich zurzeit benötige.
    Da stehe ich zurzeit noch.

    Da ich jetzt etwas weiter bin, wie das Zusammenspiel mit den µC funktionieren kann, werde ich mein Augenmerk vor allem zunächst darauf legen, Werte von Sensoren usw. in angemessener und brauchbarer Weise auslesen zu können. Ich wollte mögliche lokale Displays, die vorwiegend zu Entwicklungszwecken eingesetzt werden, um solche Werte auszugeben, sparen. Das wird nicht einfach. Wenn ich nur daran denke, Werte die mit dem Rad-Encoder zu tun haben, in Echtzeit darstellbar zu machen. Wenn ich mir anschaue, wie schnell so ein Motor bei meinem Car II drehen kann und dann bedenke, dass diese Geschwindigkeit, in 1/100stel Schritten, kontrolliert wird. Aber ich arbeite an einer Lösung. Am Ende geht es mir darum - zu Entwicklungszwecken - Zusammenhänge besser zu verstehen und dazu möglichst tief in die Hardware reinschauen zu können. Ich muss da an Werte kommen, die sich sinnvoll betrachten lassen. Wäre schon toll, wenn man Abläufe Schritt für Schritt beobachten kann.

    mit welchen Sprachelementen samt Syntax:

    An der Oberfläche mit einer Script-Syntax, die so sicher wie nur möglich zu handhaben und zu verstehen ist. Deswegen ist jede Befehlszeile gleich aufgebaut. Es folgt immer ein Befehl und dann Parameter. Verschachtelte Blöcke oder kompliziertere Ausdrücke werden vermieden. Das hat nichts mit Java, JavaScript oder sonst irgendwas zu tun, nichts mit C, nicht mit C++, nichts mit Arduino-IDE-C++. Die einzelnen Anweisungszeilen durchlaufen einen Parser, der die entsprechenden Unterprogramme dann mit den entsprechenden Eingabeparametern versorgt und aufruft. Im Browser wird, auf unterster Ebene, alles per JavaScript ausgeführt.

  2. #2
    HaWe
    Gast
    wie sähe denn so etwas in deiner Programmiersprache aus,
    für einen Robot mit Differentialantrieb (Tribot mit 2 angetriebenen Rädern plus Stützrad):

    100cm mit 100% pwm geradeaus (<<< ziemlich einfach, wenn man Radumfang kennt)
    stopp
    45° auf der Stelle mit 30% pwm nach links drehen (<<< mittel)
    stopp
    50 cm mit 60% pwm zurück (<<< einfach )
    stopp
    vorwärts mit 60%pwm in einem Rechts-Bogen von 90° und Bogen-Radius von 50cm (<<< das ist jetzt schon recht anspruchsvoll)

    Anzeige von aktueller Position (x,y in Bezug zu Startpos), Richtung und Geschwindigkeit per Odometrie in 4 Labels auf der Website. (<<< vermutlich nicht extrem schwierig)
    Geändert von HaWe (22.10.2020 um 10:18 Uhr)

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Dieses Prinzip mit der Abarbeitung habe ich begonnen nach Arduino zu exportieren. Bloß, aufgrund des Speichermangels, sind dort die Befehle anders. Es gibt auch keine komplexeren Codeblöcke, so, wie für die Browseranwendung. Wie das dann aussehen könnte, wäre als Code so:

    die reinen Code-Blöcke, als Hexdarstellung:

    [01 20 00 01 08 04 00 01 02 01 02 01 02 02 1 02 00 01 08 04 00]

    Mit Erklärung:

    Micro Code Stapelverarbeitung

    Test für LED an I/O-Pin 4:

    Variable#0 laden [1,2,0,HIGH]
    Ausgang setzen [8,4,0]

    Test über indirekte Variable:

    Variable#1 laden [1,2,1,2]
    Variable#2 laden [1,2,2,HIGH]
    Variable#0 über Variable#1 laden [2,0,1]
    Ausgang setzen, Inhalt in Variable#0 [8,4,0]

    Die Codes werden übersetzt und dann in der Benutzeroberfläche, als Befehle, in lesbarem Text ausgegeben.
    Die Eingabe werde ich etwa so gestalten, dass man die Befehle aus einer Liste auswählen kann.
    Es gibt - je nach Funktionsumfang - für jeden µC extra Befehlscodes. Derselbe Befehlscode hat dann auf jedem µC eine andere Bedeutung. Nicht allerdings die Grundfunktionen, wie Inkrementieren, Variablen Werte zuweisen etc.
    Da das noch in Entwicklung ist, kann ich Dir noch keinen fertigen Programmablauf zeigen, eben nur das Prinzip und den Aufbau.
    Man muss auch immer bedenken, dass die Grundfunktion im µC selbst steckt. Wenn es dort keine Funktion gibt (in Arduino-IDE programmiert), die zum Beispiel eine Kurve fahren kann, wird es dafür auch keinen Befehlscode für die Mini-Stapel geben. Vielleicht ein wenig an die Stapelverarbeitung von IBM-DOS oder MS-DOS denken. Dort ruft man fertige Programme auf und übergibt ihnen Parameter. So soll das Prinzip hier auch sein. Es muss die endgültige Programmierung nicht festgelegt werden. Die Firmware muss nur die Funktionen haben. Später wird der Stapelcode eingespeist und die Funktionen sinnvoll miteinander verknüpft.
    Geändert von Moppi (22.10.2020 um 11:10 Uhr) Grund: Ausdruck

  4. #4
    HaWe
    Gast
    danke, das ist jetzt zwar noch sehr theoretisch, aber schon etwas klarer. Bin gespannt, wie dann tatsächlich die Programmierung auf der Web-IDE erfolgt.

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Das Prinzip kann man hier schon sehen. Es ändert sich natürlich der Textinhalt. Weil der hat jetzt nichts mit dem Projekt für das nodeMCU zu tun.

    Bild hier  

    Diese Stapel funktionieren jetzt noch für die Benutzeroberfläche als solches. Ich werde diese Funktion aber raus nehmen, weil sie für dieses Projekt jetzt nicht benötigt wird. Statt dessen werde ich das Prinzip der Stapelverwaltung beibehalten, aber die Befehlsauswahl anpassen und am Ende muss das dann noch übersetzt werden, damit reine Codeblöcke für die Ablaufsteuerung auf einem µC entstehen, die übertragen werden können.


    MfG

  6. #6
    HaWe
    Gast
    das wäre für mich jetzt noch zu kryptisch und zu unübersichtich, aber mal abwarten...

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Ich habe mir Gedanken gemacht, zwei Mal drüber geschlafen und mich für diese Variante entschieden, die Schnittstellen, die meine Firmware hat, in der Benutzeroberfläche abzubilden.

    Bild hier  

    Dazu gehören Variablen, die für Berechnungen usw. benötigt werden. Zusätzliche, spezielle Funktionen (Standardfunktionen, wie Variablen manipulieren, Rechenoperationen, Sprünge usw. müssen nicht extra aufgeführt werden). Die einfache Programmabarbeitung in Blöcken (Stapel). Und das Definieren von speziellen Sprungzielen, hier unter Prozeduren. Eine Prozedur soll hier so definiert werden, dass die Bezeichnung und der Stapel angegeben werden, der zur Ausführung gelangt.

    Die einzelnen Geräte ( wie hier der ATmega328 ) bekommen eine eindeutige ID zugewiesen. Normalerweise spielt es keine Rolle, welcher Stapel für welches Gerät entworfen wurde, weil die benötigten Stapel zur Programmabarbeitung untereinander verkettet sind. Daher muss nur ein Stapel zu Anfang exakt zugeordnet und mit einer bestimmten Nummer versehen werden können.

    Ich denke, damit habe ich alles abgedeckt, was ich benötige, um die Programmierung eines Gerätes in der Benutzeroberfläche vornehmen zu können.

    Die Abbildung dient nur als Beispiel, um den Aufbau zu zeigen.

    MfG

Ähnliche Themen

  1. NodeMCU 1.0 e-ink und si7021
    Von Neuton23 im Forum NodeMCU-Board und ESP8266, ESP32-Serie
    Antworten: 3
    Letzter Beitrag: 29.12.2018, 10:13
  2. Ultraschallsensor am nodeMCU
    Von Moppi im Forum NodeMCU-Board und ESP8266, ESP32-Serie
    Antworten: 41
    Letzter Beitrag: 15.10.2018, 17:31
  3. nodeMCU an Arduino
    Von Moppi im Forum NodeMCU-Board und ESP8266, ESP32-Serie
    Antworten: 16
    Letzter Beitrag: 14.10.2018, 09:30
  4. NodeMCU als WLAN Lautsprecher
    Von littlekenny im Forum NodeMCU-Board und ESP8266, ESP32-Serie
    Antworten: 5
    Letzter Beitrag: 30.03.2018, 20:09
  5. nodeMCU zu nodeMCU: keine Kommunikations-Verbindung mehr nach wenigen Minuten
    Von HaWe im Forum NodeMCU-Board und ESP8266, ESP32-Serie
    Antworten: 0
    Letzter Beitrag: 02.10.2017, 14:01

Berechtigungen

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

12V Akku bauen