Tartalomjegyzék:
- 1. lépés: Az ötlet feltárása
- 2. lépés: Hardver
- 3. lépés: Összeszerelés
- 4. lépés: Vezérlés?
- 5. lépés: Könnyítse meg
- 6. lépés: Első kísérletek
- 7. lépés: Valós idejű vezérlés
- 8. lépés: Következtetések
Videó: Interaktív környezeti fény: 8 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:44
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
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
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?
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
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
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
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
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:
Programozható környezeti fény külső kijelzőhöz: 4 lépés
Programozható környezeti fény külső kijelzőhöz: Ez a projekt segít beállítani a környezeti fényt a külső monitorhoz vagy TV -hez, és lehetővé teszi, hogy a következők bármelyikéről kényelmesen vezérelje, bármilyen webböngészővel rendelkező és az útválasztóhoz csatlakoztatott eszközről. LED szín A villogás gyakorisága DJ hatást eredményez
Interaktív SpotLight éjszakai fény: 4 lépés
A SpotLight interaktív éjszakai fény: A SpotLight egy interaktív éjszakai lámpa, amelyet az Arduino hajt meg, és aranyos mopsz-alapú formát ölt. A lámpának három interaktív funkciója van: 1) Helyezzen be egy érmét a SpotLight hátuljába a lámpák be- és kikapcsolásához. 2) Simogassa meg a SpotLight -ot
Interaktív érintésmentes fény: 7 lépés (képekkel)
Interaktív érintésmentes fény: Szia mindenkinek! Szeretném megosztani itt azt a projektet, amelyen dolgozom. Egyetemi projektem során inspirációt kaptam a kapacitív érintésérzékelés kísérletezésére. Tanultam erről a technológiáról az oktatható anyagok segítségével, és felhasználtam az általam tanult dolgokat
Régi TV környezeti LED -es fény Kodi -val: 7 lépés (képekkel)
Régi TV környezeti LED -es fény Kodi -val: Ez tanulságos az alacsony költségvetésű környezeti fényről. A Banana pi -t a Kodi -hoz használom, mert gyorsabb, de egyszerűen telepítheti a Raspberry pi -re
Környezeti fény ajándék jelvény: 5 lépés
Környezeti fény ajándék jelvény: Karácsony után abban a helyzetben voltam, hogy unokaöcsém születésnapi ünnepsége közeledett. Megkérdeztem tőle, hogy van -e különlegessége a kívánságlistáján, és azt mondta, hogy egyelőre egyáltalán nincs vágya. Még mindig nem játszott minden játékkal, amit kapott