विषयसूची:
- चरण 1: जड़त्वीय मापन इकाई का उपयोग क्यों करें?
- चरण 2: 2डी स्थानीयकरण के लिए बीएनओ055 का उपयोग कैसे करें?
- चरण 3: Vue का हार्डवेयर पॉइंट
- चरण 4: यह कैसे काम करता है?
- चरण 5: वास्तुकला और सॉफ्टवेयर
- चरण 6: मैंने क्या सीखा?
वीडियो: जड़त्वीय मापन इकाई का उपयोग करने का एक तरीका ?: 6 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:19
प्रसंग:
मैं मनोरंजन के लिए एक रोबोट का निर्माण कर रहा हूं जिसे मैं एक घर के अंदर स्वायत्त रूप से ले जाना चाहता हूं।
यह एक लंबा काम है और मैं कदम से कदम मिलाकर चल रहा हूं।
मैंने उस विषय पर पहले से ही 2 निर्देश प्रकाशित किए हैं:
- एक पहिया एन्कोडर बनाने के बारे में
- वाईफाई कनेक्शन के बारे में एक
मेरे घर में बने व्हील एनकोडर की मदद से मेरा रोबोट 2 डीसी मोटरों द्वारा संचालित होता है।
मैं वर्तमान में चलती नियंत्रण में सुधार कर रहा हूं और कुछ समय जीरोस्कोप, एक्सेलेरोमीटर और आईएमयू के साथ बिताया है। मुझे इस अनुभव को साझा करने में खुशी होगी।
आप स्थानीयकरण के बारे में अधिक जानना चाहते हैं? रोबोट को स्थानीय बनाने के लिए कृत्रिम बुद्धि और अल्ट्रासाउंड को कैसे संयोजित किया जाए, इस पर एक लेख यहां दिया गया है
चरण 1: जड़त्वीय मापन इकाई का उपयोग क्यों करें?
तो मैंने IMU का उपयोग क्यों किया?
पहला कारण यह था कि अगर व्हील एन्कोडर सीधे चाल को नियंत्रित करने के लिए पर्याप्त सटीक है, तो ट्यूनिंग के बाद भी मैं + - 5 डिग्री से कम रोटेशन के लिए परिशुद्धता प्राप्त करने में सक्षम नहीं था और यह पर्याप्त नहीं है।
इसलिए मैंने 2 अलग-अलग सेंसर की कोशिश की। सबसे पहले मैं एक मैग्नेटोमीटर (LSM303D) का उपयोग करता हूं। सिद्धांत सरल था: रोटेशन से पहले उत्तर दिशा प्राप्त करें, लक्ष्य की गणना करें और लक्ष्य तक पहुंचने तक चाल को समायोजित करें। यह एन्कोडर की तुलना में थोड़ा बेहतर था लेकिन बहुत अधिक फैलाव के साथ। उसके बाद मैंने जाइरोस्कोप (L3GD20) का उपयोग करने की कोशिश की। सिद्धांत सिर्फ रोटेशन की गणना करने के लिए सेंसर द्वारा प्रदान की गई रोटेशन गति को एकीकृत करना था। और यह ठीक काम किया। मैं + - 1 डिग्री पर रोटेशन को नियंत्रित करने में सक्षम था।
फिर भी मैं कुछ IMU आज़माने के लिए उत्सुक था। मैं एक BNO055 घटक चुनता हूं। मैंने इस आईएमयू को समझने और परीक्षण करने के लिए कुछ समय बिताया। अंत में मैंने निम्नलिखित कारणों से इस सेंसर का चयन करने का निर्णय लिया
- मैं रोटेशन के साथ-साथ L3GD20. को भी नियंत्रित कर सकता हूं
- सीधे चलते समय मैं मामूली घुमाव का पता लगा सकता हूं
- मुझे रोबोट स्थानीयकरण के लिए उत्तर अभिविन्यास प्राप्त करने की आवश्यकता है और बीएनओ055 का कंपास अंशांकन बहुत आसान है
चरण 2: 2डी स्थानीयकरण के लिए बीएनओ055 का उपयोग कैसे करें?
BNO055 IMU एक बॉश 9 अक्ष बुद्धिमान सेंसर है जो पूर्ण अभिविन्यास प्रदान कर सकता है।
डेटाशीट एक पूर्ण दस्तावेज प्रदान करता है। यह एक उच्च तकनीक वाला घटक है क्या यह एक जटिल उत्पाद है और मैंने यह जानने के लिए कुछ घंटे बिताए कि यह कैसे काम करता है और इसका उपयोग करने के विभिन्न तरीकों का प्रयास करता है।
मुझे लगता है कि इस अनुभव को साझा करना उपयोगी हो सकता है।
सबसे पहले मैंने एडफ्रूट लाइब्रेरी का उपयोग किया जो सेंसर को जांचने और खोजने के लिए एक अच्छा टूल प्रदान करता है।
अंत में और बहुत सारे परीक्षणों के बाद मैंने फैसला किया
- केवल अंशांकन को बचाने के लिए Adafruit पुस्तकालय का उपयोग करें
- BNO055 (NDOF, IMU, Compss) के सभी संभावित तरीकों में से 3 का उपयोग करें
- BNO055 mesurments के आधार पर स्थानीयकरण की गणना करने के लिए एक Arduino नैनो समर्पित करें
चरण 3: Vue का हार्डवेयर पॉइंट
BNO055 एक I2C घटक है। तो इसे संचार करने के लिए बिजली आपूर्ति, एसडीए और एससीएल की जरूरत है।
बस आपके द्वारा खरीदे गए उत्पाद के अनुसार Vdd वोल्टेज का ध्यान रखें। बॉश चिप रेंज में काम करती है: 2.4V से 3.6V और आप 3.3v और 5v कंपोनेंट पा सकते हैं।
नैनो और बीएनओ055 को जोड़ने में कोई कठिनाई नहीं है।
- BNO055 नैनो. द्वारा संचालित है
- एसडीए और एससीएल 2 x 2k पुल-अप प्रतिरोधों से जुड़े हैं।
- निदान के लिए नैनो से जुड़ी 3 एलईडी (प्रतिरोधों के साथ)
- बूट के बाद मोड को परिभाषित करने के लिए उपयोग किए जाने वाले 2 कनेक्टर
- बीएनओ की ओर 1 कनेक्टर (जीएनडी, वीडीडी, एसडीए, एससीएल, इंट)
- रोबोट/मेगा की ओर 1 कनेक्टर (+9V, Gnd, sda, Scl, Pin11, Pin12)
थोड़ा सा सोल्डरिंग और बस!
चरण 4: यह कैसे काम करता है?
दृश्य के संचार बिंदु से:
- नैनो I2C बस मास्टर है
- रोबोट/मेगा और BNO055 I2C गुलाम हैं
- नैनो स्थायी रूप से BNO055 रजिस्टरों को पढ़ती है
- नैनो से शब्द का अनुरोध करने के लिए रोबोट/मेगा एक संख्यात्मक संकेत उगता है
गणना के बिंदु से: नैनो BNO055 के साथ संयुक्त है
- कम्पास शीर्षक (स्थानीयकरण के लिए प्रयुक्त)
- एक सापेक्ष शीर्षक (घूर्णन को नियंत्रित करने के लिए प्रयुक्त)
- पूर्ण शीर्षक और स्थिति (चाल को नियंत्रित करने के लिए प्रयुक्त)
दृश्य के कार्यात्मक बिंदु से: नैनो:
- BNO055 अंशांकन का प्रबंधन करता है
- BNO055 मापदंडों और आदेशों का प्रबंधन करता है
सबसिस्टम नैनो और बीएनओ055:
- प्रत्येक रोबोट पहियों के लिए पूर्ण शीर्षक और स्थानीयकरण की गणना करें (स्केल फैक्टर के साथ)
- रोबोट के घूर्णन के दौरान सापेक्ष शीर्षक की गणना करें
चरण 5: वास्तुकला और सॉफ्टवेयर
मुख्य सॉफ्टवेयर एक Arduino नैनो पर चल रहा है।
- आर्किटेक्चर I2C संचार पर आधारित है।
- मैंने एक नैनो को समर्पित करना चुना क्योंकि रोबोट को चलाने वाला एटमेगा पहले से ही लोड था और यह आर्किटेक्चर कहीं और पुन: उपयोग करना आसान बनाता है।
- नैनो बीएनओ055 रजिस्टरों को पढ़ती है, अपने रजिस्टरों में हेडिंग और स्थानीयकरण की गणना और स्टोर करती है।
- Arduino Atmega जो रोबोट कोड चलाता है, नैनो को व्हील एन्कोडर जानकारी भेजता है और नैनो रजिस्टरों के अंदर शीर्षक और स्थानीयकरण पढ़ता है।
वहाँ सबसाइटम (नैनो) कोड यहाँ GitHub पर उपलब्ध है
एडफ्रूट कैलिब्रेशन टूल अगर यहाँ GitHub पर है (अंशांकन ईपरूम पर संग्रहीत किया जाएगा)
चरण 6: मैंने क्या सीखा?
I2C. के बारे में
सबसे पहले मैंने एक ही बस में 2 मास्टर्स (Arduino) और 1 स्लेव (सेंसर) रखने की कोशिश की, लेकिन अंत में केवल नैनो को मास्टर के रूप में सेट करना और "टोकन का अनुरोध" करने के लिए 2 Arduinos के बीच GPIO कनेक्शन का उपयोग करना संभव और आसान है।.
2डी अभिविन्यास के लिए बीएनओ055 के संबंध में
मैं 3 अलग-अलग चलने वाले मोड पर ध्यान केंद्रित कर सकता हूं: एनडीओएफ (जाइरोस्कोप, एक्सेलेरोमीटर और कंपास को मिलाएं) जब रोबोट निष्क्रिय हो, IMU (गाइरोस्कोप, एक्सेलेरोमीटर को मिलाएं) जब रोबोट चल रहा हो और स्थानीयकरण चरण के दौरान कम्पास। इन मोड्स के बीच स्विच करना आसान और तेज़ है।
कोड आकार को कम करने और टक्कर का पता लगाने के लिए बीएनओ055 इंटरप्ट का उपयोग करने की संभावना को बनाए रखने के लिए, मैं एडफ्रूट लाइब्रेरी का उपयोग नहीं करना पसंद करता हूं और इसे स्वयं करता हूं।
सिफारिश की:
टेक डेक के साथ मेकी मेकी का उपयोग करने का आसान तरीका: 5 कदम
टेक डेक के साथ मेकी मेकी का उपयोग करने का आसान तरीका: नमस्ते। मैंने हाल ही में इस प्रतियोगिता में एक टेक डेक मेकई मेकई प्रोग्राम देखा जो वास्तव में अच्छा था लेकिन कठिन लग रहा था इसलिए मैंने टेक डेक के साथ गेम खेलने का एक आसान तरीका बनाया। अगर आपको मेरा निर्देश पसंद आया हो तो कृपया इसे मेकी मेक्सी कॉन्टेस्ट में वोट करें
टांका लगाने वाले लोहे का उपयोग करके अपने पीसीबी को टिन करने का DIY सस्ता और आसान तरीका: 6 कदम
सोल्डरिंग आयरन का उपयोग करके अपने पीसीबी को टिन करने के लिए DIY सस्ता और आसान तरीका: जब मैं पीसीबी प्रिंटिंग में एक नौसिखिया था, और सोल्डरिंग मुझे हमेशा समस्या थी कि सोल्डर सही जगह पर चिपक नहीं रहा है, या तांबे के निशान टूट जाते हैं, ऑक्सीकृत हो जाते हैं और बहुत कुछ . लेकिन मैं बहुत सारी तकनीकों और हैक्स से परिचित हुआ और उनमें से एक
ARUPI - साउंडस्केप पारिस्थितिकीविदों के लिए एक कम लागत वाली स्वचालित रिकॉर्डिंग इकाई / स्वायत्त रिकॉर्डिंग इकाई (ARU): 8 चरण (चित्रों के साथ)
ARUPI - साउंडस्केप इकोलॉजिस्ट के लिए एक कम लागत वाली स्वचालित रिकॉर्डिंग यूनिट / स्वायत्त रिकॉर्डिंग यूनिट (ARU): यह निर्देश एंथोनी टर्नर द्वारा लिखा गया था। इस परियोजना को स्कूल ऑफ कंप्यूटिंग, केंट विश्वविद्यालय में शेड से बहुत मदद के साथ विकसित किया गया था (श्री डैनियल नॉक्स एक बड़ी मदद थे!)। यह आपको दिखाएगा कि एक स्वचालित ऑडियो रिकॉर्डिंग यू कैसे बनाया जाए
मिस्टर बिग (एक भार वहन करने वाली मोबाइल इकाई): 4 कदम
मिस्टर बिग (एक भार वहन करने वाली मोबाइल इकाई): यह मेरी पहली शिक्षाप्रद है इसलिए मैं किसी भी गलती के लिए अग्रिम रूप से क्षमा चाहता हूं। मेरी गर्मी की छुट्टियों के दौरान मेरे घर पर, घर में सभी ने मुझे अपना सामान दूसरे कमरों से लाने के लिए कहा। . यह ठीक था अगर सामान छोटा था या n में सीमित था
लोगों/मनुष्यों/जानवरों/रोबोटों को वास्तव में कूल/उज्ज्वल हीट विजन (आपकी पसंद का रंग) बनाने के लिए जीआईएमपी का उपयोग करने का एक बहुत ही सरल/आसान/जटिल तरीका नहीं है: 4 कदम
लोगों/मनुष्यों/जानवरों/रोबोटों को वास्तव में कूल/उज्ज्वल हीट विजन (आपकी पसंद का रंग) बनाने के लिए GIMP का उपयोग करने का एक बहुत ही सरल/आसान/गैर-जटिल तरीका: पढ़ें…शीर्षक