विषयसूची:
वीडियो: सेल्फ बैलेंसिंग रोबोट - पीआईडी कंट्रोल एल्गोरिथम: 3 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:18
इस परियोजना की कल्पना की गई थी क्योंकि मुझे नियंत्रण एल्गोरिदम और कार्यात्मक पीआईडी लूप को प्रभावी ढंग से कार्यान्वित करने के तरीके के बारे में अधिक जानने में दिलचस्पी थी। यह परियोजना अभी भी विकास के चरण में है क्योंकि एक ब्लूटूथ मॉड्यूल को जोड़ा जाना बाकी है जो ब्लूटूथ सक्षम स्मार्टफोन से रोबोट पर नियंत्रण की अनुमति देगा।
इस्तेमाल किए गए N20 DC मोटर्स अपेक्षाकृत सस्ते थे, और इसलिए उनमें काफी मात्रा में खेल होता है। यह थोड़ी मात्रा में झटके की ओर जाता है क्योंकि मोटर्स 'स्लैक' से उबर जाती हैं क्योंकि यह पहियों पर टॉर्क लागू करती है। इसलिए, पूरी तरह से सुचारू गति को प्राप्त करना लगभग असंभव है। मैंने जो कोड लिखा है वह काफी सरल है लेकिन प्रभावी रूप से पीआईडी एल्गोरिथम की क्षमताओं को प्रदर्शित करता है।
परियोजना सारांश:
रोबोट का चेसिस एंडर 3 प्रिंटर का उपयोग करके 3डी प्रिंटेड है और इसे एक साथ प्रेस-फिट करने के लिए डिज़ाइन किया गया है।
रोबोट को एक Arduino Uno द्वारा नियंत्रित किया जाता है जो MPU6050 से सेंसर डेटा लेता है और बाहरी मोटर चालक के माध्यम से DC मोटर्स को नियंत्रित करता है। यह 7.4V, 1500mAh की बैटरी से चलता है। मोटर चालक Arduino को पावर देने के लिए इसे 5V पर नियंत्रित करता है और मोटर्स को 7.4V की आपूर्ति करता है।
सॉफ्टवेयर को gitHub के 'Arduino-KalmanFilter-master' और 'Arduino-MPU6050-master' लाइब्रेरी की सहायता से खरोंच से लिखा गया था।
आपूर्ति:
- 3डी प्रिंटेड पार्ट्स
- अरुडिनो यूएनओ
- MPU6050 6-एक्सिस सेंसर
- डीसी मोटर चालक
- N20 डीसी मोटर्स (x2)
- 9वी बैटरी
चरण 1: रोबोट बिल्ड
प्रिंट और असेंबली
संपूर्ण बिल्ड प्रेस-फिट होना चाहिए, लेकिन मैंने घटकों को सुरक्षित करने के लिए सुपरग्लू का उपयोग किया है ताकि यह सुनिश्चित हो सके कि संतुलन करते समय रोबोट पूरी तरह से कठोर हो।
मैंने फ़्यूज़न 360 में भागों को डिज़ाइन किया है और सख्त सहनशीलता और एक क्लीनर सतह खत्म करने की अनुमति देने के लिए प्रत्येक भाग को बिना समर्थन के प्रिंट करने के लिए अनुकूलित किया है।
एंडर 3 प्रिंटर पर उपयोग की जाने वाली सेटिंग्स थीं: 0.16 मिमी लेयर हाइट्स @ 40% इन्फिल सभी भागों के लिए।
चरण 2: 3डी प्रिंट रोबोट
चेसिस (x1)
बायां पहिया (x2)
वाम मोटर आवास (x2)
Arduino केस (X1)
चरण 3: पीआईडी नियंत्रण एल्गोरिथम
मैंने gitHub से 'Arduino-KalmanFilter-master' और 'Arduino-MPU6050-master' लाइब्रेरी का उपयोग करके स्क्रैच से एक PID कंट्रोल एल्गोरिथम लिखा है।
एल्गोरिथम का आधार इस प्रकार है:
- MPU6050. से कच्चा डेटा पढ़ें
- सेंसर के त्वरण के कारण जाइरोस्कोप रीडिंग में अशुद्धियों को रद्द करने के लिए गायरोस्कोप और एक्सेलेरोमीटर दोनों से डेटा का विश्लेषण करने के लिए कलमन फ़िल्टर का उपयोग करें। यह दो दशमलव स्थानों तक डिग्री में सेंसर की पिच के लिए अपेक्षाकृत सुचारू मान देता है।
- कोण में E ror की गणना करें, अर्थात: सेंसर और सेटपॉइंट के बीच का कोण।
- आनुपातिक त्रुटि की गणना (अनुपात की निरंतरता x त्रुटि) के रूप में करें।
- (एकीकरण की निरंतरता x त्रुटि) के रनिंग योग के रूप में इंटीग्रल एरर की गणना करें।
- व्युत्पन्न त्रुटि को स्थिरांक के रूप में परिकलित करें [(अंतर स्थिरांक) x (त्रुटि में परिवर्तन / समय में परिवर्तन)]
- मोटर्स को भेजे जाने वाले स्पीड आउटपुट को देने के लिए सभी त्रुटियों का योग करें।
- गणना करें कि त्रुटि कोण के संकेत के आधार पर मोटर्स को किस दिशा में मोड़ना है।
- लूप अनिश्चित काल तक चलेगा और आउटपुट पर निर्माण होगा क्योंकि इनपुट बदलता रहता है। यह एक फीडबैक लूप है, जो अगले पुनरावृत्ति के लिए नए इनपुट मानों के रूप में आउटपुट मानों का उपयोग करता है।
अंतिम चरण पीआईडी लूप केपी, की और केडी मापदंडों को ट्यून करना है।
- एक अच्छा प्रारंभिक बिंदु धीरे-धीरे Kp को बढ़ाना है जब तक कि रोबोट संतुलन बिंदु के आसपास दोलन न कर ले और गिर न जाए।
- इसके बाद, केडी को केपी के लगभग 1% मूल्य पर शुरू करें और धीरे-धीरे तब तक बढ़ाएं जब तक कि दोलन गायब न हो जाएं और धक्का देने पर रोबोट आसानी से ग्लाइड हो जाए।
- अंत में, Kp के लगभग 20% K के साथ शुरू करें और तब तक बदलते रहें जब तक कि रोबोट सक्रिय रूप से गिरावट को पकड़ने और ऊर्ध्वाधर पर लौटने के लिए सेटपॉइंट को "ओवरशूट" न कर दे।
सिफारिश की:
मैजिकबिट से सेल्फ बैलेंसिंग रोबोट: 6 कदम
मैजिकबिट से सेल्फ बैलेंसिंग रोबोट: यह ट्यूटोरियल दिखाता है कि मैजिकबिट देव बोर्ड का उपयोग करके सेल्फ बैलेंसिंग रोबोट कैसे बनाया जाता है। हम इस परियोजना में विकास बोर्ड के रूप में मैजिकबिट का उपयोग कर रहे हैं जो ईएसपी 32 पर आधारित है। इसलिए इस परियोजना में किसी भी ESP32 विकास बोर्ड का उपयोग किया जा सकता है
टू व्हील सेल्फ-बैलेंसिंग रोबोट: 7 कदम
टू व्हील सेल्फ-बैलेंसिंग रोबोट: यह इंस्ट्रक्शनल सेल्फ-बैलेंसिंग रोबोट के लिए डिजाइन और निर्माण प्रक्रिया से गुजरेगा। एक नोट के रूप में, मैं केवल यह कहना चाहता हूं कि स्व-संतुलन वाले रोबोट कोई नई अवधारणा नहीं हैं और उन्हें दूसरों द्वारा बनाया और प्रलेखित किया गया है। मैं इस अवसर का उपयोग करना चाहता हूं
हेडबॉट - एसटीईएम लर्निंग और आउटरीच के लिए एक सेल्फ-बैलेंसिंग रोबोट: 7 कदम (चित्रों के साथ)
हेडबॉट - एसटीईएम लर्निंग और आउटरीच के लिए एक सेल्फ-बैलेंसिंग रोबोट: हेडबॉट - दो फुट लंबा, सेल्फ-बैलेंसिंग रोबोट - साउथ यूजीन रोबोटिक्स टीम (एसईआरटी, एफआरसी 2521) के दिमाग की उपज है, जो एक प्रतिस्पर्धी हाई स्कूल रोबोटिक्स टीम है। यूजीन, ओरेगन से रोबोटिक्स प्रतियोगिता। यह लोकप्रिय आउटरीच रोबोट फिर से बनाता है
रिमोट से नियंत्रित 3डी प्रिंटेड सेल्फ-बैलेंसिंग रोबोट कैसे बनाएं: 9 कदम (चित्रों के साथ)
दूर से नियंत्रित 3डी प्रिंटेड सेल्फ-बैलेंसिंग रोबोट कैसे बनाएं: यह बी-रोबोट के पिछले संस्करण का एक विकास है। 100% खुला स्रोत / Arduino रोबोट। CODE, 3D पुर्जे और इलेक्ट्रॉनिक्स खुले हैं इसलिए इसे बेझिझक संशोधित करें या रोबोट का एक विशाल संस्करण बनाएं। यदि आपको संदेह, विचार या सहायता की आवश्यकता है, तो बनाएं
बैलेंसिंग रोबोट / 3 व्हील रोबोट / एसटीईएम रोबोट: 8 कदम
बैलेंसिंग रोबोट / 3 व्हील रोबोट / एसटीईएम रोबोट: हमने स्कूलों में और स्कूली शैक्षिक कार्यक्रमों के बाद शैक्षिक उपयोग के लिए एक संयुक्त संतुलन और 3 पहिया रोबोट बनाया है। रोबोट एक Arduino Uno पर आधारित है, एक कस्टम शील्ड (सभी निर्माण विवरण प्रदान किए गए हैं), एक ली आयन बैटरी पैक (सभी स्थिरांक