Sense Hat für den Raspberry Pi: Was kann man damit machen?

Kein Kommentar Autor: Jürgen (jdo)

Ich habe seit einiger Zeit einen Sense Hat für meinen Raspberry Pi und bin immer noch am Spielen damit. Der Zusatz ist ein faszinierendes kleines Extra für den Pi, das jeder Fan eigentlich haben sollte* (also ich bereue die 30 Euro nicht).

Wer Sense Hat für den Raspberry Pi hört, denkt vielleicht sofort und ausschließlich an Temperatur-Anzeige und Wetterstation. An sich ist das schon eine ziemlich coole und erschwingliche Sache. Allerdings ist das noch nicht alles, was Du mit einem Sense Hat anstellen kannst.

Ein Sense Hat kann anzeigen oder hat Sensoren in den Bereichen:

  • Gyroskop (Kreiselinstrument)
  • Beschleunigungssensor
  • Magnetometer (Magnetfeld-Messgerät)
  • Temperatur
  • Barometrischer Luftdruck
  • Luftfeuchtigkeit

Wie beginne ich mit dem Sense Hat?

Nachfolgend möchte ich Dir einfach ein paar Projekte vorstellen, mit denen Du die entsprechenden Sensoren ansprechen kann. Diese Projekte haben mir sehr geholfen, den Sense Hat besser zu verstehen. Spielst Du damit herum, kommen Dir automatisch Ideen, was Du mit dem Extra für den Pi machen kannst. Zumindest geht es mir so.

Hinweis: Ist das Paket sense-hat bei Deinem Raspbian nicht installiert, dann hole es nach. Das Ausführen des Befehls schadet auf jeden Fall nichts. Sollte sense-hat bereits installiert sein, wird Dir Dein Pi das verraten:

sudo apt install sense-hat

Hinweis 2: Du kannst die ganzen Skripte auch mit chmod +x <Name des Skripts> ausführbar machen und dann mittels ./<Name des Skripts> aufrufen. Dann musst Du kein python davor setzen.

Sehen wir uns nun ein paar Projekte an. Bei fast allen Projekten hier ist der Code übersichtlich, relativ kurz und verständlich. Ich finde, sie eignen sich hervorragend, um in das Thema Sense Hat einzusteigen und dessen Flexibilität zu demonstrieren.

LEDs des Sense Hat zurücksetzen

Die meisten Programme bringen die LEDs des Sense hat zum Leuchten. Brichst Du das Programm mit Strg + C ab, leuchten die LEDs aber auf dem letzten Stand weiter. Sobald Du eine anderes Programm aufrufst, ändert sich die Anzeige wieder.

Manchmal willst Du aber auch einfach alle LEDs ausschalten, ohne den Pi neu starten zu müssen. Schreibe Dir dafür einfach ein kleines Programm mit folgendem Inhalt, das Du zum beispiel clear.py nennst.

import sys
from sense_hat import SenseHat
sense = SenseHat()
sense.clear()

Rufe es auf

python clear.py

und das Feld ist wieder dunkel.

Temperatur, Luftdruck und Luftfeuchtigkeit

Für die klassische Wetterstation brauchst Du Temperatur, Luftdruck und Luftfeuchtigkeit. Die Wert lassen sich sehr einfach abfragen und in Variablen schreiben:

import sys
from sense_hat import SenseHat sense = SenseHat()

t = sense.get_temperature()
p = sense.get_pressure()
h = sense.get_humidity()

# Werte noch auf eine Stelle nach dem Komma runden
t = round(t, 1)
p = round(p, 1)
h = round(h, 1)

Du kannst die Werte nun in Deinen Programmen benutzen und auch über eine Schleife immer wieder aktualisieren lassen. Temperatur, Luftdruck und Luftfeuchtigkeit ändern sich ja ständig.

Natürlich kannst Du Dir die Daten auf dem Display anzeigen lassen. Zum Beispiel funktioniert das so im gleichen Script:

message = "T: " + str(t) + " P: " + str(p) + " H: " + str(h)
sense.show_message(message, scroll_speed=0.05)

Tipp: Da der hat sehr nah am Prozessor des Raspberry Pi ist, wird die Temperatur höher als die Umgebungstemperatur sein. Du könntest ein paar Grad Celsius abziehen, aber genauer wird es, den Hat via Flachbandkabel auszulagern.

Flachbandkabel an den Sense Hat angeschlossen

Flachbandkabel an den Sense Hat angeschlossen

Kompass aus dem Sense Hat machen

Bevor Du den Sense Hat als Kompass benutzt, solltest Du ihn kalibrieren. Dafür benutzt Du das Programm RTIMULibCal, das Du manuell einspielen musst. Es ist aber nicht schwer. Führe einfach die nachfolgenden Befehle aus:

sudo apt install cmake
git clone https://github.com/RTIMULib/RTIMULib2.git
cd RTIMULib2/Linux/RTIMULibCal
make
sudo make install

Das Programm zum Kalibireren des Sense Hat liegt nun hier: /usr/local/bin/RTIMULibCal. Du kannst es genau mit dieser Zeile aufrufen:

/usr/local/bin/RTIMULibCal

Das Kalibrieren ist ähnlich wie bei einem Smartphone. Führe das Programm aus, starte die Kalibrierung und bewege den Sense Hat in alle sechs Richtungen (+-x,+-y,+-z). Ist das erledigt, drückst Du die Taste s, um das Ergebnis zu speichern.

Sense Hat kalibrieren

Sense Hat kalibrieren

Damit erzeugst Du die Datei RTIMULib.ini. Dort sind die Daten der Kalibrierung hinterlegt.

Im Anschluss lädst Du das Python-Programm herunter, das die Himmelsrichtung anzeigt:

wget https://raw.githubusercontent.com/RPi-Distro/python-sense-hat/master/examples/compass.py

Die Datei muss im gleichen Ordner sein wie RTIMULib.ini.

mit dem Befehl

python compass.py

zeigt der Kompass eine Richtung an.

Auf meinem Bild ist Norden links - der blaue Punkt zeigt es an

Auf meinem Bild ist Norden links – der blaue Punkt zeigt es an

Zweifelst Du gerade an Deinem Orientierungssinn? Habe ich auch, denn das Programm hat einen kleinen Bug. Der Sense Hat zeigt nicht nach Norden, sondern nach Westen. Das kannst Du einfach korrigieren. Ändere die Zeile

dir_inverted = 360 - dir # So LED appears to follow North

in

dir_inverted = 90 - dir # So LED appears to follow North

und schon zeigt der Kompass nach Norden.

Eine digitale Uhr basteln

Du kannst aus dem Sense Hat eine Uhr mit digitalen Ziffern basteln. Ich finde das Projekt unglaublich kreativ und faszinierend. Es zeigt, wie sich 4 digitale Ziffern anzeigen lassen, die Du auch noch gut lesen kannst. Zugegeben sind die 3 und die 8 etwas klobig, aber Du wirst Dich schnell an die Anzeige der Zahlen gewöhnen.

Lade Dir zunächst die Daten clock.py herunter. Rufst Du das Programm auf:

python clock.py

zeigt es die Uhrzeit an und beendet sich dann aber.

4 Ziffern auf dem kleinen Dsiplay - beeindruckend

4 Ziffern auf dem kleinen Dsiplay – beeindruckend

Möchtest Du, dass sich die Uhr dauerhaft aktualisiert, dann packst Du den letzten Teil am besten in eine while-Schleife. Das ist eigentlich ganz einfach. Den Code dafür findest Du in diesem Beitrag.

Während der Sense Hat im Hintergrund andere Daten sammelt, kann er Dich über die Uhrzeit informieren. Nicht schlecht, oder?

Eine binäre Uhr inklusive Datum

Es lassen sich sogar noch mehr Informationen auf das Display packen. Dann wird es aber auch eine ganz Ecke nerdiger. Dein Raspberry Pi wird zu einer binären Uhr, die auch noch das Datum in binärer Form anzeigt.

Lade Dir die Datei binary_clock_sh.py herunter und führe sie aus:

python binary_clock_sh.py

Nun hast Du einen bunten Mix an Punkten auf dem Display, die Du zu lesen lernen musst. Hier ein Bild mit entsprechender Beschriftung:

Die binäre Uhr mit Datum musst Du auf dem Sense Hat lesen lernen

Die binäre Uhr mit Datum musst Du auf dem Sense Hat lesen lernen

Du siehst also, dass beim Jahr 16+2+1 = 19. Also 2019 stimmt. Monat 2 ist Februar und das war an dem Zeitpunkt korrekt, an dem das Foto entstand. So geht das eben immer weiter. Ich habe übrigens den Code so modifiziert, dass die Hundertstel nicht mehr angezeigt wurden. Das war mir dann doch um einiges zu hektisch. Deswegen ist die Zeile für die Hundertstel in meinem Bild leer. Die Sekunden sind eigentlich auch noch zu schnell, um sie vernünftig lesen zu können. Das ist mehr Zierde, damit sich etwas bewegt.

Bild von Kamera-Modul anzeigen lassen

Sehr spannend finde ich außerdem das Projekt astro_cam.py. Damit zeigt das Display des Sense Hat an, was die Kamera des Pi gerade sieht. Natürlich brauchst Du ein Kamera-Modul* für Deinen Pi und Du solltest die Erwartungen nicht zu hoch stecken. Der Bildschirm hat schließlich nur 8×8, also 64 Pixel. Hältst Du verschiedene Objekte vor die Kamera, kommen dabei einfach nur Farbkleckse raus.

Dennoch ist das Projekt interessant, weil es mit wenigen Zeilen Code den Bildschirm steuert. Das Ausführen der Datei

python astro_cam.py

hat bei mir zur Fehlermeldung ImportError: No module named picamera geführt. Für das Projekt ist Python3 notwendig und dafür musste ich erst die notwendigen Pakete nachinstallieren.

sudo apt-get install python3-picamera

Danach hat es funktioniert:

python3 astro_cam.py

Pass außerdem auf, dass das Kamera-Modul auch aktiviert ist. Das kannst Du via sudo raspi-config überprüfen, oder Du versuchst, einfach ein Bild aufzunehmen:

raspistill -o bild.jpg

Kommt dabei ein Bild raus, funktioniert auch die Kamera.

Sense Hat mach Spaß

Welche der Projekte nun Sinn ergeben und welche nicht, sei dahingestellt. Wichtig ist, dass Du mit den Funktionen des Pi-Zusatzes spielst und sie damit kennenlernst.

Sehr toll ist, dass Du sofort Ergebnisse siehst. Mit ein paar Zeilen Code bekommst Du Informationen über Temperatur, Luftdruck und Luftfeuchtigkeit. Die kannst Du Dir entweder in der Kommandozeile oder auf dem Display des Sense Hat anzeigen lassen. Das Ding macht einfach Spaß, muss ich ehrlich zugeben. Es gehört irgendwie an den Arbeitsplatz eines Nerds. Benutze das Gerät einfach für mehrere Sachen. Temperatur, Urh, binäre Uhr und so weiter lassen sich gut im Wechseln anzeigen. Dann wird es sicher nicht langweilig.

Bei der Raspberry Pi Foundation findest Du noch ein paar weitere Beispiele. Viele sind es nicht, aber der Weather Logger ist wohl ein sehr toller Anfang für eine eigene Wetterstation mit langfristiger Aufzeichnung.




 Alle Kommentare als Feed abonnieren

Kommentare sind geschlossen.