Startseite>Android-Smartphone als RasPi-Bildschirm
Aus Raspberry Pi Geek 12/2018

Android-Smartphone als RasPi-Bildschirm (Seite 2)

Der X-Server

Für ein Android-Smartphone installieren Sie aus dem Playstore XSDL [5], einen kostenlosen und quelloffenen [6] X-Server. Im Test ließ er sich selbst auf einem uralten Gerät mit Android 2.3 installieren, stürzte dort aber beim Start stets ab. Eine Empfehlung für Apple-Jünger kann der Autor mangels eigener Erfahrung nicht geben, auch eine Google-Suche erbrachte keine passenden Ergebnisse.

Beim Start des X-Servers konfigurieren Sie diesen über den Button, der den ganzen oberen Rand einnimmt. Hier stellen Sie die Mausemulation auf Tablet und die linke Maustaste auf Touch or hold. Im Menüpunkt Video konfigurieren Sie die Ausrichtung nach den Bedürfnissen des konkreten Projekts (quer, Porträt, automatisch).

Der nächste Konfigurationsschritt wirkt etwas obskur: Es erscheint ein Bildschirm, der diverse Auflösungen anbietet. Wollen Sie nicht die native Auflösung nutzen, dann tippen Sie auf die gewünschte Alternative. Ebenso wählen Sie anschließend die Schriftvergrößerung aus. Beides können Sie bei jedem Start ändern; im Zweifelsfall startet der Server einfach in der alten Konfiguration. Ein Ändern der Auflösung bietet sich sowieso nur bei sehr hochauflösenden Displays an.

Der X-Server selbst bietet keine Möglichkeit zur Interaktion, nach dem Start sehen Sie lediglich einen leeren Bildschirm mit ein paar Anweisungen. Insbesondere zeigt der Server die IP-Adresse des Mobilgeräts an. Jede gestartete Anwendung legt sich dann auf diesen Hintergrund. Abbildung 2 zeigt als Beispiel das Programm Xeyes aus dem Paket x11-apps. Es dient rein dem Vergnügen: Die Augen verfolgen den Mauszeiger.

Abbildung 2: Der X-Server nach dem Start, oben links läuft die Anwendung Xeyes.

Abbildung 2: Der X-Server nach dem Start, oben links läuft die Anwendung Xeyes.

Damit der RasPi das Smartphone später automatisch findet, sollten Sie dem Handy im eigenen Netz eine feste IP-Adresse geben. Das klappt entweder über Ihren Router mittels fester Zuweisung der IP-Adresse an die MAC-Adresse des Geräts oder in den erweiterten Netzwerkeinstellungen des Smartphones. Die erreichen Sie üblicherweise über einen langen Druck auf die WLAN-Verbindung.

Damit Sie auf dem Raspberry Pi nicht immer mit der sperrigen IP-Adresse hantieren müssen, tragen Sie diese dann noch in dessen /etc/hosts ein und vergeben einen sinnvollen Namen für das Smartphone.

Kontaktaufnahme

Nutzen Sie die Pixel-Variante von Raspbian, dann läuft auf dem RasPi schon ein X-Server und alle Programme senden die Grafikausgabe an diesen lokalen Server. Für einzelne Programme lässt sich das aber problemlos ändern, denn jedes Programm prüft die Umgebungsvariable DISPLAY.

Diese ändern Sie für eine einmalige Programmausführung, indem Sie den Wert beim Aufruf in der Kommandozeile vorneweg angeben (Listing 1, erste Zeile). Alternativ ändern Sie in einem Terminal die Variable für alle nachfolgenden Kommandos (zweite Zeile).

Listing 1

 

$ DISPLAY=192.168.2.34:0 xeyes
$ export DISPLAY=192.168.2.34:0

Die Syntax der Display-Variablen folgt stets dem Muster IP-Adresse:X.Y. Auf den meisten Systemen lautet das Suffix (also die Display-/Screen-Nummer) 0.0 oder einfach 0. Statt der IP-Adresse können Sie auch den Hostnamen des Zielgeräts verwenden.

Nutzen Sie stets dasselbe Gerät im Zusammenspiel mit dem RasPi, dann tragen Sie die Display-Variable am besten in die Datei /etc/profile ein: Dadurch setzen Sie die Variable global. Diese Einstellung gilt aber nur für neue Sessions. Für Pixel-Systeme sollten Sie davon jedoch absehen, denn die Ausgabe des Desktops auf dem lokal angeschlossenen Bildschirm benötigt den Standardwert DISPLAY=:0.0.

Oberflächliches

Das Erstellen einer grafischen Oberfläche für ein Programm zählt zu den aufwendigsten Tätigkeiten in der IT. Jeder kann und will mitreden, jeder hat andere Vorstellungen von schönen Oberflächen oder ergonomischem Design. Außerdem ist die Materie nicht trivial, denn das Programm soll bedienbar bleiben, selbst wenn es sich gerade mit anderen Dingen (etwa dem Berechnen) beschäftigt.

Erfreulicherweise gibt es viele Bibliotheken, die die Sache vereinfachen. Für unser Beispiel kommt Python als Programmiersprache zum Einsatz. Ursprünglich war als Grafikbibliothek das moderne Kivy [7] vorgesehen, doch das nutzt das effiziente OpenGL für direktes Rendering, und wie oben beschrieben funktioniert das nicht über das Netzwerk. Deshalb setzt das Projekt jetzt auf wxPython auf, einem Wrapper für die in C++ implementierten wxWidgets.

Für unseren Raspberry Pi erstellen wir ein Programm, das ein mehrzeiliges LC-Display samt Steuerknöpfen simuliert (Abbildung 3). Per Knopfdruck fragen wir diverse Systeminformationen ab, das Ergebnis landet in einer Textbox. Das Ganze lässt sich mit überraschend wenig Codezeilen implementieren.

Abbildung 3: Unser Beispielprogramm auf einem Smartphone mit einer Bildschirmauflösung von 800 x 480 Pixeln.

Abbildung 3: Unser Beispielprogramm auf einem Smartphone mit einer Bildschirmauflösung von 800 x 480 Pixeln.

Vor dem Programmieren steht aber die Installation der notwendigen Python-Bibliothek (Listing 2). Unter Raspbian Lite installiert der Befehl auch alle notwendigen Hilfsbibliotheken für das Ausführen grafischer Anwendungen (also den X-Client) auf dem System – erschrecken Sie also nicht, wenn die Paketliste sehr lang ausfällt.

Listing 2

 

$ sudo apt-get update
$ sudo apt-get -y install python-wxgtk3.0
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 7 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
€0,99 – Kaufen
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland