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

DIY Control RGB LED գույն Bluetooth- ի միջոցով `5 քայլ
DIY Control RGB LED գույն Bluetooth- ի միջոցով `5 քայլ

Video: DIY Control RGB LED գույն Bluetooth- ի միջոցով `5 քայլ

Video: DIY Control RGB LED գույն Bluetooth- ի միջոցով `5 քայլ
Video: Խելացի ծաղկեպսակ՝ Bluetooth-ով հասցեային LED-ների վրա 6 $. էժան, բայց զարմանալիորեն ֆունկցիոնալ 2024, Նոյեմբեր
Anonim
DIY Control RGB LED գույն Bluetooth- ի միջոցով
DIY Control RGB LED գույն Bluetooth- ի միջոցով

Խելացի լամպերը վերջերս աճում են ժողովրդականությամբ և անշեղորեն դառնում են խելացի տան գործիքակազմի հիմնական մասը: Խելացի լամպերը թույլ են տալիս օգտվողին կառավարել իրենց լույսը օգտագործողի խելացի հեռախոսի հատուկ հավելվածի միջոցով. լամպը կարող է միացվել և անջատվել, և գույնը կարող է փոխվել կիրառման միջերեսից: Այս նախագծում մենք կառուցեցինք խելացի լամպի վերահսկիչ, որը կարող է կառավարվել Bluetooth- ի միջոցով ձեռքով կոճակից կամ բջջային հավելվածից: Այս նախագծին որոշակի հմայք ավելացնելու համար մենք ավելացրել ենք որոշ առանձնահատկություններ, որոնք թույլ են տալիս օգտվողին ընտրել լուսավորման գույնը հավելվածի ինտերֆեյսում ներառված գույների ցանկից: Այն կարող է նաև ակտիվացնել «ավտոմատ խառնուրդ» ՝ գունային էֆեկտներ ստեղծելու և լուսավորությունը փոխելու համար ամեն վայրկյան: Օգտագործողը կարող է ստեղծել իր սեփական գունային խառնուրդը `օգտագործելով PWM հնարավորությունը, որը կարող է օգտագործվել նաև որպես լուսավորիչ երեք հիմնական գույների համար (կարմիր, կանաչ, կապույտ): Մենք նաև արտաքին կոճակներ ավելացրեցինք սխեմայի մեջ, որպեսզի օգտվողը կարողանա անցնել ձեռքի ռեժիմի և փոխել արտաքին գույնի լույսի գույնը:

Այս հրահանգը բաղկացած է երկու բաժնից. GreenPAK ™ դիզայնը և Android հավելվածի դիզայնը: GreenPAK- ի դիզայնը հիմնված է հաղորդակցության համար UART ինտերֆեյսի օգտագործման վրա: UART- ն ընտրված է, քանի որ այն ապահովված է Bluetooth մոդուլների մեծամասնությամբ, ինչպես նաև այլ ծայրամասային սարքերով, օրինակ ՝ WIFI մոդուլներով: Հետևաբար, GreenPAK- ի դիզայնը կարող է օգտագործվել միացման բազմաթիվ տեսակների մեջ:

Այս նախագիծը կառուցելու համար մենք պատրաստվում ենք օգտագործել SLG46620 CMIC- ը, Bluetooth մոդուլը և RGB LED- ը: GreenPAK IC- ն լինելու է այս ծրագրի վերահսկիչ առանցքը. այն ստանում է տվյալներ Bluetooth մոդուլից և/կամ արտաքին կոճակներից, այնուհետև սկսում է անհրաժեշտ ընթացակարգը `ճիշտ լուսավորությունը ցուցադրելու համար: Այն նաև առաջացնում է PWM ազդանշան և թողարկում այն LED- ին: Ստորև բերված նկար 1 -ը ցույց է տալիս բլոկ -դիագրամը:

Այս նախագծում օգտագործվող GreenPAK սարքը պարունակում է SPI կապի միջերես, PWM բլոկներ, FSM և բազմաթիվ այլ օգտակար լրացուցիչ բլոկներ մեկ IC- ում: Այն բնութագրվում է նաև իր փոքր չափսերով և էներգիայի ցածր սպառմամբ: Սա թույլ կտա արտադրողներին կառուցել մի փոքր գործնական միացում `օգտագործելով մեկ IC, ուստի արտադրության ծախսերը նվազագույնի կհասցվեն նմանատիպ համակարգերի համեմատ:

Այս նախագծում մենք վերահսկում ենք մեկ RGB LED: Նախագիծը առևտրային առումով կենսունակ դարձնելու համար համակարգը, ամենայն հավանականությամբ, պետք է բարձրացնի լուսավորության մակարդակը `զուգահեռաբար միացնելով բազմաթիվ LED- ներ և օգտագործելով համապատասխան տրանզիստորներ. պետք է հաշվի առնել նաև հոսանքի սխեման:

Դուք կարող եք անցնել բոլոր քայլերը `հասկանալու համար, թե ինչպես է GreenPAK չիպը ծրագրավորվել Bluetooth- ի միջոցով վերահսկել RGB LED գույնը: Այնուամենայնիվ, եթե դուք պարզապես ցանկանում եք հեշտությամբ ծրագրավորել IC- ն ՝ առանց հասկանալու բոլոր ներքին սխեմաները, ներբեռնեք GreenPAK ծրագիրը ՝ արդեն ավարտված GreenPAK դիզայնի ֆայլը դիտելու համար: Միացրեք GreenPAK Development Kit- ը ձեր համակարգչին և հարվածեք ծրագրին ՝ Bluetooth- ով RGB LED գույնը կառավարելու համար անհատական IC ստեղծելու համար:

GreenPAK- ի նախագիծը բաղկացած է ստորև բերված քայլերում նկարագրված UART ընդունիչից, PWM միավորից և կառավարման միավորից:

Քայլ 1: UART ընդունիչ

UART ընդունիչ
UART ընդունիչ

Նախ, մենք պետք է կարգավորենք Bluetooth մոդուլը: Bluetooth IC- ների մեծ մասն աջակցում է UART արձանագրությանը `հաղորդակցության համար: UART- ը նշանակում է ունիվերսալ ասինխրոն ընդունիչ / հաղորդիչ: UART- ը կարող է տվյալները հետ ու առաջ փոխարկել զուգահեռ և սերիական ձևաչափերի միջև: Այն ներառում է սերիալից զուգահեռ ընդունիչ և սերիալին փոխարկիչ զուգահեռ, որոնք երկուսն էլ առանձին են:

Bluetooth մոդուլում ստացված տվյալները կփոխանցվեն մեր GreenPAK սարքին: Pin10- ի պարապ վիճակը բարձր է: Ուղարկված յուրաքանչյուր նիշ սկսվում է տրամաբանական LOW մեկնարկային բիտով, որին հաջորդում է տվյալների բիթերի կազմաձևվող քանակը և մեկ կամ ավելի տրամաբանական HIGH stop բիթեր:

UART հաղորդիչը ուղարկում է 1 START բիթ, 8 տվյալների բիթ և մեկ STOP բիթ: Սովորաբար, UART Bluetooth մոդուլի լռելյայն արագությունը 9600 է: Մենք տվյալների բայթը Bluetooth IC- ից կուղարկենք GreenPAK ™ SLG46620- ի SPI բլոկին:

Քանի որ GreenPAK SPI բլոկը չունի START կամ STOP բիտ հսկողություն, մենք փոխարենը կօգտագործենք այդ բիթերը ՝ SPI ժամացույցի ազդանշանը (SCLK) միացնելու և անջատելու համար: Երբ Pin10- ը գնում է OWԱՐ, մենք գիտենք, որ ստացել ենք START բիթ, ուստի մենք օգտագործում ենք PDLY ընկնող եզրերի դետեկտորը `հաղորդակցության սկիզբը որոշելու համար: Այդ ընկնող եզրերի դետեկտորը ժամացույցներ է կատարում DFF0- ով, ինչը հնարավորություն է տալիս SCLK ազդանշանին զսպել SPI բլոկը:

Մեր բաուդ արագությունը 9600 բիթ է վայրկյանում, այնպես որ մեր SCLK ժամանակահատվածը պետք է լինի 1/9600 = 104 մկ: Հետևաբար, մենք OSC հաճախականությունը սահմանեցինք 2 ՄՀց և օգտագործեցինք CNT0- ն որպես հաճախականության բաժանարար:

2 ՄՀց -1 = 0.5 մկս

(104 մկ / 0.5 մկս) - 1 = 207

Հետևաբար, մենք ցանկանում ենք, որ CNT0- ի հաշվիչի արժեքը լինի 207. Ապահովելու համար, որ մենք որևէ տվյալ բաց չթողնենք, մենք պետք է SPI ժամացույցը հետաձգենք ժամացույցի կես ցիկլով, որպեսզի SPI բլոկը համապատասխան ժամաչափի լինի: Մենք դա արեցինք ՝ օգտագործելով CNT6, 2-բիթանոց LUT1 և OSC բլոկի արտաքին ժամացույցը: CNT6- ի թողարկումը չի բարձրանում մինչև 52 μs DFF0- ի ժամաչափից հետո, ինչը մեր 104 μs SCLK ժամանակաշրջանի կեսն է: Երբ CNT6- ը բարձր է, 2-բիթանոց LUT1 AND դարպասը թույլ է տալիս 2MHz OSC ազդանշանին անցնել EXT: CLK0 մուտքագրում, որի ելքը միացված է CNT0- ին:

Քայլ 2: PWM միավոր

PWM միավոր
PWM միավոր

PWM ազդանշանը ստեղծվում է PWM0- ի և հարակից ժամացույցի զարկերակի գեներատորի (CNT8/DLY8) միջոցով: Քանի որ զարկերակի լայնությունը վերահսկելի է օգտվողի կողմից, մենք օգտվում ենք FSM0- ից (որը կարելի է միացնել PWM0- ին) `օգտվողի տվյալները հաշվելու համար:

SLG46620- ում 8-բիթանոց FSM1- ը կարող է օգտագործվել PWM1- ի և PWM2- ի հետ: Bluetooth մոդուլը պետք է միացված լինի, ինչը նշանակում է, որ պետք է օգտագործվի SPI զուգահեռ ելքը: SPI զուգահեռ ելքային բիթերը 0 -ից 7 -ը խառնվում են DCMP1, DMCP2 և LF OSC CLK- ի OUT1 և OUT0 հետ: PWM0- ն իր ելքը ստանում է 16-բիթանոց FSM0- ից: Եթե անփոփոխ մնա, դա զարկերակի լայնության գերբեռնում է առաջացնում: Հաշվիչի արժեքը 8 բիթով սահմանափակելու համար ավելացվում է մեկ այլ FSM; FSM1- ը օգտագործվում է որպես ցուցիչ `իմանալու համար, երբ հաշվիչը հասնում է 0 -ի կամ 255 -ի: FSM0- ն օգտագործվում է PWM զարկերակի առաջացման համար: FSM0- ը և FSM1- ը պետք է համաժամեցված լինեն: Քանի որ երկու FSM- ներն ունեն ժամացույցի կանխադրված ընտրանքներ, CNT1 և CNT3 օգտագործվում են որպես միջնորդներ ՝ CLK- ն երկու FSM- ներին փոխանցելու համար: Երկու հաշվիչները դրված են նույն արժեքի վրա, որը 25 է այս Instructable- ի համար: Մենք կարող ենք փոխել PWM- ի արժեքի փոփոխության արագությունը `փոխելով այդ հաշվիչ արժեքները:

FSM- ների արժեքը մեծանում և նվազում է '+' և '-' ազդանշաններով, որոնք բխում են SPI- ի զուգահեռ ելքից:

Քայլ 3: Վերահսկիչ միավոր

Վերահսկիչ միավոր
Վերահսկիչ միավոր

Կառավարման միավորի ներսում ստացված բայթը Bluetooth մոդուլից տեղափոխվում է SPI զուգահեռ ելք և այն փոխանցվում է համապատասխան գործառույթներին: Սկզբում PWM CS1 և PWM CS2 ելքերը կստուգվեն `պարզելու համար` PWM օրինակը ակտիվացված է, թե ոչ: Եթե այն ակտիվացված է, ապա այն կորոշի, թե որ ալիքն է թողարկում PWM- ը LUT4, LUT6 և LUT7 միջոցով:

LUT9, LUT11 և LUT14- ը պատասխանատու են մյուս երկու LED- ների վիճակը ստուգելու համար: LUT10- ը, LUT12- ը և LUT13- ը ստուգեք `ձեռքով կոճակն ակտիվացված է, թե ոչ: Եթե ձեռքով ռեժիմն ակտիվ է, ապա RGB- ի ելքերը գործում են ըստ D0, D1, D2 ելքային վիճակների, որոնք փոխվում են ամեն անգամ, երբ Գույն կոճակը սեղմելիս: Այն փոխվում է աճող եզրով, որը գալիս է CNT9- ից, որն օգտագործվում է որպես բարձրացող եզրերի ապակողմնորոշիչ:

Pin 20 -ը կազմաձևված է որպես մուտքագրում և օգտագործվում է Ձեռնարկի և Bluetooth կառավարման միջև անցնելու համար:

Եթե ձեռքով ռեժիմն անջատված է, և ավտոմատ խառնիչի ռեժիմն ակտիվացված է, ապա գույնը փոխվում է յուրաքանչյուր 500 մ / վ -ով `CNT7- ից բարձրացող եզրով: 4-բիթանոց LUT1- ը օգտագործվում է D0 D1 D2- ի համար «000» վիճակը կանխելու համար, քանի որ այս վիճակի պատճառով լույսը անջատվում է Auto mixer ռեժիմի ժամանակ:

Եթե ձեռքի ռեժիմը, PWM ռեժիմը և Auto mixer ռեժիմը միացված չեն, ապա կարմիր, կանաչ և կապույտ SPI հրամանները հոսում են դեպի 12, 13 և 14 կապում, որոնք կազմաձևված են որպես ելքեր և միացված են արտաքին RGB LED- ին:

DFF1, DFF2 և DFF3 օգտագործվում են 3-բիթանոց երկուական հաշվիչ կառուցելու համար: Հաշվիչի արժեքը մեծանում է CNT7 իմպուլսներով, որոնք անցնում են P14- ով Auto mixer ռեժիմում, կամ ձեռքով ռեժիմում Գույնի կոճակից (PIN3) եկող ազդանշաններից:

Քայլ 4: Android հավելված

Android հավելված
Android հավելված
Android հավելված
Android հավելված
Android հավելված
Android հավելված
Android հավելված
Android հավելված

Այս բաժնում մենք պատրաստվում ենք կառուցել Android ծրագիր, որը վերահսկելու և ցուցադրելու է օգտվողի կառավարման ընտրանքները: Ինտերֆեյսը բաղկացած է երկու բաժնից. Առաջին բաժինը պարունակում է մի շարք կոճակներ, որոնք ունեն կանխորոշված գույներ, այնպես որ այս կոճակներից որևէ մեկին սեղմելիս լուսավորվում է նույն գույնի լուսադիոդ: Երկրորդ բաժինը (MIX քառակուսի) օգտագործողի համար ստեղծում է խառը գույն:

Առաջին բաժնում օգտագործողը ընտրում է LED փին, որով ցանկանում է, որ PWM ազդանշանը անցնի. PWM ազդանշանը կարող է միաժամանակ փոխանցվել միայն մեկ կապին: Ստորին ցուցակը վերահսկում է մյուս երկու գույները տրամաբանորեն միացված/անջատված PWM ռեժիմի ընթացքում:

Ավտոմատ խառնիչի կոճակը պատասխանատու է լույսի փոփոխման ավտոմատ ռեժիմի գործարկման համար, որտեղ լույսը փոխվում է ամեն կես վայրկյան: MIX բաժինը պարունակում է երկու վանդակի ցուցակ, որպեսզի օգտագործողը կարողանա որոշել, թե որ երկու գույներն են իրար խառնել:

Մենք ստեղծեցինք հավելվածը ՝ օգտագործելով MIT հավելվածի գյուտարարի կայքը: Այն կայք է, որը թույլ է տալիս Android ծրագրեր ստեղծել առանց ծրագրային նախնական փորձի ՝ օգտագործելով գրաֆիկական ծրագրային բլոկներ:

Սկզբում մենք նախագծեցինք գրաֆիկական ինտերֆեյս `ավելացնելով մի շարք կոճակներ, որոնք պատասխանատու են կանխորոշված գույները ցուցադրելու համար, ավելացրեցինք նաև երկու վանդակի ցուցակ, և յուրաքանչյուր ցուցակ ունի 3 տարր: յուրաքանչյուր տարր ուրվագծված է իր առանձին վանդակում, ինչպես ցույց է տրված Նկար 5 -ում:

Օգտագործողի միջերեսի կոճակները կապված են ծրագրային ապահովման հրամանների հետ. Աղյուսակ 1 -ը ցույց է տալիս GreenPAK- ին ուղարկված հրամանների շրջանակների ձևը:

Առաջին երեք բիթերը ՝ B0, B1 և B2, կպահպանեն RGB LED- ների վիճակը ՝ անմիջական վերահսկման ռեժիմում ՝ կանխորոշված գույների կոճակներով: Այսպիսով, դրանցից որևէ մեկին սեղմելիս կոճակի համապատասխան արժեքը կուղարկվի, ինչպես ցույց է տրված Աղյուսակ 2 -ում:

B3 և B4 բիթերը պահում են «+» և «-» հրամանները, որոնք պատասխանատու են զարկերակի լայնությունը մեծացնելու և նվազեցնելու համար: Երբ կոճակը սեղմվում է, բիտ արժեքը կլինի 1, իսկ երբ կոճակը բաց է թողնվում, բիտ արժեքը կլինի 0:

B5 և B6 բիթերը պատասխանատու են PWM ազդանշանի միջոցով քորոցի (գույնի) ընտրության համար. Այս բիթերի գույնի նշումները ներկայացված են աղյուսակ 3 -ում: Վերջին բիթը ՝ B7- ը, պատասխանատու է ավտոմատ խառնիչի ակտիվացման համար:

Նկար 6 -ը և Նկար 7 -ը ցույց են տալիս կոճակները ծրագրավորման բլոկների հետ կապելու գործընթացը, որոնք պատասխանատու են նախորդ արժեքները ուղարկելու համար:

Theրագրի ամբողջական դիզայնը դիտելու համար կարող եք ներբեռնել կցված «.aia» ֆայլը ծրագրի ֆայլերով և բացել այն հիմնական կայքում:

Ստորև բերված նկար 8 -ը ցույց է տալիս վերին մակարդակի միացման սխեմա:

Քայլ 5: Արդյունքներ

Կառավարիչը հաջողությամբ փորձարկվեց, և գույնի խառնուրդը, ինչպես նաև այլ հատկանիշներ, ցույց տվեց, որ աշխատում է համապատասխան կերպով:

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

Այս Instructable- ում խելացի լամպի միացում է ստեղծվել, որը պետք է անլար վերահսկվի Android հավելվածի կողմից: Այս նախագծում օգտագործված GreenPAK CMIC- ը նաև օգնեց կրճատել և ներառել լույսի կառավարման մի քանի էական բաղադրիչներ մեկ փոքր IC- ի մեջ:

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