Orodha ya maudhui:

Mwendo wa Nishati Ulioamilishwa Taa za Mtaa: Hatua 8
Mwendo wa Nishati Ulioamilishwa Taa za Mtaa: Hatua 8

Video: Mwendo wa Nishati Ulioamilishwa Taa za Mtaa: Hatua 8

Video: Mwendo wa Nishati Ulioamilishwa Taa za Mtaa: Hatua 8
Video: DEMU ALIWA NYUMA HADI KINYESI CHATOKA (ANGALIA VIDEO HADI MWISHO) 2024, Novemba
Anonim
Mwendo wa Nishati Ulioamilishwa Taa za Mtaa
Mwendo wa Nishati Ulioamilishwa Taa za Mtaa

Lengo letu na mradi huu ilikuwa kuunda kitu ambacho kingeokoa jamii nishati na rasilimali fedha. Mwendo ulioamilishwa taa za barabarani ungefanya vitu hivi viwili. Nchini kote nishati inapotea kwenye taa za barabarani zikiwasha barabara ambazo hazina kitu. Mfumo wetu wa taa za barabarani unahakikisha taa zinawashwa tu wakati zinahitajika, kuokoa jamii kwa dola isitoshe. Kutumia sensorer za mwendo, mfumo huwasha taa tu wakati magari yapo. Pia kwa usalama wa watembea kwa miguu, tulitekeleza kitufe cha kubatilisha ambacho huwasha taa zote barabarani. Hatua zifuatazo zitakutembeza jinsi tulivyobuni na kujenga mfano wetu wa mradi uliopungua kwa kutumia Vivado na bodi ya Basys 3.

Hatua ya 1: Mfumo wa Sanduku Nyeusi

Mfumo Sanduku Nyeusi
Mfumo Sanduku Nyeusi

Tulianza mradi huu kwa kuchora mchoro rahisi wa sanduku nyeusi. Mchoro wa sanduku jeusi unaonyesha tu pembejeo na matokeo mfumo wetu unahitaji kukamilisha michakato yote muhimu. Tulijaribu kuweka muundo wetu kuwa rahisi na wa msingi iwezekanavyo. Pembejeo zetu tatu za mfumo zilijumuisha basi ya sensorer za mwendo (4 kwa mfano wetu uliopunguzwa), kitufe cha kupuuza kwa watembea kwa miguu, na pembejeo la saa. Kwa upande mwingine pato letu moja ni basi la taa za LED zinazowakilisha taa zetu za barabarani. Kwa mtindo huu tulitumia hali ya taa 16 za barabarani kwa sababu hiyo ndiyo idadi kubwa ya kujengwa kwa matokeo ya LED kwenye bodi ya Basys 3. Mwishowe, kwa kutumia mchoro huu tuliweza kuunda mradi wetu wa Vivado, chanzo, na faili za kikwazo na pembejeo na matokeo yanayofaa.

Hatua ya 2: Vipengele

Vipengele
Vipengele
Vipengele
Vipengele

Katika hatua hii tunatumbukia kwa kina kuchunguza vifaa vinavyounda mchoro wetu wa sanduku jeusi. Sehemu yetu ya kwanza ni faili ya chanzo ya VHDL iliyo na D flip-flops. D flip-flops tu kuchukua ishara yoyote ni kuwa pembejeo kwao kutoka sensorer kwenye makali ya kupanda kwa saa, na latches kwamba data katika mpaka ijayo kupanda makali. Hii inafanya sensorer zetu nyeti zisisababisha pato la LED kutoka "kuangaza". Pia, tunaweka flip-flop moja ya D kwenye ishara ya kuingiza kitufe ili kuweka taa za LED kwa sekunde 5-7 baada ya kitufe kusukumwa. Sisi pia tuliendesha hii kupitia mgawanyiko wa saa.

chombo clk_div2 ni Port (clk: in std_logic; sclk: out std_logic); mwisho clk_div2;

usanifu my_clk_div ya clk_div2 ni

hesabu ya mara kwa mara ya max: integer: = (300000000); ishara tmp_clk: std_logic: = '0'; Anza my_div: mchakato (clk, tmp_clk) div_cnt: nambari kamili: = 0; Anza ikiwa (kupanda_dge (clk)) basi ikiwa (div_cnt = MAX_COUNT) basi tmp_clk <= sio tmp_clk; div_cnt: = 0; mwingine div_cnt: = div_cnt + 1; mwisho ikiwa; mwisho ikiwa; sclk <= tmp_clk; mchakato wa mwisho my_div; maliza div_clk_div yangu;

Sehemu yetu ya mwisho kwenye mchoro huu ni faili ya chanzo ya tabia ya VHDL iliyo na viyoyozi kwa matokeo kulingana na usanidi wa ishara za kuingiza.

Hatua ya 3: D Flip-Flops

D Flip-Flops
D Flip-Flops

Vipande vinne vilivyounganishwa na ishara za kuingiza ni muhimu kwa utendaji wa mfumo wetu. Kama ilivyosemwa hapo awali, na sensorer nyeti za mwendo na kitufe cha kubatilisha, matembezi hutumia latches kutoa tu ishara yetu ya kuingiza kwenye makali ya saa. Mantiki hii inayofuatana inamaanisha taa zetu za barabarani zinaweza kukaa kwa muda uliowekwa baada ya kuchochewa na mwendo wa haraka. Uwekaji wa C-Flip Flop ni rahisi sana:

mchakato wa kuanza (CLK) anza ikiwa kupanda_edge (CLK) kisha Q <= D; mwisho ikiwa; mchakato wa mwisho;

Jambo lote linaweza kukusanywa kwa taarifa moja ikiwa. Mara tu tulipokuwa na kipande hiki, tuliunda faili ya chanzo ya VHDL iliyo na maandishi yetu manne muhimu:

anza DFF0: Ramani ya bandari ya DFF (CLK => CLK, D => D (0), Q => Q (0)); DFF1: Ramani ya bandari ya DFF (CLK => CLK, D => D (1), Q => Q (1)); DFF2: Ramani ya bandari ya DFF (CLK => CLK, D => D (2), Q => Q (2)); DFF3: Ramani ya bandari ya DFF (CLK => CLK, D => D (3), Q => Q (3));

mwisho Tabia;

Hii inasaidia kuweka faili yetu kuu ya muundo ambapo tunakusanya vifaa vyote vya mfumo safi zaidi na kupangwa.

Hatua ya 4: Masharti

Ili kuweka nambari yetu sawa na yenye ufanisi tuliandika hali zetu zote katika taarifa ya kesi moja. Kwa mfano wetu uliopunguzwa, tulikuwa na usanidi 16 wa pato la LED kwani kila sensorer ya mwendo inawajibika kwa kikundi cha 4 za LED.:

kesi NMS ni wakati "1111" => LED ya LED ya LED ya LED ya LED ya LED ya LED ya LED ya LED ya LED ya LED ya LED <= "1111111111111111"; kesi ya mwisho;

Hatua ya 5: Vikwazo

Ili kusema vizuri pembejeo na matokeo ukitumia Vivado, lazima utekeleze faili ya kikwazo inayosema bandari zote, vifungo, LED, na saa zinazotumika.

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]}] 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 [uwanja_PACKAGE_PIN U14 [get_property 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] KIWANGO 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 IOST [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 [{LED [13]}] set_property PACKAGE_PIN P1 [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]}] 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]}]

Hatua ya 6: Faili Kuu ya Chanzo

Katika faili kuu hii tunakusanya faili zote za chanzo zilizotajwa hapo awali. Faili hii inafanya kazi kama nambari ya kimuundo inayoleta pamoja vifaa visivyo tofauti.

Mradi wa Master_Final_Project ni Bandari (BTN: katika STD_LOGIC; CLK: katika STD_LOGIC; MS: katika STD_LOGIC_VECTOR (3 chini ya 0); LED: nje STD_LOGIC_VECTOR (15 downto 0)); mwisho Master_Final_Project;

Tabia ya usanifu wa Master_Final_Project ni

mradi final_project ni Port (--CLK: in STD_LOGIC; NMS: in STD_LOGIC_VECTOR (3 downto 0); BTN: in STD_LOGIC; - sw: katika STD_LOGIC_Vector (1 downto 0); LED: nje STD_LOGIC_VECTOR (15 downto 0)); sehemu ya mwisho;

sehemu ya mwisho_DFF ni

Bandari (CLK: katika STD_LOGIC; D: katika STD_LOGIC_Vector (3 chini ya 0); Swali: nje STD_LOGIC_Vector (3 chini ya 0)); sehemu ya mwisho;

ishara DFF02proj30: STD_LOGIC;

ishara DFF12proj74: STD_LOGIC; ishara DFF22proj118: STD_LOGIC; ishara DFF32proj1512: STD_LOGIC;

anza

DFF0: Ramani ya bandari ya mwisho_DFF (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 ramani ya bandari (NMS (0) => DFF02proj30, NMS (1) => DFF12proj74, NMS (2) => DFF22proj118, NMS (3) => DFF32proj1512, BTN => BTN, LED => LED); mwisho Tabia;

Hatua ya 7: Mkutano

Mkutano
Mkutano
Mkutano
Mkutano
Mkutano
Mkutano
Mkutano
Mkutano

Mkutano wa vifaa vya mradi huu ni mdogo. Vipande vinavyohitajika tu ni kama ifuatavyo:

1. Basys 3 bodi (1)

2. Sensorer za mwendo wa bei rahisi ambazo zinaweza kupatikana kwenye amazon hapa. (4)

3. Wanaume-kwa-wanawake wanaongoza (4)

Mkutano:

1. Unganisha inaongoza kwa wanaume 4 kwa bandari za PMod JB bandari 1-4 (Tazama Kielelezo).

2. Unganisha ncha za kike kwa pini ya kila sensorer ya mwendo.

Hatua ya 8: Kupakia Programu

Sasa tuko tayari kupakia faili kuu ya VHDL kwenye bodi ya Basys 3. Hakikisha kuendesha usanidi, utekelezaji, na utafute ufuatiliaji wa njia ndogo kwa makosa yoyote yanayowezekana. Ikiwa zote zinaendesha kwa mafanikio, fungua meneja wa vifaa na upange kifaa cha Basys 3. Mradi wako sasa umekamilika!

Ilipendekeza: