【अंडरवाटर थ्रस्टर कंट्रोल】 STM32 के साथ PWM द्वारा ESC को कैसे नियंत्रित करें?

Fengyukun द्वारा को पोस्ट किया गया

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

पीडब्लूएम सिग्नल:
(1) पीडब्लूएम तरंग नियंत्रण (आम तौर पर ईएससी को 50 हर्ट्ज यानी 20 एमएस पर पीडब्लूएम तरंग द्वारा नियंत्रित किया जाता है);
(2) मध्यम स्टॉप (यहां आम तौर पर कर्तव्य चक्र के उच्च स्तर को संदर्भित करता है) 1.5 एमएस, वास्तव में 1.475 एमएस से 1.525 एमएस के बीच मध्यम स्टॉप से ​​​​बाहर हैं;
(3) नियंत्रण सीमा 1 एमएस से 2 एमएस तक है;
(4) 1.5 एमएस से 2 एमएस आगे, 1.5 एमएस से 1 एमएस रिवर्स।

यहां संक्षिप्त संदर्भ के लिए Arduino आधारित एक है:

नोट: ईएससी का उपयोग करने से पहले उसे अनलॉक करना होगा! जब आप इसे बिजली आपूर्ति से कनेक्ट करेंगे तो ईएससी 3 बार बीप करेगा, और फिर सफलतापूर्वक अनलॉक होने पर यह 2 बार बीप करेगा, कुल मिलाकर 5 बार। यदि आप ESC को सफलतापूर्वक अनलॉक नहीं करते हैं, तो आप इसे नियंत्रण के लिए उपयोग नहीं कर सकते। इसलिए, उपरोक्त कोड का हवाला देते हुए, हम यह निष्कर्ष निकाल सकते हैं कि ईएससी को अनलॉक करने का तरीका इसे आरंभीकरण के बाद तटस्थ सिग्नल पर सेट करना है, और गति नियंत्रण शुरू करने से पहले सिग्नल प्राप्त होने (दो बीप) की प्रतीक्षा करना है।


नियंत्रण और डिबगिंग विधि


हम STM32F7 डेवलपमेंट बोर्ड का उपयोग कर रहे हैं, प्रोग्रामिंग और डिबगिंग के लिए HAL लाइब्रेरी का उपयोग कर रहे हैं, वास्तव में यह एक टाइमर आउटपुट PWM तरंग है। लेकिन ध्यान देने के लिए बहुत सी चीजें हैं, बहुत सारे विवरण स्पष्ट नहीं हैं, वास्तव में समय और ऊर्जा में देरी हुई है, कुछ शब्द कहने के लिए डिबगिंग अनुभव का यह पक्ष।

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

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

और यह भी ध्यान रखें कि ऑसिलोस्कोप के साथ काम करना सीखें ताकि यह जांचा जा सके कि उपयोग के दौरान आपके द्वारा कॉन्फ़िगर किए गए संकेतों में कोई समस्या तो नहीं है। नीचे 1.5 एमएस कर्तव्य चक्र, 20 एमएस अवधि और 3.3 वी आयाम के साथ एक पीडब्लूएम तरंग है जिसे मैंने शुरुआत में शुरू किया था।

संक्षेप में, पूरी प्रक्रिया पर ध्यान दिया जाना चाहिए:

(1) ईएससी को आम तौर पर 50 हर्ट्ज की आवृत्ति पर नियंत्रित किया जाता है, और निश्चित रूप से परिस्थितियों के आधार पर नियंत्रण सीमा लगभग 1 एमएस और 2 एमएस के बीच होती है।
(2) पावर कनेक्ट करने के बाद, ईएससी 3 बार ध्वनि करेगा, और यदि आप इसे सफलतापूर्वक अनलॉक करते हैं, तो उसके बाद ईएससी 2 बार ध्वनि करेगा। हालाँकि, यदि ईएससी केवल एक बार बीप करता है, तो संभवतः इसका मतलब है कि ईएससी को आपके द्वारा कॉन्फ़िगर किया गया सिग्नल प्राप्त हुआ है, लेकिन डिवाइस को सफलतापूर्वक अनलॉक नहीं किया गया है, इसलिए आपको यह देखने के लिए अपने अनलॉकिंग कोड को दोबारा जांचना होगा कि क्या कोई गलती है। यदि ईएससी ध्वनि नहीं करता है, तो उसे सिग्नल भी प्राप्त नहीं होता है, अपनी वायरिंग और कोड को ध्यान से जांचें।
(3) ईएससी को अनलॉक सिग्नल प्राप्त करने के लिए एक निश्चित समय देने के लिए विलंब फ़ंक्शन के उपयोग पर ध्यान दें, प्रत्येक ईएससी अलग है, इसे स्वयं समायोजित करें।
(4) ग्राउंड पर ध्यान दें, ईएससी सिग्नल लाइन से कंट्रोल बोर्ड के सिग्नल आउटपुट पोर्ट तक, और फिर सिग्नल लाइन ग्राउंड से कंट्रोल बोर्ड जीएनडी तक।
(5) आपके द्वारा कॉन्फ़िगर किए गए संकेतों की जांच करने के लिए ऑसिलोस्कोप का उपयोग करना सीखें।
(6) ग़लत तार न जोड़ें!


इस पोस्ट को शेयर करें



← पुरानी पोस्ट नई पोस्ट →


0 टिप्पणियां

टिप्पणी छोड़ें