Բովանդակություն:
- Քայլ 1. Սարքաշար BLE-LED-Stick- ի համար
- Քայլ 2: Էլեկտրոնիկայի հավաքում
- Քայլ 3: Ինչպե՞ս ստեղծել տառատեսակներ:
- Քայլ 4: BLE վերահսկման ծրագրակազմ
- Քայլ 5: Առաջին փորձարկում
- Քայլ 6: Ընտրեք Շարժապատկերներ
- Քայլ 7: RGB վերահսկում
- Քայլ 8: Text_Animation ծառայություն և մշտական պահեստավորման ծառայություն
- Քայլ 9: Գործարկեք Android ծրագիրը
- Քայլ 10: Գրեք հաղորդագրություններ նկարներում
Video: LED POVstick Bluetooth ցածր էներգիայով. 10 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Այս հրահանգը ցույց է տալիս, թե ինչպես կարելի է RGB լուսադիոդային լուսարձակներ սարքել, որը վերահսկելի է ձեր հեռախոսից BLE- ի միջոցով:
Այժմ, երբ սկսվում է մութ սեզոնը, և դուք պետք է երկար ցուցադրման լուսանկարներ կատարեք. ուրիշ բաներ…
Այն ընդգրկում է զարգացման մի քանի թեմաներ.
- սարքավորումների կառուցում
- Cypress BLE չիպսեթի ծրագրավորում C- ով
- ստեղծեք ձեր սեփական ծրագիրը `այն վերահսկելու համար:
Քայլ 1. Սարքաշար BLE-LED-Stick- ի համար
Փայտի համար ձեզ հարկավոր է հետևյալը.
- Կիպարիս BLE մոդուլ (CY8C4247LQI-BL583)
- WS2812b RGB-LED-Strip (64LEDs 144Led / մետրի ժապավենից)
- Li-Ion մարտկոց ՝ համապատասխան ամրակով (18650)
- մի կոճակ
- մի կտոր տախտակ
Փայտի սարքավորումն ինքնին բավականին պարզ է:
Cypress BLE մոդուլը տեղադրված է տախտակի կտորի վրա, և LED- ները, կոճակը և սնուցման աղբյուրը պարզապես միացված են այս տախտակին:
Ամեն ինչ տեղադրված, սոսնձված կամ պտուտակված է փայտե փոքր կտորի վրա, որն ինքնին մասամբ տեղադրված է թափանցիկ պոլիակրիլային խողովակի մեջ: Բայց սա պարտադիր չէ: Ես ուզում էի ամեն ինչ տեղադրել խողովակի ներսում, բայց BLE- մոդուլի և մարտկոցի համար, որոնք բավականին մեծ են, չգտա LED- ների համեմատ: Առաջին կրակոցի համար ձեզ հարկավոր չէ ակրիլ-խողովակ:
Քայլ 2: Էլեկտրոնիկայի հավաքում
Այս քայլը ցույց է տալիս, թե ինչպես է տեղադրված BLE- մոդուլը և որ կապերն են օգտագործվում այդ նպատակով:
Ինչպես իմ մի քանի հրահանգներում, ես օգտագործեցի Cypress BLE զարգացման հավաքածուն: CY8CKIT-042-BLE Արագ մեկնարկի ուղեցույց
Եթե ցանկանում եք մոդուլն ինքնուրույն գործել, ապա ձեզ միացնելու համար անհրաժեշտ է միայն էներգիայի աղբյուրներն ու օգտագործված կապերը:
Մեր նախագծի համար մենք օգտագործում ենք միայն 3.5 կապը `LED- ժապավենը վարելու համար: Բայց, իհարկե, դա կարող եք փոխել PSoC Creator- ի հետ:
Ինչպես տեսնում եք PCB- ի նկարում, ես ավելացրել եմ քորոցներ չիպի բոլոր անկյուններում, բայց ես բաց թողեցի VREF կապը:
Այս կերպ մոդուլը ճիշտ տեղադրված է, և անհնար է մոդուլը սխալ միացնել:
Քայլ 3: Ինչպե՞ս ստեղծել տառատեսակներ:
Դե, ես կարծում եմ, որ սա ամենահետաքրքիր խնդիրներից մեկն էր, որ ես լուծեցի այս նախագծի ընթացքում:
Իհարկե, կարելի է պարզապես ձևավորել նոր տառատեսակ և գրել այն զանգվածով, բայց դա իսկապես շատ աշխատանք է:
Ուրեմն ինչ արեցի:
Ես գիտեի, որ ինձ պետք է ինչ-որ ASCII ՝ վեց բիթ քարտեզի փոխակերպման համար: Եվ ես բախտավոր էի, քանի որ ես առաջինը չէի այս խնդրով::-)
«GLCD տառատեսակի գեներատոր» ծրագրակազմը ճիշտ արեց ՝
Քանի որ ես ուզում էի առավելագույնը ստանալ LED- փայտից, ես ներմուծեցի տառատեսակը բավականին մեծ չափերով (~ 32 պիքսել): Եթե միայն մեծատառ եք օգտագործում, ապա պետք չէ հոգ տանել աճողների մասին, ինչը ձեր տեսանելի տառատեսակի չափը կավելացնի ևս մի քանի պիքսել: Բայց ես նախընտրեցի օգտագործել և մեծ, և փոքր տառեր: (https://hy.wikipedia.org/wiki/Ascender_%28typography%29)
GLCD տառատեսակի գեներատորում տառատեսակ ներմուծելուց հետո կարող եք ընտրել այն արտահանել տարբեր ձևաչափերով:
Փորձեցի այն ուղղակի արտահանել վերնագրերի մեջ, ինչը լավ էր, բայց ոչ կատարյալ: Ստացված արտահանումը կարճ տաբատների (16 բիթ) զանգված է `բայթ-վեցանկյուն արժեքներով, սյուների համար` առաջին 128-ասիական բնույթի յուրաքանչյուր բնույթի համար: Ոչ այնքան այն, ինչ ուզում էի կամ կարիք ունեի…
Այսպիսով, ես զանգվածը ներմուծեցի բաց գրասենյակային հաշվարկային աշխատանքային թերթ: Այնուհետև ես հանեցի «0x» - ը չորս արժեքներից երեքի վրա և դրանք միացրեցի մեկ 32 բիթ երկար արժեքի մեջ: Ես նաև ամրագրեցի առանձին բայթերի սխալ էնդիանությունը:
Ստացված զանգվածը 32*բիթանոց արժեքների N*M զանգված է: M- ը համապատասխան նիշն է, իսկ N- ը `սյունակները, որոնք կազմում են այս տառի ցուցադրումը: Այս առաջին նախագծում բոլոր նիշերն ունեն նույն թվով սյուներ, ինչը նշանակում է, որ բոլոր տառերը հավասարապես լայն են, ինչպես հայտնի Courier տառատեսակում: «I» կամ «t» - ի նման փոքր կերպարները կարծես տարածության մեջ կորած լինեն:
Հետևաբար, յուրաքանչյուր նիշի սկզբում ես ավելացրեցի նոր պարամետր ՝ ասելու համար, թե քանի սյունակ ունի այս բնույթը կամ որքան լայն է այս նիշը: Սա փրկում է հիշողությունը և տեքստը դարձնում ավելի լավ տեսք:
Քայլ 4: BLE վերահսկման ծրագրակազմ
BLE- ծրագրաշարի սկզբունքը շատ հեշտ է.
- Սկզբում դա պարզապես ոչինչ չի անում:
- BLE- ի միջոցով կարող եք սահմանել ցուցադրվող տարբեր անիմացիաներ կամ տեքստեր:
- Կոճակը սեղմելուց հետո ցուցադրվում են անիմացիայի կամ տեքստի առանձին սյուները:
- Տեքստը ցուցադրվելուց հետո այն շարունակում է կրկին սպասել:
Պարզապես ներմուծեք կիպրոսի նախագիծը ձեր PSoC-Creator և փոփոխեք այն, եթե ցանկանում եք:
PSoC-4- ն այդքան RAM և ֆլեշ չունի, որպեսզի կարողանա պահել տառատեսակների ամբողջական RGB պատկերները: Հետևաբար, ինձ անհրաժեշտ էր տեքստից լուսադիոդային բովանդակություն դինամիկ ձևավորելու միջոց: Դա բավականին պարզ է, առայժմ ոչ մի առանձնահատուկ բան: Բազմաթիվ տառերով տեքստից ալգորիթմը վերցնում է մեկ տառ և փոխակերպում այն սև-սպիտակ-բիթմապ քարտերի զանգվածի: Այնուհետև տանում է այս մեկ տառանոց բիթ քարտեզի յուրաքանչյուր սյունակ և սպիտակի փոխարեն գրում է ընթացիկ RGB գույնը LED զանգվածի վրա: Այս կերպ Դուք կարող եք ստեղծել մեկ գունավոր տեքստեր կամ լրացուցիչ գործառույթով փոխել գույնը յուրաքանչյուր սյունակից, յուրաքանչյուր տառից կամ նույնիսկ յուրաքանչյուր պիքսելից հետո:
«Նամակը» կարող է պահվել մեկ բայթ-փոփոխականի մեջ, մինչդեռ սև ու սպիտակ բիթ քարտեզը պետք է պահվի ինչ-որ զանգվածում:
Տվյալների կառուցվածքը հետևյալն է.
Տող: newtext = "Բարև";
Տառատեսակ ՝ uint32 նիշ = {FirstCharacter_ColumnCount, FirstCharacter_FirstColumn, FirstCharacter_SecondColumn,… SecondCharacter_ColumnCount, SecondCharacter_FirstColumn,…… LastCharacter_ColumnCount,… LastCharacter_LastColumn; Գույն ՝ uint32 rgbcolor = 0xHHBBGGRR; // Պայծառություն, կապույտ, կանաչ, կարմիր ՝ յուրաքանչյուրը 8 բիթ արժեքով
Aուցադրման համար տողը փոխարկելու համար մենք անում ենք հետևյալը.
getCharacter (): H (8 բիթ)
getColumn (int i). սյունակ (32bit) (i- ն սկսվում է առաջին սյունակից, անցնում է մինչև վերջին): LED-Strip Array- ն 64 LED է ՝ յուրաքանչյուրը 32 բիթ գույներով:
Եվ եթե այս սյունակը ցուցադրվի, մենք շարունակում ենք հաջորդը:
Այսքան հեշտ է:
Քայլ 5: Առաջին փորձարկում
Այժմ, երբ ծրագրակազմն աշխատում է, մենք պատրաստ ենք առաջին թեստերին:
Ներկառուցված գործառույթը ստուգելու ամենահեշտ ձևը Bluetooth- ի ցածր էներգիայի թեստային ծրագիրն է: Հյուսիսային կամ Կիպրոսի հավելվածների պես:
Սկանդինավյան ՝ nRF միացում բջջայինի համար
Cypress: CySmart
Սկսեք Pov-Stick- ը և դիտեք, թե ինչպես կցուցադրվի ցուցադրման տողը: Երբ սա ավարտվի, ժամանակն է սկսել ծրագիրը: Որոնեք Povstick սարքը և կտտացրեք կապել:
Կապի հաստատումից հետո ծրագիրը ինքնաբերաբար հայտնաբերում է սահմանված բոլոր ծառայություններն ու բնութագրերը:
Փնտրեք առաջին ծառայությունը (պետք է սկսվի 0000ccce…): Կտտացրեք դրա վրա `այն բացելու և առաջին բնութագիրը ցուցադրելու համար (սկսվում է 0000ccc1): Այնուհետև սեղմեք գրելու (կամ վերբեռնելու) կոճակը և գրեք 01 -ը այս բնութագրին:
Երբ ուղարկում եք ուղարկել, POVstick- ը կսկսի Color-Knight-rider անիմացիան, որը հայտնի է որպես Larson Scanner, փոփոխվող գույներով:
Շնորհակալություն, որ դուք ուղարկեցիք ձեր առաջին արժեքը BLE- ի միջոցով:
Քայլ 6: Ընտրեք Շարժապատկերներ
Theրագրային ապահովման մեջ մենք սահմանեցինք «e_Animation» enum ՝ հետևյալ արժեքներով.
typedef enum {Knightrider = 0, ColorKnightRider, Rainbowswirl, Valueswirl, WS_CandyCane, WS_CandyCane_2, WS_CandyCane_3, WS_Twinkle, WS_Icicle, WS_ColorWheel, RGB_Contation, TextAnimim, TextAnimim, TextAnimim, TextAnimim, TextAnimim, TextAnimim, TextAnimim, TextAnimim, TextAnimim, TextAnimim, TextAnimim, TextAnimim, TextAnimim
Սրանք այն արժեքներն են, որոնք վավեր են ccc1 բնութագրի համար: Եթե ցանկանում եք տեսնել CandyCane-Animation- ը, ապա պետք է այս բնութագրին գրեք 4, 5 կամ 6: Նրանք տարբերվում են գույներով:
Երկու հատուկ անիմացիա են `RGB_Control և TextAnimation: Եթե դուք ընտրեցիք դրանք ակտիվացնել, ապա ակնհայտորեն սկզբում փայտը ոչինչ չի ցուցադրի: Բայց այն ձեզ առաջարկում է լրացուցիչ տարբերակներ ՝ այլ ծառայությունների միջոցով փայտը վերահսկելու համար:
Քայլ 7: RGB վերահսկում
RGB-Control- ը շատ հեշտությամբ կարող է փորձարկվել CySmart հավելվածի միջոցով, քանի որ այս բնութագրի համար օգտագործել եմ նույն UUID- ը, ինչպես Cypress Demo- ում:
Գործարկեք CySmart ծրագիրը և միացեք Povstick- ին: Նախ պետք է ccc1 բնութագրին գրել «0x0A»:
0x0A- ն 10-ի վեցանկյուն արժեքն է, որը RGB-Control անիմացիան է enum- ում:
Այնուհետև կարող եք անցնել RGB-LED կառավարման վահանակի CySmart հավելվածում: Գուցե դուք պետք է վերագործարկեք ծրագիրը `այս էկրանին հասնելու համար: Հետո կարող եք վերահսկել բոլոր LED- ների գույնը այս RGB- դիագրամով:
Իհարկե, կարող եք նաև արժեքները գրել անմիջապես բնութագրի մեջ:
Քայլ 8: Text_Animation ծառայություն և մշտական պահեստավորման ծառայություն
Այս ծառայություններն այնքան էլ հեշտ չէ ստուգել:
Տեխնիկապես դրա համար կարող եք նաև օգտագործել սկանդինավյան ծրագիրը, բայց դուք պետք է իմանաք, թե որ բնութագրին ինչ արժեքներ գրել:
Այսպիսով, եթե ցանկանում եք դրանք ստուգել, ապա պետք է նայեք PSoC նախագծին, որի UUID- ի որ հատկանիշն է:
Կարևորը «Սահմանված արագության» բնութագիրն է: Այս բնութագրով դուք կարող եք վերահսկել, թե որքան արագ են անիմացիաները:
PersistentStorageService- ի բնորոշ «Set_Animation» - ի միջոցով կարող եք վերահսկել տեքստի տառատեսակները և գույները: Վավեր արժեքները սահմանվում են «povanimation.h»-ում, երկու տառատեսակով ՝ «mono» և «serif» և մեկ գունավոր և ծիածանի գույնով: 0 և 1 արժեքները ցուցադրում են տեքստը ֆիքսված գույնով, որը վերահսկելի է RGB_Control բնութագրի միջոցով: 2 և 3 արժեքները փոխում են գույնը յուրաքանչյուր սյունակի համար և տողին տալիս գեղեցիկ ծիածան:
«Գրեք_Տեքստային_ծառայությունը» մի տեսակ տարբերվում է: Դուք կարող եք նոր տող գրել սարքի վրա ՝ առանձին նիշ գրելով «Set_Character» բնութագրին: Յուրաքանչյուր գրելու դեպքում դուք կստանաք ծանուցում տողի ընթացիկ երկարության վերաբերյալ:
Նոր տող սկսելու համար «Clear_String» - ին գրեք «true»:
Սա ամենալավ իրականացումը չէ, բայց այն աշխատում է ցանկացած տողի համար մինչև 250 նիշ ՝ առանց MTU- ի չափը փոխելու:
Povstick- ի կոճակը սեղմելիս սկիզբով նոր տողի ցուցադրում:
Քայլ 9: Գործարկեք Android ծրագիրը
Սա կարևոր քայլ է, բայց այս հրահանգի շրջանակներից դուրս: Ցավում եմ, որ!
Գուցե ես կարող եմ իմ փորձնական ծրագիրը վերբեռնել play store, բայց այն դեռ ավարտված կամ թողարկելի չէ:
Քայլ 10: Գրեք հաղորդագրություններ նկարներում
Դե, սա է պատճառը, որ ես առաջին հերթին կառուցում եմ այս ձողիկը `նկարներով հաղորդագրություններ գրել:
Ձեզ հարկավոր է եռոտանի, երկար ցուցադրման գործառույթ ունեցող տեսախցիկ և որոշ լավ տեղադրություն:
Կարգավորեք տեսախցիկը և առաջին փորձարկման համար կարգավորեք լուսավորման ժամանակը 10 վայրկյան:
Գործարկեք արձակումը և սկսեք քայլել նկարի միջով ՝ սկսելով փայտի վրա տեքստային ցուցադրումը:
Et Voila այնտեղ ենք:
LED լուսավորության, բացվածքի և լուսավորման ժամանակի ճիշտ համադրությամբ հնարավոր է նույնիսկ լուսանկարել լուսաբացին:
Այս քայլի երեք նկարները ցույց են տալիս հնարավորությունների ամբողջական սպեկտրը:
Առաջինում LED- ները չափից դուրս են ենթարկվում և ստեղծում են կախարդական փայլ: Բայց դա է պատճառը, որ գետնի վրա արտացոլումները տեսանելի են, և ֆոնը բավականին լավ է:
Երկրորդ նկարը ցուցադրվում է LED- ների համար, բայց դա ֆոնը թողնում է ամբողջովին սև:
Իսկ երրորդը մայրամուտից կարճ ժամանակ անց բավականին թույլ լուսադիոդներ է ցուցադրում: LED- ները նույնքան պայծառ են, որքան մյուս նկարներում, բայց միջավայրն այնքան պայծառ էր, որ ես ստիպված էի օգտագործել ցածր բացվածք և ցածր ISO, որպեսզի LED- ները բավականին մութ երևան:
Երկրորդ մրցանակը Make it Glow մրցույթում 2018 թ
Խորհուրդ ենք տալիս:
Արևային էներգիայով լուսավորված տերարիում. 15 քայլ (նկարներով)
Արևային էներգիայով աշխատող լուսատու տերարիում. Q. Ի՞նչ եք ստանում, երբ գրանցամատյանով անցնում եք գիշերային լույսը: A: Արևային էներգիայով աշխատող լուսատու տերարիում: . Այն պատկերում է այն տնակը, որը ես և իմ ընկերը վարձել էինք
Արևային էներգիայով աշխատող ռոբոտ. 17 քայլ (նկարներով)
Արևային էներգիայով աշխատող ռոբոտ. Որոշ ժամանակ առաջ ես պատրաստեցի տասնյակ ռոբոտներ, որոնք մեծ մասամբ ոգեշնչված էին BEAM Robotics- ից: Անծանոթների համար BEAM- ը հիմնականում ռոբոտաշինության հատուկ մեթոդ է ՝ շեշտը դնելով կենսաբանության, էլեկտրոնիկայի, գեղագիտության և մեխանիկայի վրա (հետևաբար ՝ հապավումը
Արևային էներգիայով աշխատող LED կայանման տվիչ ՝ 8 քայլ (նկարներով)
Արևային էներգիայով աշխատող LED կայանման սենսոր. Մեր ավտոտնակը շատ խորություն չունի, և վերջում պահարաններն ավելի են նվազեցնում խորությունը: Իմ կնոջ մեքենան պարզապես բավական կարճ է տեղավորվելու համար, բայց մոտ է: Այս սենսորը ես պատրաստել եմ կայանման գործընթացը պարզեցնելու և մեքենան լցված լինելու համար
Արևային էներգիայով սնուցվող սիրտ Blinky LED կախազարդի զարդեր. 11 քայլ (նկարներով)
Արևային էներգիայով սնուցվող սիրտ Blinky LED կախազարդի զարդեր. Այն չափում է մոտ 2 " 1,25 ", ներառյալ USB ներդիրը: Այն ունի մեկ անցք տախտակի վերևում, ինչը հեշտացնում է կախելը: Հագեք այն որպես վզնոց, ականջօղեր, կապեք կապում
LP-2010 AES17 1998 Անջատիչ ուժեղացուցիչի ցածր անցում (ցածր անցում) terտիչ ՝ 4 քայլ
LP-2010 AES17 1998 Անցման ուժեղացուցիչ Passածր լեռնանցք (ցածր անցում) terտիչ. Սա հիանալի D դասի ուժեղացուցիչ է ցածր անցումային ֆիլտրի չափում: Հիանալի վարպետությունը, սուպերիրո կատարումը, հեշտ կապը դարձնում են այս ապրանքը դյուրին օգտագործման և շատ արժե ունենալ դրա հետ բարձր ծախսերի կատարում