विषयसूची:

अंतरिक्ष यात्री-सहायक रूंबा: 4 कदम
अंतरिक्ष यात्री-सहायक रूंबा: 4 कदम

वीडियो: अंतरिक्ष यात्री-सहायक रूंबा: 4 कदम

वीडियो: अंतरिक्ष यात्री-सहायक रूंबा: 4 कदम
वीडियो: Burns and Allen - Season 1 - Episode 7 - Rumba Lessons | George Burns, Gracie Allen 2024, नवंबर
Anonim
अंतरिक्ष यात्री-सहायक रूमबा
अंतरिक्ष यात्री-सहायक रूमबा

यह प्रोजेक्ट iRobot Create वर्जन 2 पर रास्पबेरी पाई 3 का उपयोग करके बनाया गया है। MATLAB का उपयोग रोबोट को इसके सेंसर और कैमरे का उपयोग करके विशिष्ट निर्देशों का पालन करने के लिए प्रोग्राम करने के लिए किया जाता है। सेंसर और कैमरों का उपयोग विशिष्ट कार्यों को करने के लिए किया जाता है जो एक अंतरिक्ष यात्री का अनुसरण करेंगे और कुछ भी गलत होने पर उसे अपने घर के आधार के साथ संवाद करने की क्षमता प्रदान करेंगे।

चरण 1: आवश्यक भाग

आवश्यक भाग
आवश्यक भाग
आवश्यक भाग
आवश्यक भाग
आवश्यक भाग
आवश्यक भाग
आवश्यक भाग
आवश्यक भाग

1. iRobot क्रिएट वर्जन 2

iRobot Create इस परियोजना का सबसे आवश्यक हिस्सा है क्योंकि यह प्रोग्राम करने योग्य है और एक वास्तविक रोवर के लिए एक महान प्रतिनिधित्व हो सकता है जो अंतरिक्ष यात्रियों का अनुसरण करता है और भविष्य में उनकी सहायता करता है।

2. रास्पबेरी पाई 3

रास्पबेरी पाई इस परियोजना के लिए इस्तेमाल किया जाने वाला प्रोग्राम था। कोड पाई के लिए डिज़ाइन किया गया है और संलग्न पाई का संस्करण 3 (मॉडल बी) है। अन्य प्रोग्राम करने योग्य बोर्ड जैसे कि arduino प्रयोग करने योग्य हैं, हालाँकि, arduino और अधिकांश अन्य बोर्डों को दूसरे चरण में वर्णित की तुलना में अलग कोडिंग की आवश्यकता होगी।

3. रास्पबेरी पाई कैमरा मॉड्यूल

इस परियोजना के लिए आवश्यक रास्पबेरी पाई का एकमात्र बाहरी कनेक्शन कैमरा मॉड्यूल है। कैमरा मॉड्यूल इस परियोजना का अभिन्न अंग है, क्योंकि रूमबा केवल कैमरे में जो देखता है उसके आधार पर कार्य करेगा।

4. MATLAB 2018a

MATLAB का दूसरा सबसे हालिया संस्करण, 2018a, इस सेटअप में शामिल कोडिंग के लिए उपयोग किया गया था। यह संभावना है कि MATLAB के कई अन्य संस्करण इसके साथ काम करेंगे क्योंकि रूमबा प्रोग्रामिंग कुछ समय के लिए आसपास रही है

चरण 2: फ़ाइलें और कैमरा कॉन्फ़िगरेशन

फ़ाइलें और कैमरा कॉन्फ़िगरेशन
फ़ाइलें और कैमरा कॉन्फ़िगरेशन

1. रास्पबेरी पाई और कैमरा कनेक्शन रूमबा

  • पाई माइक्रो यूएसबी से सीधे iRobot से जुड़ सकता है। बस इतना ही उपयोग करने के लिए तैयार रहने की जरूरत है। हालांकि, यह अनुशंसा की जाती है कि इसे सुरक्षित रूप से रूमबा पर रखा जाए जैसा कि अब तक की पूरी प्रस्तुति में चित्रों में दिखाया गया है।
  • कैमरे का रास्पबेरी पाई से सीधा संबंध है और यह अत्यधिक अनुशंसा की जाती है कि कैमरे को सीधे ऊपर रखने के लिए कुछ खरीदा या बनाया जाए। कैमरे के लिए कोई वास्तविक बिंदु नहीं है अगर इसे रूमबा क्या देखता है यह दिखाने के लिए जगह में नहीं रखा जा सकता है।

2. फ़ाइलें

  • सब कुछ सेट और कनेक्ट होने के बाद, सुनिश्चित करें कि रोबोट रीसेट हो गया है और 10 सेकंड के लिए "स्पॉट" और "डॉक" बटन को एक साथ पकड़कर जाने के लिए तैयार है।
  • यहीं पर सबसे पहले MATLAB की जरूरत होती है। रूमबा के लिए फ़ाइलों को पहले स्थापित करने की आवश्यकता है और इन फ़ाइलों को चलाने के लिए केवल इस लिंक पर दिया गया कोड है:
  • https://ef.engr.utk.edu/ef230-2017-08//projects/ro…

चरण 3: प्रारंभिक रूमबा परीक्षण

यह सुनिश्चित करने के लिए कि यह काम कर रहा है, रूमबा पर कई प्रारंभिक जांच की जानी है।

1. सुनिश्चित करें कि आप उसी वाईफाई नेटवर्क से जुड़े हैं जिससे रूमबा जुड़ा है। इसके बिना आप MATLAB के माध्यम से कभी भी कनेक्ट नहीं होंगे।

2. पता करें कि आपका रूमबा किस नंबर को सौंपा गया है ताकि आप अपने चुने हुए रूमबा से विशेष रूप से जुड़ सकें। उदाहरण के लिए, यदि आपके रूमबा का नंबर 30 है, तो आप इसे MATLAB में कमांड विंडो में रूमबा (30) टाइप करके कनेक्ट करेंगे।

3. रूमबा को MATLAB में स्ट्रक्चर्स के माध्यम से नियंत्रित किया जा सकता है। उदाहरण के लिए, यदि आप रूमबा (30) के लिए अपना कोड वेरिएबल 'r' पर सेट करते हैं, तो रोबोट को r.moveDistance(0.2, 0.1) कमांड के साथ आगे बढ़ाया जा सकता है।

4. कई अलग-अलग कमांड हैं जिन्हें रूमबा को सूचित किया जा सकता है और इन्हें कमांड विंडो में 'डॉक रूमबा' टाइप करके देखा जा सकता है।

5. लाइट, बम्प और क्लिफ रीडिंग के लिए सेंसर को 'डॉक रूमबा' में देखे गए कमांड का उपयोग करके पढ़ा जा सकता है लेकिन सेंसर डेटा को देखने के लिए एक स्थिर, साफ मेनू रखने का एक तरीका 'r.testSensors' का उपयोग करके देखा जा सकता है। '।

6. इन सबका परीक्षण करने के बाद, रोबोट के इमेज कलेक्टिंग सॉफ्टवेयर का उपयोग ली गई तस्वीरों को पढ़ने और देखने के लिए किया जा सकता है। इसके लिए मूल कोड होगा img = r.getImage और imshow(img);.

7. तस्वीर के आरजीबी मूल्यों को कोड के साथ पाया जा सकता है red_mean = mean(mean(img(:,:, 1)));

ग्रीन_मीन = माध्य (माध्य (आईएमजी (:,:, 2))); और blue_mean=mean(mean(img(:,:, 3)));.

चरण 4: उदाहरण MATLAB कोड

उदाहरण MATLAB कोड
उदाहरण MATLAB कोड

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

i=1:.1:3 img=r.getImage के लिए; छवि (आईएमजी) red_mean = माध्य (माध्य (आईएमजी (:,:, 1))); ग्रीन_मीन = माध्य (माध्य (आईएमजी (:,:, 2))); blue_mean = माध्य (माध्य (img (:,:, 3))); अगर red_mean > 110 && red_mean 110 && blue_mean 110 && green_mean0 || टक्कर.बाएं>0 || बम्प.फ्रंट>0 r.beep() r.beep() r.beep() r.stop elseif क्लिफ।बाएं<10 || क्लिफ.लेफ्टफ्रंट<10 || क्लिफ.राइटफ्रंट<10 || क्लिफ.राइट700 || लाइट.लेफ्टफ्रंट>700 || लाइट.लेफ्टसेंटर>700 || लाइट.राइटसेंटर>700 || light.rightFront>700 || light.right>700 r.beep() r.beep() r.beep() r.beep() r.beep() r.stop और i=1:2 r.moveDistance(0.2, 0.1) r के लिए। setDriveVelocity(.3,.2) आर.स्टॉप एंड एंड एंड अगर ग्रीन_मीन <35 && ब्लू_मीन <35% त्वचा का रंग दिखा रहा है (अंतरिक्ष यात्री की त्वचा के रंग के आधार पर समायोजित करने की आवश्यकता है) r.beep (); आर.बीप (); आर.बीप (); मेल = '[email protected]'; % ईमेल दिखाता है कि सूट बंद है psswd = 'हाँ'; होस्ट = 'smtp.gmail.com'; पोर्ट = '465'; emailto = '[email protected]'; m_subject = 'विषय'; m_text = 'परीक्षण'; setpref ('इंटरनेट', 'ईमेल', मेल); setpref ('इंटरनेट', 'SMTP_Server', होस्ट); setpref ('इंटरनेट', 'SMTP_Username', मेल); setpref ('इंटरनेट', 'SMTP_Password', psswd); सहारा = java.lang. System.getProperties; props.setProperty('mail.smtp.user', mail); props.setProperty('mail.smtp.host', host); props.setProperty('mail.smtp.port', port); props.setProperty('mail.smtp.starttls.enable', 'true'); props.setProperty('mail.smtp.debug', 'true'); props.setProperty('mail.smtp.auth', 'true'); props.setProperty('mail.smtp.socketFactory.port', port); props.setProperty('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty('mail.smtp.socketFactory.fallback', 'false'); sendmail(emailto, 'सहायता!', 'अंतरिक्ष यात्री वर्दी बंद है!', img); अंत अगर red_mean 135 || हरा_मीन 135 || blue_mean 135 j के लिए = 1:2% यदि सफेद रोबोट द्वारा नहीं पाया जा सकता है r.turnAngle(360) mail = '[email protected]'; psswd = 'हाँ'; होस्ट = 'smtp.gmail.com'; पोर्ट = '465'; ईमेलटो = '[email protected]'; m_subject = 'विषय'; m_text = 'परीक्षण'; setpref ('इंटरनेट', 'ईमेल', मेल); setpref ('इंटरनेट', 'SMTP_Server', होस्ट); setpref ('इंटरनेट', 'SMTP_Username', मेल); setpref ('इंटरनेट', 'SMTP_Password', psswd); सहारा = java.lang. System.getProperties; props.setProperty('mail.smtp.user', mail); props.setProperty('mail.smtp.host', host); props.setProperty('mail.smtp.port', port); props.setProperty('mail.smtp.starttls.enable', 'true'); props.setProperty('mail.smtp.debug', 'true'); props.setProperty('mail.smtp.auth', 'true'); प्रॉप्स.सेटप्रॉपर्टी ('mail.smtp.socketFactory.port', पोर्ट); props.setProperty('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty('mail.smtp.socketFactory.fallback', 'false'); sendmail(emailto, 'सहायता!', 'अंतरिक्ष यात्री नहीं मिल सकता!', img); आर.स्टॉप एंड एंड एंड

जाहिर है कि यहां गड़बड़ है, लेकिन एक बार कॉपी करने के बाद इसे बफ करना चाहिए। इसके लिए पासवर्ड और ईमेल स्पष्ट रूप से इस परियोजना को करने वालों द्वारा प्रदान किए जाने हैं।

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

सिफारिश की: