Smart Display über CANopen vom Host steuern: Beispiel einer Gauge-Steuerung
May 04, 2022
Einführung
Bei der bisherigen Vorstellung von Smart Display standen vor allem die Funktionen und Produkteigenschaften im Mittelpunkt. Weniger betrachtet wurde dagegen, wie sich Smart Display in der Endanwendung des Kunden über einen Host steuern lässt. Dieser Artikel zeigt am Beispiel einer Anzeige, wie Daten von einem physischen Bedienelement und dem Host (Arduino) an das Smart Display Modul übertragen werden, um die Anzeige entsprechend zu aktualisieren.
In diesem Beispiel wird ein 4,3-Zoll Smart Display mit CAN Bus verwendet, auf dem eine vom Host gesteuerte 240-Grad-Anzeige dargestellt wird. Als Host kommen ein Arduino Mega 2560, ein CAN Bus Shield und ein Rotary Angle Sensor zum Einsatz. Folgende Komponenten werden benötigt:
4,3-Zoll Smart Display mit CAN Bus
Arduino Mega 2560
CAN Bus Shield
Rotary Angle Sensor
CAN Bus Dongle
GUI Builder
Systemübersicht
Schritt 1: Projekt im GUI Builder erstellen
1.1 Erstellen Sie ein neues Projekt und wählen Sie im GUI Builder die leere Vorlage für ein 4,3-Zoll Display aus.
1.2 Wählen Sie im Resource-Bereich unter Background Style 0 die schwarze Hintergrundgrafik aus.
1.3 Stellen Sie im Fenster Gauge Edit den Drehwinkel des Zeigers ein.
►Klicken Sie zunächst bei Gauge Style 6 auf die Schaltfläche Modify.
►Nach der Auswahl wird im Gauge Editor eine Vorschau der Anzeige dargestellt, wie unten gezeigt.
►Aktivieren Sie die Option "Show Details", um weitere Informationen zur Zeigerdrehung anzuzeigen.
►Der minimale und maximale Winkel des Zeigers lässt sich über die +/- Schaltflächen im Bereich Degree einstellen.
►Der Value Range wird durch einen Minimal- und einen Maximalwert definiert. Ein über CAN Bus empfangener Wert wird dem minimalen bzw. maximalen Drehwinkel des Zeigers zugeordnet.
►Nach Abschluss der Konfiguration können Sie die Funktion überprüfen, indem Sie den Schieberegler Test Value nach rechts bewegen. Mit zunehmendem Test Value vergrößert sich auch der Zeigerwinkel, bis der eingestellte Maximalwert und der maximale Winkel erreicht sind.
Schritt 2: Projekt erstellen und hochladen
2.1 Wechseln Sie nach Abschluss der vorherigen Schritte zum Bereich Page Info und ziehen Sie Gauge Style 6 in die Mitte des Bildschirms.
2.2 Verbinden Sie den PC über USB2CAN mit dem Smart Display und klicken Sie anschließend auf die Symbole "Connect Device" und "Upload the Project". Die Ressourcen und Seiteneinstellungen werden über den GUI Builder auf das Smart Display Modul übertragen, wie unten dargestellt:
2.3 Der Bildschirm wechselt vom Startbildschirm zur Bedienoberfläche. Sobald die folgende Ansicht auf dem 4,3-Zoll Smart Display mit CAN Bus erscheint, wurde das Projekt erfolgreich hochgeladen.
Schritt 3: Arduino-Host programmieren
3.1 Wechseln Sie im GUI Builder zum Bereich Page. In der CANopen-Struktur entspricht der Index von Gauge Style 6 dem object 0 (0x2000). Für die Programmierung des Arduino-Hosts ist es wichtig, den Index des jeweiligen Objekts zu kennen. Über diesen Index kann der Status des Objekts abgefragt oder geändert werden, wie im folgenden Beispielcode dargestellt.
3.2 Über die Funktion "ConfigSmartDisplay" kann der Arduino-Host für object 0 den type, die x/y-Position, den style, die configuration sowie das Hintergrundbild festlegen. Alternativ kann das Smart Display die bereits im Onboard-Flash gespeicherten Objektdaten auslesen, die zuvor über den GUI Builder hochgeladen wurden, und die konfigurierten Objekte ohne zusätzliche Programmierung durch den Arduino-Host auf dem Bildschirm darstellen.
3.3 Erkennt der Arduino-Host eine Wertänderung am Rotary Angle Sensor, überträgt er den entsprechenden Wert über CANopen an das Smart Display.
Im folgenden Programm sind die relevanten IDs und Subindizes der Befehlsstruktur dargestellt. Das Programm aktualisiert den Wert der Anzeige (object index 0) entsprechend dem vom Rotary Angle Sensor empfangenen Wert.
Durch Klicken auf „Alle Cookies zulassen“ stimmen Sie der Speicherung von Cookies auf Ihrem Gerät zu, um die Navigation auf der Website zu verbessern, die Nutzung der Website zu analysieren und unsere Marketing- und Leistungsbemühungen zu unterstützen. Weitere Informationen zu diesem Thema finden Sie in unserer Richtlinie. Datenschutzrichtlinie