Woche 05 - Sense Hat
Dieser Inhalt ist noch nicht definitiv und kann noch ändern.
Der Inhalt dieser Seite basiert stark auf der offiziellen Dokumentation von Raspberry Pi zum Sense Hat, welche du hier finden kannst.
Das Raspberry Pi Sense HAT ist ein Add-on-Board, das deinem Raspberry Pi eine Reihe von Sensorfunktionen bietet. Mit den On-Board-Sensoren kannst du Druck, Feuchtigkeit, Temperatur, Farbe, Orientierung und Bewegung überwachen. Die 8 × 8 RGB LED-Matrix ermöglicht es dir, Daten von den Sensoren zu visualisieren, oder Animationen zu programmieren. Mit dem Fünf-Knopf-Joystick können Benutzer mit ihren Projekten interagieren.
Der Sense HAT wurde ursprünglich für den Einsatz auf der Internationalen Raumstation im Rahmen des von der Raspberry Pi Foundation in Zusammenarbeit mit der Europäischen Weltraumorganisation durchgeführten pädagogischen Astro Pi-Programms entwickelt. Es kann bei jedem Projekt helfen, das Position, Bewegung, Orientierung oder Umwelterfassung erfordert.
Eine offiziell unterstützte Python-Bibliothek bietet Zugriff auf die On-Board-Sensoren, LED-Matrix und Joystick. Der Sense HAT ist mit jedem Raspberry Pi-Gerät mit einem 40-poligen GPIO-Header kompatibel.
Eigenschaften
Der Sense HAT verfügt über eine 8 × 8 RGB-LED-Matrix und einen Fünf-Knopf-Joystick und enthält die folgenden Sensoren:
-
Gyroskop: Misst die Winkelgeschwindigkeit und Drehbewegungen eines Objekts, sodass Lage- und Rotationsänderungen genau verfolgt werden können.
-
Beschleunigungsmesser: Erfasst lineare Beschleunigungen entlang der Achsen, um Bewegung, Neigung und Erschütterungen zu bestimmen.
-
Magnetometer: Misst die Stärke und Richtung des Magnetfelds, häufig zur Orientierung als digitaler Kompass verwendet.
-
Temperatur: Bestimmt die aktuelle Wärme- bzw. Kälte eines Sensors oder seiner Umgebung, wichtig für Betriebsbedingungen und Kalibrierung.
-
Barometrischer Druck: Misst den Luftdruck, der für Höhenbestimmung, Wettervorhersagen und luftdruckabhängige Kalibrierungen genutzt wird.
-
Luftfeuchtigkeit: Ermittelt den Anteil von Wasserdampf in der Luft (relative Feuchte), relevant für Komfort, Kondensation und Prozesskontrolle.
-
Farbe und Helligkeit: Erfassen spektrale Farbwerte und Lichtintensität, um Farberkennung, Belichtungskontrolle und Umgebungslichtmessungen zu ermöglichen.
LED-Matrix
Die LED-Matrix ist ein RGB565-Framebuffer mit der ID RPi-Sense FB. Der entsprechende Geräteknoten kann als Standarddatei oder Mmap-ed geschrieben werden. Das mitgelieferte Schlangenbeispiel zeigt, wie man auf den Framebuffer zugreift.
Joystick
Der Joystick erscheint als Eingabeereignisgerät namens Raspberry Pi Sense HAT Joystick, auf die Pfeiltasten abgebildet und Enter. Es sollte von jeder Bibliothek unterstützt werden, die in der Lage ist, Eingaben zu verarbeiten, oder direkt über die evdev-Schnittstelle. Geeignete Bibliotheken sind SDL, pygame und python-evdev. Die enthaltenen snakeBeispiel zeigt, wie man direkt auf den Joystick zugreift.
Sense Hat mit Raspberry Pi verbinden
Raspberry Pi 400 (Tastatur-Version, pi4-x)
Verwende ein 40-Pin GPIO-Kabel und verbinde den Sense Hat mit der Verbindung des Pi 400. Dafür musst du zuerst die schwarze Abdeckung auf der Rückseite entfernen.
Raspberry Pi 5 (pi5-x)
Hier kannst du den Sense Hat direkt auf den Pi 5 setzen. Damit der Sense Hat sicher sitzt, verwendest du am besten die schwarzen Schrauben und Stifte.
Installieren
Um richtig zu arbeiten, benötigt der Sense HAT:
-
ein aktueller Kernel
-
I2C aktiviert auf Ihrem Raspberry Pi
-
einige Abhängigkeiten
Führe die folgenden Schritte aus, um dein Raspberry Pi-Gerät für die Verbindung mit dem Sense HAT vorzubereiten:
- Stelle sicher, dass dein Raspberry Pi die neueste Software ausführt. Führe den folgenden Befehl aus, um zu aktualisieren:
sudo apt update && sudo apt full-upgrade
- Aktiviere I2C. Öffne dazu den Terminal und gib den folgenden Befehl ein, um den Raspberry Pi zu konfigurieren.
sudo raspi-config
Wähle die 5. Option "Interface Options" und aktiviere danach <Select> mit dem Tabulator (Taste links neben Q) und bestätige mit der Enter-Taste.

Wähle wiederum die 5. Option "I2C" und aktiviere danach <Select> mit dem Tabulator und bestätige mit der Enter-Taste.

Aktiviere I2C, indem du mit dem Tabulator tippst, bis "<Yes>" orange hinterlegt ist und bestätige mit der Enter-Taste.
Es sollte folgende Anzeige erscheinen. Bestätige mit der Enter-Taste.
Starte den Raspberry Pi neu, indem du bei der nächsten Frage mit <Yes> antwortest.
- Als nächstes installierst du das
sense-hatPaket, das sicherstellt, dass der Kernel auf dem neuesten Stand ist und die notwendigen Abhängigkeiten installiert sind:
sudo apt install sense-hat
- Starte schließlich deinen Raspberry Pi neu.
sudo reboot
Kalibrieren
Damit die Sensoren korrekt funktionieren, müssen sie kalibriert werden.
Installiere die notwendige Software und führe das Kalibrierprogramm wie folgt aus:
sudo apt update
sudo apt install octave -y
cd
cp /usr/share/librtimulib-utils/RTEllipsoidFit ./ -a
cd RTEllipsoidFit
RTIMULibCal
Das Kalibrierprogramm zeigt folgendes Menü an:
Optionen sind:
m - Kalibriermagnetometer mit min/max
e - Kalibriermagnetometer mit Ellipsoid (do min/max first)
a - kalibrierte Beschleunigungsmesser
x - Ausstieg
Option eingeben:
Drücke den Kleinbuchstaben m. Die folgende Meldung wird dann angezeigt. Drücke eine beliebige Taste, um zu starten.
Magnetometer min/max Kalibrierung
----------------------------------------------------------------
Wackel mit dem IMU-Chip herum und sorge dafür, dass alle sechs Achsen
(+x, -x, +y, -y und +z, -z) durch ihre Extremwerte gehen.
Wenn alle Extremwerte erreicht sind, gibst 's' ein, um zu speichern, 'r' zurückzusetzen
oder 'x', um die Daten abzubrechen und zu verwerfen.
Drücke eine beliebige Taste, um zu starten...
Nachdem es gestartet wurde, solltest du die Ausgabe ähnlich der folgenden Zeilen auf dem Bildschirm sehen:
Min x: 51,60 min y: 69.39 min z: 65.91
Max x: 53,15 max y: 70,97 max z: 67.97
Konzentriere dich auf die beiden Linien ganz unten auf dem Bildschirm, da dies die zuletzt veröffentlichten Messungen aus dem Programm sind.
Jetzt nimmst den Raspberry Pi und Sense HAT auf und bewegst ihn auf jede erdenkliche Weise. Es hilft, wenn du alle nicht wesentlichen Kabel trennst, um Unordnung zu vermeiden.
Versuche, einen kompletten Kreis in jeder der Pitch-, Roll- und Gierachsen zu erhalten. Achte darauf, die SD-Karte dabei nicht versehentlich auszuwerfen. Verbringe ein paar Minuten damit, den Sense HAT zu bewegen, und hör auf, wenn du feststellst, dass sich die Zahlen nicht mehr ändern.
Drücke nun Kleinbuchstaben s, dann Kleinbuchstaben xum das Programm zu verlassen. Wenn du den ls Befehl jetzt eintippst, wirst du eine neue Datei mit dem Namen RTIMULib.ini sehen.
Zusätzlich zu diesen Schritten kannst du die Kugelpassform auch ausführen, indem du die obigen Schritte ausführst, aber drücke estatt m.
Wenn du fertig bist, kopierst du die resultierende RTIMULib.ini zu /etc/:
sudo cp RTIMULib.ini /etc
Erste Schritte
Nach der Installation findest Beispielcode unter /usr/src/sense-hat/examples.
Am besten kopierst du die Python-Beispiele in einen Ordner in deinem Home-Verzeichnis.
Kreiere einen Ordner mit dem Namen "Programmieren" im Home-Verzeichnis:
cd # mit diesem Befehl navigierst du in dein Home-Verzeichnis
mkdir Programmieren # dieser Befehl kreiert den Ordner Programmieren in deinem Home-Verzeichnis
Kopiere anschliessend die Python-Beispiele in den eben erstellten Ordner und öffne den Inhalt in Visual Studio Code:
cd Programmieren # navigiere in den Ordner Programmieren
cp -r /usr/src/sense-hat/examples/python-sense-hat . # kopiere die Python-Beispiele in das aktuelle Verzeichnis
code . # starte Visual Studio Code mit dem aktuellen Verzeichnis
Visual Studio Code sollte jetzt geöffnet werden und du solltest verschiedene Python-Programme sehen. Probiere sie aus, indem du in Visual Studio Code den Terminal öffnest und den folgenden Befehl eingibst, um ein gewünschtes Programm zu starten:
python rotation.py # oder eine andere Datei mit der Endung .py
Verwende den Sense HAT mit Python
sense-hatist die offiziell unterstützte Bibliothek für den Sense HAT, sie bietet Zugriff auf alle On-Board-Sensoren und die LED-Matrix.
Eine vollständige Dokumentation der Bibliothek findest du unter sense-hat.readthedocs.io. Diese Webseite gibt es leider nur auf Englisch. Du kannst die Seite aber mit Hilfe des Browsers übersetzen lassen. In Firefox kannst du dazu oben rechts auf das Hamburger-Symbol klicken und danach "Webseite übersetzen..." oder ähnlich anklicken.