Sommario:

LED con sensore di movimento: 8 passaggi
LED con sensore di movimento: 8 passaggi

Video: LED con sensore di movimento: 8 passaggi

Video: LED con sensore di movimento: 8 passaggi
Video: Come regolare un sensore di presenza per faro LED da esterno 2024, Luglio
Anonim
Image
Image

Sfondo:

Ti dimentichi mai di spegnere una luce prima di andare a lezione o al lavoro o prima di andare a letto? Quelle ore con le luci accese quando non le usi possono davvero sommarsi in costi e perdite di energia. Ad esempio, secondo solarcity.com, lasciare le luci accese tutta la notte per una settimana può aggiungere $ 25 alla bolletta elettrica! Per il nostro progetto CPE133, progettiamo una luce con sensore di movimento per aiutare le persone a risparmiare energia nelle loro case e utilizzare le luci in modo efficiente.

Il nostro sistema in pratica:

In pratica, le luci si accenderebbero solo quando un sensore rileva un movimento nella stanza. Quindi le luci rimarranno accese per un determinato periodo di tempo, ad esempio circa 30 minuti, e poi si spegneranno automaticamente. Ma supponiamo che tu fossi solo di passaggio o volessi lasciare la stanza prima che il periodo di tempo stabilito fosse terminato. Per questi casi, abbiamo installato un pulsante in cui è possibile accendere o spegnere manualmente le luci. Nota che le luci rimarranno accese per 30 minuti anche quando le luci vengono accese manualmente o automaticamente (a meno che le luci non vengano spente manualmente).

Simulazione a bordo:

Per vedere che il timer funziona abbiamo cambiato il timer a 1 minuto.

Materiali:

  • 1 Basys board (puoi trovarne una qui da Digilent)
  • 1 sensore di movimento PIR (ne trovi uno qui su Amazon)
  • 1 breadboard e kit (suggeriamo di utilizzare questo da Amazon)
  • Dal kit sopra
    • 1 LED
    • 3 cavi jumper femmina-maschio
    • 6 cavi jumper maschio-maschio

Passaggio 1: timer

Affinché il LED rimanga acceso per 1 minuto, dobbiamo prima creare un timer. La scheda Basys 3 ha una frequenza interna di 100MHz rendendo così 100 milioni di cicli pari a 1 secondo. Questo viene quindi utilizzato come variabile che fungerà da numero massimo per "t_cnt". Il t_cnt aumenta di 1 man mano che la scheda Basys 3 completa un ciclo. Una volta raggiunta la soglia dei 100 milioni si azzererà e un'altra variabile, “sec”, aumenterà di 1. Questa variabile “sec” rappresenta il numero di secondi trascorsi e una volta che quella variabile è uguale a 60, è trascorso un intero minuto.

Copia il codice qui sotto in un file sorgente vhdl chiamato Timer.

l'entità COUNT_8B è

porta (RESET: in std_logic;

CLK: in std_logic; T: out std_logic:= '0');

fine COUNT_8B;

architettura my_count of COUNT_8B is

costante max_count: intero:= (100000000); --signal t_cnt: std_logic_vector(7 fino a 0):= "00000000"; segnale t_cnt: intero:= (0); inizio processo (CLK, RESET, t_cnt) variabile sec: intero:= 0; begin if (rising_edge(CLK)) then if (RESET = '1') then t_cnt <= (0); -- clear elsif (t_cnt = max_count) then -- max_count è 100 milioni che è uguale a 1 secondo t_cnt <= (0); -- Reimposta l'orologio interno a 0 sec:= sec + 1; -- Aumenta il nostro 'slow clock' di 1 if (sec = 60) then -- Una volta raggiunti i 60 secondi allora ha raggiunto il tempo massimo sec:= 0; -- Reimposta "orologio lento" a 0 T <= '1'; finisci se; altrimenti t_cnt <= t_cnt + 1; -- aumenta l'orologio interno T <= '0'; finisci se; finisci se; fine del processo; fine mio_conto;

Passaggio 2: ottimizzazione dei pulsanti

GUIDATO
GUIDATO

Poiché la frequenza nelle schede Basys è così alta (circa 100 MHz) quando si preme per quello che si pensa sia un breve lasso di tempo sulla scheda Basys, la si premerà 100.000 volte. Ciò fa sì che la luce sfarfalli rapidamente tra lo stato acceso e spento. Abbiamo cercato di ottimizzare il pulsante creando un diagramma di stato per ridurre lo sfarfallio.

I d-flip-flop manterranno ogni stato e quindi specificheremo le transizioni di stato nell'istruzione di processo.

Copia il codice qui sotto in un file sorgente vhdl chiamato Button.

libreria IEEE; usa IEEE. STD_LOGIC_1164. ALL;

il pulsante dell'entità è

Porta (btn: in STD_LOGIC; clk: in STD_LOGIC; E: fuori STD_LOGIC); pulsante di fine;

architettura Il comportamento del pulsante è

tipo state_type è (PRESSED, NP); segnale PS, NS: state_type:= NP;

inizio

seq_proc: process(NS, clk) begin if(rising_edge(clk)) then PS <= NS; finisci se; fine processo seq_proc;

ns_proc: processo (btn, PS)

inizia il caso PS è quando NP => if (btn = '1') allora NS <= PRESSED; E <= '1'; altrimenti NS <= NP; E se (btn = '0') allora NS <= NP; E <='0'; altrimenti NS <= PREMUTO; E <= '0'; finisci se; caso finale; fine processo ns_proc;

fine comportamentale;

Passaggio 3: LED

Il LED ha due stati: OFF (o IDLE) e ON. Come detto prima, gli stati sono memorizzati in un d-flip-flop. La luce si accende se il sensore rileva un movimento (S=1) o quando viene premuto un pulsante (E=1). Il LED si spegnerà automaticamente se il timer raggiunge 1 minuto (T=1) o manualmente alla pressione di un pulsante (E=1).

Copia il codice seguente in un file sorgente vhdl denominato LED.

entità motion_sensored_light è Porta (S: in STD_LOGIC; -- sesnor; Porta JA10/Pin G3 E: in STD_LOGIC; -- pulsante esterno per la funzione manuale; Pulsante centrale T: in STD_LOGIC; -- quando il timer raggiunge il tempo massimo; dal LED del timer: out STD_LOGIC; -- luce TRST: out STD_LOGIC; -- reset timer clk: in STD_LOGIC); -- clk per flip flop che contengono gli stati end motion_sensored_light;

architettura Il comportamento di motion_sensored_light è

il tipo state_type è (ST0, ST1); --ST0 = MINIMO, ST1 = LED ALTO

segnale PS, NS: state_type:=ST0; -- STATO PRESENTE E STATO PROSSIMO, inizia in ST0 IDLE

inizio

-- blocco del processo del flip flop -- aggiorna lo stato sul fronte di salita dell'orologio seq_proc: process(NS, clk) begin -- d flip flop che contiene gli stati if(rising_edge(clk)) then PS <= NS; finisci se; fine processo seq_proc;

ns_proc: processo (S, E, T, PS)

inizia il caso PS è quando ST0 => LED <= '0'; -- uscite per stato di riposo TRST <= '1'; if (S = '0' OR E = '1') then -- input per la transizione da st0 a st1 NS <= ST1; else LED NS <= '1'; -- uscite per stato ON TRST <= '0'; if (E = '1' OR T = '1') allora -- input a per la transizione da st1 a st0 NS <= ST0; altrimenti NS <= ST1; finisci se; caso finale; fine processo ns_proc;

fine comportamentale;

Passaggio 4: file superiore

Ora andremo a mappare tutti i nostri altri file in uno.

Copia il codice qui sotto in un file sorgente vhdl chiamato Top_File.

libreria IEEE; usa IEEE. STD_LOGIC_1164. ALL;

l'entità Top_File è

Porta (S: in STD_LOGIC:= '1'; -- sesnor; Porta JA10/Pin G3 btn: in STD_LOGIC:= '0'; -- pulsante esterno per funzione manuale; LED pulsante centrale: out STD_LOGIC; -- luce clk: in STD_LOGIC); -- clk per flip flop che contengono gli stati end Top_File;

architettura Il comportamento di Top_File è

il componente COUNT_8B è

porta (RESET: in std_logic:= '0'; CLK: in std_logic; T: out std_logic:= '0'); componente finale; componente motion_sensored_light è Porta (S: in STD_LOGIC; -- sesnor; Porta JA10/Pin G3 E: in STD_LOGIC; -- pulsante esterno per la funzione manuale; Pulsante centrale T: in STD_LOGIC; -- quando il timer raggiunge il tempo massimo; dal LED del timer: out STD_LOGIC; -- luce TRST: out STD_LOGIC; -- reset timer clk: in STD_LOGIC); -- clk per flip flop che contengono la componente finale degli stati; il pulsante del componente è Port (btn: in STD_LOGIC; clk: in STD_LOGIC; E: out STD_LOGIC); componente finale; segnale t_reached_c: std_logic; -- segnale r_time_c: std_logic; -- segnale button_c: std_logic;

inizio

timer: COUNT_8B mappa delle porte (RESET => r_time_c, CLK => CLK, T => t_reached_c); motion_sensor: motion_sensored_light port map(S => S, E => button_c, T => t_reached_c, LED => LED, TRST => r_time_c, clk => clk); button_controller: mappa della porta del pulsante (btn => btn, clk => clk, E => button_c); fine comportamentale;

Passaggio 5: file dei vincoli

Ora dobbiamo definire dove saranno i nostri input e output sulla scheda.

Copia il codice seguente in un file di vincoli vhdl denominato Constraints.

## Questo file è un.xdc generale per la scheda Basys3 rev B## Per utilizzarlo in un progetto: ## - decommenta le righe corrispondenti ai pin utilizzati ## - rinomina le porte utilizzate (in ogni riga, dopo get_ports) secondo ai nomi dei segnali di livello più alto nel progetto

## Segnale orologio

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 {sw[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 {16 [get_port] #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_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 W14 PACKAGE_PIN {get_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_ports IOSTANDARD LVCMOS33 [get_ports {sw[8]}] #set_property PACKAGE_PIN T3 [get_ports {sw[9]}] IOSTANDARD LVCMOS33 [get_ports {sw[9]}] #set_property PACKAGE_PIN T2 [get_ports {sw[10]}] #set_ports 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 [w13] #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 R[2]}] #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 LVCMOS33 {led[1]_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 led[5]}] #set_property PACCHETTO_PIN U14 [get_ports {led[6]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led[6]}] #set_property PACKAGE_PIN V14 [get_ports {led[7]}] #set_property33 IOSTANDARD LVCMOS 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 {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 {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 segmento 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 [eg6_ports U7s }] #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 }] #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]}]

##Pulsanti

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_ports 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]}] IOSTARD_pro LVCMOS33 [get_ports {JB[4]}] ##Sch name = JB8 #set_property PACKAGE_PIN A17 [get_ports {JB[5]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JB[5]}] ##Sch name = JB9 #set_property PACKAGE_PIN C15 [get_ports {JB[6]}] #set_ports IOSTANDARD LVCMOS33 [get_ports {JB[6]}] ##Sch name = JB10 #set_property PACKAGE_PIN C16 [get_ports {JB[7]}] #set_property33 [get_port LVCMOS {get_port LVCMOS 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]}] IOSTARDperty 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_ports IOSTANDARD LVCMOS33 [get_ports {JC[6]}] ##Sch name = JC10 #set_property PACKAGE_PIN R18 [get_ports {JC[7]}] #set_property33 [get_port LVCMOS {get_port LVCMOS 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[1] {X} [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 {JX#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_4OSTARD]}] IXADC 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 # = 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]} IOST] #set_properVC [get_ports {JXADC[7]}]

##Connettore 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[1] IOSTANDARD LVCMOS {get_port LVCMOS }] #set_property PACCHETTO_PIN J19 [get_ports {vgaRed[2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaRed[2]}] #set_property PACKAGE_PIN N19 [get_ports {vgaRed[3]ports] {vgaRedLed[3]ports] [ANDARD_RedVC33 IOST 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 IOST33 vgaBlue[1]}] #set_property PACCHETTO_PIN K18 [get_ports {vgaBlue[2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaBlue[2]}] #set_property PACKAGE_PIN J18 [get_ports {vgaBlue L3]}] #set_property IOST 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]}] IANDset_pro LVCMOS33 [get_ports {vgaGreen[2]}] #set_property PACCHETTO_PIN D17 [get_ports {vgaGreen[3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaGreen[3]}] #set_property PACKAGE_PIN P19 [get_ports_VCARDprosync IOST] #set Hsync] #set_property PACKAGE_PIN R19 [get_ports Vsync] #set_property IOSTANDARD LVCMOS33 [get_ports Vsync]

##Interfaccia 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 NASCOSTO (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_PSULL_PSULLA_PSpertyARDData] LVCset

##Quad SPI Flash

##Nota che CCLK_0 non può essere posizionato nei dispositivi della serie 7. Puoi accedervi usando la primitiva ##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 {QspiDB1]ports }] #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 [DBMOS33QOSTANDARD LVCports 3]}] #set_property PACKAGE_PIN K19 [get_ports QspiCSn] #set_property IOSTANDARD LVCMOS33 [get_ports QspiCSn]

Passaggio 6: cablaggio del sensore di movimento PIR

Cablaggio del sensore di movimento PIR
Cablaggio del sensore di movimento PIR
Cablaggio del sensore di movimento PIR
Cablaggio del sensore di movimento PIR

Il sensore di movimento PIR ha tre pin: alimentazione, massa e allarme rispettivamente (vedi la prima immagine). Il sensore di movimento suggerito in questa istruzione può connettersi direttamente alla breadboard. Ma per il sensore che abbiamo usato abbiamo dovuto tagliare e spellare i fili e poi saldare le estremità esposte per evitare che si sfilacciassero. Sulla breadboard inserire un ponticello maschio-femmina in serie con i pin di alimentazione e massa e quindi un ponticello maschio-maschio in serie con il pin di allarme (vedi seconda immagine).

Passaggio 7: cablaggio del LED nella breadboard

Cablaggio del LED nella breadboard
Cablaggio del LED nella breadboard
Cablaggio del LED nella breadboard
Cablaggio del LED nella breadboard

Collega il LED alla breadboard. Inserire un cavo jumper nero maschio-maschio in serie con il cavo corto del LED. Quindi collegare un cavo jumper maschio a maschio di colore diverso in serie con il cavo lungo del LED.

Passaggio 8: connessioni della scheda Basys

Connessioni della scheda Basys
Connessioni della scheda Basys

Collegare le estremità femmina del sensore di movimento PIR alla sorgente di tensione da 5 volt sulla scheda base. Quindi collegare il cavo di messa a terra maschio del LED nella terra della porta laterale, quindi il cavo di allarme dal sensore di movimento PIR e quindi il cavo di ingresso del LED (come mostrato nell'immagine).

Consigliato: