Sisukord:

Dünaamiline LED -valgustuse kontroller kunsti jaoks: 16 sammu (piltidega)
Dünaamiline LED -valgustuse kontroller kunsti jaoks: 16 sammu (piltidega)

Video: Dünaamiline LED -valgustuse kontroller kunsti jaoks: 16 sammu (piltidega)

Video: Dünaamiline LED -valgustuse kontroller kunsti jaoks: 16 sammu (piltidega)
Video: Marlin Firmware 2.0.x Explained 2024, November
Anonim
Image
Image

Sissejuhatus:

Valgustus on visuaalse kunsti oluline aspekt. Ja kui valgustus võib aja jooksul muutuda, võib sellest saada kunsti oluline mõõde. See projekt sai alguse valgusšõu külastamisest ja kogemisest, kuidas valgustus võib objekti värvi täielikult muuta. Hakkasime seda valgustama kangakunstis. Siiani oleme ehitanud dünaamilise valgustuse 8 tükki, sealhulgas maali ja foto jaoks. Valgusefektide hulka on kuulunud: koidu ja päikeseloojangu simuleerimine, veealune valgus läbi lainetava pinna, välk pilvedes ning kunstiteose tajutavate värvide ja meeleolu dramaatiline muutmine. Nende efektide videod on lisatud allolevatesse programmeerimisetappidesse.

See juhis loob kontrolleri, mis aja jooksul määrab individuaalselt adresseeritavate LED -ide heleduse ja värvi. See sisaldab ka valikulist sisendahelat valgustuse segmendi käsitsi häälestamiseks (heleduse ja värvi seadmiseks). Samuti saate teada paljudest probleemidest ja täiustustest, mille me teel avastasime.

Kirjutasime ka sellega seotud juhendi varjukasti ja raami ehitamiseks. Vaadake seda aadressil:

Praegu keskendume elektroonikale ja programmeerimisele.

Samm: materjalid:

  • Struktuur WS2812 LED -e
  • Arduino Pro Mini 328 - 5V/16 MHz
  • FTDI sõbra USB -liides
  • USB A kuni MiniB kaabel FTDI jaoks
  • 4700 μf kondensaator
  • 5 V toiteallikas 5,5 x 2,1 pistikuga
  • Pistikupesa 5,5 x 2,1
  • Klemmiplokk
  • Trükkplaadi prototüüp
  • Nupp
  • Potentsiomeeter
  • LED -indikaator
  • Takistid
  • Lintkaabel
  • Päise isane
  • Päise emane

2. samm: ressursid:

  • Arduino; Interaktiivne arenduskeskkond (IDE)
  • Adafruit NeoPixeli raamatukogu
  • NeoPixeli õpetus
  • Strandtesti näidisprogramm
  • FastLED raamatukogu
  • FastLED -lingid ja dokumentatsioon
  • FastLEDi foorum
  • Meie valgustusjoonised

3. samm: kontrolleri ülevaade:

Kontrolleri ülevaade
Kontrolleri ülevaade
Kontrolleri ülevaade
Kontrolleri ülevaade

Skeem tundub üsna lihtne ja nii see on. Ehitasime oma kontrollerid pildiraami sisse põimituks. Pildil oleva vooluahela mõõtmed on 2,25 x 1,3 tolli x 0,5 tolli. Valikuline tuuner ehitati eraldi trükkplaadile, millel oli lintkaabli pistik. Need pildid näitavad meie valmis projekti.

Tahame oma kontrolleri pildiraami mahutada, nii et valisime Arduino pro mini 5v selle väikese suuruse, kulude ja 5v väljundi tõttu. Vajaliku 5v toiteallika suurus sõltub sellest, kui palju LED -e ja nende maksimaalne heledus teie projektis on. Kõik meie projektid töötasid alla 3 ampri ja mõned olid alla 1 ampri. Aadressitavaid värvilisi LED -e on mitut tüüpi. Alustasime WS2812 -ga, mida Adafruit müüs ühe oma “NeoPixeli” tootena. See töötas meie jaoks ja me pole teisi LED -e uurinud. Enamik meie projekte kasutas 60 LED -i meetri kohta. Siiani on meie projektides olnud kuni 145 LED -i.

Valikuline tuuner:

Ehitasime väikese sisendahela „tuuneri”, et saaksime hõlpsalt reguleerida valgustuse segmente ilma iga kohandamise programmi muutmata ja üles laadimata. Sellel on: väljund -LED, mis sisendrežiimi vilgutab; nupp, mis muudab sisendrežiimi; ja nupp, mida saab reguleerida. Seejärel saab Arduino väärtused ühendatud arvutisse väljastada.

4. samm: ehitusjuht:

Ehituse kontroller
Ehituse kontroller

Materjalide loend ei sisalda traati, soojendustorusid ega muid vajalikke tarvikuid. Valgusdioodide 5 -voldise ja maandusahela jaoks soovitan kasutada 26 -meetrist või raskemat ahelatraati. Kasutasime 26 mõõturit. Samuti on traadi silikoonisolatsioon parem, kuna see ei sula jootmiskoha läheduses ja on paindlikum. Leidsin, et komponentide vahele veidi rohkem ruumi jättes valmistamine oli palju lihtsam. Näiteks etapis #6 kujutatud kontroller on pistikupesa (must) korpuse ja klemmiploki (sinine) vahel umbes 1 tolli. Meie paigalduskate on kaks kihti puidust spooni.

Selle sammu pilt näitab kuue kontaktiga naissoost päise juhtmestikku valikulise tuuneri jaoks. Kasutamata kontakt punase ja rohelise juhtme vahel on ühendatud vastupidise ühendamise vältimiseks hambaorkuga.

5. samm:

Pilt
Pilt
Pilt
Pilt
Pilt
Pilt

Nüüd paneme selle kokku, nii et see sobib varjukasti raami. Raam on 3/4 tolli paks, nii et meil on kontrolleri kõrguse piirang 1/2 . Paigaldusplaadid valmistasime, kleepides väändumise piiramiseks kaks spoonitugevdajat teraga üksteise suhtes risti. Komponendid on paigutatud nii, et toitepistik on raami keskel. Pistikupesa auk lõigati juveliirisaega ja viiliti sobivaks. Seejärel ühendatakse komponendid enne paigaldamist kokku. Pistikupesa on liimitud epoksiidiga. Kruviklemmi ja arduino all kasutatakse kahepoolset püsivahtu. Kuumliimi kasutatakse ka arduino ja kondensaatori hoidmiseks.

6. samm: valikulise tuuneri ehitamine:

Valikulise tuuneri ehitamine
Valikulise tuuneri ehitamine
Valikulise tuuneri ehitamine
Valikulise tuuneri ehitamine
Valikulise tuuneri ehitamine
Valikulise tuuneri ehitamine

Ehitasime väikese sisendahela „tuuneri”, et saaksime hõlpsalt reguleerida valgustuse segmente ilma iga kohandamise programmi muutmata ja üles laadimata. Sellel on: väljund -LED, mis sisendrežiimi vilgutab; nupp, mis muudab sisendrežiimi; ja nupp, mida saab reguleerida. Seejärel saab Arduino väärtused ühendatud arvutisse väljastada.

Need pildid näitavad tuuneri valmistamist. Katsin selja “Gorilla” teibiga. Mis hoiab lintkaablit stabiilsena ja tegi ka kena käepideme.

7. samm: kontrolleri programmeerimise ülevaade:

See on tõesti projekti raske osa. Loodetavasti saate mõne meie koodi ja meetodi abil edumaa saada.

Adafruit ja FastLED on avaldanud kaks suurepärast raamatukogu, mis võimaldavad Arduinosel juhtida mitmesuguseid adresseeritavaid LED -e. Me kasutame mõlemat raamatukogu erinevates projektides. Soovitame teil tutvuda ka nende raamatukogude materjalidega ja tutvuda nende näidisprogrammidega.

Meie programmide Githubi hoidla on loetletud ülaltoodud jaotises „Ressursid”. Pange tähele, et me pole Arduino programmeerimisel kaugeltki vilunud, nii et arenguruumi on palju. Juhtige julgelt tähelepanu probleemidele ja panustage parandustesse.

8. samm: kontrolleri programmeerimise näide Ripple:

Jeanie Holti “Ripple” oli meie esimene edu. See tükk on kangast kunstkala varjukarbi raamis. Valgustus on altpoolt ühtlaselt madal. Ja ülevalt, kuni kolm heledama valge valguse võlli, mis liiguvad paremalt vasakule, justkui murduksid veepinnal liikuvate lainete tõttu. See on üsna lihtne kontseptsioon ja programm ei kasuta tuuneri sisendeid. See algab Adafruit'i raamatukoguga, väljundi juhtnupu ja valgusdioodide arvu määratlemisega. Järgmisena seadistame jadaühenduse ja LED-riba ühekordselt. Seejärel määratleme mitu sisemist muutujat, näiteks värskenduste vaheline viivitus, valgusvõlli omadused (selle heledus aja jooksul ja selle liikumine), seejärel oleku muutujad iga valgusvõlli jaoks.

Funktsioon „changeBright ()” suurendab rünnakuajal valgusvõlli heledust, hoiab seda püsivusaja jooksul konstantsena, seejärel kustub lagunemisaja jooksul.

Funktsiooni “ripple ()” kutsutakse iga kolme valgusvõlli jaoks iga aja suurendamise ajal. Ajutine heledus arvutatakse lähtuvalt pleekimisest maksimaalsest heledusest aja jooksul pideva lagunemise korral. Seejärel arvutatakse heledus iga lähteasendist vasakule jääva LED -i jaoks. Võime ette kujutada valguslainet, mis liigub vasakule. Iga vasakpoolne valgusdiood asub pulsatsiooni heleduse aja kõvera varasemas punktis. Kui sellel lainel on kõigi valgusdioodide heledus null, on tehtud lipuks seatud 1. Kui valgusdiood on juba heledam (seatud mõne teise lainetusega), jätame väärtuse muutmata.

Põhiahel algab LED -de väljalülitamisega. Seejärel kutsub see iga kolme lainetuse jaoks pulsatsioonifunktsiooni ja suurendab selle ajaloendurit. Kui valmis lipp on seatud, algab see lainetus. Lõpuks paneb põhisilm hele sinise valguse üle põhja.

9. samm: kontrolleri programmeerimise näide koidikust hämarani:

Image
Image

Järgmine projekt, Jeanie Holti “Koit õhtuhämarusse”, on seekord järjekordne kangakunstiteos, mis on sügiseste lehtedega puu. Valgustus on päeva simulatsioon, kus koidik hakkab heledamaks muutuma, muutudes heledaks keskpäevaks, millele järgnevad punakad päikeseloojanguvärvid ja öö. Siin on väljakutseks lihtsustada 66 LED -i ribal aja jooksul värvi ja heleduse muutmise kirjeldust. Teine väljakutse on valguse sujuv muutmine. Me tõesti võitlesime valguse märgatava nihkumisega vähese valguse korral. Püüdsin valguse üleminekut sujuvamalt kasutada, kasutades FastLED -i teeki, kuid see ei õnnestunud. See programmi kirjeldus on vähem üksikasjalik. Jällegi kasutasime Adafruit'i NeoPixeli raamatukogu.

Läksime konventsioonile, kus käivitasime oma LED -ribad vasakus ülanurgas. See muudab LED -i asukoha nummerdamise selles tükis pisut ebamugavaks. Raami ümber on 86 LED -i. Dawn süttib vasakul küljel, mis ulatub 62 -st 85 -ni. Seejärel on vasakult ülevalt paremale alla 0 kuni 43.

See programm ei sisalda „Tuner“sisendahela kasutamise võimalust.

See programm kasutab väreluse vähendamiseks aega. Värskendame iga viiendat valgusdioodi ja vahetame siis üle ühe ning uuendame iga viiendat LED -i ja kordame, kuni kõik värskendatakse. Sel põhjusel määratleme LED -stringi pikkuse natuke pikemaks, kui see tegelikult on.

Nüüd lihtsustame valgustusmustri kirjeldust. Me tuvastasime 12 võrdlusdioodi positsiooni raami ümber vasakult alumiselt paremale. Seejärel määrasime nende võrdlus -LED -ide punase, rohelise ja sinise (RGB) valgustugevuse kuni 12 murdepunkti läbi koidu kuni hämariku. Iga katkestuspunkti kohta on 4 baiti, viimasest katkestuspunktist möödunud aja arv ja ühe baidi väärtus iga RGB värvi puhul. See massiiv võtab 576 baiti väärtuslikku mälu.

Kasutame nüüd lineaarset interpolatsiooni katkestuspunktide vaheliste väärtuste leidmiseks ja uuesti lineaarset interpolatsiooni, et leida võrdlusdioodide vahel paiknevate LED -ide väärtused. Et interpoleerimine hästi toimiks, peame kasutama mõningaid ujukoma vaheväärtusi. Koit kuni hämarus jaguneb 120 poole sekundi pikkuseks perioodiks.

10. samm: kontrolleri programmeerimise näide vihmamets:

Järgmine projekt, mida ma kirjeldan, on Juli-Ann Gasperi vihmamets. See on suurem kangast kunstiteos, millel on palju sügavust. Siin kasutasime umbes 4,4 tolli sügavat varjukasti. Valgustuskontseptsiooniks on taustvalgustuse tasemed, mis on allosas tuhmimad ja aeg -ajalt virvendab lehed eespool olevaid lehti. Siin on kontseptsioon sarnane Ripple'iga, kuid valgusvõllid ei liigu. Ja erinevalt lainest, kus heledus muutub sujuvalt, peab siin virvenduse heledus kõikuma. Lõime 40 -baidise massiivi nimega virvendus_b2. Leidsime, et visuaalne efekt oli hea, kui kasutasime kõigi virvenduskohtade puhul sama mustrit. Panime paika 5 virvenduskohta. Visuaalset efekti üle vaadates leidsime, et üks virvendustest pidi olema teistest palju laiem. Kasutasime funktsiooni fill_gradient_RGB (), et venitada see üle 20 LED -i. Iga värelus on sõltumatu ja algab juhuslikult. Iga väreluse tõenäosust saab määrata.

Taustavärv tuleb seadistada ja taastada, kui värelus pole taustast eredam.

Selle tüki jaoks kasutasime FastLED raamatukogu. Selles programmis kasutatakse #define TUNING -i, et näidata, kas häälestusplaat on ühendatud, see peab olema 0, kui tuunerplaat pole ühendatud. Vastasel juhul on kontroller staatilise elektri ja poltergeistide suhtes tundlik. Kompilaator sisaldab ainult programmisegmente, mis kasutavad tuunerit, kui see muutuja on 1.

11. samm: kontrolleri programmeerimise näide Storm:

Teine projekt oli Mike Becki foto nimega “Torm” süütamine. Pilt on tormipilv. Me kasutame FastLED -i kogu ja ei sisalda häälestamisvõimalusi. Valgustuse kontseptsioon on siin taustavalgus, mille välgusähvatused ilmuvad juhuslikult kolmes kohas pilve ümber. Välk igas kohas on põhjustatud kolmest valgusdioodist. Nende LED -ide vaheline ruum on igas kohas erinev. Nende kolme valgusdioodi heledust määravad kolm 30 -baidist massiivi. Kolme massiivi heledusjärjestus annab variatsiooni ja näilise liikumise kolme LED -i vahel. Iga asukoha jaoks valitakse tajutava liikumise suund ja üldine heledus. Välklambi kestust igas kohas reguleeritakse heleduse väärtuste värskendamise vahelise viivitusega. Pikselöökide vahel on juhuslik viivitus vahemikus 0,2 kuni 10,4 sekundit. Milline kolmest löögikohast on samuti juhuslik, 19% tõenäosusega pilve ülaosas, 45% võimalusega paremas alanurgas ja 36% võimalusega vasakul küljel.

12. samm: kontrolleri programmeerimise näited ara ja Põhjamaade puu:

Dana Newmani tükid “Macaw” ja Jeanie Holti “Nordic Tree” kasutavad valguse värvi, et muuta teose tajutavat värvi. Ja Dana suure ara maalimise puhul muutub linnu meeleolu rõõmsast ähvardavaks sõltuvalt lindu ümbritseva valguse värvist. Need kaks programmi on peaaegu identsed. Me kasutame Adafruit NeoPixeli raamatukogu ja häälestusplaadi võimalus on nendes programmides. Need programmid on kohandatud funktsiooni TheaterChaseRainbow () abil Adafruit_NeoPixel /amples/Strandtest.ino (alla laaditud 29.7.2015)

Valgustus hoitakse suhteliselt konstantse heledusega, samal ajal kui valguse värv nihkub värvide värviratta kaudu. Värviratta ümber liikumine luuakse alustades 100% punasest ja järk -järgult vähendades punast, suurendades samal ajal rohelist. Kui roheline on 100%, siis vähendatakse seda, suurendades sinist. Ja lõpuks, kui sinine väheneb ja punane suureneb, saate täisringi.

See tagab valgustuse, kasutades kahte põhivärvi ja jätab ühe välja. Kui me seda valgustusvärviratast mingil hetkel läbi sõidame, jääb kunstiteose värv varustusest puudu. Sellest tulenev tajutud värvi muutus võib olla üsna dramaatiline ja saab osaks kunstiväljendusest. Seega, kui punast ei paista valguses, tundub mis tahes punane maalil tumedana. Kui tuli on puhas punane, siis punane tõesti helendab ja muud värvid on vaigistatud.

Samm 13: Kontrolleri programmeerimise näited Copperhead:

Jeanie Holti „Copperhead” kasutab valguse variatsiooni, et parandada õues tunnet ja madu nähtavust. Programmeerimine asetab taustvalgustuse peale valguslaineid.

Selle programmi jaoks kasutasime arendamiseks FastLED -raamatukogu koos tuuneri vooluringiga.

Taustvärv on seatud 10 punkti ümber kaadri ja funktsiooni fill_gradient () kasutatakse värvide sujuvaks üleminekuks.

Vaatamistsükli alguses on taust tuhm ja värv muutub siniseks, kasutades aja jooksul koosinuskõverat ja funktsiooni setBrightness ().

Pärast viivitust liiguvad kolm valguslainet paremalt ülalt vasakule. Esimene laine on heledam, järgnevad lained muutuvad tuhmimaks. Esimene laine liigub ka aeglasemalt.

14. samm: kontrolleri programmeerimise näited mustast Doodle'ist:

Image
Image

Jeanie Holti “Black Doodle” uurib musta vinüüli peegeldusi.

See programm kasutab ka FastLED -kogu ja saab häälestusahelalt sisendit võtta.

Valgustus koosneb kuni viiest samaaegsest valgusekraanist, mis mängivad kaadri ümber juhuslikest punktidest. Iga kuvar liigub aja jooksul läbi sama 60 heledusväärtuse. Igal ekraanil on 7 kõrvuti asuvat LED -i, mille heledus väheneb servade poole. Enne iga kuva käivitamist on juhuslik viivitus. Ekraani asukoht on juhuslik, kuid aktiivse ekraani lähedal olevad asukohad on keelatud.

Taustaks on raami ümber laiuv värvide vikerkaar. See taustvikerkaar pöörab aeglaselt ja muudab juhuslikult suunda.

Need kirjeldused on ülevaade ja abi programmide lugemisel. Loodame, et leiate mõningaid neist valgusefektidest piisavalt huvitavaks, et neid ühte oma projekti lisada. Link saidile github.com, kuhu programmid on salvestatud, on 2. sammu ressursid.

15. samm: häälestusfunktsioonide programmeerimine:

RainForest programmis saame häälestusfunktsiooni sisse lülitada "#define TUNING 1" abil ja kinnitada häälestussisendplaat selle lintkaabli abil. Peame määrama ka parameetrid, mille jaoks LED häälestamisel toimib. Näiteks reguleerime valgusdioode positsioonides 61 kuni 73. Kasutame #define START_TUNE 61 ja #define END_TUNE 73. Seadistame stringis muud segmendid seadistuse () taustavärvidele, kasutades fill_gradient_RGB () kõnesid. Ülejäänud visand ei tohiks seadistada LED -e häälestuspiirkonda või te ei näe oma kohandusi. Nüüd käivitage visand ja näidake jadamonitori. Programmi häälestusosas on 4 olekut [toon, küllastus, väärtus ja heledus]. Hue on värviratas 0 = punane ja 255 sinine kuni peaaegu punane. Praegune olek tuleks trükkida jadamonitorile ja indikaatortuli tuuningplaadil vilgub, näidates olekut (üks vilkumine on toon, kaks vilkumist on küllastus ja nii edasi). Väärtus on valguse intensiivsus, heledus aga vähendustegur, mida rakendatakse kõikidele valgusdioodide intensiivsuse väärtustele. Täieliku heleduse jaoks seadistage väärtus = 255 ja heledus = 255. Vajutage oleku muutmiseks nuppu. Kui olete olekus, mida soovite reguleerida, keerake nuppu. Programm ignoreerib nuppu, kuni seda pööratakse rohkem kui INHIBIT_LEVEL. See väldib väärtuste muutmist teistes osariikides, kui te neid ringi liigute. Näide võite alustada tooniga ja saada soovitud värvi, seejärel nihutada väärtusele ja kohandada soovitud heleduse leidmiseks.

Macaw ja Nordic_Tree visandid sisaldavad häälestamist, kuid funktsioonid on veidi erinevad. Nendes visandites on ainult kaks režiimi. Üks heleduse ja teine värviratta asendi jaoks. Nende näidete abil näete, kuidas häälestusfunktsioone kohandada töötama enamiku teie valgustuse juhtimise parameetritega.

Hoidlasse on lisatud eskiis „Tuning”, mis võtab RainForestilt häälestusfunktsioonid. See visand on ainult häälestusfunktsioonid, nii et saate visandi toimimist uurida ja hõlpsamini jälgida. Kasutame seda visandit testvalgustuse raami juhtimiseks, mille saame kiiresti kunstiteose kohale asetada ja valgusefekte uurida. Hiljem kasutame häälestusinfot kohandatud valgustuskontrolleri loomiseks.

Loodetavasti leiate sellest juhendist abi oma projekti toimimiseks.

16. samm: ülejäänud lugu:

See on üks kahest selle projekti juhendist. Kui te pole seda veel teinud, vaadake kaaslast, mida saate juhendada aadressil:

Soovitan: