Überblick
Suchst du nach einer kostenlosen LVGL-Vorlage für Ereignisse oder einem Beispiel dafür, wie eingebettete UI-Interaktionen ohne handgeschriebenen Callback für jede Aktion verknüpft werden? Dieses PicoPixel-Projekt zeigt eine kompakte Ansicht mit 480 x 480 Pixeln mit Buttons, die über den PicoPixel-Event-Editor mit sichtbaren Aktionen verbunden sind.
Die Vorlage ist als praktische LVGL-Interaktionsreferenz aufgebaut. Sie zeigt, wie ein Buttonklick ein anderes Objekt aktualisiert, Deckkraft ändert, Text modifiziert, die Größe eines Ziels verändert und eine Animation abspielt. Nutze sie als Ausgangspunkt für touchgesteuerte ESP32-Dashboards, Kiosk-Ansichten, Smart-Home-Steuerungen, Wearable-Menüs, Einstellungs-Panels oder jede LVGL-UI, bei der der Nutzer direktes Feedback nach einem Schaltflächendruck braucht.
Die normale Vorschau auf der Arbeitsfläche zeigt die Oberfläche selbst. Die Events-Ansicht zeigt die Verknüpfung: Buttons links, Ziele rechts, Verbindungslinien dazwischen und das Event-Inspector-Panel, in dem Quelle, Trigger, Aktion, Wert und Ziel konfiguriert werden.
Enthalten
- 480 x 480 LVGL-Ansicht mit Interaktionen, ausgelegt für eingebettete Displays und schnelle Experimente.
- Fünf Button-Beispiele, die jeweils eine andere Art von UI-Reaktion zeigen.
- Deckkraft-Steuerungen, bei denen
Low OpacityundHigh Opacitymit demselben Zielbild verbunden sind. - Textaktualisierungsbeispiel, das den Button
Change Textverwendet, um ein Label zu ändern. - Eigenschaftsänderungsbeispiel, das
Set Properties - Sizeverwendet, um die Größe eines Zielobjekts zu ändern. - Animations-Trigger, der
Play Animationnutzt, um eine ereignisgesteuerte Bewegung oder einen Übergang zu demonstrieren. - Event-Editor-Verknüpfungsvorschau, mit sichtbaren Verbindungslinien und
Clicked-Auslöserknoten. - Aktions-Einstellungen im Inspector, die Quelle, Trigger, Aktion, Deckkraftwert und Zielfelder zeigen.
- Zielbilde, mit einer einfachen cyanfarbenen PicoPixel-Grafik, damit Zustandsänderungen leicht erkennbar sind.
- Doto-32-Schrift-Asset, verwendet für den Text in Punktschrift auf der Arbeitsfläche.
Asset-Überblick
Die Vorlage bleibt klein genug, um sie auf einen Blick zu verstehen. Im Assets-Panel zeigt die lokale Bibliothek:
- Bilder:
1, eine wiederverwendbare 500 x 500 cyanfarbene Grafik für die Zielbilde. - Farben:
0, wobei Farben direkt im Design angewendet sind. - Schriften:
1,Doto 32, verwendet für den Labeltext in Punktschrift. - Widgets:
0, damit das Beispiel auf Ereignisverknüpfungen innerhalb der Ansicht statt gespeicherte Widget-Assets fokussiert bleibt.
Im Ebenen-Panel erkennst du den übersichtlichen Aufbau dieser interaktiven Beispielansicht:
Screen 1, die 480 x 480 große Arbeitsfläche.Button 1bisButton 5, die klickbaren Quellen der Beispiele.Image 1,Image 2undImage 3, die sichtbaren Ziele für Deckkraft-, Größen- und Animationsänderungen.Label 1, das Textziel für das Change-Text-Beispiel.
Zum Lernen ist das besonders praktisch: Alle Quell- und Ziel-Widgets sind gleichzeitig sichtbar.
Struktur des Event-Editors
Wenn die Events-Ansicht aktiv ist, legt PicoPixel den Interaktionsgraphen über das LVGL-Layout. Der Screenshot markiert das Projekt mit Contains Events und zeichnet dann Verbindungslinien von den Button-Quellen zu ihren Zielen.
Low OpacityundHigh Opacityverwenden beide einenClicked-Trigger und führen zum selben Zielbild.Change Textverwendet einenClicked-Trigger und zeigt auf das Textlabel in Punktschrift.Set Properties - Sizeverwendet einenClicked-Trigger und zeigt zum Vergrößern oder Verkleinern auf ein Zielbild.Play Animationverwendet einenClicked-Trigger und zeigt auf ein Zielbild für die Animationswiedergabe.- Das rechte Events-Panel zeigt ein ausgewähltes Event mit
Source,Trigger,Action, Werteinstellungen wieOpacityundDestination.
An dieser Vorlage kannst du nachvollziehen, wie PicoPixel Benutzereingaben mit Änderungen an LVGL-Objekten verknüpft. Auslöser, Aktion und Ziel bleiben dabei sichtbar.
Benenne vor dem Export die wichtigen Objekte in PicoPixel um, zum Beispiel btn_low_opacity, btn_high_opacity, btn_change_text, btn_set_size, btn_play_animation, target_image und status_label. Klare Namen machen die exportierten LVGL-Event-Callbacks viel leichter zu überblicken.
Warum das gut für LVGL funktioniert
LVGL-Anwendungen brauchen meist viele kleine Interaktionen: einen Button klicken, ein Label aktualisieren, den Zustand eines Objekts ändern, ein Bild bewegen, Ansichten wechseln oder eine Animation starten. Dieses Beispiel hält diese Muster sichtbar und wiederverwendbar.
- Buttons sind native LVGL-Eingabeobjekte, daher funktioniert dasselbe Muster mit Touch, Encoder-Fokus oder anderen Eingabetreibern.
- Der Auslöser ist direkt sichtbar, mit
Clicked-Knoten im Editor, sodass klar ist, was jede Aktion startet. - Ziele sind normale LVGL-Objekte, einschließlich Bildern und Labels, sodass die exportierte UI aus der Firmware heraus bearbeitbar bleibt.
- Deckkraft- und Eigenschaftsänderungen sind leichtgewichtig, wodurch die Beispiele für kleine eingebettete Displays geeignet sind.
- Ereignisse starten eigenständige Animationen, etwa wenn ein Schaltflächenklick eine Bewegung auslöst.
- Das Projekt lässt sich exportieren als Standard-LVGL-8.x-Code, integrierbar in ESP-IDF, Arduino, PlatformIO, STM32, Zephyr oder einen anderen LVGL-Build.
Ansteuerung zur Laufzeit
PicoPixel kann die Event-Verknüpfung für dich generieren, aber das Konzept entspricht direkt normalen LVGL-Callbacks. Wenn du die exportierte UI mit eigener Firmware-Logik erweitern musst, lautet das Muster meistens: Event-Code prüfen und dann das Zielobjekt aktualisieren.
static void low_opacity_clicked_cb(lv_event_t * e)
{
if (lv_event_get_code(e) != LV_EVENT_CLICKED) return;
lv_obj_set_style_opa(ui_target_image, LV_OPA_30, 0);
}
static void change_text_clicked_cb(lv_event_t * e)
{
if (lv_event_get_code(e) != LV_EVENT_CLICKED) return;
lv_label_set_text(ui_status_label, "Clicked");
}Nutze den visuellen Editor für die übliche Verknüpfung, und verwende eigene C-Callbacks für Verhalten, das von Firmware-Zustand, Sensordaten, Geräteeinstellungen oder Netzwerkantworten abhängt.
Anpassungsideen
Verwende dies als kostenlose LVGL-Interaktionsvorlage und tausche anschließend die Demo-Bedienelemente gegen deine eigene Produkt-UI aus.
- Ersetze die fünf Demo-Buttons durch Schalter für Einstellungen, Menüpunkte, Dashboard-Steuerungen oder Hardware-Befehle.
- Wandle die Deckkraft-Aktionen in deaktivierte/aktivierte, Warn- oder ausgewählte/nicht ausgewählte Zustände um.
- Verwende die Textaktion für Statusmeldungen wie
Connected,Saving,Armed,ChargingoderComplete. - Mache aus dem Größenbeispiel einen Fortschrittsindikator, eine expandierende Karte, einen Effekt beim Drücken oder einen Benachrichtigungspuls.
- Nutze das Animationsbeispiel für Seitenübergänge, Bestätigungsfeedback, Ladezustände oder Aufmerksamkeitshinweise.
- Füge Navigationsaktionen zwischen mehreren LVGL-Ansichten hinzu, sobald die Beispiele mit nur einer Ansicht klar sind.
- Kombiniere die Buttons mit echten Firmware-Events, etwa Helligkeit ändern, ein Relais umschalten, einen Modus wählen oder eine Kalibrierung starten.
Export in dein Projekt
Öffne die Vorlage in PicoPixel, prüfe den Event-Graphen, benenne die wichtigen Quellen und Ziele um und exportiere das Projekt anschließend als LVGL-C-Code. Die generierten Dateien können wie jeder andere PicoPixel-Export zu einem bestehenden Embedded-Projekt hinzugefügt werden.
Für ESP32-Projekte ist der übliche Ablauf:
- Konfiguriere deine Display- und Eingabetreiber.
- Öffne diese Events-Vorlage und passe Buttons, Labels, Bilder und Aktionen an.
- Exportiere die PicoPixel-UI als LVGL-C-Code.
- Füge die exportierten Dateien deinem ESP-IDF-, Arduino- oder PlatformIO-Projekt hinzu.
- Rufe
ui_init()auf, nachdem LVGL und dein Display-Treiber bereit sind. - Ergänze eigene Firmware-Callbacks nur dort, wo der visuelle Event-Editor nicht ausreicht.
Mehr Hintergrund findest du im PicoPixel-Event-Editor-Leitfaden, im ESP32-LVGL-UI-Tutorial und im Leitfaden zur Verwendung von PicoPixel-Vorlagen.
Geeignete Einsatzbereiche
Diese Vorlage eignet sich als Ausgangspunkt für:
- LVGL-Event-Beispiele
- Interaktionen per Schaltflächenklick
- ESP32-Touch-UI-Prototypen
- Einstellungsseiten und Bedienpanels
- Smart-Home-Dashboards
- Wearable- oder Handheld-Menüs
- Beispiele für Animations-Trigger
- Text- und Bildzustandsänderungen
- Lernen, wie im PicoPixel-Editor angelegte Ereignisse in LVGL umgesetzt werden

