विज्ञापन
वर्ष का वह समय फिर से आता है जब यह छोटे बच्चों को घबराने और उन्हें कैंडी देने के लिए सामाजिक रूप से स्वीकार्य है। ओह खुशी। मैं आपकी नौकरी को आसान बनाने के लिए यहां हूं, आपको एक सरल गति-संवेदन रास्पबेरी पाई हेलोवीन साउंडबॉक्स बनाने का तरीका दिखाते हुए। यहाँ एक डेमो है:
यहाँ आपको क्या चाहिए होगा
संभवतः आपके पास पहले से मौजूद एक मात्र हिस्सा मोशन सेंसर नहीं है, एक छोटा और सस्ता हिस्सा जिसे आप अपने स्थानीय माइक्रोकेंटर या मैपलिन में पा सकते हैं।
- रास्पबेरी पाई (कोई भी मॉडल करेगा)।
- मोशन सेंसर (~ $ 3)।
- हुकअप तार।
- वायर्ड स्पीकर (अधिकांश ब्लूटूथ स्पीकर में लाइन-इन का उपयोग करने का विकल्प होगा)।
- 3.5 मिमी स्टीरियो केबल, पुरुष-से-पुरुष।
एक बार जब आप काम पूरा कर लेते हैं, तो आप कुछ जोड़ना चाहते हैं प्रकाश व्यवस्था को प्रभावित किया हैलोवीन के लिए होम लाइट्स और म्यूजिक को कैसे सिंक करेंचाहे आप एक हेलोवीन हाउस पार्टी की मेजबानी कर रहे हों या पड़ोस में सबसे अच्छे भूतिया घर चाहते हों, संगीत और ध्वनि प्रभाव के लिए अपनी रोशनी को समय पर पूरा करना आवश्यक है। अधिक पढ़ें भी, लेकिन इस ट्यूटोरियल में हम केवल डरावनी आवाज़ को कवर करेंगे!
की स्थापना
हम रास्पियन जेसी लाइट और पायथन 2.7 का उपयोग कर रहे हैं, लेकिन आपके पाई पर चलने वाले किसी भी लिनक्स डिस्ट्रो को ठीक होना चाहिए। मैंने इसे मानक होस्टनाम "raspberrypi.local" पर छोड़ दिया है, इसलिए SSH का उपयोग करके दूरस्थ रूप से लॉग इन करना शुरू करें (यदि आप मैक पर टर्मिनल विंडो खोलें)। यहां बताया गया है विंडोज में कैसे करें विंडोज में एसएसएच का उपयोग करने के 4 आसान तरीकेSSH लिनक्स और अन्य UNIX जैसी प्रणालियों पर दूरस्थ टर्मिनलों तक सुरक्षित रूप से पहुंचने के लिए वास्तविक समाधान है। यदि आपके पास एक दूरस्थ SSH सर्वर है जिसे आप एक्सेस करना चाहते हैं, तो आपको SSH क्लाइंट डाउनलोड करना होगा ... अधिक पढ़ें ) - या यदि आपने डेस्कटॉप GUI के साथ पूर्ण रास्पबियन का उपयोग किया है, तो अपडेट करने के लिए स्वतंत्र महसूस करें।
ssh [email protected]। (पासवर्ड के रूप में रास्पबेरी दर्ज करें) sudo apt-get update। sudo apt-get install अजगर-पाइप। sudo pip स्थापित करें gpiozero।
यह कई प्रकार के अंतर्निहित सेंसर और बटन के साथ पायथन में GPIO पिन के साथ काम करने के लिए एक साधारण पुस्तकालय स्थापित करता है। GPIO4 पर सिग्नल पिन के साथ अपने सेंसर को वायर करें, 5V से जुड़ा VCC और GND से जुड़ा GND। यह आपके सटीक मॉडल के अनुसार भिन्न हो सकता है, इसलिए पिनआउट आरेख के साथ पुष्टि करें।
सहायक रूप से, पिमोरोनी के मेरे Pi 2 मामले में सीधे पिनआउट आरेख लेजर-एच्च्ड है।
अब हमारी गति का पता लगाने की स्क्रिप्ट बनाते हैं।
नैनो गति।
इसमें चिपकाएँ:
gpiozero आयात से MotionSensor pir = MotionSensor (4) जबकि सच: अगर pir.motion_detected: प्रिंट ("मोशन का पता चला!") बाकी: प्रिंट ("नो मोशन")
CTRL-X को हिट करें और फिर Y को सहेजें और बाहर निकलें, फिर साथ चलाएं:
अजगर गति।
जब तक आप सेंसर के सामने अपना हाथ नहीं हिलाते हैं, तब तक आपको "मोशन नो" संदेश को स्क्रीन पर देखा जाना चाहिए, जब वह "मोशन डिटेक्ट" पर होगा!
यदि संदेश बिल्कुल नहीं बदलता है, तो आपने इसे गलत ठहराया है।
यदि आप इस सरल GPIOZero लाइब्रेरी के बारे में अधिक जानने में रुचि रखते हैं, तो एक नज़र डालें यह शानदार धोखा देती है.
ध्वनि बजाना
आपको पोर्टेबल स्पीकर कनेक्ट करें और सुनिश्चित करें कि यह होना चाहिए। हम उपयोग करेंगे pygame ध्वनियाँ बजाने के लिए पुस्तकालय, इसलिए आगे बढ़ें और इसे स्थापित करें:
sudo apt-get Install python-pygame।
सबसे पहले, हमें खेलने के लिए एक ध्वनि फ़ाइल की आवश्यकता है। यदि आप डेस्कटॉप वातावरण में ऐसा कर रहे हैं, तो आगे बढ़ें और डाउनलोड करें WAV या OGG कहीं से फ़ाइल (मुझे एक अच्छा चयन मिला मुफ्त हेलोवीन यहाँ लगता है), और अपने घर निर्देशिका में डाल दिया। मैं पहले सुझाव देता हूं और एक छोटे से OGG प्रारूप में परिवर्तित वैसे भी।
यदि आप दूरस्थ रूप से कनेक्ट कर रहे हैं और केवल कमांड लाइन का उपयोग कर रहे हैं, तो हमें कुछ साइटों के साथ थोड़ी अधिक कठिनाई है, क्योंकि wget आदेश वास्तविक फ़ाइल को नहीं पकड़ सकता है। इसके बजाय, हम इसे अपने डेस्कटॉप पर स्थानीय रूप से डाउनलोड कर सकते हैं और इसका उपयोग कर सकते हैं SCP (सिक्योर कॉपी) कमांड लाइन पर कॉपी करने का कमांड। आप और जान सकते हैं scp के बारे में यहाँ, लेकिन अभी के लिए, एक नया टर्मिनल टैब खोलें और टाइप करें:
scp thunder.ogg [email protected]:
उचित के रूप में thunder.ogg का नाम बदलें, लेकिन उस अंतिम को मत भूलना : (इसके बिना आदेश पूरा हो जाएगा, लेकिन यह वह नहीं करेगा जो हम इसे करना चाहते हैं)। डिफ़ॉल्ट रूप से, यह फ़ाइल को Pi उपयोगकर्ता की होम निर्देशिका में स्थानांतरित कर देगा।
अब ध्वनि बजाने के लिए स्क्रिप्ट को संशोधित करें। कुछ नए मॉड्यूल आयात करके शुरू करें:
आयात pygame.mixer। pygame.mixer आयात ध्वनि से।
फिर मौजूदा आयात कथनों के बाद, हम परीक्षण उद्देश्यों के लिए एक ही ध्वनि को बार-बार लूप करेंगे। अपने बाकी के सेंसिंग कोड को अभी के लिए छोड़ दें - यह अभी नहीं चला है, क्योंकि यह इस ध्वनि बजाने वाले लूप में हमेशा के लिए अटक जाएगा।
pygame.init () pygame.mixer.init () # साउंड फ़ाइल लोड करें, Pi उपयोगकर्ता की होम डायरेक्टरी में (कोई एमपी 3 नहीं) गरज = pygame.mixer। साउंड ("/ होम / पी / थंडर। वोग") जबकि ट्रू: थंडर.प्ले () स्लीप (10) थंडर.स्टॉप ()
ध्यान दें कि जब मैंने मूल रूप से इस प्रक्रिया की कोशिश की, तो ध्वनि ने खेलने से इनकार कर दिया और इसके बजाय बस क्लिक किया। फ़ाइल या बिट-दर का आकार अपराधी था: यह 15-बिट क्लिप के लिए 24-बिट और 5 एमबी से अधिक था। 16 से कम करने के लिए स्केलिंग कि मैं ऊपर से जुड़े कनवर्टर का उपयोग कर सब कुछ अच्छी तरह से काम किया है, और आकार सिर्फ 260KB करने के लिए कम हो गया था!
यदि आप अपने पाइथन ऐप को चला रहे हैं, तो अपने वक्ताओं से एक बुरा हिस नोटिस करते हैं, लेकिन अन्यथा नहीं, टाइप करें:
सुडो नैनो /boot/config.txt।
और इस पंक्ति को अंत में जोड़ें:
disable_audio_dither = 1।
परिवर्तन प्रभावी होने के लिए पुनः प्रारंभ करें। या फिर परेशान मत करो, क्योंकि यह मेरे लिए बारिश की तरह लग रहा था।
अंत में, गति का पता चलने पर ध्वनि को चलाने के लिए मुख्य मोशन-चेकिंग लूप को संशोधित करें। हम 15-सेकंड की देरी का उपयोग करेंगे ताकि पूरे लूप को चलाया जा सके, और जब बहुत अधिक नॉन-स्टॉप मोशन हो तो इसके लिए स्पैम बफर के रूप में कार्य कर सकें।
जबकि सच: अगर pir.motion_detected: प्रिंट ("Motion का पता चला!") thunder.play () # सुनिश्चित करें कि प्लेबैक पूरी तरह से हो गया है गति का पता लगाने से पहले पूरा, ध्वनि नींद (15) thunder.stop () के "स्पैमिंग" को रोकता है: प्रिंट ("नहीं" गति ")
स्वचालित रूप से प्रारंभ करें
हम शायद इसे एक बैटरी और इंटरनेट कनेक्शन के साथ कहीं स्थापित करना चाहते हैं, इसलिए स्क्रिप्ट को कमांड लाइन खोलने के बिना पुनरारंभ करने की आवश्यकता है। ऐसा करने के लिए, हम संभव सबसे सरल विधि का उपयोग करेंगे: Crontab कैसे क्रोन और Crontab के साथ लिनक्स में कार्य अनुसूची के लिएकार्यों को स्वचालित करने की क्षमता उन भविष्य प्रौद्योगिकियों में से एक है जो पहले से ही यहां है। हर लिनक्स उपयोगकर्ता शेड्यूलिंग सिस्टम और उपयोगकर्ता कार्यों से लाभ उठा सकता है, क्रोन के लिए, एक आसान-से-उपयोग वाली पृष्ठभूमि सेवा। अधिक पढ़ें . प्रकार:
सूदो crontab -e।
यदि यह पहली बार इस कमांड को चला रहा है, तो यह आपसे शुरू होगा कि आप किस संपादक का उपयोग करें। मैंने नैनो के लिए विकल्प 2 को चुना। यह आपके चुने हुए संपादक को बूट करेगा, इसलिए निम्न पंक्ति जोड़ें:
@reboot python /home/pi/motion.py &
इसका अर्थ है कि आपकी गति स्क्रिप्ट हर स्टार्टअप पर चलेगी, और ऐसा चुपचाप करें (इसलिए स्क्रिप्ट से किसी भी आउटपुट को अनदेखा किया जाएगा)। इसे आज़माने के लिए रिबूट करें।
यदि गति होने के बावजूद कुछ भी नहीं खेलता है, या आप बस एक छोटी सी क्लिक सुनते हैं, तो आपने पूर्ण फ़ाइल पथ का उपयोग नहीं किया होगा, या आपकी फ़ाइल को कम बिटरेट और छोटे फ़ाइल आकार में परिवर्तित करने की आवश्यकता हो सकती है।
अधिक ध्वनि जोड़ें
बार-बार एक ही प्रभाव को खेलना थोड़ा उबाऊ है, इसलिए इसमें कुछ यादृच्छिकता जोड़ दें। कुछ और हेलोवीन ध्वनियों को डाउनलोड करें, उन्हें एक समझदार आकार में विभाजित करने के लिए याद रखें और बिटरेट करें, फिर उनका उपयोग करके अपने पाई पर भेजें SCP पहले जैसा। मैंने तीन अलग-अलग प्रकार की चीखें जोड़ीं।
कोड को संशोधित करें ताकि एकल को परिभाषित करने के बजाय pygame.mixer। ध्वनि चर, हम वास्तव में एक बना रहे हैं सरणी की आवाज़। यह पायथन के साथ सरल है, बस वर्ग कोष्ठक के साथ उनमें से एक अल्पविराम से अलग की गई सूची को घेरें, जैसे:
ध्वनियाँ = [pygame.mixer। ध्वनि ("/ घर / पीआई / गरज"), pygame.mixer। साउंड ("/ home / pi / scary_scream.ogg"), pygame.mixer। साउंड ("/ home / pi / girl_scream.ogg"), pygame.mixer। साउंड ("/ होम / पीआई / साइको_क्रीस.गॉग")]
इसके बाद, अपनी फ़ाइल में यादृच्छिक लाइब्रेरी आयात करें:
यादृच्छिक आयात करें।
अब मुख्य गति-संवेदी पाश को इस प्रकार संशोधित करें:
जबकि सच: अगर pir.motion_detected: प्रिंट ("Motion का पता चला!") playSound = random.choice (लगता है) playSound.play () # प्लेबैक सुनिश्चित करें गति का पता लगाने से पहले पूरी तरह से पूरा हो गया है, ध्वनि नींद (15) playSound.stop () के "स्पैमिंग" को रोकता है: प्रिंट ("नहीं" गति ")
मामूली परिवर्तन पर ध्यान दें: एकल ध्वनि चर खेलने के बजाय, हम इसका उपयोग कर रहे हैं random.choice हमारे लगता है सरणी से एक यादृच्छिक ध्वनि लेने के लिए कार्य करता है, फिर खेल रहा है।
यदि आपको समस्याएँ हैं, तो यहां पूर्ण कोड है:
आयात pygame। pygame.mixer आयात ध्वनि से। gpiozero आयात MotionSensor से। समय से आयात नींद। आयात यादृच्छिक pygame.init () pygame.mixer.init () # ध्वनि फ़ाइल लोड करें, स्क्रिप्ट के रूप में समान निर्देशिका (कोई एमपी 3 नहीं) लगता है = [pygame.mixer। ध्वनि ("/ घर / पीआई / गरज"), pygame.mixer। साउंड ("/ home / pi / scary_scream.ogg"), pygame.mixer। साउंड ("/ home / pi / girl_scream.ogg"), pygame.mixer। साउंड ("/ होम / पीआई / साइको_क्रीस.गॉग")] पीर = मोशन सेंसर (4) जबकि सच: अगर pir.motion_detected: प्रिंट ("Motion का पता चला!") playSound = random.choice (लगता है) playSound.play () # प्लेबैक सुनिश्चित करें गति का पता लगाने से पहले पूरी तरह से पूरा हो गया है, ध्वनि नींद (15) playSound.stop () के "स्पैमिंग" को रोकता है: प्रिंट ("नहीं" गति ")
केवल चार नमूनों के साथ, प्रत्येक बार पुनरावृत्ति की उच्च संभावना है, लेकिन यदि आप अधिक नमूने जोड़ सकते हैं तो यह कष्टप्रद है।
बस! इसे कुछ के साथ झाड़ियों में छिपा दें डरावना एलईडी राक्षस आँखें $ 5 से कम के लिए डरावना हेलोवीन चमकदार आँखें कैसे करेंइस साल अपने हेलोवीन सजावट को मसाला देना चाहते हैं? इस शुरुआत के इलेक्ट्रॉनिक्स प्रोजेक्ट में $ 5 से कम के लिए एलईडी आंखें बनाने का तरीका जानें। अधिक पढ़ें , और आप खुद को कुछ कैंडी बचाने में सक्षम होना चाहिए क्योंकि सभी बच्चे दरवाजे तक पहुंचने से पहले ही चिल्लाते हुए भाग जाते हैं। या कोठरी में छुप जाओ क्योंकि एक छोटे से रोने के बाद गुस्से में माँ खून के लिए बाहर है।
अस्वीकरण: MakeUseOf किसी भी व्यक्तिगत चोट के लिए जिम्मेदार नहीं है जो इस परियोजना के आपके उपयोग के परिणामस्वरूप हो सकता है!
क्या आप स्थानीय चाल या-उपचारकर्ताओं को डराने के लिए इस गति-सक्रिय साउंडबॉक्स को बना रहे हैं? क्या आपने इस रास्पबेरी पाई के साथ कोई डरावना प्रभाव स्थापित किया है? कृपया हमें इसके बारे में नीचे टिप्पणी में बताएं!
जेम्स के पास आर्टिफिशियल इंटेलिजेंस में बीएससी है, और कॉम्पिटिया ए + और नेटवर्क + प्रमाणित है। वह MakeUseOf के प्रमुख डेवलपर हैं, और अपना खाली समय वीआर पेंटबॉल और बोर्डगेम खेलने में बिताते हैं। वह पीसी का निर्माण कर रहा है क्योंकि वह एक बच्चा था।