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

Android-Smartphone als RasPi-Bildschirm

© Fabio Alcini, 123RF

Wiederverwertet

Bernhard Bablok

Mithilfe eines einfachen Python-Programms recyceln Sie ein ausgedientes Smartphone als drahtlos angebundenes RasPi-Display.

In Zeiten, in denen selbst neue Einsteiger-Smartphones für 100 Euro ausreichend Leistung für den Alltag bieten, bricht der Markt für gebrauchte Geräte zusammen. Die landen meist erst in der Schublade und später beim Entsorger, obwohl ihr Touch-Bildschirm oft besser funktioniert als ähnlich große Displays für den RasPi.

Einen Nachteil haben sie jedoch: Es gibt kein Anschlusskabel für die Ausgabe vom Raspberry Pi ans Smartphone. Zum Glück existieren jedoch Alternativen, etwa eine Verbindung via WLAN. Wie das geht, demonstrieren wir im Folgenden.

Ein weiteres Problem liegt in der Bildschirmdarstellung. Obwohl die Auflösung eines Smartphones mit zum Beispiel 800 x 480 Pixeln nah an jener des offiziellen Pi-Displays liegt, fällt die Anzeige wegen der geringen Bildschirmfläche extrem klein aus, und ein normaler Desktop lässt sich auf allen Geräten unterhalb eines 10-Zoll-Tablets schlicht nicht bedienen.

Für viele Projekte benötigen Sie aber gar keinen vollen Desktop, zum Beispiel wenn Sie nur wenige Daten oder Statusinformationen ausgeben müssen. Und auch das Steuern beschränkt sich oft auf das Bedienen weniger Knöpfe. Dafür lassen sich mit wenig Aufwand kleine Programme mit grafischer Oberflächen schreiben, die perfekt auf den Smartphone-Schirm passen. Dazu liefert dieser Artikel ein Beispielprogramm, das Sie als Muster für eigene Projekte nutzen können.

Alternativen

Für das Darstellen einer grafischen Oberfläche auf dem Smartphone gibt es verschiedene Ansätze. Einer davon beruht darauf, Anwendung und Anzeige in zwei Programme aufzuteilen. Auf dem RasPi läuft dann beispielsweise ein Programm, das seine Ausgabe als Webseite anbietet, der Browser des Smartphones zeigt das Ergebnis an.

Ein Beispiel dafür liefert das Projekt zur Spannungs- und Strommessung auf Pi-Zero-Basis [1], das der Autor in RPG 05-06/2018 vorgestellt hat [2]. Die Webseite zeigt dabei nicht nur statisch das Ergebnis an, sondern wartet auch mit Live-Messwerten auf.

Der Nachteil dieser Lösung: Während sich ein kleiner Webserver dank vielfältiger Programmbibliotheken inzwischen unabhängig von der Programmiersprache ohne viel Aufwand in alle Programme integrieren lässt, setzt eine attraktive Darstellung auch Know-how im Webdesign sowie der Javascript-Programmierung voraus.

Eine Variante dieses Ansatzes verwendet statt des Webbrowsers eine eigene App auf dem Smartphone. Das verursacht zwar deutlich mehr Aufwand, bietet aber auch mehr Freiheiten, wie zum Beispiel eine Kommunikation über Bluetooth statt WLAN.

Die pfiffige App Bluedot [3] kann hier als Projektvorlage dienen, die Sie dank einer passenden Python-Bibliothek direkt in eigene Programme integrieren (Abbildung 1). Die bekannte Anwendung Pi Control [4] liefert ein weiteres Beispiel. Statt im Webdesign muss der Entwickler sich bei dieser Variante im Android- beziehungsweise iOS-Umfeld auskennen.

Abbildung 1: Mit Bluedot steuern Sie einen Raspberry Pi über eine Python-Anwendung.

Abbildung 1: Mit Bluedot steuern Sie einen Raspberry Pi über eine Python-Anwendung.

Wollen Sie nur ein Programm schreiben, dann verwenden Sie den in den folgenden Abschnitten beschriebenen Ansatz. Hier läuft das Programm auf dem RasPi, gibt aber die grafische Oberfläche nicht über dessen HDMI-Schnittstelle aus, sondern über das Netzwerk auf einem anderen Rechner – in unserem Fall auf einem Smartphone oder Tablet. Besonders effizient ist das nicht: Es wandern sowohl die Nutzdaten als auch die Oberfläche über die Leitung. Dafür hält sich aber der Programmieraufwand in engen Grenzen.

Alt und gut?

Programme, die auf dem Raspberry Pi laufen, geben die grafische Oberfläche über den sogenannten X-Server aus. Dabei handelt es sich um ein eigenständiges Programm, das die Grafikbefehle entgegennimmt und sich dann um den Rest kümmert.

Der X-Server ist älter als Linux selbst und stammt aus einer Zeit, als Rechner noch ausschließlich im Rechenzentrum standen. Um dennoch Programme mit grafischen Oberflächen verwenden zu können, standen in den Büros spezielle X-Terminals, auf denen als einziges Programm ein X-Server lief. Er nahm die Grafikbefehle über das Netz von den Programmen im Rechenzentrum entgegen.

Bei unserer Kombination aus RasPi und Smartphone verfahren wir analog: Der Raspberry Pi spielt den Part des entfernten Rechners, das Smartphone jenen des X-Terminals. Da wir nur die Ausgabe eines einzelnen Programms sehen wollen, muss auf dem Mini-Rechner Raspbian noch nicht einmal in der Pixel-Variante installiert sein: Die komplette Desktop-Oberfläche interessiert uns nicht.

Auf der Seite des Pi benötigen wir nur den X-Client. Haben Sie Raspbian mit grafischer Oberfläche installiert, befindet sich schon alles Notwendige an Bord. Für die Lite-Version benötigen Sie den Client separat – das erledigt aber die Installation für unser Beispielprogramm quasi nebenbei.

Die uralte X-Architektur leidet historisch bedingt unter verschiedenen Problemen, insbesondere hinsichtlich Sicherheit und Performance. Moderne Rechner (wie auch der RasPi) enthalten eine leistungsfähige GPU, die das Rendern selbst übernimmt. Das unterläuft allerdings die Ausgabe über das Netz und schränkt uns in diesem Projekt bei der Wahl der Programmbibliotheken etwas ein – die Ausgabe für direkt gerenderte Programme funktioniert nur lokal.

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