आईआर रेडार के साथ Arduino- आधारित रोबोट

Arduino- आधारित IR IR रडार के साथ रोबोट: 5 चरण

इस अनुदेशात्मक में रोबोट का प्रोटोटाइप मेरा दूसरा Arduino- आधारित "स्लम्बोट" है जो एक स्वायत्त रोबोट है। यह घरेलू सामान और स्क्रैप के साथ एक साथ जुड़ा हुआ है। रोबोट "देखता है" एक आईआर स्कैनिंग सेंसर के साथ एक सर्वो द्वारा घुमाया जाता है। यह बाधाओं और दूरियों के लिए बाएं, आगे और दाएं दिखता है, फिर तय करता है कि कहां जाना है।

रोबोट का कोड नाम Faz3a-X है। फैज़ाह गाली-गलौज और गुनगुनाहट के सामूहिक योग के लिए है

इसके लिए मेरे डिजाइन विषयों और मेरे अन्य रोबोट पर प्रतिबिंबित करने के बाद, कबाड़खाना और मैड मैक्स जैसे शब्द दिमाग में आते हैं।

तो चलो शुरू करते है।

मुख्य भाग
- अरुडिनो यूएनओ: $ 28
- टर्नजी TG9e सर्वोस (2 निरंतर घुमाव के लिए संशोधित): $ 2 प्रत्येक = $ 6
- लगभग $ 14 के लिए शार्प आईआर सेंसर GP2Y0A2
- Arduino प्रोटोटाइप ढाल वैकल्पिक है। आप एक मिनी ब्रेडबोर्ड का उपयोग कर सकते हैं: $ 15
- 9 वी बैटरी और पैक 3 डॉलर
- 6V क्षारीय या 4.8V NiMh 4 X AA बैटरी और $ 4 पैक
- आईआर सेंसर के लिए 10uF कैप: $ 0.2
- सर्वोस X 3 = $ 0.30 के लिए 0.01uF सिरेमिक कैप

कुल: $ 70 (जॉर्डन में, शिपिंग, हैंडलिंग, टैरिफ, टैक्स, क्लीयरेंस फीस के बाद लगभग दोगुना भुगतान करने की उम्मीद)

प्लेटफार्म
- बाहरी 3.5 "USB हार्ड ड्राइव संलग्नक
- टेबल लेग स्लाइडर पिन (ढलाईकार)
- खिलौना कार के पहिये X 2
- पहियों एक्सल और सर्वो माउंट के लिए निर्माण सेट भागों

उपकरण
- वेल्क्रो (प्रोटोटाइप के लिए एक महान आविष्कार)
- पेपर बाइंडर्स / क्लिप
- प्लास्टिक पहियों को ट्रैक्शन देने के लिए रबर बैंड
- स्टेपलर रबर बैंड्स को स्टेपल करने के लिए
- गोंद
- टेप, सिंगल और डबल पक्षीय
- तार

आगे क्या होगा
इस प्रोटोटाइप के अगले चरण में यहां उपयोग किए जाने वाले सरलीकृत अधिकार, मोर्चे, वाम स्कैनिंग एल्गोरिदम के बजाय बेहतर रडार / आंदोलन समन्वय और महीन बाधा का पता लगाने के लिए संलग्न स्केच को परिष्कृत करना शामिल होगा।

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


आपूर्ति:

चरण 1: रोबोट आईआर रडार मॉड्यूल

मैंने शार्प IR राडार के लिए माउंट के रूप में एक मिनी डीवीडी टेप के प्लास्टिक कवर का उपयोग किया। मैंने प्लास्टिक के कवर के किनारों को टेपर करने के लिए स्क्रू होल और सैंड पेपर बनाने के लिए एक ड्रिल पिट का उपयोग किया। यह एक मोटा काम है लेकिन यह काम करता है।

सर्वो आईआर सेंसर को बाएं, आगे और दाएं घूमता है और प्रत्येक दिशा में दूरी पढ़ता है। इस परियोजना में, रोबोट उस दिशा में मुड़ जाएगा जहां अधिक स्थान है।

मैंने सेंसर और सर्वो के लिए एक माउंट बनाने के लिए निर्माण सेट भागों का उपयोग किया।

नीचे दिए गए वीडियो में, मैं Arduino से जुड़े IR रडार स्कैनर का परीक्षण करता हूं और एक TG9e माइक्रो सर्वो द्वारा घुमाया जाता है। यह प्रत्येक दिशा के लिए दूरियाँ भेज रहा है।

माउंट के नीचे से जुड़े वेल्क्रो के एक टुकड़े के साथ, गोंद का उपयोग करके, मैं रोबोट प्लेटफॉर्म पर पूरे रडार तंत्र को चिपका सकता हूं और थोड़ी परेशानी के साथ अपनी स्थिति बदल सकता हूं।



चरण 2: रोबोट प्लेटफार्म

एल्युमीनियम एक्सटर्नल यूएसबी ड्राइव एनक्लोजर में कैविटी का अतिरिक्त लाभ था जो मुझे तारों को टक करने की अनुमति देता था। इस रोबोट प्रोटोटाइप को बनाते समय, मैं किसी भी तार को ट्रिम करने के लिए तैयार नहीं था जब तक कि मुझे प्लेटफ़ॉर्म के सभी हिस्सों को चिपका दिया गया।

रोबोट ढलाईकार के लिए, मैंने एक फर्नीचर लेग ग्लाइडर / स्लाइडर पिन का उपयोग किया। मैंने USB बाड़े के नीचे IC शिपिंग फोम / स्पंज के एक टुकड़े को चिपकाया और बस इसमें ग्लाइडर पिन चिपका दिया। मेरी संगमरमर की फर्श जैसी चिकनी सतहों पर बढ़िया काम करता है। मैंने राउंड ड्रॉअर हैंडल्स और यहां तक ​​कि डियोड्रेंट रोल ऑन स्टिकर्स को कैस्टर के रूप में माना।

मंच के शीर्ष पर विभिन्न रोबोट घटकों को रखने के लिए, मैंने इसे डबल पक्षीय टेप का उपयोग करके वेल्क्रो के टुकड़ों के साथ कवर किया। इस तरह के प्रोटोटाइप के लिए, वेल्क्रो और डबल पक्षीय टेप उपयोगी हैं।

फिर, मैंने वेल्क्रो के साथ दो बैटरी पैक (9V और 4xAA) लपेटे। मैंने Arduino Uno और IR सर्वो माउंट के तल पर एक छोटे वेल्क्रो टुकड़े को टैप किया।

अब, सब कुछ मंच की सतह पर चिपका जा सकता है। सबसे अच्छा, मैं थोड़े प्रयास से भागों को पुनर्व्यवस्थित कर सकता हूं।

चरण 3: द रोबोट व्हील्स

मुझे 360 रोटेशन के लिए दो TG9e सर्वो को संशोधित करना पड़ा। उसके लिए, मैंने निकोलस "ndupont" ड्यूपॉन्ट के निर्देशों का पालन किया। जब मैंने दो टीजी 9 ई सर्वोस को नष्ट करने की कोशिश की, तो असंभव को पूरा करने की कोशिश करने के बाद मैंने उनके पेज की खोज की: एक बहुत कॉम्पैक्ट सर्विंग केस के अंदर दो प्रतिरोधों को निचोड़ना। ऐसा करने का प्रयास करने वालों के लिए, आप जानते हैं कि मेरा क्या मतलब है। TG9e मामला मानक प्रतिरोधों को समायोजित करने के लिए बहुत तंग है, जब तक कि आप अत्यधिक कुशल न हों या smd प्रतिरोधों का उपयोग न करें।

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

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

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

चरण 4: प्लेटफ़ॉर्म के साथ रोबोट मस्तिष्क को एकीकृत करना

यह मजेदार हिस्सा है (घंटों के निराशा के बाद)। मैंने रोबोट प्लेटफॉर्म के बिना भागों को इकट्ठा किया, और कनेक्शन का परीक्षण किया। कुछ तारों के समायोजन और स्केच डिबग रूटीन के बाद, इसने काम किया।

फिर मुश्किल हिस्सा आया: 3 सर्वोस और आईआर सेंसर को नियंत्रित करने के लिए Arduino को कोड करना।

नोट: मैंने एक 9V (6 X AA) शक्ति स्रोत के साथ परीक्षणों की शुरुआत की, लेकिन 4V NiHh का उपयोग करते हुए 6V (4 X AA) या 4.8V से 3 सर्वोस पावर करते हुए Arduino / IR को 9V से अलग करने का निर्णय लिया। सर्वोस से उत्पन्न शोर आईआर सेंसर रीडिंग को फेंक रहा था और दूसरों के अनुभवों के आधार पर, बिजली स्रोतों को अलग करना बेहतर है।

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


चरण 5: रोबोट को चलाने के लिए स्केच कोड

इतने परीक्षण और त्रुटि और अनुसंधान के बाद ...

ARDUINO SKETCH CODE

यह बीटा कोड बाधा से बचने और सर्वो नियंत्रण करने के लिए Arduino- आधारित सर्वो-चालित स्वीपिंग IR रडार चलाता है।

नवीनतम संस्करण: बीटा 0.8 अक्टूबर 22, 2011

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

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

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

ध्यान दें: सर्वोस को रोकने के लिए, मुझे बस उन्हें प्रोग्राम में "अलग" करना है फिर उन्हें "अटैच" करें जब मुझे फिर से स्थानांतरित करने की आवश्यकता हो। यह निरंतर रोटेशन के लिए संशोधित प्रत्येक सर्वो के स्टॉप पॉइंट को जानने की कोशिश करने के सिरदर्द से बेहतर था।

छद्म तर्क निम्नानुसार काम करता है:

सेट अप
सेटअप पर्यावरण और भौतिक स्थिरांक जैसे कि पहिया के घूमने का समय, बाधा से सुरक्षित दूरी, आदि;
रोबोट शुरू करें;
स्कैन लेफ्ट, फॉरवर्ड, राइट;
अधिक से अधिक जगह की दिशा में कदम;

लूप
आगे स्कैन करते समय आगे बढ़ते रहें;
IF बाधा सभी दिशाओं में रुकें और स्कैन करें (बाएं, आगे, दाएं)
अधिक से अधिक जगह की दिशा में कदम;
यदि सभी दिशाओं में पाया गया बाधाएं पीछे के 360 डिग्री पर हैं तो सभी दिशाओं में स्कैन करें (बाएं, आगे, दाएं)
IF STOP सभी दिशाओं में पाया जाता है;
दोहराएं

बस।

तार्किक स्तर पर, मेरे पास स्केच कोड के 3 मुख्य भाग हैं:

1) स्थिरांक, भौतिक और पर्यावरण चर स्थापित करना।
2) IR सर्वो को चालू करने के लिए तर्क और दूरी और बाधा चेतावनी को पढ़ें।
3) व्हील सर्वोस को आगे, बाएं, दाएं, 360, और बस रिवर्स करने के लिए लॉजिक।

फिर से, यह बीटा कोड है लेकिन यह काम करता है।

यहाँ एक और वीडियो रिकॉर्डिंग है, लेकिन खराब गुणवत्ता (नोकिया 5800 कैमरा के साथ)