Tartalomjegyzék:

Wildfire: 7 lépés
Wildfire: 7 lépés

Videó: Wildfire: 7 lépés

Videó: Wildfire: 7 lépés
Videó: KDDK & The Hatters — Wildfire | Живой Завтрак 2023 2024, November
Anonim
Image
Image

Ezt a projektet a Trónok harca misztikus futótűze ihlette, egy zöldes színű folyadék, amely világításkor zöld lángokban robbant fel. A projekt az RGB SMD5050 LED csíkok használatára összpontosít a személyre szabott színhatások érdekében. Három üvegtárgyat hat -hat RGB LED -es csíkkal látnak el. Az Arduino Uno tüzet, mint a villódzó mintát hoz létre a fényekhez. Az RGB LED -ekre van szükség ahhoz, hogy színátmenetet hozzon létre a sötétzöldtől a világos zöldig, egészen a legfényesebb fehérig. Egy egyszerű zöld LED nem elegendő, a piros és a kék alkatrészek szükségesek ahhoz, hogy fényes fehér színű legyen. Bónuszként ez a hardver bármilyen más színt is előállíthat. Az üvegtárgyakra szükség van a fény megtöréséhez és a tényleges fényforrás leplezéséhez, vagyis a kicsi, nagyon technikai megjelenésű RGB SMD5050 LED csíkokhoz.

Az ötlet kiterjeszthető a kívánt objektumokra és bármilyen dinamikus színskálára. Ez az oktatható leírja, hogyan valósítottam meg egy beállítást három üvegtárggyal a következő színsémákkal. A futótűz -séma a bevezető videóban látható. A többi séma a jelen útmutató 6. lépésében található videóban látható.

  • Futótűz. A Trónok harca tűzesetként inspirálta a tüzet.
  • Unicorn Attractor. Látvány, amely elhalványul a szivárvány színeiben.
  • Pislogás. Véletlen színváltás két különböző sebességgel.
  • Áttűnés. A véletlenszerű színek sima váltása két különböző sebességgel.
  • Élő színek. Színezze tárgyait halványan rezgő fénnyel egy adott szín körül.
  • Gyertyák. A LED -ek utánozzák a természetes gyertya lángját.

A beállítás

Az alapbeállításban egyetlen gombnyomással léphet a hat színséma között. A dupla kattintás az egyik színsémán belül az egyik beállításról a másikra lép, ha alkalmazható. Színes beállításokat adhat hozzá az Arduino program szerkesztésével.

Egy későbbi kibővített verzióban a gombot egy ESP8266 tábla váltja fel, amely kapcsolódik egy weboldalhoz, amely vezérli a színsémákat. A weboldal viszont vezérelhető mobileszköz -böngészővel. Ez sokkal változatosabbá teszi a dolgok beállítását:

  • állítsa be a változás sebességét és irányát
  • állítsa be a villódzó gyertyák színét
  • állítsa be a színek fényerejét és telítettségét

Ez az utasítás az alapbeállításokra összpontosít, amelyek csak nyomógombot tartalmaznak felhasználói felületként.

1. lépés: Amire szüksége van

Amire szükséged van
Amire szükséged van
Amire szükséged van
Amire szükséged van
  • Olcsó RGB LED szalag, amelyet rövidebb csíkokra vághat
  • Egy tápegység, lehetőleg a 12 V 1,5 A -os dolog, ami az RGB LED -szalaggal érkezett
  • Egy Arduino UNO vagy hasonló
  • Két ULN2803AP IC: s
  • Egyszerű gombnyomás
  • Perma-Proto kenyérlap
  • Huzal
  • Egy doboz az elektronikához
  • Néhány üvegtárgyat meg kell világítani az RGB LED szalagokkal
  • Szerszámok (drótvágó, forrasztópáka, forrasztó …)

A led szalag

Vettem egy olcsó led szalagot, amely körülbelül 90 RGB SMD LED -ből áll. Egy kis egység hajtja a LED -eket, megváltoztatva színüket. Az egység távirányítású, és a szalag különböző módon változtathatja a színeket. De az egész csík azonos színű. A szórakoztató dolog az, hogy a csíkot apró csíkokra vághatja, amelyek mindegyikében csak három rgb led található. Mindegyik szalagot, függetlenül attól, hogy milyen hosszú, 12 V -os feszültséggel kell táplálni. Csak a 12 V -ot és elegendő áramot kell biztosítania, nos, milliamper. Ehhez a projekthez a LED szalag három csíkját használom, amelyek mindegyike 6 egység, és a 12 V -os 1,0 A -os tápegységet. A vezérlőegységre és a távirányítóra nincs szükség.

ULN2803AP

Egyetlen LED -nek csak kis áramra van szüksége. Általában közvetlenül egy Arduino adattűről világíthat egy ledet, feltéve, hogy van egy ellenállása, amely 5 V -ról 3 V -ra csökkenti a LED -et. De egyetlen RGB SMD5050 LED három LED -ből áll, egy pirosból, egy grenből és egy kékből. Ehhez a projekthez 6 RGB SMD5050 LED -es csíkot használok. Az Arduino Uno egyik adatcsapja 6 LED -et vezérel. Csak ez pirítaná az adattüskét, ha a LED -ek meggyújtása az adatcsapról származna. De csak kilenc ilyen adattű lesz, és ez biztosan túl nagy lesz az Arduino számára. Ezért indul be az ULN2803AP. Az ULN2803AP egy integrált chip, 8 darlington tranzisztorral. 9 -re van szükségem, ezért csak két ULN2803AP chipet használok. Így marad 7 tartalék tranzisztorom, ha ki akarom terjeszteni a projektet öt objektumra.

Egyetlen LED az RGB SMD5050 LED -en belül 20 mA -t vesz fel. Hat közülük 120 mA -t jelentene. Az ULN2803 egy tűje (egy darlington tranzisztor) 500 mA -t képes lemeríteni. De az egész chip maximum 1,44 W hőt képes elviselni, amelyet az áram termel. A 120 mA 0,144 W -ot termel. Az egyik ULN2803 chipre öt sort, a másikra négy sort teszek. Ez az egyik chipen 0,72 W, a másik chipen 0,58 W lesz. Szóval rendben kéne lennem. Az ULN2803 mind a 8 vonalának 120 mA -es használata 1,2 W -val felmelegíti a chipet. Forró lesz, de még tolerálja.

Egyszerűen megmagyarázva, az RGB SMD LED szalag 12 V -ot kap az áramforrásból. A LED -szalagból a három színű LED mindegyikének árama az ULN2803AP -ban lévő saját tűjére, majd tovább a GND -re kerül. Az áramkör zárva van, és a LED világít. De az ULN2803AP -t az Arduino 5 V -os adatjelei kapcsolják ki/be. Ezek a jelek csak néhány milliampert húznak az Arduino -ból.

Az üvegtárgyak és a LED csíkok

Voltak ezek a furcsa üvegtárgyaim, amelyek teafényekhez készültek. Nyírfa rönkökből tányérokat vágtam, hogy felállhassanak, és legyen mit ragasztaniuk a LED csíkokat. A csíkokban néhány hajtást készítettem, hogy gyűrűkké váljanak, ahol az egyes LED -egységek felfelé néznek. Legyen óvatos a hajtásokkal, nehogy elvágja a vonalakat.

2. lépés: Felhasználói utasítások

A készülék egyszerű felhasználói felülettel rendelkezik. Bekapcsolja az áramforrást a fali konnektorba dugva, és az első színsémával kezdődik, ami a Wildfire. Hálózat kihúzásával kikapcsol. Egy gombnyomással a következő színsémára léphet. Dupla kattintással léphet előre az egyes színsémák alsémáin. A következő színsémákat fogom megvalósítani:

  1. Futótűz. A Trónok harca inspirálta a tüzet, mint a látványt, ahol zöld lángok terjednek az egyik üvegtárgyról a másikra. Ez a hatás akkor lesz a leglátványosabb, ha az üvegtárgyakat függőlegesen helyezik el egymáshoz képest. Három különböző alrendszer valósul meg a lángok változó ütemével.
  2. Unicorn Attractor. Látvány, amely elhalványul a szivárvány színeiben. Az elhalványulás forgó módon történik, mintha minden szín az egyik üvegtárgyról a másikra mozogna. Az alrendszerek változó sebességűek lesznek.
  3. Pislogás. Véletlen színváltás két különböző sebességgel. Az alrendszerek különböző palettákkal rendelkeznek (csak teljesen telített színek, félig telített színek, színek a színkörnek csak a felétől)
  4. Áttűnés. A véletlenszerű színek sima váltása két különböző sebességgel. Hasonló alcémek, mint a #3 -ban.
  5. Élő színek. Színezze tárgyait halványan rezgő fénnyel egy adott szín körül. Az alrendszerek a színeket pirosra, narancsra, sárgára, zöldre, kékre, indigóra vagy lila színre állítják. Az oszcillálás a választott szín körüli 10 fokos szektorban történik. A három üvegtárgynak ugyanaz a választott színe, de mindegyik tárgynak megvan a maga véletlenszerűen változó rezgési frekvenciája, hogy az egész halmaz élénk élő színt kapjon.
  6. Gyertyák. A LED -ek utánozzák a természetes gyertya lángját. Három alrendszer:

    1. "a lehető legnyugodtabban"
    2. "valahol nyitott ablak"
    3. "sötét és viharos éjszaka volt"

3. lépés: Néhány szó az RGB színekről

Ebben a részben az RGB színtérről alkotott nézetemet tárgyalom. Ezt a részt nagyon jól kihagyhatod. Csak némi hátteret adok arról, hogy miért bánok úgy az RGB LED -ek színeivel, mint én.

Tehát az RGB LED -nek csak piros, zöld és kék fénye van. Ha ezeket összekeverjük, akkor az emberi szem szinte minden színét felismeri. Az egyes részek - piros, zöld vagy kék - mennyiségét a digitális világban általában 0 és 255 közötti szám határozza meg. Egy teljesen telített színhez az egyik színösszetevőnek nullának kell lennie, és egy színkomponensnek 255 -nek. digitális világunkban csak 1530 különböző telített szín található.

Az RGB tér modellezésének egyik módja egy kocka. A kocka egyik csúcsa fekete. Ebből a csúcsból a piros, a kék vagy a zöld él mentén haladhatunk. A kocka bármely pontja piros, zöld és kék koordinátákkal meghatározott szín. A fekete csúcstól a legtávolabbi csúcsig utazva eljutunk a fehér csúcshoz. A hat csúcsra összpontosítva, kivéve a feketét és a fehéret, olyan utat alakíthatunk ki, amely az élek követésével áthalad mind a hat csúcson. Minden élnek 256 pontja vagy színe van. Minden csúcsot két él oszt meg, így a pontok száma összesen 6 * 255 = 1530. Ezt az utat követve a színspektrum összes 1530 teljesen telített színe bejárható. Vagy a szivárvány. A csúcsok a piros, sárga, zöld, ciánkék, kék és bíbor színeket képviselik.

A kocka bármely más pontja olyan színt jelent, amely nem teljesen telített.

  • Vagy a pont a kockán belül van, vagyis a piros, zöld és kék koordináták eltérnek a nullától. Gondoljon a fekete csúcs és a fehér csúcs közötti átlóra az összes szürke árnyalat vonalaként. És a kocka belsejében lévő összes "nem teljesen telített szín" elhalványul a teljes telítettségtől a szélén a "nulla telítettség" átlója felé.
  • Vagy a pont a kockának a fekete csúcsot érintő három síkfelületének egyikén fekszik. Az ilyen színt teljesen telítettnek, de elsötétítettnek tekinthetjük. Minél jobban sötétíti, annál inkább elveszíti észlelt színtelítettségét.

Ahelyett, hogy a kocka körül levő hat élvonal leírná az összes teljesen telített színt, ezt az 1530 színt körbe helyezhetjük, ahol 255 különböző szín van 60 fokos szektorban - például amikor vörösről sárgára halványul, ha zöldet ad hozzá. A színkörben minden szín átfutása olyan, mintha három színvezérlőt csúsztatnánk, egyet az egyikben, míg a másik kettő a legtöbb pozícióban szemben van. Mivel a színköröket vagy a szivárványspektrumot fogom használni a színsémák némelyikében, a saját 1530 -as skálám segítségével egy színt (árnyalatot) fogok meghatározni a kör pontjaként:

1530 skála szabványos 360 skála

========== ================== piros 0 0 narancs 128 30 sárga 256 60 zöld 512 120 türkiz 768 180 kék 1024 240 indigó 1152 270 lila 1280 300 rózsaszín 1408 330

Ez az 1530 -as skála egyszerűsíti a szivárvány színeinek az RGB LED -ek értékévé alakítását.

Miért 255 szín minden szakaszban? Miért nem 256? Nos, az egyik szektor 256. színe a következő szektor 1. színe. Ezt a színt nem lehet kétszer számolni.

Még néhány szó a PWM -ről

Egy tipikus LED -et úgy terveztek, hogy adott feszültség mellett fényesen ragyogjon. Ennek a feszültségnek a csökkentése csökkentheti a fényerőt, de a LED -et nem úgy tervezték, hogy csak a feszültség csökkentésével szabályozható legyen. Fél feszültségnél talán nem is kapcsol be. Ehelyett a tompítást a teljes feszültség és a nulla feszültség közötti váltással érik el. Minél gyorsabb a kapcsolás, annál kevésbé villog az emberi szem. Ha a LED félidőben bekapcsolt és félidőben kikapcsolt állapotban van, az emberi szem úgy érzékeli a fényt, mintha a teljes fényerejű LED hatásának felével ragyogna. A teljes fényerő és a nulla hatás ideje közötti arány beállítása a LED elsötétítése. Ez PWM vagy impulzusszélesség moduláció.

Az olcsó RGB SMD LED szalag, amelyet ehhez a projekthez vettem, tartalmaz egy eszközt, amely gondoskodik a PWM -ről. Ebben a projektben a PWM -et az Arduino UNO -val hozom létre. Az RGB színtér, ahogy általában a számítógép képernyőjén valósul meg, egy elméleti struktúra, ahol elképzelhető, hogy minden színcsatorna 0 és 255 közötti értéket tart, és a csatorna fényessége lineárisan követi az értéket. A számítógép grafikus kártyája kompenzálhat bármilyen rövidítést ebből a lineáris elvárásból, amit a tényleges LED -ek tartalmazhatnak. Az, hogy a projektben használt SMD LED -ek lineárisan követik -e a használt PWM értékeket, nem tartoznak a projekt hatálya alá. A 255 PWM érték a legfényesebb fényt hozza létre. De a 128 -as érték lehet, hogy nem a 255 -ös fényerő fele, és a 192 -es nem pontosan a 255 és 128 közepén.

4. lépés: A vázlatok

A sémák
A sémák

Itt bemutatom az elektronika vázlatát. A fotó azt mutatja, hogyan néz ki a kapcsolatom. Forrasztottam a chipeket, a vezetékeket és a gombot egy perma proto táblára. Eddig az alkatrészek csak a vezetékekkel vannak összekötve, de azt Önre bízom, hogy megtervezze, hogyan illessze be őket egy szép dobozba, és hogyan húzza a vezetékeket a LED szalagokhoz. Ha talál egy 4 vezetékes lapos kábelt, használja, mert egy LED szalaghoz 4 vezeték szükséges. Csak 3 vezetékes lapos kábelem volt, ezért szükségem volt egy extra vezetékre, ami kissé csúnyán nézett ki.

5. lépés: A kód

A kódot egy Arduino Uno -hoz írták. Az Uno -nak csak 6 PWM -képes csapja van, de nekem 9 -re van szükségem. Tehát egy speciális PWM könyvtárat használok, amelyet Brett Hagman írt. Ezt telepíteni kell az Arduino IDE -be.

A wildfire.ino a fő projektfájl, amely tartalmazza a setup () és a loop () függvényeket, valamint néhány más közös funkciót minden sémához.

A wildfire.h a közös fejlécfájl.

A különböző sémafájlok külön lapként illeszthetők be a projektbe.

6. lépés: Működésben

Image
Image

7. lépés: További fejlesztés

  • Cserélje le az egygombos felületet egy ESP8266 -ra, hogy lehetővé tegye a vezeték nélküli kapcsolatot egy Android telefonnal, ahol a felhasználói felület a sémák vezérlésére szolgáló weboldal.
  • A szalagban még körülbelül 70 RGB SMD LED maradt. Ez 24 csík, mindegyikben 3 db. 24 további csatorna új megközelítést igényel. Szüksége lenne egy Arduino Mega 2560 -ra és néhány további ULN2803AP lapkára, vagy két 16 csatornás szervólapra, amelyeket gyakran használnak LED -ekhez.
  • Nem használt az eredeti LED szalag távirányítója, valamint a vevője is. Még nem nyitottam ki a vevőt, de talán valahogy újra felhasználható. Hagyhatjuk, hogy egy Arduino eltérítse logikáját, és számszerű adatokat juttasson el az Arduino -hoz, hogy ellenőrizzék a fényjátékot.

Ajánlott: