Talaan ng mga Nilalaman:

Motion Sensored LED: 8 Hakbang
Motion Sensored LED: 8 Hakbang

Video: Motion Sensored LED: 8 Hakbang

Video: Motion Sensored LED: 8 Hakbang
Video: TWO-EYED CAMERA SURPRISED AFTER UPDATE!!! 2024, Nobyembre
Anonim
Image
Image

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

LED
LED

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

Pag-wire sa PIR Motion Sensor
Pag-wire sa PIR Motion Sensor
Pagkabit ng PIR Motion Sensor
Pagkabit ng 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

Pag-kable ng Up sa LED sa Breadboard
Pag-kable ng Up sa LED sa Breadboard
Pag-kable ng Up sa LED sa Breadboard
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

Mga Koneksyon sa Basys Board
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: