Inhoudsopgave:

Digispark & WS2812 Rainbow Wheel in a Box - Ajarnpa
Digispark & WS2812 Rainbow Wheel in a Box - Ajarnpa

Video: Digispark & WS2812 Rainbow Wheel in a Box - Ajarnpa

Video: Digispark & WS2812 Rainbow Wheel in a Box - Ajarnpa
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

Dit kleine project is gemaakt rond een mooi gesneden houten kist van 10x6x5cm die ik in een winkel vond.

De beste eigenschap, die niet echt goed op camera is vastgelegd, is om de zijkanten van het met bomen uitgesneden deksel van de doos op te lichten met heldere, verzadigde kleuren.

Houd er aan de andere kant rekening mee dat het gebruik van een regenboogeffect op een strook smalle RGB 5050 LED's altijd zal resulteren in een witachtige verlichting binnen enkele centimeters van de LED's, omdat de kleur van elke pixel zich snel vermengt met zijn buren'. Als je dit effect wilt vermijden, kun je proberen een focuslens te gebruiken

De helderheid van de lamp wordt proportioneel gehouden met het omgevingslicht dankzij een LDR: de lamp zal schijnen bij daglicht en zal niet te fel zijn bij gebruik als nachtlampje, in het donker.

Benodigdheden

Stuklijst:

  • een Attiny85 Digispark (kloon) bord, met zijn Micronucleus bootloader
  • een 8x WS2812 bar
  • één LDR, gebruikt om de helderheid van de lamp af te stemmen op de omgeving
  • een 10KΩ pull-up weerstand voor de LDR
  • een USB-microkabel om de Digispark te programmeren en de lamp van stroom te voorzien zodra deze klaar is
  • een holle houten kist
  • een 5V⎓ stroombron (die niet minder dan 500mA kan leveren)

Vaardigheden en hulpmiddelen:

  • PlatformIO (draaiend op Visual Studio Code) als de IDE - elke Arduino IDE zal het werk echter doen
  • een soldeerbout, wat soldeerdraad en elementaire soldeervaardigheden
  • wat bedrading, schaar
  • wat lijm, pincet
  • wat ondoorzichtige verf (om Digispark LED te bedekken en om de LDR te beschermen tegen beïnvloeding door het lamplicht)

Stap 1: Digispark en PlatformIO

Digispark (en elke kloon met dezelfde 8-bits microcontroller) is een breakout-bord gebouwd rond een AVR Attiny85, in staat tot ongecompliceerde USB-communicatie dankzij een Micronucleus-bootloader. Meer informatie vindt u op de wiki:

PlatformIO is het ecosysteem dat ik heb gebruikt om het Digispark te programmeren. Om ermee te werken, moet u Visual Studio Code installeren

Stap 2: Schema en bedrading

Schema en bedrading
Schema en bedrading
Schema en bedrading
Schema en bedrading
Schema en bedrading
Schema en bedrading

Solderen

  1. sluit drie draden aan op de WS2812-balk (aarde, stroominvoer en gegevensinvoer)
  2. draadaarde en Vcc naar 5V en GND-pin van het Digispark
  3. soldeer de resterende draad op de P0-pin van Digispark
  4. soldeer een weerstand van 10KΩ aan GND- en P2-pinnen van het bord
  5. gebruik twee draden om de LDR aan te sluiten op 5V- en P2-pinnen (ik heb om esthetische redenen nauwelijks zichtbare geëmailleerde draden gebruikt)

Stap 3: Firmware

Vind de code voor dit project op mijn GitHub:

Leuk om te weten:

  • #include moet worden gebruikt tijdens het werken met PlatformIO
  • de parameters, zoals de toewijzing van de pinnen, het aantal WS2812-LED's, de snelheid van het regenboogwiel en de donkere/heldere drempels voor zowel LED's als LDR staan aan het begin van de code
  • Adafruit Neopixel is de bibliotheek die wordt gebruikt om de WS2812 LED's aan te sturen
  • RunningMedian-bibliotheek wordt gebruikt om LDR-metingen stabieler te maken; vanwege de ingestelde grenzen, het in kaart brengen van LED-helderheidsgrenzen, is dit vooral fijn bij lage helderheid, waar een kleine fluctuatie kan resulteren in een vervelende flikkering
  • U zult geen poging vinden om de Attiny85 te vergrendelen, dus het project blijft bewerkbaar

Enkele hints (die ook verschijnen in het README.md-bestand op GitHub):

  • Om de code te uploaden, moet u ervoor zorgen dat u een USB-kabel hebt met elke pin bedraad: goedkope oplaadkabels hebben vaak slechts +5V en zijn geaard
  • Uploaden van PlatformIO naar DigiSpark vereist dat je de DigiSpark aansluit na het compileren, ook al waarschuwt de console niet "nu is het tijd om je DigiSpark aan te sluiten", zoals Arduino IDE doet.
  • Snelle oplossing voor probleem bij uploaden naar DigiSpark vanuit PlatformIO op MacOS: PIO-probleem 111
  • Goedkope USB-laders kunnen een vuile/lawaaierige output leveren, waardoor LED's vreemd kunnen flikkeren, vooral bij lage helderheid: zorg voor een schone 5VDC-bron, of filter door een condensator toe te voegen (of een beter circuit)

Stap 4: Behuizing en afwerking

Behuizing en afwerking
Behuizing en afwerking
Behuizing en afwerking
Behuizing en afwerking
Behuizing en afwerking
Behuizing en afwerking
  • Snijd een gat in de doos van uw keuze voor het hosten van het project, om uw USB-kabel aan te sluiten. Houd er rekening mee dat hoe groter het gat rond de micro-USB-connector, hoe meer licht uit uw LED-balk lekt, tenzij u geen ondoorzichtige afdichting geeft.
  • Maak een gat voor de LDR; zorg ervoor dat het niet naar het gebied wijst dat door de LED's wordt verlicht, anders valt de auto-regeling in een lus
  • Graveer het binnenoppervlak om plaats te maken voor de LED-balk, omdat u de LED's niet direct wilt zien terwijl u naar uw lamp kijkt
  • Sluit de onderkant van de LDR af met een ondoorzichtig medium om interferentie in de helderheid van de detectieomgeving te voorkomen, veroorzaakt door de WS2812-balk
  • Gebruik een druppel dekkende verf om de Digispark-voedingsled te maskeren, zodat deze niet in de doos schijnt
  • Lijm Digispark-bord, LED-balk, LDR en elke kabel om te voorkomen dat het interieur van uw holle doos er slordig uitziet
  • Voorzie een USB-kabel met een schakelaar, om de lamp gemakkelijk aan en uit te zetten

Aanbevolen: