4D Systems im Überblick
Kürzlich wurde bei einem Projekt ein Timer für eine Trainingseinheit benötigt. Es wurde gefordert, dass ein Touchscreen-Display genutzt wird, welches in sich geschlossen ist sowie für mehrere Benutzer mit Dongles gepaart werden kann. Das hieß, dass die angedachte Lösung die Programmierung auf dem Gerät, die Funksteuerung über Dongles und die Anzeige des Sitzungsstatus auf dem Display unterstützen musste. Zudem sollten einige unterstützende Komponenten wie eine Echtzeituhr und ein Transceiver für ein Maschennetzwerk integriert sein, die in diesem Artikel nicht behandelt werden.
Für die Realisierung der benötigten Funktionen gibt es viele Optionen. Es kann eine beliebige Anzahl von Mikrocontrollern – einschließlich Arduino- und PIC-basierter Modelle – verwendet werden. In Frage kommt auch ein Einplatinenrechner wie ein Raspberry PI. So oder so benötigt der Controller genug I/O, um mit dem Display, der Echtzeituhr, der Micro-SD-Karte als Datenspeicher und dem ausgewählten Transceiver für das Maschennetzwerk zu kommunizieren. Die Wahl des Mikrocontrollers wird auch vom vorgegebenen Touchscreen-Display bestimmt. Das Display muss groß genug sein, um Platz für den Zeitplan zu bieten, also vorzugsweise um die sieben Zoll groß sein.
Jede der oben genannten Optionen würde funktionieren, aber gewisse Einschränkungen mit sich bringen. Die kleineren Arduino- und PIC-Optionen verfügen über ausreichend Rechenleistung für ein Projekt dieser Art, bieten aber zu wenig I/O. Der Raspberry PI oder ein ähnlicher Einplatinencomputer wäre für die Anwendung sehr wahrscheinlich übertrieben, bietet jedoch einige Vorteile gegenüber einem einfachen Mikrocontroller. So oder so haben alle Optionen dasselbe Problem – die Entwicklung der GUI (grafische Benutzeroberfläche). Es gibt Optionen, die bei der Entwicklung von GUIs sowohl für Mikrocontroller als auch für Einplatinencomputer helfen, aber keine von ihnen ist so einfach zu bedienen und intuitiv wie das ausgewählte Produkt.
Das Gen4-uLCD-70DCT-CLB von 4D Systems (DigiKey-Teilenummer 1613-1277-ND) in Kombination mit dem Grafikdisplay-Entwicklungskit Gen4-PA von 4D Systems (DigiKey-Teilenummer 1613-1210-ND) und 4D Workshop (DigiKey-Teilenummer 1613-1393-ND ) erwies sich als die beste Lösung für das Projekt. Das Display wird von dem Diablo16-Prozessor betrieben, der auch einen vollständigen Satz an I/Os bietet und mit SPI, I2C, seriellen, digitalen und analogen Geräten verbunden werden kann. Darüber hinaus nutzt das Display eine eigene Micro-SD-Karte für das Speichern von Bildern, auf die bei der Programmierung zur Datenspeicherung zugegriffen werden kann.

Das Projekt wurde im 4D Workshop gestartet. Der erste Schritt bestand im Erstellen eines neuen 4D-Systems-Projekts und der Auswahl des richtigen Displaytyps. Dann muss nur noch ausgewählt werden, in welcher Umgebung Ihr Display eingerichtet werden soll. Als Optionen stehen Designer, ViSi, ViSi Genie und Serial zur Verfügung. Für dieses Projekt wurden die Display-Grafiken in ViSi Genie eingerichtet. Dann wurde der Code auf ViSi portiert, um Zugriff auf den 4DGL-Code zu erhalten.
ViSi Genie ermöglicht die komplette Grafikentwicklung auf einfache und intuitive Weise. Die Software startet mit einer einzelnen Seite oder einem Formular. Ausgehend von hier können Display-Hintergründe, Schaltflächen, Ziffern, Messgeräte, I/O, Eingänge, Beschriftungen, Magic, Primitive und System-/Medienobjekte positioniert und in das Projekt integriert werden. Sobald ein Objekt ausgewählt und auf dem Formular platziert wurde, kann es vom Objektinspektor weiter bearbeitet werden. Die Namen von Objekten sowie ihre Eigenschaften können in der Standardansicht im Objektinspektor bearbeitet werden. Wenn einfache Befehle von einem Objekt benötigt werden, z. B. eine Schaltfläche, die eine Onscreen-LED ein- und ausschaltet, kann dies auf der zweiten Seite des Objektinspektors (Events) konfiguriert werden. Wenn mehrere Formulare benötigt werden, können sie einfach über die System-/Medien-Symbolleiste am oberen Rand des Designers hinzugefügt werden. Zum Prüfen der Funktionalität kann das Projekt jederzeit über die obere Symbolleiste kompiliert und in das Display geladen werden. Beim Testen empfiehlt es sich, das Standardziel auf RAM zu setzen, um unnötige Flash-Schreibzyklen zu vermeiden. Das kann auf der Projekt-Registerkarte geändert werden.
Nach der Entwicklung sämtlicher Grafiken und Formulare wurde das Projekt auf ViSi portiert. ViSi bietet eine WYSIWYG-Darstellung des Displays und die Programmierumgebung 4DGL IDE. Dort wurde mit den internen Funktionen des Diablo16 der „komplexere“ Code geschrieben. Der I2C-Bus wurde für die Ausführung der RTC und die Speicherung von Uhrzeit und Datum eingerichtet. Alle I/O für die Kommunikation mit dem Transceiver für das Maschennetzwerk wurden in dieser Umgebung programmiert, und es gab mehrere Ereignisse, die diese Pins ansteuern. Bei diesem speziellen Projekt musste eine Reihe von Variablen dauerhaft gespeichert werden. Sie wurden auf die Display-eigene Micro-SD-Karte geschrieben, damit sie beim Ausschalten nicht gelöscht werden. Außerdem wurde in dieser Umgebung der gesamte Vergleichscode zum Ausführen des Zeitgebers programmiert.
Fazit: Die Software und Displays von 4D Systems sind eine leistungsstarke, aber nutzerfreundliche Option. Die einfache Programmierschnittstelle und die automatische Code-Generierung von ViSi Genie und ViSi beschleunigen die Grafikentwicklung enorm. Der integrierte Diablo16-Prozessor bietet eine Vielzahl von I/O und Datenübertragungsverfahren, mit denen sich Code auf der Platine ausführen oder bei komplexeren Projekten mit einem anderen Gerät kommunizieren lässt.
Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.
Visit TechForum




