Sisällysluettelo:
- Vaihe 1: Ajastin
- Vaihe 2: Painikkeiden optimointi
- Vaihe 3: LED
- Vaihe 4: Ylin tiedosto
- Vaihe 5: Rajoitustiedosto
- Vaihe 6: PIR -liikeanturin kytkentä
- Vaihe 7: Ledboardin LED -kytkentä
- Vaihe 8: Basys -kortin liitännät
Video: Liiketunnistin -LED: 8 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
Tausta:
Unohdatko koskaan sammuttaa valon ennen kuin lähdet luokalle tai töihin tai ennen nukkumaanmenoa? Ne tunnit, joissa valot ovat päällä, kun niitä ei käytetä, voivat todella lisätä kustannuksia ja energian menetystä. Esimerkiksi solarcity.comin mukaan valojen sytyttäminen koko yön viikoksi voi lisätä 25 dollaria sähkölaskuusi! Suunnittelemme CPE133 -projektillemme liiketunnistinvalon, joka auttaa ihmisiä säästämään energiaa kodeissaan ja käyttämään valojaan tehokkaasti.
Järjestelmämme käytännössä:
Käytännössä valot syttyvät vasta, kun anturi havaitsee liikkeen huoneessa. Sitten valot palavat tietyn ajan, kuten noin 30 minuuttia, ja sammuvat sitten automaattisesti. Mutta oletetaan, että olit juuri kulkemassa tai halusit poistua huoneesta aikaisin ennen kuin asetettu aika oli ohi. Näissä tapauksissa asensimme painikkeen, jolla voit kytkeä valot päälle tai pois manuaalisesti. Huomaa, että valot pysyvät päällä 30 minuuttia, vaikka valot sytytetään manuaalisesti tai automaattisesti (ellei valoja sammuteta manuaalisesti).
Simulaatio aluksella:
Nähdäksemme, että ajastin toimii, muutimme ajastimen 1 minuutiksi.
Materiaalit:
- 1 Basys -levy (sellaisen löydät täältä Digilentiltä)
- 1 PIR -liiketunnistin (löydät sen täältä Amazonista)
- 1 leipälauta ja pakkaus (suosittelemme käyttämään tätä Amazonista)
- Yllä olevasta paketista
- 1 LED
- 3 naaras -uros -hyppykaapelia
- 6 uros -uros -hyppykaapelia
Vaihe 1: Ajastin
Jotta LED -valo palaisi 1 minuutin ajan, meidän on ensin luotava ajastin. Basys 3 -levyn sisäinen taajuus on 100 MHz, mikä tekee 100 miljoonasta jaksosta yhden sekunnin. Tätä käytetään sitten muuttujana, joka toimii t_cnt -enimmäislukuna. T_cnt kasvaa yhdellä, kun Basys 3 -levy suorittaa syklin. Kun se saavuttaa 100 miljoonan rajan, se nollautuu ja toinen muuttuja, "sek", kasvaa yhdellä. Tämä "sek" -muuttuja edustaa kuluneiden sekuntien määrää ja kun muuttuja on yhtä suuri kuin 60, on kulunut täysi minuutti.
Kopioi alla oleva koodi vhdl -lähdetiedostoon nimeltä Ajastin.
entiteetti COUNT_8B on
portti (RESET: in std_logic;
CLK: in std_logic; T: out std_logic: = '0');
loppu COUNT_8B;
arkkitehtuuri my_count of COUNT_8B on
vakio max_count: kokonaisluku: = (100000000); --signal t_cnt: std_logic_vector (7 to 0): = "00000000"; signaali t_cnt: kokonaisluku: = (0); aloita prosessi (CLK, RESET, t_cnt) muuttuja sec: integer: = 0; aloita jos (nouseva reuna (CLK)) sitten jos (RESET = '1') sitten t_cnt <= (0); - tyhjennä elsif (t_cnt = max_count) sitten- max_count on 100 miljoonaa, joka vastaa 1 sekuntia t_cnt <= (0); - Palauttaa sisäisen kellon 0 sekunniksi: = sek + 1; - Lisää "hidasta kelloa" yhdellä, jos (sek = 60) sitten- Kun se saavuttaa 60 sekuntia, se on saavuttanut maksimiajan sek: = 0; - Palauttaa "hitaan kellon" 0 T <= '1'; loppu Jos; muuten t_cnt <= t_cnt + 1; - lisää sisäistä kelloa T <= '0'; loppu Jos; loppu Jos; lopeta prosessi; end my_count;
Vaihe 2: Painikkeiden optimointi
Koska Basys -levyjen taajuus on niin korkea (noin 100 MHz), kun painat Basys -levylle sitä, mikä mielestäsi on lyhyt aika, painat sitä 100 000 kertaa. Tämä saa valon vilkkumaan nopeasti päälle ja pois päältä. Yritimme optimoida painiketta luomalla tilakaavion välkkymisen vähentämiseksi.
D-flip-flopit pitävät jokaisen tilan ja määritämme sitten tilasiirtymät prosessilauseessa.
Kopioi alla oleva koodi vhdl -lähdetiedostoon nimeltä Button.
kirjasto IEEE; käytä IEEE. STD_LOGIC_1164. ALL;
entiteettipainike on
Portti (btn: STD_LOGIC; clk: STD_LOGIC; E: out STD_LOGIC); lopetuspainike;
arkkitehtuuri Napin käyttäytyminen on
tyyppi state_type on (PRESSED, NP); signaali PS, NS: tila_tyyppi: = NP;
alkaa
seq_proc: prosessi (NS, clk) alkaa, jos (nouseva reuna (clk)) sitten PS <= NS; loppu Jos; lopeta prosessi seq_proc;
ns_proc: prosessi (btn, PS)
aloita tapaus PS on kun NP => jos (btn = '1') niin NS <= PAINETTU; E <= '1'; muut NS <= NP; E jos (btn = '0'), niin NS <= NP; E <= '0'; muu NS <= PAINETTU; E <= '0'; loppu Jos; päätykotelo; lopeta prosessi ns_proc;
lopeta käyttäytyminen;
Vaihe 3: LED
LED -valossa on kaksi tilaa: OFF (tai IDLE) ja ON. Kuten aiemmin sanottiin, tilat tallennetaan d-flip-flopiin. Valo syttyy, jos anturi havaitsee liikkeen (S = 1) tai kun painiketta painetaan (E = 1). LED sammuu automaattisesti, jos ajastin saavuttaa 1 minuutin (T = 1) tai manuaalisesti, kun painiketta painetaan (E = 1).
Kopioi alla oleva koodi vhdl -lähdetiedostoon nimeltä LED.
entiteetti motion_sensored_light on portti (S: STD_LOGIC; - sesnor; portti JA10/nasta G3 E: STD_LOGIC; - ulkoinen painike manuaalista toimintaa varten; keskipainike T: STD_LOGIC; - kun ajastin saavuttaa maksimiajan; ajastimen LED -valosta: out STD_LOGIC; - kevyt TRST: out STD_LOGIC; - nollaa ajastimen clk: STD_LOGIC -tilassa); - clk flip flopille, joka pitää tilat end motion_sensored_light;
arkkitehtuuri Motion_sensored_light on käyttäytyminen
tyyppi state_type on (ST0, ST1); --ST0 = IDLE, ST1 = LED KORKEA
signaali PS, NS: tila_tyyppi: = ST0; - NYKYINEN TILA JA SEURAAVA TILA, alkaa ST0 IDLE
alkaa
- flip flopin prosessilohko- päivittää tilan kellon nousevalle reunalle seq_proc: process (NS, clk) begin- d flip flop, joka pitää tilat if (nouseva reuna (clk)) sitten PS <= NS; loppu Jos; lopeta prosessi seq_proc;
ns_proc: prosessi (S, E, T, PS)
aloita tapaus PS on, kun ST0 => LED <= '0'; - lähdöt valmiustilalle TRST <= '1'; jos (S = '0' TAI E = '1') niin - tulot siirtymiseen st0: sta st1 NS <= ST1; muu NS LED <= '1'; - lähdöt tilassa TRST <= '0'; jos (E = '1' T T = '1') niin - syöttää siirtymään st1: st0 st0 NS <= ST0; muut NS <= ST1; loppu Jos; päätykotelo; lopeta prosessi ns_proc;
lopeta käyttäytyminen;
Vaihe 4: Ylin tiedosto
Nyt siirrämme kaikki muut tiedostot yhdeksi.
Kopioi alla oleva koodi vhdl -lähdetiedostoon nimeltä Top_File.
kirjasto IEEE; käytä IEEE. STD_LOGIC_1164. ALL;
entiteetti Top_File on
Portti (S: in STD_LOGIC: = '1'; - sesnor; Port JA10/Pin G3 btn: in STD_LOGIC: = '0'; - ulkoinen painike manuaalista toimintaa varten; Keskipainikkeen LED: out STD_LOGIC; - valo clk: STD_LOGIC: ssa); - clk flip flopille, joka pitää tilat loppuun Top_File;
arkkitehtuuri Top_Filen käyttäytyminen on
komponentti COUNT_8B on
portti (RESET: in std_logic: = '0'; CLK: in std_logic; T: out std_logic: = '0'); päätyosa; komponentti motion_sensored_light on portti (S: STD_LOGIC; - sesnor; portti JA10/nasta G3 E: STD_LOGIC; - ulkoinen painike manuaalista toimintaa varten; keskipainike T: STD_LOGIC; - kun ajastin saavuttaa maksimiajan; ajastimen LED -valosta: out STD_LOGIC; - kevyt TRST: out STD_LOGIC; - nollaa ajastimen clk: STD_LOGIC -tilassa); - clk flip flopille, joka pitää tilojen pääkomponentin; komponenttipainike on Portti (btn: STD_LOGIC; clk: STD_LOGIC; E: out STD_LOGIC); päätyosa; signaali t_reach_c: std_logic; - signaali r_time_c: std_logic; - signaalipainike_c: std_logic;
alkaa
ajastin: COUNT_8B porttikartta (RESET => r_time_c, CLK => CLK, T => t_reach_c); motion_sensor: motion_sensored_light -porttikartta (S => S, E => button_c, T => t_reaches_c, LED => LED, TRST => r_time_c, clk => clk); button_controller: painikeportti (btn => btn, clk => clk, E => button_c); lopeta käyttäytyminen;
Vaihe 5: Rajoitustiedosto
Nyt meidän on määriteltävä, missä panoksemme ja tuotoksemme ovat taululla.
Kopioi alla oleva koodi vhdl -rajoitustiedostoon nimeltä Rajoitukset.
## Tämä tiedosto on yleinen.xdc Basys3 rev B -levylle projektin ylätason signaalin nimiin
## Kellosignaali
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] ## Kytkimet #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 [get] #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]}] #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 WAP [saada] [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_ARD Property I 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] #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]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [15]}]
## LEDit
#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 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 LVCport33 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 LVC 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 {[UUSI] [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 {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 [get_ports {led [15]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [15]}] ## 7 segmentin näyttö #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_port] }] #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]}]
## Painikkeet
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 -otsikko 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_ARD Property IAND 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 -otsikko 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]}] 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 LVCport JB [7]}]
## Pmod -otsikko 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]}] 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 LVCport JC [7]}]
## Pmod -otsikko 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_port] #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 {JXAD # = 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_port_FI] 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 #X_3 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_tiedot [get_ports {JXADC [7]}]
## VGA -liitin
#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_propertyMOSARD }] #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_ARDRports 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] LV_SET] {set 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 {vga} I_ [_] 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_pr] 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 P19s_port_port_port_port_port Hsync] #set_property PACKAGE_PIN R19 [get_ports Vsync] #set_property IOSTANDARD LVCMOS33 [get_ports Vsync]
## USB-RS232-liitäntä
#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 PS2_tiedosto] PS2DAP]
## Quad SPI Flash
## Huomaa, että CCLK_0 ei voi sijoittaa 7 -sarjan laitteisiin. Voit käyttää sitä käyttämällä ## STARTUPE2 -primitiiviä. #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 [get_portsport] }] #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]}] #s_start_production 3]}] #set_property PACKAGE_PIN K19 [get_ports QspiCSn] #set_property IOSTANDARD LVCMOS33 [get_ports QspiCSn]
Vaihe 6: PIR -liikeanturin kytkentä
PIR -liiketunnistimessa on kolme nastaa: virta, gnd ja hälytys (katso ensimmäinen kuva). Tässä ohjeessa ehdotettu liikeanturi voidaan kytkeä suoraan leipälautaan. Mutta käyttämämme anturin osalta meidän oli leikattava ja poistettava johdot ja juotettava sitten paljaat päät, jotta ne eivät murene. Aseta leipälevylle uros -naarashyppyjohdin sarjaan virta- ja maadoitusliittimillä ja sitten uros -uros -hyppyjohdin sarjaan hälytystapin kanssa (katso toinen kuva).
Vaihe 7: Ledboardin LED -kytkentä
Kytke LED -valo leipälevyyn. Liitä musta uros -urosliitinkaapeli sarjaan LED -valon lyhyellä johdolla. Kytke sitten eriväriset uros -uros -kaapelit sarjaan LED -valon pitkällä johdolla.
Vaihe 8: Basys -kortin liitännät
Liitä PIR -liiketunnistimen naaraspäät bassokortin 5 voltin jännitelähteeseen. Liitä sitten urospuolinen LED -maadoitusjohto sivuportin maahan, sitten hälytysjohto PIR -liiketunnistimesta ja sitten LED -tulojohto (kuten kuvassa).
Suositeltava:
Raspberry Pi -liiketunnistin IFTTT: 4 vaihetta
Raspberry Pi -liiketunnistin IFTTT: Hei. Olen 4. luokkalainen ja tänään aiomme tehdä IFTTT -liiketunnistimen
ESP-01-liiketunnistin syvällä unella: 5 vaihetta
ESP-01-liiketunnistin, jossa on syvä uni: Olen työskennellyt kotitekoisten liikeanturien valmistamiseksi, jotka lähettävät sähköpostiviestin, kun ne laukaistaan. On monia esimerkkejä ohjeista ja muita esimerkkejä tästä. Minun piti äskettäin tehdä tämä paristokäyttöisellä PIR -liiketunnistimella ja ESP: llä
Käden liiketunnistin: 5 vaihetta
Käden liiketunnistin: Yleiskatsaus Tässä projektissa teemme käsineen, joka tunnistaa joitakin käden perusliikkeitä MicroBitin ja muutaman anturin avulla. Käytämme MicroBitin Bluetooth -ominaisuuksia yhdessä Android -sovelluksen ja verkkopalvelimen kanssa
Liiketunnistin Nerf -ase: 8 vaihetta
Liiketunnistin Nerf Gun: Hei! Olen Cameron. Tätä opastettavaa varten näytän sinulle, kuinka tehdä liike -aktivoitu Nerf -ase. Se on hieman vaikeaa, mutta 100% ULOS
Arduino -pohjainen PIR -liiketunnistin: 4 vaihetta
Arduino -pohjainen PIR -liiketunnistin: Tämän projektin avulla voit hallita PIR: n korkeaa tilaa ja herkkyyttä