रास्पबेरी पाई एक एआरएम आर्किटेक्चर प्रोसेसर आधारित बोर्ड है जो इलेक्ट्रॉनिक इंजीनियरों और शौकियों के लिए बनाया गया है। PI अब वहां से सबसे भरोसेमंद परियोजना विकास प्लेटफार्मों में से एक है। उच्च प्रोसेसर गति और 1 जीबी रैम के साथ, पीआई का उपयोग इमेज प्रोसेसिंग और इंटरनेट ऑफ थिंग्स जैसी कई उच्च प्रोफ़ाइल परियोजनाओं के लिए किया जा सकता है।
किसी भी उच्च प्रोफ़ाइल परियोजना को करने के लिए, पीआई के बुनियादी कार्यों को समझने की आवश्यकता है। हम इन ट्यूटोरियल में रास्पबेरी पाई की सभी बुनियादी कार्यात्मकताओं को शामिल करेंगे । प्रत्येक ट्यूटोरियल में हम पीआई के कार्यों में से एक पर चर्चा करेंगे। ट्यूटोरियल श्रृंखला के अंत तक आप अपने आप से उच्च प्रोफ़ाइल परियोजनाओं को करने में सक्षम होंगे। रास्पबेरी पाई और रास्पबेरी पाई कॉन्फ़िगरेशन के साथ आरंभ करने के लिए इनकी जांच करें।
हमने पिछले ट्यूटोरियल्स में LED ब्लिंक, बटन इंटरफेसिंग और PWM जनरेशन पर चर्चा की है। इस ट्यूटोरियल में हम रास्पबेरी पाई और पीडब्लूएम तकनीक का उपयोग करके एक डीसी मोटर की गति को नियंत्रित करेंगे । पीडब्लूएम (पल्स विथ मॉड्यूलेशन) एक ऐसी विधि है जिसका उपयोग निरंतर बिजली स्रोत से परिवर्तनीय वोल्टेज प्राप्त करने के लिए किया जाता है। हमने पिछले ट्यूटोरियल में PWM के बारे में चर्चा की है।
रहे हैं रास्पबेरी Pi 2 में 40 GPIO उत्पादन पिंस । लेकिन 40 में से केवल 26 GPIO पिन (GPIO2 से GPIO27) को प्रोग्राम किया जा सकता है। इनमें से कुछ पिन कुछ विशेष कार्य करते हैं। विशेष GPIO को अलग रखने के साथ, हमारे पास 17 GPIO शेष हैं। GPIO पिन के बारे में अधिक जानने के लिए, रास्पबेरी पाई के साथ एलईडी ब्लिंकिंग करें
इन 17 GPIO पिन में से प्रत्येक अधिकतम 15mA प्रदान कर सकता है । और सभी GPIO पिन से धाराओं का योग 50mA से अधिक नहीं हो सकता है । इसलिए हम इनमें से प्रत्येक GPIO पिन से औसतन अधिकतम 3mA खींच सकते हैं। इसलिए किसी को इन चीजों के साथ छेड़छाड़ नहीं करनी चाहिए जब तक कि आपको पता न हो कि आप क्या कर रहे हैं
कर रहे हैं + 5V (पिन 2 और 4) और + 3.3 (पिन 1 & 17) बिजली उत्पादन पिंस अन्य मॉड्यूल और सेंसरों को जोड़ने के लिए बोर्ड पर। यह पावर रेल प्रोसेसर पावर के समानांतर में जुड़ा हुआ है। इसलिए इस पावर रेल से हाई करंट खींचने से प्रोसेसर प्रभावित होता है। पीआई बोर्ड पर एक फ्यूज है जो उच्च भार लागू करने के बाद यात्रा करेगा। आप + 3.3V रेल से 100mA को सुरक्षित रूप से खींच सकते हैं । हम यहां इस बारे में बात कर रहे हैं क्योंकि; हम DC मोटर को + 3.3V से जोड़ रहे हैं। पावर लिमिट को ध्यान में रखते हुए, हम केवल कम पावर मोटर को यहां कनेक्ट कर सकते हैं, यदि आप हाई पावर मोटर चलाना चाहते हैं, तो इसे अलग पावर स्रोत से पावर करने पर विचार करें।
आवश्यक घटक:
यहां हम रास्पबेरी जेसी ओएस के साथ रास्पबेरी पाई 2 मॉडल बी का उपयोग कर रहे हैं । सभी मूल हार्डवेयर और सॉफ़्टवेयर आवश्यकताओं पर पहले से चर्चा की जाती है, आप इसे रास्पबेरी पाई परिचय में देख सकते हैं, इसके अलावा, हमें इसकी आवश्यकता है:
- कनेक्टिंग पिन
- 220 या 1 वर्गमीटर (3)
- छोटी डीसी मोटर
- बटन (2)
- 2N2222 ट्रांजिस्टर
- 1N4007 डायोड
- संधारित्र- 1000uF
- ब्रेड बोर्ड
सर्किट स्पष्टीकरण:
जैसा कि पहले कहा गया था, हम किसी भी GPIO पिन से 15mA से अधिक नहीं खींच सकते हैं और डीसी मोटर 15mA से अधिक खींचता है, इसलिए रास्पबेरी पाई द्वारा उत्पन्न PWM को सीधे डीसी मोटर को नहीं खिलाया जा सकता है। इसलिए यदि हम गति नियंत्रण के लिए मोटर को सीधे पीआई से जोड़ते हैं, तो बोर्ड स्थायी रूप से क्षतिग्रस्त हो सकता है।
इसलिए हम स्विचिंग डिवाइस के रूप में एक NPN ट्रांजिस्टर (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)
हम GPIO19 (या PIN35) को आउटपुट पिन के रूप में सेट कर रहे हैं। हम इस पिन से PWM आउटपुट प्राप्त करेंगे।
IO.setup (19, IO.IN)
पिन को आउटपुट के रूप में सेट करने के बाद हमें पिन को PWM आउटपुट पिन के रूप में सेट करना होगा, p = IO.PWM (आउटपुट चैनल, PWM सिग्नल की आवृत्ति)
उपरोक्त कमांड चैनल को स्थापित करने के लिए है और पीडब्लूएम सिग्नल की आवृत्ति को स्थापित करने के लिए भी है। 'p' यहाँ एक वैरिएबल है जो कुछ भी हो सकता है। हम GPIO19 को PWM आउटपुट चैनल के रूप में उपयोग कर रहे हैं । ' PWM सिग्नल की आवृत्ति ' को 100 चुना गया है, क्योंकि हम एलईडी ब्लिंकिंग नहीं देखना चाहते हैं।
PWM सिग्नल जेनरेशन को शुरू करने के लिए नीचे कमांड का इस्तेमाल किया गया है, ' DUTYCYCLE ' टर्न ऑन रेशो सेट करने के लिए है, 0 मतलब LED 0% समय पर चालू होगा, 30 मतलब LED 30% समय के लिए चालू रहेगा और 100 मतलब पूरी तरह से चालू ।
p.start (DUTYCYCLE)
यदि ब्रेसिज़ में स्थिति सही है, तो लूप के अंदर के कथनों को एक बार निष्पादित किया जाएगा। इसलिए यदि GPIO पिन 26 कम हो जाता है, तो IF लूप के अंदर के स्टेटमेंट्स को एक बार निष्पादित किया जाएगा। यदि GPIO पिन 26 कम नहीं होता है, तो IF लूप के अंदर कथनों को निष्पादित नहीं किया जाएगा।
अगर (IO.input (26) == गलत):
जबकि 1: का उपयोग अनंत लूप के लिए किया जाता है। इस कमांड के साथ इस लूप के अंदर के स्टेटमेंट्स को लगातार निष्पादित किया जाएगा।
हमारे पास इसके साथ गति नियंत्रण हासिल करने के लिए आवश्यक सभी कमांड हैं।
कार्यक्रम लिखने और इसे निष्पादित करने के बाद, सभी को छोड़ दिया गया है जो नियंत्रण का संचालन कर रहा है। हमारे पास PI से जुड़े दो बटन हैं; के लिए एक कर्तव्य चक्र incrementing PWM संकेत के और के लिए अन्य ड्यूटी साइकिल decrementing PWM संकेत के। एक बटन दबाने से डीसी मोटर की गति बढ़ जाती है और दूसरे बटन को दबाने से डीसी मोटर की गति कम हो जाती है। इसके साथ हमने रास्पबेरी पाई द्वारा डीसी मोटर स्पीड कंट्रोल हासिल किया है ।
यह भी जांचें:
- डीसी मोटर गति नियंत्रण
- Arduino का उपयोग कर डीसी मोटर नियंत्रण