Meine Raspberry Pi-Projekte

Der Raspberry Pi (kurz Raspi) ist ein Einplatinencomputer, der in England hergestellt wird und ursprünglich als Lerncomputer geschaffen wurde. Die Möglichkeit, über seine GPIO-Pins Elektronikbauteile direkt anzusteuern und sein Preis machen ihn aber zu einer tollen Plattform, um Elektronikspielereien zu verwirklichen. Außerdem verbraucht er nur unwesentlich Strom: nur eins, zwei Watt, der Raspi Zero sogar nur ein halbes Watt.

Ich kam zu meinem ersten Raspberry Pi, einem Zero WH - W für WLAN und H für angelöteten Header, also Anschlussleiste durch ein c't-Test-Abo, dem er als Prämie beigelegt war. Ohne diese Gelegenheit, die ich gleich ergriff, wäre der Raspberry Pi wohl ein "will ich irgendwann mal machen"-Projekt geblieben.

Außer Elektronikspielereien kann man den Raspi auch anders verwenden, etwa als Retropie war ein Projekt, dass ich gleich zu Anfang probiert hatte, habe aber schnell festgestellt, dass der Raspi Zero mit seinem Ein-Kern-Prozessor, 1 GHz und 512 MB RAM dafür doch nicht flott genug ist, außer vielleicht zur Emulation von Atari 2600-Spielen. Auch alte Amiga-Spiele, die ich noch hatte, wurden nicht flüssig wiedergegeben oder hängten sich gleich auf. Das Projekt werde ich vielleicht noch einmal angehen, aber dann mit einem Raspi 3B+ (4 Cores mit 1.4 GHz, ! GB RAM).

So soll es erst einmal bei Elektronikspielereien bleiben, dafür ist der Raspi Zero allemal schnell genug und er bringt alles dafür mit, was man braucht. Richtig konfiguriert kann man ihn über SSH und WLAN bedienen, man braucht also nur ein altes Handy-Ladegerät mit Micro-USB-Kabel, um ihn mit Strom zu befeuern. Mit der richtigen Konfiguration findet er dann selbst ins WLAN und startet einen SSH-Server. Auf Tastatur, Maus, Monitor am Raspi kann man dann verzichten.

Bereits realisierte Projekte

Ersteinrichtung des Raspberry Pi Zero W

Wie bekomme ich den Pi Zero W zum Laufen, ohne jemals Maus, Tastatur oder Monitor an ihn angeschlossen zu haben?
Dateifreigabe und Zugriff über Windows auf den Raspi

Wie gehe ich vor, wenn ich auf die Dateien auf dem Raspberry PI über eine Netzwerk-Freigabe freigeben will, z. B. um sie komfortabel mit dem Windows-Editor zu editieren?
Erste Schritte mit GPIO-Ansteuerung und LED

Wir wollen unsere erste Schaltung aufbauen und eine LED zum Leuchten und einen Buzzer zum piepen bringen. Dazu nutzen wir das WiringPI-Tool GPIO und ein kleines Python-Programm.
Mit dem Raspberry Pi morsen / Tieferer Einstieg in Python

Wir bringen dem Raspi das Morsen bei - sowohl akustisch, als auch optisch. Dabei lernen wir etwas über Bedingungen, Schleifen, Funktionen, String-Verarbeitung und Parameter-Übergaben von der Shell.
Mit dem Raspberry Pi einen passiven Lautsprecher ansprechen und zur Sirene machen

Wir entlocken dem Bauteil "passiver Lautsprecher" etwas mehr als nur ein Knacken, indem wir ihn ganz schnell hintereinander ein- und ausschalten. Daraus basteln wir mehrere Sirenen.
Mit dem Raspberry Pi musizieren

Außer den Sirenen muss doch noch mehr gehen. Wir bringen dem Raspi das Musizieren mit Noten bei und spielen das Kinderlied "Alle meine Entchen"
Das Spiel Senso bzw. Simon Says auf dem Raspberry Pi

4 farbige LEDs, 4 Taster, 1 Lautsprecher, ein paar Widerstände und Kabel und das Senso Programm in Python und schon können wir auf dem Raspberry eine Runde Senso, das Kult-Spiel aus den Achtzigern, genießen.
Die internen PullUp Widerstände am Raspberry Pi nutzen

Wir schalten die internen PullUp-Widerstände, die im Raspberry intern verbaut sind, per Software ein und sparen uns so die physikalischen PullUp-Widerstände auf dem Breadboard.
Senso - vom Breadbaord-Prototyp zur Lochrasterplatinen-Schaltung

Das Breadboard muss für neue Schaltungen frei gemacht werden. Die Senso-Schaltung will ich aber nicht verlieren. Also übertrage ich die Schaltung auf eine Lochrasterplatine und verlöte die Bauteile.

Durch einen Pfostenstecker ist die Verbindung mit dem Raspi im Bedarfsfall schnell hergestellt.
Eine 7-Segment Anzeige mit dem Raspberry Pi ansteuern

Sieben-Segment-Anzeigen begegnen uns im tätlgichen Leben häufig. Die Ziffern auf der Uhr oder auf dem Taschenrechner werden damit dargestellt.

In diesem Projekt wollen wir eine 7-Segment-Anzeige ansteuern und verschiedene Ziffern und Buchstaben damit darstellen.

Eine "Hallo Welt"-Ausgabe fehlt natürlich auch nicht.
Mit dem 74HC595 Steuerleitungen einsparen

Unser vorherhendes Projekt brauchte 8 Datenleitungen, um eine Siebensegmentanzeige anzusteuern. Das muss doch auch mit weniger gehen. Unser neuer Freund, der HC595 wird uns dabei helfen, statt 8 Datenleitungen nur noch 3 zu brauchen.
Eine Uhr mit einer 4-fach-7-Segment Anzeige auf dem Raspberry Pi realisieren

Vier Siebensegmentanzeigen in einem mit dem Bauteil 3641AS. Und das nur mit 12 Pins. Wie soll das funktionieren? Das Geheimnis lautet Multiplexing. Der HC595 aus dem letzten Projekt ist auch wieder dabei.
Ein Dot-Matrix-LCD (1602A und 2004A) mit dem Raspberry Pi ansteuern

Mit der Vierfach-Siebensegmentanzeigen kann wirklich nur Kleinigkeiten darstellen. Wer mehr will, der greift zum Character-LCD. Einfach ansteuerbar und mit 32 Zeichen (16x2) oder sogar mit 80 Zeichen (20x4) ist es zur stromsparenden Textdarstelltung hervorragend geeignet.
Einen PIR-Bewegungsmelder mit dem Raspberry Pi ansteuern

Wir beginnen ein größeres Projekt, das wir Stück um Stück erweitern wollen: Einen Überwachungs- und Info-Bildschirm. Dazu benutzen wir ein 20x4 LCD mit schaltbarer Hintergrundbeleuchtung. Diese wollen wir automatisch ab- und wieder anschalten, je nachdem, ob wir in der Nähe sind. Dafür benutzen wir einen PIR-Sensor, einen Infrarot-Bewegungsmelder.
Über den I2C-Bus des Raspberry Pi einen Analog-Digital-Wandler (PCF8591) ansteuern

Ich zeige, wie man den I2C-Treiber auf dem Raspberry installiert, mit den Kommandozeilen-Tools i2cdump und ic2get/set umgeht und I2C über Python nutzt. Dazu dient als Beispiel ein PCF8591 8-Bit- Analog-Digital / Digital-Analog -Wandler, zu dem ich auch etwas erkläre.
Einen Thermistor über einen AD-Wandler am I2C-Bus auslesen

Aufbauend auf dem letzten Projekt wollen wir diesmal den auf dem AD-Wandler PCF8591 verbauten NTC-Thermistor über den I2C-Bus auslesen und den zurückgelieferten Wert in eine Temperatur umrechnen, was gar nicht so einfach ist, dass die Verhältnis zwischen Temperatur und Wert nicht linear ist.
Die Musik auf dem Raspberry Pi mit dem Oszilloskop stimmen

Selbst mein unmusikalisches Ohr konnte wahrnehmen, dass die Töne in dem Musik-Projekt nicht so ganz passten. Nun ist mein Oszilloskop DSO138 aus China angekommen und zusammengebaut. Damit können wir die echte ausgegebene Frequenz messen und unsere Musik-Software ein wenig stimmen. Spoiler: die Freqenz lag vorher fast 9% daneben.
Mit dem Logic Analyzer am Bus lauschen

Mit einem Logic Analyzer kann man auf 8 (oder noch mehr) Kanälen gleichzeitig die digitalen Signale aufzeichnen und auswerten. Dabei hilft die Software Logic von Saleae oder PulseView von Sigrok.
Den Sensor BMP280 als Thermometer und Barometer nutzen und über den I2C-Bus auslesen

Der BMP280 von Bosch liefert hochgenaue Temperatur und Luftdruck-Daten, ist aber nicht ganz so einfach abzufragen. Man muss den Chip konfigurieren, Kalibrierungsvariablen auslesen und in eine komplizierte Berechnung einsetzen. Aber die Mühe wird mit hochpräzisen Ergebnissen belohnt.
Mit zwei 74HC595 Schieberegistern über nur drei Leitungen eine 8x8-LED-Matrix ansteuern

Diesmal kaskadiere ich zwei 74HC595-Schieberegister, um die 16 Eingänge einer 8x8-LED-Matrix 1088BS mit nur 3 Datenleitungen anzusprechen. Dabei schiebt der erste HC595 seine herausgeschobenen Bits an den zweiten weiter. So wird die Steuerung des Display vereinfacht und was bleibt, ist ein bisschen Bitschieberei.
Den Raspberry Pi über die WiringPi-API in C programmieren

Python ist ein komfortabel zu programmierende Sprache. Allerdings ist sie nicht die Schnellste. Ein in C geschriebenes und kompiliertes Programm ist runde 100 mal schneller. Ich übersetze ich das Programm aus dem letzten Projekt von Python nach C und benutze dabei die WiringPi-API.
LSM303C Kompass/Beschleunigungssensor-Chip über I2C-Bus ansteuern

Der LSM303C ist mit 2 x 2 x 1 mm ein winziger Chip, der aber sehr leistungsfähig ist. Mit ihm kann man einen Neigungssensor, einen Kompass, einen Schrittzähler, einen Beschleunigsmesser und einen Feldstärkermesser basteln.

Wie man auf ihn über den I2C-Bus zugreift und die Rohdaten umrechnet, erkläre ich in diesem Projekt.
Den Raspberry Pi mit der Infrarot-Fernbedienung fernsteuern

Heute erkläre ich, wie man LIRC installiert und konfiguriert, um damit den Raspi per Infrarot-Fernbedienung fernzusteuern. Außerdem, wie man dies im eigenen Python-Code nutzt; am Beispiel meines Always On-Displays, bei dem man jetzt zwischen den angezeigten Screen umherschalten kann.
Mit dem Raspberry Pi 433 MHz-Funksteckdosen schalten

Heute wird der Always-On-Monitor um ein 433 MHz-Sendemodul erweitert. Damit kann man beliebig diese praktischen Funksteckdosen ein- und ausschalten.

Ob nach Mitternacht den Fernseher aus, am Morgen die Kaffemaschine oder den Ventilator ab einer bestimmten Temperatur an - wenn es an einer Steckdose hängt, kann man es auch ferngesteuert ein- und ausschalten.

Kostengünstige Heimautomatisierung sozusagen - allerdings mit Sicherheitslücken.
Über den SPI-Bus einen MCP3008-Analog-Digitalwandler auslesen

Der MCP3008 ist ein 10 Bit-Analog-Digital-Wandler mit gleich 8 Eingängen. Diese stellt er über eine SPI-Schnittstelle zur Verfügung. Wie man den Raspi SPI-ready macht und mit Python die Werte vom MCP3008 ausliest, zeige ich euch heute.
433 MHz-Codes empfangen und den Raspi über Funk fernbedienen

Mit einem SC2272-Kit aus 433-MHz-Sender und Empfänger empfangen wir die Tasten A bis D über Funk und schalten damit LEDs ein und aus.

Doch es geht noch mehr: mit einem Messfühler greifen wir das Signal direkt ab und werten es auf und können so beliebige 433-MHz-Codes empfangen.

Dabei helfen uns die 433 Utils, die wir schon aus dem Funksteckdosen-Projekt kennen.