Qt auf dem Raspberry Pi 4
Qt wird häufig zur Entwicklung von grafischen Oberflächen für Embedded HMIs verwendet. Qt enthält C++-Bibliotheken zur Erstellung grafischer Oberflächen, die auf verschiedenen Betriebssystemen kompiliert werden können.
Da diese Kompilierung viel Rechenleistung erfordert, ist es für Prozessoren mit relativ geringer Leistung ratsam, die Entwicklung und Kompilierung auf einem Host-Rechner durchzuführen und erst dann die fertige Anwendung auf den Zielrechner zu laden.
Im Internet gibt es zahlreiche Anleitungen zur Entwicklung einer Qt-Anwendung für die Modelle Raspberry Pi 3 und Pi 4.
Leider konnte ich keine finden, die für den Raspberry Pi 4 und unsere Bedürfnisse einwandfrei funktionierte.
Diese Anleitung basiert weitgehend auf https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/QT_build_instructions.md und wurde an einigen Stellen so verändert, dass sie bei mir funktionierte.
Qt verwendet Version 5.15.2, und ich verwende Ubuntu 20.0.4 LTS, installiert in VMware als Host-Computer für die Cross-Kompilierung.
Dies ist eine Anleitung für die Installation von Raspberry Pi OS Lite auf dem Compute Module 4. Als Arbeitscomputer verwende ich Ubuntu 20, das in einer virtuellen Maschine installiert ist.
Dies ist eine Anleitung für das Cross-Compiling von Qt 5.15.2 für Raspberry Pi 4 und die Installation auf dem Compute Module 4. Es ist ein Update zu meinem Blogpost Qt auf dem Raspberry Pi 4, mit dem Unterschied, daß ich diesmal Raspberry Pi OS Lite verwende.
Dies ist eine Anleitung für die Konfiguration des Qt-Creator um cross-compilierte Qt-Libraries für den Raspberry Pi 4 verwenden zu können und Anwendungen für den Raspberry zu erstellen.
In dieser Anleitung erfahren Sie, wie Sie ein Yocto-Projekt einrichten, um Qt und eine Qt-Demo-Anwendung auf einen Raspberry Pi 4 zu installieren und wie Sie diese Qt-Demo-Anwendung dann automatisch starten können.
Auf dieser Seite bieten wir Download-Links für Skripte zum automatischen Einrichten der Cross-Kompilierung auf Linux-Host und Raspberry Pi 4 und eine Beschreibung, wie man sie verwendet.
In diesem Blog möchte ich eine kleine Qt-Quick-Anwendung (qml) als Beispiel für eine Modbus-Verbindung über TCP/IP zur Verfügung stellen.
In den Qt-Beispielen habe ich zu Modbus-Verbindungen nur QWidget-Beispiele gefunden und nachdem ich vor Kurzem eine Qt-Quick-Anwendung dazu erstellt habe, möchte ich eine abgespeckte Version davon als Beispiel zur Verfügung stellen.
Wenn man eine Qt-Anwendung - oder auch jede andere Anwendung - für den Raspberry Pi 4 erstellt hat, möchte man nach Fertigstellung der Anwendung sehr oft, daß nach einem Neustart des Raspberry sofort die Anwendung aufgrufen wird.
Häufig wird dies mit Start-Scripts, die an verschiedensten Stellen eingetragen werden können, versucht.
Vernünftiger ist es jedoch, dies über systemd einzurichten.
Die Aufgabe war es, eine Qt Quick Anwendung (GUI) zum Upload neuer Firmware auf einen Touch-Controller zu schreiben.
Die Upload-Software wurde vom Hersteller in einer .exe-Anwendung bereitgestellt, die ein .bin-File auf den Touch-Controller lädt.
Verwenden wollte ich dafür die Qt-Classes "QProcess", mit der man Shell-Anwendungen aufrufen und steuern kann. Auf Linux-Seite hatte ich das schon des Öfteren erfolgreich verwendet - aber auf Windows wollte es zuerst nicht klappen.