विषयसूची:

मोशन सेंसर / काउंटर नियंत्रित रोशनी: 7 कदम
मोशन सेंसर / काउंटर नियंत्रित रोशनी: 7 कदम

वीडियो: मोशन सेंसर / काउंटर नियंत्रित रोशनी: 7 कदम

वीडियो: मोशन सेंसर / काउंटर नियंत्रित रोशनी: 7 कदम
वीडियो: How to make Turn counter (object counter) | IR sensor Based Counting Circuit 2024, जुलाई
Anonim
मोशन सेंसर / काउंटर नियंत्रित रोशनी
मोशन सेंसर / काउंटर नियंत्रित रोशनी

यह परियोजना कैल पॉली, सैन लुइस ओबिस्पो (सीपीई १३३) में एक डिजिटल डिजाइन पाठ्यक्रम के लिए एक अंतिम परियोजना के रूप में बनाई गई थी।

हम ऐसा क्यों कर रहे हैं?हम दुनिया में प्राकृतिक संसाधनों के संरक्षण में मदद करना चाहते हैं। हमारी परियोजना बिजली बचाने पर केंद्रित है। अधिक बिजली की बचत करके हम उन प्राकृतिक संसाधनों का संरक्षण करने में सक्षम होंगे जिनका उपयोग बिजली पैदा करने के लिए किया जाता है। जैसा कि हम 2018 की शुरुआत कर रहे हैं, प्राकृतिक संसाधनों का अविश्वसनीय दर से उपभोग किया जा रहा है। हम अपने पर्यावरण पर अपने प्रभाव के प्रति सचेत रहना चाहते हैं और प्राकृतिक संसाधनों के संरक्षण में अपनी भूमिका निभाना चाहते हैं। ऊर्जा बचाने के लिए इलेक्ट्रॉनिक्स को विभिन्न तरीकों से लागू किया जा सकता है जो पर्यावरण के साथ-साथ हमारी आर्थिक स्थिति को भी मदद करता है। * यह मॉडल हमारे लिए उपलब्ध घटकों का उपयोग करके बनाया गया था।

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

आप इस डिज़ाइन का उपयोग कैसे कर सकते हैं? यह डिज़ाइन सभी प्रकार की रोशनी के लिए लागू किया जा सकता है, चाहे वे सजावटी, व्यावहारिक या दोनों हों। उदाहरण के लिए, यदि आप चाहते हैं कि आपकी डेस्क लाइट एक बार में केवल 6 घंटे ही काम करे। आपको काउंटर को 21, 600 सेकेंड (6 घंटे x 3, 600 सेकेंड/घंटा) पर सेट करना होगा। जबकि काउंटर सक्रिय रूप से बढ़ रहा है, गति संवेदक प्रकाश को नियंत्रित करेगा। इस प्रकार, हर बार जब यह उस अवधि के दौरान बंद हो जाता है, तो आपको गति संवेदक के सामने अपना हाथ लहराने की आवश्यकता होती है और यह वापस चालू हो जाएगा। यदि आप अपने डेस्क पर सो जाते हैं और 7 घंटे बाद जागते हैं, तो आपका आंदोलन इसे चालू नहीं करेगा।

चरण 1: आवश्यक सॉफ्टवेयर और हार्डवेयर

आवश्यक सॉफ्टवेयर और हार्डवेयर
आवश्यक सॉफ्टवेयर और हार्डवेयर
आवश्यक सॉफ्टवेयर और हार्डवेयर
आवश्यक सॉफ्टवेयर और हार्डवेयर
आवश्यक सॉफ्टवेयर और हार्डवेयर
आवश्यक सॉफ्टवेयर और हार्डवेयर
आवश्यक सॉफ्टवेयर और हार्डवेयर
आवश्यक सॉफ्टवेयर और हार्डवेयर

सॉफ्टवेयर:

  • विवाडो 2016.2 (या अधिक हाल का संस्करण) यहां पाया जा सकता है
  • Arduino IDE 1.8.3 (या अधिक हाल का संस्करण) यहां पाया जा सकता है

हार्डवेयर:

  • १ बेसिस ३ बोर्ड
  • 1 Arduino Uno
  • 2 ब्रेडबोर्ड
  • 1 अल्ट्रासोनिक रेंजिंग सेंसर HC-SR04
  • 9 नर-से-पुरुष तार
  • 1 एलईडी
  • १ १००Ω रोकनेवाला

चरण 2: कोड (विवाडो)

कोड (विवाडो)
कोड (विवाडो)

परिमित राज्य मशीन (ऊपर राज्य आरेख देखें):

एलईडी को एक परिमित राज्य मशीन की आवश्यकता थी। एक एलईडी के चालू और बंद होने की केवल दो अवस्थाएँ होती हैं। केवल दो इनपुट एलईडी, काउंटर और सेंसर की स्थिति को नियंत्रित करते हैं। केवल तभी एलईडी चालू होनी चाहिए जब सेंसर गति का पता लगाता है और जब काउंटर शून्य से तीस सेकंड तक गिना जाता है। किसी अन्य मामले में एलईडी बंद हो जाएगी।

फ़ाइल का नाम: LEDDES

काउंटर:

काउंटर हमें उस समय की लंबाई को सीमित करने की अनुमति देता है जिसके दौरान गति संवेदक एलईडी को सक्रिय कर सकता है। इसका मान बेसिस 3 बोर्ड के सात खंड डिस्प्ले पर एक स्रोत कोड ("sseg_dec") के माध्यम से प्रदर्शित होता है। जब रीसेट स्विच डाउन हो जाता है (मान: '0'), तो काउंटर हर सेकेंड में 0 से 30 तक बढ़ना शुरू कर देता है। जब यह 30 तक पहुंच जाता है, तो यह उस नंबर पर जम जाता है। यह 0 से तब तक पुनरारंभ नहीं होगा जब तक रीसेट स्विच को '1' पर टॉगल नहीं किया जाता है और '1' पर वापस आ जाता है। यदि काउंटर जाते समय रीसेट '1' हो जाता है, तो काउंटर जिस भी मूल्य पर पहुंच गया था, उस पर फ्रीज हो जाएगा। जब रीसेट '0' पर वापस चला जाता है, तो काउंटर 0 से 30 तक फिर से शुरू हो जाएगा। इस कार्यान्वयन के लिए घड़ी सिग्नल के उपयोग की भी आवश्यकता होती है, इसका कोड नीचे दिया गया है ("clk_div2")।

फ़ाइल का नाम: फाइनल काउंटर

प्रदान की गई फ़ाइलें:

सात खंड प्रदर्शन:

यह कोड सात खंडों को दशमलव मान प्रदर्शित करने की अनुमति देता है। एक सबमॉड्यूल 8-बिट बाइनरी इनपुट और 4-बिट बाइनरी कोडेड दशमलव के बीच डिकोडर के रूप में कार्य करता है। दूसरा एक निश्चित दर पर इसके मूल्य को ताज़ा करने के लिए घड़ी के संकेत को विभाजित करता है।

फ़ाइल का नाम: sseg_dec

घड़ी संकेत:

यह कोड काउंटर को 1 सेकंड की वृद्धि में वृद्धि करने की अनुमति देता है। यह इनपुट क्लॉक फ़्रीक्वेंसी को धीमी फ़्रीक्वेंसी में विभाजित करता है। हमने निरंतर max_count: पूर्णांक: = (3000000)" को "स्थिर max_count: पूर्णांक: = (50000000)" में बदलकर 1 सेकंड की अवधि प्रदान करने के लिए अनुकूलित किया।

फ़ाइल का नाम: clk_div2

प्रदान की गई फ़ाइलें: sseg_dec, clk_div2 *ये स्रोत फ़ाइलें प्रोफेसर ब्रायन मीली द्वारा प्रदान की गई थीं।

चरण 3: यह समझना कि वे एक साथ कैसे आते हैं (VHDL घटकों की योजनाएँ)

यह समझना कि वे एक साथ कैसे आते हैं (VHDL घटकों की योजनाएँ)
यह समझना कि वे एक साथ कैसे आते हैं (VHDL घटकों की योजनाएँ)

मुख्य फ़ाइल (" MainProjectDES ") में पहले चर्चा की गई सभी सबफाइल्स शामिल हैं। वे उपरोक्त तरीके से जुड़े हुए हैं। एक तत्व से दूसरे तत्व को संकेत भेजने के लिए विभिन्न घटकों को पोर्ट मैप का उपयोग करके आपस में जोड़ा जाता है।

जैसा कि आपने देखा होगा, फ़ाइनलकाउंटर 5-बिट आउटपुट प्रदान करता है जबकि sseg_dec को 8-बिट इनपुट की आवश्यकता होती है। क्षतिपूर्ति करने के लिए, हम दोनों घटकों को जोड़ने वाले सिग्नल को "000" से शुरू करने के लिए सेट करते हैं और काउंटर से 5-बिट आउटपुट को ऐड-ऑन करते हैं। इस प्रकार 8-बिट इनपुट प्रदान करना।

प्रतिबंध:

बेसिस 3 बोर्ड पर इन कोडों को चलाने के लिए, एक बाधा फ़ाइल की आवश्यकता थी, जिसमें प्रत्येक सिग्नल को बताया गया था कि कहां जाना है और भागों को कैसे जोड़ा गया है।

चरण 4: कोड (Arduino)

हमने गति का पता लगाने के लिए मोशन सेंसर का उपयोग करने के लिए Arduino Uno को प्रोग्राम किया और एक आउटपुट प्रदान किया जो एलईडी को प्रकाश में आने का संकेत देता है। इसके अतिरिक्त, गति का पता लगाने के लिए सेंसर का उपयोग करने के लिए रनिंग लूप की आवश्यकता होती है जो लगातार दूरी में बदलाव की तलाश करते हैं। अनिवार्य रूप से, इसे एक टाइमर की आवश्यकता होती है जो एलईडी के लिए "उच्च" सिग्नल को आउटपुट करने के लिए समवर्ती रूप से चलता है, जबकि नई गति का पता चलने के बाद टाइमर को रीसेट करने की आवश्यकता होती है, जो ज्ञान के दायरे के आधार पर विवाडो पर लागू करना लगभग असंभव है। कक्षा का। इसके अलावा, हमने एक Arduino का उपयोग किया क्योंकि बेसिस 3 बोर्ड के साथ HC-SR04 का उपयोग करना संभव नहीं होगा क्योंकि बोर्ड केवल 3.3V की आपूर्ति करता है जबकि सेंसर को 5V बिजली की आपूर्ति की आवश्यकता होती है। पता लगाने के आंदोलन के कार्यान्वयन के लिए, यह वीएचडीएल में सीएडी के विपरीत वास्तविक कोडिंग है।

हमने सेंसर के लिए पल्स-इन बिल्ट इन फंक्शन का इस्तेमाल किया ताकि सेंसर से शुरू में निकलने वाली ध्वनि और किसी वस्तु से टकराने पर वापस आने वाली ध्वनि के बीच के समय को पुनः प्राप्त किया जा सके। फिर हम वस्तु और सेंसर के बीच की दूरी की गणना करने के लिए ध्वनि की गति और समय अंतराल का उपयोग करते हैं। उससे हम वर्तमान दूरी को स्टोर करते हैं और उसका ट्रैक रखते हैं। हम हर 150ms पर दूरी की जांच करते हैं। हमने बीते हुए समय का ट्रैक रखने के लिए arduino के अंदर एक आंतरिक टाइमर चलाने के लिए elapsedmil लाइब्रेरी का भी उपयोग किया। यदि हम एक गति के अनुरूप दूरी परिवर्तन का पता लगाते हैं, तो टाइमर शून्य पर रीसेट हो जाता है और यह 3 सेकंड बीत जाने तक प्रकाश को चालू रखेगा। जब भी सेंसर किसी अन्य गति का पता लगाता है, टाइमर 0 पर रीसेट हो जाता है और एलईडी लाइट के लिए सिग्नल अगले 3 सेकंड के लिए "उच्च" होगा। हमने नीचे हमारे Arduino कोड की एक प्रति संलग्न की है।

चरण 5: हमारे घटक एक साथ कैसे फिट होते हैं

हमारे घटक एक साथ कैसे फिट होते हैं!
हमारे घटक एक साथ कैसे फिट होते हैं!
हमारे घटक एक साथ कैसे फिट होते हैं!
हमारे घटक एक साथ कैसे फिट होते हैं!
हमारे घटक एक साथ कैसे फिट होते हैं!
हमारे घटक एक साथ कैसे फिट होते हैं!

जैसा कि आप "Basys3: Pmod पिन-आउट आरेख*" और Arduino Uno बोर्ड की तस्वीर में देख सकते हैं, हमने उन पोर्ट को हाइलाइट और लेबल किया है जिनका हमने उपयोग किया था।

1. एलईडी और बेसिस 3 बोर्ड

LED को 100Ω रेसिस्टर के साथ श्रृंखला में जोड़ा जाता है। - सफेद तार बेसिस 3 बोर्ड के पीडब्लूआर को पिन करने के लिए रोकनेवाला को जोड़ता है। -पीला तार एलईडी को बेसिस 3 बोर्ड के H1 को पिन करने के लिए जोड़ता है।

2. मोशन सेंसर और Arduino Uno

-नारंगी तार Arduino Uno बोर्ड के 5V को पिन करने के लिए मोशन सेंसर के Vcc (पावर) को जोड़ता है।- सफेद तार Arduino Uno बोर्ड के 10 को पिन करने के लिए मोशन सेंसर के पिन ट्रिग को जोड़ता है।-पीला तार पिन इको को जोड़ता है Arduino Uno बोर्ड के 9 को पिन करने के लिए मोशन सेंसर।- ब्लैक वायर Arduino Uno बोर्ड के GND को पिन करने के लिए मोशन सेंसर के पिन GND को जोड़ता है।

[जिन तारों का हमने उपयोग किया, वे घटकों तक पहुंचने के लिए बहुत छोटे थे, इस प्रकार वे आपस में जुड़े हुए थे]

3. बेसिस 3 बोर्ड और Arduino Uno

पीला तार बेसिस 3 बोर्ड के पिन A14 को Arduino Uno बोर्ड के 6 पिन से जोड़ता है।

*यह डायग्राम डिजिलेंट के "बेसिस 3™ एफपीजीए बोर्ड रेफरेंस मैनुअल" से लिया गया है जो यहां पाया जा सकता है।

चरण 6: प्रदर्शन

चरण 7: इसका परीक्षण करने का समय

बधाई हो! आपने इसे हमारे गति संवेदक और काउंटर नियंत्रित प्रकाश परियोजना के अंत तक बना दिया है! हमारे इंस्ट्रक्शंस पोस्ट को पढ़ने के लिए आपका बहुत-बहुत धन्यवाद। अब समय आ गया है कि आप इस परियोजना को स्वयं बनाने का प्रयास करें। यदि आप हर कदम का सावधानी से पालन करते हैं, तो आपके पास एक मोशन सेंसर और काउंटर नियंत्रित प्रकाश होना चाहिए जो हमारे जैसा ही काम करता है! हम आपको इस परियोजना के निर्माण में शुभकामनाएं देते हैं, और आशा करते हैं कि यह बिजली के साथ-साथ प्राकृतिक संसाधनों को बचाने में योगदान दे सकता है!

सिफारिश की: