Daftar Isi:

Lampu Jalan Diaktifkan Gerakan Hemat Energi: 8 Langkah
Lampu Jalan Diaktifkan Gerakan Hemat Energi: 8 Langkah

Video: Lampu Jalan Diaktifkan Gerakan Hemat Energi: 8 Langkah

Video: Lampu Jalan Diaktifkan Gerakan Hemat Energi: 8 Langkah
Video: Cara Kerja Lampu Jalan Otomatis 2024, November
Anonim
Lampu Jalan Diaktifkan Gerakan Hemat Energi
Lampu Jalan Diaktifkan Gerakan Hemat Energi

Tujuan kami dengan proyek ini adalah untuk menciptakan sesuatu yang akan menghemat energi masyarakat dan sumber daya keuangan. Lampu jalan yang diaktifkan dengan gerakan akan melakukan kedua hal ini. Di seluruh negeri, energi terbuang sia-sia untuk penerangan jalan yang menerangi jalan-jalan yang kosong. Sistem lampu jalan kami memastikan bahwa lampu hanya menyala saat dibutuhkan, menghemat banyak uang masyarakat. Menggunakan sensor gerak, sistem menyalakan lampu hanya jika ada mobil. Juga untuk keselamatan pejalan kaki, kami menerapkan tombol override yang menyalakan semua lampu di jalan. Langkah-langkah berikut akan memandu Anda melalui bagaimana kami merancang dan membangun model proyek yang diperkecil menggunakan Vivado dan papan Basys 3.

Langkah 1: Kotak Hitam Sistem

Kotak Hitam Sistem
Kotak Hitam Sistem

Kami memulai proyek ini dengan menggambar diagram kotak hitam sederhana. Diagram kotak hitam hanya menunjukkan input dan output yang dibutuhkan sistem kami untuk menyelesaikan semua proses yang diperlukan. Kami mencoba untuk menjaga desain kami sesederhana dan sesederhana mungkin. Tiga input sistem kami termasuk bus sensor gerak (4 untuk model kami yang diperkecil), tombol penyeberangan pejalan kaki, dan input jam. Di sisi lain output tunggal kami adalah bus lampu LED yang mewakili lampu jalan kami. Untuk model ini kami menggunakan skenario 16 lampu jalan karena itulah jumlah maksimum output LED yang terpasang pada papan Basys 3. Akhirnya, dengan menggunakan diagram ini kami dapat membuat file proyek, sumber, dan kendala Vivado kami dengan input dan output yang sesuai.

Langkah 2: Komponen

Komponen
Komponen
Komponen
Komponen

Pada langkah ini kita menyelam lebih dalam memeriksa komponen yang membentuk diagram kotak hitam kita. Komponen pertama kami adalah file sumber VHDL yang berisi D flip-flop. D flip-flop hanya mengambil sinyal apa pun yang dimasukkan ke mereka dari sensor di tepi naik jam, dan mengunci data itu sampai tepi naik berikutnya. Ini membuat sensor gerak sensitif kami tidak menyebabkan output LED dari "berkedip". Selain itu, kami menempatkan satu flip-flop D pada sinyal input tombol agar LED tetap menyala selama sekitar 5-7 detik setelah tombol ditekan. Kami juga menjalankan ini melalui pembagi jam.

entitas clk_div2 adalah Port (clk: di std_logic; sclk: keluar std_logic); akhir clk_div2;

arsitektur my_clk_div dari clk_div2 adalah

konstan max_count: integer:= (3000000000); sinyal tmp_clk: std_logic:= '0'; mulai my_div: proses (clk, tmp_clk) variabel div_cnt: integer:= 0; mulai if (rising_edge(clk)) lalu if (div_cnt = MAX_COUNT) maka tmp_clk <= bukan tmp_clk; div_cnt:= 0; lain div_cnt:= div_cnt + 1; berakhir jika; berakhir jika; sclk <= tmp_clk; akhiri proses my_div; akhiri my_clk_div;

Komponen terakhir kami dalam diagram ini adalah file sumber perilaku VHDL yang berisi persyaratan untuk output berdasarkan konfigurasi sinyal input.

Langkah 3: D Flip-Flop

D Flip-Flop
D Flip-Flop

Empat flip-flop yang terpasang pada sinyal input sangat penting untuk fungsionalitas sistem kami. Seperti yang dikatakan sebelumnya, dengan sensor gerak sensitif dan tombol override, flip-flop menggunakan kait untuk hanya mengeluarkan sinyal input kami di tepi naik jam. Logika sekuensial ini berarti lampu jalan kita dapat tetap menyala selama jangka waktu tertentu setelah dipicu oleh gerakan cepat. Pengkodean untuk D-Flip Flop cukup sederhana:

beginprocess (CLK) dimulai jika rising_edge(CLK) maka Q <= D; berakhir jika; proses akhir;

Semuanya dapat dikompilasi menjadi satu pernyataan if. Setelah kami memiliki bagian ini, kami membuat file sumber VHDL struktural yang berisi keempat sandal jepit yang kami perlukan:

mulai 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));

akhir Perilaku;

Ini membantu menjaga file struktural utama kami di mana kami menyatukan semua komponen sistem jauh lebih bersih dan terorganisir.

Langkah 4: Kondisional

Untuk menjaga kode kami tetap kompak dan efisien, kami menulis semua persyaratan kami dalam satu pernyataan kasus. Untuk model yang diperkecil, kami memiliki 16 kemungkinan konfigurasi output LED karena setiap sensor gerak bertanggung jawab atas sekelompok 4 LED.:

kasus NMS adalah ketika "1111" => LED LED LED LED LED LED LED LED LED LED LED LED LED LED <= "11111111111111111"; kasus akhir;

Langkah 5: Kendala

Untuk menyatakan input dan output Anda dengan benar menggunakan Vivado, Anda harus menerapkan file kendala yang menyatakan semua port, tombol, 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_PIN] set {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 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 {LED[get_ports {LED[get_ports] 8]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[8]}] set_property PACKAGE_PIN V3 [get_ports {LED[9]}] set_property IO STANDAR 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 [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 LVCM {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 [ambil_LVCMOS {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_property {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]}]

Langkah 6: File Sumber Utama

Dalam file utama ini kami menyatukan semua file sumber komponen yang disebutkan sebelumnya. File ini berfungsi sebagai kode struktural yang menyatukan komponen yang berbeda.

entitas Master_Final_Project adalah Port (BTN: di STD_LOGIC; CLK: di STD_LOGIC; MS: di STD_LOGIC_VECTOR (3 turun ke 0); LED: keluar STD_LOGIC_VECTOR (15 turun ke 0)); akhiri Master_Final_Project;

arsitektur Perilaku Master_Final_Project adalah

komponen final_project adalah Port (--CLK: di STD_LOGIC; NMS: di STD_LOGIC_VECTOR (3 turun ke 0); BTN: di STD_LOGIC; --sw: di STD_LOGIC_Vector (1 turun ke 0); LED: keluar STD_LOGIC_VECTOR (15 turun ke 0)); komponen akhir;

komponen Final_DFF adalah

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

sinyal DFF02proj30: STD_LOGIC;

sinyal DFF12proj74: STD_LOGIC; sinyal DFF22proj118: STD_LOGIC; sinyal DFF32proj1512: STD_LOGIC;

mulai

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 final_project (NMS(0) => DFF02proj30, NMS(1) => DFF12proj74, NMS(2) => DFF22proj118, NMS(3) => DFF32proj1512, BTN => BTN, LED => LED); akhir Perilaku;

Langkah 7: Perakitan

perakitan
perakitan
perakitan
perakitan
perakitan
perakitan
perakitan
perakitan

Perakitan perangkat keras untuk proyek ini minimal. Satu-satunya bagian yang diperlukan adalah sebagai berikut:

1. Papan Basys 3 (1)

2. Sensor gerak murah yang dapat ditemukan di amazon di sini. (4)

3. Pemeran utama pria-ke-wanita (4)

Perakitan:

1. Hubungkan 4 lead male ke port JB header PMod 1-4 (Lihat Gambar).

2. Hubungkan ujung betina ke setiap pin keluaran sensor gerak.

Langkah 8: Memuat Program

Sekarang kita siap untuk memuat file sumber master VHDL ke papan Basys 3. Pastikan untuk menjalankan sintesis, implementasi, dan menghasilkan pemeriksaan bitstream untuk kemungkinan kesalahan. Jika semua berhasil, buka pengelola perangkat keras dan program perangkat Basys 3. Proyek Anda sekarang selesai!

Direkomendasikan: