Hallo, ich möchte für ein Projekt ein eher ansprechendes UI entwickeln: - 3,5 bis 5 Zoll TFT - Touch Eingabe - soweit mir möglich ansprechendes Design Ich experimentiere dazu gerade mit einem ESP32 und einem auf einem ESP32 Terminal von Elecrow: https://www.elecrow.com/esp-terminal-with-esp32-3-5-inch-parallel-480x320-tft-capacitive-touch-display-rgb-by-chip-ili9488.html Die Design Software dazu ist SquareLine_Studio. Das ganze lässt sich in exportieren und in ein Arduino Projekt einbinden. Allerdings für mich eher sehr fummelig und schlecht integriert. Zum anderen habe ich es noch nicht außerhalb der Arduino IDE zum laufen bekommen, die ich sehr gerne vermeiden würde. Jetzt habe ich das ganze grundsätzlich in Frage gestellt. Ich muss neben dem Display nur ein bisschen I2C betreiben, was auf fast jeder Hardware neben einem ESP32 machbar sein wird. Was haltet ihr für die beste Hard/Software für ein derartiges Projekt? Ich tendiere aktuell dazu gleich auf einen Raspi zu gehen :-/ Ich bin dankbar für alle Meinungen. LG Flo
Nicht B. schrieb: > Was haltet ihr für die beste Hard/Software für ein derartiges Projekt? Kommt darauf an, was du selber kannst. Und darauf, welches Display du günstig und (zuverlässig) langfristig einkaufen kanst. Wenn es nur um eine einmalige Lösung geht, ist wahrscheinlich irgendwas von Nextion oder Riverdi der schnellste Weg zum Ziel.
Die Aufgabenstellung ist als erste Salamischeibe übergeben, jedoch ist ein UI imho etwas mehr als nur ein paar bunte Icons mit Berührungsempfindlichen Flächen... Es sind Infos/Daten die an das UI übergeben werden - wo kommen die her und in welchem Format bzw. mit welchem Protokoll (sowohl physikalisch als auch logisch) stehen die dann zur Verarbeitung bereit? Des weiteren wird dann auch möglicherweise etwas eingegeben, auf welchem Weg soll das dann weitergereicht werden? Bereits vor über 30 Jahren funktionierten atemberaubende UI auf einer 8-Bit-CPU in einem Brotkasten, ein ESP32 mit 32-Bit-CPU soll so etwas nicht können? Klar, man kann mit einem 40-Tonner auch Brötchen holen, das ist möglicherweise schon die beste Option (weil man im Auflieger wohnt und die Parkplätze vorm Bäcker groß genug sind). Es ist sicherlich hilfreich für alle Beteiligten wenn noch die eine oder andere Salamischeibe nachgereicht wir um eine bestmögliche Lösung zu finden.
Ich bin mir nicht ganz sicher, aber ein wt32sc01plus ist ein esp32 mit lvgl unterstützung. Es ist ein bisschen schwierig das ganze zum laufen zu bekommen, aber bei dem Modell wird das 3.5" Display im Rahmen über die esp32 HW LCD API als 8080 gesteuert. 8 bit parallel bei 20mhz mit Framesync, doppel framebuffer etc.. alles Hardware verwaltet. Das entspricht der Datenrate eines 160Mhz Spi. Ich habe es noch nicht selbst ausprobiert (ich liefer selbst nur einen Pointer auf Bilddaten die dann per dma geschrieben werden), aber lvgl Beispiele habe ich auch schon gesehen. Edit: um platformIO kommt man da aber nicht drum herum, wie bei allen großen lvgl Projekten auch.
:
Bearbeitet durch User
Nicht B. schrieb: > Allerdings für mich eher sehr fummelig und schlecht integriert. Zum > anderen habe ich es noch nicht außerhalb der Arduino IDE zum laufen > bekommen, die ich sehr gerne vermeiden würde. in den Links ist doch eine ausführliche Beschreibung wie es auch mit PIO geht: https://www.elecrow.com/wiki/index.php?title=ESP_Terminal_3.5-inch_Display_PlatformIO_Tutorial lvgl ist eine sehr gute GUI Library, da gibt es nicht viel vergleichbares. Man kann auch ohne das SLS eigene GUIs erstellen, lvgl ist sehr gut dokumentiert und zu jedem Widget gibt es Beispiele. SLS gehört auch nicht direkt zu lvgl, da gibt es gerade etwas Zoff im Paradies und die beiden arbeiten nicht mehr zusammen.
Nicht B. schrieb: > ich möchte für ein Projekt ein eher ansprechendes UI entwickeln Es gibt sehr ansprechende UI durch photorealistisch designte Backgrounds 'sieht aus wie der emulierte Taschenrechner' oder 'das Cockpit eines Flugzeugs' die aber an Software nur Bitmaps und Klickpositionen erfordern. Ein gutes UI ist also keine Frage der Nicht B. schrieb: > beste Hard/Software sondern des eigenen Könnens.
Michael B. schrieb: > Es gibt sehr ansprechende UI durch photorealistisch designte Backgrounds > 'sieht aus wie der emulierte Taschenrechner' oder 'das Cockpit eines > Flugzeugs' die aber an Software nur Bitmaps und Klickpositionen > erfordern. Eben.. ich suche mir sämtliche Bitmaps auf freepik oder so selbst zusammen, schneide und bearbeite die Photos in Gimp.. Speichere die als Raw in einer Datenpartition im Flash, lade diese teils ins PSRam(Transparenzbilder vorweg berechnen) und habe dann eigene Text und Grafikroutinen die am Ende einfach nur mit nem Pointer,width,height,x,y ins Display schreiben.. dabei bleibt sogar noch Rechen Zeit für 2 Layer und Transparenz. Was natürlich bei SquareLine etc. cool ist das man sich alles selbst zusammenklicken kann und das ganze dann Schick und Performant wie ein Gui im Handy läuft. Allerdings fand ich den Weg mit Squareline für eigene Spielereien zu aufwendig. Tut auch so.
eine gute GUI hängt ja nicht nur an schönen Bitmaps, die lvgl Widgets bieten da einiges mehr. Es gibt die ganzen Standard Eingabemöglichkeiten wie DropDown Lists, Spinner, Picker, Buttons, Slider, usw. Da stecken zig Mannjahre Entwicklung drin, das kann mehr nur als ein paar Bitmaps anzeigen.
Michael B. schrieb: > Ein gutes UI ist also keine Frage der > > Nicht B. schrieb: >> beste Hard/Software > > sondern des eigenen Könnens. Nicht nur das, auch ein ergonomisches und intuitives Design der Elemente und eine logische Bedienerführung sind wichtiger als der Prozessor. Nicht B. schrieb: > ich möchte für ein Projekt ... Alles nur per "Touch"? Was ist das für ein Projekt, wo wird es eingesetzt und wer benutzt es? Blackbird
:
Bearbeitet durch User
Nicht B. schrieb: > Hallo, > > ich möchte für ein Projekt ein eher ansprechendes UI entwickeln: > - 3,5 bis 5 Zoll TFT > - Touch Eingabe > - soweit mir möglich ansprechendes Design > Ich tendiere aktuell dazu gleich auf einen Raspi zu gehen :-/ Also das geht auf dem RasPi sehr schmerzlos zu realisieren. Habe erst vorgestern ein Waveshare 3,5 Zoll mit Touch an einen RasPi3B+ angehängt. Läuft out-of the box und bei Linux kann man dann viele verschiedene GUI-Toolkits und Programmiersprachen verwenden. Ob das der richtige Weg ist hängt aber von ganz anderen Faktoren ab und läßt sich nicht pauschal beantworten: - wird das ein Einzelstück oder ist es für Serienfertigung gedacht, wo es auf jeden Cent ankommt? - was kostet Dich die Entwicklungszeit? - womit möchstest Du Dich bevorzugt beschäftigen: Treiber&Low-Level und knapper Speicher oder Gestaltung der GUI? - was kostet Dich die jeweilige Hardware? - wie schnell/langsam darf das booten? - willst Du was lernen oder ein System möglichst schnell fertigstellen? - spielt Stromverbrauch eine Rolle oder nicht?
:
Bearbeitet durch User
J. S. schrieb: > in den Links ist doch eine ausführliche Beschreibung wie es auch mit PIO > geht: > https://www.elecrow.com/wiki/index.php?title=ESP_Terminal_3.5-inch_Display_PlatformIO_Tutorial Danke für den Link. Das Tutorial kannte ich in der Tat noch nicht. Wie hast Du das gefunden? Selbst wenn ich nach dem genauen Titel suche, kennt google diese Seite nicht :-/ Das hat mich tatsächlich sehr zügig zu einer kompilierbaren Version gerbracht. Allerdings auch wirklich nur mit exakt den Versionen aus dem Tutorial, die zum Teil nicht mehr aktuell sind - aber das passt für den Moment. Was mir hier noch nicht ganz klar ist: Wieso wird hier parallel LovyanGFX und LVGL verwendet? Ersetzt das eine nicht das andere? Ansonsten versuche ich gerade LVGL von SPI auf das RGB Interface umzustellen... ich bin dran, falls es jemand sofort weiß auch gerne :-)
Alles was sonst geschrieben wurde stimmt schon auch großteils. Ich weiß, dass zu einem ansprechenden UI mehr gehört als ein paar Bilder. Ich wollte damit zum Ausdruck bringen, dass ich ungern auf absolutem Low-Level aufsetzen möchte und selbst einzelne Linien zeichnen muss. Thema Preis, Bootzeit, ewiges "Kanonen auf Spatzen" Argument: Es ist ein Einzelstück und wird es vermutlich auch bleiben. Daher nehme ich auch gerne einen 100€ Pi mit Display statt einem 40€ ESP mit Display, wenn ich das Problem damit in der halben Zeit lösen kann. Das Thema Bootzeit ist hier natürlich ein Faktor.
Nicht B. schrieb: > Wie > hast Du das gefunden? du hast das Wiki verlinkt, das muss man nur lesen und ein- oder zwei Links weiter folgen... Nicht B. schrieb: > Ersetzt das eine nicht das andere? LovyanGFX oder Bodmer/TFT_eSPI liefern nur die Basis für den lvgl Treiber. Für das Schreiben auf das Display braucht man eine Routine die schnell den (partiellen) Framebuffer in das Grafik RAM überträgt, und da haben die genannten Libs gut optimierte Funktionen für viele verschiedene Displays. Oder auch das Auslesen der Touch Koordinaten wird aus diesen Libs verwendet und im lvgl Input Treiber eingebunden.
Nicht B. schrieb: > Das Thema Bootzeit ist hier natürlich ein Faktor. Denn spezifiziere diesen Faktor! Grob: du kannst die Bootzeit eines RasPi vom PowerUp bis zum Start deiner Anwendung auf ca. 10s bringen. Alles darunter ist illusorisch. Du kannst während dieser 10s nichts eigenenes anzeigen, höchstens in der letzten Sekunde (aber immerhin über die ganze Zeit für einen neutralen "schwarzen Bildschirm" sorgen). Wenn das für dich reicht, dann entwickelst du halt einfach eine eigenen App mit dem GUI-Framework, was du am besten beherschst. Da du vermutlich überhaupt keines beherrschst: such' dir irgendeines raus... Das eigentliche Problem "Display" hast du damit aber noch nicht gelöst. Du hast die Wahl zwischen (vergleichweise teuer, aber einfach durch was anderes ersetzbar) einem HDMI-Display oder unzähligen "parallelen" LCDs, die du allerdings erst mal am RasPi zum Laufen bringen musst. Ohne ein ausführliches DB des Displays meist ziemlich hoffnungslos. Es sei denn, du nimmst eines, wo andere Leute diese Arbeit bereits erledigt haben und benutzt deren Setup. Also z.B. diverse Displays von Waveshare. Oder letztlich: irgendwelche SPI-Gülle. Das ist aber für ein brauchbares GUI mit hohen grafischen Anforderungen (animierte Effekte) typisch viel zu langsam.
Ich empfehl auch Nextion als Start. Ein GUI ist dort schnell und guenstig zusammengeclickt. Alternativ sollte man das GUI auf dem PC Simulieren, ob die Bedienung ueberhaupt Sinn macht.
Wir haben auch bei vielen Projekten Nextion LCDs im Einsatz. Die kann ich auch nur empfehlen. Kommunikation läuft über UART und alle "Bilder und Schrift" ist im LCD selbst gespeichert. Es muss also nur die UART Kommunikation im Mikrocontroller laufen.
J. S. schrieb: > eine gute GUI hängt ja nicht nur an schönen Bitmaps Das ganz sicher nicht, eine "schöne" hingegen schon. Das Problem: Die ganzen Deppen wollen erstmal nur "schön", nicht gut. Das gut auch wichtig ist, fällt diesen Honks immer erst viel später auf...
Ich nutze seit ein paar Jahren TouchGFX von ST und habe damit bereits mehrere Projekte realisiert. Als Hardware kann man eines der vielen ST Demo Boards verwenden, beim TouchGFX wählt man das Board aus und schon geht es los. Relativ reinfach gemacht und funktioniert gut. Der Bildaufbau funktioniert gut und die bereitgestellte Steuerelemente reichen für mein Anwendungsfall aus. (Text, Buttons, Grafiken, Chat, Listen, Container für komplexere zusammengesetzte Elemente) Als Board nutze ich das STM32H7B3I-DK da es relativ kompakt ist. Programmieroberfläche: - STM32CubeIDE - STM32CubeMX - TouchGFX gibt es alles kostenlos von ST zum Download. Unterstützung gibt es dazu viel im Internet, gute Doku, Forum und YT Demos. Nachteil: Begrenzt auf STM32 Boards, bzw. Boards auf dem man einen STM32 drauf hat, also kein ESP32.
Nicht B. schrieb: > Was mir hier noch nicht ganz klar ist: Wieso wird hier parallel > LovyanGFX und LVGL verwendet? Ersetzt das eine nicht das andere? Jaein, lvgl nutzt Treiber (inkludierte Datei in der alles für das Display festgelegt wird). In Arduino möchte wohl keiner stundenlang in den Lvgl Sourcen rumwühlen, also ist lovyan quasi ein Wrapper auf den Treiber in Arduino Style. Lovyan ist optimierte e_spi mit erweiterten Funktionen aus adafruit gfx Sonst müsste man den Displaytreiber ohne Arduino in IDF anpassen. > Ansonsten versuche ich gerade LVGL von SPI auf das RGB Interface > umzustellen... ich bin dran, falls es jemand sofort weiß auch gerne :-) Mit RGB meinst du die parallele Schnittstelle? (16 bit parallel?) Das könnte das im esp32 integrierte lcd HW Interface hinbekommen, da müsste es vielleicht irgendwo ein Beispiel für lovyan geben. Das ist Doppel so schnell wie mein 8bit parallel.
:
Bearbeitet durch User
Markus M. schrieb: > Nachteil: Begrenzt auf STM32 Boards, bzw. Boards auf dem man einen STM32 > drauf hat, also kein ESP32. Obwohl es technisch natürlich auch ginge, nur wird das nicht unterstützt und ist wahrscheinlich auch lizenztechnisch nicht erlaubt. Bevor ST sich Draupner einverleibt hat war touchGFX offen und es gab Beispiele für NXP oder andere Controller. Dafür war ein Teil der Lib geschlossener Binärcode und hat ein Wasserzeichen in die GUI gemalt. touchGFX sieht auch sehr gut und innovativ aus, aber ich mag lvgl wegen der Offenheit lieber.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.