Innehållsförteckning:

Digispark & WS2812 Rainbow Wheel in a Box: 4 steg (med bilder)
Digispark & WS2812 Rainbow Wheel in a Box: 4 steg (med bilder)

Video: Digispark & WS2812 Rainbow Wheel in a Box: 4 steg (med bilder)

Video: Digispark & WS2812 Rainbow Wheel in a Box: 4 steg (med bilder)
Video: Rainbow wheel, wooden box (8x WS2812, DigiSpark, NeoPixel) 2024, November
Anonim
Image
Image
Digispark & WS2812 Rainbow Wheel i en låda
Digispark & WS2812 Rainbow Wheel i en låda
Digispark & WS2812 Rainbow Wheel i en låda
Digispark & WS2812 Rainbow Wheel i en låda

Det här lilla projektet har gjorts runt en snyggt snidad 10x6x5cm trälåda som jag hittade i en butik.

Dess bästa egenskap, som faktiskt inte har fångats ordentligt på kameran, är att lysa upp med ljusa, mättade färger, sidorna på lådan med träsnideri.

På den andra sidan, var medveten om att användning av en regnbågseffekt på en remsa av smala RGB 5050 lysdioder alltid kommer att resultera i en vitaktig belysning inom några centimeter från lysdioderna, eftersom varje pixels färg snart blandas med grannarnas. Om du vill undvika denna effekt kan du prova att använda ett fokuseringslins

Lampans ljusstyrka hålls proportionell mot det omgivande ljuset tack vare en LDR: lampan lyser under dagsljus och blir inte för ljus när den används som nattljus, i mörker.

Tillbehör

Materialförteckning:

  • ett Attiny85 Digispark (klon) kort, med dess Micronucleus bootloader
  • en 8x WS2812 bar
  • en LDR, används för att ställa in lampans ljusstyrka beroende på omgivningen
  • ett 10KΩ uppdragningsmotstånd för LDR
  • en USB -mikrokabel för att programmera Digispark och för att driva lampan när den är klar
  • en ihålig trälåda
  • en 5V⎓ strömkälla (som kan ge minst 500mA)

Färdigheter och verktyg:

  • PlatformIO (körs på Visual Studio Code) som IDE - alla Arduino IDE kommer dock att göra jobbet
  • ett lödkolv, lite lödtråd och grundläggande lödkunskaper
  • några ledningar, sax
  • lite lim, pincett
  • lite ogenomskinlig färg (för att täcka Digispark LED och för att skydda LDR från att påverkas av lampans ljus)

Steg 1: Digispark och PlatformIO

Digispark (och varje klon som involverar samma 8-bitars mikrokontroller) är ett utbrottskort byggt kring en AVR Attiny85, som kan raka USB-kommunikation tack vare en Micronucleus bootloader. Mer information finns på dess wiki:

PlatformIO är det ekosystem jag använde för att programmera Digispark. För att arbeta med det måste du installera Visual Studio Code

Steg 2: Schematisk och kabeldragning

Schematisk och kabeldragning
Schematisk och kabeldragning
Schematisk och kabeldragning
Schematisk och kabeldragning
Schematisk och kabeldragning
Schematisk och kabeldragning

Lödning

  1. anslut tre ledningar till WS2812 bar (jord, strömingång och dataingång)
  2. trådjord och Vcc till 5V och GND -stift på Digispark
  3. löd den återstående tråden till Digisparks P0 -stift
  4. löd ett 10KΩ motstånd mot GND- och P2 -stiften på brädet
  5. använd två trådar för att ansluta LDR till 5V- och P2 -stiften (jag använde knappt synliga emaljerade ledningar av estetiska skäl)

Steg 3: Firmware

Hitta koden för detta projekt på min GitHub:

Skönt att veta:

  • #include måste användas när du arbetar med PlatformIO
  • parametrarna, som tapparnas tilldelning, antal WS2812 lysdioder, regnbågshastighet och mörka/ljusa trösklar för både lysdioder och LDR är i början av koden
  • Adafruit Neopixel är biblioteket som används för att styra WS2812 -lysdioderna
  • RunningMedian -biblioteket används för att göra LDR -avläsningar mer stabila; på grund av de inställda gränserna, kartläggning av gränserna för LED -ljusstyrka, är detta särskilt trevligt i tillstånd med låg ljusstyrka, där en liten svängning kan resultera i ett irriterande flimmer
  • Du hittar inget försök att låsa Attiny85, så projektet kommer att förbli redigerbart

Några tips (visas även i filen README.md på GitHub):

  • För att ladda upp koden, se till att ha en USB -kabel med varje stift ansluten: billiga laddningskablar har ofta bara +5V och jordade
  • Om du laddar upp från PlatformIO till DigiSpark måste du ansluta DigiSpark efter kompilering, även om konsolen inte varnar "nu är det dags att ansluta din DigiSpark", som Arduino IDE gör.
  • Snabbkorrigering för problem vid uppladdning till DigiSpark från PlatformIO på MacOS: PIO nummer 111
  • Billiga USB -laddare kan ge smutsiga/bullriga utgångar, vilket kan göra att lysdioder märkligt flimrar, särskilt vid låg ljusstyrka: se till att ha en ren 5VDC -källa eller filtrera genom att lägga till en kondensator (eller en mer korrekt krets)

Steg 4: Hölje & Finishing Touch

Hölje & Finishing Touch
Hölje & Finishing Touch
Hölje & Finishing Touch
Hölje & Finishing Touch
Hölje & Finishing Touch
Hölje & Finishing Touch
  • Skär ett hål i den valda rutan för att vara värd för projektet, för att ansluta din USB -kabel. Tänk på att ju större hålet runt mikro -USB -kontakten är, desto mer läcker ljuset från din LED -bar, såvida du inte ger någon ogenomskinlig tätning.
  • Skär ett hål för LDR; se till att den inte pekar mot det område som kommer att belysas av lysdioderna, annars faller auto-regleringen i en loop
  • Gravera den inre ytan för att få plats med LED -baren, eftersom du inte direkt vill se lysdioderna medan du tittar på din lampa
  • Täta med ett ogenomskinligt medium botten av LDR, för att undvika störningar i avkänning av omgivningens ljusstyrka orsakas av WS2812 bar
  • Använd en droppe ogenomskinlig färg för att maskera Digispark -strömledningen och undvik så att den lyser inuti lådan
  • Lim Digispark -bräda, LED -stång, LDR och varje kabel för att undvika att det inre i din ihåliga låda ser oroligt ut
  • Förutse en USB -kabel med en strömbrytare för att enkelt tända och stänga av lampan

Rekommenderad: