विषयसूची:

डॉग मूड डिटेक्टर (रास्पबेरी पाई): 5 कदम
डॉग मूड डिटेक्टर (रास्पबेरी पाई): 5 कदम

वीडियो: डॉग मूड डिटेक्टर (रास्पबेरी पाई): 5 कदम

वीडियो: डॉग मूड डिटेक्टर (रास्पबेरी पाई): 5 कदम
वीडियो: OpenCV + Raspberry Pi + Funny Dog 2024, मई
Anonim
डॉग मूड डिटेक्टर (रास्पबेरी पाई)
डॉग मूड डिटेक्टर (रास्पबेरी पाई)

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

चरण 1: भाग

पार्ट्स
पार्ट्स
पार्ट्स
पार्ट्स
पार्ट्स
पार्ट्स

आपको चाहिये होगा:

  • रास्पबेरी पाई
  • लाल/हरा एलईडी (X2)
  • मॉनिटर
  • यूएसबी के साथ कीबोर्ड/माउस
  • वाईफ़ाई डोंगल
  • बाहरी यूएसबी माइक्रोफोन
  • 330 ओम रेसिस्टर (X2)

वैकल्पिक भाग

  • बाहरी रास्पबेरी पाई बिजली की आपूर्ति
  • कुत्ते का पट्टा

चरण 2: प्रक्रिया

प्रक्रिया
प्रक्रिया

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

चरण 3: प्रोग्रामिंग

प्रोग्रामिंग
प्रोग्रामिंग

नीचे मैं अपने कुत्ते के लिए उपयोग किया जाने वाला पायथन प्रोग्राम है। अगले चरण में मैं समझाऊंगा कि आपके कुत्ते के व्यवहार के लिए कार्यक्रम को कैसे संशोधित किया जाए। प्रोग्राम को अभी तक न चलाएं क्योंकि यह तब तक काम नहीं करेगा जब तक आप अगला कदम नहीं उठाते।

#!/usr/bin/pythonimport pyaudio आयात sys समय से आयात धागा सरणी से आयात नींद आयात सरणी आयात RPi. GPIO GPIO के रूप में

छाल = 0

Howl=गलत पकड़ = 0 बार्कलेंथ = 5 देरी = 0 प्रतीक्षा = 2 ध्वज = 0 लाल = 7 हरा = 5 निकास ध्वज = गलत

डीईएफ़ टॉगललाइटरेड (सी):

GPIO.setmode(GPIO. BOARD) GPIO.setup(red, GPIO. OUT) GPIO.output(c, True) sleep(10) GPIO.output(c, False) प्रिंट ("रेड टॉगल")

डीईएफ़ टॉगललाइटग्रीन (सी):

GPIO.setmode(GPIO. BOARD) GPIO.setup(green, GPIO. OUT) GPIO.output(c, True) sleep(10) GPIO.output(c, False) प्रिंट ("ग्रीन टॉगल")

डीईएफ़ मुख्य ():

ग्लोबल बार्क ग्लोबल हॉवेल ग्लोबल होल्ड ग्लोबल बार्कलेंथ ग्लोबल डिले ग्लोबल फ्लैग ग्लोबल रेड ग्लोबल ग्रीन

चंक = ८१९२

FORMAT = pyaudio.paInt16 चैनल = 1 दर = ४४१०० थ्रेशोल्ड = ३००० max_value = ० p = pyaudio. PyAudio () स्ट्रीम = p.open (प्रारूप = प्रारूप, चैनल = चैनल, दर = दर, इनपुट = सही, आउटपुट = सही, फ्रेम_पर_बफर = चंक) GPIO.setmode (GPIO. BOARD) GPIO.setup (लाल, GPIO. OUT) GPIO.setup (हरा, GPIO. OUT) कोशिश करें: "डिटेक्शन इनिशियलाइज़्ड" प्रिंट करें जबकि सही: कोशिश करें: डेटा = स्ट्रीम। पढ़ें (चंक) IOError को छोड़कर पूर्व के रूप में: यदि पूर्व [1]! = pyudio.paInputOverflowed: डेटा बढ़ाएं = '\ x00' * खंड as_ints = सरणी ('h', डेटा) max_value = अधिकतम (as_ints) जबकि max_value> दहलीज: देरी = 0 होल्ड = होल्ड + 1 कोशिश करें: डेटा = स्ट्रीम। पढ़ें (खंड) IOError को छोड़कर पूर्व: यदि पूर्व [1]! = pyudio.paInputOverflowed: डेटा बढ़ाएं = '\ x00' * खंड as_ints = सरणी ('एच', डेटा) max_value = max(as_ints) अगर होल्ड> = बार्कलेंथ: हॉवेल = ट्रू प्रिंट "HOWL DETECTED" टॉगललाइटग्रीन (हरा) GPIO.cleanup () एलिफ होल्ड> 0 और होल्ड

अगर _name_ == '_main_':

मुख्य()

चरण 4: समस्या निवारण और संशोधन

समस्या निवारण और संशोधन
समस्या निवारण और संशोधन
समस्या निवारण और संशोधन
समस्या निवारण और संशोधन
समस्या निवारण और संशोधन
समस्या निवारण और संशोधन

सेट अप

प्रोग्राम चलाने से पहले आपको PyAudio को स्थापित करने के लिए टर्मिनल में निम्नलिखित टाइप करना होगा:

sudo apt-get intal python-pyaudio

इसके बाद आप यह सुनिश्चित करने के लिए प्रोग्राम को टेस्ट-रन कर सकते हैं कि यह ठीक से काम कर रहा है।

समस्या निवारण

आपको निम्न त्रुटि का अनुभव हो सकता है:

IOError: [इरनो इनपुट ओवरफ्लो हो गया] -9981

इसे ठीक करने के लिए, बस वेरिएबल चंक को असाइन की गई संख्या को तब तक बढ़ाएं जब तक कि त्रुटि अब प्रकट न हो जाए।

संशोधित करना

चर बार्कलेंथ शोर से पहले प्रोग्राम लूप की संख्या को अब छाल के रूप में नहीं, बल्कि एक हॉवेल के रूप में देखा जाता है। यदि आपके कुत्ते चिल्लाते हैं, लेकिन ऐसा केवल थोड़े समय के लिए ही करते हैं तो आपको यह संख्या कम कर देनी चाहिए।

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

हालांकि मैं अपने कार्यक्रम में सक्रिय रूप से परिवर्तनशील विलंब का उपयोग नहीं करता, यह भौंकने या गरजने की आवृत्ति को इंगित करने के लिए देखा जा सकता है।

वेरिएबल होल्ड से तात्पर्य है कि प्रोग्राम कितनी बार लूप करता है जहां शोर का स्तर दहलीज से ऊपर होता है और यह निर्धारित करने के लिए उपयोग किया जाता है कि कोई हॉवेल हो रहा है या नहीं। इस चर को किसी भी तरह से संशोधित नहीं किया जाना चाहिए क्योंकि बार्कलेंथ चर के हेरफेर के माध्यम से हाउल्स का पता लगाया जाता है।

थ्रेशोल्ड वेरिएबल को कम किया जा सकता है यदि छाल बहुत जोर से नहीं है या अगर पृष्ठभूमि शोर है तो कुत्ते से निकलने वाले शोर के रूप में गलत व्याख्या की जा सकती है।

चरण 5: हार्डवेयर

हार्डवेयर
हार्डवेयर
हार्डवेयर
हार्डवेयर
हार्डवेयर
हार्डवेयर

यह इस बिंदु पर है कि आपके पास पूरी तरह से कार्य करने वाला प्रोग्राम होना चाहिए जो स्क्रीन पर प्रदर्शित करता है कि हार्डवेयर क्या कर रहा होगा। परियोजना में यह बिंदु है जहां आपको यह तय करना चाहिए कि क्या यह एक स्थिर माइक्रोफ़ोन होगा जो एक स्थान पर सेट है (उदा। घर में एक जगह जहां कुत्ता आम तौर पर बार-बार आता है या आगंतुकों के संपर्क में आता है) या यदि परियोजना को छोटा किया जाएगा और कुत्ते के साथ बातचीत करने वाले व्यक्ति को तत्काल प्रतिक्रिया प्रदान करने के लिए कुत्ते के कॉलर से जुड़ा हुआ है।

स्थावर

सबसे आसान काम यह है कि सब कुछ एक ब्रेडबोर्ड पर छोड़ दें क्योंकि ऐसा कोई आंदोलन नहीं होगा जो तारों को अलग कर सके। रास्पबेरी पाई और एनोड्स पर रेड एल ई डी के कैथोड को ग्राउंड पिन से या तो 330 ओम रेसिस्टर के माध्यम से या सीधे रास्पबेरी पाई के पिन 7 में कनेक्ट करें। ग्रीन एल ई डी के साथ भी ऐसा ही करें लेकिन एनोड्स को पिन 5 से कनेक्ट करें। प्रोग्राम को चलाएं और कोड को अपनी आवश्यकताओं के अनुसार संशोधित करने के बाद आपके पास एक पूर्ण प्रोजेक्ट होना चाहिए।

गैर-स्टेशनरी

मैं यह सुनिश्चित करने के लिए पहले स्थिर संस्करण को पूरा करने की सलाह दूंगा कि सब कुछ काम कर रहा है और फिर सब कुछ एक साथ मिलाप करके वहां से आगे बढ़ें ताकि कुत्ते के आंदोलन से कोई तार असंबद्ध न हो जाए।

एलईडी को कॉलर से संलग्न करें ताकि वे दोनों एक आरामदायक स्थिति में हों और किसी के पास आने पर उन्हें देखा जा सके।

इसके बाद अपनी बाहरी बिजली की आपूर्ति को कनेक्ट करें जैसे कि HERE को रास्पबेरी पाई से कनेक्ट करें और इसे कॉलर से इस तरह से सुरक्षित करें जो कुत्ते के लिए आरामदायक हो।

एक बार सब कुछ सुरक्षित हो जाने के बाद आगे बढ़ें और प्रोग्राम चलाएं, कुत्ते को कॉलर संलग्न करें, और आपका काम हो गया!

सिफारिश की: