Բովանդակություն:
- Քայլ 1: Պահանջվող ծրագրակազմ և սարքավորում
- Քայլ 2: Կոդեր (Vivado)
- Քայլ 3. Հասկանալով, թե ինչպես են դրանք միավորվում (VHDL բաղադրիչների սխեմաներ)
- Քայլ 4: Կոդ (Arduino)
- Քայլ 5: Ինչպես են մեր բաղադրիչները տեղավորվում միասին:
- Քայլ 6: Demուցադրություն
- Քայլ 7: Timeամանակն է այն փորձարկել:
Video: Շարժման ցուցիչ/հակահսկվող լույսեր `7 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:51
Այս նախագիծը ստեղծվել է որպես Թվային դիզայնի դասընթացի վերջնական ծրագիր Cal Poly, San Luis Obispo (CPE 133):
Ինչո՞ւ ենք մենք դա անում: Մենք ցանկանում ենք օգնել պահպանել աշխարհում բնական պաշարները: Մեր նախագիծը կենտրոնացած է էլեկտրաէներգիայի խնայողության վրա: Ավելի շատ էլեկտրաէներգիա խնայելով ՝ մենք կկարողանանք պահպանել բնական ռեսուրսները, որոնք օգտագործվում են էլեկտրաէներգիա արտադրելու համար: Սկսելով 2018 թվականը, բնական պաշարները սպառվում են անհավանական արագությամբ: Մենք ցանկանում ենք գիտակցել մեր ազդեցությունը մեր շրջակա միջավայրի վրա և մեր դերը կատարել բնական պաշարների պահպանման գործում: Էլեկտրոնիկան կարող է ներդրվել էներգիայի խնայողության տարբեր եղանակներով, ինչը օգնում է շրջակա միջավայրին, ինչպես նաև մեր տնտեսական վիճակին:*Այս մոդելը ստեղծվել է մեզ հասանելի բաղադրիչների օգտագործմամբ:
Ո՞րն էր մեր ոգեշնչումը: Մարդիկ հաճախ մոռանում են անջատել արձակուրդի լույսերը և վատնել էներգիան ՝ դրանք թողնելով մեկ գիշեր: Իրականում այս նախագիծը կպահպանի էլեկտրաէներգիան, քանի որ «արձակուրդային լույսերը» կվառվեին միայն այն ժամանակ, երբ մարդիկ մոտ են, դրանով իսկ էներգիա կխնայի, երբ մոտակայքում ոչ ոք չկա: Ավելին, մենք ցանկանում էինք ժամաչափ նախագծել, որպեսզի լույսերը որոշակի ժամանակ անց ամբողջությամբ մարվեն `ապահովելու համար, որ դրանք չեն միանա, օրինակ, առավոտյան 3 -ին հայտնաբերված շարժման պատճառով:
Ինչպե՞ս կարող եք օգտագործել այս դիզայնը: Այս դիզայնը կարող է իրականացվել բոլոր տեսակի լույսերի համար `անկախ դեկորատիվ, գործնական կամ երկուսից: Եթե ցանկանում եք, որ ձեր գրասեղանի լույսը միաժամանակ գործի միայն 6 ժամ, օրինակ. Դուք պետք է հաշվիչ սահմանեք 21, 600 վայրկյան (6 ժամ x 3, 600 վայրկյան/ժամ): Մինչ հաշվիչը ակտիվորեն աճում է, շարժման ցուցիչը վերահսկում է լույսը: Այսպիսով, ամեն անգամ, երբ այն անջատվում է այդ ժամանակահատվածում, պարզապես անհրաժեշտ է ձեռքը թափահարել շարժման սենսորի առջև, և այն նորից կվերածվի: Եթե դուք քնում եք ձեր գրասեղանի մոտ և արթնանում 7 ժամ անց, ձեր շարժումը այն չի միացնի:
Քայլ 1: Պահանջվող ծրագրակազմ և սարքավորում
Softwareրագրային ապահովում:
- Vivado 2016.2 (կամ ավելի նոր տարբերակ) կարելի է գտնել այստեղ
- Arduino IDE 1.8.3 (կամ ավելի նոր տարբերակ) կարելի է գտնել այստեղ
Սարքավորումներ:
- 1 Basys 3 տախտակ
- 1 Arduino Uno
- 2 տախտակ
- 1 Ուլտրաձայնային ազդանշանային տվիչ HC-SR04
- 9 Արականից արական լարեր
- 1 LED
- 1 100Ω դիմադրություն
Քայլ 2: Կոդեր (Vivado)
Վերջնական վիճակի մեքենա (տե՛ս վերը նշված պետական դիագրամը)
LED- ը պահանջում էր վերջնական վիճակի մեքենա: LED- ն ունի միացման և անջատման ընդամենը երկու վիճակ: Միայն երկու մուտք են վերահսկում լուսադիոդի, հաշվիչի և տվիչի վիճակը: LED- ը պետք է միացված լինի միայն այն ժամանակ, երբ սենսորը հայտնաբերում է շարժումը և երբ հաշվիչը հաշվում է զրոյից երեսուն վայրկյան: Otherանկացած այլ դեպքում LED- ն անջատված կլինի:
Ֆայլի անունը.: LEDDES
Հաշվիչ:
Հաշվիչը թույլ է տալիս սահմանափակել այն ժամանակը, որի ընթացքում շարժման տվիչը կարող է ակտիվացնել LED- ը: Դրա արժեքը ցուցադրվում է Basys 3 Board- ի յոթ հատվածի ցուցադրման վրա `աղբյուրի կոդի միջոցով (« sseg_dec »): Երբ Վերակայման անջատիչն անջատված է (արժեքը ՝ «0»), հաշվիչը սկսում է ամեն վայրկյան աճել 0 -ից մինչև 30. Երբ այն հասնում է 30 -ի, այն սառեցնում է այդ թվի վրա: Այն չի վերագործարկվի 0 -ից մինչև Reset անջատիչը միացված լինի «1» -ին և վերադառնա «1»: Եթե վերականգնումը «1» դառնա հաշվիչի ընթացքի ընթացքում, հաշվիչը կսառչի այն արժեքի վրա, որին հասել էր: Երբ Վերականգնումը վերադառնա «0», հաշվիչը կվերագործարկվի 0 -ից 30 -ը: Այս իրականացումը պահանջում է նաև ժամացույցի ազդանշանի օգտագործում, որի կոդը տրված է ստորև («clk_div2»):
Ֆայլի անունը.: FinalCounter
ՏՐԱՄԱԴՐՎԱ ՖԱՅԼԵՐ
Յոթ հատվածի ցուցադրում
Այս ծածկագիրը թույլ է տալիս յոթ հատվածի ցուցադրմանը ցուցադրել տասնորդական արժեքներ: Մեկ ենթամոդուլը գործում է որպես ապակոդավորիչ 8-բիթանոց երկուական մուտքագրման և 4-բիթանոց Երկուական կոդավորված տասնորդականի միջև: Մյուսը բաժանում է ժամացույցի ազդանշանը `դրա արժեքը որոշակի արագությամբ թարմացնելու համար:
Ֆայլի անունը.: sseg_dec
Ockամացույցի ազդանշան
Այս ծածկագիրը թույլ է տալիս հաշվիչին ավելացնել 1 վայրկյան ավելացմամբ: Այն բաժանում է մուտքի ժամացույցի հաճախականությունը ավելի դանդաղ հաճախականության: Մենք հարմարվեցինք, որպեսզի ապահովենք 1 վայրկյան ժամանակահատված ՝ փոփոխելով հաստատուն max_count: integer: = (3000000)”դեպի” հաստատուն max_count: integer: = (50000000):
Ֆայլի անունը.: clk_div2
Տրամադրված ֆայլեր ՝ sseg_dec, clk_div2 *Այս աղբյուր ֆայլերը տրամադրել է պրոֆեսոր Բրայան Միլին:
Քայլ 3. Հասկանալով, թե ինչպես են դրանք միավորվում (VHDL բաղադրիչների սխեմաներ)
Հիմնական ֆայլը («MainProjectDES») պարունակում է նախկինում քննարկված բոլոր ենթաֆայլերը: Նրանք միացված են վերը նշված եղանակով: Տարբեր բաղադրիչները փոխկապակցված են նավահանգիստների քարտեզների միջոցով `ազդանշան մի տարրից մյուսը ուղարկելու համար:
Ինչպես երևի նկատել եք, FinalCounter- ն ապահովում է 5-բիթանոց ելք, իսկ sseg_dec- ն ՝ 8-բիթանոց: Փոխհատուցման համար մենք սահմանում ենք երկու բաղադրիչներին միացնող ազդանշանը `սկսելով« 000 »-ով և հաշվիչից 5-բիթանոց ելքով: Այսպիսով ապահովելով 8-բիթ մուտքագրում:
Սահմանափակումներ:
Այս կոդերը Basys 3 Board- ում գործարկելու համար պահանջվում էր սահմանափակումների ֆայլ, որը յուրաքանչյուր ազդանշանին պատմում էր, թե ուր գնալ և ինչպես էին մասերը միացված:
Քայլ 4: Կոդ (Arduino)
Մենք ծրագրավորեցինք Arduino Uno- ն ՝ օգտագործելով շարժման սենսորը ՝ շարժումը հայտնաբերելու և ելք ապահովելու համար, որն ազդանշան է տալիս LED- ի լուսավորմանը: Բացի այդ, շարժիչը հայտնաբերելու համար սենսորից օգտվելը պահանջում է վազող հանգույցներ, որոնք անընդհատ հեռավորության փոփոխություն են փնտրում: Ըստ էության, այն պետք է մի ժամաչափ, որը միաժամանակ աշխատի, որպեսզի LED- ն լուսավորվի «բարձր» ազդանշան, իսկ ժամաչափը պետք է վերակայվի, երբ նոր շարժում հայտնաբերվի, ինչը գրեթե անհնար է իրականացնել Vivado- ի վրա ՝ հիմնված գիտելիքների շրջանակի վրա: դասարանից: Ավելին, մենք օգտագործեցինք Arduino- ն, քանի որ անհնար կլիներ օգտագործել HC-SR04- ը Basys 3 տախտակի հետ, քանի որ տախտակն ապահովում է միայն 3.3 Վ լարման դեպքում, իսկ սենսորը պահանջում է 5 Վ լարման աղբյուր: Հայտնաբերող շարժման իրականացման համար դա իրական կոդավորում է ՝ ի տարբերություն VHDL- ի CAD- ի:
Մենք օգտագործեցինք զարկերակային ներկառուցված գործառույթը սենսորի համար, որպեսզի ստանանք սենսորից ի սկզբանե արձակվող ձայնի և առարկային հարվածելիս հետ վերադարձվող ձայնի միջև ընկած ժամանակը: Հետո մենք օգտագործում ենք ձայնի արագությունը և ժամանակի միջակայքը ՝ օբյեկտի և տվիչի միջև հեռավորությունը հաշվարկելու համար: Դրանից մենք պահում ենք ընթացիկ հեռավորությունը և հետևում դրան: Մենք ստուգում ենք հեռավորությունը յուրաքանչյուր 150 մմ: Մենք նաև օգտագործեցինք elapsedmil գրադարանը `arduino- ի ներսում ներքին ժամաչափ գործարկելու համար` անցած ժամանակը հետևելու համար: Եթե մենք հայտնաբերենք հեռավորության փոփոխություն, որը համապատասխանում է շարժմանը, ժմչփը զրոյի է դրվում և լույսը կպահի մինչև 3 վայրկյան անցնելը: Ամեն անգամ, երբ սենսորը հայտնաբերում է մեկ այլ շարժում, ժամաչափը զրոյականացվում է 0 -ի վրա և LED լույսի ազդանշանը հաջորդ 3 վայրկյանում «բարձր» կլինի: Ստորև մենք կցել ենք մեր Arduino կոդի պատճենը:
Քայլ 5: Ինչպես են մեր բաղադրիչները տեղավորվում միասին:
Ինչպես տեսնում եք «Basys3: Pmod Pin-out Diagram*»-ում և Arduino Uno Board- ի լուսանկարում, մենք ընդգծեցինք և մակնշեցինք մեր օգտագործած նավահանգիստները:
1. LED և Basys 3 տախտակ
LED- ն միացված է շարքում 100Ω դիմադրիչի հետ: -Սպիտակ մետաղալարը դիմադրիչը միացնում է Basys 3 տախտակի PWR կապին: -Դեղին մետաղալարն LED- ն միացնում է Basys 3 տախտակի H1 կապին:
2. Շարժման ցուցիչ և Arduino Uno
-Նարնջագույն մետաղալարը միացնում է շարժման սենսորի Vcc (հզորությունը) Arduino Uno տախտակի 5V- ին: շարժման տվիչը Arduino Uno տախտակի 9-րդ կապում: -Սև մետաղալարը միացնում է շարժման տվիչի GND- ը Arduino Uno տախտակի GND- ին:
[Մեր օգտագործած լարերը չափազանց կարճ էին բաղադրիչներին հասնելու համար, ուստի դրանք փոխկապակցված էին]
3. Basys 3 Board- ը և Arduino Uno- ն
Դեղին մետաղալարը կապում է Basys 3 տախտակի A14 կապը Arduino Uno տախտակի 6 -րդ կապին:
*Այս դիագրամը վերցված է Digilent- ի «Basys 3 ™ FPGA Board Reference Manual» - ից, որը կարելի է գտնել այստեղ:
Քայլ 6: Demուցադրություն
Քայլ 7: Timeամանակն է այն փորձարկել:
Շնորհավորում եմ: Դուք հասցրել եք ավարտել մեր շարժման տվիչների և հաշվիչով վերահսկվող լուսավորության նախագիծը: Անչափ շնորհակալ ենք մեր Instructables գրառումը կարդալու համար: Այժմ ժամանակն է, որ դուք ինքներդ փորձեք կառուցել այս նախագիծը: Եթե դուք ուշադիր հետևեք յուրաքանչյուր քայլին, դուք պետք է ունենաք շարժման տվիչ և հաշվիչ, որը վերահսկում է մեր լույսը: Մաղթում ենք ձեզ հաջողություն այս ծրագրի կառուցման գործում և հուսով ենք, որ այն կարող է նպաստել էլեկտրաէներգիայի և բնական ռեսուրսների խնայողությանը:
Խորհուրդ ենք տալիս:
Էներգաարդյունավետ շարժման ակտիվացված փողոցային լույսեր `8 քայլ
Էներգաարդյունավետ շարժման ակտիվացված փողոցային լույսեր. Այս ծրագրի նպատակն էր ստեղծել մի բան, որը կխնայի համայնքների էներգիան և ֆինանսական ռեսուրսները: Շարժման միջոցով ակտիվացված փողոցային լույսերը կանեն այս երկուսն էլ: Ամբողջ երկրում էներգիան մսխվում է փողոցները լուսավորող լուսատուների վրա
Շարժման գործարկվող լույսեր `5 քայլ
Շարժման խթանված լույսեր. Այս ուղեցույցը ցույց կտա ձեզ, թե ինչպես օգտագործել FPGA- ն շարժման սենսոր ստեղծելու համար, որը տևում է տարբեր գույնի լույս, քանի դեռ կա շարժում: Կարմիր, կապույտ և կանաչ մակարդակները վերահսկվում են ՝ յուրաքանչյուր առանձին գույնի արժեք սահմանելով: Այս նախագիծը
Բակի ինտերակտիվ լույսեր, հետիոտնային լույսեր `3 քայլ
Բակի ինտերակտիվ լույսեր, հետիոտնային լույսեր. Ես ուզում էի ինչ -որ ինտերակտիվ բակի լույսեր կառուցել իմ հետևի բակի համար: Գաղափարն այն էր, որ երբ ինչ -որ մեկը քայլում էր մեկ ճանապարհով, դա անիմացիա կբարձրացներ այն ուղղությամբ, որով դուք գնում էիք: Ես սկսեցի Dollar General- ի 1.00 $ արևային լույսերով
Ո՞վ է իմ դռան մոտ: PIR Շարժման ցուցիչ/միջակայքի ցուցիչ `5 քայլ
Ո՞վ է իմ դռան մոտ: PIR Շարժման սենսոր/Շարժման սենսորային նախագիծ. Մեր նախագիծը նպատակ ունի զգալ շարժումը PIR և հեռավորության տվիչների միջոցով: Arduino ծածկագիրը կտա տեսողական և ձայնային ազդանշան ՝ օգտագործողին մոտակայքում հայտնելու համար: MATLAB ծածկագիրը կուղարկի էլեկտրոնային փոստի ազդանշան ՝ օգտագործողին զգուշացնելու համար, որ ինչ -որ մեկը մոտ է: Այս սարքը
Երաժշտության ներքո տեղադրված DIY ամանորյա լույսեր - խորեոգրաֆիայի տան լույսեր. 15 քայլ (նկարներով)
DIY Սուրբ Christmasննդյան լույսեր ՝ երաժշտության ներքո - Խորեոգրաֆիայի տան լույսեր. DIY Ամանորյա լույսեր ՝ երաժշտության ներքո - Խորեոգրաֆիայի տան լույսեր Սա ոչ թե սկսնակ DIY է: Ձեզ անհրաժեշտ կլինի էլեկտրոնիկայի, շրջանառության, ՀԻՄՆԱԿԱՆ ծրագրավորման և էլեկտրական անվտանգության վերաբերյալ ընդհանուր խելամիտ գիտելիքներ: Այս DIY- ը փորձառու մարդու համար է, այնպես որ