Innholdsfortegnelse:

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

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

Video: Digispark & WS2812 Rainbow Wheel in a Box: 4 Steps (med bilder)
Video: Rainbow wheel, wooden box (8x WS2812, DigiSpark, NeoPixel) 2024, November
Anonim
Image
Image
Digispark & WS2812 Rainbow Wheel in a Box
Digispark & WS2812 Rainbow Wheel in a Box
Digispark & WS2812 Rainbow Wheel in a Box
Digispark & WS2812 Rainbow Wheel in a Box

Dette lille prosjektet har blitt laget rundt en pent utskåret 10x6x5cm trekasse jeg fant i en butikk.

Den beste egenskapen, som faktisk ikke er blitt skikkelig fanget på kameraet, er å lyse opp med lyse, mettede farger, sidene på esken med trehugg.

På den andre siden, vær oppmerksom på at bruk av en regnbueeffekt på en stripe med smale RGB 5050 lysdioder alltid vil resultere i en hvitaktig belysning innenfor noen centimeter fra lysdiodene, ettersom hver piksel farge snart blandes med naboens. Hvis du vil unngå denne effekten, kan du prøve å bruke et fokuseringsobjektiv

Lysstyrken til lampen holdes proporsjonal med omgivelseslyset takket være en LDR: lampen vil skinne i dagslysforhold og vil ikke være for lys når den brukes som nattlys, i mørket.

Rekvisita

Stykklister:

  • ett Attiny85 Digispark (klon) -kort, med Micronucleus bootloader
  • en 8x WS2812 bar
  • en LDR, brukes til å justere lampens lysstyrke avhengig av omgivelsene
  • en 10KΩ opptrekksmotstand for LDR
  • en USB -mikrokabel for å programmere Digispark og for å drive lampen når den er ferdig
  • en hul trekasse
  • en 5V⎓ strømkilde (i stand til å levere ikke mindre enn 500mA)

Ferdigheter og verktøy:

  • PlatformIO (kjører på Visual Studio Code) som IDE - enhver Arduino IDE vil imidlertid gjøre jobben
  • et loddejern, litt loddetråd og grunnleggende loddeferdigheter
  • noen ledninger, saks
  • litt lim, pinsett
  • litt ugjennomsiktig maling (for å dekke Digispark LED og for å beskytte LDR mot å bli påvirket av lampelyset)

Trinn 1: Digispark og PlatformIO

Digispark (og hver klon som involverer den samme 8-biters mikrokontrolleren) er et breakout-kort bygget rundt en AVR Attiny85, som er i stand til enkel USB-kommunikasjon takket være en Micronucleus bootloader. Du finner mer informasjon på wikien:

PlatformIO er økosystemet jeg brukte til å programmere Digispark. For å jobbe med det må du installere Visual Studio Code

Trinn 2: Skjematisk og ledninger

Skjematisk og ledninger
Skjematisk og ledninger
Skjematisk og ledninger
Skjematisk og ledninger
Skjematisk og ledninger
Skjematisk og ledninger

Lodding

  1. koble tre ledninger til WS2812 bar (jord, strøminngang og datainngang)
  2. jordet og Vcc til 5V og GND -pin på Digispark
  3. lodd den gjenværende ledningen til Digisparks P0 -pinne
  4. lodd en 10KΩ motstand til GND- og P2 -pinnene på brettet
  5. bruk to ledninger for å koble LDR til 5V og P2 pinner (jeg brukte knapt synlige emaljerte ledninger av estetiske årsaker)

Trinn 3: Fastvare

Finn koden for dette prosjektet på min GitHub:

Fint å vite:

  • #include må brukes mens du arbeider med PlatformIO
  • parametrene, som pinners tildeling, antall WS2812 lysdioder, hastighet på regnbuehjul og mørke/lyse terskler for både lysdioder og LDR er i begynnelsen av koden
  • Adafruit Neopixel er biblioteket som brukes til å kontrollere WS2812 lysdioder
  • RunningMedian -biblioteket brukes til å gjøre LDR -avlesninger mer stabile; på grunn av grensene som er satt, kartlegging av LED -lysstyrkegrenser, er dette spesielt fint i tilstander med lav lysstyrke, hvor en liten svingning kan resultere i en irriterende flimring
  • Du finner ikke noe forsøk på å låse Attiny85, så prosjektet forblir redigerbart

Noen tips (vises også i filen README.md på GitHub):

  • For å laste opp koden må du sørge for å ha en USB -kabel med hver pin -kabel: billige ladekabler har ofte bare +5V og jordet
  • Når du laster opp fra PlatformIO til DigiSpark må du koble DigiSpark etter kompilering, selv om konsollen ikke advarer "nå er det på tide å koble til DigiSpark", slik Arduino IDE gjør.
  • Rask løsning for problem ved opplasting til DigiSpark fra PlatformIO på MacOS: PIO problem 111
  • Billige USB -ladere kan gi skitten/støyende utgang, noe som kan få lysdioder til å flimre spesielt ved lav lysstyrke: sørg for å ha en ren 5VDC -kilde, eller filtrer ved å legge til en kondensator (eller en mer riktig krets)

Trinn 4: Casing & Finishing Touch

Casing & Finishing Touch
Casing & Finishing Touch
Casing & Finishing Touch
Casing & Finishing Touch
Casing & Finishing Touch
Casing & Finishing Touch
  • Skjær et hull i boksen du ønsker for prosjektet, for å koble til USB -kabelen. Vær oppmerksom på at jo større hullet rundt mikro -USB -kontakten er, desto mer lekker det lys fra LED -linjen, med mindre du ikke gir noen ugjennomsiktig tetning.
  • Skjær et hull for LDR; sørg for at den ikke peker mot området som vil bli opplyst av lysdiodene, ellers faller automatisk regulering i en sløyfe
  • Graver den indre overflaten for å få plass til LED -stangen, ettersom du ikke vil se LED -ene direkte mens du ser på lampen din
  • Forsegl med et ugjennomsiktig medium bunnen av LDR, for å unngå forstyrrelser i sensing av miljøets lysstyrke forårsaket av WS2812 bar
  • Bruk en dråpe ugjennomsiktig maling for å maskere Digispark -strømledningen, og unngå å få den til å skinne inne i esken
  • Lim Digispark -brettet, LED -stangen, LDR og hver kabel for å unngå at det indre av den hule boksen ser uryddig ut
  • Forutse en USB -kabel med en bryter, for enkelt å slå av og på lampen

Anbefalt: