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

Motion Sensor Lights Basys3: 8 քայլ
Motion Sensor Lights Basys3: 8 քայլ

Video: Motion Sensor Lights Basys3: 8 քայլ

Video: Motion Sensor Lights Basys3: 8 քայլ
Video: SPI Light Sensor PmodALS with Seven Segment Display and LEDs withArtix-7 FPGA on Basys 3 2024, Նոյեմբեր
Anonim
Շարժման սենսորային լույսեր Basys3
Շարժման սենսորային լույսեր Basys3
Շարժման սենսորային լույսեր Basys3
Շարժման սենսորային լույսեր Basys3
Շարժման սենսորային լույսեր Basys3
Շարժման սենսորային լույսեր Basys3

Թվային դիզայնի մեր վերջին նախագծի համար մենք որոշեցինք շարժման տվիչների լույսերի մոդելավորումը: Նրանք ակտիվանում են ոչ միայն այն ժամանակ, երբ օբյեկտը մոտ է դրան, այլև ակտիվանում են միայն օրվա որոշակի ժամին: Մենք կարող ենք դա մոդելավորել ՝ օգտագործելով FPGA (Basys3 տախտակ): FPGA- ի օգտագործման ընթացքում մենք թույլ տվեցինք օգտագործողին մուտքագրել մի ժամանակ, երբ շարժման տվիչները կարող են սկսել ակտիվանալ, այնուհետև սենսորները ազդանշան կուղարկեն ՝ կախված այն սենսորից, որը այդ սենյակում կամ տարածքում միացնել այդ հատուկ լույսը: Մենք սա մոդելավորեցինք ՝ թույլ տալով տվյալ պահին ակտիվացնել միայն մեկ շարժման տվիչ և համապատասխանաբար միացնելով տվյալ լույսերը: Timeամանակի սահմանափակման պատճառով մենք չենք կարողանում այնպես անել, որ օգտագործողի կողմից մուտքագրված ժամանակը ազդի շարժման տվիչի ակտիվացման վրա: Այնուամենայնիվ, մեր տրամաբանության հիմքը պետք է թույլ տա որևէ մեկին հեշտությամբ կրկնել և կատարելագործել այն:

### Ստորև բերված հղումը ցույց է տալիս Նախագծի տեսանյութը

drive.google.com/file/d/1FnDwKFfFFDo8mg25j1sW61lUyEqdavQG/view?usp=sharing

Քայլ 1: Անհրաժեշտ սարքավորումներ

Անհրաժեշտ սարքավորումներ
Անհրաժեշտ սարքավորումներ

Այս նախագծի համար ձեզ հարկավոր կլինի հետևյալը.

-Basys3 խորհուրդ

-USB- ից microusb մալուխ

-8 breadboard jumper լարեր

-Գրատախտակ

-2 ցրված LED

Քայլ 2. Blackbox- ի դիագրամ/վերջնական վիճակի մեքենա

Blackbox- ի դիագրամ/վերջավոր վիճակի մեքենա
Blackbox- ի դիագրամ/վերջավոր վիճակի մեքենա
Blackbox- ի դիագրամ/վերջավոր վիճակի մեքենա
Blackbox- ի դիագրամ/վերջավոր վիճակի մեքենա

Սև արկղի այս դիագրամը ցույց է տալիս լուսադիոդային լույսերը միացնելու համար անհրաժեշտ մուտքերը: The Hour input և Min մուտքերը ներկայացնում են այն ժամանակը, որը օգտագործողը մուտքագրել է basys3 տախտակին (օգտագործելով անջատիչներ): Ինչ վերաբերում է sw- ի մուտքին, ապա այն ներկայացնում է, թե սենյակի որ մասում է գտնվում օգտվողը (կրկին օգտագործելով անջատիչները `գտնվելու վայրը պատկերող օբյեկտը ներկայացնելու համար):

FSM- ը ցույց է տալիս սենյակի մեկ տարածքից մյուս տարածքի անցումը, որտեղ օբյեկտը գտնվում է տվյալ պահին: Տարբեր սենյակներում կան 4 տարբեր սենսորներ, որոնք ներկայացված են որպես (s1, s2, s3, s4): Որոնք են վերահսկում ելքերը, կամ լույսերը տարբեր սենյակներում, օրինակ ՝ լույսը (L1, L2, L3): Սենսորների նախնական վիճակը ոչ ոքի չի հայտնաբերում, ուստի բոլոր լույսերն անջատված են: Հաջորդ վիճակ (1 -ին վիճակ) տեղափոխվելու համար s1- ը պետք է ինչ -որ մեկին հայտնաբերի, s2- ը, s3- ը և s4- ը անջատված կլինեն: Սա կհանգեցնի L1 (միացրեք լույս 1), L2 և L3 անջատված կլինեն: 1 վիճակից 2 -րդ վիճակի անցնելու համար s1, s3 և s4- ը պետք է անջատված լինեն, s2- ը ՝ միացված: Սա կմիացնի L1 և L2- ը: Այս վիճակից հաջորդ վիճակի անցնելու համար s3- ը պետք է միացված լինի և մնացած բոլոր տվիչներն անջատված: Սա կմիացնի L2- ը և L3- ը, L1- ը անջատված կլինի: Վերջնական վիճակին անցնելու համար S4- ը պետք է միացված լինի, իսկ մնացած բոլոր տվիչները `անջատված: Սա կմիացնի միայն L3- ը, մնացած բոլոր լույսերը կանջատվեն: Եթե մարդը մտնում է սենյակ s4 կողմից և դուրս գալիս s1- ից, բոլոր քայլերը կլինեն հակառակ կարգով:

Քայլ 3: BlackBox թվային ժամացույց

BlackBox թվային ժամացույց
BlackBox թվային ժամացույց

Մեր ստեղծած թվային ժամացույցի նպատակն այն է, որ սենսորների լույսերը չակտիվացվեն ցերեկը և աշխատեն միայն այն ժամանակ, երբ օգտագործողը մուտքագրում է: Թվային ժամացույցը տևում է ժամ ՝ մուտքագրման մեջ և mins_in ՝ օգտագործելով basys3 տախտակի անջատիչները, և որպեսզի այն կարողանաք բեռնել տախտակի վրա, պետք է սեղմել (led_btn), որպեսզի այն ցուցադրվի տախտակի վրա: Մենք նաև ավելացրեցինք վերակայման կոճակը (rst_b), որպեսզի կարողանաք նորից վերբեռնել այլ ժամանակ: Քանի որ basys3- ն բավականաչափ տարածք ունի տեղեկատվության 3 տարբեր դեպքեր ցուցադրելու համար, մենք վայրկյաններն իրականացրեցինք հետին պլանում: Այդ նպատակով մենք իրականացրեցինք վայրկյանների անջատիչ, այնպես որ այն ժամանակի ընթացքում միայն կավելանա, երբ օգտագործողը որոշի միացնել (e_sec) մուտքը basys3 տախտակի վրա: Ներքին շրջանակի աշխատանքը թվային ժամացույցի ներսում կազմված է մատիտից, որոնք պահում են մուտքագրված ժամանակը և հաշվիչներից, որոնք ավելացնում են այն ժամանակը, երբ օգտվողը մուտքագրում է միայն այն ժամանակ, երբ (e_sec) միացված է: Մենք կավելացնենք ծածկագիրը, որպեսզի կարողանաք տեսնել, թե ինչպես է այն ճշգրտորեն իրականացվել:

Քայլ 4: Բաղադրիչներ միասին և նկարագրություն

Բաղադրիչներ միասին և նկարագրություն
Բաղադրիչներ միասին և նկարագրություն
Բաղադրիչներ միասին և նկարագրություն
Բաղադրիչներ միասին և նկարագրություն

Վերոնշյալ նկարները ցույց են տալիս, թե ինչպես են բաղադրիչները միացված միմյանց: Այն սկսվում է ՝ մուտքագրելով ժամեր և րոպեներ: Այդ մուտքերից ստացվող ազդանշաններն ուղարկվում են հաշվիչ ժամին և հաշվիչ րոպեներին, որտեղ այն հավաքում է բիթերը և հաշվիչների ելքային ազդանշանն ուղարկվում է SSEG բաղադրիչին, որտեղ բիթերը փոխակերպում է հատուկ նիշերի, որոնք կցուցադրվեն basys3 տախտակին: Այնուամենայնիվ, հաշվիչներից ստացվող ազդանշանը չի ուղարկվի SSEG բաղադրիչին, քանի դեռ օգտվողը չի սեղմել մուտքագրումը (led_btn), դա արվել է, քանի որ մենք չենք ստեղծել FSM թվային ժամացույցի համար: Բացի այդ, մուտքագրված ժամանակը չի ավելանա մինչև մուտքի անջատիչը (e_sec) միացված լինի, քանի որ հակառակ դեպքում վայրկյանների հաշվիչը միշտ կաշխատի հետին պլանում: Երբ հաշվիչի վայրկյանը հասնում է «59» -ի, այն ազդանշան կուղարկի րոպեներին, որպեսզի րոպեներով ավելանա նույնը, քանի որ դա րոպեներից հասնում է ժամերի: Բացի այդ, կան շարժման սենսորների մուտքեր, և ազդանշաններն ուղարկվում են FSM բաղադրիչ, որտեղ այն որոշում է, թե որ վիճակին գնալ ՝ կախված սենսորից: Նրա սկզբնական վիճակն այն է, երբ բոլոր տվիչներն անջատված են: FSM- ի բոլոր նկարագրությունները նկարագրված են 2 -րդ քայլում:

Քայլ 5: Կոդ

Քայլ 6: Ապագա փոփոխություններ

Ապագայում, նախագծի մեջ LED- ների համադրությամբ շարժման սենսորների ավելացումը բարելավում կլինի: Այսպիսով, մենք կարող ենք մեծացնել նախագծի բարդությունը և տեսնել, թե արդյոք կարող ենք ստեղծել շարժման լույսի ժամանակակից տվիչ: Սա ավելի շատ խնդիրներ կստեղծի, քանի որ դուք պետք է մտածեք նաև օբյեկտի հարևանության մասին, որպեսզի լույսերը համապատասխանաբար միանան: Բացի այդ, մյուս բոլոր գործառույթները նախորդում են: Բացի այդ, բարելավելով թվային ժամացույցի գործունակությունը `օգտագործելով FSM- ը` օգտվողին մի քանի վայրկյան սպասելու փոխարեն (e_sec): Թվային ժամացույցի համար FSM- ը նման կլինի շարժման սենսորին:

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

Ընդհանուր առմամբ, այս նախագիծը մեզ օգնեց ավելի լավ հասկանալ, թե ինչպես են գործում վերջնական վիճակի մեքենաները: Բացի այդ, FSM- ի հետ դուք միշտ պետք է հաշվի առնեք, որ դուք պետք է իմանաք, թե ինչ վիճակում եք գտնվում, և երբ եք ցանկանում անցնել այլ վիճակի: Այլ կերպ ասած, դուք պետք է իմանաք, թե որտեղ եք գտնվում տվյալ պահին, և որտեղ կլինեք հետագայում: Հաշվի առնելով, թե որ գործոնները թույլ կտան ձեզ (մուտքերը) փոխվել այլ վիճակի, և ինչ է այն անելու, երբ այն հայտնվի (ելք): Մենք նաև սովորեցինք, թե ինչպես կարելի է տեղեկատվություն պահել basys3- ի տախտակի մեջ `օգտագործելով մատյաններ, որոնք գրանցիչներ են, և ինչպես ավելացնել ժամանակը` օգտագործելով հաշվիչներ, որոնք միավորում են երկուական թվերը միասին:

Քայլ 8

The two_sseg.vhdl = ունիվերսալ_սսեգ_դեկ.վհդ

Ratner, James and Cheng Samuel.. Ratface Engineering.universal_sseg_dec.vhd

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