- आवश्यक घटक:
- अल्ट्रासोनिक सेंसर मॉड्यूल:
- सर्किट स्पष्टीकरण:
- यह काम किस प्रकार करता है:
- प्रोग्रामिंग स्पष्टीकरण:
रोबोट वे मशीनें हैं जो उद्योगों, कारखानों, अस्पतालों आदि में कार्यों को स्वचालित करके भारी कार्यों में मानवीय प्रयासों को कम करती हैं। अधिकांश रोबोट कुछ नियंत्रण इकाई या घटकों का उपयोग करके चलाया जाता है जैसे पुश बटन, रिमोट, जॉयस्टिक, पीसी, जेस्चर और द्वारा नियंत्रक या प्रोसेसर का उपयोग करके कुछ कमांड निष्पादित करना। लेकिन आज हम यहां एक स्वचालित रोबोट के साथ हैं जो बिना किसी बाहरी घटनाओं के स्वायत्तता से चलता है और इसके रास्ते में आने वाली सभी बाधाओं को टालता है, जी हाँ हम बात कर रहे हैं ऑब्स्ट्रल अवॉइडिंग रोबोट की । इस परियोजना में, हमने रोबोट के मार्ग में वस्तुओं का पता लगाने के लिए रोबोट और अल्ट्रासोनिक सेंसर को चलाने के लिए रास्पबेरी पाई और मोटर चालक का उपयोग किया है ।
पहले हमने कई उपयोगी रोबोटों को कवर किया है, आप उन्हें हमारे रोबोटिक्स प्रोजेक्ट सेक्शन में पा सकते हैं।
आवश्यक घटक:
- रास्पबेरी पाई
- अल्ट्रासोनिक सेंसर मॉड्यूल HC-SR04
- रोबोट चेसिस पेंच के साथ पूरा
- डीसी मोटर्स
- L293D आईसी
- पहियों
- ब्रेड बोर्ड
- रेसिस्टर (1k)
- संधारित्र (100nF)
- तारों को जोड़ना
- बिजली की आपूर्ति या पावर बैंक
अल्ट्रासोनिक सेंसर मॉड्यूल:
एक बाधा टालने वाला रोबोट एक स्वचालित रोबोट है और इसे किसी भी रिमोट का उपयोग करके नियंत्रित करने की आवश्यकता नहीं है। इस प्रकार के स्वचालित रोबोट में कुछ 'छठवीं इंद्रिय' सेंसर होते हैं जैसे बाधा डिटेक्टर, साउंड डिटेक्टर, हीट डिटेक्टर या मेटल डिटेक्टर। यहां हमने अल्ट्रासाउंड सिग्नल का उपयोग करके बाधा का पता लगाया है । इस उद्देश्य के लिए, हमने अल्ट्रासोनिक सेंसर मॉड्यूल का उपयोग किया है।
अल्ट्रासोनिक सेंसर आमतौर पर वस्तुओं का पता लगाने और सेंसर से बाधा की दूरी निर्धारित करने के लिए उपयोग किया जाता है। यह किसी भी भौतिक संपर्क के बिना दूरी को मापने के लिए एक महान उपकरण है, जैसे कि टैंक में पानी का स्तर माप, दूरी माप, बाधा टालने वाला रोबोट आदि। तो, यहाँ हमने ऑब्जेक्ट का पता लगाया है और अल्ट्रासोनिक सेंसर और रास्पबेरी पाई का उपयोग करके दूरी को मापा है।
अल्ट्रासोनिक सेंसर HC-SR04 का उपयोग 3 मिमी की सटीकता के साथ 2cm-400cm की सीमा में दूरी को मापने के लिए किया जाता है। सेंसर मॉड्यूल में एक अल्ट्रासोनिक ट्रांसमीटर, रिसीवर और नियंत्रण सर्किट होता है। अल्ट्रासोनिक सेंसर में दो गोलाकार आंखें होती हैं, जिनमें से एक का उपयोग अल्ट्रासोनिक तरंग और दूसरे को इसे प्राप्त करने के लिए किया जाता है।
हम सेंसर पर वापस लौटने के लिए अल्ट्रासोनिक तरंग द्वारा उठाए गए समय के आधार पर वस्तु की दूरी की गणना कर सकते हैं। चूँकि ध्वनि का समय और गति ज्ञात है, हम निम्नलिखित सूत्रों द्वारा दूरी की गणना कर सकते हैं।
- दूरी = (वायु में ध्वनि का समय x गति (343 मी / से)) / 2।
मान दो से विभाजित होता है क्योंकि तरंग आगे और पीछे एक ही दूरी को कवर करती है। इसलिए बाधा तक पहुंचने का समय कुल लिया गया समय का आधा है।
इसलिए हमने नीचे की तरह बाधा से दूरी (सेंटीमीटर) की गणना की है:
पल्स_स्टार्ट = time.time () जबकि GPIO.input (ECHO) == 1: # चेक करें कि क्या ECHO हाई GPIO.output (नेतृत्व, गलत) पल्स_एंड = समय () पल्स_ट्रेड = पल्स_एंड - पल्स_स्टार्ट दूरी = पल्स_डेशन * 17150 है दूरी = गोल (दूरी, 2) avgDistance = avgDistance + दूरी
जहां अल्ट्रासोनिक सिग्नल भेजने और प्राप्त करने के बीच का समय pul_duration है।
सर्किट स्पष्टीकरण:
रास्पबेरी पाई का उपयोग करते हुए इस बाधा से बचने वाले रोबोट के लिए सर्किट बहुत सरल है । वस्तुओं का पता लगाने के लिए उपयोग किया जाने वाला एक अल्ट्रासोनिक सेंसर मॉड्यूल, रास्पबेरी पाई के GPIO पिन 17 और 27 से जुड़ा हुआ है। एक मोटर चालक आईसी L293D रोबोट की मोटरों को चलाने के लिए रास्पबेरी पाई 3 से जुड़ा हुआ है। मोटर चालक के इनपुट पिन 2, 7, 10 और 15 क्रमशः रास्पबेरी पाई GPIO पिन नंबर 12, 16, 20 और 21 से जुड़े हैं। यहां हमने रोबोट को चलाने के लिए दो डीसी मोटर्स का उपयोग किया है जिसमें एक मोटर मोटर चालक आईसी के आउटपुट पिन 3 और 6 से जुड़ी है और दूसरी मोटर मोटर चालक आईसी के पिन 11 और 14 से जुड़ी है।
यह काम किस प्रकार करता है:
इस ऑटोनॉमस रोबोट का काम करना बहुत आसान है। जब रोबोट चालू होता है और चलना शुरू होता है, तो रास्पबेरी पाई वस्तुओं की दूरी को मापता है, इसके सामने, अल्ट्रासोनिक सेंसर मॉड्यूल का उपयोग करके और एक चर में संग्रहीत करता है। फिर आरपीआई इस मूल्य की तुलना पूर्वनिर्धारित मूल्यों के साथ करता है और रोबोट लेफ्ट, राइट, फॉरवर्ड या बैकवर्ड को स्थानांतरित करने के लिए निर्णय लेता है।
इस परियोजना में, हमने रास्पबेरी पाई द्वारा कोई भी निर्णय लेने के लिए 15 सेमी की दूरी का चयन किया है। अब जब भी रास्पबेरी पाई किसी भी वस्तु से 15 सेमी की दूरी से कम हो जाती है तो रास्पबेरी पाई रोबोट को रोक देती है और उसे वापस ले जाती है और फिर उसे बाएं या दाएं घुमाती है। अब इसे फिर से आगे बढ़ाने से पहले, रास्पबेरी पाई फिर से जांचती है कि क्या कोई बाधा 15 सेमी की दूरी के भीतर मौजूद है, यदि हाँ तो फिर से पिछली प्रक्रिया को दोहराता है, अन्यथा रोबोट को तब तक आगे बढ़ाएं जब तक कि वह फिर से किसी बाधा या वस्तु का पता नहीं लगाएगा।
प्रोग्रामिंग स्पष्टीकरण:
हम यहां कार्यक्रम के लिए पायथन भाषा का उपयोग कर रहे हैं । कोडिंग से पहले, उपयोगकर्ता को रास्पबेरी पाई को कॉन्फ़िगर करने की आवश्यकता होती है। आप रास्पबेरी पाई के साथ शुरू करने और पाई में रास्पबियन जेसी ओएस को स्थापित करने और कॉन्फ़िगर करने के लिए हमारे पिछले ट्यूटोरियल की जांच कर सकते हैं।
इस परियोजना का प्रोग्रामिंग हिस्सा सभी कार्यों को करने के लिए बहुत महत्वपूर्ण भूमिका निभाता है। सबसे पहले, हम आवश्यक पुस्तकालयों को शामिल करते हैं, चर को शुरू करते हैं और अल्ट्रासोनिक सेंसर, मोटर और घटकों के लिए पिन को परिभाषित करते हैं।
GPIO आयात समय के रूप में RPi.GPIO आयात करें #Import समय लाइब्रेरी GPIO.setwarnings (गलत) GPIO.setmode (GPIO.BCM) TRIG = 17 ECHO = 27………….
इसके बाद, हमने कुछ फ़ंक्शंस को आगे (डिफ, बैक) (डिफ, लेफ्ट, डिफ), डिफ राइट () को आगे, पीछे, लेफ्ट या राइट दिशा में ले जाने और डीप स्टॉप () को रोकने के लिए बनाया है, ताकि रोबोट को रोका जा सके, नीचे दिए गए कोड में कार्यों की जाँच करें।
फिर, मुख्य कार्यक्रम में, हमने अल्ट्रासोनिक सेंसर की शुरुआत की और सिग्नल के प्रसारण और रिसेप्शन के बीच का समय पढ़ा और दूरी की गणना की। यहां हमने बेहतर सटीकता के लिए इस प्रक्रिया को 5 बार दोहराया है। हमने पहले ही अल्ट्रासोनिक सेंसर का उपयोग करके दूरी की गणना करने की प्रक्रिया को समझाया है।
i = 0 avgDistance = 0 के लिए मैं रेंज में (5): GPIO.output (TRIG, False) time.sleep (0.1) GPIO.output (TRIG, True) time.sleep (0.00001) GPIO.output (TRIG, False) जबकि GPIO.input (ECHO) == 0: GPIO.output (एलईडी, गलत) pul_start = time.time () जबकि GPIO.input (ECHO) == 1: # चेक करें कि ECHO उच्च GPIO.output (एलईडी) है या नहीं गलत) पल्स_एंड = टाइम.टाइम () पल्स_ड्यूरेशन = पल्स_एंड - पल्स_स्टार्ट डिस्टेंस = पल्स_ड्यूरेंस * 17150 डिस्टेंस = राउंड (डिस्टेंस, 2) एविडस्टेंस = एवीडिस्टेंस + डिस्टेंस
अंत में अगर रोबोट इसके सामने कोई बाधा पाता है तो बाधा से दूरी पाने के बाद, हमने रोबोट को अलग-अलग मार्ग लेने के लिए प्रोग्राम किया है।
अगर अवगति <15: गिनती = गिनती + 1 स्टॉप () समय.सोलेप (1) पीछे () समय.सोएप (1.5) यदि (गिनती% 3 == 1) और (झंडा == 0): सही () झंडा = 1 अन्य: बाएं () ध्वज = 0 समय। स्लीप (1.5) स्टॉप () समय। स्लीप (1) और: आगे () ध्वज = 0
इस रास्पबेरी पाई बाधा बाधा रोबोट के लिए पूरा कोड नीचे एक प्रदर्शन वीडियो के साथ दिया गया है।