Mundarija:

Energiyani tejaydigan harakat faollashtirilgan ko'cha chiroqlari: 8 qadam
Energiyani tejaydigan harakat faollashtirilgan ko'cha chiroqlari: 8 qadam

Video: Energiyani tejaydigan harakat faollashtirilgan ko'cha chiroqlari: 8 qadam

Video: Energiyani tejaydigan harakat faollashtirilgan ko'cha chiroqlari: 8 qadam
Video: Sizni 200 % yoqimtoyroq ko’rsatuvchi 10 ta hiyla | TANA TILI 2 2024, Noyabr
Anonim
Energiyani tejaydigan harakat faollashtirilgan ko'cha chiroqlari
Energiyani tejaydigan harakat faollashtirilgan ko'cha chiroqlari

Ushbu loyihadan maqsadimiz jamoalarga energiya va moliyaviy resurslarni tejaydigan narsalarni yaratish edi. Harakatlanuvchi ko'cha chiroqlari bularning barchasini bajaradi. Butun mamlakat bo'ylab energiya bo'sh ko'chalarni yoritadigan ko'cha chiroqlariga sarflanmoqda. Bizning ko'cha chiroqlari tizimi chiroqlar faqat kerak bo'lganda yonishini ta'minlaydi, bu esa jamoalarga son -sanoqsiz dollar tejaydi. Harakat sezgichlari yordamida tizim faqat avtomobillar mavjud bo'lganda chiroqlarni yoqadi. Shuningdek, piyodalar xavfsizligi uchun biz ko'chadagi barcha chiroqlarni yoqib yuboradigan tugmani o'rnatdik. Quyidagi qadamlar sizga Vivado va Basys 3 taxtasi yordamida loyihaning kichraytirilgan modelini qanday ishlab chiqqanimiz va qurganimizni ko'rsatib beradi.

1 -qadam: tizim qora qutisi

Tizim qora qutisi
Tizim qora qutisi

Biz bu loyihani oddiy qora quti diagrammasini chizishdan boshladik. Qora quti diagrammasi bizning tizimimiz barcha kerakli jarayonlarni bajarish uchun zarur bo'lgan kirish va chiqishlarni ko'rsatadi. Biz o'z dizaynimizni iloji boricha sodda va sodda saqlashga harakat qildik. Bizning uchta tizimli kirishga harakat sensorlar avtobusi (bizning kichraytirilgan modelimiz uchun 4 ta), piyodalarni almashtirish tugmasi va soat kiritish kiradi. Boshqa tomondan, bizning yagona chiqishimiz - bu ko'cha chiroqlarini aks ettiruvchi LED chiroqli avtobus. Bu model uchun biz 16 ta ko'cha chiroqlarining ssenariysidan foydalanganmiz, chunki bu Basys 3 taxtasida o'rnatilgan LED chiqishlarining maksimal soni. Nihoyat, ushbu diagramma yordamida biz Vivado loyihasini, manba va cheklov fayllarini tegishli kirish va chiqishlar bilan yaratishga muvaffaq bo'ldik.

2 -qadam: komponentlar

Komponentlar
Komponentlar
Komponentlar
Komponentlar

Ushbu bosqichda biz qora qutining diagrammasini tashkil etuvchi komponentlarni chuqurroq o'rganamiz. Bizning birinchi komponentimiz-D flip-floplarni o'z ichiga olgan VHDL manba fayli. D-flip-floplar soatning ko'tarilayotgan chekkasidagi sensorlar orqali ularga keladigan signalni qabul qiladi va bu ma'lumotni keyingi ko'tarilishgacha ushlab turadi. Bu bizning sezgir harakat sensorlarimizni chiqish LEDlarining "miltillashiga" olib kelmaydi. Bundan tashqari, tugma bosilgandan so'ng LEDni taxminan 5-7 soniya yonib turishi uchun biz tugmachaning kirish signaliga bitta D flip-flop qo'yamiz. Biz buni soatni ajratuvchi orqali ham o'tkazdik.

clk_div2 - bu Port (clk: std_logic; sclk: out std_logic); tugatish clk_div2;

clk_div2 ning my_clk_div arxitekturasi

doimiy max_count: tamsayı: = (300000000); signal tmp_clk: std_logic: = '0'; my_div: process (clk, tmp_clk) o'zgarmaydigan div_cnt: integer: = 0; boshlang if (ko'tarilish_kiri (clk)) keyin, agar (div_cnt = MAX_COUNT), keyin tmp_clk <= tmp_clk emas; div_cnt: = 0; boshqa div_cnt: = div_cnt + 1; tugatish, agar; tugatish, agar; sclk <= tmp_clk; my_div jarayonini tugatish; my_clk_div tugatish;

Ushbu diagrammadagi yakuniy komponentimiz kirish signallari konfiguratsiyasiga asoslangan chiqish shartlarini o'z ichiga olgan xatti -harakatli VHDL manba faylidir.

3-qadam: D-flip-floplar

D Flip-Floplar
D Flip-Floplar

Kirish signallariga biriktirilgan to'rtta flip-flop bizning tizimimiz uchun juda zarur. Yuqorida aytib o'tganimizdek, sezgir harakat sensorlar va bekor qilish tugmachalari bilan flip-floplar bizning kirish signalimizni soatning ko'tarilgan chekkasida chiqarish uchun mandallardan foydalanadi. Bu ketma -ket mantiq, bizning ko'cha chiroqlarimiz tez harakatlanishdan keyin ma'lum vaqtgacha yonib turishini bildiradi. D-Flip Flop uchun kodlash juda oddiy:

beginprocess (CLK) boshlanadi, agar ko'tarilish_kiri (CLK), keyin Q <= D; tugatish, agar; jarayonni tugatish;

Hamma narsa if ifoda shaklida to'planishi mumkin. Bu bo'lakka ega bo'lgach, biz kerakli to'rtta flip-flopni o'z ichiga olgan tizimli VHDL manba faylini yaratdik:

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

xulq -atvorni tugatish;

Bu bizning asosiy tizimli faylimizni saqlashga yordam beradi, bu erda biz tizimning barcha komponentlarini yanada toza va tartibli birlashtiramiz.

4 -qadam: shartli

Kodimizni ixcham va samarali saqlash uchun biz barcha shartlarimizni bitta holat bayonnomasida yozdik. Bizning kichraytirilgan modelimiz uchun bizda 16 ta LED chiqish konfiguratsiyasi mavjud edi, chunki har bir harakat sensori 4 ta LED -lar guruhi uchun javobgardir.:

ish NMS qachon "1111" => LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED yorug'lik LED <= "1111111111111111"; oxirgi holat;

5 -qadam: cheklovlar

Vivado yordamida kirish va chiqishlarni to'g'ri ko'rsatish uchun siz ishlatilayotgan barcha portlar, tugmalar, LEDlar va soatlar ko'rsatilgan cheklov faylini kiritishingiz kerak.

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] [get_ports] 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]} PACP_PPP_PP_PP] 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_proper PACK { 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_proper PACKAG_PIN { 8]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [8]}] set_property PACKAGE_PIN V3 [get_ports {LED [9]}] set_property IO STANDART 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] [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_proper IOSTM {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 LVC [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] {get_ports] 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]}]

6 -qadam: Asosiy manba fayli

Ushbu asosiy faylda biz yuqorida aytib o'tilgan barcha komponentli manba fayllarini birlashtiramiz. Bu fayl turli komponentlarni birlashtiruvchi tizimli kod vazifasini bajaradi.

Master_Final_Project sub'ekti - bu port (BTN: STD_LOGIC da; CLK: STD_LOGIC da; MS: STD_LOGIC_VECTOR da (3 pastga 0 ga); LED: STD_LOGIC_VECTORga (15 pastga 0)); Master_Final_Projectni tugatish;

Master_Final_Project me'morchiligi xatti -harakati

final_project komponenti Port (--CLK: STD_LOGIC da; NMS: STD_LOGIC_VECTOR da (3 pastga 0); BTN: STD_LOGIC da; --sw: STD_LOGIC_Vektorda (1 pastga 0 ga); LED: STD_LOGIC_VECTORga (15 ga 0 ga)); oxirgi komponent;

Final_DFF komponenti

Port (CLK: STD_LOGIC -da; D: STD_LOGIC_Vector -da (3 pastga 0); Q: tashqariga STD_LOGIC_Vektor (3 pastga 0)); oxirgi komponent;

signal DFF02proj30: STD_LOGIC;

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

boshlash

DFF0: Final_DFF port xaritasi (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_proekt port xaritasi (NMS (0) => DFF02proj30, NMS (1) => DFF12proj74, NMS (2) => DFF22proj118, NMS (3) => DFF32proj1512, BTN => BTN, LED => LED); xulq -atvorni tugatish;

7 -qadam: yig'ish

O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish

Ushbu loyiha uchun apparat yig'ilishi minimal. Faqat kerakli qismlar quyidagilar:

1. Basys 3 ta taxta (1)

2. Arzon harakat sensorlar, bu erda amazonda topish mumkin. (4)

3. Erkak-ayol raqibi (4)

O'rnatish:

1. PMod sarlavhasi JB 1-4 portlariga 4 ta erkak simini ulang (Rasmga qarang).

2. Ayol uchlarini har bir harakat sensori chiqish piniga ulang.

8 -qadam: Dasturni yuklash

Endi biz VHDL asosiy manba faylini Basys 3 taxtasiga yuklashga tayyormiz. Mumkin bo'lgan xatolar uchun sintezni, bajarishni va bit oqimini tekshirishni ishga tushirganingizga ishonch hosil qiling. Agar barchasi muvaffaqiyatli bajarilsa, apparat menejerini oching va Basys 3 qurilmasini dasturlashtiring. Sizning loyihangiz endi tugadi!

Tavsiya: