From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Integration eines Low Cost-Touchscreen-Displays als Bedienoberfläche für das myRIO-System

"Das Nextion-Touchdisplay ist zur Bedienung von Perfusions und Prüfsystemen sowie zur Überwachung von automatisierten Prozessen als schnelle Lösung im Prototypenbau hervorragend geeignet, da sich die grafische Bedienoberfläche eindeutig und intuitiv gestalten lässt."

- B. Sc. Carina Micheler, Technische Universität München, Lehrstuhl für Orthopädie und Sportorthopädie, Labor für Biomechanik

Die Aufgabe:

Für eine Prozessüberwachung wurde eine Bedienoberfläche für ein Embedded-Hardwaregerät gefordert. Damit die Gerätekonfiguration und Prozessvisualisierung unabhängig von einem PC durchgeführt werden kann, wird ein NI myRIO Echtzeitsystem um ein resistives low-cost Touchdisplay erweitert.

Die Lösung:

Die Programmierung des NI myRIO wurde mit LabVIEW-RT und dem FPGA-Modul realisiert, sowie Informationen zwischen dem Touchdisplay Nextion (5 Zoll, ITEAD Studio) ausgetauscht. Mit VISA Read/Write können Befehle zur Displaysteuerung empfangen bzw. gesendet werden. Die Grafikverarbeitung findet am Display statt, dessen Ablaufsteuerung über einen Editor am PC konfiguriert und auf das Display geladen wird.

Autor(en):

B. Sc. Carina Micheler - Technische Universität München, Lehrstuhl für Orthopädie und Sportorthopädie, Labor für Biomechanik
Dipl.-Ing. Peter Foehr - Technische Universität München, Lehrstuhl für Orthopädie und Sportorthopädie, Labor für Biomechanik
Prof. Dr. Rainer Burgkart - Technische Universität München, Lehrstuhl für Orthopädie und Sportorthopädie, Labor für Biomechanik

 

Kurzfassung

Im Rahmen eines Studienprojekts wurde untersucht, wie das Embedded Hardwaregerät myRIO mit einem Low Cost- Touchdisplay (Nextion 5´´, ITEAD Studio) als grafische Bedienoberfläche erweitert werden kann. Ziel der Applikation ist eine visuelle Konfiguration eines biomedizinischen Perfusionssystems für das Tissue Engineering (TE). Im Gegensatz zu integrierten Lösungen werden ausschließlich ereignisbasierte Datenpakete zwischen dem Embedded Hardwaregerät und dem Display über eine serielle Schnittstelle ausgetauscht. Die Grafikverarbeitung findet eingebettet am Touchdisplay statt, dessen Ablaufsteuerung über einen Editor am PC konfiguriert und anschließend auf das Display geladen wird.

 

Motivation

Embedded Hardwaregeräte wie myRIO besitzen standardmäßig keinen eigenen Grafikprozessor für Visualisierungsaufgaben. Um die Steuer- und Regelungsprozesse auf dem Gerätetyp dennoch visuell darstellen zu können, kann wahlweise eine Datenverbindung zu einem grafikfähigen PC hergestellt oder auf zusätzliche Hard- und Softwareprodukte wie alphanumerische Anzeigen und deren Treiber bzw. Software Bibliotheken zurückgegriffen werden. Der hier gewählte Ansatz ist die Verwendung eines peripheren Displays als direkte grafische Bedienoberfläche (Graphical User Interface, GUI), das über die serielle Schnittstelle (Universal Asynchronous Receiver Transmitter, UART) angesprochen wird. In diesem Studienprojekt wird das resistive Low Cost- Touchscreen -Display Nextion von ITEAD verwendet und aufgezeigt, welche Möglichkeiten der Prozessvisualisierung sich für myRIO ergeben.

 

Ein Anforderungskriterium betrifft die Tauglichkeit der Bedienstruktur für den zukünftigen Anwenderkreis des Perfusionssystems. Dieser Anwenderkreis muss in eindeutiger Weise und prinzipiell auch ohne Einweisung erfolgreich Versuche durchführen können. Dabei dürfen weder Systemkomponenten beschädigt noch Verbrauchsmittel verschwendet werden. Im Hinblick auf die typische Versuchsdauer in der Gewebezüchtung von mindestens drei Wochen im 24/7 Betrieb ist ein deterministisches Verhalten des Steuerungscodes nötig, was für den Einsatz des myRIO unter Verwendung von LabVIEW Real-Time und dem LabVIEW FPGA Module spricht. Auf die Verwendung eines Überwachungs PC muss nicht verzichtet werden, jedoch war es ein Wunsch der Bedienergruppe, die Konfiguration und Überwachung der Versuche unabhängig von einem PC durchführen zu können, weswegen das ansonsten „headless“ (ohne Visualisierung) arbeitende myRIO ein vollwertiges Grafikdisplay mit Touch Funktionalität erhalten soll, ohne jedoch selbst einen Grafikprozessor zu besitzen.

 

Methodik

Für die Versuchskonfiguration und eine anschließende Prozessvisualisierung wurde ein resistives TFT Touchdisplay des Herstellers ITEAD verwendet (Tabelle 1). Dieses Display besitzt einen eigenen Prozessor (ARM Cortex M0) und Speicherbausteine zur Manipulation der Grafikoberfläche, sodass diese Rechenleistung nicht von der Hauptsteuerung bereitgestellt werden muss. Die Kommunikation zwischen Hauptsteuerung und Display führt über die serielle Schnittstelle, die beide Geräte in Form eines Hardwarebausteins besitzen. Zum gegenwärtigen Zeitpunkt sind die Nextion -Displays in den Varianten „Basic“ (Touchdisplay ohne weitere Zusatzfunktionen) und „Enhanced“ (Touchdisplay mit Zusatzfunktionen wie z. B. Echtzeituhr und Digitalein /- ausgabeleitungen) verfügbar. Beide Varianten sind in mehreren Bildschirmdiagonalen bzw. Auflösungen erhältlich (2,4´´ bis 7´´ bei 320 x 240 bis 800 x 480 Pixel). In diesem Projekt wird das 5´´-Nextion-Enhanced-Modell (NX8048K050) mit einer Auflösung von 800 x 480 px und einer an die digitalen I/O Ports angeschlossenen Erweiterungsplatine mit sechs Tastern, einer Leuchtdiode und einem Piezoschallwandler (als einfacher Tongenerator) verwendet.

 

5´´ Nextion Enhanced

Auflösung

800 x 480 Pixel

Farben

65.536

Flash-Speicher

32 MB

RAM

8.192 Byte

EEPROM

1.024 Byte

Logikspannung

3,3 V (5V-tolerant)

Versorgungsspannung

5 V

Betriebsstrom

410 mA

Visueller Bereich

108 x 64,80 mm

Layout-Größe

118,5 x 77,5 mm

Preis

USD 71,90

Tabelle 1: Hardware-Spezifikationen des verwendeten Displays

 

Für die Erstellung der Grafikoberfläche und der dazugehörigen Ereigniscodes wird der vom Hersteller kostenfrei angebotene „Nextion-Editor“ für aktuellen Versionen des Betriebssystems „Microsoft Windows“ verwendet (Bild 1). Mit diesem Editor wird der Programmieraufwand deutlich reduziert, da nicht wie sonst üblich eine Pixelmaske über den Mikrocontroller erstellt und gesendet werden muss, sondern bereits vorgefertigte Funktionen bereitstehen, die nur noch in ihrer Erscheinungsweise (Drag & Drop) und dem Logikverhalten (C ähnlicher Dialekt) angepasst werden müssen.

 

Zu den Grundbausteinen des Editors gehören unter anderem Text /Nummernfelder, Buttons, Bilder, Schieberegler und Fortschrittsanzeigen. Diese Funktionsbausteine können auch individuell mittels Bildern gestaltet werden. In diesem Projekt wurden die Bedienelemente im beliebten LabVIEW Silver Style gehalten, was gruppenintern zu einem hohen Wiedererkennungswert der Bedienoberfläche beiträgt, da dieser Stil bei vielen intern entwickelten Laborgeräten verwendet wurde. Im Hintergrund ablaufende logische Elemente wie Timer bzw. lokale und globale Variablen werden ebenfalls unterstützt. Darüber hinaus können einzelne Eigenschaften der Komponenten über Befehle verändert sowie Basisfunktionen wie ifIf , Ffor  und whileWhile Schleifen eingegliedert werden. Der Hersteller hat zudem die gesamte Codereferenz in einem eigenen Wiki online zur Verfügung gestellt. Nach Erstellung der Grafikoberfläche kann die sogenannte hmiHMI-Datei auf dem PC in einem Emulator getestet werden. Die Kompilierung der Visualisierungsapplikation erfolgt PC seitig und erzeugt eine sogenannte tftTFT Datei, die anschließend über eine SD Karte oder via PC seitigem COM Port auf das Display übertragen wird. Der echtzeitfähige Steuerungscode auf dem myRIO wird ebenfalls PC seitig erstellt (in LabVIEW) und in diesem Projekt über eine LAN-Verbindung auf das Zielgerät kopiert (Bild 2).

 

Nach Übertragung der Konfigurationsdaten auf das periphere Display kann damit begonnen werden, mit weiteren Systemen zu kommunizieren – in diesem Fall mit einem in LabVIEW entwickelten Virtuellen Instrument (VI), das auf einem myRIO abläuft (Bild 2). Mit den LabVIEW Funktionen „VISA Read“ bzw. „VISA Write“ können Befehle als „String” aus dem Nextion -Display empfangen bzw. an das Nextion- Display gesendet werden. Wird z. B. von Seiten des Nextion- Displays ein String mittels printPrint-„Test“- bzw. print Print t0.txt-Befehl (Textinhalt eines Textbausteins) Befehl übertragen, so kann dieser direkt über den „VISA Read“-Funktionsblock ausgelesen werden. Wird jedoch ein Wert byteweise als Block von vier Bytes, beginnend mit dem niederwertigsten Byte, mit print 123 bzw. print n0.val (Inhalt eines Nummernfelds) übertragen, so werden nur maschinenlesbare Zeichen ausgegeben, und eine zusätzliche Konvertierung mittels „String to Byte Array“ ist notwendig. Beim Senden einer eigenen Aussage und keinem Bausteininhalt kann somit anhand der Anführungsstriche entschieden werden, ob ein String oder Value übertragen wird. Werden mehrere Werte gleichzeitig übermittelt, ist LabVIEW-seitig eine Aufspaltung mithilfe der Funktion „Split 1D Array“ erforderlich (Bild 3, oben).

 

Die Kommandos von Seiten des myRIO an das Nextion- Display werden über die Funktion „Format Into String“ zusammengeführt und mit dem Abbruchsignal „0xFF 0xFF 0xFF” übertragen. Dabei ist zu beachten, dass keine Leerzeichen zwischen den einzelnen Input-Bausteinen erzeugt werden. Dies ist über den „Format-String“ Eingang zur Formatierung der einzelnen String-Bausteine zueinander zu realisieren (hier: %s%s%s%s). Dabei handelt es sich um eine automatische Operation, die über einen Doppelklick auf den Baustein aufgerufen werden kann und hier zur Veranschaulichung herangezogen wird. Anstelle eines Strings kann ebenso eine Gleitkomma  oder Ganzzahl als Input Value eingebunden werden. In diesem Fall lautet der „Format-String“-Input %s%s%b%s, wobei %b für binäre Daten steht. Texte wie auch Werte werden mittels „VISA Write“ als String übertragen, jedoch sind Buchstabenfolgen wie bei der herkömmlichen C Programmierung in Anführungsstriche zu setzen (Bild 3, unten). Via serieller Schnittstelle können allerdings keine ifIf-, whileWhile- und forFor-Schleifen an das Display übermittelt werden. Allerdings kann dies mithilfe einer Hilfsvariablen umgangen werden, indem diese die entsprechende Schleife auf dem Controller des Empfängers auslöst.

 

Beispielhaft wird hier der Abschnitt eines Versuchsstarts betrachtet: Auf dem Touchdisplay wird zunächst der Teilprozess „Experiment starten“ ausgewählt. Dabei wird am Touchdisplay über die Eventprogrammierung mittels Pprint Befehl eine Variable versendet, die auf dem myRIO mittels „VISA Read“ mit einer Case-Struktur im VI verknüpft ist und somit den gewünschten Case auswählt. Des Weiteren empfängt myRIO die per Eingabe auf dem Display gesetzten Versuchsparameter und entscheidet somit, dass das Experiment mit den entsprechenden Parametern durchgeführt werden kann. Für den Start einer Pumpaufgabe wird über das Display anschließend eine Variable übermittelt, mit der myRIO ein pulsweitenmoduliertes Signal (PWM-Signal) Signal an den Verstärker des Pumpenmotors sendet. Darüber hinaus werden über den LabVIEW-Funktionsblock „VISA Write“ der aktuelle Pumpenstatus sowie die verbleibende Laufzeit des Versuchs an das Touchscreen- Display gesendet und visualisiert (Bild 5). Das Nextion Display wird durch ein sogenanntes „Expansion Board“ mit sechs digitalen Mikrotastern um eine zusätzliche Bedieneingabe ergänzt und es wird die LED des „Expansion Board“ als Statusanzeige verwendet.

 

Ergebnisse

In diesem Studentenprojekt wird über das Embedded Hardwaregerät myRIO und das Nextion- Display als GUI eine Rollenpumpe mit DC Motor betrieben, um Versuche zu konfigurieren und vollautomatische Langzeitexperimente durchzuführen (Bild 4).

 

Anhand vieler vorgefertigter Funktionen des Nextion-Editors war eine vergleichsweise geringe Einarbeitungszeit zur Realisierung der Applikation notwendig. Jedoch kann über die Einbindung von Kontrollbefehlen, die Kommunikation via serieller Schnittstelle sowie die Verwendung des Expansion Board der Programmieraufwand deutlich komplexer und aufwändiger werden. Des Weiteren erschwert es die im Umfang deutlich reduzierte Programmiersprache, einen dynamischen Code zu entwickeln bzw. die Sonderlösungen führen zu einer wenig übersichtlichen Codedarstellung. Allerdings ist die Programmierung weiterhin deutlich einfacher als bei klassischen Displays mit zu programmierender Pixelmatrix. Darüber hinaus ist die Kommunikation per UART auf Mikrokontroller-Ebene Standard und wohl auch in Zukunft verwendbar. Je nach Komplexität des Programms ist eine Entwicklungszeit von zwei bis sechs Wochen pro Einzelmitarbeiter zu erwarten. Weiter konnte anhand des Projekts festgestellt werden, dass das Expansion Board zur zusätzlichen Bedienung keinen entscheidenden Mehrwert generiert, da die Bedienung ohne Taster am Touchscreen aufgrund der hervorragend entprellten Software Buttons am Display fehlerfrei und ohne Mehrfachauslösung funktioniert. Jedoch können ergänzend die LED und der Piezo Buzzer des Expansion Board für Statusangaben verwendet werden.

 

Fazit

Das Nextion-Touchdisplay ist zur Bedienung von Perfusions und Prüfsystemen sowie zur Überwachung von automatisierten Prozessen als schnelle Lösung im Prototypenbau hervorragend geeignet, da sich die grafische Bedienoberfläche eindeutig und intuitiv gestalten lässt. Der Anwenderwunsch nach einer Gerätekonfiguration mittels Touchdisplay ist mit dieser Lösung innerhalb von nur einem Mitarbeitermonat gelungen und auf Grund des klaren Entwicklungsablaufs werden gruppenintern in Zukunft viele weitere Geräte auf dieser Basis realisiert werden.

 

Informationen zum Autor:

B. Sc. Carina Micheler
Technische Universität München, Lehrstuhl für Orthopädie und Sportorthopädie, Labor für Biomechanik
Ismaninger Str. 22
München 81675
Germany
Tel: +49 (0)89 4140-7873
Fax: +49 (0)89 4140-7881
carina.micheler@tum.de

Bild 1: Nextion-Editor: 1 - Bearbeitungsbereich mit virtuellem Display, 2 - Toolbox mit Grundbausteinen, 3 - Ressourcen (Bilder, Zeichensätze), 4 - Fehlerfenster nach Kompilierung, 5 - Eventprogrammierung, 6 - Komponenteneigenschaften, 7 - Verwaltung von Anzeigeseiten
Bild 2: Programmier- und Kommunikationseinheiten
Bild 3: oben: VISA Read (Value), unten: VISA Write (Value)
Bild 4a: Versuchsaufbau: 1 - Labornetzgerät, 2 - Fluidik, 3 - Rollenpumpe mit Motortreiber, 4 - myRIO, 5 -– Nextion- Display inkl. Expansion Board.
Bild 4b: Screenshot der Seite „Experiment starten“ aus dem Nextion-Editor
Bild 5: Flussdiagramm-Ausschnitt „Experiment starten“ des Programmablaufs am myRIO