Isi kandungan:

Lampu Jalan Diaktifkan Gerakan Cekap Tenaga: 8 Langkah
Lampu Jalan Diaktifkan Gerakan Cekap Tenaga: 8 Langkah

Video: Lampu Jalan Diaktifkan Gerakan Cekap Tenaga: 8 Langkah

Video: Lampu Jalan Diaktifkan Gerakan Cekap Tenaga: 8 Langkah
Video: 【Multi sub】Supreme Dantian System EP 1-103 2024, November
Anonim
Lampu Jalan Diaktifkan Gerak Cekap Tenaga
Lampu Jalan Diaktifkan Gerak Cekap Tenaga

Matlamat kami dengan projek ini adalah untuk mencipta sesuatu yang dapat menjimatkan sumber tenaga dan kewangan masyarakat. Lampu jalan yang diaktifkan bergerak akan melakukan kedua-dua perkara ini. Tenaga di seluruh negara disia-siakan di lampu jalan yang menerangi jalan-jalan yang kosong. Sistem lampu jalan kami memastikan bahawa lampu hanya menyala apabila diperlukan, menjimatkan wang masyarakat yang tidak terhitung jumlahnya. Dengan menggunakan sensor gerakan, sistem akan menyalakan lampu hanya apabila kereta ada. Juga untuk keselamatan pejalan kaki, kami menggunakan butang ganti yang menyalakan semua lampu di jalan. Langkah-langkah berikut akan memandu anda bagaimana kami merancang dan membina model projek kami yang diperkecil menggunakan Vivado dan papan Basys 3.

Langkah 1: Kotak Hitam Sistem

Kotak Hitam Sistem
Kotak Hitam Sistem

Kami memulakan projek ini dengan melukis gambar rajah kotak hitam sederhana. Gambar rajah kotak hitam menunjukkan input dan output yang diperlukan oleh sistem kita untuk menyelesaikan semua proses yang diperlukan. Kami berusaha memastikan reka bentuk kami sesederhana dan asas mungkin. Tiga input sistem kami merangkumi bas sensor gerakan (4 untuk model skala bawah kami), butang penimpaan pejalan kaki, dan input jam. Di sisi lain output tunggal kami adalah bas lampu LED yang mewakili lampu jalan kami. Untuk model ini, kami menggunakan senario 16 lampu jalan kerana itu adalah jumlah maksimum keluaran LED terpasang di papan Basys 3. Akhirnya, dengan menggunakan rajah ini, kami dapat membuat projek, sumber, dan fail kekangan Vivado kami dengan input dan output yang sesuai.

Langkah 2: Komponen

Komponen
Komponen
Komponen
Komponen

Dalam langkah ini kita menyelami lebih mendalam memeriksa komponen-komponen yang membentuk rajah kotak hitam kita. Komponen pertama kami adalah fail sumber VHDL yang mengandungi D flip-flop. Flip-flop D hanya mengambil apa sahaja isyarat yang dimasukkan ke mereka dari sensor pada tepi jam yang semakin meningkat, dan memasukkan data tersebut sehingga naik ke seterusnya. Ini menjadikan sensor gerakan sensitif kita tidak menyebabkan LED output dari "kelipan". Kami juga meletakkan satu flip-flop D pada isyarat input butang untuk menyalakan LED selama kira-kira 5-7 saat setelah butang ditekan. Kami juga menjalankan ini melalui pembahagi jam.

entiti clk_div2 adalah Port (clk: in std_logic; sclk: out std_logic); tamat clk_div2;

seni bina my_clk_div dari clk_div2 adalah

jumlah maksimum_kata: bilangan bulat: = (300000000); isyarat tmp_clk: std_logic: = '0'; mulakan my_div: proses (clk, tmp_clk) pemboleh ubah div_cnt: integer: = 0; mulakan jika (meningkat_kebaikan (clk)) maka jika (div_cnt = MAX_COUNT) maka tmp_clk <= bukan tmp_clk; div_cnt: = 0; lain div_cnt: = div_cnt + 1; tamat sekiranya; tamat sekiranya; sclk <= tmp_clk; proses akhir my_div; tamatkan my_clk_div;

Komponen terakhir kami dalam rajah ini adalah fail sumber VHDL tingkah laku yang mengandungi syarat untuk output berdasarkan konfigurasi isyarat input.

Langkah 3: D Flip-Flops

D Balik-balik
D Balik-balik

Keempat flip-flop yang terpasang pada isyarat input sangat penting untuk fungsi sistem kami. Seperti yang dinyatakan sebelumnya, dengan sensor gerakan sensitif dan butang ganti, flip-flop menggunakan selak untuk hanya mengeluarkan isyarat input kami di tepi jam yang semakin meningkat. Logik berurutan ini bermaksud lampu jalan kami dapat terus menyala untuk jangka masa yang ditetapkan setelah dipicu oleh gerakan pantas. Pengekodan untuk D-Flip Flop cukup mudah:

beginprocess (CLK) bermula jika meningkat_kebaikan (CLK) maka Q <= D; tamat sekiranya; proses akhir;

Seluruh perkara boleh disusun menjadi satu penyataan jika. Sebaik sahaja kami mempunyai karya ini, kami membuat fail sumber VHDL struktur yang mengandungi keempat-empat flip-flop kami yang diperlukan:

mulakan DFF0: peta port DFF (CLK => CLK, D => D (0), Q => Q (0)); DFF1: Peta port DFF (CLK => CLK, D => D (1), Q => Q (1)); DFF2: Peta port DFF (CLK => CLK, D => D (2), Q => Q (2)); DFF3: Peta port DFF (CLK => CLK, D => D (3), Q => Q (3));

Tingkah laku akhir;

Ini membantu mengekalkan fail struktur utama kami di mana kami mengumpulkan semua komponen sistem dengan lebih bersih dan teratur.

Langkah 4: Bersyarat

Untuk memastikan kod kami tetap padat dan cekap, kami menulis semua syarat dalam satu penyataan kes. Untuk model yang diperkecil, kami mempunyai 16 kemungkinan konfigurasi output LED kerana setiap sensor gerakan bertanggungjawab untuk sekumpulan 4 LED.:

kes NMS ialah apabila "1111" => LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED = = 1111111111111111 "; kes akhir;

Langkah 5: Kekangan

Untuk menyatakan input dan output dengan betul menggunakan Vivado, anda mesti menerapkan fail kekangan yang menyatakan semua port, butang, LED dan jam yang digunakan.

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_Perusahaan] 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 [set_property 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 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 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_prop [L] [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 LVC {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

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] [get_ports {MS] 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]}]

Langkah 6: Fail Sumber Utama

Dalam fail utama ini kami menyatukan semua fail sumber komponen yang disebutkan sebelumnya. Fail ini berfungsi sebagai kod struktur yang menyatukan komponen yang berbeza.

entiti Master_Final_Project adalah Port (BTN: dalam STD_LOGIC; CLK: in STD_LOGIC; MS: in STD_LOGIC_VECTOR (3 downto 0); LED: out STD_LOGIC_VECTOR (15 downto 0)); tamat Master_Final_Project;

seni bina Kelakuan Master_Final_Project adalah

komponen final_project adalah Port (--CLK: in STD_LOGIC; NMS: in STD_LOGIC_VECTOR (3 downto 0); BTN: in STD_LOGIC; --sw: in STD_LOGIC_Vector (1 downto 0); LED: out STD_LOGIC_VECTOR (15 downto 0)); komponen akhir;

komponen Final_DFF adalah

Port (CLK: dalam STD_LOGIC; D: dalam STD_LOGIC_Vector (3 ke bawah 0); Q: keluar STD_LOGIC_Vector (3 ke bawah 0)); komponen akhir;

isyarat DFF02proj30: STD_LOGIC;

isyarat DFF12proj74: STD_LOGIC; isyarat DFF22proj118: STD_LOGIC; isyarat DFF32proj1512: STD_LOGIC;

bermula

DFF0: Peta port Final_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: peta port projek akhir (NMS (0) => DFF02proj30, NMS (1) => DFF12proj74, NMS (2) => DFF22proj118, NMS (3) => DFF32proj1512, BTN => BTN, LED => LED); Tingkah laku akhir;

Langkah 7: Perhimpunan

perhimpunan
perhimpunan
perhimpunan
perhimpunan
perhimpunan
perhimpunan
perhimpunan
perhimpunan

Pemasangan perkakasan untuk projek ini adalah minimum. Kepingan yang diperlukan adalah seperti berikut:

1. Papan basys 3 (1)

2. Sensor gerakan murah yang boleh didapati di amazon di sini. (4)

3. Pemimpin lelaki-ke-wanita (4)

Perhimpunan:

1. Sambungkan 4 petunjuk lelaki ke port JB header JB 1-4 (Lihat Rajah).

2. Sambungkan hujung wanita ke pin output sensor gerakan.

Langkah 8: Memuatkan Program

Sekarang kita bersedia memuatkan fail sumber induk VHDL ke papan Basys 3. Pastikan untuk menjalankan sintesis, pelaksanaan, dan buat pemeriksaan aliran bit untuk sebarang kemungkinan kesilapan. Sekiranya semuanya berjaya dijalankan, buka pengurus perkakasan dan atur cara peranti Basys 3. Projek anda kini selesai!

Disyorkan: