Բովանդակություն:
- Քայլ 1: Գաղափարի ուսումնասիրություն
- Քայլ 2: Սարքավորումներ
- Քայլ 3: Հավաքում
- Քայլ 4: Վերահսկու՞մ:
- Քայլ 5: Հեշտացնելը:
- Քայլ 6: Առաջին փորձեր
- Քայլ 7: Իրական ժամանակի վերահսկողություն
- Քայլ 8: Եզրակացություններ
Video: Ինտերակտիվ միջավայրի լույս `8 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:52
Սա իմ առաջին հրահանգն է: Խնդրում եմ համբերել ինձ, մինչ ես դժվարանում եմ ճիշտ անգլերեն գրել: Ազատորեն շտկեք ինձ: Ես սկսեցի այս նախագիծը «Թող որ փայլուն» մրցույթի մեկնարկից անմիջապես հետո: Կցանկանայի, որ ես շատ ավելին արած լինեի և ավարտեի այն, ինչ ուզում էի պատրաստել: Բայց դպրոցի և աշխատանքի միջև ինձ այնքան ժամանակ չի մնացել, որքան ցանկանում էի: Այնուամենայնիվ, ես այստեղ թողնում եմ իմ փորձերի մասին զեկույցը որպես ուսանելի, այնպես որ յուրաքանչյուրը կարող է փորձել և անել այն, ինչ ես արել եմ: Այս խրատականը չպետք է ծառայի որպես ուղեցույց և սովորեցնի, թե ինչպես պատրաստել այս հակաբեղմնավորումը: Այն էլեկտրոնիկայի ոլորտում սկսնակների համար ուղեցույց չէ: Դա ավելի շատ նման է մեկ գաղափար և նպատակ կիսելուն, որը ես կցանկանայի հետապնդել: Եթե դուք սկսնակ/լիովին անտեղյակ եք էլեկտրոնիկայի ոլորտում և ցանկանում եք նման բան պատրաստել, ներողություն եմ խնդրում: Բայց մենք կարող ենք փորձել միշտ օգնել ձեզ: Տես վերջին քայլը: Մենք արդեն տեսել ենք շրջապատող լուսավորության բազմաթիվ նախագծեր: Նրանցից շատերն օգտագործում են 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!
Խորհուրդ ենք տալիս:
Արտաքին ցուցադրման համար ծրագրավորվող միջավայրի լույս. 4 քայլ
Արտաքին ցուցադրման համար ծրագրավորվող միջավայրի լույս. Այս նախագիծը օգնում է ձեզ տեղադրել արտաքին մոնիտորի կամ հեռուստատեսության համար շրջակա լուսավորություն, որը թույլ է տալիս վերահսկել հետևյալը վեբ դիտարկիչ ունեցող և ձեր երթուղիչին միացած ցանկացած սարքի հարմարավետությունից: LED գույնը Թարթելու հաճախականությունը DJ- ի էֆեկտ է տալիս
Անիմացիոն տրամադրության լույս և գիշերային լույս. 6 քայլ (նկարներով)
Անիմացիոն տրամադրության լույս և գիշերային լույս. Ունենալով հրապուրանք, որը սահմանակից է լույսի մոլուցքին, ես որոշեցի ստեղծել փոքր մոդուլային PCB- ների ընտրանի, որոնք կարող են օգտագործվել ցանկացած չափի RGB լուսացույց ցուցադրելու համար: Մոդուլային PCB- ն սարքելով ՝ ես սայթաքեցի դրանք դասավորելու գաղափարով
SpotLight ինտերակտիվ գիշերային լույս ՝ 4 քայլ
SpotLight ինտերակտիվ գիշերային լույս. The SpotLight- ը ինտերակտիվ գիշերային լույս է, որը սնուցվում է Arduino- ով և ընդունում է խելացի ձևավորման գործոն: Լույսն ունի երեք ինտերակտիվ հատկություն. 1) Տեղադրեք մետաղադրամ SpotLight- ի հետևի մասում ՝ լույսերը միացնելու և անջատելու համար: 2) Շփեք SpotLight- ը դեպի
Ինտերակտիվ անլար լույս ՝ 7 քայլ (նկարներով)
Ինտերակտիվ անլար լույս. Բարև բոլորին: Ես կցանկանայի կիսվել այն նախագծով, որի վրա աշխատել եմ այստեղ: Ես ոգեշնչվեցի փորձարկել տարողունակ հպման զգայարանն իմ համալսարանի նախագծի միջոցով: Ես սովորեցի այս տեխնոլոգիայի մասին հրահանգների միջոցով և օգտագործեցի այն, ինչ ես սովորում եմ
Հին հեռուստատեսության միջավայրի LED լույս Kodi- ով ՝ 7 քայլ (նկարներով)
Հին հեռուստատեսության միջավայրի LED լույս Kodi- ով. Դա ուսանելի է ցածր բյուջեի շրջակա լույսի մասին: Ես օգտագործում եմ Banana pi- ն Kodi- ի համար, քանի որ այն ավելի արագ է, բայց դուք կարող եք պարզապես տեղադրել այն Raspberry pi- ում