- सर्वो मोटर क्या है?
- माइक्रोकंट्रोलर्स के साथ सर्वो सर्वो
- PICF877A PIC माइक्रोकंट्रोलर के साथ प्रोग्रामिंग इमदादी मोटर:
- सर्किट आरेख:
- सिमुलेशन और हार्डवेयर सेटअप:
यह MPLAB और XC8 का उपयोग करते हुए PIC PIC माइक्रोकंट्रोलर्स सीखने का हमारा 11 वां ट्यूटोरियल है । इस ट्यूटोरियल में हम सीखेंगे कि PIC Microcontroller के साथ सर्वो मोटर को कैसे नियंत्रित किया जाए । यदि आपने पहले से ही इमदादी मोटर्स के साथ काम किया है तो आप इस ट्यूटोरियल के पहले भाग को छोड़ सकते हैं लेकिन यदि आप सर्वो मोटर के लिए नए हैं तो पढ़ना जारी रखें।
अब तक, हमने कई बुनियादी ट्यूटोरियल्स को कवर किया है जैसे कि LED ब्लिंकिंग के साथ PIC, टाइमर में PIC, LCD को इंटरफेयर करते हुए, 7-सेगमेंट को ADC करते हुए, PIC का उपयोग करते हुए ADC आदि। यदि आप एक पूर्ण शुरुआत करने वाले हैं, तो कृपया यहां PIC ट्यूटोरियल्स की पूरी सूची देखें और सीखना शुरू करें।
हमारे पिछले ट्यूटोरियल में हमने सीखा कि PIC माइक्रोकंट्रोलर का उपयोग करके PWM सिग्नल कैसे जेनरेट किए जाते हैं, पोटेंशियोमीटर से पढ़े गए मूल्य के आधार पर सिग्नल उत्पन्न होते थे। यदि आप सभी कार्यक्रमों को समझ गए हैं, तो बधाई हो कि आपने पहले से ही एक इमदादी मोटर के लिए भी कोडित किया है। हाँ, सर्वो मोटर्स पीडब्लूएम संकेतों का जवाब देते हैं (जो हम यहां टाइमर का उपयोग करके बनाते हैं) हम इस ट्यूटोरियल में क्यों और कैसे सीखेंगे। हम इस परियोजना के लिए हार्डवेयर सेटअप का अनुकरण और निर्माण करेंगे और आप इस ट्यूटोरियल के अंत में विस्तृत वीडियो पा सकते हैं ।
सर्वो मोटर क्या है?
एक सर्वो मोटर एक प्रकार का एक्चुएटर (अधिकतर गोलाकार) है जो कोणीय नियंत्रण की अनुमति देता है। कई प्रकार के सर्वो मोटर्स उपलब्ध हैं, लेकिन इस ट्यूटोरियल में हम नीचे दिखाए गए शौक सर्वो मोटर्स पर ध्यान केंद्रित करते हैं।
हॉबी सर्वोस लोकप्रिय हैं क्योंकि वे गति नियंत्रण की सस्ती विधि हैं। वे अधिकांश आर / सी और रोबोट हॉबीस्ट की जरूरतों के लिए एक ऑफ-द-शेल्फ समाधान प्रदान करते हैं। वे प्रत्येक एप्लिकेशन के लिए नियंत्रण प्रणाली को कस्टम डिज़ाइन करने की आवश्यकता को भी समाप्त करते हैं।
अधिकांश शौक इमदादी मोटर्स में 0- 180 ° की घूर्णी परी है, लेकिन यदि आप रुचि रखते हैं तो आप 360 ° सर्वो मोटर भी प्राप्त कर सकते हैं। यह ट्यूटोरियल 0- 180 ° सर्वो मोटर का उपयोग करता है। गियर के आधार पर दो प्रकार के सर्वो मोटर्स होते हैं, एक है प्लास्टिक गियर सर्वो मोटर और दूसरा है मेटल गियर सर्वो मोटर। धातु के गियर का उपयोग उन स्थानों पर किया जाता है जहां मोटर को अधिक पहनने और आंसू के अधीन किया जाता है, लेकिन यह केवल उच्च कीमत पर आता है।
सर्वो मोटर्स को किलो / सेमी (किलोग्राम प्रति सेंटीमीटर) में रेट किया जाता है, अधिकांश शौक सर्वो मोटर 3kg / cm या 6kg / cm या 12kg / cm पर रेट किए जाते हैं। यह किलो / सेमी आपको बताता है कि किसी विशेष दूरी पर आपका सर्वो मोटर कितना वजन उठा सकता है। उदाहरण के लिए: 6kg / cm सर्वो मोटर 6kg भार उठाने में सक्षम होना चाहिए यदि लोड मोटर शाफ्ट से 1cm दूर हो, तो भार वहन करने की क्षमता कम दूरी जितनी अधिक होगी। यहां जानें सर्व मोटर की मूल बातें।
माइक्रोकंट्रोलर्स के साथ सर्वो सर्वो
MCU के साथ हॉबी सर्वो मोटर्स को इंटरफेज करना बहुत आसान है। सर्वोस के तीन तार निकल रहे हैं । जिसमें से दो का उपयोग आपूर्ति (सकारात्मक और नकारात्मक) के लिए किया जाएगा और एक का उपयोग एमसीयू से भेजे जाने वाले सिग्नल के लिए किया जाएगा। इस ट्यूटोरियल में हम MG995 मेटल गियर सर्वो मोटर का उपयोग करेंगे जिसका उपयोग आरसी कारों ह्यूमनॉइड बॉट्स आदि के लिए सबसे अधिक किया जाता है। MG995 की तस्वीर नीचे दिखाई गई है:
आपके इमदादी मोटर की रंग कोडिंग भिन्न हो सकती है इसलिए अपने संबंधित डेटाशीट की जांच करें।
सभी इमदादी मोटर आपके + 5 वी आपूर्ति रेल के साथ सीधे काम करते हैं, लेकिन हमें वर्तमान में मोटर की खपत पर ध्यान देना होगा, यदि आप दो से अधिक सर्वो मोटर्स का उपयोग करने की योजना बना रहे हैं तो एक उचित इमदादी ढाल डिजाइन की जानी चाहिए। इस ट्यूटोरियल में हम मोटर को नियंत्रित करने के लिए अपने PIC MCU को प्रोग्राम करने के तरीके को दिखाने के लिए बस एक सर्वो मोटर का उपयोग करेंगे। अन्य माइक्रोकंट्रोलर के साथ सर्वो मोटर को इंटरफेस करने के लिए नीचे दिए गए लिंक की जाँच करें:
- इमदादी मोटर 8051 माइक्रोकंट्रोलर के साथ इंटरफेस
- Arduino का उपयोग करके इमदादी मोटर नियंत्रण
- रास्पबेरी पाई सर्वो मोटर ट्यूटोरियल
- AVR माइक्रोकंट्रोलर के साथ सर्वो मोटर
PICF877A PIC माइक्रोकंट्रोलर के साथ प्रोग्रामिंग इमदादी मोटर:
इससे पहले कि हम सर्वो मोटर के लिए प्रोग्रामिंग शुरू कर सकें हमें पता होना चाहिए कि सर्वो मोटर को नियंत्रित करने के लिए किस प्रकार का संकेत भेजा जाना है। हमें इमदादी मोटर के सिग्नल तार को पीडब्लूएम सिग्नल भेजने के लिए एमसीयू को प्रोग्राम करना चाहिए। इमदादी मोटर के अंदर एक नियंत्रण सर्किट्री होती है जो पीडब्लूएम सिग्नल के कर्तव्य चक्र को पढ़ती है और संबंधित मोटर में शाफ्ट मोटर्स को स्थिति के अनुसार नीचे चित्र में दिखाया गया है
प्रत्येक इमदादी मोटर एक अलग पीडब्लूएम आवृत्तियों पर संचालित होती है (सबसे सामान्य आवृत्ति 50 हर्ट्ज है जो इस ट्यूटोरियल में उपयोग की जाती है) इसलिए अपने मोटर की डेटशीट को यह जांचने के लिए प्राप्त करें कि पीडब्लूएम अवधि आपके सर्वो मोटर पर काम करती है।
हमारे टॉवर प्रो MG995 के लिए PWM सिग्नल पर विवरण नीचे दिखाया गया है।
इससे हम यह निष्कर्ष निकाल सकते हैं कि हमारी मोटर 20ms (50 हर्ट्ज) की पीडब्लूएम अवधि के साथ काम करती है। तो हमारे पीडब्लूएम सिग्नल की आवृत्ति 50 हर्ट्ज पर सेट होनी चाहिए। PWM की आवृत्ति जो हमने अपने पिछले ट्यूटोरियल में रखी थी, वह 5 KHz थी, उसी का उपयोग करने से हमें यहाँ मदद नहीं मिलेगी।
लेकिन, हमारे यहां एक समस्या है। PIC16F877A कम आवृत्ति PWM संकेत उत्पन्न नहीं कर सकते सीसीपी मॉड्यूल का उपयोग कर। डेटाशीट के अनुसार PWM आवृत्ति के लिए निर्धारित न्यूनतम संभव मान 1.2 KHz है। इसलिए हमें CCP मॉड्यूल का उपयोग करने के विचार को छोड़ना होगा और अपने खुद के PWM सिग्नल बनाने का तरीका खोजना होगा।
इसलिए, इस ट्यूटोरियल में हम टाइमर मॉड्यूल का उपयोग 50 हर्ट्ज आवृत्ति के साथ पीडब्लूएम संकेतों को उत्पन्न करने के लिए करेंगे और इमदादी मोटर के स्वर्गदूत को नियंत्रित करने के लिए उनके कर्तव्य चक्र को अलग-अलग करेंगे। यदि आप पीआईसी के साथ टाइमर या एडीसी के लिए नए हैं, तो कृपया इस ट्यूटोरियल पर वापस जाएं, क्योंकि मैं ज्यादातर सामान छोड़ रहा हूं क्योंकि हमने पहले ही उन्हें वहां कवर किया है।
हम 32 के प्रीस्कूलर के साथ अपने टाइमर मॉड्यूल को इनिशियलाइज़ करते हैं और इसे हर 1us के लिए ओवरफ़्लो करते हैं। हमारे डेटा शीट के अनुसार PWM की अवधि केवल 20ms होनी चाहिए। इसलिए हमारा समय और समय एक साथ बिल्कुल 20ms के बराबर होना चाहिए।
OPTION_REG = 0b00000100; // टिमर 0 बाहरी फ्रीक के साथ और 32 प्रीस्कूलर TMR0 = 251 के रूप में; // 1us विलम्ब के लिए समय मान लोड करें 0-256 केवल TMR0IE = 1 के बीच हो सकता है; // PIE1 रजिस्टर GIE = 1 में टाइमर इंटरप्ट बिट सक्षम करें; // वैश्विक रुकावट PEIE = 1 सक्षम करें; // पेरिफेरल इंटरप्ट को इनेबल करें
इसलिए हमारे इंटरप्ट रूटीन फंक्शन के अंदर, हम निर्दिष्ट समय के लिए पिन RB0 को चालू करते हैं और इसे रीमिंग टाइम (20ms - on_time) के लिए बंद कर देते हैं। पोटेंशियोमीटर और एडीसी मॉड्यूल का उपयोग करके समय का मूल्य निर्दिष्ट किया जा सकता है। बाधा नीचे दिखाई गई है।
oid बीच में पड़ने वाला टाइमर_आईएसआर () {अगर (TMR0IF == 1) // टाइमर ने ओवरफ्लो किया है {TMR0 = 252; / * टाइमर मान लोड करें, (नोट: टिमरवेल 100 के 101 इंस्टेंस्ड है क्योंकि TImer0 को TMR0 को बढ़ाने के लिए दो अनुदेश चक्रों की आवश्यकता है। RB0 = 1; // एलईडी को ब्लिंक करने के लिए मान को पूरक करें} अगर (गणना> = (on_time + (200-on_time))) {RB0 = 0; गिनती = 0;};
हमारे अंदर है, जबकि पाश हम सिर्फ एडीसी मॉड्यूल का उपयोग करके पोटेंशियोमीटर का मूल्य पढ़ सकते हैं और PWM पढ़ने मूल्य का उपयोग करने का समय पर अद्यतन करें।
जबकि (1) {pot_value = (ADC_Read (4)) * 0.039; on_time = (170-pot_value); }
इस तरह हमने एक PWM सिग्नल बनाया है जिसकी अवधि 20ms है और इसमें एक चर कर्तव्य चक्र है जिसे एक पोटेंशियोमीटर का उपयोग करके सेट किया जा सकता है। कोड सेक्शन में पूरा कोड नीचे दिया गया है।
अब, चलो प्रोटीस सिमुलेशन का उपयोग करके आउटपुट को सत्यापित करते हैं और हमारे हार्डवेयर पर आगे बढ़ते हैं।
सर्किट आरेख:
यदि आप पहले से ही PWM ट्यूटोरियल में आ चुके हैं, तो इस ट्यूटोरियल की योजनाएं समान होंगी, सिवाय इसके कि हम एलईडी लाइट के स्थान पर एक सर्वो मोटर जोड़ रहे हैं।
सिमुलेशन और हार्डवेयर सेटअप:
प्रोटीन सिमुलेशन की मदद से हम पीडब्लूएम सिग्नल को एक आस्टसीलस्कप का उपयोग करके सत्यापित कर सकते हैं और सर्वो मोटर के घूर्णन परी की भी जांच कर सकते हैं। सिमुलेशन के कुछ स्नैपशॉट को नीचे दिखाया गया है, जहां पॉवरियोमीटर के आधार पर परिवर्तन करने के लिए सर्वो मोटर और पीडब्लूएम ड्यूटी चक्र के घूर्णन परी को देखा जा सकता है। आगे पूर्ण वीडियो की जांच करें, अंत में विभिन्न पीडब्लूएम पर रोटेशन।
जैसा कि हम देख सकते हैं कि सर्वो रोटेशन एंजेल पोटेंशियोमीटर मूल्य के आधार पर बदल जाता है। अब हम अपने हार्डवेयर सेटअप पर आगे बढ़ते हैं।
हार्डवेयर सेटअप में हमने बस एलईडी बोर्ड को हटा दिया है और सर्वो मोटर को जोड़ा है जैसा कि ऊपर के स्कीटिक्स में दिखाया गया है।
हार्डवेयर नीचे दी गई तस्वीर में दिखाया गया है:
नीचे दिए गए वीडियो से पता चलता है कि कैसे इमदादी मोटर पोटेंशियोमीटर के विभिन्न पदों के प्रति प्रतिक्रिया करता।
बस इतना ही!! हमने PIC Microcontroller के साथ एक इमदादी मोटर को बाधित किया है, अब आप अपनी रचनात्मकता का उपयोग कर सकते हैं और इसके लिए एप्लिकेशन का पता लगा सकते हैं। वहाँ बहुत सारी परियोजनाएँ हैं जो एक सर्वो मोटर का उपयोग करती हैं।