Login
Newsletter
Werbung

Do, 16. Mai 2013, 15:00

Raspberry Pi als Multimedia-Zentrale

Ferngesteuertes Multimedia-System auf Basis eines Raspberry Pi, Linux, XBMX mit einer LCD-Anzeige

LCD-Anzeige - Grundlagen

Handelsüblicher, HD44780-kompatibler Schaltkreis

Mirko Lindner

Handelsüblicher, HD44780-kompatibler Schaltkreis

Die Fokussierung von XBMC auf eine grafische Ausgabe bringt nicht nur Vorteile, sondern auch einen nicht unerheblichen Nachteil mit sich; Will man das Gerät lediglich zum Abspielen von Audio-Dateien oder zum Check der ankommenden E-Mails nutzen, muss stetig ein Fernseher oder Monitor eingeschaltet sein. Vorbei sind in diesem Fall die Vorteile eines geringen Stromverbrauchs, will man doch vielleicht nur MP3-Dateien auf der heimischen Stereoanlage oder einem Kopfhörer hören.

Dementsprechend liegt der Gedanke recht nahe, die eigentliche Navigation ebenfalls auf einem anderen Wege stattfinden zu lassen. Neben der eingangs besprochenen Möglichkeit über ein mobiles Gerät existiert mit der Einbindung eines LCD-Moduls eine weitere Alternative. Einfach ist sie allerdings nicht, denn sie bedarf unter anderem diverser Lötarbeit und einer Neukompilierung diverser Teile von OpenELEC. Der Aufwand lohnt sich aber, denn sie bringt den Vorteil der Konfigurierbarkeit. So ist es unter anderem ein Leichtes, nicht benötigte Pakete zu entfernen, eine gewünschte Konfiguration zum Standard zu wählen oder alternative Anwendungen zu installieren, die nicht im Lieferumfang von OpenELEC enthalten sind.

Benötigt wird für hierfür neben diversen kleineren Bauteilen auch ein handelsüblicher Hitachi HD44780-Schaltkreis – eine De-facto Industriestandard-Steuereinheit für kleine alphanumerische Dot-Matrix-LCD-Module und dem entsprechend auch günstig in jedem gut sortierten Elektronikhandel zu haben. Der Schaltkreis übernimmt die Darstellung der Navigation und kümmert sich um die komplette Ansteuerung inklusive Erzeugung aller benötigten Signale für das Display. Ob er zwei, drei- oder vierzeilig ist, über 16 oder mehr Zeichen verfügt, spielt dabei keine Rolle, denn angesteuert wird dieser durch das bereits in der Distribution enthaltenen Modul, das lediglich um eine GPIO-Ansteuerung ergänzt wurde.

Die Anzeige - Vorbereitung

Wie eingangs beschrieben, erfordert die Erweiterung des HD44780-Treibers eine Neukompilierung einiger Teile der Distribution. Dazu ist es zu allererst notwendig, die Distribution im Quellcode herunterzuladen, um sie schlussendlich samt allen benötigten Werkzeugen für die ARM-Plattform zu kompilieren. Der eigentliche Vorgang gestaltet sich zwar ziemlich zeitintensiv und wird unter Umständen etliche Stunden dauern, kompliziert ist er aber nicht wirklich:

# git clone git://github.com/OpenELEC/OpenELEC.tv.git
# cd OpenELEC.tv/
# git checkout openelec-3.0
# PROJECT=RPi ARCH=arm make

Fehlt es der aktuellen Installation an Werkzeugen, die für die Kompilierung notwendig sind, bricht der Vorgang ab und unterbreitet dem Anwender einen Vorschlag über noch zu installierenden Tools. Diese können dann entweder manuell oder aber automatisch heruntergeladen und eingerichtet werden. Bricht der Vorgang dagegen bei der Kompilierung einer Bibliothek ab, so lag es bei uns an einem fehlenden Link:

# cd ./build.OpenELEC-RPi.arm-devel/toolchain/
# ln -s lib64/ lib
# cd ../../

Ist der Vorgang abgeschlossen, steht die neue Distribution zur Installation bereit. Alternativ kann anstatt make auch make release verwendet werden. In diesem Fall erzeugt das Skript am Ende des Vorgangs eine Image-Datei, die in der Struktur der regulären Download-Datei entspricht und genauso installiert werden kann wie das Original-Image.

Doch stellt die Kompilierung einer eigenen Distribution keine Übung dar, die aus Langeweile durchgeführt wurde. Der Sinn der Aktion soll die Erweiterung der Funktionalität und der Konfiguration sein. Dementsprechend ist es nun an der Zeit, sich lcdproc zu widmen, einem System, das wir für die Ansteuerung des LCD-Moduls einsetzen werden.

Lcdproc stellt eine Client/Server-Suite dar und beinhaltet zahlreiche Treiber für verschiedenartige LCD-Module. Unter anderem unterstützt der Server Matrix Orbital, Crystal Fontz, Bayrad, LB216, Wirz-SLI und eben auch den HD44780. Die Standardfunktionalität reicht allerdings nicht aus, um das Modul direkt über GPIO anzusprechen. Dazu fehlt es dem Treiber an einer Ansteuerung, die wir dem System mittels eines separaten Patches spendieren. Zu beachten ist allerdings, dass es sich bei dem Patch nicht um eine offizielle Erweiterung von lcdproc handelt, sondern lediglich um eine Anpassung für unsere Zwecke. So kann beispielsweise weder das Backlight direkt aus der Anwendung gesteuert werden, noch werden die Eingänge des Moduls überprüft. Sinn ergeben würde es in unserem Beispiel sowieso wenig, denn das Modul arbeitet mit 5 V und ohne eine Spannungsteilung ist es nicht direkt am Raspberry nutzbar. Zudem brauchen wir die Eingänge nicht. Für eine reine Anzeige ist das Modul aber perfekt.

Um den Arbeitsaufwand so gering wie möglich zu halten und nicht jedes Mal lcdproc patchen zu müssen, bedienen wir uns der Patch-Funktionalität von OpenELEC. Dazu reicht es, den Patch in die »packets«-Struktur zu kopieren und make auszuführen. Doch keine Sorge, da alle Pakete bereits kompiliert wurden, dauert diesmal die Erstellung des Images nur einen Bruchteil des früheren Vorgangs:

# cd OpenELEC.tv/
# cp ~/VERZEICHNIS/lcdproc-0.5.6-lcd-hd44780-rpi-gpio_0.3.patch packages/sysutils/lcdproc/patches/
# PROJECT=RPi ARCH=arm ./scripts/clean lcdproc
# PROJECT=RPi ARCH=arm make

Kommentare (Insgesamt: 54 || Alle anzeigen )
Re: Fernsteuern (ProLinux78, So, 16. Februar 2014)
Re: Vieles läuft mittlerweile anders! (sktmp, Do, 23. Januar 2014)
Re[2]: IR-Empfänger (FreddieMc, Do, 3. Oktober 2013)
Re[2]: IR-Empfänger (FreddieMc, Do, 3. Oktober 2013)
Re[2]: IR-Empfänger (FreddieMc,, Do, 3. Oktober 2013)
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung