Inhaltsverzeichnis:

Digispark & WS2812 Rainbow Wheel in einer Box - Gunook
Digispark & WS2812 Rainbow Wheel in einer Box - Gunook

Video: Digispark & WS2812 Rainbow Wheel in einer Box - Gunook

Video: Digispark & WS2812 Rainbow Wheel in einer Box - Gunook
Video: Rainbow wheel, wooden box (8x WS2812, DigiSpark, NeoPixel) 2024, November
Anonim
Image
Image
Digispark & WS2812 Rainbow Wheel in einer Box
Digispark & WS2812 Rainbow Wheel in einer Box
Digispark & WS2812 Rainbow Wheel in einer Box
Digispark & WS2812 Rainbow Wheel in einer Box

Dieses winzige Projekt wurde um eine schön geschnitzte 10x6x5cm Holzkiste herum gemacht, die ich in einem Geschäft gefunden habe.

Sein bestes Feature, das eigentlich nicht richtig von der Kamera eingefangen wurde, ist, die Seiten des baumgeschnitzten Deckels der Box mit hellen, gesättigten Farben zu beleuchten.

Beachten Sie auf der anderen Seite, dass die Verwendung eines Regenbogeneffekts auf einem Streifen schmaler RGB 5050-LEDs immer zu einer weißlichen Beleuchtung innerhalb einiger Zentimeter von den LEDs führt, da sich die Farbe jedes Pixels bald mit seinen Nachbarn vermischt. Wenn Sie diesen Effekt vermeiden möchten, können Sie versuchen, eine Fokussierlinse zu verwenden

Die Helligkeit der Lampe wird dank eines LDR proportional zum Umgebungslicht gehalten: Die Lampe leuchtet bei Tageslicht und wird als Nachtlicht im Dunkeln nicht zu hell.

Lieferungen

Stückliste:

  • ein Attiny85 Digispark (Klon) Board mit seinem Micronucleus Bootloader
  • ein 8x WS2812 bar
  • ein LDR, um die Helligkeit der Lampe abhängig von der Umgebung abzustimmen
  • ein 10KΩ Pull-Up-Widerstand für den LDR
  • ein USB-Mikrokabel, um den Digispark zu programmieren und die Lampe anschließend mit Strom zu versorgen
  • eine hohle Holzkiste
  • eine 5V⎓ Stromquelle (die nicht weniger als 500mA liefern kann)

Fähigkeiten und Werkzeuge:

  • PlatformIO (ausgeführt auf Visual Studio Code) als IDE - jede Arduino IDE wird jedoch die Arbeit erledigen
  • ein Lötkolben, etwas Lötdraht und grundlegende Lötkenntnisse
  • etwas Verkabelung, Schere
  • etwas Kleber, Pinzette
  • etwas undurchsichtige Farbe (um Digispark LED abzudecken und den LDR vor Beeinflussung durch das Lampenlicht zu schützen)

Schritt 1: Digispark und PlatformIO

Digispark (und jeder Klon mit demselben 8-Bit-Mikrocontroller) ist ein Breakout-Board, das um einen AVR Attiny85 herum aufgebaut ist und dank eines Micronucleus-Bootloaders eine direkte USB-Kommunikation ermöglicht. Weitere Informationen finden Sie in seinem Wiki:

PlatformIO ist das Ökosystem, mit dem ich den Digispark programmiert habe. Um damit zu arbeiten, müssen Sie Visual Studio Code installieren

Schritt 2: Schaltplan und Verdrahtung

Schaltplan und Verdrahtung
Schaltplan und Verdrahtung
Schaltplan und Verdrahtung
Schaltplan und Verdrahtung
Schaltplan und Verdrahtung
Schaltplan und Verdrahtung

Löten

  1. Verbinden Sie drei Drähte mit der WS2812-Leiste (Masse, Stromeingang und Dateneingang)
  2. Drahtmasse und Vcc an 5V und GND-Pin des Digispark
  3. Löten Sie den verbleibenden Draht an den P0-Pin von Digispark
  4. Löten Sie einen 10KΩ Widerstand an GND und P2 Pins der Platine
  5. Verwenden Sie zwei Drähte, um den LDR an 5V- und P2-Pins anzuschließen (ich habe aus ästhetischen Gründen kaum sichtbare Lackdrähte verwendet)

Schritt 3: Firmware

Den Code für dieses Projekt finden Sie auf meinem GitHub:

Gut zu wissen:

  • #include muss während der Arbeit mit PlatformIO verwendet werden
  • Die Parameter, wie Pinbelegung, Anzahl der WS2812 LEDs, Rainbow Wheel Speed und Dark/Hell Thresholds für LEDs und LDR stehen am Anfang des Codes
  • Adafruit Neopixel ist die Bibliothek zur Steuerung der WS2812 LEDs
  • Die RunningMedian-Bibliothek wird verwendet, um die LDR-Messwerte stabiler zu machen. Aufgrund der eingestellten Grenzen, die die LED-Helligkeitsgrenzen abbilden, ist dies besonders schön bei geringer Helligkeit, wo eine winzige Schwankung zu einem störenden Flackern führen kann
  • Sie werden keinen Versuch finden, den Attiny85 zu sperren, sodass das Projekt weiterhin bearbeitet werden kann

Einige Hinweise (die auch in der Datei README.md auf GitHub erscheinen):

  • Um den Code hochzuladen, vergewissern Sie sich, dass Sie ein USB-Kabel haben, bei dem jeder Pin verkabelt ist: Billige Ladekabel haben oft nur +5V und Massekabel
  • Das Hochladen von PlatformIO zu DigiSpark erfordert, dass Sie den DigiSpark nach dem Kompilieren anschließen, obwohl die Konsole nicht warnt "jetzt ist es Zeit, Ihren DigiSpark anzuschließen", wie dies bei der Arduino IDE der Fall ist.
  • Schnelle Behebung des Problems beim Hochladen von PlatformIO zu DigiSpark unter MacOS: PIO-Problem 111
  • Billige USB-Ladegeräte können eine schmutzige / verrauschte Ausgabe liefern, was dazu führen kann, dass LEDs insbesondere bei geringer Helligkeit seltsam flackern: Stellen Sie sicher, dass Sie eine saubere 5 VDC-Quelle haben, oder filtern Sie einen Kondensator (oder eine geeignetere Schaltung) hinzu.

Schritt 4: Gehäuse & Finishing Touch

Gehäuse & Finishing Touch
Gehäuse & Finishing Touch
Gehäuse & Finishing Touch
Gehäuse & Finishing Touch
Gehäuse & Finishing Touch
Gehäuse & Finishing Touch
  • Schnitzen Sie ein Loch in die Box Ihrer Wahl, um das Projekt zu hosten, um Ihr USB-Kabel anzuschließen. Beachten Sie, dass je größer das Loch um den Micro-USB-Anschluss herum ist, desto mehr Licht aus Ihrer LED-Leiste austritt, es sei denn, Sie bieten keine undurchsichtige Versiegelung.
  • Schnitze ein Loch für den LDR; Achten Sie darauf, dass es nicht auf den Bereich zeigt, der von den LEDs beleuchtet wird, da sonst die Auto-Regulierung in eine Schleife fällt
  • Gravieren Sie die Innenfläche, um Platz für die LED-Leiste zu schaffen, da Sie die LEDs beim Betrachten Ihrer Lampe nicht direkt sehen möchten
  • Versiegeln Sie die Unterseite des LDR mit einem lichtundurchlässigen Medium, um Störungen der Helligkeit der Sensorumgebung durch den WS2812-Balken zu vermeiden
  • Verwenden Sie einen Tropfen undurchsichtiger Farbe, um die Strom-LED von Digispark zu maskieren, um zu vermeiden, dass sie in der Box glänzt
  • Kleben Sie Digispark-Platine, LED-Leiste, LDR und jedes Kabel, damit das Innere Ihrer Hohlbox nicht unordentlich aussieht
  • Sehen Sie ein USB-Kabel mit Schalter vor, um die Lampe einfach ein- und auszuschalten

Empfohlen: