विषयसूची:

SnappyXO सटीक मूवर रोबोट: 6 कदम
SnappyXO सटीक मूवर रोबोट: 6 कदम
Anonim
SnappyXO सटीक मूवर रोबोट
SnappyXO सटीक मूवर रोबोट

अपने Arduino रोबोट को एक निर्दिष्ट दूरी के लिए सीधे जाने दें या PreciseMovement Arduino लाइब्रेरी का उपयोग करके एक निर्दिष्ट कोण पर मोड़ें।

घुमाते समय घर्षण को कम करने के लिए रोबोट को रोलिंग बॉल कॉस्टर या समकक्ष की आवश्यकता होती है।

www.pololu.com/product/954

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

SnappyXO रोबोट के साथ काम करने के लिए इसका परीक्षण किया गया है।

चरण 1: ट्यूटोरियल स्थान परिवर्तित

ट्यूटोरियल को नीचे दिए गए पेज पर ले जाया गया है। यह ट्यूटोरियल अब अनुरक्षित नहीं है।

sites.google.com/stoneybrook.edu/premo

चरण 2: SnappyXO डिफरेंशियल ड्राइव रोबोट बनाएं

PreciseMovement लाइब्रेरी जिसका हम उपयोग करेंगे, वह केवल डिफरेंशियल ड्राइव रोबोट के साथ संगत है। आप अन्य 2 व्हील ड्राइव रोबोट का उपयोग करना चुन सकते हैं।

चरण 3: इलेक्ट्रॉनिक्स कनेक्ट करें

इलेक्ट्रॉनिक्स कनेक्ट करें
इलेक्ट्रॉनिक्स कनेक्ट करें

मानक SnappyXO ऑप्टिकल एनकोडर के लिए:

D0 (एनकोडर आउटपुट) -> Arduino Digital Pin

वीसीसी -> Arduino 5V

जीएनडी -> जीएनडी

मोटर और अरुडिनो पावर:

आपके द्वारा उपयोग की जाने वाली मोटरों के लिए मोटर शक्ति स्रोत पर्याप्त होना चाहिए। SnappyXO किट के लिए, मोटर पावर के लिए 4AA बैटरी और Arduino पावर के लिए 9V बैटरी का उपयोग किया जाता है। सुनिश्चित करें कि उन सभी का एक सामान्य GND है।

चरण 4: PreciseMovement Arduino लाइब्रेरी स्थापित करें

डाउनलोड:

github.com/jaean123/PreciseMovement-library/releases

Arduino लाइब्रेरी कैसे स्थापित करें:

wiki.seeedstudio.com/How_to_install_Arduino_Library/

चरण 5: कोड

Arduino कोड:

create.arduino.cc/editor/ whileloop/7a35299d-4e73-409d-9f39-2c517b3000d5/preview

इन मापदंडों को समायोजन की आवश्यकता है। कोड पर अनुशंसित लेबल वाले अन्य मापदंडों को बेहतर प्रदर्शन के लिए समायोजित किया जा सकता है।

  • ARDUINO PINS के तहत मोटर पिन को चेक करें और सेट करें।
  • LENGTH और RADIUS सेट करें।

    • LENGTH बाएं पहिये से दाएं पहिये की दूरी है।
    • RADIUS पहिए की त्रिज्या है।
  • PULSES_PER_REV सेट करें, जो एक पहिया क्रांति के लिए एनकोडर आउटपुट दालों की संख्या है।

    • ध्यान दें कि यह एक मोटर शाफ्ट क्रांति के लिए एन्कोडर आउटपुट दालों की संख्या से अलग है जब तक कि एन्कोडर सीधे व्हील शाफ्ट से पढ़ने के लिए कनेक्ट नहीं होते हैं।
    • PULSES_PER_REV = (मोटर शाफ्ट के एक चक्कर में दालें) x (गियर अनुपात)
  • यदि आप देखते हैं कि रोबोट आगे बढ़ने के बाद ओवरशूटिंग कर रहा है तो STOP_LENGTH सेट करें।

    एक बार अनुमानित स्थिति लक्ष्य से STOP_LENGTH दूर हो जाने पर रोबोट रुक जाएगा। इस प्रकार, STOP_LENGTH, रोबोट के रुकने के लिए आवश्यक अनुमानित दूरी है।

  • पीआईडी पैरामीटर

    KP_FW: यह आगे की गति का आनुपातिक घटक है। इसे तब तक बढ़ाएं जब तक रोबोट सीधा न हो जाए। यदि आप इसे ट्यून करके सीधे नहीं जा सकते हैं, तो हार्डवेयर में गलती होने की संभावना है। (जैसे। व्हील मिसलिग्न्मेंट, आदि)

    KP_TW: यह घुमा गति PID का आनुपातिक घटक है। बस एक कम मूल्य से शुरू करें और इसे तब तक बढ़ाएं जब तक कि मोड़ की गति, या घुमाते समय रोबोट का कोणीय वेग पर्याप्त तेज न हो, लेकिन ओवरशूट का कारण नहीं बनता है। अवलोकन करने के लिए, आप रोबोट को 0 से 90 तक वैकल्पिक कर सकते हैं और लूप फ़ंक्शन में निम्नलिखित को सम्मिलित करके वापस कर सकते हैं।

KP_FW को ट्यून करने के लिए इसे लूप में रखें:

मूवर.फॉरवर्ड (999999);

KP_TW को ट्यून करने के लिए इसे 0 से 90 तक वैकल्पिक करने के लिए लूप में रखें:

मूवर.ट्विस्ट (९०); // ट्विस्ट 90 सीडब्ल्यू

देरी (2000);

मूवर.ट्विस्ट(-90) // ट्विस्ट 90 सीसीडब्ल्यू

देरी (2000);

ध्यान दें कि वास्तव में TARGET_TWIST_OMEGA पर कोणीय वेग को मोड़ने के लिए, KI_TW को भी ट्यून करने की आवश्यकता है क्योंकि एक आनुपातिक नियंत्रक कभी भी सटीक लक्ष्य तक नहीं पहुंचेगा। हालाँकि, यह बिल्कुल कोणीय वेग से मुड़ना आवश्यक नहीं है। कोणीय वेग को बस काफी धीमा होना चाहिए।

चरण 6: यह कैसे काम करता है

यदि आप इस बारे में उत्सुक हैं कि यह कैसे काम करता है तो पढ़ें।

सीधी रेखा पथ पर शुद्ध पीछा एल्गोरिथ्म का उपयोग करके आगे की गति को सीधा रखा जाता है। शुद्ध खोज पर अधिक:

ट्विस्ट PID कंट्रोलर TARGET_TWIST_OMEGA पर ट्विस्ट एंगुलर वेलोसिटी को बनाए रखने की कोशिश करता है। ध्यान दें कि यह कोणीय वेग पूरे रोबोट का कोणीय वेग है, पहियों का नहीं। केवल एक पीआईडी नियंत्रक का उपयोग किया जाता है और आउटपुट बाएं और दाएं दोनों मोटरों की पीडब्लूएम लिखने की गति है। कोण की गणना करने के लिए मृत गणना की जाती है। एक बार कोण त्रुटि सीमा तक पहुँच जाता है, रोबोट रुक जाता है।

सिफारिश की: