USB NeoPixel Deco verlichting (via Digispark / ATtiny85) (4 / 5 stap)

Stap 4: Hoe het werkt


Voor dit project hebben we drie "kleur spots" die heen en weer loopt langs de strook met verschillende snelheden. Wanneer plekken over elkaar lopen, resulteert superpositie van rode, groene en blauwe in verschillende kleuren. Wij houden van positie en snelheid van elke plek in variabelen en we opnieuw moet worden berekend van een kleur voor elke LED op elke herschrijven. Terwijl we het vele malen per seconde doen kunnen, ziet de animatie er glad.

Elke kleurcomponent van een pixel is evenredig aan de exp(-d*d), waar d de afstand tussen de pixels en het midden van spot van opgevuld met een kleur is. Met andere woorden, pixel kleuren vertegenwoordigen een normale (Gauss) distributie-het is precies hetzelfde als het gebruik van "Gaussian blur" filter in grafische editor.

De exponent functie opgenomen in de Arduino library leek te zijn zeer traag, dus maakte ik een benadering met behulp van slechts twee vermenigvuldigingen en één divisie: 1.0/(1.0-(0.634-1.344*x)*x). Houd er rekening mee dat deze aanpassing alleen geschikt voor x < 0 is.

We berekenen de kleur van elke pixel in de lus en stuur het naar een geheugenbuffer door te bellen naar strip.setPixelColor(). Wanneer we een lus over elke pixel noemen we strip.show() en NeoPixel library synchroon alle gegevens stuurt naar opgegeven pin-alle pixels, één voor één, 24-bits kleur gegevens voor elke pixel. Eerste NeoPixel leest eerste 24 bits van gegevens, het lokaal worden opgeslagen in een register en alle andere gegevens via wordt doorgegeven aan volgende pixels. Tweede "pixel" neemt de gegevens en stuurt de rest naar de volgende – enzovoort enzovoort tot elke pixel de gegevens krijgt. U kunt veilig minder gegevens verzenden dan aantal LEDs in een strip hebt – alleen eerste NUMPIXELS dan zal werken.

De code is goed gedocumenteerd (hoop ik!), en gelieve te vragen in de reacties hier!

Gerelateerde Artikelen

Hoe converteren naar een Trinket te ontgrendelen Digispark ATtiny85

Hoe converteren naar een Trinket te ontgrendelen Digispark ATtiny85

Digispark ATtiny85 planken komen met de micronucleustest bootloader en de resetpin uitgeschakeld. Als reset is uitgeschakeld u krijgen een extra digitale pin, en u moet uploaden schetsen met behulp van de bootloader. U kunt niet programmeren van de I
Reactieve Neopixel deur verlichting

Reactieve Neopixel deur verlichting

Wat denk je? Je deur kan nu lichten op het ook!Maar wacht, er is meer! Deze lichten zijn reactieve omdat ze voelen wanneer u sluit de deur en automatisch schakelt uit, u zowel energie te besparen en van slaaptekort door de gloeiende awesomeness die d
Het bedienen van uw verlichting via een webpagina!

Het bedienen van uw verlichting via een webpagina!

Na het spelen met RF-controllers voor een tijdje, ik realiseerde me een groot nadeel is de noodzaak om altijd een zender om een signaal naar de ontvanger. Zou het niet mooi zijn als ik mijn telefoon als een zender gebruiken kon? Nou, is dat precies w
Remote controlled kleurrijke LED-verlichting voor Aquarium

Remote controlled kleurrijke LED-verlichting voor Aquarium

Volg onderstaande instructies voor het toevoegen van kleurrijke LED-verlichting rondom het aquarium vóór uw volgende huis partij. En daarnaast een RF-afstandsbediening kunt besturen van het thema van de lichten, terwijl de partij is ingeschakeld met
NeoPixel LED hart Sensor jas

NeoPixel LED hart Sensor jas

Start uit te proberen te laten uitzien als Iron Man, uiteindelijk te denken een beetje over je menselijkheid, hebben veel plezier in het proces. Dit project is bedoeld om te produceren en interessante en onverwachte ingang van een bron die we nemen v
Raspberry Pi Bluetooth LE Controller voor WS2812B (NeoPixels)

Raspberry Pi Bluetooth LE Controller voor WS2812B (NeoPixels)

Bluetooth Low Energy (aka BLE/Bluetooth 4.0/Bluetooth Smart) is de meest recente incarnatie van Bluetooth-technologie ontwikkeld door Bluetooth SIG (de organisatie die de specificatie onderhoudt). Deze communicatieprotocol is ontworpen voor toepassin
Reverse-engineering: USB gecontroleerd huisautomatisering houwer

Reverse-engineering: USB gecontroleerd huisautomatisering houwer

Hack een draadloos domoticasysteem te USB gecontroleerd met behulp van twee AVR microcontrollers!Check de video! Het systeem is echt meer responsieve, maar de browser op mijn telefoon is traag.Als je dit leuk vindt, kan u ook als volgt:Stap 1: Vaardi
Adresseerbaar melkflessen (LED-verlichting + Arduino)

Adresseerbaar melkflessen (LED-verlichting + Arduino)

maken PPE flessen melk in goed uitziende LED-verlichting, en een Arduino gebruiken ze te bestrijden. Dit een aantal dingen, vooral de melkflessen, recycleert en maakt gebruik van een zeer lage hoeveelheid macht: de LEDs blijkbaar minder dan 3 watt ve
Sensorino draadloze home verlichting met Arduino

Sensorino draadloze home verlichting met Arduino

Domotica bestaat voor een tijdje (sinds de jaren 90?) en is vrij duur, maar met de komst van Arduino en vooral goedkope sensoren, Relais, andere onderdelen van Ebay is niet langer een inherente reden voor een maker niet voor het automatiseren van hun
LED boom met DigiSpark

LED boom met DigiSpark

HalloIk wilde maken van een LED-boom voor jaren, maar kreeg niet goed instructable op internet. Ik vond sommige waarmee eenvoudige lichten gewikkeld rond een structuur van het stijve draad. Deze lichten zijn beetje fragiel en gemakkelijk buit.Ik had
CNC USB dual-layer PCB frezen

CNC USB dual-layer PCB frezen

ik heb onlangs een CNC machine uit verschillende stukken van hoge kwaliteit berging gebouwd. Met het geld dat ik gered in de bouw van het systeem kocht ik een controller en de software, de uitstekende MK2 CNC USB-controller van Planeet CNC. Dit vormt
DIY PowerBank voor Smartphones & andere USB-compatibele apparaat upgraden

DIY PowerBank voor Smartphones & andere USB-compatibele apparaat upgraden

Dit is een bijgewerkte DIY Powerbank projecten voor:•DIY 1-huisgemaakte Powerbank met AA batterijen•Links hier gevonden:iPhone DIY PowerbankEn•DIY 2-zelfgemaakte Powerbank met behulp van 3 pcs van 18650 2200mAh Li-iOn batterij (6600mAh)•Links hier ge
Setting Up A Microcloud met A USB Drive

Setting Up A Microcloud met A USB Drive

dit instructable kan worden geraadpleegd op de website van de auteur - http://www.neatinformation.com/Als u een koppeling naar dit instructable van een andere website, voeg een link naar de website van Neat informatie .Dit artikel is auteursrechtelij
ATtiny85 POV Display

ATtiny85 POV Display

De eerste keer dat ik zag een display POV (Persistence Of Vision) werd op een show genaamd FAQ op TV. De POV display bestond uit een oscillerende schacht met 6 LED's gemonteerd op het uiteinde van de schacht.Sindsdien heb ik altijd willen maken een m