विषयसूची:

Arduino पर आधारित लाइट फॉलो और अवॉइडिंग रोबोट: 5 स्टेप्स
Arduino पर आधारित लाइट फॉलो और अवॉइडिंग रोबोट: 5 स्टेप्स

वीडियो: Arduino पर आधारित लाइट फॉलो और अवॉइडिंग रोबोट: 5 स्टेप्स

वीडियो: Arduino पर आधारित लाइट फॉलो और अवॉइडिंग रोबोट: 5 स्टेप्स
वीडियो: robot race. line follower robot with arduino program 2024, नवंबर
Anonim
Arduino पर आधारित लाइट फॉलो और अवॉइडिंग रोबोट
Arduino पर आधारित लाइट फॉलो और अवॉइडिंग रोबोट

यह एक साधारण परियोजना है जो प्रकाश का अनुसरण या अवहेलना करती है।

मैंने इस सिमुलेशन को प्रोटियस 8.6 प्रो में बनाया। आवश्यक घटक: -1) Arduino uno।

2) 3 एलडीआर।

3) 2 डीसी गियर मोटर्स। 4) एक सर्वो। 5) तीन 1k प्रतिरोध। 6) एक एच-ब्रिज l290D7) एक चालू और बंद स्विच [कार्यक्रम की स्थिति बदलने के लिए]

8) 9वी और 5वी बैट्री

चरण 1: अर्दुनियो कोड

Arduino कोड को थोड़ा संशोधित किया गया है - दिनांक 23 फरवरी 2016]

इस कोड पर अत्यधिक टिप्पणी की गई है, मैं समझाना नहीं चाहता, लेकिन अगर आपको कुछ मदद की ज़रूरत है तो मुझसे संपर्क करने के लिए स्वतंत्र हो ([email protected])

नोट:- मैं इस कार्यक्रम में दो शर्तों का उपयोग करता हूं पहला लाइट फॉलोइंग के लिए। दूसरा लाइट से बचने के लिए।

जहां तक ये शर्तें संतुष्ट हैं, रोबोट प्रकाश का पालन करेगा या उससे बचें। [यह एलडीआर का न्यूनतम मूल्य है जिसे मैं चुनता हूं। सामान्य प्रकाश में इसकी सीमा ८० से ९५ होती है, लेकिन जैसे-जैसे इसकी तीव्रता बढ़ती जाती है, वैसे-वैसे यह वोल्टेज विभक्त के सिद्धांत पर काम कर रहा होता है। // सहिष्णुता मूल्य]

चरण 2: प्रोटीन फ़ाइलें

Arduino लाइब्रेरी के लिए उस लिंक से डाउनलोड करें

चरण 3: आपका एच-ब्रिज कैसे काम करता है

आपका एच-ब्रिज कैसे काम करता है
आपका एच-ब्रिज कैसे काम करता है
आपका एच-ब्रिज कैसे काम करता है
आपका एच-ब्रिज कैसे काम करता है

L293NE/SN754410 एक बहुत ही बुनियादी एच-ब्रिज है। इसमें दो पुल हैं, एक चिप के बाईं ओर और एक दाईं ओर, और 2 मोटरों को नियंत्रित कर सकता है। यह 1 amp तक का करंट चला सकता है, और 4.5V और 36V के बीच काम कर सकता है। इस लैब में आप जिस छोटी डीसी मोटर का उपयोग कर रहे हैं, वह कम वोल्टेज से सुरक्षित रूप से चल सकती है, इसलिए यह एच-ब्रिज ठीक काम करेगा। एच-ब्रिज में निम्नलिखित पिन और विशेषताएं हैं: पिन 1 (1, 2EN) हमारी मोटर को सक्षम और अक्षम करता है चाहे वह हाई या लोपिन 2 (1 ए) दे, हमारी मोटर के लिए एक लॉजिक पिन है (इनपुट या तो उच्च या निम्न है) पिन 3 (1Y) मोटर टर्मिनलों में से एक के लिए हैपिन 4-5 ग्राउंडपिन के लिए है 6 (2Y) दूसरे मोटर टर्मिनल के लिए हैपिन 7 (2A) हमारी मोटर के लिए एक लॉजिक पिन है (इनपुट या तो उच्च या निम्न है) पिन 8 (VCC2) हमारी मोटर के लिए बिजली की आपूर्ति है, इसे आपके मोटर का रेटेड वोल्टेज दिया जाना चाहिएपिन 9-11 असंबद्ध हैं क्योंकि आप इस प्रयोगशाला में केवल एक मोटर का उपयोग कर रहे हैंपिन 12-13 ग्राउंडपिन के लिए हैं 14-15 असंबद्ध हैंपिन 16 (वीसीसी1) है 5V से जुड़ा है। ऊपर एच-ब्रिज का एक आरेख है और हमारे उदाहरण में कौन से पिन क्या करते हैं। आरेख के साथ शामिल एक सत्य तालिका है जो दर्शाती है कि तर्क पिन की स्थिति के अनुसार मोटर कैसे कार्य करेगी (जो हमारे Arduino द्वारा निर्धारित की जाती है)।

इस परियोजना में, सक्षम पिन आपके Arduino पर एक डिजिटल पिन से जुड़ता है ताकि आप इसे उच्च या निम्न भेज सकें और मोटर को चालू या बंद कर सकें। मोटर लॉजिक पिन आपके Arduino पर निर्दिष्ट डिजिटल पिन से भी जुड़े होते हैं ताकि आप इसे एक दिशा में मोटर मोड़ने के लिए उच्च और निम्न भेज सकें, या कम और उच्च इसे दूसरी दिशा में मोड़ने के लिए भेज सकें। मोटर आपूर्ति वोल्टेज मोटर के लिए वोल्टेज स्रोत से जुड़ता है, जो आमतौर पर बाहरी बिजली की आपूर्ति होती है। यदि आपकी मोटर 5V और 500mA से कम पर चल सकती है, तो आप Arduino के 5V आउटपुट का उपयोग कर सकते हैं। अधिकांश मोटरों को इससे अधिक वोल्टेज और उच्च करंट ड्रॉ की आवश्यकता होती है, इसलिए आपको बाहरी बिजली की आपूर्ति की आवश्यकता होगी।

मोटर को एच-ब्रिज से कनेक्ट करें मोटर को एच-ब्रिज से कनेक्ट करें जैसा कि दूसरे चित्र में दिखाया गया है।

या, यदि आप Arduino के लिए बाहरी बिजली की आपूर्ति का उपयोग कर रहे हैं, तो आप विन पिन का उपयोग कर सकते हैं।

चरण 4: एलडीआर कैसे काम करता है

अब पहली चीज जिसे और स्पष्टीकरण की आवश्यकता हो सकती है वह है लाइट डिपेंडेंट रेसिस्टर्स का उपयोग। लाइट डिपेंडेंट रेसिस्टर्स (या LDR's) रेसिस्टर्स हैं जिनका मान परिवेशी प्रकाश की मात्रा के आधार पर बदलता है, लेकिन हम Arduino के साथ प्रतिरोध का पता कैसे लगा सकते हैं? वैसे आप वास्तव में नहीं कर सकते हैं, हालांकि आप एनालॉग पिन का उपयोग करके वोल्टेज स्तर का पता लगा सकते हैं, जो 0-5V के बीच (मूल उपयोग में) माप सकता है। अब आप पूछ रहे होंगे "ठीक है हम प्रतिरोध मूल्यों को वोल्टेज परिवर्तनों में कैसे परिवर्तित करते हैं?", यह आसान है, हम वोल्टेज विभक्त बनाते हैं। एक वोल्टेज विभक्त एक वोल्टेज लेता है और फिर उस वोल्टेज के एक अंश को इनपुट वोल्टेज के आनुपातिक और उपयोग किए गए प्रतिरोधों के दो मूल्यों के अनुपात में आउटपुट करता है। जिसके लिए समीकरण है:

आउटपुट वोल्टेज = इनपुट वोल्टेज * (R2 / (R1 + R2)) जहां R1 पहले रेसिस्टर का मान है और R2 दूसरे का मान है।

अब यह अभी भी सवाल पूछता है "लेकिन एलडीआर के पास कौन से प्रतिरोध मूल्य हैं?", अच्छा सवाल। परिवेश प्रकाश की मात्रा जितनी अधिक होगी, प्रतिरोध उतना ही अधिक होगा, अधिक परिवेश प्रकाश का अर्थ है कम प्रतिरोध। अब विशेष एलडीआर के लिए मैंने उनकी प्रतिरोध सीमा का उपयोग 200 - 10 किलो ओम से किया था, लेकिन यह अलग-अलग लोगों के लिए बदलता है, इसलिए सुनिश्चित करें कि आपने उन्हें कहाँ से खरीदा है और एक डेटाशीट या कुछ ऐसा खोजने का प्रयास करें। अब इसमें केस R1 वास्तव में हमारा LDR है, तो चलिए उस समीकरण को वापस लाते हैं और कुछ गणित-ए-जादू (गणितीय विद्युत जादू) करते हैं। अब पहले हमें उन किलो ओम मानों को ओम में बदलने की आवश्यकता है: 200 किलो-ओम = 200, 000 ओम 10 किलो-ओम = १०,००० ओम तो यह पता लगाने के लिए कि आउटपुट वोल्टेज क्या है जब हम पिच ब्लैक में होते हैं तो हम निम्नलिखित संख्याओं में प्लग करते हैं: 5 * (10000 / (200000 + 10000)) इनपुट 5V है क्योंकि हमें यही मिल रहा है Arduino से। उपरोक्त 0.24V (राउंड ऑफ) देता है। अब हम निम्नलिखित संख्याओं का उपयोग करके आउटपुट वोल्टेज चरम चमक में पाते हैं: 5 * (10000 / (10000 + 10000)) और यह हमें 2.5V बिल्कुल देता है। तो ये वोल्टेज मान हैं जो हम Arduino के एनालॉग पिन में प्राप्त करने जा रहे हैं, लेकिन ये वे मान नहीं हैं जो प्रोग्राम में दिखाई देंगे, "लेकिन क्यों?" आप पूछ सकते हैं। Arduino एक एनालॉग टू डिजिटल चिप का उपयोग करता है जो एनालॉग वोल्टेज को प्रयोग करने योग्य डिजिटल डेटा में परिवर्तित करता है। Arduino पर डिजिटल पिन के विपरीत, जो केवल 0 और 5V के उच्च या निम्न राज्य को पढ़ सकता है, एनालॉग पिन 0-5V से पढ़ सकते हैं और इसे 0-1023 की संख्या सीमा में परिवर्तित कर सकते हैं। अब कुछ और गणित-ए-जादू के साथ. हम वास्तव में गणना कर सकते हैं कि Arduino वास्तव में कौन से मूल्य पढ़ेगा।

क्योंकि यह एक रैखिक फलन होगा, हम निम्नलिखित सूत्र का उपयोग कर सकते हैं: Y = mX + C कहा पे; वाई = डिजिटल मूल्यकहाँ; एम = ढलान, (वृद्धि / रन), (डिजिटल मूल्य / एनालॉग मूल्य)कहां; सी = वाई इंटरसेप्ट वाई इंटरसेप्ट 0 है जो हमें देता है: वाई = एमएक्सएम = 1023/5 = 204.6 इसलिए: डिजिटल वैल्यू = 204.6 * एनालॉग वैल्यू तो पिच ब्लैक में डिजिटल वैल्यू होगी: 204.6 * 0.24 जो लगभग 49 देता है। और चरम चमक में यह होगा: २०४.६ * २.५ जो लगभग ५११ देता है। अब इनमें से दो दो एनालॉग पिनों पर सेट अप के साथ हम उनके मूल्यों को दो स्टोर करने के लिए दो पूर्णांक चर बना सकते हैं और तुलना ऑपरेटरों को यह देखने के लिए कर सकते हैं कि किसके पास सबसे कम मूल्य है, रोबोट को उस दिशा में मोड़ना।

सिफारिश की: