Talaan ng mga Nilalaman:
- Hakbang 1: Timer
- Hakbang 2: Pag-optimize ng Button
- Hakbang 3: LED
- Hakbang 4: Nangungunang File
- Hakbang 5: Mga Pagpipigil na File
- Hakbang 6: Pag-kable sa PIR Motion Sensor
- Hakbang 7: Pag-kable ng Up sa LED sa Breadboard
- Hakbang 8: Mga Koneksyon sa Basys Board
Video: Motion Sensored LED: 8 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
Background:
Nakalimutan mo bang patayin ang isang ilaw bago ka magtungo sa klase o magtrabaho o bago ka matulog? Ang mga oras na may ilaw na kapag hindi mo ginagamit ang mga ito ay maaaring talagang magdagdag ng gastos at pagkawala ng enerhiya. Halimbawa, ayon sa solarcity.com, ang pag-iiwan ng mga ilaw sa buong gabi sa loob ng isang linggo ay maaaring magdagdag ng $ 25 sa iyong singil sa kuryente! Para sa aming proyekto ng CPE133, nagdidisenyo kami ng ilaw ng sensor ng paggalaw upang matulungan ang mga tao na makatipid ng enerhiya sa kanilang mga tahanan at magamit nang mahusay ang kanilang mga ilaw.
Ang aming system sa pagsasanay:
Sa pagsasanay, ang mga ilaw ay bubuksan lamang kapag ang isang sensor ay nakakita ng paggalaw sa silid. Pagkatapos ang mga ilaw ay mananatili sa isang itinakdang dami ng oras, tulad ng mga 30 minuto, at pagkatapos ay awtomatikong i-off. Ngunit sabihin natin na dumadaan ka lang o nais na umalis ng silid nang maaga bago matapos ang itinakdang dami ng oras. Para sa mga kasong iyon, nag-install kami ng isang pindutan kung saan maaari mong i-on o i-off ang mga ilaw nang manu-mano. Tandaan na ang mga ilaw ay mananatili sa loob ng 30 minuto kahit na ang mga ilaw ay nakabukas nang manu-mano o awtomatiko (maliban kung ang mga ilaw ay manu-manong pinatay).
Ang simulation sa board:
Upang makita na gumagana ang timer binago namin ang timer sa 1 minuto.
Mga Materyales:
- 1 board ng Basys (maaari kang makahanap ng isa dito mula sa Digilent)
- 1 sensor ng paggalaw ng PIR (maaari kang makahanap ng isa dito sa Amazon)
- 1 breadboard at kit (iminumungkahi namin na gamitin ang isang ito mula sa Amazon)
-
Mula sa kit sa itaas
- 1 LED
- 3 babae hanggang lalaking jumper cables
- 6 male to male jumper cables
Hakbang 1: Timer
Upang manatili ang LED sa loob ng 1 minuto, dapat muna tayong lumikha ng isang timer. Ang board ng Basys 3 ay may panloob na dalas ng 100MHz kaya't gumagawa ng 100 milyong mga cycle na katumbas ng 1 segundo. Pagkatapos ay ginagamit ito bilang isang variable na gagana bilang isang maximum na numero para sa "t_cnt". Ang t_cnt ay tumataas ng 1 habang ang Basys 3 board ay nakumpleto ang isang cycle. Kapag naabot na ang 100 milyong markang ito ay magre-reset at ang isa pang variable, "sec", ay tataas ng 1. Ang variable na "sec" ay kumakatawan sa bilang ng mga segundo na lumipas at kapag ang variable na iyon ay katumbas ng 60, isang buong minuto ang lumipas.
Kopyahin ang code sa ibaba sa isang vhdl source file na pinangalanang Timer.
ang nilalang COUNT_8B ay
port (RESET: sa std_logic;
CLK: sa std_logic; T: out std_logic: = '0');
tapusin ang COUNT_8B;
ang my_count ng arkitektura ng COUNT_8B ay
pare-pareho ang max_count: integer: = (100000000); --signal t_cnt: std_logic_vector (7 pababa 0): = "00000000"; signal t_cnt: integer: = (0); simulan ang proseso (CLK, RESET, t_cnt) variable sec: integer: = 0; simulan kung (tumataas_edge (CLK)) pagkatapos kung (RESET = '1') pagkatapos t_cnt <= (0); - i-clear ang elsif (t_cnt = max_count) pagkatapos - ang max_count ay 100 milyon na katumbas ng 1 segundo t_cnt <= (0); - I-reset ang panloob na orasan sa 0 sec: = sec + 1; - Pinapataas ang aming 'mabagal na orasan' ng 1 kung (sec = 60) pagkatapos - Kapag umabot sa 60 segundo pagkatapos naabot nito ang max time sec: = 0; - I-reset ang "mabagal na orasan" sa 0 T <= '1'; tapusin kung; iba t_cnt <= t_cnt + 1; - pinatataas ang panloob na orasan T <= '0'; tapusin kung; tapusin kung; proseso ng pagtatapos; tapusin ang aking_bilang;
Hakbang 2: Pag-optimize ng Button
Dahil ang dalas sa mga board ng Basys ay napakataas (sa paligid ng 100 MHz) kapag pinindot mo ang sa tingin mo ay isang maikling dami ng oras sa Basys board ay pipilitin mo ito ng 100, 000 beses. Ito ay sanhi ng ilaw upang pumitik sa pagitan ng on at off estado ng mabilis. Sinubukan naming i-optimize ang pindutan sa pamamagitan ng paglikha ng isang diagram ng estado upang mabawasan ang pagkutitap.
Ang mga d-flip-flop ay hahawak sa bawat estado at pagkatapos ay tutukuyin namin ang mga paglipat ng estado sa pahayag ng proseso.
Kopyahin ang code sa ibaba sa isang vhdl source file na pinangalanang Button.
library IEEE; gamitin ang IEEE. STD_LOGIC_1164. ALL;
entity button ay
Port (btn: sa STD_LOGIC; clk: sa STD_LOGIC; E: out STD_LOGIC); pindutan ng pagtatapos;
arkitektura Pag-uugali ng pindutan ay
ang uri ng state_type ay (PRESSED, NP); signal PS, NS: state_type: = NP;
magsimula
seq_proc: proseso (NS, clk) magsimula kung (tumataas_edge (clk)) pagkatapos PS <= NS; tapusin kung; tapusin ang proseso seq_proc;
ns_proc: proseso (btn, PS)
simulan ang kaso PS ay kapag NP => kung (btn = '1') pagkatapos NS <= PRESSED; E <= '1'; iba pa NS <= NP; E kung (btn = '0') pagkatapos NS <= NP; E <= '0'; iba pa NS <= PRESSED; E <= '0'; tapusin kung; kaso ng pagtatapos; tapusin ang proseso ns_proc;
wakasan ang Pag-uugali;
Hakbang 3: LED
Ang LED ay may dalawang estado: OFF (o IDLE) at ON. Tulad ng sinabi dati, ang mga estado ay nakaimbak sa isang d-flip-flop. Ang ilaw ay magpapasara kung ang sensor ay nakakita ng paggalaw (S = 1) o kapag ang isang pindutan ay pinindot (E = 1). Awtomatikong papatayin ang LED kung umabot ang timer ng 1 minuto (T = 1) o manu-mano kapag pinindot ang isang pindutan (E = 1).
Kopyahin ang code sa ibaba sa isang vhdl source file na pinangalanang LED.
ang entity motion_sensored_light ay Port (S: sa STD_LOGIC; - sesnor; Port JA10 / Pin G3 E: sa STD_LOGIC; - panlabas na pindutan para sa manu-manong pagpapaandar; Center Button T: sa STD_LOGIC; - kapag umabot ang max sa maximum na oras; Mula sa timer LED: out STD_LOGIC; - light TRST: out STD_LOGIC; - i-reset ang timer clk: sa STD_LOGIC); - clk para sa flip flop na humahawak sa mga estado ng pagtatapos ng paggalaw_sensored_light;
arkitektura Pag-uugali ng paggalaw_sensored_light ay
ang uri ng state_type ay (ST0, ST1); --ST0 = IDLE, ST1 = LED HIGH
signal PS, NS: state_type: = ST0; - KASALUKUYANG ESTADO AT SUSUNOD NA ESTADO, nagsisimula sa ST0 IDLE
magsimula
- proseso ng block ng flip flop - ina-update ang estado sa tumataas na gilid ng orasan seq_proc: proseso (NS, clk) magsimula - d flip flop na humahawak ng mga estado kung (tumataas_edge (clk)) pagkatapos PS <= NS; tapusin kung; tapusin ang proseso seq_proc;
ns_proc: proseso (S, E, T, PS)
simulan ang kaso PS ay kapag ST0 => LED <= '0'; - Mga output para sa idle state TRST <= '1'; kung (S = '0' O E = '1') pagkatapos - mga input sa paglipat mula sa st0 hanggang st1 NS <= ST1; iba pa NS LED <= '1'; - mga output para sa state TRST <= '0'; kung (E = '1' O T = '1') pagkatapos - mga input sa paglipat mula sa st1 hanggang st0 NS <= ST0; iba pa NS <= ST1; tapusin kung; kaso ng pagtatapos; tapusin ang proseso ns_proc;
wakasan ang Pag-uugali;
Hakbang 4: Nangungunang File
Ngayon ay pupunta kami sa mapa ng port ang lahat ng aming iba pang mga file sa isa.
Kopyahin ang code sa ibaba sa isang vhdl source file na pinangalanang Top_File.
library IEEE; gamitin ang IEEE. STD_LOGIC_1164. ALL;
ang entity na Top_File ay
Port (S: sa STD_LOGIC: = '1'; - sesnor; Port JA10 / Pin G3 btn: sa STD_LOGIC: = '0'; - panlabas na pindutan para sa manu-manong pag-andar; LED Button ng Center: out STD_LOGIC; - light clk: sa STD_LOGIC); - clk para sa flip flop na humahawak sa mga estado na nagtatapos sa Top_File;
arkitektura Pag-uugali ng Top_File ay
ang sangkap na COUNT_8B ay
port (RESET: sa std_logic: = '0'; CLK: sa std_logic; T: out std_logic: = '0'); pagtatapos bahagi; ang sangkap na paggalaw_sensored_light ay Port (S: sa STD_LOGIC; - sesnor; Port JA10 / Pin G3 E: sa STD_LOGIC; - panlabas na pindutan para sa manu-manong pag-andar; Center Button T: sa STD_LOGIC; - kapag umabot ang max sa maximum na oras; Mula sa timer LED: out STD_LOGIC; - light TRST: out STD_LOGIC; - i-reset ang timer clk: sa STD_LOGIC); - clk para sa flip flop na humahawak sa bahagi ng end ng estado; ang pindutan ng sangkap ay Port (btn: sa STD_LOGIC; clk: sa STD_LOGIC; E: out STD_LOGIC); pagtatapos bahagi; signal t_reached_c: std_logic; - signal r_time_c: std_logic; - signal button_c: std_logic;
magsimula
timer: COUNT_8B port map (I-RESET => r_time_c, CLK => CLK, T => t_reached_c); motion_sensor: map_sensored_light port map (S => S, E => button_c, T => t_reached_c, LED => LED, TRST => r_time_c, clk => clk); button_controller: mapa port button (btn => btn, clk => clk, E => button_c); wakasan ang Pag-uugali;
Hakbang 5: Mga Pagpipigil na File
Ngayon kailangan naming tukuyin kung saan ang aming mga input at output ay magiging board.
Kopyahin ang code sa ibaba sa isang vhdl mga hadlang na file na pinangalanang Constraints.
## Ang file na ito ay isang pangkalahatang.xdc para sa Basys3 rev B board ## Upang magamit ito sa isang proyekto: ## - i-unsment ang mga linya na naaayon sa mga ginamit na pin ## - palitan ang pangalan ng mga ginamit na port (sa bawat linya, pagkatapos ng get_ports) ayon sa nangungunang antas ng mga pangalan ng signal sa proyekto
## signal ng Clock
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] ## Mga switch #set_property PACKAGE_PIN V17 [0]} 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_ports {sw [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 {sw [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 W14 [get_ports { [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 IOSTANDARD 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 U1 [get_ports {sw [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 {sw [15]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [15]}]
## mga 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 LVCMOS33 [get_ports {led [1] }] #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 {led [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 { humantong [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_PIN U3 [get_ports {led [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_PIN N3 [get_ports {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 L1 [get_ports {led [15]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [15]}] ## 7 segment display #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 {seg [6] }] #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 {an [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]}]
## Mga Pindutan
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_PINSINSTART_START_START_STARTSTARTSTART_START_STARTSTART_START_START_STARTSTART_START_START_START_START_START_START_START_START_START_START_START_START_START_START_START_START_START_START_START [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 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 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 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]}] ## 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 IOSTANDARD 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_ports 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]}] ## 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 IOSTANDARD 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_ports { JC [7]}]
## Pmod Header 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_ports {JXADC [1] #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]}] ## Sch name = 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 [4]}] #set 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 #set_property 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 IOSSANDAR LOSC [get_ports {JXADC [7]}]
## Konektor ng 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 LVCMOS33 }] #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 LVCM {get the VARTMOT LVCM] 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_propertyContact IOS 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] }OSTAND 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]}]ANDARD_ 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] Hsync] #set_property PACKAGE_PIN R19 [get_ports Vsync] #set_property IOSTANDARD LVCMOS33 [get_ports Vsync]
## USB-RS232 Interface
#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 PS2Data] #set_property IOSTANDARD [PS_START_START_START_START_START_START_START_START_PART_START_START_START_START_PART_START_PART_PART_START_START
## Quad SPI Flash
## Tandaan na ang CCLK_0 ay hindi maaaring mailagay sa 7 mga serye na aparato. Maaari mong ma-access ito gamit ang ## primitive na 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 IOSTANDARD LVCMOS33 }] #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 IOSTANDARD LVCM {QspiDB [3]}] 3]}] #set_property PACKAGE_PIN K19 [get_ports QspiCSn] #set_property IOSTANDARD LVCMOS33 [get_ports QspiCSn]
Hakbang 6: Pag-kable sa PIR Motion Sensor
Ang sensor ng paggalaw ng PIR ay may tatlong mga pin: lakas, gnd, at alarma ayon sa pagkakabanggit (tingnan ang unang larawan). Ang sensor ng paggalaw na iminungkahi sa itinuturo na ito ay maaaring direktang kumonekta sa breadboard. Ngunit para sa sensor na ginamit namin kailangan naming i-cut at i-strip ang mga wire at pagkatapos ay maghinang ang mga nakalantad na dulo upang hindi sila ma-fray. Sa breadboard ipasok ang isang lalaki hanggang babae na jumper wire sa serye na may kapangyarihan at mga ground pin at pagkatapos ay isang lalaki hanggang lalaki na jumper wire na may serye na may alarm pin (tingnan ang pangalawang larawan).
Hakbang 7: Pag-kable ng Up sa LED sa Breadboard
I-plug ang LED sa breadboard. Ipasok ang isang itim na lalaki sa lalaking jumper cable sa serye na may maikling lead ng LED. Pagkatapos plug sa iba't ibang mga may kulay na lalaki sa male jumper cable sa serye na may mahabang lead ng LED.
Hakbang 8: Mga Koneksyon sa Basys Board
Ikonekta ang mga babaeng dulo ng sensor ng paggalaw ng PIR sa pinagmulan ng boltahe na 5 volt sa board ng basys. Pagkatapos ay ikonekta ang lalaking LED ground wire sa lupa ng gilid ng port pagkatapos ay ang alarma wire mula sa sensor ng paggalaw ng PIR at pagkatapos ang LED input wire (tulad ng nakikita sa larawan).
Inirerekumendang:
Gumawa ng Iyong Sariling Sensored ESC: 5 Mga Hakbang
Gumawa ng Iyong Sariling Sensored ESC: Sa proyektong ito ipapakita ko sa iyo kung paano gumagana ang isang na-sensor na BLDC Motor mula sa isang de-kuryenteng bisikleta at kung paano kami makakalikha ng aming sariling naka-sensor na ESC upang hayaan itong paikutin. Magsimula na tayo
Gumawa ng isang Mababang Gastos na Sensored Track sa Mga Minuto !: 10 Hakbang (na may Mga Larawan)
Gumawa ng isang Mababang Subaybayan na Sensored Cost sa Minuto!: Sa aking dating Maaaring Makatuturo, ipinakita ko sa iyo kung paano gumawa ng isang layout ng modelo ng tren na may awtomatikong panghaliling daan. Gumamit ito ng isang segment ng track, na pinangalanang 'sensored track'. Ito ay isang kapaki-pakinabang na bagay na magkaroon sa isang modelo ng layout ng riles. Maaari akong magamit para sa mga sumusunod: I-block
DIY Automatic Motion Sensing Bed LED LED Light ng Bituin: 6 Hakbang (na may Mga Larawan)
Ang DIY Automatic Motion Sensing Bed na LED LEDlaw ng Gabi: Kumusta, Maligayang pagdating ng mga lalaki sa isa pang maituturo na palaging makakatulong sa iyo sa iyong pang-araw-araw na buhay at pagdaragdag ng isang kaginhawaan upang gawing madali ang iyong buhay. Maaari itong paminsan-minsan ay isang tagapagligtas ng buhay sa kaso ng mga taong may edad na kailangang magpumiglas na bumangon sa kama
Ang LED Lamp na Pinagana ng Motion-Operated Motion: 4 na Hakbang
Ang LED Lamp na Pinagana ng Motion-Operated Motion: Kung nais mong maglagay ng ilaw sa isang lugar na hindi pinahiram sa sarili na mai-wire, maaaring ito lang ang kailangan mo
Detektor ng Motion-Range Motion: 5 Mga Hakbang
Maliit na Saklaw ng Paggalaw: Ang itinuturo na ito ay magtuturo sa iyo kung paano gumawa ng isang maliit na saklaw na detector ng paggalaw mula sa murang mga bahagi na maaari mong makuha sa Radioshack. Sa maayos na proyekto na ito, maaari mong ibahin ang ningning ng detector. Ito ang aking unang itinuturo, kaya't mangyaring isipin ang pagiging simple