Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Eigene LCD-Menüs auf Arduino mit XOD erstellen – ohne Programmieren

Komponenten und Zubehör

Arduino UNO 1
DFRobot Arduino LCD/Keypad Shield 1

Apps und Online-Dienste

Über dieses Projekt

Moderne Arduino-Mikrocontroller bieten beachtliche Rechenleistung für gleichzeitige Überwachung und Steuerung diverser Hardware und Sensoren. Die grafische XOD-IDE vereinfacht Rapid Prototyping, doch mit wachsender Komplexität stellt sich die Frage der Benutzerführung: Wie Informationen anzeigen und logisch steuern? Dedizierte Taster reichen für einfache Projekte, doch bald fehlen Platz und logische Anordnung. Displays sind die Lösung – wie bei Mikrowellen mit Menüs für Einstellungen. Zwar kann zu tiefes „Menu-Diving“ die UX beeinträchtigen, doch menügeführte Interfaces sind bei komplexen Projekten unverzichtbar.

Software-Frameworks für Menüs in C/C++ haben oft steile Lernkurven und sind schwer schnell anzupassen, da alles mit allem verknüpft ist. Ziel dieses Projekts: XOD nutzen, um menügeführte Interfaces per Drag-and-Drop/WYSIWYG schnell zu prototypen. Ein- und Ausgänge der Menüstruktur sind modular und generisch – nutzbar mit vielfältigen Eingaben (Taster, Encoder) und Ausgaben (Text-LCDs, andere XOD-untersützte Displays).

Unbekannt mit XOD? Zuerst Tutorials auf xod.io ansehen.

Beispiel-Sketch: Menü-Controller & Menübaum

Eigene LCD-Menüs auf Arduino mit XOD erstellen – ohne Programmieren

Menü-Controller-Sektion (rechts im Patch)

Vier Knoten kaskadiert:

  1. Analog-Eingang – verbunden mit Arduino A0. Das LCD/Keypad-Shield legt unterschiedliche Spannungen für jede Taste (hoch, runter, links, rechts, select) auf A0.
  2. Tasten-Decoder – wandelt Spannungen in Pulse für jede Taste um. Einstellbarer „Timeout“ für Entprellung.
  3. Menü-Controller – verarbeitet Pulse, handhabt Navigation im Menübaum und Zustandsänderungen. Akzeptiert einen Zahlenwert (z. B. Potentiometer) als änderbaren Parameter. Bei Auswahl eines „Blatt“-Menüs (Endknoten) gibt dieser einen Puls und Parameteränderung aus.
  4. 16×2 LCD-Controller – Standardbibliothek, austauschbar gegen andere Displays.

Menübaum-Sektion (oben im Patch)

Baumartige Struktur mit drei Knotentypen:

„Invoke“ bei einem Zweig steigt in dessen Untermenü ab (statt Ausgabe zu erzeugen). Verschachtelung beliebig tief (Sub-Sub-Menüs), begrenzt nur durch RAM/Flash des Arduino.

Ausgabe-Sektion

Blatt-Menüs geben Pulse aus, die über Bus an Flip-Flops gehen – schalten digitale Pins (Relais, LEDs). Pulse sind allgemein nutzbar: z. B. Parameter in XOD-Buffer speichern für spätere Nutzung.

Bekannte Probleme

Eigene LCD-Menüs auf Arduino mit XOD erstellen – ohne Programmieren

Weiterentwicklung

Zweites Beispiel (19.02.2019)

Menü-Controller nimmt externen/internen Wert (hier Counter mit Clock) entgegen, zeigt aktuellen/vorherigen Wert im Menü, speichert neuen Wert per „Invoke“ in Buffer.

Eigene LCD-Menüs auf Arduino mit XOD erstellen – ohne Programmieren

„Invoked“- und „Param“-Ausgänge von Blatt „A“ gehen an Buffer-Knoten. Buffer-Ausgang zurück zur Anzeige (mit Defer-Knoten gegen Feedback-Loops). Neuer Wert wird gespeichert und sofort angezeigt.

Eigene LCD-Menüs auf Arduino mit XOD erstellen – ohne Programmieren

Code

XOD Menu System Library

https://xod.io/libs/bitrex/xod-menu-system-11

In XOD: Datei → Bibliotheken hinzufügen → „bitrex/xod-menu-system“

Schaltplan

Direct in XOD IDE öffnen: xodmenusystemrev1_1_4-1-19_fLVYrcSgbX.xodball

Herstellungsprozess

  1. DTMF-Decoder mit Arduino bauen – ganz ohne zusätzlichen IC
  2. Monitor-Ambilight selbst bauen mit Arduino Nano & WS2812B LEDs
  3. Ultraschall-Schwebegerät mit Arduino bauen – Akustische Levitation Schritt für Schritt
  4. LCD-Animationen & Spiele mit Arduino UNO erstellen
  5. Intelligentes Voltmeter mit Arduino & Smartphone bauen – Einfaches DIY-Projekt
  6. Echtzeit-IoT-Herzfrequenzmonitor mit Arduino & MAX30100
  7. Arduino UNO WiFi Webserver: LED per Browser steuern
  8. Intelligenter Parkplatzzähler: Echtzeit-Fahrzeugverfolgung mit Arduino, Processing & PHP
  9. Arduino-gesteuertes automatisiertes Chrome Dino-Spiel bauen
  10. Kompaktes FM-Radio mit Arduino Nano und RDA5807M selbst bauen