- वीडियो फ़ीड प्राप्त करने के लिए 'मोशन' स्थापित और कॉन्फ़िगर करना:
- वेबपेज के माध्यम से रोबोट को नियंत्रित करने के लिए रास्पबेरी पाई में फ्लास्क सेटअप:
- वेबपेज के लिए HTML कोड:
- सर्विलांस रोबोट
- सर्किट आरेख और सेटअप:
- कैसे चलाये:
इस DIY सत्र में हम रास्पबेरी पाई और एक वेबकेम का उपयोग करके एक वेब नियंत्रित निगरानी रोबोट कार बना रहे हैं । यह एक उपयोगी और सस्ती सुरक्षा और जासूसी उपकरण हो सकता है, जिसमें कई विन्यास विकल्प हैं और कुछ घंटों में बनाया जा सकता है। इस IoT प्रोजेक्ट में, हम मुख्य रूप से रास्पबेरी पाई, यूएसबी वेब कैमरा और रोबोट चेसिस के साथ दो डीसी मोटर का उपयोग कर इस रॉबिन कार का निर्माण कर रहे हैं।
इसके ऊपर एक वेब कैमरा लगा है, जिसके माध्यम से हमें लाइव वीडियो फीड मिलेगा और यहाँ दिलचस्प बात यह है कि हम इस रोबोट को इंटरनेट पर वेब ब्राउज़र से नियंत्रित और स्थानांतरित कर सकते हैं। जैसे कि इसे वेबपेज का उपयोग करके नियंत्रित किया जा सकता है, इसका मतलब है कि मोबाइल में वेबपेज का उपयोग करके भी इसे नियंत्रित किया जा सकता है। हमने HTML में एक वेबपेज बनाया जिसमें लेफ्ट, राइट, फॉरवर्ड, बैकवर्ड लिंक हैं, जिस पर क्लिक करके हम रोबोट को किसी भी दिशा में ले जा सकते हैं। यहाँ हमने USB कैमरे से लाइव वीडियो फीड प्राप्त करने के लिए "मोशन" का उपयोग किया और वेबपेज से रास्पबेरी पाई को कमांड भेजने के लिए "फ्लास्क" का इस्तेमाल किया, जो अजगर का उपयोग कर रहा थारोबोट को स्थानांतरित करने के लिए, जिसे इस ट्यूटोरियल के बाद के हिस्से में विस्तार से बताया गया है। हमारे पास रास्पबेरी जेसी ओएस हमारे रास्पबेरी पाई बोर्ड पर स्थापित है। रास्पबियन ओएस को स्थापित करने और रास्पबेरी पाई के साथ शुरुआत करने के लिए आप इस लेख की जांच कर सकते हैं।
वीडियो फ़ीड प्राप्त करने के लिए 'मोशन' स्थापित और कॉन्फ़िगर करना:
मोशन (निगरानी सॉफ्टवेयर) फ्री, ओपन सोर्स मोशन डिटेक्टर सीसीटीवी सॉफ्टवेयर है, जिसे लिनक्स के लिए विकसित किया गया है। यह गति का पता लगाता है और इसका वीडियो रिकॉर्डिंग शुरू करता है। आपके रास्पबेरी पाई में स्थापित 'मोशन' के साथ, आप जादुई रूप से अपने रास्पबेरी पाई को एक सुरक्षा कैमरे में बदल सकते हैं । इसका उपयोग लाइव वीडियो फीड प्राप्त करने, टाइमलैप्स वीडियो बनाने और नियमित अंतराल पर स्नैपशॉट लेने के लिए किया जाता है। यह मोशन या व्यू क्षेत्र में किसी भी गड़बड़ी का पता लगाने पर वीडियो को रिकॉर्ड करता है और बचाता है। पोर्ट के साथ पाई के आईपी पते को दर्ज करके वेब ब्राउज़र पर लाइव वीडियो फीड देखा जा सकता है।
हमने रास्पबेरी पाई और यूएसबी कैमरा के साथ मोशन का उपयोग करने पर एक विस्तृत ट्यूटोरियल बनाया है, यहां हम वेब पेज पर लाइव वीडियो स्ट्रीमिंग भेजने के लिए अपने रोबोट के लिए रास्पबेरी पाई पर इसकी स्थापना के बारे में संक्षेप में बता रहे हैं।
यहां आपको नेटवर्क पर पहला वीडियो फीड प्राप्त करने के लिए केवल कुछ कमांड चलाने की आवश्यकता है। इससे पहले, ठीक से जांचें कि आपका रास्पबेरी पाई इंटरनेट से जुड़ा है, या तो LAN या वाई-फाई का उपयोग कर रहा है और फिर नीचे दिए गए चरणों का पालन करें:
चरण 1: रास्पबेरी पाई पर रास्पियन ओएस को अपडेट करने के लिए सबसे पहले नीचे दिए गए कमांड को चलाएं:
sudo apt-get update
चरण 2: फिर नीचे कमांड का उपयोग करके 'मोशन' लाइब्रेरी स्थापित करें:
sudo apt-get install गति
चरण 3: अब मोशन डेमन को फ़ाइल को संपादित करके हां में सेट करें: / etc / default / motion ताकि यह हमेशा चलता रहे। नीचे दिए गए 'sudo' के साथ 'नैनो' संपादक का उपयोग करके इस फ़ाइल को संपादित करें:
सुडो नैनो / आदि / डिफ़ॉल्ट / गति
फिर 'CTRL + X', फिर 'Y' और एंटर दबाकर फाइल को सेव करें।
चरण 4: अब हमें लक्ष्य निर्देशिका (/ var / lib / गति /) के लिए अनुमति सेट करने की आवश्यकता है , जिसमें Motion सभी वीडियो रिकॉर्डिंग और चित्र फ़ाइलों को बचाता है। हमें नीचे निर्देश जारी करके इस मोशन के मालिक के रूप में 'मोशन' को सेट करना होगा:
सुडो चाउन मोशन: मोशन / वर् / लाइब / मोशन
यह अनुमति आवश्यक है अन्यथा आप त्रुटि प्राप्त करेंगे, जब आप मोशन सेवा स्थिति की जांच करेंगे।
आप इस आदेश का उपयोग करके सेवा स्थिति की जांच कर सकते हैं: sudo सेवा गति स्थिति
चरण 5: अब हम लगभग पूर्ण हो चुके हैं, केवल हमें मोशन कॉन्फ़िगरेशन फ़ाइल (/etc/motion/motion.conf ) में एक कॉन्फिगर विकल्प को बदलने की आवश्यकता है जो कि स्ट्रीम_लोकहॉस्ट है। हमें इस स्थानीय होस्ट स्ट्रीमिंग को बंद करना होगा, अन्यथा हम अपने नेटवर्क पर वीडियो फ़ीड तक नहीं पहुंच पाएंगे और यह केवल रास्पबेरी पाई से ही उपलब्ध होगा। ऐसा करने के लिए, 'नैनो' संपादक के साथ मोशन कॉन्फ़िगरेशन फ़ाइल को संपादित करें और इसे बंद करें, जैसे नीचे दिखाया गया है:
सुडो नैनो /etc/motion/motion.conf
अब हम पाई से जुड़े यूएसबी वेब कैमरा से अपना लाइव फीड प्राप्त करने के लिए तैयार हैं। बस शुरू करें (या पुनरारंभ करें) नीचे दिए गए कमांड का उपयोग करके मोशन सेवा और अपने ब्राउज़र में (जैसे 192.168.43.199:8081) पोर्ट 8081 के साथ अपना रास्पबेरी पाई का आईपी खोलें । इस प्रोजेक्ट में हमने इस आईपी को अपने HTML कोड में img src टैग में एम्बेड किया है ।
sudo /etc/init.d/motion पुनरारंभ
और आप अपने वेब कैमरे से लाइव फीड देखेंगे। यहां हमने कम लागत वाले USB वेब कैमरा का उपयोग किया है जो हमारे रास्पबेरी पाई के साथ आसानी से काम करता है, लेकिन आप बेहतर रिज़ॉल्यूशन के लिए अच्छी गुणवत्ता वाले कैमरे का उपयोग कर सकते हैं। जैसा कि यह ब्राउज़र में दिखाई देगा, आप फ़ीड देखने के लिए किसी भी डिवाइस का उपयोग कर सकते हैं, जो मोबाइल, टैबलेट आदि जैसे वेब ब्राउज़र का समर्थन करता है।
जब आवश्यक हो तो रास्पबेरी पाई को एक समस्या निवारण कदम के रूप में रिबूट करने का प्रयास करें:
सूद रिबूट
यह सब हमारे निगरानी रोबोट के लिए मोशन का उपयोग करने के बारे में है, इसके अलावा, इसमें कई कॉन्फ़िगरेशन विकल्प हैं जिनके बारे में हमने पहले ही अपने पिछले ट्यूटोरियल में चर्चा की है।
नोट: यदि आप संस्करण 3 के नीचे रास्पबेरी पाई मॉडल हैं, तो आपको रास्पबेरी पाई को राउटर से वायरलेस रूप से कनेक्ट करने के लिए वाई-फाई डोंगल की आवश्यकता हो सकती है।
वेबपेज के माध्यम से रोबोट को नियंत्रित करने के लिए रास्पबेरी पाई में फ्लास्क सेटअप:
यहां, हमने फ्लास्क का उपयोग करके एक वेब सर्वर बनाया है, जो नेटवर्क पर रोबोट को नियंत्रित करने के लिए वेबपेज से रास्पबेरी पाई को कमांड भेजने का एक तरीका प्रदान करता है । फ्लास्क हमें एक वेबपेज के माध्यम से अपनी अजगर लिपियों को चलाने की अनुमति देता है और हम रास्पबेरी पाई से वेब ब्राउज़र और इसके विपरीत डेटा भेज और प्राप्त कर सकते हैं। फ्लास्क पायथन के लिए एक माइक्रोफ्रामवर्क है। यह उपकरण यूनीकोड आधारित है जिसमें अंतर्निहित विकास सर्वर और डीबगर, एकीकृत इकाई परीक्षण समर्थन, सुरक्षित कुकीज़ का समर्थन और इसका उपयोग करने में आसान है, ये चीजें इसे हॉबीस्ट के लिए उपयोगी बनाती हैं।
दिए गए आदेश का उपयोग करके रास्पबेरी पाई में एक फ्लास्क समर्थन पैकेज स्थापित करें:
$ पाइप स्थापित फ्लास्क
तब हम फ्लास्क का उपयोग केवल अपने प्रोग्राम में आयात करके कर सकते हैं, जैसे हमने इस प्रोजेक्ट के लिए फ्लास्क के निम्नलिखित पैकेज आयात किए हैं:
फ्लास्क आयात से फ्लास्क फ्लास्क आयात फ्लास्क से, render_template, अनुरोध
आप यहां फ्लास्क का उपयोग करके प्रोग्रामिंग के बारे में अधिक जान सकते हैं, हमारी पिछली परियोजनाओं की भी जांच कर सकते हैं, जहां हमने वेबपेज से रास्पबेरी पाई को संदेश भेजने और स्मार्ट कंटेनर में रास्पबेरी पाई को वजन मान भेजने के लिए फ्लास्क का उपयोग किया है।
वेबपेज के लिए HTML कोड:
हमने वेब ब्राउज़र से रोबोट को स्थानांतरित करने के लिए नियंत्रण लिंक (बाएँ, दाएँ, आगे, पीछे) प्रदर्शित करने के लिए HTML भाषा का उपयोग करके एक वेब पेज बनाया है। हमने अपने पायथन प्रोग्राम में फ़ंक्शन को कॉल करने के लिए jQuery स्क्रिप्ट का उपयोग किया है । रोबोट लेफ्ट, राइट, फॉरवर्ड, बैकवर्ड को स्थानांतरित करने और इसे रोकने के लिए पायथन कोड में पांच कार्य हैं। पूर्ण पायथन कोड अंत में दिया गया है। इन कार्यों को वेबपेज पर नियंत्रण लिंक पर क्लिक करके निष्पादित किया जाएगा और क्लिक किए जा रहे लिंक के आधार पर मोटर्स चलेंगे। यहां हमने कोड को इस तरह से लिखा है कि लिंक को क्लिक करने और पकड़ते समय रोबोट कुछ दिशा में आगे बढ़ेगा, और जैसे ही हम माउस बटन छोड़ेंगे रोबोट बंद हो जाएगा । नीचे jQuery सहित वेबपेज के लिए HTML कोड है:
यहां आप देख सकते हैं कि हमने IP पता एम्बेड कर लिया है, जिस पर img src टैग का उपयोग करके वेब पेज में वीडियो स्ट्रीमिंग की जा रही है । अपने रास्पबेरी पाई के अनुसार आईपी पता बदलें लेकिन पोर्ट को समान रखें।
उपयोगकर्ता को कुछ टेक्स्ट एडिटर (नोटपैड) में ऊपर दिए गए HTML कोड को कॉपी-पेस्ट करना होगा और फ़ाइल को.HTML एक्सटेंशन (robot.html) से सहेजना होगा। फिर इस HTML फ़ाइल को अपने अजगर स्क्रिप्ट स्थान के संबंध में / टेम्प्लेट फ़ोल्डर में डालें । इसका मतलब है कि आपको टेम्पलेट नाम का एक फ़ोल्डर बनाने की आवश्यकता है, जहाँ आपने इस रास्पबेरी निगरानी रोबोट के लिए अपनी पायथन कोड फ़ाइल डाल दी है, फिर इस टेम्पलेट फ़ोल्डर में robot.html फ़ाइल डालें। यह कदम महत्वपूर्ण है, अन्यथा हमारी परियोजना काम नहीं करेगी। आप सीधे इस पर डबल क्लिक करके robot.html फ़ाइल खोल सकते हैं, यह देखने के लिए कि आपके नियंत्रण लिंक कैसे दिखेंगे। आगे प्रदर्शन वीडियो में पूरी प्रक्रिया की जाँच करें अतं मै। हमने प्रोग्रामिंग और सभी के साथ काम करने के बाद, हम बस रास्पबेरी पाई में पायथन कोड चला सकते हैं और वेब ब्राउज़र में IP_address_of_your_Pi: 5010 खोल सकते हैं (जैसे
आप ifconfig कमांड का उपयोग करके अपने रास्पबेरी पाई के आईपी पते की जांच कर सकते हैं:
ifconfig
सर्किट आरेख और सेटअप:
लाइव वीडियो फ़ीड और HTML कोड का परीक्षण करने के बाद, हमें हस्तनिर्मित या रेडी-मेड रोबोट चेसिस, पहियों और नट-बोल्ट का उपयोग करके एक रोबोट बनाने की आवश्यकता है। फिर रास्पबेरी पाई को पॉवर देने के लिए इसके ऊपर पावर बैंक रखें और फिर पावर बैंक के ऊपर रास्पबेरी पाई और वेब कैमरा रखें और सेलो टेप या रबर स्ट्रिप्स का उपयोग करके सेटअप को ठीक करें, यूएसबी कैमरा को रास्पबेरी पाई से कनेक्ट करें।
इस IoT परियोजना में, हमें कई कनेक्शन करने की आवश्यकता नहीं है, हमें केवल मोटर चालक आईसी L293D और डीसी मोटर्स के लिए कुछ तारों को जोड़ने की आवश्यकता है । नीचे सर्किट आरेख में कनेक्शन दिखाए गए हैं। यहां हमने स्पेस कम करने के लिए L293D IC को माउंट करने के लिए एक जनरल पर्पस PCB का इस्तेमाल किया है, लेकिन DC मोटर्स को L293D से जोड़ने के लिए आप छोटे ब्रेडबोर्ड का भी इस्तेमाल कर सकते हैं।
कैसे चलाये:
इस निगरानी रोबोट का संचालन और काम करना बहुत आसान है। एक अजगर फ़ाइल (.py एक्सटेंशन) बनाएं और उसमें नीचे दिए गए कोड को कॉपी करें और फिर इसे अपने रास्पबेरी पाई पर सहेजें। फिर ऊपर बताए अनुसार टेम्पलेट फ़ाइल में HTML फ़ाइल डालें । HTML फ़ाइल में IP पता बदलना न भूलें।
फिर नीचे कमांड दर्ज करके पायथन कोड चलाएँ:
python name_of_file.py
फिर पोर्ट 5010 के साथ अपने रास्पबेरी पाई आईपी पते को खोलें जैसे http://192.168.43.199 am010 (फिर से आईपी पते को अपने पते से बदलें)। अब आप वेब पेज देखेंगे जिसमें चार रोबोट नियंत्रण लिंक और लाइव स्ट्रीमिंग वीडियो होंगे। उपयोगकर्ता लिंक पर क्लिक करके और दबाकर रोबोट को नियंत्रित कर सकता है। यदि उपयोगकर्ता लिंक को क्लिक करेगा और रखेगा तो रोबोट क्लिक की गई लिंक के अनुसार चलेगा और जब उपयोगकर्ता लिंक को रिलीज़ करेगा तो रोबोट स्वचालित रूप से बंद हो जाएगा।
पूरा पायथन कोड नीचे दिया गया है, जहां हमने वेबपृष्ठ पर लिंक पर क्लिक करने पर रोबोट को नियंत्रित करने के लिए विभिन्न कार्य लिखे हैं। आप उन्हें आसानी से समझ सकते हैं या यदि आप एक शुरुआती हैं तो हमारे पिछले रास्पबेरी पाई ट्यूटोरियल की जांच करें। रोबोट बनाने के लिए और अधिक रोचक और आसान के लिए हमारे रोबोटिक्स सेक्शन का भी दौरा करता है ।