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

LED POVstick Bluetooth ցածր էներգիայով. 10 քայլ (նկարներով)
LED POVstick Bluetooth ցածր էներգիայով. 10 քայլ (նկարներով)

Video: LED POVstick Bluetooth ցածր էներգիայով. 10 քայլ (նկարներով)

Video: LED POVstick Bluetooth ցածր էներգիայով. 10 քայլ (նկարներով)
Video: DIY Propeller LED Clock with Arduino || LED Clock POV Display 2024, Նոյեմբեր
Anonim
LED POVstick Bluetooth ցածր էներգիայով
LED POVstick Bluetooth ցածր էներգիայով

Այս հրահանգը ցույց է տալիս, թե ինչպես կարելի է RGB լուսադիոդային լուսարձակներ սարքել, որը վերահսկելի է ձեր հեռախոսից BLE- ի միջոցով:

Այժմ, երբ սկսվում է մութ սեզոնը, և դուք պետք է երկար ցուցադրման լուսանկարներ կատարեք. ուրիշ բաներ…

Այն ընդգրկում է զարգացման մի քանի թեմաներ.

  • սարքավորումների կառուցում
  • Cypress BLE չիպսեթի ծրագրավորում C- ով
  • ստեղծեք ձեր սեփական ծրագիրը `այն վերահսկելու համար:

Քայլ 1. Սարքաշար BLE-LED-Stick- ի համար

Սարքավորումներ BLE-LED-Stick- ի համար
Սարքավորումներ BLE-LED-Stick- ի համար
Սարքավորումներ BLE-LED-Stick- ի համար
Սարքավորումներ BLE-LED-Stick- ի համար
Սարքավորումներ BLE-LED-Stick- ի համար
Սարքավորումներ BLE-LED-Stick- ի համար
Սարքավորումներ BLE-LED-Stick- ի համար
Սարքավորումներ 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 վերահսկման ծրագրակազմ

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 վերահսկում
RGB վերահսկում
RGB վերահսկում
RGB վերահսկում
RGB վերահսկում
RGB վերահսկում
RGB վերահսկում
RGB վերահսկում

RGB-Control- ը շատ հեշտությամբ կարող է փորձարկվել CySmart հավելվածի միջոցով, քանի որ այս բնութագրի համար օգտագործել եմ նույն UUID- ը, ինչպես Cypress Demo- ում:

Գործարկեք CySmart ծրագիրը և միացեք Povstick- ին: Նախ պետք է ccc1 բնութագրին գրել «0x0A»:

0x0A- ն 10-ի վեցանկյուն արժեքն է, որը RGB-Control անիմացիան է enum- ում:

Այնուհետև կարող եք անցնել RGB-LED կառավարման վահանակի CySmart հավելվածում: Գուցե դուք պետք է վերագործարկեք ծրագիրը `այս էկրանին հասնելու համար: Հետո կարող եք վերահսկել բոլոր LED- ների գույնը այս RGB- դիագրամով:

Իհարկե, կարող եք նաև արժեքները գրել անմիջապես բնութագրի մեջ:

Քայլ 8: Text_Animation ծառայություն և մշտական պահեստավորման ծառայություն

Text_Animation ծառայություն և մշտական պահեստավորման ծառայություն
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
Make it Glow մրցույթ 2018
Make it Glow մրցույթ 2018
Make it Glow մրցույթ 2018

Երկրորդ մրցանակը Make it Glow մրցույթում 2018 թ

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