Tartalomjegyzék:

Interaktív környezeti fény: 8 lépés
Interaktív környezeti fény: 8 lépés

Videó: Interaktív környezeti fény: 8 lépés

Videó: Interaktív környezeti fény: 8 lépés
Videó: KIKAPTUK A BIZIT📚 #shorts 2024, Július
Anonim
Interaktív környezeti fény
Interaktív környezeti fény
Interaktív környezeti fény
Interaktív környezeti fény
Interaktív környezeti fény
Interaktív környezeti fény

Ez az első tanítható! Kérlek, tűrj, amíg én nem tudok megfelelő angol nyelvet írni. Nyugodtan javíts ki! Ezt a projektet közvetlenül a „Let it glow” verseny kezdete után kezdtem el. Bárcsak sokkal többet csináltam volna, és befejeztem, amit akartam. De iskola és munka között nem maradt annyi időm, mint szerettem volna. Ennek ellenére itt hagyom a kísérleteimről szóló beszámolót, mint tanulságosat, így bárki megpróbálhatja megvalósítani azt, amit tettem. Ez az oktatóanyag nem célja, hogy útmutatóként szolgáljon, és megtanítsa ennek az eszköznek a elkészítését. Ez nem útmutató az elektronika kezdőinek. Inkább egy ötlet és cél megosztása, amit szeretnék megvalósítani. Ha kezdő vagy teljesen tudatlan az elektronikában, és ilyesmit szeretne készíteni, sajnálom! De megpróbálhatunk mindig segíteni. Lásd az utolsó lépést. Sok környezeti fényprojektet láttunk már. Többségük RGB LED -eket használ: - Egy helyiség megvilágítására egy színnel, hangulatának megfelelő hangulat kialakításával - Fényeffektusok létrehozásához a TV/monitor vagy a hang színéből. Még néhány is található az instructables.com webhelyen. Kapcsolódó: DIY Ambient Light SystemsLight Bar Ambient LightingA saját környezeti színű világítótáblák építése Ezt a versenyt ürügyként használva elindítottam egy projektet, amely egy ideje a fejemben van. Mindig is szerettem volna valami hasonlót készíteni ezekhez a környezeti fényekhez, és megtölteni a szobám falait RGB LED -ekkel. De, ha egy lépéssel tovább lépünk, mindegyiket és mindegyiket ellenőrizhetővé tesszük. Ez a projekt remélhetőleg egy nyílt forráskódú elektronikai készletet eredményez a hobbisták és elektronikus barkácsolók számára, lehetővé téve a hardver/szoftver hackelést és az érzékszervi integrációt. Itt egy kis előzetes, amit készítettem:

1. lépés: Az ötlet feltárása

Szeretném feltölteni a szobám falait RGB LED -ekkel, szabályozva az egyes LED -ek színét és fényerejét. Egy mikrokontrollert fogok használni az egyszerű használat és a rugalmasság érdekében. Sajnos nem tudok több száz LED -et vezérelni a mikrovezérlőkön található néhány tűvel. Még nehéz is lenne ennyi LED vezérlését kódolni. Ezért úgy döntöttem, hogy fel kell osztanom az összes LED -et több kisebb sávra, és minden sávhoz használhatok egy mikrovezérlőt. Akkor a mikrokontrollerek kommunikációs képességeit használnám fel az információk megosztására közöttük. Ez az információ lehet a LED -ek színe és fényereje, mintázatok/színsorozatok és érzékszervi információk. Minden sávnál úgy döntöttem, hogy 16 RGB LED -et használok. Ennek eredményeként nem lesz sem túl nagy, sem kicsi sáv. Ily módon elfogadható számú erőforrást használok minden egyes ledhez, csökkentve az egyes rudak költségeit. Ennek ellenére 16 RGB LED 48 LED (3*16 = 48), amelyeket a mikrokontroller irányíthat. A költségeket szem előtt tartva úgy döntöttem, hogy a legolcsóbb mikrovezérlő, amit használhatnék. Ez azt jelenti, hogy a mikrokontrollernek csak 20 I/O érintkezője lesz, ami nem elegendő 48 LED -hez. Nem kívánok charlieplexing -et vagy valamilyen időfelosztó meghajtót használni, mivel a projekt célja egy szoba megvilágítása. alternatíva, amire gondolhatnék, valamilyen reteszelt váltásregiszter használata! Folytatás:- Létrehozás és interaktív környezeti fény- Szabványos vezérlő LED-sáv létrehozása- Több rúd csatlakoztatásának lehetősége a helyiség betöltéséhez- Felhasználói adaptáció/konfiguráció és érzékszervi integráció lehetővé tétele

2. lépés: Hardver

Hardver
Hardver
Hardver
Hardver

Amint azt az előző lépésben említettük, több rúdot szeretnék készíteni egy szoba megvilágítására. Ez eszébe juttatja a költségek kérdését. Megpróbálom minden egyes rudat a lehető legköltséghatékonyabb módon kialakítani. Az általam használt mikrokontroller egy AVR ATtiny2313 volt. Ezek meglehetősen olcsók, és néhányan feküdtem. Az ATtiny2313 egy univerzális soros interfésszel és egy USART interfésszel is rendelkezik, amelyek jól használhatók a következő lépésekben. Három MCP23016 - I2C 16bit I/O portbővítő is feküdt körülöttem, csak a megfelelő szám! Minden portbővítőt a 16 LED egyik színének vezérlésére használtam. A LED -ek … Sajnos a legolcsóbbak voltak. 48 piros, zöld és kék ~ 10000mcd 5 mm, 20 fokos szöggel. Ennek egyelőre nem kell számítania, mivel ez csak egy prototípus. Ennek ellenére az eredmény nagyon szép! A mikrokontrollert 8 MHz -en futtatom. Az I2C busz órajele 400 kHz. A LED kapcsolási frekvenciája körülbelül 400 Hz. Ily módon, ha képes vagyok 48 LED meghajtására anélkül, hogy a végsőkig szorítanám, később még több hely marad!

3. lépés: Összeszerelés

Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés

Az áramkör megtervezése után több kenyértáblába építettem, prototípus készítés céljából. Több órányi huzalvágás és az áramkör összeszerelése után ezt az eredményt kaptam: Egy óriási kenyérlap 48 LED -el és tonna vezetékkel!

4. lépés: Vezérlés?

Ellenőrzés?
Ellenőrzés?

Ez a projekt legnehezebb része. Azt akartam, hogy egy vezérlőalgoritmus legyen elég általános a minták/sorozatok kezeléséhez, valamint az egyes LED -ek fényerejének és színének szabályozásához. A LED -ek vezérléséhez egy 4 bájtos keretet kell elküldenem az MCP23016 -ra (1 bájt = 8 bit). Egy bájt a színnek megfelelő IC -címzett címével, 1 bájt az "write" paranccsal és 2 bájt a 16 bit (LED) értékével. Az IC "mosogatóként" van csatlakoztatva a LED -ekhez, ami azt jelenti, hogy egy 0 logikai érték a tűn meg fogja világítani a LED -et. És most a kihívást jelentő rész, hogyan lehet PWM -vezérlést végezni 48 LED -hez? Tanuljuk meg a PWM -et egy LED -hez! A PWM elmagyarázta @ Wikipedia. Ha azt akarom, hogy a LED fényereje 50%legyen, akkor a PWM értékem 50%. Ez azt jelenti, hogy a LED -nek egy idő alatt ugyanannyi ideig kell világítania, mint ki. Vegyünk egy 1 másodperces időszakot. Az 50% -os PWM azt jelenti, hogy ebben az 1 másodpercben a bekapcsolási idő 0,5 másodperc, a kikapcsolási idő pedig 0,5 másodperc. 80%-os PWM? 0,2 másodperc ki, 0,8 másodperc bekapcsolva! Könnyű, ugye? A digitális világban: 10 órás ciklus esetén az 50% azt jelenti, hogy 5 cikluson keresztül a LED világít, és további 5 cikluson keresztül a LED nem világít. 20%? 2 ciklus bekapcsolva, 8 ciklus kikapcsolva. 45%? Nos, nem igazán kaphatjuk meg a 45%-ot… Mivel az időszak ciklusokban van, és csak 10 ciklusunk van, a PWM -et csak 10%-os lépésekben oszthatjuk fel. Ez azt jelenti, hogy a csap fejlődése 50%-ban: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Vagy akár 1, 0, 1, 0, 1, 0, 1, 0, 1, 0; A programozás során elvégezhetjük a tömb be- és kikapcsolását. Minden egyes ciklushoz, amelyet a csaphoz adunk ki, az index értéke a ciklus. Volt -e értelme? Eddig? Ha azt szeretnénk, hogy a LED0 50%és a LED1 20%legyen, akkor mindkét tömböt hozzáadhatjuk.: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; A LED1 érintkező meghajtásához: 2, 2, 0, 0, 0, 0, 0, 0, 0, 0; Eredmény: LED0 +LED0: 3, 3, 1, 1, 1, 0, 0, 0, 0, 0; Ha ezt a számsort adjuk ki a portbővítő IC -ben, akkor a LED0 -t 50% -os, a LED1 -et pedig 20% -kal kapjuk meg! Egyszerű 2 LED -hez, nem? Ezt most 16 LED -re kell elkészítenünk, minden színhez! E tömbök mindegyikéhez minden színhez kombináljuk a fényerő kombinációját (16 LED) Minden alkalommal, amikor újabb színkombinációt szeretnénk, ezt a tömböt meg kell változtatnunk.

5. lépés: Könnyítse meg

Egyszerűsítés!
Egyszerűsítés!
Egyszerűsítés!
Egyszerűsítés!

Az előző lépés túl sok munka egy egyszerű sorozat létrehozásához … Ezért úgy döntöttem, hogy készítek egy programot, ahol a sorozat egyik lépésében elmondjuk az egyes LED -ek színét, és megkapjuk a lépés három tömbjét. Ezt a programot a LabView -ban készítettem az idő szűkössége miatt.

6. lépés: Első kísérletek

Első kísérletek
Első kísérletek

Több lépés betöltése a mikrokontrollerbe, és valami ilyesmit kapunk: Elnézést a videók rossz minőségéért! Egy sorozat maximális lépéseinek számát 8 -ra határoztam meg, és a PWM -t 20% -os ugrásokra korlátoztam. Ez a döntés az általam használt vezérlésen és azon, hogy mennyi EEPROM -ot tartalmaz az ATtiny2313. Ezekben a kísérletekben próbáltam megnézni, hogy milyen hatásokat érhetek el. Azt kell mondanom, hogy elégedett vagyok az eredménnyel!

7. lépés: Valós idejű vezérlés

Valós idejű vezérlés
Valós idejű vezérlés
Valós idejű vezérlés
Valós idejű vezérlés
Valós idejű vezérlés
Valós idejű vezérlés

Amint azt az előző lépésekben említettük, kommunikálni szeretnék a szobám LED -jeit vezérlő összes mikrokontrollerrel. Tehát az ATtiny2313 -ban rendelkezésre álló USART interfészt használtam, és csatlakoztattam a számítógéphez. Készítettem egy programot is a LabView -ban a LED -sáv vezérléséhez. Ebben a programban meg tudom mondani a mikrokontrollernek, hogy mennyi ideig tart a sorozat, az egyes LED -ek színe és a sorozat lépései közötti idő. A következő videóban mutassa be, hogyan tudom megváltoztatni a LED -ek színét és meghatározni a sorozatokat.

8. lépés: Következtetések

Következtetések
Következtetések
Következtetések
Következtetések
Következtetések
Következtetések
Következtetések
Következtetések

Azt hiszem, sikeres voltam a projektem első megközelítésében. 16 erőforrás és korlátozás mellett 16 RGB LED -et tudok vezérelni. Lehetőség van az egyes LED -ek külön vezérlésére, tetszőleges sorrend létrehozására.

Jövőbeli munka:

Ha pozitív visszajelzéseket kapok az emberektől, továbbfejleszthetem ezt az ötletet, és elkészíthetek egy teljes barkács elektronikai készletet nyomtatott áramköri lapokkal és szerelési utasításokkal.

Következő verziómhoz: -Változtassam a mikrokontrollert ADC -re, -Változtassam az MCP23016 -ot valamilyen más soros -párhuzamos kimenetre, amely nagyobb áramot tud levezetni a LED -ekről -Nyílt forráskódú szoftvert készítsen a mikrokontrollerrel való kommunikációhoz, és vezérli a LED -eket -Fejlessze a kommunikációt több mikrovezérlő között.

Van javaslata vagy kérdése? Vagy hagyj megjegyzést!

A Let It Glow döntőse

Ajánlott: