Mundarija:
- 1 -qadam: tizim qora qutisi
- 2 -qadam: komponentlar
- 3-qadam: D-flip-floplar
- 4 -qadam: shartli
- 5 -qadam: cheklovlar
- 6 -qadam: Asosiy manba fayli
- 7 -qadam: yig'ish
- 8 -qadam: Dasturni yuklash
Video: Energiyani tejaydigan harakat faollashtirilgan ko'cha chiroqlari: 8 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
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
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
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
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
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:
Harakat faollashtirilgan qo'riqchi: 5 qadam
Motion Activated Sentinel: " Bu ko'rsatma Janubiy Florida universiteti (www.makecourse.com) Makecourse loyihasi talablarini bajarish uchun yaratilgan " Salom, mening ismim Ruben Duke. Janubiy Flor universiteti mashinasozlik talabasi
Harakat detektori faollashtirilgan chiroq: 6 qadam
Harakat detektori faollashtirilgan chiroq: Men eBay -da infraqizil harakat detektori qurilmasini 1,50 dollarga sotib oldim va uni yaxshi ishlatishga qaror qildim. Men o'zim harakat detektori taxtasini yasagan bo'lardim, lekin 1,50 dollarga (sezgirlikni sozlash va taymerni o'chirish uchun 2 ta idish) o'z ichiga olmaydi
Harakat faollashtirilgan Redstone: 7 qadam (rasmlar bilan)
Harakat faollashtirilgan Redstone: Salom! Bu loyiha - harakatlanuvchi qizil toshli chiroq. Bu mikrokontroller va o'rni ulangan ultratovushli masofali datchik yordamida ishlaydi, bu loyiha minecraft tanloviga kiritiladi va har qanday ovoz, sevimlilar va boshqalar
Taymerli harakat sensori faollashtirilgan LED tasmasi: 6 qadam (rasmlar bilan)
Taymerli harakat sensori faollashtirilgan LED tasmasi: hammaga salom! Men hozir yana bir ko'rsatma yozayotganimdan juda xursandman. Bu loyiha bir necha oy oldin men bilan maslahatchi (" @ @ @ducic) bog'lanishganida, dizayndan yordam so'ragan edim. Shunday qilib, asl spetsifikatsiya: & q
Energiyani tejaydigan kompyuter: 9 qadam
Energiyani tejaydigan kompyuter: Internetda va shaxsiy kompyuterni yaratish bo'yicha maqolalar yozish uchun son -sanoqsiz ko'rsatmalar mavjud. Biroq, energiya tejaydigan kompyuter yaratish bo'yicha qo'llanmalar unchalik ko'p emas. Bu ko'rsatma davomida men sizga qanday tanlash bo'yicha maslahatlar beraman