Talaan ng mga Nilalaman:

Pinapagana ng Lakas ng Kalye ng Mahusay na Enerhiya: 8 Mga Hakbang
Pinapagana ng Lakas ng Kalye ng Mahusay na Enerhiya: 8 Mga Hakbang

Video: Pinapagana ng Lakas ng Kalye ng Mahusay na Enerhiya: 8 Mga Hakbang

Video: Pinapagana ng Lakas ng Kalye ng Mahusay na Enerhiya: 8 Mga Hakbang
Video: Paano Mababasa Ang Isip Ng Isang Tao? (14 PSYCHOLOGICAL TIPS) 2024, Nobyembre
Anonim
Pinapagana ng mga Ilaw sa Kalye ang Mahusay na Motion Energy
Pinapagana ng mga Ilaw sa Kalye ang Mahusay na Motion Energy

Ang aming layunin sa proyektong ito ay upang lumikha ng isang bagay na makatipid sa mga komunidad ng enerhiya at mapagkukunan sa pananalapi. Gawin ng paggalaw ng ilaw ng kalye ang parehong mga bagay na ito. Ang buong enerhiya sa buong bansa ay nasasayang sa mga ilaw ng kalye na ilaw sa mga lansangan na walang laman. Tinitiyak ng aming light system ng kalye na ang mga ilaw ay nakabukas lamang kung kinakailangan, nagse-save ng mga komunidad ng hindi mabilang na dolyar. Gamit ang mga sensor ng paggalaw, ang sistema ay bubukas lamang ng mga ilaw kapag naroroon ang mga kotse. Para din sa kaligtasan ng mga naglalakad, nagpatupad kami ng isang override button na magpapasara sa lahat ng ilaw sa kalye. Dadalhin ka ng mga sumusunod na hakbang sa kung paano namin dinisenyo at binuo ang aming naka-scale na modelo ng proyekto gamit ang Vivado at isang board ng Basys 3.

Hakbang 1: System Black Box

System Black Box
System Black Box

Sinimulan namin ang proyektong ito sa pamamagitan ng pagguhit ng isang simpleng diagram ng itim na kahon. Ipinapakita lamang ng isang diagram ng itim na kahon ang mga input at output na kinakailangan ng aming system upang makumpleto ang lahat ng kinakailangang proseso. Sinubukan naming panatilihin ang aming disenyo bilang simple at pangunahing hangga't maaari. Ang aming tatlong mga input ng system ay may kasamang isang bus ng mga sensor ng paggalaw (4 para sa aming na-scale na modelo), isang pindutan ng override ng pedestrian, at isang input ng orasan. Sa kabilang panig ang aming solong output ay isang bus ng mga LED light na kumakatawan sa aming mga ilaw sa kalye. Para sa modelong ito ginamit namin ang isang senaryo ng 16 mga ilaw sa lansangan nang simple sapagkat iyon ang pinakamataas na bilang ng mga naka-built na LED na output sa board ng Basys 3. Sa wakas, gamit ang diagram na ito nagawa naming lumikha ng aming proyekto ng Vivado, mapagkukunan, at pagpigil ng mga file na may naaangkop na mga input at output.

Hakbang 2: Mga Bahagi

Mga Bahagi
Mga Bahagi
Mga Bahagi
Mga Bahagi

Sa hakbang na ito ay sumisid kami nang mas malalim sa pagsusuri ng mga sangkap na bumubuo sa aming diagram ng itim na kahon. Ang aming unang sangkap ay isang VHDL source file na naglalaman ng mga flip-flop ng D. D flip-flops ay kukuha lamang ng anumang signal na nai-input sa kanila mula sa mga sensor sa tumataas na gilid ng orasan, at mga latches ng data hanggang sa susunod na tumataas na gilid. Pinipigilan nito ang aming mga sensitibong sensor ng paggalaw na maging sanhi ng output LED mula sa "pagkutitap". Gayundin, naglalagay kami ng isang solong D flip-flop sa signal ng pag-input ng pindutan upang mapanatili ang LED sa halos 5-7 segundo matapos na ang pindutan ay naitulak. Pinatakbo din namin ito sa pamamagitan ng isang divider ng orasan.

