रास्पबेरी पाई एक एआरएम आर्किटेक्चर प्रोसेसर आधारित बोर्ड है जो इलेक्ट्रॉनिक इंजीनियरों और शौकियों के लिए बनाया गया है। PI अब वहां से सबसे भरोसेमंद परियोजना विकास प्लेटफार्मों में से एक है। उच्च प्रोसेसर गति और 1 जीबी रैम के साथ, पीआई का उपयोग इमेज प्रोसेसिंग और इंटरनेट ऑफ थिंग्स जैसी कई उच्च प्रोफ़ाइल परियोजनाओं के लिए किया जा सकता है।
किसी भी उच्च प्रोफ़ाइल परियोजना को करने के लिए, पीआई के बुनियादी कार्यों को समझने की आवश्यकता है। हम इन ट्यूटोरियल में रास्पबेरी पाई की सभी बुनियादी कार्यात्मकताओं को शामिल करेंगे । प्रत्येक ट्यूटोरियल में हम पीआई के कार्यों में से एक पर चर्चा करेंगे। इस रास्पबेरी पाई ट्यूटोरियल श्रृंखला के अंत तक, आप अपने आप से उच्च प्रोफ़ाइल परियोजनाएं करने में सक्षम होंगे। नीचे ट्यूटोरियल के माध्यम से जाओ:
- रास्पबेरी पाई के साथ शुरुआत करना
- रास्पबेरी पाई विन्यास
- एलईडी ब्लिंक
- रास्पबेरी पाई बटन इंटरफेसिंग
- रास्पबेरी पाई PWM पीढ़ी
- रास्पबेरी पाई का उपयोग करके डीसी मोटर को नियंत्रित करना
इस ट्यूटोरियल में, हम रास्पबेरी पाई का उपयोग करके एक स्टेपर मोटर की गति को नियंत्रित करेंगे । स्टेपर मोटर में, जैसा कि नाम ही कहता है, शाफ्ट का रोटेशन स्टेप रूप में है। स्टेपर मोटर के विभिन्न प्रकार हैं; यहां हम सबसे लोकप्रिय एक का उपयोग कर रहे हैं जो कि यूनिपोलर स्टेपर मोटर है । डीसी मोटर के विपरीत, हम स्टीपर मोटर को किसी विशेष कोण पर घुमा सकते हैं, इसे उचित निर्देश देकर।
इस फोर स्टेज स्टेपर मोटर को घुमाने के लिए, हम स्टेपर मोटर ड्राइवर सर्किट का उपयोग करके पावर दालों को वितरित करेंगे। चालक सर्किट पीआई से तर्क ट्रिगर करता है। यदि हम तर्क ट्रिगर को नियंत्रित करते हैं, तो हम पावर दालों को नियंत्रित करते हैं और इसलिए स्टेपर मोटर की गति।
रहे हैं रास्पबेरी Pi 2 में 40 GPIO उत्पादन पिंस । लेकिन 40 में से केवल 26 GPIO पिन (GPIO2 से GPIO27) को प्रोग्राम किया जा सकता है। इनमें से कुछ पिन कुछ विशेष कार्य करते हैं। विशेष GPIO को अलग रखने के साथ, हमारे पास केवल 17 GPIO शेष हैं। इन 17 GPIO पिन में से प्रत्येक अधिकतम 15mA वर्तमान प्रदान कर सकता है । और सभी GPIO पिन से धाराओं का योग 50mA से अधिक नहीं हो सकता है । GPIO पिन के बारे में अधिक जानने के लिए: रास्पबेरी पाई के साथ एलईडी ब्लिंकिंग करें
कर रहे हैं + 5V (पिन 2 और 4) और + 3.3 (पिन 1 & 17) बिजली उत्पादन पिंस अन्य मॉड्यूल और सेंसरों को जोड़ने के लिए बोर्ड पर। स्टेपर मोटर को चलाने के लिए इन पावर रेल का उपयोग नहीं किया जा सकता है, क्योंकि हमें इसे घुमाने के लिए अधिक शक्ति की आवश्यकता होती है। इसलिए हमें दूसरे पावर स्रोत से स्टेपर मोटर को बिजली पहुंचानी होगी। मेरी स्टेपर मोटर की वोल्टेज रेटिंग 9 वी है इसलिए मैं अपने दूसरे पावर स्रोत के रूप में 9v की बैटरी का उपयोग कर रहा हूं। वोल्टेज रेटिंग जानने के लिए अपना स्टेपर मोटर मॉडल नंबर खोजें। रेटिंग के आधार पर द्वितीयक स्रोत को उचित रूप से चुनें।
जैसा कि पहले कहा गया है, हमें स्टीपर मोटर को चलाने के लिए ड्राइवर सर्किट की आवश्यकता होती है। हम यहां एक साधारण ट्रांजिस्टर चालक सर्किट भी डिजाइन करेंगे।
आवश्यक घटक:
यहां हम रास्पबेरी जेसी ओएस के साथ रास्पबेरी पाई 2 मॉडल बी का उपयोग कर रहे हैं । सभी मूल हार्डवेयर और सॉफ़्टवेयर आवश्यकताओं पर पहले से चर्चा की जाती है, आप इसे रास्पबेरी पाई परिचय में देख सकते हैं, इसके अलावा, हमें इसकी आवश्यकता है:
- कनेक्टिंग पिन
- 220 या 1 वर्गमीटर (3)
- स्टेपर मोटर
- बटन (2)
- 2N2222 ट्रांजिस्टर (4)
- 1N4007 डायोड (4)
- संधारित्र- 1000uF
- ब्रेड बोर्ड
सर्किट स्पष्टीकरण:
स्टेपर मोटर 360 डिग्री रोटेशन को पूरा करने के लिए 200 चरणों का उपयोग करती है, इसका मतलब है कि प्रति चरण 1.8 डिग्री घूमती है । जैसा कि हम एक फोर स्टेज स्टेपर मोटर चला रहे हैं, इसलिए हमें सिंगल लॉजिक साइकिल को पूरा करने के लिए चार दालें देने की जरूरत है। इस मोटर का प्रत्येक चरण 1.8 डिग्री रोटेशन को पूरा करता है, इसलिए एक चक्र को पूरा करने के लिए हमें 200 दालों की आवश्यकता होती है। तो 200/4 = 50 तर्क चक्रों को एक चक्कर पूरा करने के लिए आवश्यक है। स्टेपर मोटर्स और उसके ड्राइविंग मोड्स के बारे में अधिक जानने के लिए इसे देखें।
हम एनपीएन ट्रांजिस्टर (2N2222) द्वारा इन चार कॉइल्स में से प्रत्येक को चलाएंगे, यह एनपीएन ट्रांजिस्टर पीआई से लॉजिक पल्स लेता है और संबंधित कॉइल को ड्राइव करता है। चार ट्रांजिस्टर पीआई से चार लॉजिस्टिक्स ले रहे हैं ताकि स्टेपर मोटर के चार चरणों को चलाया जा सके।
ट्रांजिस्टर चालक सर्किट एक मुश्किल सेटअप है; यहां हमें ध्यान देना चाहिए कि गलत तरीके से ट्रांजिस्टर को जोड़ने से बोर्ड भारी रूप से लोड हो सकता है और इसे नुकसान पहुंचा सकता है। स्टेपर मोटर ड्राइवर सर्किट को ठीक से समझने के लिए इसे जांचें।
मोटर एक प्रेरण है और इसलिए मोटर को स्विच करते समय, हम आगमनात्मक स्पिकिंग का अनुभव करते हैं। यह स्पाइकिंग ट्रांजिस्टर को बहुत अधिक गर्म करेगा, इसलिए हम इंडिकिव स्पाइकिंग के खिलाफ ट्रांजिस्टर को सुरक्षा प्रदान करने के लिए डायोड (1N4007) का उपयोग करेंगे ।
वोल्टेज में उतार-चढ़ाव को कम करने के लिए, हम एक 1000uF संधारित्र को विद्युत आपूर्ति में जोड़ रहे होंगे जैसा कि सर्किट आरेख में दिखाया गया है।
कार्य स्पष्टीकरण:
एक बार जब सब कुछ सर्किट आरेख के अनुसार जुड़ा हुआ है, तो हम PYHTON में प्रोग्राम लिखने के लिए PI को चालू कर सकते हैं।
हम कुछ आदेशों के बारे में बात करेंगे जिनका हम PYHTON कार्यक्रम में उपयोग करने जा रहे हैं, हम लाइब्रेरी से GPIO फ़ाइल आयात करने जा रहे हैं, नीचे फ़ंक्शन हमें PI के GPIO पिन को प्रोग्राम करने में सक्षम बनाता है। हम "GPIO" का नाम भी "IO" कर रहे हैं, इसलिए जब भी हम GPIO पिन को संदर्भित करना चाहते हैं, तो हम 'IO' शब्द का उपयोग करेंगे।
IO के रूप में RPi.GPIO आयात करें
कभी-कभी, जब GPIO पिन, जिसे हम उपयोग करने की कोशिश कर रहे हैं, हो सकता है कि वह कुछ अन्य कार्य कर रहा हो। उस स्थिति में, हम कार्यक्रम को निष्पादित करते समय चेतावनी प्राप्त करेंगे। नीचे कमांड पीआई को चेतावनी को अनदेखा करने और कार्यक्रम के साथ आगे बढ़ने के लिए कहता है।
IO.setwarnings (गलत)
हम पीआई के GPIO पिन का उल्लेख कर सकते हैं, या तो बोर्ड पर पिन नंबर या उनके फ़ंक्शन नंबर के द्वारा। बोर्ड पर 'पिन 35' की तरह 'GPIO19' है। इसलिए हम यहां बताते हैं कि या तो हम '35' या '19' द्वारा यहां पिन का प्रतिनिधित्व करने जा रहे हैं।
IO.setmode (IO.BCM)
हम स्टेपर मोटर के चार कॉइल को चलाने के लिए आउटपुट के रूप में जीपीआईओ पिन के चार सेट कर रहे हैं।
IO.setup (5, IO.OUT) IO.setup (17, IO.OUT) IO.setup (27, IO.OUT) IO.setup (22, IO.OUT)
हम GPIO26 और GPIO19 को इनपुट पिन के रूप में सेट कर रहे हैं। हम इन पिन द्वारा बटन प्रेस का पता लगाएंगे।
IO.setup (19, IO.IN) IO.setup (26, IO.IN)
यदि ब्रेसिज़ में स्थिति सही है, तो लूप के अंदर के कथनों को एक बार निष्पादित किया जाएगा। इसलिए यदि GPIO पिन 26 कम हो जाता है, तो IF लूप के अंदर के स्टेटमेंट्स को एक बार निष्पादित किया जाएगा। यदि GPIO पिन 26 कम नहीं होता है, तो IF लूप के अंदर कथनों को निष्पादित नहीं किया जाएगा।
अगर (IO.input (26) == गलत):
यह कमांड 100 बार लूप निष्पादित करता है, x को 0 से 99 तक बढ़ाया जा रहा है।
एक्स के लिए रेंज में (100):
जबकि 1: का उपयोग अनंत लूप के लिए किया जाता है। इस कमांड के साथ इस लूप के अंदर के स्टेटमेंट्स को लगातार निष्पादित किया जाएगा।
हमारे पास स्टेपर मोटर के स्पीड कंट्रोल को प्राप्त करने के लिए आवश्यक सभी कमांड हैं ।
कार्यक्रम लिखने और इसे निष्पादित करने के बाद, सभी को छोड़ दिया गया है जो नियंत्रण का संचालन कर रहा है। हमारे पास PI से जुड़े दो बटन हैं। चार दालों के बीच देरी के लिए वेतन वृद्धि के लिए एक और चार दालों के बीच देरी में वृद्धि के लिए। देरी खुद गति की बात करती है; यदि देरी अधिक होती है, तो मोटर प्रत्येक चरण के बीच ब्रेक लेता है और इसलिए रोटेशन धीमा होता है । यदि विलंब शून्य के पास है, तो मोटर अधिकतम गति से घूमता है ।
यहां यह याद रखना चाहिए कि, दालों के बीच कुछ देरी होनी चाहिए। पल्स देने के बाद, स्टेपर मोटर को अपने अंतिम चरण तक पहुंचने में कुछ मिलीसेकंड का समय लगता है। यदि दालों के बीच कोई देरी नहीं हुई है, तो स्टेपर मोटर बिल्कुल नहीं चलेगी। दालों के बीच आमतौर पर 50ms देरी ठीक है। अधिक सटीक जानकारी के लिए, डेटा शीट देखें।
तो दो बटनों के साथ हम देरी को नियंत्रित कर सकते हैं, जो बदले में स्टेपर मोटर की गति को नियंत्रित करते हैं।