Агуулгын хүснэгт:
- Алхам 1: Таймер
- Алхам 2: Товчлуурын оновчлол
- Алхам 3: LED
- Алхам 4: Дээд файл
- Алхам 5: Хязгаарлалтын файл
- Алхам 6: PIR хөдөлгөөн мэдрэгчийг холбох
- Алхам 7: Breadboard дээрх LED -ийг холбох
- Алхам 8: Basys Board Connections
Видео: Хөдөлгөөн мэдрэгчтэй LED: 8 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Үндсэн мэдээлэл:
Хичээл, ажилдаа явахаасаа өмнө эсвэл унтахаасаа өмнө гэрлээ унтраахаа мартдаг уу? Хэрэглээгүй үедээ гэрэл ассан тэр цаг нь үнэхээр зардал, энергийн алдагдлыг нэмэгдүүлдэг. Жишээлбэл, solarcity.com сайтын мэдээлж буйгаар бүтэн долоо хоногийн турш бүтэн шөнийн турш гэрлээ асаах нь таны цахилгааны төлбөрт 25 доллар нэмж болно. CPE133 төслийнхөө хувьд бид хүмүүст гэрт нь энерги хэмнэх, гэрлээ үр ашигтай ашиглахад туслах хөдөлгөөн мэдрэгч гэрэл зохион бүтээдэг.
Манай систем практик дээр:
Практикт гэрэл мэдрэгч нь өрөөн доторх хөдөлгөөнийг илрүүлэх үед л асдаг. Дараа нь гэрэл ойролцоогоор 30 минут орчим асч, дараа нь автоматаар унтрах болно. Гэхдээ та дөнгөж өнгөрч байсан эсвэл тогтоосон хугацаа дуусахаас өмнө өрөөнөөс эрт гарахыг хүссэн гэж бодъё. Ийм тохиолдолд бид гэрлийг гараар асаах, унтраах товчлуурыг суулгасан болно. Гэрлийг гараар эсвэл автоматаар асаасан ч гэсэн гэрэл 30 минутын турш асна гэдгийг анхаарна уу.
Усан онгоцон дээрх симуляци:
Таймер ажиллаж байгааг харахын тулд бид таймерыг 1 минут болгож өөрчилсөн.
Материал:
- 1 Basys самбар (та Digilent дээрээс эндээс олох боломжтой)
- 1 PIR хөдөлгөөн мэдрэгч (та үүнийг Amazon дээрээс олох боломжтой)
- 1 талх, иж бүрдэл (үүнийг Amazon -оос ашиглахыг санал болгож байна)
-
Дээрх багцаас
- 1 LED
- 3 эмэгтэй, эрэгтэй холбогч кабель
- 6 эрэгтэй, эрэгтэй холбогч кабель
Алхам 1: Таймер
LED 1 минутын турш асаалттай байхын тулд бид эхлээд таймер үүсгэх ёстой. Basys 3 самбар нь 100 МГц -ийн дотоод давтамжтай тул 100 сая мөчлөгийг 1 секундтэй тэнцүү болгодог. Үүнийг дараа нь "t_cnt" -ийн хамгийн их тоог гүйцэтгэх хувьсагч болгон ашигладаг. Basys 3 самбар нь мөчлөгийг дуусгаснаар t_cnt 1 -ээр нэмэгддэг. 100 саяын хязгаарт хүрмэгц дахин тохируулах бөгөөд өөр нэг "сек" хувьсагч нь 1 -ээр нэмэгдэх болно. Энэ "сек" хувьсагч нь өнгөрч буй секундын тоог илэрхийлдэг бөгөөд энэ хувьсагч 60 -тай тэнцүү бол бүтэн минут өнгөрч байна.
Доорх кодыг Таймер нэртэй vhdl эх файл руу хуулж ав.
COUNT_8B аж ахуйн нэгж байна
порт (RESET: std_logic дотор;
CLK: std_logic дээр; T: out std_logic: = '0');
төгсгөл COUNT_8B;
COUNT_8B архитектурын my_count байна
тогтмол max_count: бүхэл тоо: = (100000000); -дохио t_cnt: std_logic_vector (7 хүртэл 0 хүртэл): = "00000000"; дохио t_cnt: бүхэл тоо: = (0); процессыг эхлүүлэх (CLK, RESET, t_cnt) хувьсах сек: бүхэл тоо: = 0; эхлэх бол (yüksох_хүрээ (CLK)) дараа нь (RESET = '1') бол t_cnt <= (0); - тодорхой elsif (t_cnt = max_count) дараа нь- max_count нь 1 сая t_cnt <= (0) -тэй тэнцэх 100 сая байна; - Дотоод цагийг 0 сек болгож дахин тохируулна: = сек + 1; - Бидний "удаан цаг" -ыг 1-ээр нэмэгдүүлнэ (хэрэв сек = 60) бол- 60 секундэд хүрмэгц хамгийн их сек секундын хэмжээнд хүрнэ: = 0; - "Удаан цаг" -ыг 0 T <= '1' болгож тохируулна; хэрэв дуусгавар бол; өөр t_cnt <= t_cnt + 1; - дотоод цагийг нэмэгдүүлдэг T <= '0'; хэрэв дуусгавар бол; хэрэв дуусгавар бол; үйл явцыг дуусгах; my_count -ийг дуусгах;
Алхам 2: Товчлуурын оновчлол
Basys -ийн самбар дээрх давтамж маш өндөр байдаг (ойролцоогоор 100 МГц) тул та бодож байгаа зүйлээ дарахад Basys самбар дээр дарахад 100,000 удаа дарах болно. Энэ нь гэрэл асах ба унтраах хооронд хурдан анивчдаг. Бид товчлуурыг оновчтой болгохын тулд анивчсан байдлыг багасгахын тулд төлөв байдлын диаграмыг бий болгохыг хичээсэн.
D-flip-flops нь муж бүрийг барих бөгөөд дараа нь бид процессын мэдэгдэлд төлөв байдлын шилжилтийг зааж өгөх болно.
Доорх кодыг Button нэртэй vhdl эх файл руу хуулж ав.
номын сан IEEE; IEEE. STD_LOGIC_1164. ALL ашиглах;
аж ахуйн нэгжийн товчлуур
Порт (btn: STD_LOGIC; clk: STD_LOGIC; E: STD_LOGIC); дуусгах товчлуур;
Архитектур товчлуурын зан төлөв
type state_type нь (ХЭВЛЭГДСЭН, БЦГ); дохио PS, NS: state_type: = NP;
Эхлэх
seq_proc: процесс (NS, clk) эхлэх бол (Yüksох_хэмжээ (clk)) PS <= NS; хэрэв дуусгавар бол; seq_proc процессыг дуусгах;
ns_proc: процесс (btn, PS)
эхлэх тохиолдол PS бол NP => if (btn = '1') бол NS <= PRESSED; E <= '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) гэрэл асах болно. Хэрэв таймер 1 минут (T = 1) хүрвэл эсвэл товчлуур дарагдсан үед (E = 1) LED автоматаар унтрах болно.
Доорх кодыг LED нэртэй vhdl эх файл руу хуулж ав.
entity_sensored_light нь Port (S: STD_LOGIC; - sesnor; Port JA10/Pin G3 E: STD_LOGIC; гар ажиллагаатай гадаад товчлуур; Төв товч T: STD_LOGIC дотор; - таймер хамгийн их цаг хүрэх үед; таймер LED: гарах STD_LOGIC; - хөдөлгөөнийг хэмжсэн_ гэрлийн төлөвийг хадгалж буй флип флоп;
архитектур Хөдөлгөөний_сенсорсон_ гэрэл нь зан төлөв юм
state_type төрөл (ST0, ST1); --ST0 = IDLE, ST1 = LED HIGH
дохио PS, NS: state_type: = ST0; - ӨНӨӨГИЙН УЛС ба ДАРААГИЙН ТӨР ST0 IDLE-д эхэлнэ
Эхлэх
- flip flop-ийн процессын блок- цагийн зүүний ирмэг дээрх төлөвийг шинэчилдэг seq_proc: процесс (NS, clk) эхлэх- d (хэрэв дээшлэх_хэмжээ (clk)), дараа нь PS <= NS; хэрэв дуусгавар бол; seq_proc процессыг дуусгах;
ns_proc: процесс (S, E, T, PS)
эхлэх тохиолдол PS бол ST0 => LED <= '0'; - сул зогсолтын төлөвийн гаралт TRST <= '1'; хэрэв (S = '0' OR E = '1') бол - st0 -оос st1 рүү шилжих орц NS <= ST1; өөр NS LED <= '1'; - TRST төлөвт зориулсан гаралт <= '0'; хэрэв (E = '1' OR T = '1') бол - st1 -ээс st0 руу шилжих орц NS <= ST0; өөр NS <= ST1; хэрэв дуусгавар бол; төгсгөлийн тохиолдол; ns_proc процессыг дуусгах;
зан үйлийн төгсгөл;
Алхам 4: Дээд файл
Одоо бид бусад бүх файлуудаа нэг файл болгон хөрвүүлэх гэж байна.
Доорх кодыг Top_File нэртэй vhdl эх файл руу хуулна уу.
номын сан IEEE; IEEE. STD_LOGIC_1164. ALL ашиглах;
аж ахуйн нэгж Top_File байна
Порт (S: STD_LOGIC: = '1'; - sesnor; Port JA10/Pin G3 btn: STD_LOGIC: = '0'; - гар ажиллагаатай гадаад товчлуур; Төв товчлуур LED: STD_LOGIC унтраасан; - гэрлийн чимээ: STD_LOGIC дээр); - Top_File-ийн төгсгөлийг агуулсан флип товчлуур;
Top_File архитектурын зан төлөв
COUNT_8B бүрэлдэхүүн хэсэг
порт (RESET: std_logic: = '0'; CLK: std_logic; T: out std_logic: = '0'); төгсгөлийн бүрэлдэхүүн хэсэг; motion_sensored_light нь Port (S: STD_LOGIC; - sesnor; Port JA10/Pin G3 E: STD_LOGIC -д; - гар ажиллагаатай гадаад товчлуур; Төв товч T: STD_LOGIC дотор; - таймер хамгийн их цаг хүрэхэд; таймер LED: гарах STD_LOGIC; - мужуудын төгсгөлийн хэсгийг агуулсан флип флоп; бүрэлдэхүүн хэсгийн товчлуур нь порт (btn: STD_LOGIC; clk: STD_LOGIC; E: out 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: Хязгаарлалтын файл
Одоо бид оролт, гарцаа самбар дээр хаана байрлуулахаа тодорхойлох ёстой.
Доорх кодыг Constraints нэртэй vhdl хязгаарлалтын файл руу хуулж ав.
## Энэ файл нь Basys3 rev B самбарын ерөнхий.xdc файл юм ## Төсөлд ашиглахын тулд: ## - ашигласан зүүтэй харгалзах мөрүүдийг тайлбарлахгүй ## - ашигласан портуудын нэрийг (мөр бүрт, get_ports -ийн дараа) төслийн дээд түвшний дохионы нэрс
## Цагийн дохио
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] ## Switch #set_property PACKAGE_PIN {17] set_property IOSTANDARD LVCMOS33 [get_ports {sw [0]}] #set_property PACKAGE_PIN V16 [get_ports {sw [1]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [1]}] #set_property PACKAGE_PIN W16 [2] #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 {sw15 [4]}] #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 [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]}] #ST_ARD 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 [get_ports {sw [11]}] #set_property PACKAGE_PIN W2 [get_ports {sw [12]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [12]}] #set_property PACKAGE_PIN {1 swet [get_ports] #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 {sw2 [get_ports]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [15]}]
## LED
#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 LVCMOSM {33] }] #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 [LVCM] 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 IMOS33 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 IOSTARD 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 PAC3AGP_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 NAC3 {led [13]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [13]}] #set_property PACKAGE_PIN P1 [get_ports {led [14]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [14]}] #set_proper PAC [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 [get_ports {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_port] #set_property IOSTANDARD LVCMOS33 [get_ports {seg [4]}] #set_property PACKAGE_PIN V5 [get_ports {seg [5]}] #set_property IOSTANDARD LVCMOS33 [get_ports {seg [5]}] #set_property PACkAGE_PIN [PAC7] }] #set_property IOSTANDARD LVCMOS33 [get_ports {seg [6]}]
#багц_хөрөнгийн PACKAGE_PIN V7 [get_ports dp]
#set_property IOSTANDARD LVCMOS33 [get_ports dp]
#set_property PACKAGE_PIN U2 [get_ports {a [0]}]
#set_property IOSTANDARD LVCMOS33 [get_ports {a [0]}] #set_property PACKAGE_PIN U4 [get_ports {a [1]}] #set_property IOSTANDARD LVCMOS33 [get_ports {a [1]}] #set_property PACKAGE_PIN V4 [get_ports] }] #set_property IOSTANDARD LVCMOS33 [get_ports {a [2]}] #set_property PACKAGE_PIN W4 [get_ports {a [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {a [3]}]
##Товчлуурууд
set_property PACKAGE_PIN U18 [get_ports btn] set_property IOSTANDARD LVCMOS33 [get_ports btn] #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]}] ## = 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]}] # 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 [get_ports] # # 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 Header 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 [get_ports {JB [1]}] ## Sch name = JB3 #set_property PACKAGE_PIN B15 [get_ports {JB [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JB [2]}] ## = 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 [pro]per] Iset 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 ICOS 33 JB [7]}]
## Pmod Header 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]}] ## = 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]}] 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 IOOSANDARD 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 L3 [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 #нэр] = 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] [Set_port] 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 #X_S_ нэр 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]ty LVCM) [get_ports {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]}] #SOST_proper IO }] #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]} VOST_ARD 3]}] #set_property PACKAGE_PIN N18 [get_ports {vgaBlue [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaBlue [0]}] #set_property PACKAGE_PIN L18 [get_ports {vgaBlue_Prose_pro_Prive_Pro_To_L_V_B_L_RC_R_I_R_R_R_R_S_R_S_S_S_N_S_S_S_S_S_S_S_S_S_S_S_S_S_S_S_S_S_S_S_S_S_S_S_S_S_S_S_) -ийн аль нэгийг авах 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_OS_Pro_Sport_V] 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_port {vgaGreen] 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 HP_PIN P19 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 LVCMOSTx [авах_портууд
## 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 [PS_PpData_SpData]
## Дөрвөн 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]} VSport_pro] }] #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] V_SM] 3]}] #set_property PACKAGE_PIN K19 [get_ports QspiCSn] #set_property IOSTANDARD LVCMOS33 [get_ports QspiCSn]
Алхам 6: PIR хөдөлгөөн мэдрэгчийг холбох
PIR хөдөлгөөн мэдрэгч нь хүч, gnd, дохиолол гэсэн гурван тээглүүртэй (эхний зургийг үз). Энэхүү зааварт заасан хөдөлгөөн мэдрэгч нь талхны самбар руу шууд холбогдох боломжтой. Гэхдээ бидний ашиглаж байсан мэдрэгчийн хувьд утсыг хайчилж, хуулаад дараа нь ил гарсан үзүүрийг гагнах хэрэгтэй. Талхны самбар дээр эрэгтэй, эмэгтэй холбогч утсыг хүч, газардуулгатай холбож, дараа нь эрэгтэй, эрэгтэй холбогч утсыг дохиоллын зүү бүхий цувралаар оруулна уу (хоёр дахь зургийг үзнэ үү).
Алхам 7: Breadboard дээрх LED -ийг холбох
LED -ийг талхны тавцан руу залгаарай. LED -ийн богино залгууртай хар эрэгтэй -эрэгтэй холбогч кабелийг цувралаар оруулна уу. Дараа нь LED -ийн урт хар тугалга бүхий янз бүрийн өнгөтэй эрэгтэй, эрэгтэй холбогч кабелийг залгаарай.
Алхам 8: Basys Board Connections
PIR хөдөлгөөн мэдрэгчийн эмэгтэй үзүүрийг тавцан дээрх 5 вольтын хүчдэлийн эх үүсвэрт холбоно уу. Дараа нь эрэгтэй LED газардуулгын утсыг хажуугийн порт руу холбож, дараа нь PIR хөдөлгөөн мэдрэгчийн дохиоллын утас, дараа нь LED оролтын утсыг (зураг дээр үзүүлсэн шиг) холбоно.
Зөвлөмж болгож буй:
Ардуино ба цахилгаан ороомог ашиглан хөдөлгөөн мэдрэгчтэй усны цорго - DIY: 6 алхам
Arduino ба цахилгаан ороомог ашиглан хөдөлгөөн мэдрэгчтэй усны цорго - DIY: Энэхүү төсөлд би цахилгаан соронзон хавхлага ашиглан хөдөлгөөн мэдрэгчтэй усны цорго хэрхэн бүтээхийг танд үзүүлэх болно. Энэхүү төсөл нь одоо байгаа гарын авлагын усны цоргыг хөдөлгөөнийг илрүүлэх үндсэн дээр удирдах боломжтой цорго болгон хувиргахад туслах болно. IR мэдрэгчийн интерфэйсийг ашиглаж байна
DIY автомат хөдөлгөөн мэдрэгчтэй ортой LED шөнийн гэрэл: 6 алхам (зурагтай)
DIY автомат хөдөлгөөн мэдрэгчтэй ортой LED шөнийн гэрэл: Сайн байна уу, залуусаа, таны өдөр тутмын амьдралд үргэлж тусалж, таны амьдралыг хөнгөвчлөх өөр нэг сургамжийг хүлээн авна уу. Өндөр настай хүмүүс орноосоо босох гэж зовдог бол энэ нь заримдаа аврагч байж магадгүй юм
Arduino Security 3G/GPRS И -мэйл камер нь хөдөлгөөн мэдрэгчтэй: 4 алхам
Arduino Security 3G/GPRS Хөдөлгөөн илрүүлэх имэйлийн камер: Энэхүү гарын авлагад би хөдөлгөөн мэдрэгч бүхий аюулгүй байдлын тандалтын систем барьж, зургуудаа 3G/GPRS бамбайгаар дамжуулан шуудангийн хайрцагт илгээх нэг хувилбарын талаар хэлэхийг хүсч байна. бусад заавар: заавар 1 ба заавар
Гурван мэдрэгчтэй хэлхээ + мэдрэгчтэй таймерын хэлхээ: 4 алхам
Гурван мэдрэгчтэй мэдрэгчтэй хэлхээ + мэдрэгчтэй таймерын хэлхээ: Мэдрэгч мэдрэгч нь мэдрэгч зүү дээр хүрэхийг мэдрэх үед асах хэлхээ юм. Энэ нь түр зуурын үндсэн дээр ажилладаг, өөрөөр хэлбэл тээглүүр дээр дарах үед л ачаалал асаалттай байх болно, энд би танд мэдрэгчтэй болгох гурван өөр аргыг харуулах болно
Уулын хамгаалалтын хүрэм: Хөдөлгөөн мэдрэмтгий LED хүрэм: 11 алхам (зурагтай)
Уулын хамгаалалтын хүрэм: Хөдөлгөөнт мэдрэмтгий LED хүрэм: Хөнгөн, элэгддэг электроникийн сайжруулалт нь технологийг арын оронд нэвтрүүлэх, хайгуул хийж буй хүмүүсийн аюулгүй байдлыг нэмэгдүүлэх зорилгоор ашиглах шинэ боломжийг нээж өгч байна. Энэ төслийн хувьд би гадаа сурталчлах туршлагатай болсон