สารบัญ:
- ขั้นตอนที่ 1: ตัวจับเวลา
- ขั้นตอนที่ 2: การเพิ่มประสิทธิภาพปุ่ม
- ขั้นตอนที่ 3: LED
- ขั้นตอนที่ 4: ไฟล์บนสุด
- ขั้นตอนที่ 5: ไฟล์ข้อจำกัด
- ขั้นตอนที่ 6: การเดินสาย PIR Motion Sensor
- ขั้นตอนที่ 7: การเดินสายไฟ LED ใน Breadboard
- ขั้นตอนที่ 8: การเชื่อมต่อบอร์ดพื้นฐาน
วีดีโอ: Motion Sensored LED: 8 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
พื้นหลัง:
คุณเคยลืมปิดไฟก่อนไปเรียน ไปทำงาน หรือก่อนเข้านอนไหม? ชั่วโมงที่เปิดไฟไว้เมื่อคุณไม่ได้ใช้งาน สามารถเพิ่มต้นทุนและการสูญเสียพลังงานได้อย่างแท้จริง ตัวอย่างเช่น ตามรายงานของ solarcity.com การเปิดไฟทิ้งไว้ทั้งคืนเป็นเวลา 1 สัปดาห์ สามารถเพิ่มเงิน 25 ดอลลาร์ให้กับค่าไฟฟ้าของคุณได้! สำหรับโครงการ CPE133 ของเรา เราออกแบบไฟเซ็นเซอร์ตรวจจับความเคลื่อนไหวเพื่อช่วยให้ผู้คนประหยัดพลังงานในบ้านและใช้ไฟอย่างมีประสิทธิภาพ
ระบบของเราในทางปฏิบัติ:
ในทางปฏิบัติ ไฟจะเปิดขึ้นเมื่อเซ็นเซอร์ตรวจจับการเคลื่อนไหวในห้องเท่านั้น จากนั้นไฟจะติดค้างตามระยะเวลาที่กำหนด เช่น ประมาณ 30 นาที แล้วปิดโดยอัตโนมัติ แต่สมมติว่าคุณเพิ่งผ่านหรือต้องการออกจากห้องก่อนเวลาที่กำหนดไว้ สำหรับกรณีดังกล่าว เราได้ติดตั้งปุ่มที่คุณสามารถเปิดหรือปิดไฟได้ด้วยตนเอง โปรดทราบว่าไฟจะยังคงเปิดอยู่เป็นเวลา 30 นาที แม้ว่าจะเปิดไฟด้วยตนเองหรือโดยอัตโนมัติก็ตาม (เว้นแต่จะปิดไฟด้วยตนเอง)
การจำลองบนกระดาน:
เพื่อดูว่าตัวจับเวลาทำงานอย่างไร เราจึงเปลี่ยนตัวจับเวลาเป็น 1 นาที
วัสดุ:
- 1 บอร์ด Basy (คุณสามารถหาได้จาก Digilent)
- 1 เซ็นเซอร์ตรวจจับความเคลื่อนไหว PIR (คุณสามารถหาได้ที่นี่ใน Amazon)
- 1 เขียงหั่นขนมและชุดอุปกรณ์ (เราแนะนำให้ใช้อันนี้จาก Amazon)
-
จากชุดด้านบน
- 1 LED
- สายจัมเปอร์หญิงชาย 3 สาย
- สายจัมเปอร์ตัวผู้ถึงตัวผู้ 6 สาย
ขั้นตอนที่ 1: ตัวจับเวลา
เพื่อให้ไฟ LED ยังคงเปิดอยู่เป็นเวลา 1 นาที เราต้องสร้างตัวจับเวลาก่อน บอร์ด Basys 3 มีความถี่ภายใน 100MHz ทำให้ 100 ล้านรอบเท่ากับ 1 วินาที จากนั้นจะใช้เป็นตัวแปรที่จะทำหน้าที่เป็นจำนวนสูงสุดสำหรับ “t_cnt” t_cnt เพิ่มขึ้น 1 เมื่อบอร์ด Basy 3 สิ้นสุดรอบ เมื่อถึงเครื่องหมาย 100 ล้านแล้ว ระบบจะรีเซ็ตและตัวแปรอื่น "วินาที" จะเพิ่มขึ้น 1 ตัวแปร "วินาที" นี้แทนจำนวนวินาทีที่ผ่านไป และเมื่อตัวแปรนั้นเท่ากับ 60 หนึ่งนาทีเต็มผ่านไป
คัดลอกโค้ดด้านล่างลงในไฟล์ต้นฉบับ vhdl ชื่อ Timer
เอนทิตี COUNT_8B คือ
พอร์ต (รีเซ็ต: ใน std_logic;
CLK: ใน std_logic; T: ออก std_logic:= '0');
สิ้นสุด COUNT_8B;
สถาปัตยกรรม my_count จาก COUNT_8B is
ค่าคงที่ max_count: จำนวนเต็ม:= (100000000); --สัญญาณ t_cnt: std_logic_vector(7 เหลือ 0):= "00000000"; สัญญาณ t_cnt: จำนวนเต็ม:= (0); เริ่มกระบวนการ (CLK, RESET, t_cnt) ตัวแปร sec: integer:= 0; เริ่มต้น if (rising_edge(CLK)) แล้ว if (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'; สิ้นสุดถ้า; สิ้นสุดถ้า; สิ้นสุดกระบวนการ สิ้นสุด my_count;
ขั้นตอนที่ 2: การเพิ่มประสิทธิภาพปุ่ม
เนื่องจากความถี่ในบอร์ด Basys นั้นสูงมาก (ประมาณ 100 MHz) เมื่อคุณกดสำหรับสิ่งที่คุณคิดว่าเป็นเวลาสั้น ๆ กับบอร์ด Basy คุณจะต้องกด 100, 000 ครั้ง ทำให้แสงกะพริบระหว่างสถานะเปิดและปิดอย่างรวดเร็ว เราพยายามปรับปุ่มให้เหมาะสมโดยการสร้างไดอะแกรมสถานะเพื่อลดการกะพริบ
d-flip-flop จะเก็บแต่ละสถานะไว้ จากนั้นเราจะระบุการเปลี่ยนสถานะในคำสั่งกระบวนการ
คัดลอกโค้ดด้านล่างลงในไฟล์ต้นฉบับ vhdl ชื่อ Button
ไลบรารี 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) เริ่มต้น if(rising_edge(clk)) จากนั้น PS <= NS; สิ้นสุดถ้า; สิ้นสุดกระบวนการ seq_proc;
ns_proc: กระบวนการ (btn, PS)
start case PS คือเมื่อ NP => if (btn = '1') แล้ว NS <= PRESSED; อี <= '1'; อื่น NS <= NP; E ถ้า (btn = '0') แล้ว NS <= NP; อี <='0'; อื่นๆ NS <= กด; อี <= '0'; สิ้นสุดถ้า; กรณีสิ้นสุด; สิ้นสุดกระบวนการ ns_proc;
สิ้นสุดพฤติกรรม;
ขั้นตอนที่ 3: LED
LED มีสองสถานะ: ปิด (หรือว่าง) และเปิด ดังที่กล่าวไว้ก่อนหน้านี้ สถานะต่างๆ จะถูกเก็บไว้ใน d-flip-flop ไฟจะสว่างขึ้นหากเซ็นเซอร์ตรวจจับการเคลื่อนไหว (S=1) หรือเมื่อกดปุ่ม (E=1) ไฟ LED จะปิดโดยอัตโนมัติหากตัวจับเวลาถึง 1 นาที (T=1) หรือด้วยตนเองเมื่อกดปุ่ม (E=1)
คัดลอกโค้ดด้านล่างลงในไฟล์ต้นฉบับ vhdl ชื่อ LED
เอนทิตี motion_sensored_light คือ Port (S: ใน STD_LOGIC; -- sesnor; Port JA10/Pin G3 E: ใน STD_LOGIC; -- ปุ่มภายนอกสำหรับฟังก์ชันแบบแมนนวล ปุ่มกลาง T: ใน STD_LOGIC; -- เมื่อตัวจับเวลาถึงเวลาสูงสุด จาก LED ของตัวจับเวลา: out STD_LOGIC; -- light TRST: out STD_LOGIC; -- รีเซ็ตตัวจับเวลา clk: ใน STD_LOGIC); -- clk สำหรับ flip flop ซึ่งถือสถานะสิ้นสุด motion_sensored_light;
สถาปัตยกรรม พฤติกรรมของการเคลื่อนไหว_เซ็นเซอร์_แสงคือ
ชนิด state_type คือ (ST0, ST1); --ST0 = ว่าง, ST1 = LED สูง
สัญญาณ PS, NS: state_type:=ST0; -- สถานะปัจจุบันและสถานะถัดไป เริ่มต้นใน ST0 IDLE
เริ่ม
-- บล็อกกระบวนการของฟลิปฟล็อป -- อัปเดตสถานะบนขอบที่เพิ่มขึ้นของนาฬิกา seq_proc: กระบวนการ (NS, clk) เริ่มต้น -- d ฟลิปฟล็อปที่เก็บสถานะไว้ if(rising_edge(clk)) แล้ว PS <= NS; สิ้นสุดถ้า; สิ้นสุดกระบวนการ seq_proc;
ns_proc: กระบวนการ (S, E, T, PS)
กรณีเริ่มต้น PS คือเมื่อ ST0 => LED <= '0'; -- เอาต์พุตสำหรับสถานะว่าง TRST <= '1'; ถ้า (S = '0' หรือ E = '1') แล้ว -- อินพุตเพื่อเปลี่ยนจาก st0 เป็น st1 NS <= ST1; อื่น ๆ NS LED <= '1'; -- เอาต์พุตสำหรับสถานะ TRST <= '0'; ถ้า (E = '1' หรือ T = '1') แล้ว -- อินพุตเป็นการเปลี่ยนจาก st1 เป็น st0 NS <= ST0; อื่น NS <= ST1; สิ้นสุดถ้า; กรณีสิ้นสุด; สิ้นสุดกระบวนการ ns_proc;
สิ้นสุดพฤติกรรม;
ขั้นตอนที่ 4: ไฟล์บนสุด
ตอนนี้เราจะพอร์ตแมปไฟล์อื่น ๆ ทั้งหมดของเราเป็นไฟล์เดียว
คัดลอกโค้ดด้านล่างลงในไฟล์ต้นฉบับ vhdl ชื่อ Top_File
ไลบรารี IEEE ใช้ IEEE. STD_LOGIC_1164. ALL;
เอนทิตี Top_File is
พอร์ต (S: ใน STD_LOGIC:= '1'; -- sesnor; พอร์ต JA10/Pin G3 btn: ใน STD_LOGIC:= '0'; - ปุ่มภายนอกสำหรับฟังก์ชั่นแมนนวล ไฟ LED ปุ่มกลาง: ออก STD_LOGIC; -- light clk: ใน STD_LOGIC); -- clk สำหรับ flip flop ซึ่งเก็บสถานะสิ้นสุด Top_File;
สถาปัตยกรรม พฤติกรรมของ Top_File is
ส่วนประกอบ COUNT_8B คือ
พอร์ต (รีเซ็ต: ใน std_logic:= '0'; CLK: ใน std_logic; T: ออก std_logic:= '0'); ส่วนประกอบท้าย ส่วนประกอบ motion_sensored_light คือ Port (S: ใน STD_LOGIC; -- sesnor; Port JA10/Pin G3 E: ใน STD_LOGIC; -- ปุ่มภายนอกสำหรับฟังก์ชันแบบ manual; ปุ่มกลาง T: ใน STD_LOGIC; -- เมื่อตัวจับเวลาถึงเวลาสูงสุด จาก LED ตัวจับเวลา: out STD_LOGIC; -- light TRST: out STD_LOGIC; -- รีเซ็ตตัวจับเวลา clk: ใน STD_LOGIC); -- clk สำหรับ flip flop ซึ่งเก็บส่วนประกอบปลายของสถานะไว้ ปุ่มส่วนประกอบคือพอร์ต (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 constraints ชื่อ Constraints
## ไฟล์นี้เป็นไฟล์.xdc ทั่วไปสำหรับบอร์ด Basy3 rev B## เพื่อใช้ในโครงการ: ## - ยกเลิกการใส่เครื่องหมายบรรทัดที่สอดคล้องกับพินที่ใช้ ## - เปลี่ยนชื่อพอร์ตที่ใช้ (ในแต่ละบรรทัด หลัง 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] ## Switches #set_property PACKAGE_PIN V17 [get_ports] 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 [get_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 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_PINs W14 [getsget [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 IOSTAND 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 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 U1s [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_PINs R2s]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw[15]}]
## LEDs
#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_ports {นำ] }] #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 LVCMOS33 [get_ports] 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 LVCMOS33 [get_ports {led[5]}] #set_property IOSTANDARD LVCMOS33 [get_ports 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 LVCMOS33 [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_PINs U3 [geted [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_PINs N3 [get_ports {led [12]}] {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_property PACKAGE_PIN [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 [get_ports {seg[4]}] #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 U7 [get_ports }] #set_property IOSTANDARD LVCMOS33 [get_ports {seg[6]}]
#set_property PACKAGE_PIN V7 [get_ports dp]
#set_property IOSTANDARD LVCMOS33 [get_ports dp]
#set_property PACKAGE_PIN U2 [get_ports {an[0]}]
#set_property IOSTANDARD LVCMOS33 [get_ports {an[0]}] #set_property PACKAGE_PIN U4 [get_ports {an[1]}] #set_property IOSTANDARD LVCMOS33 [get_ports {an[1]}] #set_property PACKAGE_PIN V4 [get_ports {[2] }] #set_property IOSTANDARD LVCMOS33 [get_ports {an[2]}] #set_property PACKAGE_PIN W4 [get_ports {an[3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {an[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 Header จ้า
##ชื่อ Sch = 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 name = 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_property IOSTANDARD 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 #JA[6]}} 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 = 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]}] ##Sch name = 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_property IOST 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_LVCMOS33 [get_property IOSTANDARD_LVCMOS33 [get_property เจบี[7]}]
##Pmod Header JC
##ชื่อ Sch = 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 name = 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_property IOST 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_LVCMOS33 [get_property IOSTANDARD_LVCMOS33 [get_property เจซี[7]}]
##Pmod Header JXADC
##ชื่อ Sch = 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_ports}] #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#Sch[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] {JXADC[3] 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 # ชื่อ = XA3_Nset 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_property IOSTAND [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]}] #set_property IOSTANDARD_LVCMOSs {33 [Redget] }] #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 IOSTANDARD_ LVCMs 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[1]}] #set_property IOSTANDARD LVCMs 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[3]}] #set_property IOSTANDARD 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 {vgaGreen[2]}] #set_property IOST 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 P19 [get_ports Hsync] #set_property 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 จริง [get_ports PS2Clk] #set_property PACKAGE_PIN B17 [get_ports PS2DataOST] #set_property PULLUP ข้อมูล I
##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 IOSTQANDARD_ LVCMports }] #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]_}] #set_property IOSTANDARDs 3]}] #set_property PACKAGE_PIN K19 [get_ports QspiCSn] #set_property IOSTANDARD LVCMOS33 [get_ports QspiCSn]
ขั้นตอนที่ 6: การเดินสาย PIR Motion Sensor
เซ็นเซอร์ตรวจจับความเคลื่อนไหว PIR มีสามพิน: กำลังไฟ gnd และสัญญาณเตือนตามลำดับ (ดูภาพแรก) เซ็นเซอร์ตรวจจับความเคลื่อนไหวที่แนะนำในคำแนะนำนี้สามารถเชื่อมต่อเข้ากับเขียงหั่นขนมได้โดยตรง แต่สำหรับเซ็นเซอร์ที่เราใช้ เราต้องตัดและปอกสายไฟ จากนั้นประสานปลายที่สัมผัสเพื่อป้องกันไม่ให้หลุดลุ่ย บนเขียงหั่นขนมใส่สายจัมเปอร์ตัวผู้กับตัวเมียในชุดที่มีกำลังและหมุดกราวด์จากนั้นต่อสายจัมเปอร์ตัวผู้กับตัวผู้ในชุดพร้อมหมุดเตือน (ดูรูปที่สอง)
ขั้นตอนที่ 7: การเดินสายไฟ LED ใน Breadboard
เสียบ LED เข้ากับเขียงหั่นขนม เสียบสายจัมเปอร์ตัวผู้กับตัวผู้สีดำเป็นอนุกรมโดยนำสายสั้นของ LED จากนั้นเสียบสายจัมเปอร์ตัวผู้กับตัวผู้สีต่างๆ ตามลำดับพร้อมสายยาวของ LED
ขั้นตอนที่ 8: การเชื่อมต่อบอร์ดพื้นฐาน
เชื่อมต่อปลายตัวเมียของเซ็นเซอร์ตรวจจับความเคลื่อนไหว PIR เข้ากับแหล่งจ่ายแรงดันไฟ 5 โวลต์บนบอร์ดเบส จากนั้นต่อสายกราวด์ LED ตัวผู้เข้ากับกราวด์ของพอร์ตด้านข้าง จากนั้นต่อสายสัญญาณเตือนภัยจากเซ็นเซอร์ตรวจจับความเคลื่อนไหว PIR และต่อสายอินพุต LED (ดังที่เห็นในภาพ)
แนะนำ:
Motion Reactive Surfboard LED Strips: 8 ขั้นตอน (พร้อมรูปภาพ)
Motion Reactive Surfboard LED Strips: เมื่อเร็ว ๆ นี้ เพื่อนบางคนและฉันค้นพบการโต้คลื่นในแม่น้ำ การใช้ชีวิตในมิวนิก เราโชคดีที่มีคลื่นแม่น้ำสามลูกที่เล่นเซิร์ฟได้ท่ามกลางจุดโต้คลื่น Eisbach ที่มีชื่อเสียง ข้อเสียของการโต้คลื่นในแม่น้ำคือมันค่อนข้างจะเล่นแล้วติด เลยไม่ค่อยมีเวลาเล่นกระดานโต้คลื่น
Sound Sensor & Servo: Reactive Motion: 4 ขั้นตอน
Sound Sensor & Servo: Reactive Motion: ก่อนอื่นคุณต้องรวบรวมวัสดุที่เกี่ยวข้องเพื่อรวมวงจรนี้เข้าด้วยกัน
DIY Exploding Wall Clock พร้อม Motion Lighting: 20 ขั้นตอน (พร้อมรูปภาพ)
DIY Exploding Wall Clock พร้อม Motion Lighting: ในคำแนะนำ / วิดีโอนี้ฉันจะแสดงให้คุณเห็นทีละขั้นตอนเกี่ยวกับวิธีการสร้างนาฬิกาแขวนที่ดูสร้างสรรค์และไม่เหมือนใครด้วยระบบไฟส่องสว่างแบบเคลื่อนไหวในตัว แนวคิดการออกแบบนาฬิกาที่ไม่เหมือนใครนี้มีการปรับทิศทางเพื่อให้นาฬิกาโต้ตอบได้มากขึ้น . เมื่อฉันเดิน
Night Light Motion & Darkness Sensing - No Micro: 7 ขั้นตอน (พร้อมรูปภาพ)
Night Light Motion & Darkness Sensing - No Micro: คำแนะนำนี้เป็นการป้องกันไม่ให้นิ้วเท้าของคุณสะดุดเมื่อเดินผ่านห้องมืด คุณสามารถพูดได้ว่าเพื่อความปลอดภัยของคุณเองถ้าคุณลุกขึ้นในเวลากลางคืนและพยายามไปถึงประตูอย่างปลอดภัย แน่นอนว่าคุณสามารถใช้โคมไฟข้างเตียงหรือโคมไฟระ
Motion Sensor เปิดใช้งาน LED Strip พร้อมตัวจับเวลา: 6 ขั้นตอน (พร้อมรูปภาพ)
Motion Sensor เปิดใช้งานแถบ LED พร้อมตัวจับเวลา: สวัสดีทุกคน! ฉันมีความสุขมากที่ได้เขียนคำแนะนำอื่นในตอนนี้ โปรเจ็กต์นี้เกิดขึ้นเมื่อฉันได้รับการติดต่อจากเพื่อนผู้สอน (?!) (David @dducic) เมื่อหลายเดือนก่อนเพื่อขอความช่วยเหลือด้านการออกแบบ ดังนั้นนี่คือข้อมูลจำเพาะดั้งเดิม: &q