Dies ist eine alte Version des Dokuments!


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:
    • Mondphase
    • Sonnenstand mit Aufgangs-/Unterganszeit
  • 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
    • Per Video-Chat oder Text-Chat im BigBlueButton
  • Zwischen den Programmier-Schritten Erklärungen / Frage-Antwort-Session
    • Evtl. ein paar Slides um Dinge zu veranschaulichen
  • Wenn möglich werde ich meine Erklärungen aufzeichnen, damit sie später nochmal in Ruhe angeschaut werden können
    • Lokales Recording bei mir mit extra Mikrofon:
      • Publikums-Wortmeldungen *nicht* aufzeichnen damit sich die Leute auch trauen „Anfänger_innenfragen“ zu stellen (?)

Was im Workshop vorkommt

  • Programmierung in Python
    • Ihr braucht nur Grundkenntnisse in der Programmierung
    • Ich werde das auf RaspiOS (ehem. Raspbian) vorinstallierte Thonny benutzen
  • Den Strip ansteuern
    • Blinken
    • Farbverläufe
  • 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 noch keine. Wenn wer eine gute Idee hat, 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
    • Maximale Länge? Ab wievielen braucht eins eine extra Stromversorgung?
  • Grundkenntnisse im Programmieren
    • Muss nicht in Python sein, jede Sprache ist okay
      • Das nötige Python-Wissen wird im Rahmen des Workshops erklärt
    • „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
    • Evtl werden wir Kits anbieten, die alles Nötige beinhalten und ohne Löten angeschlossen werden können

Was im Workshop //nicht// vorkommt

  • Low-Level Ansteruerung, DMA etc.
    • Wir werden die Library rpi-ws281x benutzen, die das für uns erledigt
  • Löten, Platinen etc.
    • Wir werden die LED-Streifen direkt an den Pi anschließen.

Wer Hilfe bei komplizierteren Projekten braucht, ist aber gerne bei unseren open (online) HackNights gesehen!

workshop/rgb-leds-und-raspberry-pi.1604883805.txt.gz · Zuletzt geändert: 09.11.2020 02:03 von ebrnd
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Driven by DokuWiki