विषयसूची:
- चरण 1: हार्डवेयर और सॉफ्टवेयर आवश्यकताएँ
- चरण 2: STM32CubeMX कॉन्फ़िगरेशन
- चरण 3: कील यूवीशन कोडिंग
- चरण 4: परिणाम:)
![STM32F4 ARM MCU के साथ सर्वो मोटर कंट्रोल: 4 कदम STM32F4 ARM MCU के साथ सर्वो मोटर कंट्रोल: 4 कदम](https://i.howwhatproduce.com/images/002/image-5731-22-j.webp)
वीडियो: STM32F4 ARM MCU के साथ सर्वो मोटर कंट्रोल: 4 कदम
![वीडियो: STM32F4 ARM MCU के साथ सर्वो मोटर कंट्रोल: 4 कदम वीडियो: STM32F4 ARM MCU के साथ सर्वो मोटर कंट्रोल: 4 कदम](https://i.ytimg.com/vi/EM5U9_D-IM0/hqdefault.jpg)
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:21
![STM32F4 ARM MCU के साथ सर्वो मोटर नियंत्रण STM32F4 ARM MCU के साथ सर्वो मोटर नियंत्रण](https://i.howwhatproduce.com/images/002/image-5731-23-j.webp)
![STM32F4 ARM MCU के साथ सर्वो मोटर नियंत्रण STM32F4 ARM MCU के साथ सर्वो मोटर नियंत्रण](https://i.howwhatproduce.com/images/002/image-5731-24-j.webp)
नमस्कार दोस्तों:) तो, इस परियोजना में हम STM32F4 ARM MCU के साथ एक सर्वो मोटर को नियंत्रित करेंगे। मेरे मामले में, मैं डिस्कवरी बोर्ड का उपयोग करूंगा, लेकिन यदि आप समस्या का सार समझते हैं, तो आप इसे हर एमसीयू के लिए लागू कर सकते हैं। इसलिए। आएँ शुरू करें:)
चरण 1: हार्डवेयर और सॉफ्टवेयर आवश्यकताएँ
हार्डवेयर के संदर्भ में हमें आवश्यकता होगी:
- एक MCU जो मेरे मामले में STM32f4 डिस्कवरी बोर्ड है
- एक सामान्य सर्वो मोटर, जैसे SG90 या कोई अन्य
सॉफ्टवेयर के संदर्भ में हमें आवश्यकता होगी:
- STM32CubeMX
- कील यूविज़न
यदि आपके पास ये सब हैं, तो अगले चरण पर जाएं:)
चरण 2: STM32CubeMX कॉन्फ़िगरेशन
जैसा कि आप जानते हैं, सर्वो मोटर को नियंत्रित करने के लिए हमें PWM सिग्नल की आवश्यकता होती है। PWM सिग्नल के संदर्भ में आवश्यकताएं इस प्रकार हैं:
- PWM अवधि 20 mS. होनी चाहिए
- समय पर 0.5 एमएस से 2.5 एमएस के बीच होना चाहिए। जब समय पर 0.5 एमएस होता है, तो सर्वो 0 डिग्री, 1.5 एमएस 90 डिग्री और 2.5 एमएस 180 डिग्री के लिए बदल जाएगा।
इसलिए, हमें PWM को कॉन्फ़िगर करने की आवश्यकता है और उस उद्देश्य के लिए हम Timer1 का उपयोग करेंगे।
- सबसे पहले, टाइमर सेक्शन से TIM1 चुनें। यह कदम
-
फिर, मोड सेक्शन से
- आंतरिक घड़ी चुनें यह चरण
- PWM जनरेशन CH1 यह चरण
-
फिर, कॉन्फ़िगरेशन अनुभाग से
- प्रीस्केलर को 160 पर सेट करें यह चरण
- काउंटर अवधि को 2000 पर सेट करें यह चरण
- पल्स को 50 पर सेट करें यह चरण
- इसके अतिरिक्त, क्लॉक कॉन्फ़िगरेशन से APB1 टाइमर घड़ियों को 16MHz पर सेट करें। यह कदम
अब, इस चरण के बारे में कुछ बात करते हैं:
हमारे APB1 टाइमर घड़ी की आवृत्ति 16MHz है। तो, इसका मतलब है कि 1 सेकंड प्राप्त करने के लिए 16,000, 000 टिक की आवश्यकता है। हालाँकि, हम अपने प्रीस्केलर को 160 पर सेट करते हैं। इसका मतलब है, हम अपनी आवृत्ति को उस संख्या से विभाजित करते हैं और टिकों की संख्या को घटाकर 100, 000 कर देते हैं। इसलिए, 1 सेकंड के लिए हमें 100, 000 टिक की आवश्यकता होती है। हालाँकि, हमें 20mS PWM अवधि की आवश्यकता है जैसा कि हमने पहले कहा था। तो, सरल गणित के आधार पर, हमें 20mS के लिए 2000 टिक की आवश्यकता है। इसलिए, काउंटर पीरियड को 2000 पर सेट करके हम PWM सिग्नल की अवधि निर्धारित करते हैं जो कि 20mS है। अब हमें 0.5mS से 2.5mS तक ऑन टाइम प्राप्त करने के लिए टिक संख्या निर्धारित करने की आवश्यकता है। हम इस समीकरण को सरल गणित से प्राप्त कर सकते हैं और यह है:
ऑन_टाइम = (टिक_नंबर / 100)। ध्यान रखें कि यह ऑन_टाइम है जो सर्वो मोटर के कोण को बदलता है। तो, छवि के नीचे मैं इस चरण को संक्षेप में प्रस्तुत करता हूं। अगर आपका कोई सवाल है तो कमेंट में लिखें और मैं जल्द से जल्द जवाब दूंगा।
गणना की छवि
इन सभी को कोड उत्पन्न करने के बाद:)
चरण 3: कील यूवीशन कोडिंग
तो, आइए पहले यह निर्धारित करें कि हम क्या करना चाहते हैं? हम चाहते हैं, एक ऐसा फ़ंक्शन लिखें जो डिग्री स्वीकार करता है और इसे सर्वो को लिखता है। तो, हम यह कैसे करेंगे? जैसा कि हम पहले कह चुके हैं, कोण बदलने के लिए हमें समय पर परिवर्तन करने की आवश्यकता है। हमारे कोण [०, १८०] के बीच बदलते हैं और हमारे टिकों की संख्या जो समय पर [५०, २५०] के बीच परिवर्तन को निर्धारित करती है। इसलिए, हमें एक मैपिंग फ़ंक्शन की आवश्यकता होती है, जो दिए गए कोणों को टिकों की संख्या की सीमा तक मैप करता है। उदाहरण के लिए, 0 डिग्री 50 टिक के लिए, 180 डिग्री 250 टिक के लिए और इसी तरह… तो चलिए अपना मैपिंग फंक्शन लिखते हैं:
इंट मैप (int st1, int fn1, int st2, int fn2, int value){ return (1.0*(value-st1))/((fn1-st1)*1.0) * (fn2-st2)+st2; }
यह हमारा मैपिंग फंक्शन है। क्या आप रुचि रखते हैं कि इसे कैसे प्राप्त किया जाता है? फिर वह पढ़ें। इसलिए, हम अपनी रेंज और वह मान लेते हैं जिसे हम मैप करना चाहते हैं।
अब, एक फ़ंक्शन लिखते हैं जो कोण को स्वीकार करता है और इसे टिक्स की श्रेणी में मैप करता है:
शून्य सर्वो_राइट (इंट कोण) {htim1. Instance->CCR1 = नक्शा (0, 180, 50, 250, कोण); }
जैसा कि आप देख सकते हैं, यह कोड कोण को स्वीकार करता है और इसे टिकों की संख्या की सीमा तक मैप करता है। इसके बाद, CCR1 रजिस्टर को टिकों की संख्या दी जाती है जो समय और कोण को नियंत्रित करता है।
हालाँकि, इन सभी को काम करने के लिए हम पहले pwm शुरू करते हैं जो कि कोड की एक पंक्ति द्वारा किया जा सकता है:
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
तो, हमारे पास एक फ़ंक्शन है जो कोण को स्वीकार करता है और इसे सर्वो को लिखता है। आइए इसका परीक्षण करें और अपना स्वीप फ़ंक्शन लिखें जो बहुत आसान है:
शून्य सर्वो_स्वीप (शून्य) {के लिए (int i = 0; i <= 180; i ++) {servo_write (i); HAL_Delay(10); } for(int i = 180; i>= 0; i--) {servo_write(i); HAL_Delay(10); } }
तो, यह सिर्फ १८० तक और फिर नीचे ० तक गिनता है और इन मानों को सर्वो को लिखता है:) तो, परिणाम देखते हैं!
चरण 4: परिणाम:)
तो, यह अंत है। यदि आपका कोई प्रश्न है तो कृपया पूछें। मुझे उनका उत्तर देने में प्रसन्नता होगी। पढ़ने के लिए बहुत-बहुत धन्यवाद और आशा है कि मैं आपको अगले प्रोजेक्ट में देखूंगा:)
सिफारिश की:
स्टेपर मोटर नियंत्रित स्टेपर मोटर - स्टेपर मोटर एक रोटरी एनकोडर के रूप में: 11 कदम (चित्रों के साथ)
![स्टेपर मोटर नियंत्रित स्टेपर मोटर - स्टेपर मोटर एक रोटरी एनकोडर के रूप में: 11 कदम (चित्रों के साथ) स्टेपर मोटर नियंत्रित स्टेपर मोटर - स्टेपर मोटर एक रोटरी एनकोडर के रूप में: 11 कदम (चित्रों के साथ)](https://i.howwhatproduce.com/images/007/image-20303-j.webp)
स्टेपर मोटर नियंत्रित स्टेपर मोटर | स्टेपर मोटर एक रोटरी एनकोडर के रूप में: क्या कुछ स्टेपर मोटर्स चारों ओर पड़ी हैं और कुछ करना चाहते हैं? इस निर्देशयोग्य में, एक Arduino माइक्रोकंट्रोलर का उपयोग करके एक अन्य स्टेपर मोटर की स्थिति को नियंत्रित करने के लिए एक स्टेपर मोटर को रोटरी एन्कोडर के रूप में उपयोग करें। तो बिना ज्यादा देर किए, आइए जानते हैं
टेलीग्राम कंट्रोल के साथ कंटीन्यूअस रोटेशन सर्वो (सीआरएस) मोटर: 8 कदम
![टेलीग्राम कंट्रोल के साथ कंटीन्यूअस रोटेशन सर्वो (सीआरएस) मोटर: 8 कदम टेलीग्राम कंट्रोल के साथ कंटीन्यूअस रोटेशन सर्वो (सीआरएस) मोटर: 8 कदम](https://i.howwhatproduce.com/images/001/image-1994-42-j.webp)
टेलीग्राम कंट्रोल के साथ कंटीन्यूअस रोटेशन सर्वो (CRS) मोटर: इस निर्देश में मैं आपको सिखाऊंगा कि टेलीग्राम के माध्यम से CRS को कैसे नियंत्रित किया जाए। इस निर्देश के लिए आपको कुछ चीजों की आवश्यकता होगी। मैं एक NodeMCU 1.0 (ESP-12E मॉड्यूल) पर काम करूंगा। यह अन्य Arduino bords पर काम कर सकता है, आपको बस प्रो खोजने की जरूरत है
Arduino Tutorial - जॉयस्टिक के साथ सर्वो मोटर कंट्रोल: 4 कदम
![Arduino Tutorial - जॉयस्टिक के साथ सर्वो मोटर कंट्रोल: 4 कदम Arduino Tutorial - जॉयस्टिक के साथ सर्वो मोटर कंट्रोल: 4 कदम](https://i.howwhatproduce.com/images/002/image-3034-60-j.webp)
Arduino Tutorial - जॉयस्टिक के साथ सर्वो मोटर कंट्रोल: इस ट्यूटोरियल में, हम सीखेंगे कि जॉयस्टिक के साथ सर्वो का उपयोग कैसे करें। हम 1 जॉयस्टिक के साथ 1 पीसी सर्वो मोटर को नियंत्रित करेंगे। आप इस ट्यूटोरियल के संदर्भ में अपने रोबोटिक आर्म प्रोजेक्ट को लागू कर सकते हैं। बेशक हम करते समय बाहरी बैटरी/पावर का उपयोग करेंगे
Arduino Tutorial - पोटेंशियोमीटर के साथ सर्वो मोटर कंट्रोल: 5 कदम
![Arduino Tutorial - पोटेंशियोमीटर के साथ सर्वो मोटर कंट्रोल: 5 कदम Arduino Tutorial - पोटेंशियोमीटर के साथ सर्वो मोटर कंट्रोल: 5 कदम](https://i.howwhatproduce.com/images/003/image-6131-28-j.webp)
Arduino Tutorial - पोटेंशियोमीटर के साथ सर्वो मोटर कंट्रोल: यह निर्देश योग्य मेरे "Arduino: How To Control Servo Motor with Potentiometer" का लिखित संस्करण है। YouTube वीडियो जो मैंने हाल ही में अपलोड किया है। मैं आपको इसे देखने की दृढ़ता से अनुशंसा करता हूं। YouTube चैनल पर जाएं
निरंतर रोटेशन के लिए एक सर्वो मोटर को कैसे संशोधित करें (एक मोटर वॉकर रोबोट): 8 कदम (चित्रों के साथ)
![निरंतर रोटेशन के लिए एक सर्वो मोटर को कैसे संशोधित करें (एक मोटर वॉकर रोबोट): 8 कदम (चित्रों के साथ) निरंतर रोटेशन के लिए एक सर्वो मोटर को कैसे संशोधित करें (एक मोटर वॉकर रोबोट): 8 कदम (चित्रों के साथ)](https://i.howwhatproduce.com/images/005/image-12819-34-j.webp)
निरंतर रोटेशन के लिए एक सर्वो मोटर को कैसे संशोधित करें (एक मोटर वॉकर रोबोट): यह निर्देशयोग्य एक मोटर वॉकर का हिस्सा है।https://www.instructables.com/id/How-to-build-the-one-motor- वॉकर/इस तरह के खरबों ट्यूटोरियल हैं, मुझे पता है:-)वे जहां लंच ब्रेक के दौरान सोनी माविका कैमरा (फ्लॉप