Tartalomjegyzék:
- 1. lépés: Anyagok:
- 2. lépés: Erőforrások:
- 3. lépés: A vezérlő áttekintése:
- 4. lépés: Épületirányító:
- 5. lépés:
- 6. lépés: Opcionális tuner készítése:
- 7. lépés: A vezérlő programozásának áttekintése:
- 8. lépés: A vezérlő programozásának példája Ripple:
- 9. lépés: A vezérlő programozási példája hajnalról alkonyatra:
- 10. lépés: A vezérlő programozása Példa esőerdőre:
- 11. lépés: A vezérlő programozása Példa vihar:
- 12. lépés: A vezérlő programozási példái ara és északi fa:
- 13. lépés: Vezérlőpéldák programozása Copperhead:
- 14. lépés: Vezérlőpéldák programozása Fekete Doodle:
- 15. lépés: A hangolási funkciók programozása:
- 16. lépés: A történet többi része:
Videó: Dinamikus LED -es világításvezérlő az Art számára: 16 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
Bevezetés:
A világítás a vizuális művészet fontos eleme. És ha a világítás idővel változhat, az a művészet jelentős dimenziójává válhat. Ez a projekt azzal kezdődött, hogy részt vett egy fénybemutatón, és megtapasztalta, hogyan változtathatja meg a világítás egy tárgy színét. Ezt kezdtük felfedezni a világító szövetművészetben. Eddig dinamikus világítást építettünk 8 darabra, beleértve egy festményt és egy fényképet. A fényhatások a következők voltak: hajnal és naplemente szimulálása, víz alatti fény hullámzó felületen keresztül, villámlás a felhőkben, és drámaian megváltoztatja a műalkotás észlelt színeit és hangulatát. Az effektusokról készült videókat az alábbi programozási lépések tartalmazzák.
Ez az utasítás egy vezérlőt épít, amely idővel beállítja az egyedileg címezhető LED -ek fényerejét és színét. Tartalmaz egy opcionális bemeneti áramkört is a világítás egy szegmensének kézi hangolásához (fényerő és szín beállítása). Emellett számos problémáról és fejlesztésről fog tanulni, amelyeket útközben fedeztünk fel.
Írtunk egy kapcsolódó útmutatót is az árnyékdoboz és a keret építéséről. Nézze meg itt:
Egyelőre az elektronikára és a programozásra összpontosítunk.
1. lépés: Anyagok:
- WS2812 LED -ek sorozata
- Arduino Pro Mini 328 - 5V/16 MHz
- FTDI Friend USB interfész
- USB A - MiniB kábel FTDI -hez
- 4700 μf kondenzátor
- 5 V-os tápegység 5,5 x 2,1 csatlakozóval
- Hálózati aljzat 5,5 x 2,1
- Terminálblokk
- Az áramköri prototípus
- Gomb
- Potenciométer
- Kijelző LED
- Ellenállások
- Szalagkábel
- Fejléc hím
- Fejléces nő
2. lépés: Erőforrások:
- Arduino; Interaktív fejlesztési környezet (IDE)
- Adafruit NeoPixel könyvtár
- NeoPixel bemutató
- Strandtest Példa Program
- FastLED könyvtár
- FastLED linkek és dokumentáció
- FastLED fórum
- Világítási vázlataink
3. lépés: A vezérlő áttekintése:
A vázlat nagyon egyszerűnek tűnik, és az is. A vezérlőinket úgy építettük, hogy képkeretbe ágyazhatók legyenek. A képen látható áramkör méretei 2,25 x 1,3 "x 0,5". Az opcionális tuner egy külön áramköri lapra épült, szalagkábel csatlakozóval. Ezek a képek a kész projektünket mutatják.
Szeretnénk illeszteni a vezérlőnket a képkeretbe, ezért az Arduino pro mini 5v -t választottuk kis mérete, költsége és 5 V -os kimenete miatt. A szükséges 5 V -os tápegység mérete attól függ, hogy hány LED -et és maximális fényerejét használja a projektben. Projektjeink mindegyike 3 amper alatt, néhány pedig 1 amperesnél kisebb teljesítményű volt. Többféle címezhető színes LED létezik. Az Adafruit által forgalmazott WS2812 termékkel kezdtük „NeoPixel” termékeik egyikeként. Ez működött nálunk, és nem fedeztünk fel más LED -eket. A legtöbb projektünk a 60 LED / méteres szalagot használta. Projektjeink eddig 145 LED -et tartalmaztak.
Opcionális tuner:
Építettünk egy kis bemeneti áramkör „tunert”, így könnyen beállíthatjuk a világítás szegmenseit anélkül, hogy módosítanánk és feltöltenénk a programot minden egyes beállításhoz. Tartalmaz: egy kimeneti LED -et, amely villog a bemeneti módban; egy gomb, amely megváltoztatja a beviteli módot; és egy beállítható gomb. Az Arduino ezután ki tudja adni az értékeket a csatlakoztatott számítógépnek.
4. lépés: Épületirányító:
Az anyaglista nem tartalmazza a huzalt, a hőre zsugorodó csövet és az egyéb szükséges kellékeket. Az 5 V -os és a földelő áramkörhöz a LED -ekhez azt javaslom, hogy 26 -os vagy nehezebb sodrott vezetéket használjon. 26 mérőt használtunk. Szintén jobb a szilikon szigetelés a huzalon, mert nem olvad a forrasztási hely közelében, és rugalmasabb. Azt tapasztaltam, hogy egy kicsit több hely hagyása az alkatrészek között megkönnyítette a gyártást. Például a 6. lépésben bemutatott vezérlő, a távolság a hálózati aljzat (fekete) háza és a sorkapcs (kék) között körülbelül 1 hüvelyk. Szerelési burkolatunk két réteg fa furnér.
A kép ebben a lépésben az opcionális tuner hat érintkezős női fejlécének bekötését mutatja. A piros és a zöld vezeték közötti nem használt érintkezőt egy fogpiszkálóval dugják be, hogy megakadályozzák a fordított csatlakozást.
5. lépés:
Most tegyük össze, hogy illeszkedjen az árnyékdoboz keretébe. A keret 3/4 "vastag, így a vezérlő magassági korlátja 1/2". Szerelőlemezeket készítettünk úgy, hogy két darab furnér keményítőt ragasztottunk egymásra merőleges szemcsékkel, hogy korlátozzuk a vetemedést. Az alkatrészek úgy vannak elrendezve, hogy a tápcsatlakozó a keret közepén lesz. A tápcsatlakozó lyukat ékszerész fűrésszel kivágták, és illesztették. Ezután az alkatrészeket össze kell kötni a szerelés előtt. Az aljzat epoxival van a helyére ragasztva. A csavaros kapocs és az arduino alatt kétoldalas állandó habszerelő négyzeteket használnak. Melegen olvadó ragasztót is használnak az arduino és a kondenzátor helyén tartására.
6. lépés: Opcionális tuner készítése:
Építettünk egy kis bemeneti áramkör „tunert”, így könnyen beállíthatjuk a világítás szegmenseit anélkül, hogy módosítanánk és feltöltenénk a programot minden egyes beállításhoz. Tartalmaz: egy kimeneti LED -et, amely villog a bemeneti módban; egy gomb, amely megváltoztatja a beviteli módot; és egy beállítható gomb. Az Arduino ezután ki tudja adni az értékeket a csatlakoztatott számítógépnek.
Ezek a képek a tuner gyártását mutatják be. A hátát „Gorilla” szalaggal borítottam. Ami stabilan tartja a szalagkábelt, és szép fogantyút is készített.
7. lépés: A vezérlő programozásának áttekintése:
Ez valóban a projekt nehéz része. Remélhetőleg képes lesz használni néhány kódot és módszert, hogy előrelépést érjen el.
Az Adafruit és a FastLED két nagyszerű könyvtárat tett közzé, amelyek lehetővé teszik az Arduinos számára, hogy sokféle címezhető LED -et vezéreljen. Mindkét könyvtárat különböző projektekben használjuk. Javasoljuk, hogy olvassa el a könyvtárak forrásanyagait is, és fedezze fel néhány példaprogramjukat.
Programjaink Github adattárát a fenti „Források” tartalmazza. Ne feledje, hogy messze nem vagyunk jártasak az Arduino programozásában, így rengeteg fejlesztési lehetőség van. Nyugodtan jelezze a problémákat, és járuljon hozzá a fejlesztésekhez.
8. lépés: A vezérlő programozásának példája Ripple:
Jeanie Holt „Ripple” volt az első sikerünk. Ez a darab egy szövetművészeti hal árnyékdoboz keretben. A világítás alulról folyamatosan alacsony kék színű. Felülről pedig akár három fényesebb fehér fényszár mozoghat jobbról balra, mintha a víz felszínén mozgó hullámok törnének meg. Ez egy meglehetősen egyszerű koncepció, és a program nem használja a „tuner” bemeneteket. Kezdődik, beleértve az Adafruit könyvtárat, és meghatározza a kimeneti vezérlőcsapot és a LED -ek számát. Ezután elvégezzük a soros kommunikáció és a LED szalag egyszeri beállítását. Ezután számos belső változót definiálunk, például a frissítések közötti késleltetést, a fénytengely jellemzőit (időbeli fényerejét és mozgását), majd az egyes fénytengelyek állapotváltozóit.
A „changeBright ()” funkció növeli a fényszóró fényerejét a „támadási” idő alatt, állandó értéken tartja a „fenntartási” időt, majd elhalványul a „bomlási” idő alatt.
A „hullámzás ()” funkciót a három fénytengely mindegyikére hívják fel minden időnövelés során. Az ideiglenes fényerőt a maximális fényerőről való elhalványulás alapján számítják ki, állandó csökkenés mellett. Ezután minden kiindulási pozíciótól balra lévő LED -hez kiszámítják a fényerőt. El tudjuk képzelni, hogy a fény hulláma balra mozog. A bal oldali LED -ek a hullámosság fényerő -görbéjének egy korábbi pontján vannak. Ha ennek a hullámzásnak minden LED esetében nulla fényereje van, akkor a kész jelző értéke 1. Ha a LED már világosabb (a másik hullámzás által beállított), akkor az értéket változatlanul hagyjuk.
A fő hurok a LED -ek kikapcsolásával indul. Ezután mindhárom hullámzáshoz meghívja a hullámzás függvényt, és növeli az időszámlálóját. Ha a kész zászló be van állítva, akkor a hullámzás elölről kezdődik. Végül a fő hurok halványkék fényt világít az alján.
9. lépés: A vezérlő programozási példája hajnalról alkonyatra:
A következő projekt, Jeanie Holt „Hajnalról alkonyatra” egy újabb szövetművészeti alkotás, ezúttal egy fa őszi színű lombozattal. A világítás a nap szimulációja, amikor a hajnal kezd világosodni a bal oldalon, és a nap közepén ragyogóvá válik, majd vöröses napnyugta színek és éjszaka felé tart. A kihívás itt az, hogy leegyszerűsítsük a szín- és fényerő -váltás leírását az idő múlásával 66 LED -es csíkon keresztül. A másik kihívás a fény zökkenőmentes cseréje. Valóban küzdöttünk a fény észrevehető eltolódásával gyenge fényviszonyok mellett. Próbáltam simább világítási átmeneteket elérni a FastLED könyvtár használatával, de nem jártam sikerrel. Ez a programleírás kevésbé lesz részletes. Ismét az Adafruit NeoPixel könyvtárát használtuk.
Elmentünk egy olyan konvencióra, hogy a LED szalagokat a bal felső sarokban indítjuk el. Ez kissé kényelmetlenné teszi a LED helyek számozását ebben a darabban. A keret körül 86 LED világít. Hajnal világít a bal oldalon, amely 62 -ről 85 -re emelkedik. Ezután balról fentről jobbra lent 0 és 43 között van.
Ez a program nem tartalmazza a „Tuner” bemeneti áramkör használatának lehetőségét.
Ez a program időtúllépést használ a villódzás csökkentésére. Minden ötödik LED -et frissítünk, majd egy felett váltunk, és minden ötödik LED -et frissítjük, és addig ismételjük, amíg mindegyik meg nem frissül. Ezért a LED -húr hosszát egy kicsit hosszabbra határozzuk meg, mint amilyen valójában.
Most itt leegyszerűsítettük a világítási minta leírását. 12 referencia LED pozíciót azonosítottunk a keret körül, bal alsó és jobb alsó rész között. Ezután meghatároztuk a vörös, zöld és kék (RGB) LED -intenzitást ezekhez a referencia -LED -ekhez akár 12 törési ponton is a hajnaltól az esti óráig. Minden törési ponthoz 4 bájt tartozik, az utolsó töréspont óta eltelt időszámlálás és az egy bájtos érték mindegyik RGB színhez. Ez a tömb 576 bájt értékes memóriát foglal el.
Most lineáris interpolációt használunk a töréspontok közötti értékek megkereséséhez, és ismét lineáris interpolációt, hogy megkeressük a referencia LED -ek között elhelyezkedő LED -ek értékeit. Ahhoz, hogy az interpoláció jól működjön, néhány lebegőpontos közbenső értéket kell használnunk. A hajnaltól a szürkületig terjedő időszak 120 fél másodperces időszakra oszlik.
10. lépés: A vezérlő programozása Példa esőerdőre:
A következő projekt, amelyet leírok, Juli-Ann Gasper „Esőerdője”. Ez egy nagyobb szövetművészeti darab, sok mélységgel. Itt körülbelül 4,4 hüvelyk mély árnyékdobozt használtunk. A világítási koncepció a háttérvilágítás szintje, amely alul halványabb, és a fény időnként villog a levelek felett. A koncepció itt hasonló a Ripple -hez, de a fénytengelyek nem mozognak. És ellentétben a hullámzással, ahol a fényerő simán változik, itt a villódzó fényerőnek ingadoznia kell. Létrehoztunk egy 40 bájtos tömböt, a Flicker_b2 nevet. Úgy találtuk, hogy a vizuális hatás rendben van, ha ugyanazt a mintát használjuk az összes villódzási helyre. Létrehoztunk 5 villódzó helyet. A vizuális hatás áttekintésekor azt találtuk, hogy az egyik villódzásnak sokkal szélesebbnek kell lennie, mint a többi. A fill_gradient_RGB () függvényt használva húztuk ki a villogást körülbelül 20 LED -en. Minden villódzás független és véletlenszerűen kezdődik. Az egyes villogások valószínűsége beállítható.
A háttérszínt be kell állítani és vissza kell állítani, ha a villódzás nem fényesebb, mint a háttér.
Ehhez a darabhoz a FastLED könyvtárat használtuk. Ebben a programban a #define TUNING jelzi, ha a tuning kártya be van dugva, 0 -nak kell lennie, ha a tuner kártya nincs bedugva. Ellenkező esetben a vezérlő érzékeny a statikus elektromosságra és a poltergeistákra. A fordító csak azokat a programszegmenseket tartalmazza, amelyek a „Tuner” -t használják, ha ez a változó 1.
11. lépés: A vezérlő programozása Példa vihar:
Egy másik projekt Mike Beck „Vihar” nevű fényképének meggyújtása volt. A kép viharfelhő. FastLED könyvtárat használunk, és nem tartalmazza a hangolási lehetőséget. A világítási koncepció itt egy háttérvilágítás, amelyen villámhullámok jelennek meg véletlenszerűen a felhő három pontján. A vakut minden helyen három LED okozza. A LED -ek közötti tér minden helyen eltérő. E három LED fényerejét három 30 bájtos tömb határozza meg. A fényerősségi sorrend a három tömbben variációt és látszólagos mozgást biztosít a három LED között. Az észlelt mozgás irányát és a teljes fényerőt minden helyhez kiválasztják. A vaku időtartamát az egyes helyeken a fényerő -értékek frissítése közötti késleltetés határozza meg. A villámcsapások között véletlenszerűen 0,2 és 10,4 másodperc közötti késés van. A három ütéshely közül melyik is véletlenszerű: 19% -os esély a felhő tetején, 45% esély a jobb alsó sarokban és 36% esély a bal oldalon.
12. lépés: A vezérlő programozási példái ara és északi fa:
A Dana Newman „Macaw” és Jeanie Holt „Nordic Tree” című darabjai világító színekkel változtatják meg a darab érzékelt színét. És Dana nagy ara festménye esetén a madár hangulata örömteli fenyegetővé változik a madarat körülvevő fény színétől függően. Ez a két program szinte azonos. Az Adafruit NeoPixel könyvtárat használjuk, és a hangolótábla képessége ezekben a programokban van. Ezeket a programokat a theatreChaseRainbow () függvényből alakították ki az Adafruit_NeoPixel/example/Strandtest.ino fájlban (letöltve 2015. július 29 -én)
A világítást viszonylag állandó fényerő mellett tartják, miközben a fény színe a színek színkörén keresztül eltolódik. A színkör körüli előrehaladást úgy hozzuk létre, hogy 100% pirossal kezdjük, és fokozatosan csökken a piros, miközben növeljük a zöldet. Ha a zöld 100% -os, akkor csökken, míg a kék növekszik. És végül, ahogy a kék csökken és a piros növekszik, teljes körbe kerül.
Ez biztosítja az elsődleges színek közül kettő megvilágítását, és egyet kihagy. Amint áthaladunk ezen a világítási színkörön, valamikor a mű bármely színe hiányzik a mellékelt fényben. Az észlelt szín megváltozása meglehetősen drámai lehet, és a művészi kifejezés részévé válik. Tehát ha a piros nem látható a fényben, a festmény vörösje sötétnek tűnik. Amikor a fény tiszta piros, akkor a piros valóban világít, és a többi szín elnémul.
13. lépés: Vezérlőpéldák programozása Copperhead:
Jeanie Holt „Rézfej” a világítás variációit használja fel, hogy fokozza a szabadságérzetet és a kígyó láthatóságának változatosságát. A programozás fényhullámokat rétegez a háttérvilágítás tetején.
Ehhez a programhoz a FastLED könyvtárat használtuk a Tuner áramkörünkkel együtt a fejlesztéshez.
A háttérszín 10 pontra van állítva a keret körül, és a fill_gradient () függvény segítségével egyenletesen válthat a színek között.
A megtekintési ciklus elején a háttér elhalványul, és a színek kékre váltanak egy idő alatt egy koszinuszgörbe és a setBrightness () függvény segítségével.
Késleltetés után három fényhullám mozog a jobb felső sarokból a bal alsóba. Az első hullám a legfényesebb, a következő hullámok halványodnak. Az első hullám is lassabban mozog.
14. lépés: Vezérlőpéldák programozása Fekete Doodle:
Jeanie Holt „Fekete Doodle” című darabja a fekete vinil -lemezek tükröződéseit vizsgálja.
Ez a program a FastLED könyvtárat is használja, és a hangoló áramkörről tud bemenni.
A világítás legfeljebb 5 egyidejű fénykijelzésből áll, amelyek véletlenszerű pontokon játszanak a keret körül. Minden kijelző ugyanazon 60 fényerő értéken halad előre. Minden kijelző 7 szomszédos LED -et tartalmaz, amelyek fényereje a szélei felé csökken. Minden megjelenítés előtt véletlenszerű késleltetés van. A kijelző elhelyezkedése véletlenszerű, de az aktív kijelző közelében lévő helyek tiltottak.
A háttérben a színek szivárványa terül el a keret körül. Ez a háttérben szivárvány lassan elfordul és véletlenszerűen megfordítja az irányt.
Ezek a leírások áttekintést és segítséget nyújtanak a programok olvasásához. Reméljük, hogy ezek közül a fényeffektusok közül néhányat elég érdekesnek talál, hogy beépítse valamelyik projektjébe. A github.com webhelyre mutató link, ahol a programokat tárolják, a 2. lépésben található Erőforrások részben található.
15. lépés: A hangolási funkciók programozása:
A RainForest programban bekapcsolhatjuk a hangolási funkciót a „#define TUNING 1” segítségével, és a szalagkábellel csatlakoztathatjuk a hangoló bemeneti kártyát. Be kell állítanunk azokat a paramétereket is, amelyeknél a LED -ek a hangolás hatására működnek. Például állítsuk be a LED -eket a 61-73. Pozíciókban. A #define START_TUNE 61 és a #define END_TUNE 73. beállításokat használjuk. A string többi szegmensét háttérszínekre állítjuk a setup () fájlban, a fill_gradient_RGB () hívások használatával. A vázlat többi része nem állíthatja be a LED -eket a hangolási tartományba, különben nem fogja látni a beállításokat. Most futtassa a vázlatot, és jelenítse meg a soros monitort. A program hangoló részének 4 állapota van [színárnyalat, telítettség, érték és fényerő]. A színárnyalat a színkerék, 0 = piros és 255 kék, majdnem piros. Az aktuális állapotot ki kell nyomtatni a soros monitorra, és a hangolótábla LED -je villogni kezd, jelezve az állapotot (egy villogás árnyalat; két villogás telítettség és így tovább). Az érték a fény intenzitása, míg a fényerő csökkentő tényező, amelyet a LED -ek összes intenzitási értékére alkalmaznak. Tehát a teljes fényerő beállításához Érték = 255 és Fényerő = 255. Nyomja meg a gombot az állapot megváltoztatásához. Ha a beállítani kívánt állapotban van, forgassa el a gombot. A program figyelmen kívül hagyja a gombot, amíg az INHIBIT_LEVEL értéknél többet el nem fordítja. Ezzel elkerülhető, hogy az értékek a többi állapotban megváltozzanak, amikor végighalad rajtuk. Példa: kezdje a Hue -val és kapja meg a kívánt színt, majd váltson az értékre, és állítsa be a kívánt fényerőt.
A Macaw és Nordic_Tree vázlatok tartalmazzák a hangolást, de a funkciók kissé eltérnek. Ezekben a vázlatokban csak két mód létezik. Az egyik a fényerő, a másik a színkerék helyzete. Ezekkel a példákkal láthatja, hogyan lehet testre szabni a hangolási funkciókat a világításvezérlés legtöbb paraméterével.
A tároló tartalmazza a „Tuning” vázlatot, amely a RainForest hangolási funkcióit veszi át. Ez a vázlat csak a hangolási funkciók, így felfedezheti és könnyebben követheti a vázlat működését. Ezzel a vázlattal egy tesztvilágító keretet irányítunk, amelyet gyorsan egy műtárgy fölé helyezhetünk, és felfedezhetjük a fényhatásokat. Később a hangolási információkat felhasználjuk az egyedi világításvezérlő elkészítéséhez.
Reméljük, hogy hasznosnak találja ezt az útmutatást a projekt működéséhez.
16. lépés: A történet többi része:
Ez az egyik a projekt két utasításából. Ha még nem tette meg, nézze meg a kísérő utasítást itt:
Ajánlott:
DIY dinamikus memóriablokk: 5 lépés
DIY dinamikus memóriablokk: Az SLG46880 és az SLG46881 számos új blokkot mutat be, amelyek a korábbi GreenPAK eszközökön nem jelentek meg. Ez az alkalmazás megjegyzi a dinamikus memória (DM) blokkokat és azok használatát. A DM blokkok fő előnye, hogy újrakonfigurálhatók
Készítsen hatalmas 4096 LED kijelzőt a Retro Pixel Art számára: 5 lépés (képekkel)
Készítsen masszív 4096 LED -es kijelzőt a Retro Pixel Art számára: ***** Frissítve 2019. március 4 ****** Többféleképpen is folytathatja ezt a projektet, mindent a semmiből építhet fel, vagy kihasználhatja a készlet verzióját. Mindkét módszerre kitérek ebben az utasításban. Ez az útmutató 64x64 vagy 4096 RGB LED -es telepítést tartalmaz
Dinamikus asztali lámpa: 10 lépés (képekkel)
Dinamikus asztali lámpa: Sziasztok Srácok A távirányítóval kiválaszthatja a fény színét, és megváltoztathatja hangulatát, valamint a fénymintát
Dinamikus LED világító árnyékdoboz és keret az Art számára: 16 lépés (képekkel)
Dinamikus LED -es világítás árnyékdoboz és keret a művészethez :: A világítás a vizuális művészet fontos eleme. És ha a világítás idővel változhat, az a művészet jelentős dimenziójává válhat. Ez a projekt azzal kezdődött, hogy részt vett egy fénybemutatón, és megtapasztalta, hogyan változtathatja meg teljesen a világítás a világítást
Hamis dinamikus árcédula: 6 lépés (képekkel)
Hamis dinamikus árcímke: Az Amazon árai folyamatosan változnak. Ha néhány óránál tovább hagyja a termékeket a bevásárlókosárban, akkor valószínűleg értesítést kap a percingadozásokról - 0,10 dollár itt, 2,04 dollár ott. Az Amazon és kereskedői nyilvánvalóan valamilyen formát használnak