Բովանդակություն:

Ինտերակտիվ միջավայրի լույս `8 քայլ
Ինտերակտիվ միջավայրի լույս `8 քայլ

Video: Ինտերակտիվ միջավայրի լույս `8 քայլ

Video: Ինտերակտիվ միջավայրի լույս `8 քայլ
Video: «Ածխաթթու գազ՝ բեմում»․ ինչպես հոգ տանել շրջակա միջավայրի մասին 2024, Հուլիսի
Anonim
Ինտերակտիվ միջավայրի լույս
Ինտերակտիվ միջավայրի լույս
Ինտերակտիվ միջավայրի լույս
Ինտերակտիվ միջավայրի լույս
Ինտերակտիվ միջավայրի լույս
Ինտերակտիվ միջավայրի լույս

Սա իմ առաջին հրահանգն է: Խնդրում եմ համբերել ինձ, մինչ ես դժվարանում եմ ճիշտ անգլերեն գրել: Ազատորեն շտկեք ինձ: Ես սկսեցի այս նախագիծը «Թող որ փայլուն» մրցույթի մեկնարկից անմիջապես հետո: Կցանկանայի, որ ես շատ ավելին արած լինեի և ավարտեի այն, ինչ ուզում էի պատրաստել: Բայց դպրոցի և աշխատանքի միջև ինձ այնքան ժամանակ չի մնացել, որքան ցանկանում էի: Այնուամենայնիվ, ես այստեղ թողնում եմ իմ փորձերի մասին զեկույցը որպես ուսանելի, այնպես որ յուրաքանչյուրը կարող է փորձել և անել այն, ինչ ես արել եմ: Այս խրատականը չպետք է ծառայի որպես ուղեցույց և սովորեցնի, թե ինչպես պատրաստել այս հակաբեղմնավորումը: Այն էլեկտրոնիկայի ոլորտում սկսնակների համար ուղեցույց չէ: Դա ավելի շատ նման է մեկ գաղափար և նպատակ կիսելուն, որը ես կցանկանայի հետապնդել: Եթե դուք սկսնակ/լիովին անտեղյակ եք էլեկտրոնիկայի ոլորտում և ցանկանում եք նման բան պատրաստել, ներողություն եմ խնդրում: Բայց մենք կարող ենք փորձել միշտ օգնել ձեզ: Տես վերջին քայլը: Մենք արդեն տեսել ենք շրջապատող լուսավորության բազմաթիվ նախագծեր: Նրանցից շատերն օգտագործում են RGB լուսադիոդային լուսարձակներ. Instructible.com- ում կան նույնիսկ մի քանիսը: Առնչվող DIY Ambient Light Systems Light Bar Ambient Lighting Կառուցելով ձեր սեփական շրջապատի գույնի լուսավորման շերտերը Այս մրցույթը որպես պատրվակ օգտագործելով, ես սկսեցի մի նախագիծ, որը որոշ ժամանակ մտքումս էր: Ես միշտ ցանկացել եմ նման շրջապատող լուսարձակների նման մի բան պատրաստել և իմ սենյակի պատերը լցնել RGB լուսադիոդներով: Բայց, մեկ քայլ առաջ տանելով, նրանցից յուրաքանչյուրին դարձնելով վերահսկելի: Հուսանք, որ այս նախագիծը կհանգեցնի բաց կոդով էլեկտրոնիկայի հավաքածուի ՝ հոբբիիստների և էլեկտրոնային սրահների համար, ինչը թույլ կտա ապարատային/ծրագրային ապահովման կոտրում և զգայական ինտեգրում: Ահա իմ պատրաստածի մի փոքր նախադիտում.

Քայլ 1: Գաղափարի ուսումնասիրություն

Ես ցանկանում եմ, որ կարողանամ իմ սենյակի պատերը լցնել RGB LED- ներով ՝ յուրաքանչյուր լուսադիոդի համար վերահսկելով գույնն ու պայծառությունը: Ես պատրաստվում եմ միկրոկոնտրոլեր օգտագործել օգտագործման և տրամադրված ճկունության համար: Unfortunatelyավոք, ես չեմ կարող վերահսկել հարյուրավոր LED- ները միկրոկոնտրոլերների մի քանի կապում: Նույնիսկ դժվար կլիներ կոդավորել այդքան LED- ների հսկողությունը: Այսպիսով, ես որոշեցի, որ բոլոր LED- ները պետք է բաժանեմ մի քանի փոքր ձողերով և յուրաքանչյուր սանդղակի համար կարող եմ օգտագործել միկրոկոնտրոլեր: Հետո ես կօգտագործեի միկրոկառավարիչների հաղորդակցման հնարավորությունները `նրանց միջև տեղեկատվություն փոխանակելու համար: Այս տեղեկատվությունը կարող է լինել LED- ների գույնը և պայծառությունը, գույների նախշերը/հաջորդականությունները և զգայական տեղեկատվությունը: Յուրաքանչյուր սանդղակի համար ես որոշեցի օգտագործել 16 RGB LED: Սա հանգեցնում է ոչ շատ մեծ, ոչ էլ փոքր բարերի: Այս կերպ ես օգտագործում եմ ընդունելի քանակությամբ ռեսուրսներ յուրաքանչյուր լուսադիոդի համար ՝ նվազեցնելով ծախսերը յուրաքանչյուր ձողի համար: Այնուամենայնիվ, 16 RGB LED- ները 48 լուսադիոդներ են (3*16 = 48) միկրոկառավարիչի վերահսկողության համար: Հաշվի առնելով ծախսերը ՝ ես որոշեցի օգտագործել ամենաէժան միկրոկոնտրոլերը, որը ես կարող էի օգտագործել: Սա նշանակում է, որ միկրոկառավարիչը կունենա միայն մինչև 20 մուտքի/ելքի կապ, ինչը բավարար չէ 48 LED- ների համար: Ես չեմ ցանկանում օգտագործել charlieplexing կամ ինչ -որ ժամանակի պառակտման սկավառակ, քանի որ նախագծի նպատակը սենյակ լուսավորելն է: այլընտրանք, որի մասին ես կարող էի մտածել, օգտագործում էր մի տեսակ փակված հերթափոխի գրանցամատյան: Վերսկսում.

Քայլ 2: Սարքավորումներ

Սարքավորումներ
Սարքավորումներ
Սարքավորումներ
Սարքավորումներ

Ինչպես ասվեց նախորդ քայլում, ես կցանկանայի մի քանի բար պատրաստել մեկ սենյակ լուսավորելու համար: Սա հիշեցնում է ծախսերի հարցը: Ես կփորձեմ ամեն բարը դարձնել հնարավորինս ամենաարդյունավետ ճանապարհը: Իմ օգտագործած միկրոկոնտրոլերը AVR ATtiny2313 էր: Սրանք բավականին էժան են, և ես մի քանիսը պառկած էի: ATtiny2313- ն ունի նաև մեկ ունիվերսալ սերիական ինտերֆեյս և մեկ USART ինտերֆեյս, որը լավ կօգտագործվի հետևյալ քայլերում: Ես ունեի նաև երեք MCP23016 - I2C 16bit I/O նավահանգստի ընդլայնիչ, հենց ճիշտ հաշվարկով: Ես օգտագործել եմ յուրաքանչյուր նավահանգստի ընդլայնիչ ՝ 16 LED- ների մեկ գույնը վերահսկելու համար: LED- ները… Unfortunatelyավոք, ամենաէժանն էին, որ կարող էի գտնել: Դրանք 48 կարմիր, կանաչ և կապույտ են ՝ 10000 մկդ 5 մմ 20 աստիճանի անկյան տակ: Սա առայժմ չպետք է նշանակություն ունենա, քանի որ սա միայն մեկ նախատիպ է: Չնայած այս փաստին, արդյունքը բավականին հաճելի է: Ես միկրոկոնտրոլերն աշխատում եմ 8 ՄՀց հաճախականությամբ: I2C ավտոբուսը գործում է 400 կՀց հաճախականությամբ: LED- ի միացման հաճախականությունը մոտ 400 Հց է: Այս կերպ, եթե ես ունակ եմ քշել 48 լուսադիոդային լուսարձակներ ՝ առանց այն առավելագույնը մղելու, ես ավելի շատ տեղ կտեղադրեմ ավելի ուշ:

Քայլ 3: Հավաքում

Ժողով
Ժողով
Ժողով
Ժողով
Ժողով
Ժողով
Ժողով
Ժողով

Շրջանի նախագծումից հետո ես այն կառուցեցի մի քանի տախտակների մեջ ՝ նախատիպավորման նպատակով: Մի քանի ժամ լարեր կտրելուց և միացում հավաքելուց հետո ես ստացա այս արդյունքը. Մեկ հսկա տախտակ ՝ 48 լուսադիոդով և տոննա մետաղալարով:

Քայլ 4: Վերահսկու՞մ:

Վերահսկողություն
Վերահսկողություն

Սա նախագծի ամենաբարդ խնդիրն է: Ես ուզում էի մեկ ընդհանուր վերահսկման ալգորիթմ դարձնել բավական ընդհանուր `նախշերով/հաջորդականություններով բեռնաթափման և նաև յուրաքանչյուր LED- ի պայծառությունն ու գույնը վերահսկելու համար: LED- ները վերահսկելու համար ես պետք է ուղարկեմ MCP23016- ի 4 բայթանոց մեկ շրջանակ: (1 բայթ = 8 բիթ): Մեկ բայթ `գույնին համապատասխանող IC- ի հասցեով, 1 բայթ` «գրել» հրամանով և 2 բայթ `16 բիթանոց (LED) արժեքով: IC- ն LED- ների հետ միացված է որպես «լվացարան», այսինքն ՝ 0 տրամաբանական արժեքը 0 կապում լուսավորելու է LED- ը: Իսկ հիմա դժվար հատվածը, թե ինչպես կարելի է PWM հսկողություն դարձնել 48 LED- ի համար: Եկեք ուսումնասիրենք PWM- ը մեկ LED- ի համար: PWM- ը բացատրեց @ Վիքիպեդիան: Եթե ես ուզում եմ LED- ի պայծառությունը 50%-ով, իմ PWM արժեքը 50%է: Սա նշանակում է, որ LED- ը, մեկ ժամանակահատվածում, պետք է միացված լինի նույնքան ժամանակ, որքան անջատված է: Եկեք վերցնենք 1 վայրկյան ժամանակահատված: PWM- ի 50% -ը նշանակում է, որ այս 1 վայրկյանում միացման ժամանակը 0.5 վայրկյան է, իսկ անջատման ժամանակը `0.5 վայրկյան: PWM 80%? 0.2 վայրկյան անջատված, 0.8 վայրկյան միացված: Թե՞ թվային աշխարհում. Ժամացույցի 10 ցիկլերի դեպքում 50% -ը նշանակում է, որ 5 ցիկլի համար LED- ը միացված է, և ևս 5 ցիկլի դեպքում LED- ն անջատված է: 20%? 2 ցիկլ միացված է, 8 ցիկլ անջատված: 45%? Դե, մենք իսկապես չենք կարող ստանալ 45%… Քանի որ ժամանակաշրջանը ցիկլերով է և մենք ունենք ընդամենը 10 ցիկլ, մենք կարող ենք PWM- ը բաժանել միայն 10%քայլերով: Սա նշանակում է, որ քորոցի էվոլյուցիան պետք է լինի 50%-ի համար. 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Կամ նույնիսկ 1, 0, 1, 0, 1, 0, 1, 0, 1, 0; mingրագրավորման մեջ մենք կարող ենք դարձնել զանգվածը միացնելու և անջատելու այս հաջորդականությունը: Յուրաքանչյուր ցիկլի համար մենք դուրս ենք բերում քորոցին ցուցանիշի արժեքը ցիկլն էր: Արդյո՞ք իմաստ ունեի մինչ այժմ: Եթե մենք ուզում ենք LED0- ը դարձնել 50%, իսկ LED1- ը `20%, կարող ենք ավելացնել երկու զանգվածները: LED0 փին վարելու համար ՝ 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; LED1 փին վարելու համար ՝ 2, 2, 0, 0, 0, 0, 0, 0, 0, 0; Արդյունքում ՝ LED0 +LED0: 3, 3, 1, 1, 1, 0, 0, 0, 0, 0; Թվերի այս հաջորդականությունը դուրս բերելով նավահանգստի ընդլայնիչ IC- ում, մենք կստանանք LED0- ը 50% պայծառությամբ և LED1- ը 20% !! Պարզ 2 LED- ների համար, այնպես չէ՞: Այժմ մենք պետք է դա անենք 16 LED- ի համար, յուրաքանչյուր գույնի համար: Այս զանգվածներից յուրաքանչյուրի համար մենք ունենք յուրաքանչյուր գույնի պայծառության համադրություն (16 LED): Ամեն անգամ, երբ ցանկանում ենք գույների մեկ այլ համադրություն, մենք պետք է փոխենք այս զանգվածը:

Քայլ 5: Հեշտացնելը:

Դյուրին դարձնելով
Դյուրին դարձնելով
Դյուրին դարձնելով
Դյուրին դարձնելով

Նախորդ քայլը չափազանց մեծ աշխատանք է պարզ հաջորդականություն կազմելու համար … Այսպիսով, ես որոշեցի կազմել ծրագիր, որտեղ մենք յուրաքանչյուր LED- ի գույներն ասում ենք հաջորդականության մեկ քայլում և ստանում ենք քայլի երեք զանգվածները: Այս ծրագիրը պատրաստել եմ LabView- ում ՝ ժամանակի սղության պատճառով:

Քայլ 6: Առաջին փորձեր

Առաջին փորձեր
Առաջին փորձեր

Միկրոկառավարիչի մեջ մի քանի քայլ բեռնելը և մենք ստանում ենք այսպիսի մի բան. Ներողություն եմ խնդրում տեսանյութերի վատ որակի համար: Ես հաջորդականության քայլերի առավելագույն թիվը սահմանեցի 8 -ի, իսկ PWM- ը սահմանափակեցի 20% ցատկերի: Այս որոշումը հիմնված է այն տեսակի վերահսկողության վրա, որը ես օգտագործում եմ և որքան EEPROM ունի ATtiny2313- ը: Այս փորձերի ընթացքում ես փորձեցի տեսնել, թե ինչպիսի ազդեցություն կարող եմ անել: Պետք է ասեմ, որ արդյունքից գոհ եմ:

Քայլ 7: Իրական ժամանակի վերահսկողություն

Իրական ժամանակի վերահսկողություն
Իրական ժամանակի վերահսկողություն
Իրական ժամանակի վերահսկողություն
Իրական ժամանակի վերահսկողություն
Իրական ժամանակի վերահսկողություն
Իրական ժամանակի վերահսկողություն

Ինչպես նշվեց նախորդ քայլերում, ես ցանկանում եմ շփվել իմ սենյակի LED- ները վերահսկող բոլոր միկրոկոնտրոլերների հետ: Այսպիսով, ես օգտագործեցի առկա USART ինտերֆեյսը ATtiny2313- ում և միացրեցի այն իմ համակարգչին: Ես նաև LabView- ում ծրագիր կազմեցի LED սանդղակը վերահսկելու համար: Այս ծրագրում ես կարող եմ միկրոկոնտրոլերին ասել, թե որքան երկար է հաջորդականությունը, յուրաքանչյուր LED- ի գույնը և հաջորդականության քայլերի միջև ընկած ժամանակը: Հաջորդ տեսանյութում ես ցույց տալ, թե ինչպես կարող եմ փոխել LED- ների գույնը և սահմանել հաջորդականություններ:

Քայլ 8: Եզրակացություններ

Եզրակացություններ
Եզրակացություններ
Եզրակացություններ
Եզրակացություններ
Եզրակացություններ
Եզրակացություններ
Եզրակացություններ
Եզրակացություններ

Կարծում եմ, որ ես հաջողակ էի իմ նախագծի այս առաջին մոտեցման մեջ: Ես ունակ եմ վերահսկել 16 RGB LED լուսավորություն ՝ փոքր ռեսուրսներով և սահմանափակումներով: Հնարավոր է վերահսկել յուրաքանչյուր LED առանձին ՝ ստեղծելով ցանկացած ցանկալի հաջորդականություն:

Ապագա աշխատանք.

Եթե ես մարդկանցից ստանամ դրական արձագանք, ես կարող եմ ավելի զարգացնել այս գաղափարը և պատրաստել ամբողջական DIY էլեկտրոնիկայի հավաքածու ՝ տպագիր տպատախտակներով և հավաքման հրահանգներով:

Հաջորդ տարբերակի համար ես. վերահսկել LED- ները. Մշակել հաղորդակցությունը մի քանի միկրոկոնտրոլերների միջև:

Ունե՞ք որևէ առաջարկ կամ հարց: Կամ թողեք մեկնաբանություն:

Եզրափակիչ ՝ Let It Glow!

Խորհուրդ ենք տալիս: