Բովանդակություն:
- Քայլ 1: erամաչափ
- Քայլ 2: Կոճակների օպտիմիզացում
- Քայլ 3: LED
- Քայլ 4: Վերևի ֆայլ
- Քայլ 5: Սահմանափակումների ֆայլ
- Քայլ 6. Միացնել PIR շարժման տվիչը
- Քայլ 7: LED- ի միացում Breadboard- ում
- Քայլ 8. Basys Board Connections
Video: Շարժման սենսորային LED: 8 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:50
Նախապատմություն:
Երբևէ մոռացե՞լ եք լույսը անջատել նախքան դասի կամ աշխատանքի մեկնելը կամ քնելուց առաջ: Այն ժամերը, երբ լույսերը միացված են, երբ դրանք չեք օգտագործում, իսկապես կարող են գումարել ծախսերի և էներգիայի կորուստների մեջ: Օրինակ, ըստ solarcity.com- ի, ամբողջ գիշեր լույսերը վառած թողնելը կարող է 25 դոլար ավելացնել ձեր էլեկտրաէներգիայի հաշվին: Մեր CPE133 նախագծի համար մենք նախագծում ենք շարժման տվիչների լույս, որը կօգնի մարդկանց էներգիա խնայել իրենց տներում և արդյունավետ օգտագործել իրենց լույսերը:
Մեր համակարգը գործնականում
Գործնականում լույսերը միանում էին միայն այն ժամանակ, երբ սենսորը հայտնաբերում էր շարժումը սենյակում: Այնուհետև լույսերը կմնան որոշ ժամանակ, օրինակ ՝ մոտ 30 րոպե, և այնուհետ ինքնաբերաբար կանջատեն: Բայց ենթադրենք, որ դուք պարզապես անցնում էիք այնտեղով կամ ցանկանում էիք շուտ լքել սենյակը նախքան սահմանված ժամանակի ավարտը: Այդ դեպքերի համար մենք տեղադրեցինք մի կոճակ, որտեղ դուք կարող եք ձեռքով միացնել կամ անջատել լույսերը: Նկատի ունեցեք, որ լույսերը կմնան 30 րոպե նույնիսկ այն դեպքում, երբ լույսերը միացված են ձեռքով կամ ավտոմատ կերպով (եթե լույսերը ձեռքով չեն անջատվում):
Ինքնաթիռի մոդելավորում
Seeամաչափը աշխատելու համար մենք փոխեցինք ժամաչափը 1 րոպեի:
Նյութեր:
- 1 Basys տախտակ (դուք կարող եք գտնել այստեղ Digilent- ից)
- 1 PIR շարժման տվիչ (կարող եք գտնել այստեղ ՝ Amazon- ում)
- 1 տախտակ և հավաքածու (մենք առաջարկում ենք օգտագործել այս մեկը Amazon- ից)
-
Վերևի հավաքածուից
- 1 LED
- 3 ցատկող կանացի և տղամարդու մալուխներ
- 6 արականից արական jumper մալուխներ
Քայլ 1: erամաչափ
Որպեսզի LED- ը մնա 1 րոպե, մենք նախ պետք է ստեղծենք ժմչփ: Basys 3 տախտակն ունի 100 ՄՀց ներքին հաճախականություն, դրանով իսկ 100 միլիոն ցիկլը հավասար է 1 վայրկյանի: Այնուհետև սա օգտագործվում է որպես փոփոխական, որը հանդես կգա որպես առավելագույն թիվ «t_cnt» - ի համար: T_cnt- ը ավելանում է 1 -ով, քանի որ Basys 3 տախտակն ավարտում է ցիկլը: 100 միլիոն նշագծին հասնելուց հետո այն կվերակայվի, և մեկ այլ փոփոխական ՝ «վրկ», կավելանա 1 -ով: Այս «վրկ» փոփոխականը ներկայացնում է անցած վայրկյանների թիվը, և երբ այդ փոփոխականը հավասար է 60 -ի, լրացել է ամբողջ րոպեն:
Ստորև բերված կոդը պատճենեք ժամանակաչափ անունով vhdl աղբյուրի ֆայլում:
միավոր COUNT_8B է
նավահանգիստ (RESET: std_logic;
CLK: std_logic- ում; T: out std_logic: = '0');
վերջ COUNT_8B;
ճարտարապետության իմ_հաշիվը COUNT_8B է
հաստատուն max_count: ամբողջ թիվ: = (100000000); -ազդանշան t_cnt: std_logic_vector (7 դեպի 0): = "00000000"; ազդանշան t_cnt: integer: = (0); սկսել գործընթացը (CLK, RESET, t_cnt) փոփոխական վրկ. ամբողջական ՝ = 0; սկսեք եթե (բարձրանում_եզր (CLK)) ապա եթե (RESET = '1') ապա t_cnt <= (0); - մաքրել elsif (t_cnt = max_count) ապա- max_count- ը 100 միլիոն է, որը հավասար է 1 վայրկյան t_cnt <= (0); - Վերականգնում է ներքին ժամացույցը 0 վրկ. = Վրկ + 1; - Բարձրացնում է մեր «դանդաղ ժամացույցը» 1-ով, եթե (վրկ = 60) այն ժամանակ- Երբ այն հասնում է 60 վայրկյանի, ապա այն հասնում է առավելագույն ժամանակի վրկ. = 0; - վերականգնում է «դանդաղ ժամացույցը» 0 T <= '1'; ավարտ, եթե; այլապես t_cnt <= t_cnt + 1; - ավելացնում է ներքին ժամացույցը T <= '0'; ավարտ, եթե; ավարտ, եթե; ավարտի գործընթացը; ավարտել իմ_հաշիվը;
Քայլ 2: Կոճակների օպտիմիզացում
Քանի որ Basys- ի տախտակներում հաճախականությունը այնքան բարձր է (մոտ 100 ՄՀց), երբ սեղմում եք Basys- ի տախտակին այն, ինչը, ձեր կարծիքով, կարճ ժամանակ է, ապա այն կսեղմեք 100,000 անգամ: Սա հանգեցնում է նրան, որ լույսը արագ թրթռում է միացված և անջատված վիճակի միջև: Մենք փորձեցինք օպտիմալացնել կոճակը `ստեղծելով վիճակի դիագրամ` թարթումը նվազեցնելու համար:
D-flip-flops- ը կպահի յուրաքանչյուր վիճակ, այնուհետև գործընթացի հայտարարության մեջ մենք կճշտենք վիճակի անցումները:
Ստորև պատճենեք կոդը կոճակ անունով vhdl աղբյուրի ֆայլում:
գրադարան IEEE; օգտագործել IEEE. STD_LOGIC_1164. ALL;
անձի կոճակն է
Պորտ (btn: STD_LOGIC; clk: STD_LOGIC; E: STD_LOGIC); ավարտի կոճակ;
ճարտարապետություն Կոճակի վարքագիծն է
տիպի state_type (PRESSED, NP); ազդանշան PS, NS: state_type: = NP;
սկսել
seq_proc: գործընթացը (NS, clk) սկսվում է, եթե (բարձրանալու_սահման (clk)) ապա PS <= NS; ավարտ, եթե; ավարտել գործընթացը seq_proc;
ns_proc: գործընթաց (btn, PS)
սկզբի դեպքում PS- ն այն է, երբ NP => if (btn = '1') ապա NS <= ՍՊԱՍՎԱ; Ե <= '1'; այլապես NS <= NP; E եթե (btn = '0') ապա NS <= NP; E <= '0'; այլապես NS <= ՍՊԱՍՎԱ; E <= '0'; ավարտ, եթե; վերջնական գործ; ավարտել գործընթացը ns_proc;
վերջ Վարքագծային;
Քայլ 3: LED
LED- ն ունի երկու վիճակ ՝ OFF (կամ IDLE) և ON: Ինչպես արդեն ասվեց, պետությունները պահվում են d-flip-flop- ում: Լույսը կվերածվի, եթե սենսորը հայտնաբերի շարժում (S = 1) կամ երբ կոճակը սեղմվի (E = 1): LED- ն ինքնաբերաբար անջատվելու է, եթե ժամաչափը հասնում է 1 րոպեի (T = 1) կամ ձեռքով, երբ կոճակը սեղմվում է (E = 1):
Ստորև պատճենեք LED անունով vhdl աղբյուրի ֆայլը:
սուբյեկտի motion_sensored_light- ը Port է (S: STD_LOGIC; - sesnor; Port JA10/Pin G3 E: STD_LOGIC; - մեխանիկական գործառույթի արտաքին կոճակ; կենտրոնի կոճակ T: STD_LOGIC; - երբ ժամաչափը հասնում է առավելագույն ժամանակին; ժամաչափի LED- ից ՝ STD_LOGIC; - թեթև TRST ՝ դուրս STD_LOGIC; - վերականգնում է ժամաչափի ժամաչափը ՝ STD_LOGIC- ում); - clk մատով խափանման համար, որը պահում է շարժման_սենսորային_լույսի ծայրերը.
ճարտարապետություն Շարժման_զգացված_լույսի վարքագիծն է
տեսակը state_type (ST0, ST1); --ST0 = IDLE, ST1 = LED HIGH
ազդանշան PS, NS: state_type: = ST0; - ՆԵՐԿԱ ՊԵՏԱԿԱՆ ԵՎ ՀԱEՈՐԴ ՊԵՏԱԿԱՆ, սկսվում է ST0 IDLE- ում
սկսել
- մատնահետքի գործընթացի բլոկ- ժամացույցի բարձրացման եզրին թարմացումների վիճակը seq_proc. սկսվում է գործընթացը (NS, clk)- d մատով խփված, որը պահում է if (բարձրանալու_ եզր (clk)), ապա PS <= NS; ավարտ, եթե; ավարտել գործընթացը seq_proc;
ns_proc: գործընթաց (S, E, T, PS)
սկզբի դեպքում PS- ն այն է, երբ ST0 => LED <= '0'; - ելքեր անգործուն վիճակի համար TRST <= '1'; if (S = '0' OR E = '1') ապա - մուտքագրումներ `st0- ից st1- ից NS <= ST1 անցնելու համար; այլ NS LED <= '1'; - արդյունքներ պետական TRST- ի համար <= '0'; if (E = '1' OR T = '1') ապա - մուտքագրումներ դեպի st1- ից st0- ից անցում դեպի NS <= ST0; այլապես NS <= ST1; ավարտ, եթե; վերջնական գործ; ավարտել գործընթացը ns_proc;
վերջ Վարքագծային;
Քայլ 4: Վերևի ֆայլ
Այժմ մենք մտադիր ենք քարտեզագրել մեր մյուս բոլոր ֆայլերը մեկում:
Ստորև պատճենեք պատճենը vhdl աղբյուրի ֆայլում ՝ Top_File անունով:
գրադարան IEEE; օգտագործել IEEE. STD_LOGIC_1164. ALL;
անձ Top_File- ն է
Նավահանգիստ (S: in STD_LOGIC: = '1'; - sesnor; Port JA10/Pin G3 btn: in STD_LOGIC: = '0'; - ձեռքի գործառույթի արտաքին կոճակ; Կենտրոնի կոճակ LED. Դուրս STD_LOGIC; - թեթև clk ՝ STD_LOGIC- ում); - clk մատով, որը պահում է նահանգների վերջը Top_File;
ճարտարապետություն Top_File- ի վարքագծային է
COUNT_8B բաղադրիչն է
նավահանգիստ (RESET: std_logic: = '0'; CLK: std_logic; T: out std_logic: = '0'); վերջնական բաղադրիչ; բաղադրիչ motion_sensored_light- ը Պորտ է (S: STD_LOGIC; - sesnor; Port JA10/Pin G3 E: STD_LOGIC; - մեխանիկական գործառույթի արտաքին կոճակ; կենտրոնի կոճակ T: STD_LOGIC; - երբ ժամաչափը հասնում է առավելագույն ժամանակին; ժամաչափի LED- ից ՝ STD_LOGIC; - թեթև TRST ՝ դուրս STD_LOGIC; - վերականգնում է ժամաչափի ժամաչափը ՝ STD_LOGIC- ում); - clk ֆլիպ-ֆլոպի համար, որը պահում է պետությունների վերջնական բաղադրիչը. բաղադրիչի կոճակը Պորտ է (btn: STD_LOGIC; clk: STD_LOGIC; E: STD_LOGIC); վերջնական բաղադրիչ; ազդանշան t_reached_c: std_logic; - ազդանշան r_time_c: std_logic; - ազդանշան button_c: std_logic;
սկսել
ժամաչափ ՝ COUNT_8B նավահանգստի քարտեզ (RESET => r_time_c, CLK => CLK, T => t_reached_c); motion_sensor: motion_sensored_light նավահանգստի քարտեզ (S => S, E => button_c, T => t_reached_c, LED => LED, TRST => r_time_c, clk => clk); button_controller: կոճակի նավահանգստի քարտեզ (btn => btn, clk => clk, E => button_c); վերջ Վարքագծային;
Քայլ 5: Սահմանափակումների ֆայլ
Այժմ մենք պետք է սահմանենք, թե որտեղ են լինելու մեր մուտքերն ու ելքերը գրատախտակին:
Ստորև պատճենեք ծածկագիրը սահմանափակումներ անունով vhdl սահմանափակումների ֆայլում:
## Այս ֆայլը ընդհանուր.xdc է Basys3 rev B տախտակի համար ## Այն նախագծում օգտագործելու համար. ## - մեկնաբանել օգտագործված կապումներին համապատասխանող տողերը ## - վերանվանել օգտագործված նավահանգիստները (յուրաքանչյուր տողում, get_ports- ից հետո) ըստ նախագծի ամենաբարձր մակարդակի ազդանշանների անուններին
## ockամացույցի ազդանշան
set_property PACKAGE_PIN W5 [get_ports clk] set_property IOSTANDARD LVCMOS33 [get_ports clk] create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports clk] ## Switches #set_propertIN PACKAGE set_property IOSTANDARD LVCMOS33 [ստանալ_պորտ {sw [0]}] #set_property PACKAGE_PIN V16 [get_ports {sw [1]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [1]}] #set_property PACKAGE_PIN sw16 [get] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [2]}] #set_property PACKAGE_PIN W17 [get_ports {sw [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [3]}] #set_property PACKAGE_PIN W15 [get_ports]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [4]}] #set_property PACKAGE_PIN V15 [get_ports {sw [5]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [5]}] #set_property PACKAGE_PIN W14 [6]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [6]}] #set_property PACKAGE_PIN W13 [get_ports {sw [7]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [7]}] #set_property PACKAGE_PIN V2 [get_ports {sw [8]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [8]}] #set_property PACKAGE_PIN T3 [get_ports {sw [9]}] #set_property IOST LVCMOS33 [get_ports {sw [9]}] #set_property PACKAGE_PIN T2 [get_ports {sw [10]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [10]}] #set_property PACKAGE_PIN R3 [get_ports {sw [11]}] # set_property IOSTANDARD LVCMOS33 [ստանալ_պորտներ {sw [11]}] #set_property PACKAGE_PIN W2 [get_ports {sw [12]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [12]}] #set_property PACKAGE_PIN U1 [13] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [13]}] #set_property PACKAGE_PIN T1 [get_ports {sw [14]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [14]}] #set_property PACKAGE_PIN R2 [get_ports]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [15]}]
## լուսադիոդներ
#set_property PACKAGE_PIN U16 [get_ports {led [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [0]}] #set_property PACKAGE_PIN E19 [get_ports {led [1]}] #set_property IOSTANDARD LVCMOS33 [get }] #set_property PACKAGE_PIN U19 [get_ports {led [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [2]}] #set_property PACKAGE_PIN V19 [get_ports {led [3]}] #set_property IOSTANDARD LVCMOS 3]}] #set_property PACKAGE_PIN W18 [get_ports {led [4]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [4]}] #set_property PACKAGE_PIN U15 [get_ports {led [5]}] #set_property IOSTANDARD LVCM led [5]}] #set_property PACKAGE_PIN U14 [get_ports {led [6]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [6]}] #set_property PACKAGE_PIN V14 [get_ports {led [7]}] #set_property IOSTANDARD LV get_ports {led [7]}] #set_property PACKAGE_PIN V13 [get_ports {led [8]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [8]}] #set_property PACKAGE_PIN V3 [get_ports {led [9]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [9]}] #set_property PACKAGE_PIN W3 [get_ports {led [10]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [10]}] #set_property PACKAGE_PIN [11]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [11]}] #set_property PACKAGE_PIN P3 [get_ports {led [12]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [12]}] #set_property PACKAGE_PP {led [13]}] #set_property IOSTANDARD LVCMOS33 [ստանալ_պորտ {led [13]}] #set_property PACKAGE_PIN P1 [get_ports {led [14]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [14]}] #set_property PACKAGE [get_ports {led [15]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [15]}] ## 7 հատվածի ցուցադրում #set_property PACKAGE_PIN W7 [get_ports {seg [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {seg [0]}] #set_property PACKAGE_PIN W6 [get_ports {seg [1]}] #set_property IOSTANDARD LVCMOS33 [get_ports {seg [1]}] #set_property PACKAGE_PIN U8 [get_ports {seg [2]}] #set_property IOSTA NDARD LVCMOS33 [ստանալ_պորտ {seg [2]}] #set_property PACKAGE_PIN V8 [get_ports {seg [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {seg [3]}] #set_property PACKAGE_PIN U5 [4]} seg [4]} #set_property IOSTANDARD LVCMOS33 [ստանալ_պորտ {seg [4]}] #set_property PACKAGE_PIN V5 [get_ports {seg [5]}] #set_property IOSTANDARD LVCMOS33 [get_ports {seg [5]}] #set_property PACKAGE_PIN }] #set_property IOSTANDARD LVCMOS33 [get_ports {seg [6]}]
#Set_property PACKAGE_PIN V7 [ստացեք_մեկ dp]
#Set_property IOSTANDARD LVCMOS33 [ստանալ_պորտներ dp]
#Set_property PACKAGE_PIN U2 [ստացեք_պորտներ {և [0]}]
#set_property IOSTANDARD LVCMOS33 [ստանալ_մեկնարկներ {և [0]}] #հավաքել_շարժողություն PACKAGE_PIN U4 [ստանալ_պատրաստել {կամ [1]}] #հավաքել_շարժողություն IOSTANDARD LVCMOS33 [ստանալ_հրապարակներ {կամ [1]}] #Set_property PACKAGE_PIN {4] [ստանալ] }] #set_property IOSTANDARD LVCMOS33 [ստանալ_մեկնարկներ {և [2]}] #հավաքածուներ_փողարկում PACKAGE_PIN W4 [ստանալ_պորտեր {կամ [3]}] #հավաքել_շարժողություն IOSTANDARD LVCMOS33 [ստանալ_պորտ {և [3]}]
## Կոճակներ
set_property PACKAGE_PIN մինչեւ 18 տարեկանների [get_ports կճկ] set_property IOSTANDARD LVCMOS33 [get_ports կճկ] #set_property PACKAGE_PIN T18 [get_ports btnU] #set_property IOSTANDARD LVCMOS33 [get_ports btnU] #set_property PACKAGE_PIN W19 [get_ports btnL] #set_property IOSTANDARD LVCMOS33 [get_ports btnL] #set_property PACKAGE_PIN T17 [get_ports btnR] #set_property IOSTANDARD LVCMOS33 [get_ports btnR] #set_property PACKAGE_PIN U17 [get_ports btnD] #set_property IOSTANDARD LVCMOS33 [get_ports btnD]
## Pmod վերնագիր JA
## Sch name = JA1 #set_property PACKAGE_PIN J1 [get_ports {JA [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JA [0]}] ## Sch name = JA2 #set_property PACKAGE_PIN L2 [get_ports {JA [1] #set_property IOSTANDARD LVCMOS33 [get_ports {JA [1]}] ## Sch name = JA3 #set_property PACKAGE_PIN J2 [get_ports {JA [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JA [2]}] # #Sch անուն = JA4 #set_property PACKAGE_PIN G2 [get_ports {JA [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JA [3]}] ## Sch name = JA7 #set_property PACKAGE_PIN H1 [get_ports {JA [4]}] #set_pro LVCMOS33 [get_ports {JA [4]}] ## Sch name = JA8 set_property PACKAGE_PIN K2 [get_ports LED] set_property IOSTANDARD LVCMOS33 [get_ports LED] ## Sch name = JA9 #set_property PACKAGE_PIN H2 [6]} {JA] set_property IOSTANDARD LVCMOS33 [get_ports {JA [6]}] ## Sch name = JA10 set_property PACKAGE_PIN G3 [get_ports S] set_property IOSTANDARD LVCMOS33 [get_ports S]
## Pmod վերնագիր JB
## Sch name = JB1 #set_property PACKAGE_PIN A14 [get_ports {JB [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JB [0]}] ## Sch name = JB2 #set_property PACKAGE_PIN A16 [get_ports {JB [1] #set_property IOSTANDARD LVCMOS33 [ստանալ_պորտեր {JB [1]}] ## Sch name = JB3 #set_property PACKAGE_PIN B15 [get_ports {JB [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JB [2]}] # #Sch անուն = JB4 #Set_property PACKAGE_PIN B16 [get_ports {JB [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JB [3]}] ## Sch name = JB7 #set_property PACKAGE_PIN A15 [get_ports {JB [4]}] #set_pro LVCMOS33 [get_ports {JB [4]}] ## Sch name = JB8 #set_property PACKAGE_PIN A17 [get_ports {JB [5]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JB [5]}] ## Sch name = JB9 #set_property PACKAGE_PIN C15 [get_ports {JB [6]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JB [6]}] ## Sch name = JB10 #set_property PACKAGE_PIN C16 [get_ports {JB [7]}] #set_property IOSTANDARD LV JB [7]}]
## Pmod վերնագիր JC
## Sch name = JC1 #set_property PACKAGE_PIN K17 [get_ports {JC [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JC [0]}] ## Sch name = JC2 #set_property PACKAGE_PIN M18 [get_ports {JC [1] #set_property IOSTANDARD LVCMOS33 [get_ports {JC [1]}] ## Sch name = JC3 #set_property PACKAGE_PIN N17 [get_ports {JC [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JC [2]}] ## Sch անուն = JC4 #set_property PACKAGE_PIN P18 [get_ports {JC [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JC [3]}] ## Sch name = JC7 #set_property PACKAGE_PIN L17 [get_ports {JC [4]}] #set_pro LVCMOS33 [get_ports {JC [4]}] ## Sch name = JC8 #set_property PACKAGE_PIN M19 [get_ports {JC [5]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JC [5]}] ## Sch name = JC9 #set_property PACKAGE_PIN P17 [get_ports {JC [6]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JC [6]}] ## Sch name = JC10 #set_property PACKAGE_PIN R18 [get_ports {JC [7]}] #set_property IOSTANDARD LV JC [7]}]
## Pmod վերնագիր JXADC
## Sch name = XA1_P #set_property PACKAGE_PIN J3 [get_ports {JXADC [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC [0]}] ## Sch name = XA2_P #set_property PACKAGE_PIN J3 [get] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC [1]}] ## Sch name = XA3_P #set_property PACKAGE_PIN M2 [get_ports {JXADC [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC# 2] = XA4_P #set_property PACKAGE_PIN N2 [get_ports {JXADC [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC [3]}] ## Sch name = XA1_N #set_property PACKAGE_PIN K3 [get_ports] Jpert_pro] GARD_pro [JPC] LVCMOS33 [get_ports {JXADC [4]}] ## Sch name = XA2_N #set_property PACKAGE_PIN M3 [get_ports {JXADC [5]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC [5]}] # #Sch name = XA3_N PACKAGE_PIN M1 [get_ports {JXADC [6]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC [6]}] ## Sch name = XA4_N #set_property PACKAGE_PIN N1 [get_ports {JXADC [7]}] #set_33perty [ստանալ_պորտ {JXADC [7]}]
## VGA միակցիչ
#set_property PACKAGE_PIN G19 [get_ports {vgaRed [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaRed [0]}] #set_property PACKAGE_PIN H19 [get_ports {vgaRed [1]}] #set_property IOST }] #set_property PACKAGE_PIN J19 [get_ports {vgaRed [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaRed [2]}] #set_property PACKAGE_PIN N19 [get_ports {vgaRed [3]}] #set_property 2] vgaBlue [1]}] #set_property PACKAGE_PIN K18 [get_ports {vgaBlue [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaBlue [2]}] #set_property PACKAGE_PIN J18 [get_ports {vgaBlue] get_ports {vgaBlue [3]}] #set_property PACKAGE_PIN J17 [get_ports {vgaGreen [0]}] #set_property IOSTANDARD LVCMOS33 [get_p orts {vgaGreen [0]}] #set_property PACKAGE_PIN H17 [get_ports {vgaGreen [1]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaGreen [1]}] #set_property PACKAGE_PIN G17 [get_ports] vpertyGreen [2] LVCMOS33 [get_ports {vgaGreen [2]}] #set_property PACKAGE_PIN D17 [get_ports {vgaGreen [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaGreen [3]}] #set_property PACKAGE_PIN PROVIN_PIN P31VPARDMIN_PINPROPD_PARD Hsync] #set_property PACKAGE_PIN R19 [get_ports Vsync] #set_property IOSTANDARD LVCMOS33 [get_ports Vsync]
## USB-RS232 միջերես
#set_property PACKAGE_PIN B18 [get_ports RsRx] #set_property IOSTANDARD LVCMOS33 [get_ports RsRx] #set_property PACKAGE_PIN A18 [get_ports RsTx] #set_property IOSTANDARD LVCMOS33 [get_ports RsTx]
## USB HID (PS/2)
#set_property PACKAGE_PIN C17 [get_ports PS2Clk] #set_property IOSTANDARD LVCMOS33 [get_ports PS2Clk] #set_property PULLUP true [get_ports PS2Clk] #set_property PACKAGE_PIN B17 [get_ports PS2_Pata2
## Quad SPI Flash
## Նշեք, որ CCLK_0- ը չի կարող տեղադրվել 7 սերիայի սարքերում: Դուք կարող եք մուտք գործել դրան ՝ օգտագործելով ## STARTUPE2 պարզունակ: #set_property PACKAGE_PIN D18 [get_ports {QspiDB [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {QspiDB [0]}] #set_property PACKAGE_PIN D19 [get_ports {QspiDB [1]}] #set_property }] #set_property PACKAGE_PIN G18 [get_ports {QspiDB [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {QspiDB [2]}] #set_property PACKAGE_PIN F18 [get_ports {QspiDB [3]} IOS_PRO33 3]}] #set_property PACKAGE_PIN K19 [get_ports QspiCSn] #set_property IOSTANDARD LVCMOS33 [get_ports QspiCSn]
Քայլ 6. Միացնել PIR շարժման տվիչը
PIR շարժման տվիչը ունի երեք կապում `համապատասխանաբար ուժ, gnd և ահազանգ (տես առաջին նկարը): Այս հրահանգում առաջարկվող շարժման տվիչը կարող է անմիջապես միանալ հացատախտակին: Բայց մեր օգտագործած սենսորի համար մենք պետք է կտրեինք և քանդեինք լարերը, այնուհետև կպցրեինք մերկացած ծայրերը, որպեսզի դրանք չփչանան: Գրատախտակի վրա տեղադրեք արուից իգական ցատկող մետաղալար ՝ հոսանքի և գրունտի կապումներով, այնուհետև ՝ արուից դեպի արու ցատկող մետաղալարեր ՝ ահազանգի շարանով (տես երկրորդ նկարը):
Քայլ 7: LED- ի միացում Breadboard- ում
Միացրեք LED- ը տախտակի մեջ: Սերիայի մեջ տեղադրեք սև արուից արու ցատկող մալուխ ՝ LED- ի կարճ կապիչով: Այնուհետև միացրեք տարբեր գույնի արու և արու ցատկող մալուխը ՝ LED- ի երկար կապանքով:
Քայլ 8. Basys Board Connections
PIR շարժման տվիչի կանացի ծայրերը միացրեք բազայի տախտակի 5 վոլտ լարման աղբյուրին: Այնուհետև միացրեք արական LED հողալարերը կողային նավահանգստի գետնի մեջ, այնուհետև ահազանգի լարը PIR շարժման սենսորից, այնուհետև LED մուտքային մետաղալարը (ինչպես երևում է նկարում):
Խորհուրդ ենք տալիս:
DIY ավտոմատ շարժման սենսորային մահճակալ LED գիշերային լույս. 6 քայլ (նկարներով)
DIY Ավտոմատ շարժման զգայուն մահճակալ LED գիշերային լույս. Բարև, տղերք, բարի գալուստ ևս մեկ ուսանելի, որը միշտ կօգնի ձեզ ձեր առօրյա կյանքում և կավելացնի հարմարավետություն `ձեր կյանքը դյուրին դարձնելու համար: Սա երբեմն կարող է փրկարար լինել կյանքի համար այն տարեց մարդկանց դեպքում, ովքեր ստիպված են լինում պայքարել մահճակալից վեր կենալու համար
DIY. Առաստաղի վրա տեղադրված մինի սենսորային տուփ `կենտրոնացման շարժման ցուցիչով` 4 քայլ
DIY. Առաստաղի վրա տեղադրված մինի սենսորների արկղ `կենտրոնացման շարժման ցուցիչով: Բարև: Որոշ ժամանակ առաջ ես ընկերոջս օգնում էի խելացի տան հայեցակարգով և ստեղծեցի մինի ցուցիչների տուփ ՝ հատուկ դիզայնով, որը կարող էր տեղադրվել առաստաղի վրա ՝ 40x65 մմ անցքի մեջ: Այս տուփը օգնում է ՝ • չափել լույսի ուժգնությունը • չափել խոնավ
Սենսորային շարժման վրա ազդող երաժշտական նվագարկիչ `3 քայլ
Սենսորների վրա հիմնված շարժման վրա ազդող երաժշտական նվագարկիչ. Իմ բակալավրիատի քոլեջում մենք պետք է ստեղծեինք օրիգինալ նախագիծ, որը բոլոր ուսանողները կարող էին ինքնուրույն ընտրել: Իմ նախագծի համար, քանի որ ես միշտ երաժշտություն եմ լսում և միշտ զգում եմ, որ չափազանց դժվարություն է բարձրախոսը միացնելը, որը ես
Կատարեք շարժման սենսորային պարզ լույս: (PIR) ՝ 13 քայլ (նկարներով)
Կատարեք շարժման սենսորային պարզ լույս: (PIR). Դարձնել փոքր & Պարզ շարժման զգայուն լույս ՝ ավելի քիչ դժվարությամբ և ավելի քիչ բաղադրիչներով: Սկսնակն էլ կարող է դա անել: Պարզ հասկացությունը, թե ինչպես է աշխատում տրանզիստորը և անոդի և կաթոդի իմացությունը, միայն անհրաժեշտ է, որպեսզի այն դարձնեք լարվածությունից ազատ:
Շարժման վերահսկվող վարդակից - շարժման զգայուն լույսից `6 քայլ
Շարժման վերահսկվող վարդակից - Շարժման զգայուն լույսից. Պատկերացրեք, որ դուք հնարամիտ եք, ով գնում է բլոկի ամենասարսափելի տունը: Բոլոր գայլերի, ուրվականների և գերեզմանների կողքով անցնելուց հետո դուք վերջապես հասնում եք վերջին ճանապարհին: Դուք կարող եք տեսնել կոնֆետը ձեր առջևի ամանի մեջ: Բայց հետո հանկարծ մի ղո