कैसे Arduino का उपयोग कर रोबोट से बचने में बाधा बनाने के लिए?

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



(चित्र सौजन्य: सर्किट डाइजेस्ट)

इस परियोजना में, रोबोट से बचने के लिए एक Arduino आधारित बाधा को डिज़ाइन किया गया है जो अपने रास्ते की सभी बाधाओं का पता लगाने के लिए एक अल्ट्रासोनिक सेंसर का उपयोग करेगा।



अल्ट्रासोनिक सेंसर का उपयोग करके बाधाओं से कैसे बचें?

जैसा कि हम अपनी परियोजना के सार को जानते हैं, आइए हम एक कदम आगे बढ़ें और परियोजना को शुरू करने के लिए कुछ जानकारी इकट्ठा करें।



चरण 1: घटकों को एकत्रित करना

किसी भी परियोजना को शुरू करने के लिए सबसे अच्छा तरीका यह है कि प्रत्येक घटक की एक संक्षिप्त अध्ययन के माध्यम से प्रारंभ और पूर्ण घटकों की सूची बनाई जाए। यह परियोजना के बीच में असुविधाओं से बचने में हमारी मदद करता है। इस परियोजना में प्रयुक्त सभी घटकों की पूरी सूची नीचे दी गई है।



  • कार का पहिया चेसिस
  • बैटरी

चरण 2: अवयवों का अध्ययन

अब, जैसा कि हमारे पास सभी घटकों की पूरी सूची है, आइए हम एक कदम आगे बढ़ते हैं और हर घटक के कामकाज का एक संक्षिप्त अध्ययन करते हैं।

Arduino नैनो एक ब्रेडबोर्ड-फ्रेंडली माइक्रोकंट्रोलर बोर्ड है जिसका उपयोग सर्किट में विभिन्न कार्यों को नियंत्रित करने या बाहर करने के लिए किया जाता है। हम एक जला देते हैं C कोड Arduino नैनो पर माइक्रोकंट्रोलर बोर्ड को बताना है कि कैसे और क्या संचालन करना है। Arduino Nano की Arduino Uno जैसी ही कार्यक्षमता है लेकिन काफी छोटे आकार में। Arduino नैनो बोर्ड पर माइक्रोकंट्रोलर है ATmega328p।

अरुडिनो नैनो



L298N एक उच्च वर्तमान और उच्च वोल्टेज एकीकृत सर्किट है। यह एक दोहरी पूर्ण-पुल है जिसे मानक TTL तर्क को स्वीकार करने के लिए डिज़ाइन किया गया है। इसमें दो सक्षम इनपुट हैं जो डिवाइस को स्वतंत्र रूप से संचालित करने की अनुमति देते हैं। एक ही समय में दो मोटरों को जोड़ा और संचालित किया जा सकता है। PWM पिन के माध्यम से मोटर्स की गति भिन्न होती है। पल्स चौड़ाई मॉड्यूलेशन (पीडब्लूएम) एक ऐसी तकनीक है जिसमें किसी भी इलेक्ट्रॉनिक घटक में वोल्टेज के प्रवाह को नियंत्रित किया जा सकता है। इस मॉड्यूल में एक एच-ब्रिज है जो मोटरों में रोटेशन की दिशा के नियंत्रण के लिए जिम्मेदार है जो वर्तमान की दिशा को प्रेरित करता है। सक्षम ए और पिन बी को सक्षम करने के लिए दोनों मोटर्स की गति को बदलने के लिए उपयोग किया जाता है। यह मॉड्यूल 5 से 35V के बीच और वर्तमान में 2A तक चोटी का संचालन कर सकता है। इनपुट पिन 1 और इनपुट पिन 2 और फर्स्ट मोटर के लिए और इनपुट पिन 3 और इनपुट पिन 4 दूसरी मोटर के लिए हैं।

L298N मोटर चालक

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

अतिध्वनि संवेदक

चरण 3: घटकों को असेंबल करना

अब जैसा कि हम अब उपयोग किए गए अधिकांश घटकों के काम को जानते हैं, आइए हम सभी घटकों को इकट्ठा करना शुरू करें और रोबोट से बचने में बाधा उत्पन्न करें।

  1. एक कार के पहिये का पीछा करें और उसके शीर्ष पर ब्रेडबोर्ड चिपका दें। पीछा के सामने अल्ट्रासोनिक सेंसर माउंट करें और पीछा करने के लिए एक बैटरी कैप।
  2. ब्रेडबोर्ड पर Arduino नैनो बोर्ड को ठीक करें और मोटर ड्राइवर को ब्रेडबोर्ड के ठीक पीछे, चेस पर लगाएं। Arduino नैनो के पिन 6 और Pin9 में मोटर्स को कोसने के सक्षम पिन को कनेक्ट करें। मोटर चालक मॉड्यूल के In1, In2, In3 और In4 पिन क्रमशः Arduino नैनो के पिन 2, पिन 3, पिन 4 और पिन 5 से जुड़े होते हैं।
  3. अल्ट्रासोनिक सेंसर का ट्रिगर और इको पिन क्रमशः Ar11ino नैनो के पिन 11 और 10 से जुड़ा हुआ है। अल्ट्रासोनिक सेंसर का Vcc और ग्राउंड पिन Arduino Nano के 5V और ग्राउंड से जुड़ा है।
  4. मोटर नियंत्रक मॉड्यूल बैटरी द्वारा संचालित होता है। Arduino नैनो बोर्ड को मोटर चालक मॉड्यूल के 5V पोर्ट से शक्ति मिलती है और अल्ट्रासोनिक सेंसर को Arduino नैनो बोर्ड से इसकी शक्ति मिलेगी। बैटरी का वजन और ऊर्जा इसके प्रदर्शन का निर्धारक कारक बन सकता है।
  5. सुनिश्चित करें कि आपके कनेक्शन सर्किट आरेख में नीचे दिखाए अनुसार समान हैं।

    सर्किट आरेख

चरण 4: Arduino के साथ शुरुआत करना

यदि आप पहले से ही Arduino IDE से परिचित नहीं हैं, तो चिंता न करें क्योंकि एक माइक्रोकंट्रोलर बोर्ड के साथ Arduino IDE को सेट-अप और उपयोग करने के लिए कदम प्रक्रिया का एक चरण नीचे बताया गया है।

  1. से Arduino IDE का नवीनतम संस्करण डाउनलोड करें Arduino।
  2. अपने Arduino नैनो बोर्ड को अपने लैपटॉप से ​​कनेक्ट करें और कंट्रोल पैनल खोलें। नियंत्रण कक्ष में, पर क्लिक करें हार्डवेयर और ध्वनि । अब पर क्लिक करें उपकरणों और छापक यंत्रों। यहां, वह पोर्ट ढूंढें जिसमें आपका माइक्रोकंट्रोलर बोर्ड जुड़ा हुआ है। मेरे मामले में यह है COM14 लेकिन यह विभिन्न कंप्यूटरों पर अलग है।

    पोर्ट ढूँढना

  3. टूल मेनू पर क्लिक करें। और बोर्ड को सेट करें अरुडिनो नैनो ड्रॉप-डाउन मेनू से।

    बोर्ड की स्थापना

  4. उसी टूल मेनू में, पोर्ट को उस पोर्ट संख्या पर सेट करें जिसे आपने पहले देखा था उपकरणों और छापक यंत्रों

    पोर्ट की स्थापना

  5. उसी टूल मेनू में, प्रोसेसर को सेट करें ATmega328P (पुराना बूटलोडर)।

    प्रोसेसर

  6. नीचे दिए गए कोड को डाउनलोड करें और इसे अपने Arduino IDE में पेस्ट करें। पर क्लिक करें डालना अपने माइक्रोकंट्रोलर बोर्ड पर कोड को जलाने के लिए बटन।

    डालना

कोड डाउनलोड करने के लिए, यहाँ क्लिक करें।

चरण 5: कोड को समझना

कोड अच्छी तरह से टिप्पणी और आत्म-व्याख्यात्मक है। लेकिन फिर भी, इसे नीचे समझाया गया है

1. कोड की शुरुआत में, Arduino Nano बोर्ड के सभी पिन जो अल्ट्रासोनिक सेंसर और मोटर चालक मॉड्यूल से जुड़े हैं, आरंभिक हैं। पिन 6 और पिन 9 पीडब्लूएम पिन हैं जो रोबोट की गति को अलग करने के लिए वोल्टेज के प्रवाह को भिन्न कर सकते हैं। दो चर, अवधि, तथा दूरी उन डेटा को संग्रहीत करने के लिए आरम्भिक हैं, जिनका उपयोग बाद में अल्ट्रासोनिक सेंसर और बाधा की दूरी की गणना के लिए किया जाएगा।

int enable1pin = 6; // पहले मोटर के लिए पिंस int motor1pin1 = 2; int motor1pin2 = 3; int enable2pin = 9; // दूसरी मोटर इंट मोटर 2 पिन 1 = 4 के लिए पिन; int motor2pin2 = 5; const int trigPin = 11; // अल्ट्रासोनिक सेसनोर का ट्रिगर पिन इंट इकोपिन = 10; // इकोनॉमिक पिन ऑफ़ अल्ट्रसोनिक सेसनोर लॉन्ग ड्यूरेशन; // चर दूरी की दूरी की गणना करने के लिए चर;

2। व्यर्थ व्यवस्था() एक ऐसा फंक्शन है जिसका उपयोग अल पिनों को सेट करने के लिए किया जाता है, जैसा कि इनपुट तथा आउटपुट। इस फ़ंक्शन में बॉड रेट को परिभाषित किया गया है। बॉड रेट संचार की गति है जिसके द्वारा माइक्रोकंट्रोलर बोर्ड इसके साथ एकीकृत सेंसर के साथ संचार करता है।

शून्य सेटअप () {Serial.begin (9600); पिनमोड (ट्रिगपिन, आउटपूट); पिनमोड (इकोपिन, INPUT); पिनमोड (enable1pin, OUTPUT); पिनमोड (enable2pin, OUTPUT); पिनमोड (motor1pin1, OUTPUT); पिनमोड (motor1pin2, OUTPUT); पिनमोड (motor2pin1, OUTPUT); पिनमोड (motor2pin2, OUTPUT); }

3। शून्य लूप () एक ऐसा कार्य है जो एक चक्र में बार-बार चलता है। इस फ़ंक्शन में, हम माइक्रोकंट्रोलर बोर्ड को बताते हैं कि कैसे और क्या संचालन करना है। यहां, पहले, ट्रिगर पिन एक सिग्नल भेजने के लिए सेट किया गया है जो कि इको पिन द्वारा पता लगाया जाएगा। फिर अल्ट्रासोनिक सिग्नल द्वारा यात्रा करने के लिए और सेंसर से वापस जाने के लिए समय की गणना की जाती है और इसे चर में बचाया जाता है अवधि। फिर इस समय का उपयोग एक सूत्र में बाधा और अल्ट्रासोनिक सेंसर की दूरी की गणना के लिए किया जाता है। फिर एक शर्त लागू की जाती है कि यदि दूरी 5ocm से अधिक है, तो रोबोट एक सीधी रेखा में आगे बढ़ेगा और यदि दूरी 50 सेमी से कम है, तो रोबोट एक तेज दाएं मोड़ लेगा।

शून्य लूप () {digitalWrite (trigPin, LOW); // अल्ट्रासोनिक सिग्नल देरी भेजना और पता लगानाMicroseconds (2); digitalWrite (ट्राइगिन, हाई); delayMicroseconds (10); digitalWrite (trigPin, LOW); अवधि = पल्स इन (इकोपिन, हाई); // अल्ट्रासोनिक तरंग द्वारा ली गई समय-सीमा को वापस दूरी = 0.034 * (अवधि / 2) को दर्शाते हुए; // डिस्टेबुल टू डिस्टेंट बेटिवेट टू रोबोट और बाधा। if (दूरी> 50) // अगर 50cm {digitalWrite (enable1pin, HIGH) से अधिक दूरी हो तो आगे बढ़ें; digitalWrite (enable2pin, HIGH); digitalWrite (motor1pin1, HIGH); digitalWrite (motor1pin2, LOW); digitalWrite (motor2pin1, HIGH); digitalWrite (motor2pin2, LOW); } और अगर (दूरी<50) // Sharp Right Turn if the distance is less than 50cm { digitalWrite(enable1pin, HIGH); digitalWrite(enable2pin, HIGH); digitalWrite(motor1pin1, HIGH); digitalWrite(motor1pin2, LOW); digitalWrite(motor2pin1, LOW); digitalWrite(motor2pin2, LOW); } delay(300); }

अनुप्रयोग

तो यहां रोबोट से बचने के लिए एक बाधा बनाने की प्रक्रिया थी। प्रौद्योगिकी से बचने वाली इस बाधा पर अन्य अनुप्रयोगों में भी मुकदमा चलाया जा सकता है। इनमें से कुछ एप्लिकेशन इस प्रकार हैं।

  1. सिस्टम पर नजर।
  2. दूरी मापन उद्देश्य।
  3. इसका उपयोग स्वचालित वैक्यूम क्लीनिंग रोबोट में किया जा सकता है।
  4. यह लाठी में अंधे लोगों के लिए इस्तेमाल किया जा सकता है।