Startseite>Der intelligente Drei-Zeilen-Bildschirm Display-O-Tron
Aus Raspberry Pi Geek 06/2016

Der intelligente Drei-Zeilen-Bildschirm Display-O-Tron (Seite 2)

Die LED-Leiste mit den sechs LEDs erlaubt eine Einzelsteuerung (Zeilen 41 bis 44) oder – als Füllstandsanzeige – die Übergabe eines Anteils (Wert zwischen 0 und 1, Zeile 50). Die Leiste eignet sich zum Beispiel ideal, um die CPU-Auslastung, den Füllstand eines Dateisystems oder etwa die Anzahl verbundener Geräte anzuzeigen.

Die Hintergrundbeleuchtung des Displays besteht ebenfalls aus sechs LEDs, bei denen sich allerdings alle 8-Bit-RGB-Farben einstellen lassen. Die Zeilen 53 bis 67 von Listing 3 zeigen mögliche Anwendungsfälle. In den Beispielen zur Bibliothek gibt es auch ein Programm, das das Display zu einer Lichtorgel macht, die changierend in allen Regenbogenfarben leuchtet. Das fällt aber mehr in den Bereich der kreativen Spielerei.

Für die Verarbeitung der Schalter müssen Sie je Taste eine sogenannte Callback-Funktion registrieren (Listing 3 ab Zeile 10 beziehungsweise Zeile 17). Die Dot3k-Bibliothek ruft automatisch die angegebenen Funktionen auf, sobald Sie die entsprechenden Tasten berühren. Das Beispiel simuliert einen Neustart mit vorgeschaltetem Ja/Nein-Dialog (Abbildung 2, ab Zeile 71 im Listing). Wichtig für dialogbasierte Anwendungen: Das Programm muss quasi in einer Endlosschleife laufen, da die Bibliothek die Button-Funktionen asynchron aufruft.

Abbildung 2: Mit den kapazitiven Sensorfeldern unterhalb des Displays bestätigen Sie die Eingabe.

Abbildung 2: Mit den kapazitiven Sensorfeldern unterhalb des Displays bestätigen Sie die Eingabe.

Das Menüsystem

Mit den oben beschriebenen Grundfunktionen des Displays lassen sich schon sehr schöne Anwendungen bauen – etwa, wenn der Pi per Funktechnik Sensordaten empfängt und diese nicht nur für spätere Web-Abfragen in einer Datenbank landen, sondern der RasPi diese auch live visualisiert. Da der Display-Aufsatz einige GPIO-Anschlüsse durchschleift, lassen sich mit ein wenig Erfahrung im Löten auch Zusatzkomponenten anschließen.

Was die Implementierung von Funktionen auf Software-Seite angeht, hat Pimoroni sehr gute Vorarbeit geliefert. Ein Teil der Dot3k-Bibliothek liefert ein komplettes Menüsystem, ein ausführliches Beispiel dazu finden Sie in der Datei python/examples/dothat/advanced/menu.py. Die Menüs bestehen dabei aus einer verschachtelten Map von (Sub-)Menüs und Befehlen (Listing 4). Für “Befehle” rufen Sie Instanzen von speziellen Python-Klassen (Listing 5) auf; in den Beispielen liegen diese Klassen im Verzeichnis python/examples/plugins/.

Listing 4

 

menu = Menu(
  structure={
    'Commands': {
      'Reboot': GraphSysReboot(),
      'Shutdown': GraphSysShutdown()
    },
    'Clock': Clock(backlight),
    'Status': {
      'IP': IPAddress(),
      'CPU': GraphCPU(backlight),
      'Temp': GraphTemp()
    },
    'Settings': {
      'Display': {
        'Contrast': Contrast(lcd),
        'Backlight': Backlight(backlight)
      }
    }
  },
  lcd=lcd,
  input_handler=Text()
)

Listing 5

 

class GraphSysShutdown(MenuOption):
  def __init__(self):
    self.last = self.millis()
    MenuOption.__init__(self)
  def redraw(self, menu):
    shutdown = "sudo shutdown -h now"
    now = self.millis()
    if now - self.last < 1000 * 5:
      return False
    a = run_cmd(shutdown)
    menu.write_row(0, 'RPI Shutdown')
    menu.write_row(1, '')
    menu.write_row(2, time.strftime('  %a %H:%M:%S  '))

Das Beispielprogramm verwendet einige nicht zum Umfang von Dot3k zählende Python-Module. Der Pimoroni-Installer bietet deren automatisches Einrichten an; sinnvoller ist jedoch eine manuelle Nachinstallation, da das Installationsskript für die Beispiele unnötig viele Zusatzpakete mitzieht. Für die Menü-Demo benötigen Sie nur die zwei Pakete python-psutil und wifi (Listing 6).

Listing 6

 

$ sudo apt-get install python-psutil
§ sudo pip install wifi

Das Praktische am Menüsystem: Sie müssen die Tastensteuerung nicht in eigener Regie implementieren, sondern können sich ganz auf den spezifischen Anwendungsfall konzentrieren. Die verfügbaren Plugin-Beispiele eignen sich dabei nicht nur als Quelle für eigenen Code, sondern machen sich auch alleine nützlich. So gibt es etwa eine Anzeige der aktuellen CPU-Auslastung (Abbildung 3) oder des Datums (Abbildung 4). Selbst die Eingabe von WLAN-Passwörtern funktioniert, wenn auch etwas mühsam. Das Beispiel zeigt aber, dass wenige Tasten auch für komplexere Eingaben ausreichen.

Abbildung 3: Die vom Hersteller mitgelieferten Beispiele zeigen die aktuelle CPU-Auslastung.

Abbildung 3: Die vom Hersteller mitgelieferten Beispiele zeigen die aktuelle CPU-Auslastung.

Abbildung 4: Alternativ lassen sich ohne viel Aufwand auch Zeit und Datum des Raspberry Pi ausgeben.

Abbildung 4: Alternativ lassen sich ohne viel Aufwand auch Zeit und Datum des Raspberry Pi ausgeben.

Fazit

Der O-Tron-HAT macht Spaß, da er gerade wegen seines minimalen Interfaces viele Anregungen gibt. Hier passen Hardware und Software zusammen. Man merkt, dass die Menschen hinter Pimoroni nicht nur am Hardware-Verkauf Interesse haben, sondern ihre Produkte auch engagiert unterstützen. Die großen Hardware-Hersteller, die es oft noch nicht einmal schaffen, eklatante Sicherheitslücken zu stopfen, sollten sich ein Beispiel daran nehmen. 

Der Autor

Bernhard Bablok arbeitet bei der Allianz Managed&Operations Services SE als SAP-HR-Entwickler. Wenn er nicht Musik hört oder mit dem Radl beziehungsweise zu Fuß unterwegs ist, beschäftigt er sich mit Themen rund um Linux, Programmierung und neuerdings Mini-Computer. Sie erreichen ihn unter mailto:[email protected].

Infos

  1. Display T. Box: Christoph Langner, “Angefasst”, RPG 05/2016, S. 68, http://raspi-geek.de/37215
  2. Online-Shop von Pimoroni: https://shop.pimoroni.com/
  3. Github-Projekt für das Display: https://github.com/pimoroni/dot3k
  4. Optionales Kernel-Modul: https://github.com/realPy/dothat-module
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 6 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