RGB-LED-Strips mit Raspberry Pi
ENTWURF!!
Dies ist ein Entwurf. Der genaue Inhalt und der Termin des Workshops stehen noch nicht fest.
Was hier steht, kann sich bis zum Workshop noch ändern.
Sobald Inhalt und Termin festgelegt ist, wird eine Einladung per Mailingliste erfolgen.
RGB-LED-Strips mit Raspberry Pi
Bei diesem Workshop möchte ich euch zeigen, wie ihr bunte Animationen und Effekte auf LED-Strips mit RGB-LEDs (WS2812, NeoPixel, APA106, …) erzeugen könnt.
Die Idee dafür kam auf, weil ich gefragt wurde, „kannst du mal erklären, wie du das machst“, als ich meine LED-Lampe gezeigt habe. Vielleicht habt ihr auch einen LED-Streifen, einen NeoPixel-Ring oder Ähnliches zu Hause rumliegen, auf dem noch nie mehr als ein Beispiel-Programm lief, und sucht nach Möglichkeiten, was ihr damit tun könnt.
Motivation
–> Bild von meiner LED-Lampe
Diese Lampe habe ich im Baumarkt gefunden, und sie schrie einfach danach, mit WS2812 Strips ausgerüstet zu werden. Original konnte sie nur Rot/Grün/Blau blinken und faden. Ich habe die einfachen LED-Strips (bei denen nur der komplette Strip in einer Farbe leuchten kann) abgezogen und durch WS2812-Strips ersetzt. In die Basis der Lampe habe ich einen Raspberry Pi Zero eingebaut, und auf diesem ein Programm erstellt, das verschiedene Sachen durch leuchtende Objekte auf den LED-Ringen anzeigt:
Uhrzeit
Astronomische Daten, berechnet mit Hilfe der skyfield Astro-Library:
Wetterdaten vom Online-Dienst wttr.in
Außentemperatur
Regenwahrscheinlichkeit
Mitmachen!
Es sind für das Mitmachen und Anwenden des Gelernten lediglich Grundkenntnisse im Programmieren nötig (nicht unbedingt in Python).
Falls ihr euch schon mit anderen Systemen auskennt, z.B. Mikrocontroller-Programmierung in C, könnt ihr das Gelernte relativ einfach dorthin übertragen, da wir im Workshop hauptsächlich auf das Erstellen der Animationen eingehen, und die Low-Level-Ansteuerung einer Library überlassen.
Plan
Online-Meeting über BigBlueButton
Screenshare vom Raspberry (falls der Raspberry das nicht kann, kann ich das auch per HDMI-Capture machen)
Webcam zeigt Ergebnis der Programme auf dem LED-Strip
Ich zeige die Programmierung Schritt für Schritt
Jederzeit können Fragen gestellt werden
Zwischen den Programmier-Schritten Erklärungen / Frage-Antwort-Session
Wenn möglich werde ich meine Erklärungen aufzeichnen, damit sie später nochmal in Ruhe angeschaut werden können
Was im Workshop vorkommt
Programmierung in Python
Den Strip ansteuern
Dinge mit Farben tun
RGB vs. HSV Farbraum und Umrechnung
Regenbogen-Farbverlauf
rotierender Regenbogen
additives Mischen von Farben
Framebuffer mit Persistenz
Bewegliche Objekte im Framebuffer
Visualisierung von Daten
Online-Wetterdienst
Sensoren am Pi
Ich habe einen CCS811 CO2/VOC sensor bestellt
Wenn wer eine gute Idee hat was wir sonst probieren könnten, kann ich den entspr. Sensor besorgen und sehen was sich damit machen lässt.
evtl. Audio-Spektrum
Nur wenn es am Raspberry einfach ist, ein Mikro anzuschließen UND es dafür eine einfache Library gibt. Im Rahmen des Workshop ist es wohl zu viel, eine FFT in Numpy zu programmieren - das können wir gern tun, aber braucht eine extra Session.
Andere Ideen?
Was ihr braucht
Einen Raspberry Pi
Eine SD-Karte mit RaspiOS drauf
Internetzugang am Pi
Ihr müsst vorher keine extra Tools installieren, alles Nötige installieren wir im Rahmen des Workshop
Noch zu klären: Geht das auch direkt auf dem Pi Zero, oder muss hier SSH o.ä. benutzt werden, weil die GUI zu langsam ist?
Einen LED-Streifen oder eine Platine mit mindestens 10 LEDs
Grundkenntnisse im Programmieren
Muss nicht in Python sein, jede Sprache ist okay
„Ich hab schonmal was mit Arduino gemacht“ o.ä. ist völlig ausreichend
„Ich kann in BASIC den Bildschirm bunt machen“ reicht auch
Eine Möglichkeit, den Streifen an einen GPIO des Pi anzuschließen
Was im Workshop //nicht// vorkommt
Wer Hilfe bei komplizierteren Projekten braucht, ist aber gerne bei unseren open (online) HackNights gesehen!