ang entity clk_div2 ay Port (clk: sa std_logic; sclk: out std_logic); tapusin clk_div2;

arkitektura my_clk_div ng clk_div2 ay

pare-pareho ang max_count: integer: = (300000000); signal tmp_clk: std_logic: = '0'; simulan ang my_div: proseso (clk, tmp_clk) variable div_cnt: integer: = 0; simulan kung (tumataas_edge (clk)) pagkatapos kung (div_cnt = MAX_COUNT) pagkatapos tmp_clk <= hindi tmp_clk; div_cnt: = 0; iba pa div_cnt: = div_cnt + 1; tapusin kung; tapusin kung; sclk <= tmp_clk; tapusin ang proseso my_div; tapusin ang aking_clk_div;

Ang aming pangwakas na sangkap sa diagram na ito ay isang pag-uugaling VHDL source file na naglalaman ng mga kondisyonal para sa mga output batay sa pagsasaayos ng mga input signal.

Hakbang 3: D Flip-Flops

D Flip-Flops
D Flip-Flops

Ang apat na flip-flop na nakakabit sa mga input signal ay mahalaga sa pagpapaandar ng aming system. Tulad ng sinabi dati, na may mga sensitibong sensor ng paggalaw at isang override na pindutan, ang mga flip-flop ay gumagamit ng mga latches upang i-output lamang ang aming input signal sa tumataas na gilid ng orasan. Ang sunud-sunod na lohika na ito ay nangangahulugang ang aming mga ilaw sa kalye ay maaaring manatili sa isang takdang tagal ng oras matapos ma-trigger ng isang mabilis na paggalaw. Ang pag-coding para sa isang D-Flip Flop ay medyo simple:

magsimula ang proseso (CLK) kung tumataas_edge (CLK) pagkatapos Q <= D; tapusin kung; proseso ng pagtatapos;

Ang buong bagay ay maaaring maiipon sa isang solong kung pahayag. Kapag nagkaroon kami ng piraso na ito, lumikha kami ng isang istrukturang VHDL source file na naglalaman ng lahat ng apat sa aming mga kinakailangang flip-flop:

simulan ang DFF0: DFF port map (CLK => CLK, D => D (0), Q => Q (0)); DFF1: DFF port map (CLK => CLK, D => D (1), Q => Q (1)); DFF2: DFF port map (CLK => CLK, D => D (2), Q => Q (2)); DFF3: DFF port map (CLK => CLK, D => D (3), Q => Q (3));

wakasan ang Pag-uugali;

Nakakatulong ito na mapanatili ang aming master struktural file kung saan pinagsasama-sama namin ang lahat ng mga bahagi ng system na mas malinis at maayos.

Hakbang 4: Mga Kundisyon

Upang mapanatili ang aming code na compact at mahusay isinulat namin ang lahat ng aming mga kondisyon sa isang solong pahayag ng kaso. Para sa aming na-scale na modelo, mayroon kaming 16 mga posibleng pagsasaayos ng output ng LED dahil ang bawat sensor ng paggalaw ay responsable para sa isang pangkat ng 4 na LED.:

kaso NMS ay kapag "1111" => LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED <= "1111111111111111"; kaso ng pagtatapos;

Hakbang 5: Mga Pagpipigil

Upang maayos na sabihin ang iyong input at output gamit ang Vivado, dapat mong ipatupad ang isang hadlang file na nagsasabi ng lahat ng mga port, pindutan, LED, at mga orasan na ginagamit.

set_property PACKAGE_PIN W5 [get_ports CLK] set_property IOSTANDARD LVCMOS33 [get_ports CLK]

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_ 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 {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 [LED] 8]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [8]}] set_property PACKAGE_PIN V3 [get_ports {LED [9]}] set_property IO STANDARD 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_propertyCOS IOS33 [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]}]

set_property PACKAGE_PIN U18 [get_ports BTN] set_property IOSTANDARD LVCMOS33 [get_ports BTN]

set_property PACKAGE_PIN A14 [get_ports {MS [0]}] set_property IOSTANDARD LVCMOS33 [get_ports {MS [0]}] set_property PACKAGE_PIN A16 [get_ports {MS [1]}] set_property IOSTANDARD LVCMOS33 [get_ports {MS [1] }AGE_ B15 [get_ports {MS [2]}] set_property IOSTANDARD LVCMOS33 [get_ports {MS [2]}] set_property PACKAGE_PIN B16 [get_ports {MS [3]}] set_property IOSTANDARD LVCMOS33 [get_ports {MS [3]}]

Hakbang 6: Pangunahing File ng Pinagmulan

Sa pangunahing file na pinagsasama namin ang lahat ng mga file ng pinagmulan ng sangkap na nabanggit dati. Ang file na ito ay gumagana bilang code ng istruktura na pinagsasama ang magkakaibang mga sangkap.

ang entity Master_Final_Project ay Port (BTN: sa STD_LOGIC; CLK: sa STD_LOGIC; MS: sa STD_LOGIC_VECTOR (3 hanggang 0); LED: out STD_LOGIC_VECTOR (15 hanggang 0)); wakasan ang Master_Final_Project;

arkitektura Pag-uugali ng Master_Final_Project ay

ang bahagi ng final_project ay Port (--CLK: sa STD_LOGIC; NMS: sa STD_LOGIC_VECTOR (3 pababa 0); BTN: sa STD_LOGIC; --sw: sa STD_LOGIC_Vector (1 hanggang 0); LED: out STD_LOGIC_VECTOR (15 hanggang 0)); pagtatapos bahagi;

bahagi Final_DFF ay

Port (CLK: sa STD_LOGIC; D: sa STD_LOGIC_Vector (3 pababa 0); Q: out STD_LOGIC_Vector (3 hanggang 0)); pagtatapos bahagi;

signal DFF02proj30: STD_LOGIC;

signal DFF12proj74: STD_LOGIC; signal DFF22proj118: STD_LOGIC; signal DFF32proj1512: STD_LOGIC;

magsimula

DFF0: Final_DFF port map (CLK => CLK, D (0) => MS (0), D (1) => MS (1), D (2) => MS (2), D (3) => MS (3), Q (0) => DFF02proj30, Q (1) => DFF12proj74, Q (2) => DFF22proj118, Q (3) => DFF32proj1512); Proj0: final_project port map (NMS (0) => DFF02proj30, NMS (1) => DFF12proj74, NMS (2) => DFF22proj118, NMS (3) => DFF32proj1512, BTN => BTN, LED => LED); wakasan ang Pag-uugali;

Hakbang 7: Assembly

Assembly
Assembly
Assembly
Assembly
Assembly
Assembly
Assembly
Assembly

Ang pagpupulong ng hardware para sa proyektong ito ay minimal. Ang mga kinakailangang piraso lamang ay ang mga sumusunod:

1. Basys 3 board (1)

2. Murang mga sensor ng paggalaw na matatagpuan sa amazon dito. (4)

3. Mga lead ng male-to-female (4)

Assembly:

1. Ikonekta ang 4 na mga male lead sa PMod header JB ports 1-4 (Tingnan ang Larawan).

2. Ikonekta ang mga babaeng nagtatapos sa output pin ng bawat sensor ng paggalaw.

Hakbang 8: Nilo-load ang Program

Handa na kaming mag-load ng VHDL master source file sa Basys 3 board. Tiyaking patakbuhin ang pagbubuo, pagpapatupad, at makabuo ng pag-check ng bitstream para sa anumang mga posibleng pagkakamali. Kung matagumpay na tumatakbo ang lahat, buksan ang hardware manager at i-program ang Basys 3 device. Kumpleto na ang iyong proyekto!

Inirerekumendang: