विषयसूची:

एनर्जी एफिशिएंट मोशन एक्टिवेटेड स्ट्रीट लाइट्स: 8 स्टेप्स
एनर्जी एफिशिएंट मोशन एक्टिवेटेड स्ट्रीट लाइट्स: 8 स्टेप्स

वीडियो: एनर्जी एफिशिएंट मोशन एक्टिवेटेड स्ट्रीट लाइट्स: 8 स्टेप्स

वीडियो: एनर्जी एफिशिएंट मोशन एक्टिवेटेड स्ट्रीट लाइट्स: 8 स्टेप्स
वीडियो: Not the reaction he was hoping for 🥴 2024, नवंबर
Anonim
एनर्जी एफिशिएंट मोशन एक्टिवेटेड स्ट्रीट लाइट्स
एनर्जी एफिशिएंट मोशन एक्टिवेटेड स्ट्रीट लाइट्स

इस परियोजना के साथ हमारा लक्ष्य कुछ ऐसा बनाना था जो समुदायों की ऊर्जा और वित्तीय संसाधनों को बचा सके। मोशन एक्टिवेटेड स्ट्रीट लाइट्स ये दोनों काम करेंगी। पूरे देश में खाली पड़ी सड़कों पर स्ट्रीट लाइट जलाकर बिजली बर्बाद की जा रही है। हमारी स्ट्रीट लाइट प्रणाली सुनिश्चित करती है कि रोशनी केवल जरूरत पड़ने पर ही हो, समुदायों को अनगिनत डॉलर की बचत होती है। मोशन सेंसर का उपयोग करते हुए, सिस्टम केवल कारों के मौजूद होने पर ही रोशनी चालू करता है। साथ ही पैदल चलने वालों की सुरक्षा के लिए, हमने एक ओवरराइड बटन लागू किया जो सड़क पर सभी लाइटों को चालू करता है। निम्नलिखित चरण आपको बताएंगे कि कैसे हमने विवाडो और बेसिस 3 बोर्ड का उपयोग करके परियोजना के हमारे स्केल किए गए मॉडल को डिजाइन और बनाया है।

चरण 1: सिस्टम ब्लैक बॉक्स

सिस्टम ब्लैक बॉक्स
सिस्टम ब्लैक बॉक्स

हमने एक साधारण ब्लैक बॉक्स आरेख बनाकर इस परियोजना की शुरुआत की। एक ब्लैक बॉक्स आरेख केवल सभी आवश्यक प्रक्रियाओं को पूरा करने के लिए हमारे सिस्टम को आवश्यक इनपुट और आउटपुट दिखाता है। हमने अपने डिजाइन को यथासंभव सरल और बुनियादी रखने की कोशिश की। हमारे तीन सिस्टम इनपुट में मोशन सेंसर्स (हमारे स्केल किए गए मॉडल के लिए 4) की एक बस, एक पैदल यात्री ओवरराइड बटन और एक घड़ी इनपुट शामिल है। दूसरी तरफ हमारा सिंगल आउटपुट हमारी स्ट्रीट लाइट का प्रतिनिधित्व करने वाली एलईडी लाइट्स की एक बस है। इस मॉडल के लिए हमने 16 स्ट्रीट लाइट के परिदृश्य का उपयोग केवल इसलिए किया क्योंकि यह बेसिस 3 बोर्ड पर एलईडी आउटपुट की अधिकतम संख्या है। अंत में, इस आरेख का उपयोग करके हम उपयुक्त इनपुट और आउटपुट के साथ अपना विवाडो प्रोजेक्ट, स्रोत और बाधा फ़ाइलें बनाने में सक्षम थे।

चरण 2: घटक

अवयव
अवयव
अवयव
अवयव

इस चरण में हम अपने ब्लैक बॉक्स आरेख को बनाने वाले घटकों की गहराई से जांच करते हैं। हमारा पहला घटक एक वीएचडीएल स्रोत फ़ाइल है जिसमें डी फ्लिप-फ्लॉप है। डी फ्लिप-फ्लॉप बस घड़ी के बढ़ते किनारे पर सेंसर से जो भी सिग्नल इनपुट कर रहा है, उसे ले लेता है, और उस डेटा को अगले बढ़ते किनारे तक ले जाता है। यह हमारे संवेदनशील गति संवेदकों को आउटपुट एलईडी को "झिलमिलाहट" से पैदा करने से रोकता है। इसके अलावा, हम बटन को पुश करने के बाद लगभग 5-7 सेकंड के लिए एलईडी को चालू रखने के लिए बटन इनपुट सिग्नल पर सिंगल डी फ्लिप-फ्लॉप लगाते हैं। हमने इसे क्लॉक डिवाइडर के माध्यम से भी चलाया।

इकाई clk_div2 पोर्ट है (clk: std_logic में; sclk: बाहर std_logic); अंत clk_div2;

clk_div2 का आर्किटेक्चर my_clk_div है

निरंतर max_count: पूर्णांक:= (३००००००००); सिग्नल tmp_clk: std_logic: = '0'; my_div शुरू करें: प्रक्रिया (clk, tmp_clk) चर div_cnt: पूर्णांक: = 0; शुरू करें अगर (राइजिंग_एज (क्लक)) तो अगर (div_cnt = MAX_COUNT) तो tmp_clk <= नहीं tmp_clk; div_cnt:= 0; अन्य div_cnt:= div_cnt + 1; अगर अंत; अगर अंत; स्केल <= tmp_clk; अंतिम प्रक्रिया my_div; my_clk_div समाप्त करें;

इस आरेख में हमारा अंतिम घटक एक व्यवहारिक वीएचडीएल स्रोत फ़ाइल है जिसमें इनपुट सिग्नल के कॉन्फ़िगरेशन के आधार पर आउटपुट के लिए सशर्त शामिल हैं।

चरण 3: डी फ्लिप-फ्लॉप

डी फ्लिप-फ्लॉप
डी फ्लिप-फ्लॉप

इनपुट सिग्नल से जुड़े चार फ्लिप-फ्लॉप हमारे सिस्टम की कार्यक्षमता के लिए आवश्यक हैं। जैसा कि पहले कहा गया है, संवेदनशील गति संवेदक और एक ओवरराइड बटन के साथ, फ्लिप-फ्लॉप घड़ी के बढ़ते किनारे पर केवल हमारे इनपुट सिग्नल को आउटपुट करने के लिए कुंडी का उपयोग करता है। इस अनुक्रमिक तर्क का अर्थ है कि हमारी स्ट्रीट लाइट एक त्वरित गति से चालू होने के बाद एक निश्चित अवधि के लिए चालू रह सकती है। डी-फ्लिप फ्लॉप के लिए कोडिंग बहुत सरल है:

स्टार्टप्रोसेस (सीएलके) शुरू होता है अगर राइजिंग_एज (सीएलके) तो क्यू <= डी; अगर अंत; प्रक्रिया समाप्त;

पूरी बात को एक बयान में संकलित किया जा सकता है। एक बार हमारे पास यह टुकड़ा होने के बाद, हमने एक संरचनात्मक वीएचडीएल स्रोत फ़ाइल बनाई जिसमें हमारे सभी चार आवश्यक फ्लिप-फ्लॉप शामिल हैं:

DFF0 शुरू करें: DFF पोर्ट मैप (CLK => CLK, D => D(0), Q => Q(0)); DFF1: DFF पोर्ट मैप (CLK => CLK, D => D(1), Q => Q(1)); DFF2: DFF पोर्ट मैप (CLK => CLK, D => D(2), Q => Q(2)); DFF3: DFF पोर्ट मैप (CLK => CLK, D => D(3), Q => Q(3));

अंत व्यवहार;

यह हमारे मास्टर स्ट्रक्चरल फाइल को रखने में मदद करता है जहां हम सभी सिस्टम घटकों को एक साथ अधिक स्वच्छ और व्यवस्थित करते हैं।

चरण 4: सशर्त

अपने कोड को कॉम्पैक्ट और कुशल रखने के लिए हमने अपने सभी कंडीशन को सिंगल केस स्टेटमेंट में लिखा है। हमारे स्केल किए गए मॉडल के लिए, हमारे पास 16 संभावित एलईडी आउटपुट कॉन्फ़िगरेशन थे क्योंकि प्रत्येक मोशन सेंसर 4 एलईडी के समूह के लिए ज़िम्मेदार है।:

मामला NMS तब है जब "1111" => LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED <= "1111111111111111"; अंतिम मामला;

चरण 5: बाधाएं

विवाडो का उपयोग करके अपने इनपुट और आउटपुट को ठीक से बताने के लिए, आपको उपयोग किए जा रहे सभी पोर्ट, बटन, एलईडी और घड़ियों को बताते हुए एक बाधा फ़ाइल को लागू करना होगा।

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_property IOSTANDARD LVCMOS33 [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]}] set_property 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_PARTI 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[7]}] set_property PACKAGE_PIN V14 8]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[8]}] set_property PACKAGE_PIN V3 [get_ports {LED[9]}] set_property IO मानक LVCMOS33 [get_ports {LED[9]}] set_property PACKAGE_PIN W3 [get_ports {LED[10]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[10]}] set_property पैकेज_पिन U3 [get_ports] {LED33 [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 {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 [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_property PAGE_PARTs {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]}]

चरण 6: मुख्य स्रोत फ़ाइल

इस मुख्य फाइल में हम पहले बताए गए सभी कंपोनेंट सोर्स फाइल्स को एक साथ लाते हैं। यह फ़ाइल अलग-अलग घटकों को एक साथ लाने वाले संरचनात्मक कोड के रूप में कार्य करती है।

इकाई Master_Final_Project पोर्ट है (BTN: STD_LOGIC में; CLK: STD_LOGIC में; MS: STD_LOGIC_VECTOR (3 डाउन टू 0); LED: आउट STD_LOGIC_VECTOR (15 डाउनटू 0)); मास्टर_फाइनल_प्रोजेक्ट समाप्त करें;

मास्टर_फाइनल_प्रोजेक्ट का आर्किटेक्चर व्यवहार है

घटक final_project पोर्ट है (--CLK: STD_LOGIC में; NMS: STD_LOGIC_VECTOR (3 डाउनटू 0) में; BTN: STD_LOGIC में; --sw: STD_LOGIC_Vector (1 डाउनटू 0); LED: आउट STD_LOGIC_VECTOR (15 डाउनटू 0)); अंत घटक;

घटक Final_DFF है

पोर्ट (CLK: STD_LOGIC में; D: STD_LOGIC_Vector (3 डाउनटू 0) में; Q: STD_LOGIC_Vector से बाहर (3 डाउनटू 0)); अंत घटक;

संकेत DFF02proj30: STD_LOGIC;

संकेत DFF12proj74: STD_LOGIC; सिग्नल DFF22proj118: STD_LOGIC; सिग्नल DFF32proj1512: STD_LOGIC;

शुरू

DFF0: 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: final_project पोर्ट मैप (NMS(0) => DFF02proj30, NMS(1) => DFF12proj74, NMS(2) => DFF22proj118, NMS(3) => DFF32proj1512, BTN => BTN, LED => LED); अंत व्यवहार;

चरण 7: विधानसभा

सभा
सभा
सभा
सभा
सभा
सभा
सभा
सभा

इस परियोजना के लिए हार्डवेयर असेंबली न्यूनतम है। केवल आवश्यक टुकड़े इस प्रकार हैं:

1. बेसिस 3 बोर्ड (1)

2. सस्ते मोशन सेंसर जो यहां अमेज़न पर मिल सकते हैं। (4)

3. पुरुष-से-महिला लीड (4)

सभा:

1. 4 पुरुष लीड को पीएमओडी हेडर जेबी पोर्ट्स 1-4 से कनेक्ट करें (चित्र देखें)।

2. महिला सिरों को प्रत्येक मोशन सेंसर के आउटपुट पिन से कनेक्ट करें।

चरण 8: कार्यक्रम लोड हो रहा है

अब हम VHDL मास्टर सोर्स फाइल को बेसिस 3 बोर्ड में लोड करने के लिए तैयार हैं। किसी भी संभावित त्रुटि के लिए संश्लेषण, कार्यान्वयन और बिटस्ट्रीम जाँच चलाना सुनिश्चित करें। यदि सभी सफलतापूर्वक चलते हैं, तो हार्डवेयर मैनेजर खोलें और बेसिस 3 डिवाइस को प्रोग्राम करें। आपका प्रोजेक्ट अब पूरा हो गया है!

सिफारिश की: