विषयसूची:

एक्सेलेरोमीटर और आरएफ ट्रांसमीटर-रिसीवर जोड़ी का उपयोग करके जेस्चर नियंत्रित रोवर: 4 कदम
एक्सेलेरोमीटर और आरएफ ट्रांसमीटर-रिसीवर जोड़ी का उपयोग करके जेस्चर नियंत्रित रोवर: 4 कदम

वीडियो: एक्सेलेरोमीटर और आरएफ ट्रांसमीटर-रिसीवर जोड़ी का उपयोग करके जेस्चर नियंत्रित रोवर: 4 कदम

वीडियो: एक्सेलेरोमीटर और आरएफ ट्रांसमीटर-रिसीवर जोड़ी का उपयोग करके जेस्चर नियंत्रित रोवर: 4 कदम
वीडियो: Hand Gesture Controlled Robot using Arduino Project Part 1 (Arduino Series - Part 15) | हिंदी में 2024, जुलाई
Anonim
एक्सेलेरोमीटर और आरएफ ट्रांसमीटर-रिसीवर जोड़ी का उपयोग करके जेस्चर नियंत्रित रोवर
एक्सेलेरोमीटर और आरएफ ट्रांसमीटर-रिसीवर जोड़ी का उपयोग करके जेस्चर नियंत्रित रोवर

सुनो, कभी ऐसा रोवर बनाने की चाहत थी जिसे आप साधारण हाथ के इशारों से चला सकें, लेकिन कभी भी इमेज प्रोसेसिंग की पेचीदगियों में उद्यम करने और अपने माइक्रोकंट्रोलर के साथ एक वेबकैम को इंटरफेस करने का साहस नहीं जुटा सके, न कि खराब रेंज और लाइन-ऑफ- दृष्टि मुद्दे? खैर, डरो मत … क्योंकि एक आसान रास्ता है! निहारना, जैसा कि मैं आपके लिए शक्तिशाली एक्सेलेरोमीटर प्रस्तुत करता हूं! *बा दम टीएसएस*

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

आपको अभी के लिए इसे ध्यान में रखने की आवश्यकता है: एक एक्सेलेरोमीटर gizmo (अक्सर एक जाइरोस्कोप के साथ युग्मित) होता है जो उन सभी मोशन सेंसर गेम के लिए दरवाजे खोलता है जो हम अपने स्मार्टफ़ोन पर खेलते हैं; उदाहरण के लिए एक कार रेसिंग गेम, जहां हम अपने उपकरणों को किसी भी दिशा में झुकाकर वाहन चलाते हैं। और, हम एक दस्ताने पर एक्सेलेरोमीटर (कुछ सहायक के साथ, निश्चित रूप से) चिपकाकर इस प्रभाव की नकल कर सकते हैं। हम बस अपने जादू के दस्ताने डालते हैं और अपने हाथों को बाएँ या दाएँ, आगे या पीछे झुकाते हैं और हमारे रोवर्स को हमारी धुन पर नाचते हुए देखते हैं। यहां हमें बस इतना करना है कि एक्सेलेरोमीटर की रीडिंग को डिजिटल सिग्नल में ट्रांसलेट करना है, जो रोवर पर लगे मोटर्स इन सिग्नलों को रोवर तक पहुंचाने के लिए एक तंत्र की व्याख्या कर सकते हैं और तैयार कर सकते हैं। इसे पूरा करने के लिए, हम आज के प्रयोग के लिए अच्छे ol 'Arduino और उसके सहयोगियों को बुलाते हैं, एक RF ट्रांसमीटर-रिसीवर जोड़ी 434MHz पर काम कर रही है, जिससे खुली जगह में लगभग 100-150m की रेंज मिलती है, जो हमें लाइन-ऑफ- से भी बचाती है। दृष्टि मुद्दे।

काफी निफ्टी हैक, एह? आइए गोता लगाएँ…

चरण 1: अपनी आपूर्ति इकट्ठा करें

अपनी आपूर्ति इकट्ठा करें
अपनी आपूर्ति इकट्ठा करें
अपनी आपूर्ति इकट्ठा करें
अपनी आपूर्ति इकट्ठा करें
अपनी आपूर्ति इकट्ठा करें
अपनी आपूर्ति इकट्ठा करें
अपनी आपूर्ति इकट्ठा करें
अपनी आपूर्ति इकट्ठा करें
• अरुडिनो नैनो x1
• एक्सेलेरोमीटर (ADXL335) x1
• 5वी डीसी मोटर + पहिए x2 प्रत्येक
• गोजातीय पहिया* x1
• एल२९३डी मोटर चालक + १६ पिन आईसी सॉकेट x1 प्रत्येक
• 434 मेगाहर्ट्ज आरएफ ट्रांसमीटर x1
• 434 मेगाहर्ट्ज आरएफ रिसीवर x1
• HT-12E एनकोडर IC + 18 पिन IC सॉकेट X1 प्रत्येक
• एचटी-12डी डिकोडर आईसी + 18 पिन आईसी सॉकेट x1 प्रत्येक
• LM7805 वोल्टेज नियामक x1
• स्विच को दबाएं x2
• लाल एलईडी + 330O रोकनेवाला x2 प्रत्येक
• पीला एलईडी + 330O रोकनेवाला X1 प्रत्येक
• ग्रीन एलईडी + 330O रोकनेवाला (वैकल्पिक) x4 प्रत्येक
• 51kO और 1MO प्रतिरोधी x1 प्रत्येक
• 10μF रेडियल कैपेसिटर x2
बैटरी, बैटरी कनेक्टर, यूएसबी केबल, जम्पर वायर, महिला हेडर, 2-पिन स्क्रू टर्मिनल, पीसीबी, चेसिस और आपके सामान्य सोल्डरिंग एक्सेसरीज

यदि आप सोच रहे हैं कि हम बोवाइन व्हील का उपयोग क्यों कर रहे हैं, तो बात यह है कि, आरएफ ट्रांसमीटर और रिसीवर मॉड्यूल में केवल 4 डेटा पिन होते हैं, जिसका अर्थ है कि हम केवल 2 मोटर चला सकते हैं और इसलिए एक बोवाइन व्हील का उपयोग संरचना का समर्थन करें। हालांकि, अगर आपको लगता है कि आपका रोवर चार पहियों के साथ थोड़ा और अच्छा लगेगा, तो चिंता न करें, एक काम है! इस मामले में, सूची से बस गोजातीय पहिया को खरोंचें और 5V डीसी मोटर्स की एक और जोड़ी जोड़ें, प्रत्येक में एक पहिया के साथ, और चरण 3 के अंत में चर्चा की गई सरल हैक के लिए देखें।

अंत में, बहादुर लोगों के लिए, डिज़ाइन में एक और मामूली संशोधन की गुंजाइश है, जिसमें थोड़े से इंजीनियरिंग में आपका अपना Arduino शामिल है। अगले चरण में बोनस अनुभाग पर जाएं और स्वयं देखें। आपको कुछ अतिरिक्त आपूर्ति की भी आवश्यकता होगी: एक ATmega328P, एक 28pin IC सॉकेट, एक 16Mhz क्रिस्टल थरथरानवाला, दो 22pF सिरेमिक कैप, एक और 7805 वोल्टेज नियामक, दो और 10μF रेडियल कैप और 10kΩ, 680Ω, 330Ω प्रतिरोधक, और हाँ, माइनस अरुडिनो!

चरण 2: ट्रांसमीटर को तार दें

ट्रांसमीटर को तार दें
ट्रांसमीटर को तार दें
ट्रांसमीटर को तार दें
ट्रांसमीटर को तार दें
ट्रांसमीटर को तार दें
ट्रांसमीटर को तार दें
ट्रांसमीटर को तार दें
ट्रांसमीटर को तार दें

हम परियोजना को दो घटकों में विभाजित करेंगे: ट्रांसमीटर और रिसीवर सर्किट। ट्रांसमीटर में एक एक्सेलेरोमीटर, एक Arduino और एक RF ट्रांसमीटर मॉड्यूल होता है जो एक HT-12E एन्कोडर IC के साथ जुड़ा होता है, सभी संलग्न योजनाबद्ध के अनुसार वायर्ड होते हैं।

एक्सेलेरोमीटर, जैसा कि पहले पेश किया गया था, हमारे हाथ के इशारों को पहचानने का काम करता है। हम अपनी जरूरतों को पूरा करने के लिए तीन-अक्ष एक्सेलेरोमीटर (मूल रूप से एक में तीन सिंगल-एक्सिस एक्सेलेरोमीटर) का उपयोग करने जा रहे हैं। इसका उपयोग तीनों आयामों में त्वरण को मापने के लिए किया जा सकता है, और जैसा कि आपने अनुमान लगाया होगा, यह एक नहीं, बल्कि इसके तीन अक्षों (x, y और z) के सापेक्ष तीन एनालॉग मानों का एक सेट देता है। वास्तव में, हमें केवल x और y अक्षों के साथ त्वरण की आवश्यकता होती है क्योंकि हम रोवर को केवल चार दिशाओं में चला सकते हैं: आगे या पीछे (यानी y अक्ष के साथ) और बाएँ या दाएँ (अर्थात x अक्ष के साथ)। अगर हम ड्रोन बना रहे होते तो हमें z अक्ष की आवश्यकता होती, ताकि हम इशारों के माध्यम से इसके चढ़ने या उतरने को भी नियंत्रित कर सकें। किसी भी मामले में, ये एनालॉग मान जो एक्सेलेरोमीटर पैदावार को मोटरों को चलाने में सक्षम होने के लिए डिजिटल सिग्नल में परिवर्तित किया जाना चाहिए। यह Arduino द्वारा ध्यान रखा जाता है जो रूपांतरण पर, इन संकेतों को RF ट्रांसमीटर मॉड्यूल के माध्यम से रोवर तक पहुंचाता है।

आरएफ ट्रांसमीटर को केवल एक ही काम मिला है: पिन 1 पर एंटीना से पिन 3 पर उपलब्ध "सीरियल" डेटा को प्रसारित करना। यह एचटी -12 ई के उपयोग की वकालत करता है, एक 12 बिट समानांतर-से-सीरियल डेटा एन्कोडर, जो एकत्र करता है AD8 से AD11 तक की पंक्तियों में Arduino से 4 बिट तक समानांतर डेटा, जिससे हमें RF ट्रांसमीटर पर एकल डेटा पिन के विपरीत 24 = 16 विभिन्न I/O संयोजनों के लिए जगह बनाने में सक्षम बनाता है। एनकोडर पर A0 से A7 तक की रेखाओं से खींचे गए शेष 8 बिट्स, एड्रेस बाइट का निर्माण करते हैं, जो RF ट्रांसमीटर को संबंधित RF रिसीवर के साथ पेयर करने की सुविधा प्रदान करता है। फिर 12 बिट्स को एक साथ रखा जाता है और क्रमबद्ध किया जाता है, और आरएफ ट्रांसमीटर के डेटा पिन पर पारित किया जाता है, जो बदले में, एएसके डेटा को 434 मेगाहर्ट्ज वाहक तरंग पर संशोधित करता है और इसे पिन 1 पर एंटीना के माध्यम से शूट करता है।

संकल्पनात्मक रूप से, 434 मेगाहर्ट्ज पर सुनने वाला कोई भी आरएफ रिसीवर इस डेटा को इंटरसेप्ट, डिमॉड्यूलेट और डीकोड करने में सक्षम होना चाहिए। हालाँकि, HT-12E पर और HT-12D समकक्ष (एक 12 बिट सीरियल-टू-पैरेलल डेटा डिकोडर) पर पता लाइनें, हमें केवल डेटा को रूट करके एक RF ट्रांसमीटर-रिसीवर जोड़ी को अद्वितीय प्रस्तुत करने की अनुमति देती हैं। इच्छित रिसीवर जिससे अन्य सभी के साथ संचार सीमित हो। हम सभी के लिए आवश्यक है कि दोनों मोर्चों पर समान रूप से पता पंक्तियों को कॉन्फ़िगर किया जाए। उदाहरण के लिए, चूंकि हमने अपने HT-12E के लिए सभी पता पंक्तियों को आधार बनाया है, इसलिए हमें प्राप्त करने वाले छोर पर HT-12D के लिए भी ऐसा ही करना चाहिए अन्यथा रोवर संकेतों को प्राप्त करने में सक्षम नहीं होगा। इस तरह, हम प्रत्येक रिसीवर पर HT-12Ds पर एड्रेस लाइनों को समान रूप से कॉन्फ़िगर करके एकल ट्रांसमीटर सर्किट के साथ कई रोवर्स को नियंत्रित कर सकते हैं। या, हम दो दस्ताने पहन सकते हैं, प्रत्येक एक ट्रांसमीटर सर्किट के साथ चिपका हुआ है जिसमें एक अलग एड्रेस लाइन कॉन्फ़िगरेशन होता है (कहते हैं, एक सभी पता लाइनों के साथ ग्राउंडेड और दूसरा सभी उच्च के साथ, या एक लाइन ग्राउंडेड जबकि शेष सात आयोजित किया जा रहा है उच्च और दूसरी दो पंक्तियों के साथ, जबकि शेष छह को ऊंचा रखा गया है, या कोई अन्य संयोजन है) और प्रत्येक स्टीयरिंग एकाधिक समान रूप से कॉन्फ़िगर किए गए रोवर्स। एक एंड्रॉइड सिम्फनी पर उस्ताद खेलें!

सर्किट को असेंबल करते समय ध्यान देने वाली एक महत्वपूर्ण बात Rosc का मान है। HT-12E में पिन 15 और 16 के बीच एक आंतरिक थरथरानवाला सर्किट होता है, जो उन पिनों के बीच Rosc नामक एक रोकनेवाला को जोड़कर सक्षम होता है। Rosc के लिए चुना गया मान वास्तव में थरथरानवाला आवृत्ति निर्धारित करता है, जो आपूर्ति वोल्टेज के आधार पर भिन्न हो सकता है। Rosc के लिए उपयुक्त मान का चयन HT-12E के कामकाज के लिए महत्वपूर्ण है! आदर्श रूप से, HT-12E की थरथरानवाला आवृत्ति HT-12D समकक्ष की तुलना में 1/50 गुना होनी चाहिए। इसलिए, चूंकि हम 5V पर काम कर रहे हैं, इसलिए हमने क्रमशः HT-12E और HT-12D सर्किट के लिए 1MΩ और 51kΩ रेसिस्टर्स को Rosc के रूप में चुना। क्या आप एक अलग आपूर्ति वोल्टेज पर सर्किट संचालित करने की योजना बना रहे हैं, सटीक थरथरानवाला आवृत्ति और उपयोग किए जाने वाले अवरोधक को निर्धारित करने के लिए संलग्न HT-12E डेटाशीट के पृष्ठ 11 पर "ऑसिलेटर फ़्रीक्वेंसी बनाम सप्लाई वोल्टेज" ग्राफ़ देखें।

इसके अलावा, एक साइड नोट के रूप में, हम पीसीबी पर सीधे टांका लगाने के बजाय एक्सेलेरोमीटर, आरएफ ट्रांसमीटर और अरुडिनो को सर्किट में प्लग करने के लिए यहां महिला हेडर (आईसी सॉकेट के समान उद्देश्य की सेवा) नियोजित करेंगे। एक छोटे से घटक पुन: प्रयोज्य के आवास का इरादा। कहो, यह कुछ समय हो गया है जब आपने अपने जेस्चर-नियंत्रित रोवर को इंजीनियर किया है और यह वहीं बैठा है, आधा धूल में ढंका हुआ है, आपकी ट्रॉफी शेल्फ के ऊपर है और आप एक और महान निर्देश पर ठोकर खाते हैं जो एक्सेलेरोमीटर की प्रभावकारिता का लाभ उठाता है। तो तुम क्या करते हो? आप बस इसे अपने रोवर से बाहर निकालते हैं और इसे अपने नए सर्किट में धकेलते हैं। आपको एक नया प्राप्त करने के लिए "अमेज़ॅन" को बुलाने की आवश्यकता नहीं है:-p

बोनस: Arduino से दूर रहें, और फिर भी नहीं

बस अगर आप थोड़ा और साहसी महसूस कर रहे हैं, और विशेष रूप से यदि आपको लगता है कि इस तरह के एक छोटे से काम के लिए खूबसूरती से डिजाइन किए गए चमत्कार (निश्चित रूप से Arduino) को खर्च करना थोड़ा अधिक है, मेरे साथ थोड़ा और सहन करें; और यदि नहीं, तो अगले चरण पर जाने के लिए स्वतंत्र महसूस करें।

हमारा लक्ष्य यहाँ Arduino (Arduino का दिमाग, वास्तव में; हाँ, मैं ATmega IC के बारे में बात कर रहा हूँ!) को टीम का स्थायी सदस्य बनाना है। ATmega को केवल एक स्केच को बार-बार चलाने के लिए प्रोग्राम किया जाएगा ताकि यह सर्किट के एक सतत भाग के रूप में काम कर सके, जैसे HT-12E-एक मात्र IC, बस वहीं बैठकर, जो करना चाहिए वह कर रहा है। क्या ऐसा नहीं है कि कोई वास्तविक एम्बेडेड सिस्टम कैसा होना चाहिए?

वैसे भी, इस अपग्रेड के साथ आगे बढ़ने के लिए, सर्किट को संलग्न दूसरे योजनाबद्ध के अनुसार संशोधित करें। यहां, हम केवल Arduino के लिए महिला हेडर को ATmega के लिए IC सॉकेट से बदलते हैं, IC के रीसेट पिन (पिन 1) पर एक 10K पुल-अप रेसिस्टर जोड़ते हैं और इसे पिन 9 और 10 के बीच एक बाहरी घड़ी के साथ पंप करते हैं। दुर्भाग्य से, अगर हम Arduino को हटा देते हैं, तो हम इसके अंतर्निहित वोल्टेज नियामकों को भी छोड़ देते हैं; एर्गो, हमें LM7805-सर्किट को दोहराना होगा जिसे हमने यहां रिसीवर के लिए भी नियोजित किया था। इसके अतिरिक्त, हम एक्सेलेरोमीटर को पावर देने के लिए आवश्यक 3.3V को खींचने के लिए वोल्टेज डिवाइडर का भी उपयोग करते हैं।

अब, यहां एकमात्र अन्य कैच एटीमेगा को अपना काम करने के लिए प्रोग्रामिंग कर रहा है। हालाँकि, आपको इसके लिए चरण 4 तक प्रतीक्षा करनी होगी। तो मिले रहें…

चरण 3: और, रिसीवर

और, रिसीवर
और, रिसीवर
और, रिसीवर
और, रिसीवर
और, रिसीवर
और, रिसीवर
और, रिसीवर
और, रिसीवर

रिसीवर में HT-12D डिकोडर IC के साथ युग्मित RF रिसीवर मॉड्यूल और L293D मोटर ड्राइवर की मदद से संचालित DC मोटर्स की एक जोड़ी होती है, जो सभी संलग्न योजनाबद्ध के अनुसार वायर्ड होती है।

आरएफ रिसीवर का एकमात्र काम वाहक तरंग (पिन 1 पर अपने एंटीना के माध्यम से प्राप्त) को डिमोड्यूलेट करना है और पिन 7 पर पुनर्प्राप्त "सीरियल" डेटा प्रस्तुत करना है जहां से इसे एचटी -12 डी द्वारा deserialization के लिए उठाया जाता है। अब, यह मानते हुए कि HT-12D पर एड्रेस लाइन (A0 से A7) को इसके HT-12E समकक्ष के समान कॉन्फ़िगर किया गया है, डेटा के 4 समानांतर बिट्स को डेटा लाइनों (D8 से D11) के माध्यम से निकाला और पास किया जाता है। HT-12D, मोटर चालक को, जो बदले में मोटरों को चलाने के लिए इन संकेतों की व्याख्या करता है।

फिर से, Rosc के मूल्य पर ध्यान दें। HT-12D में भी, पिन 15 और 16 के बीच एक आंतरिक थरथरानवाला सर्किट होता है, जो उन पिनों के बीच Rosc नामक एक रोकनेवाला को जोड़कर सक्षम होता है। Rosc के लिए चुना गया मान वास्तव में थरथरानवाला आवृत्ति निर्धारित करता है, जो आपूर्ति वोल्टेज के आधार पर भिन्न हो सकता है। Rosc के लिए उपयुक्त मान का चयन HT-12D के कामकाज के लिए महत्वपूर्ण है! आदर्श रूप से HT-12D की थरथरानवाला आवृत्ति HT-12E समकक्ष की तुलना में 50 गुना होनी चाहिए। इसलिए, चूंकि हम 5V पर काम कर रहे हैं, इसलिए हमने क्रमशः HT-12E और HT-12D सर्किट के लिए 1MΩ और 51kΩ रेसिस्टर्स को Rosc के रूप में चुना। क्या आप एक अलग आपूर्ति वोल्टेज पर सर्किट संचालित करने की योजना बना रहे हैं, सटीक थरथरानवाला आवृत्ति और उपयोग किए जाने वाले अवरोधक को निर्धारित करने के लिए संलग्न HT-12D डेटाशीट के पृष्ठ 5 पर "ऑसिलेटर फ़्रीक्वेंसी बनाम सप्लाई वोल्टेज" ग्राफ़ देखें।

इसके अलावा, आरएफ रिसीवर के लिए महिला हेडर को न भूलें।

वैकल्पिक रूप से, HT-12D के 4 डेटा पिनों में से प्रत्येक के लिए एक 330Ω वर्तमान सीमित अवरोधक के माध्यम से एक एलईडी को जोड़ा जा सकता है ताकि उस पिन पर प्राप्त बिट को निर्धारित करने में मदद मिल सके। यदि प्राप्त बिट उच्च (1) है तो एलईडी प्रकाश करेगा और यदि प्राप्त बिट कम (0) है तो मंद हो जाएगा। वैकल्पिक रूप से, एक एकल एलईडी को HT-12D के VT पिन से जोड़ा जा सकता है (फिर से, एक 330Ω वर्तमान सीमित अवरोधक के माध्यम से), जो एक वैध संचरण की स्थिति में प्रकाश करेगा।

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

चरण 4: कोड पर

कोड पर
कोड पर

रोवर को ऊपर और चलाने के लिए बस एक ही काम करना बाकी है। हाँ, आपने सही अनुमान लगाया! (मुझे आशा है कि आपने किया था) हमें अभी भी एक्सेलेरोमीटर रीडिंग को इस रूप में अनुवाद करना है कि मोटर चालक मोटरों को चलाने में सक्षम होने के लिए व्याख्या कर सके। यदि आप सोच रहे हैं कि चूंकि एक्सेलेरोमीटर रीडिंग एनालॉग हैं और मोटर चालक डिजिटल सिग्नल की अपेक्षा करता है, तो हमें किसी प्रकार का एडीसी लागू करना होगा, ठीक है, तकनीकी रूप से नहीं, लेकिन हमें यही करने की ज़रूरत है। और यह काफी सीधा है।

हम जानते हैं कि एक एक्सेलेरोमीटर एक रैखिक अक्ष के साथ गुरुत्वाकर्षण त्वरण को मापता है और यह त्वरण जमीन और आपूर्ति वोल्टेज के बीच उतार-चढ़ाव वाले वोल्टेज स्तर के रूप में दर्शाया जाता है, जिसे हमारा माइक्रोकंट्रोलर 0 और 1023 के बीच के एनालॉग मान के रूप में पढ़ता है। लेकिन, चूंकि हम 3.3V पर एक्सेलेरोमीटर का संचालन कर रहे हैं, यह सलाह दी जाती है कि हम 10-बिट ADC (जो कि एक Arduino पर ATmeaga में एकीकृत आता है) के लिए एनालॉग संदर्भ को 3.3V पर सेट करें। यह चीजों को समझने में आसान बना देगा; हालांकि, यह हमारे छोटे से प्रयोग के लिए ज्यादा मायने नहीं रखता, भले ही हमने ऐसा नहीं किया (हमें बस कोड को थोड़ा बदलना होगा)। हालांकि, ऐसा करने के लिए, हम केवल Arduino (ATmega पर पिन 21) पर AREF पिन को 3.3V पर तार करते हैं और कोड में इस परिवर्तन को analogReference(EXTERNAL) पर कॉल करके निरूपित करते हैं।

अब, जब हम एक्सीलरोमीटर को समतल और एनालॉग बिछाते हैं, तो x और y अक्षों के साथ त्वरण पढ़ें (याद रखें? हमें केवल इन दो अक्षों की आवश्यकता है), हमें लगभग ५११ का मान मिलता है (अर्थात ० और १०२३ के बीच का आधा रास्ता), जो सिर्फ एक है यह कहने का तरीका है कि इन अक्षों के साथ 0 त्वरण है। तथ्य के विवरण में खुदाई करने के बजाय, इसे एक ग्राफ पर x और y कुल्हाड़ियों के रूप में कल्पना करें, मान ५११ मूल को दर्शाता है और ० और १०२३ समापन बिंदु जैसा कि चित्र में दर्शाया गया है; एक्सेलेरोमीटर को इस तरह से ओरिएंट करें कि उसके पिन नीचे की ओर इशारा करें और आपके करीब हों या फिर आप कुल्हाड़ियों को उल्टा / इंटरचेंज कर सकते हैं। इसका मतलब यह है कि, यदि हम एक्सेलेरोमीटर को दाईं ओर झुकाते हैं, तो हमें एक्स-अक्ष के साथ 511 से अधिक का मान पढ़ना चाहिए, और यदि हम एक्सेलेरोमीटर को बाईं ओर झुकाते हैं, तो हमें एक्स-अक्ष के साथ 511 से कम मान प्राप्त करना चाहिए।. इसी तरह, अगर हम एक्सेलेरोमीटर को आगे झुकाते हैं, तो हमें y-अक्ष के साथ 511 से अधिक मान पढ़ना चाहिए, और यदि हम एक्सेलेरोमीटर को पीछे की ओर झुकाते हैं, तो हमें y-अक्ष के साथ 511 से कम मान पढ़ना चाहिए। और इस तरह हम कोड में, उस दिशा में कटौती करते हैं, जिस दिशा में रोवर को चलाया जाना चाहिए। लेकिन इसका मतलब यह भी है कि हमें एक्सेलेरोमीटर को वास्तव में स्थिर रखना चाहिए और दोनों अक्षों के साथ 511 पढ़ने में सक्षम होने के लिए एक सपाट सतह के समानांतर संरेखित करना चाहिए। रोवर को स्थिर रखने के लिए। इस कार्य को थोड़ा आसान करने के लिए, हम एक सीमा बनाते हुए कुछ थ्रेशोल्ड को परिभाषित करते हैं, जैसा कि चित्र में दर्शाया गया है, ताकि रोवर तब तक स्थिर रहे जब तक कि x और y रीडिंग सीमा के भीतर हों और हम निश्चित रूप से जानते हैं कि रोवर को अंदर सेट किया जाना चाहिए। एक बार दहलीज पार हो जाने पर गति।

उदाहरण के लिए, यदि y-अक्ष 543 पढ़ता है, तो हम जानते हैं कि एक्सेलेरोमीटर आगे झुका हुआ है, हमें रोवर को आगे बढ़ाना चाहिए। हम पिन D2 और D4 हाई और पिन D3 और D5 LOW सेट करके ऐसा करते हैं। अब, चूंकि इन पिनों को सीधे HT-12E से तार-तार कर दिया जाता है, इसलिए सिग्नलों को क्रमबद्ध किया जाता है और RF ट्रांसमीटर को केवल रोवर पर बैठे RF रिसीवर द्वारा पकड़ने के लिए निकाल दिया जाता है, जो HT-12D की मदद से सिग्नल को डिसेरिएलाइज़ करता है और उन्हें L293D पर भेजता है, जो बदले में इन संकेतों की व्याख्या करता है और मोटर्स को आगे बढ़ाता है

हालाँकि, आप संवेदनशीलता को जांचने के लिए इन थ्रेसहोल्ड को बदलना चाह सकते हैं। ऐसा करने का एक आसान तरीका है कि आप अपने एक्सेलेरोमीटर को अपने Arduino पर तार दें और एक स्केच चलाएं जो सीरियल मॉनिटर पर x और y रीडिंग को बाहर निकालता है। अब बस एक्सेलेरोमीटर को थोड़ा इधर-उधर घुमाएँ, रीडिंग पर नज़र डालें और थ्रेसहोल्ड पर निर्णय लें।

और बस! अपने Arduino पर कोड अपलोड करें और आनंद लें !! या, शायद इतनी जल्दी नहीं:-(यदि आपने बोनस अनुभाग को नहीं छोड़ा है, तो कोड को अपने ATmega पर अपलोड करने का मतलब थोड़ा और काम होगा। आपके पास दो विकल्प हैं:

विकल्प A: USB से सीरियल डिवाइस जैसे FTDI FT232 बेसिक ब्रेकआउट बोर्ड का उपयोग करें। बस नीचे दिए गए मानचित्रण के अनुसार ATmega पर TTL हेडर से संबंधित पिन तक तारों को चलाएं:

ब्रेकआउट बोर्ड पर पिन माइक्रोकंट्रोलर पर पिन
डीटीआर/जीआरएन RST/रीसेट (पिन १) ०.१μF कैप के माध्यम से
आरएक्स टीएक्स (पिन 3)
टेक्सास आरएक्स (पिन 2)
वीसीसी +5वी आउटपुट
सीटीएस (अप्रयुक्त)
गांधी ज़मीन

अब, USB केबल के एक सिरे को ब्रेकआउट बोर्ड में और दूसरे को अपने पीसी में प्लग करें और कोड अपलोड करें जैसा कि आप सामान्य रूप से करते हैं: Arduino IDE लॉन्च करें, एक उपयुक्त सीरियल पोर्ट चुनें, बोर्ड प्रकार सेट करें, स्केच संकलित करें और हिट अपलोड करें.

विकल्प बी: यूएनओ का उपयोग करें यदि आपके पास कहीं कहीं पड़ा हुआ है। बस अपने ATmega को UNO में प्लग करें, सामान्य रूप से कोड अपलोड करें, IC को बाहर निकालें और इसे वापस ट्रांसमीटर सर्किट में धकेलें। पाई के रूप में आसान!

इन विकल्पों में से कोई भी काम करना चाहिए, यह मानते हुए कि आप अपने ATmega पर बूटलोडर को हाथ से पहले जलाने के लिए पर्याप्त स्मार्ट थे, या, यदि आप पहले से स्थापित बूटलोडर के साथ ATmega खरीदने के लिए और भी स्मार्ट थे। यदि नहीं, तो आगे बढ़ें और यहां बताए गए चरणों का पालन करके ऐसा करें।

Andddd, हम आधिकारिक तौर पर कर रहे हैं! मुझे आशा है कि आपने इस विचित्र रूप से लंबे निर्देश का आनंद लिया। अब, आगे बढ़ें, अपने रोवर का निर्माण समाप्त करें यदि आपने पहले से नहीं किया है, तो इसके साथ कुछ समय खेलें और प्रश्नों और/या रचनात्मक आलोचनाओं के साथ नीचे टिप्पणी अनुभाग को बाढ़ने के लिए वापस आएं।

धन्यवाद

पी.एस. मैंने तैयार परियोजना की कोई तस्वीर अपलोड नहीं की, इसका कारण यह है, क्योंकि मैंने इसे स्वयं पूरा नहीं किया था। इसे बनाने के आधे रास्ते में, मैंने कुछ संवर्द्धन के बारे में सोचा, जैसे गति नियंत्रण, बाधा से बचाव और शायद रोवर पर एक एलसीडी, जो वास्तव में इतना मुश्किल नहीं है अगर हम संचारण और प्राप्त करने वाले दोनों छोरों पर एक माइक्रोकंट्रोलर का उपयोग करते हैं। लेकिन, इसे कठिन तरीके से क्यों न करें ?! इसलिए, मैं वर्तमान में उस दिशा में काम कर रहा हूं और जैसे ही यह कोई फल देगा, मैं एक अपडेट पोस्ट करूंगा। हालांकि, मैंने अपनी पिछली परियोजनाओं में से एक से मॉड्यूल का उपयोग करके बनाए गए त्वरित प्रोटोटाइप की सहायता से कोड और डिज़ाइन का परीक्षण किया था; आप यहां वीडियो देख सकते हैं।

सिफारिश की: