Obsah:

Interaktívne okolité svetlo: 8 krokov
Interaktívne okolité svetlo: 8 krokov

Video: Interaktívne okolité svetlo: 8 krokov

Video: Interaktívne okolité svetlo: 8 krokov
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Júl
Anonim
Interaktívne okolité svetlo
Interaktívne okolité svetlo
Interaktívne okolité svetlo
Interaktívne okolité svetlo
Interaktívne okolité svetlo
Interaktívne okolité svetlo

Toto je môj prvý návod! Počkajte, prosím, so mnou, kým sa snažím napísať správnu angličtinu. Neváhajte ma opraviť! S týmto projektom som začal tesne po tom, ako sa začala súťaž „Let it glow“. Prial by som si, aby som urobil oveľa viac a dokončil to, čo som chcel urobiť. Ale medzi školou a prácou mi nezostalo toľko času, ako by som si želal. Napriek tomu tu ponechávam správu o svojich experimentoch ako návod, aby sa ktokoľvek mohol pokúsiť vytvoriť to, čo som urobil. Tento návod nemá slúžiť ako návod a návod, ako vyrobiť tento výmysel. Nie je to príručka pre začiatočníkov v elektronike. Je to skôr zdieľanie jednej myšlienky a cieľa, ktorý by som chcel sledovať. Ak ste začiatočník/úplný ignorant elektroniky a chcete niečo také vyrobiť, ospravedlňujeme sa! Môžeme sa však pokúsiť vám vždy pomôcť. Pozrite sa na posledný krok. Už sme videli mnoho projektov okolitého svetla. Väčšina z nich používa RGB LED diódy: - Na osvetlenie miestnosti jednou farbou, nastavenie atmosféry podľa nálady - Na vytvorenie svetelných efektov z farby televízora/monitora alebo zo zvuku. V instructables.com ich je dokonca niekoľko: Súvisiace: Systémy okolitého osvetlenia pre domácich majstrov Svetelné lišty pre okolité osvetlenieVybudovanie vlastných svetelných pruhov pre okolité farby Pomocou tejto súťaže ako ospravedlnenia som zahájil projekt, ktorý som mal na mysli už nejaký čas. Vždy som chcel vytvoriť niečo podobné týmto okolitým svetlám a naplniť steny v mojej miestnosti RGB LED diódami. Ale urobiť to ešte o krok ďalej, aby boli všetci a každý z nich ovládateľní. Tento projekt, dúfajme, vyústi do open-source elektronickej súpravy pre fanúšikov a elektronických drotárov, ktorá umožní hackovanie hardvéru/softvéru a senzorickú integráciu. Tu je malá ukážka toho, čo som vyrobil:

Krok 1: Skúmanie myšlienky

Chcem byť schopný vyplniť steny vo svojej miestnosti RGB LED diódami, ktoré budú ovládať farbu a jas pre každú LED diódu. Budem používať mikrokontrolér pre jednoduché použitie a poskytnutú flexibilitu. Bohužiaľ nemôžem ovládať stovky LED diód pomocou niekoľkých pinov dostupných na mikrokontroléroch. Bolo by dokonca ťažké kódovať ovládanie toľkých LED diód. Rozhodol som sa teda, že všetky LED diódy rozdelím na niekoľko menších pruhov a pre každý pruh môžem použiť mikrokontrolér. Potom by som využil komunikačné schopnosti mikrokontrolérov na zdieľanie informácií medzi nimi. Tieto informácie môžu byť farba a jas LED diód, vzory/sekvencie farieb a senzorické informácie. Pre každú lištu som sa rozhodol použiť 16 RGB LED diód. Výsledkom nie je ani príliš veľký, ani malý pruh. Týmto spôsobom používam prijateľný počet zdrojov pre každú LED, čím sa znižujú náklady na každú lištu. Napriek tomu je 16 RGB LED diód 48 LED (3*16 = 48) na ovládanie mikrokontroléra. S ohľadom na náklady som sa rozhodol použiť najlacnejší mikrokontrolér, aký som mohol použiť. To znamená, že mikrokontrolér bude mať iba až 20 I/O pinov, čo nestačí na 48 LED diód. Nechcem používať charlieplexing alebo nejaký spôsob delenia času, pretože cieľom projektu je osvetlenie miestnosti. Jediné alternatíva, o ktorej by som mohol uvažovať, je použiť nejaký západkový posuvný register! Pokračovanie:- Vytvorenie a interaktívne osvetlenie okolia- Vytvorte štandardný panel ovládateľných diód LED- Možnosť prepojenia niekoľkých pruhov na vyplnenie miestnosti- Umožnite používateľovi prispôsobenie/konfiguráciu a senzorickú integráciu

Krok 2: Hardvér

Hardvér
Hardvér
Hardvér
Hardvér

Ako bolo povedané v predchádzajúcom kroku, chcel by som vytvoriť niekoľko tyčí na osvetlenie jednej miestnosti. To prináša problém s nákladmi. Pokúsim sa urobiť z každého baru čo najhospodárnejší spôsob. Mikrokontrolér, ktorý som použil, bol AVR ATtiny2313. Sú dosť lacné a niekoľko som ich mal povaľovaných. ATtiny2313 má tiež jedno univerzálne sériové rozhranie a jedno rozhranie USART, ktoré sa bude dobre používať v nasledujúcich krokoch. Tiež som nechal ležať tri expandéry I/O portov MCP23016 - I2C 16bit, správny počet! Každý expandér portov som použil na ovládanie jednej farby zo 16 LED diód. LED diódy … Bohužiaľ, boli najlacnejšie, aké som mohol nájsť. Majú 48 červených, zelených a modrých ~ 10 000 mcd 5 mm s uhlom 20 stupňov. Na tom by zatiaľ nemalo záležať, pretože ide iba o jeden prototyp. Napriek tejto skutočnosti je výsledok celkom pekný! Používam mikrokontrolér na 8 MHz. Zbernica I2C je taktovaná na 400 kHz. Frekvencia spínania LED je asi 400 Hz. Týmto spôsobom, ak budem schopný ovládať 48 diód LED bez toho, aby som to prekročil na maximum, budem mať priestor na ďalšie neskôr!

Krok 3: Zostavenie

zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie

Po návrhu obvodu som ho postavil na niekoľko prkénok na prototypovanie. Po niekoľkých hodinách rezania drôtov a montáže obvodu som dosiahol tento výsledok: Jedna obrovská doska so 48 diódami LED a tonami drôtu!

Krok 4: Ovládanie?

Ovládanie?
Ovládanie?

Toto je najnáročnejšia časť projektu. Chcel som vytvoriť jeden generálny riadiaci algoritmus dostatočne generický na spracovanie vzorov/sekvencií a tiež na ovládanie jasu a farby každej LED diódy. Na ovládanie LED diód musím poslať do MCP23016 jeden rámec so 4 bajtmi. (1 bajt = 8 bitov). Jeden bajt s adresou IC zodpovedajúceho farbe, 1 bajt s príkazom „write“a 2 bajty s hodnotou 16 bitov (LED). IC je pripojený k LED diódam ako „drez“, to znamená, že jedna logická hodnota 0 na pine rozsvieti LED. A teraz náročná časť, ako dosiahnuť ovládanie PWM pre 48 LED? Poďme študovať PWM pre jednu LED! Vysvetlenie PWM na Wikipédii. Ak chcem jas LED na 50%, moja hodnota PWM je 50%. To znamená, že dióda LED v jednom časovom období by mala svietiť rovnako dlho ako zhasnutá. Zoberme si obdobie 1 sekundy. PWM 50% znamená, že v tejto 1 sekunde je čas zapnutia 0,5 sekundy a čas vypnutia 0,5 sekundy. PWM 80%? 0,2 sekundy vypnuté, 0,8 sekundy zapnuté! Je to jednoduché, nie? V digitálnom svete: S dobou 10 hodinových cyklov 50% znamená, že 5 cyklov svieti dióda LED a ďalších 5 cyklov nesvieti. 20%? 2 cykly zapnuté, 8 cyklov vypnuté. 45%? Nemôžeme skutočne získať 45%… Pretože obdobie je v cykloch a máme iba 10 cyklov, môžeme rozdeliť PWM iba v krokoch mimo 10%. To znamená, že vývoj kolíka by mal byť, na 50%: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Alebo dokonca 1, 0, 1, 0, 1, 0, 1, 0, 1, 0; V programovaní môžeme vytvoriť túto postupnosť zapínania a vypínania poľa. Pre každý cyklus vyvedieme na pin hodnotu indexu, v ktorom je cyklus. Dával som doteraz zmysel? Ak chceme vytvoriť LED0 50%a LED1 20%, môžeme pridať obe polia. Na ovládanie pinu LED0: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Na ovládanie kolíka LED1: 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0; Výsledkom je LED0 +LED0: 3, 3, 1, 1, 1, 0, 0, 0, 0, 0; Výstupom tejto postupnosti čísel v obvode expandéra portov by sme získali LED0 s 50% jasom a LED1 s 20% !! Jednoduché pre 2 LED diódy, nie? Teraz to musíme urobiť pre 16 LED diód pre každú farbu! Pre každé z týchto polí máme kombináciu jasu pre každú farbu (16 LED diód) Zakaždým, keď chceme inú kombináciu farieb, musíme toto pole zmeniť.

Krok 5: Ako to uľahčiť

Ako to uľahčiť!
Ako to uľahčiť!
Ako to uľahčiť!
Ako to uľahčiť!

Predchádzajúci krok je príliš veľa práce na vytvorenie jednoduchej sekvencie … Preto som sa rozhodol vytvoriť program, kde v jednom kroku sekvencie povieme farby každej LED diódy a získame tri polia kroku. Tento program som urobil z dôvodu časovej tiesne v programe LabView.

Krok 6: Prvé experimenty

Prvé experimenty
Prvé experimenty

Načítaním niekoľkých krokov do mikrokontroléra sa zobrazí niečo podobné: Ospravedlňujeme sa za nízku kvalitu videí! Maximálny počet krokov v sekvencii som definoval na 8 a obmedzil som PWM na 20% skokov. Toto rozhodnutie je založené na druhu ovládania, ktoré používam, a na tom, koľko EEPROM má ATtiny2313. V týchto experimentoch som sa pokúsil zistiť, aké efekty môžem dosiahnuť. Musím povedať, že som s výsledkom spokojný!

Krok 7: Ovládanie v reálnom čase

Ovládanie v reálnom čase
Ovládanie v reálnom čase
Ovládanie v reálnom čase
Ovládanie v reálnom čase
Ovládanie v reálnom čase
Ovládanie v reálnom čase

Ako bolo uvedené v predchádzajúcich krokoch, chcem komunikovať so všetkými mikrokontrolérmi ovládajúcimi LED diódy v mojej miestnosti. Použil som teda dostupné rozhranie USART v ATtiny2313 a pripojil som ho k svojmu počítaču. V LabView som tiež vytvoril program na ovládanie LED diódy. V tomto programe môžem mikrokontroléru povedať, ako dlhá je sekvencia, farba každej LED a čas medzi krokmi sekvencie. V nasledujúcom videu budem ukážte, ako môžem zmeniť farbu diód LED a definovať sekvencie.

Krok 8: Závery

Závery
Závery
Závery
Závery
Závery
Závery
Závery
Závery

Myslím si, že som bol v tomto prvom prístupe svojho projektu úspešný. Som schopný ovládať 16 RGB LED diód s malými zdrojmi a obmedzeniami. Je možné ovládať každú LED samostatne, čím sa vytvorí ľubovoľná sekvencia.

Budúca práca:

Ak dostanem pozitívnu spätnú väzbu od ľudí, môžem túto myšlienku ďalej rozvinúť a vytvoriť úplnú elektronickú súpravu pre domácich majstrov s doskami s plošnými spojmi a montážnymi pokynmi.

V mojej ďalšej verzii: ovládanie LED diód -rozvíjajte komunikáciu medzi niekoľkými mikrokontrolérmi.

Máte nejaký návrh alebo otázku? Alebo zanechajte komentár!

Finalista v hre Let It Glow!

Odporúča: