अपने रास्पबेरी पाई परियोजना के लिए एक बटन जोड़ने के लिए 2 तरीके
विज्ञापन
अपने रास्पबेरी पाई पर GPIO पिन का उपयोग करना सीखना संभावनाओं की एक पूरी दुनिया को खोलता है। शुरुआती परियोजनाओं के माध्यम से सीखे गए मूल सिद्धांत DIY इलेक्ट्रॉनिक्स और प्रोग्रामिंग दोनों के उपयोगी ज्ञान की ओर जाते हैं।
यह ट्यूटोरियल आपको अपने रास्पबेरी पाई प्रोजेक्ट में एक बटन जोड़ने के दो तरीके दिखाएगा। बटन का उपयोग एक एलईडी को नियंत्रित करने के लिए किया जाएगा। वीडियो के नीचे लिखित निर्देश उपलब्ध हैं।
आपको चाहिये होगा
आरंभ करने के लिए, सुनिश्चित करें कि आपके पास निम्नलिखित घटक हैं:
- 1 एक्स रास्पबेरी पाई (कोई भी करेगा, मॉडल 3 बी इस ट्यूटोरियल में उपयोग किया जाता है)
- 1 एक्स पुश बटन
- 1 एक्स एलईडी
- 1 एक्स 220 ओम रेसिस्टर (उच्च मूल्य ठीक हैं, आपका एलईडी बस धुंधला हो जाएगा)
- 1 एक्स ब्रेडबोर्ड
- तारों को हुक करें
एक बार इकट्ठा होने के बाद, आपके पास ऐसे घटक होने चाहिए जो कुछ इस तरह दिखें:
आपको रास्पियन ऑपरेटिंग सिस्टम के साथ एसडी कार्ड की भी आवश्यकता होगी। ऐसा करने का सबसे तेज तरीका NOOBS (नया आउट ऑफ द बॉक्स सॉफ्टवेयर) इमेज है। ऐसा करने के निर्देश इस वीडियो में उपलब्ध हैं:
सर्किट की स्थापना
आप सर्किट बनाने के लिए पाई के GPIO पिन का उपयोग कर रहे होंगे, और यदि आप उनसे अपरिचित हैं, तो रास्पबेरी पाई GPIO पिन के लिए हमारे गाइड मदद करेंगे। यहाँ सर्किट लगभग हमारे पिछले रास्पबेरी पाई एलईडी परियोजना के समान है, बटन के अतिरिक्त के साथ आप आज का उपयोग करेंगे।
इस आरेख के अनुसार अपना सर्किट सेट करें:
- 5v और GND पिन ब्रेडबोर्ड की पावर रेल से जुड़ते हैं।
- पिन 12 (GPIO 18) एलईडी के सकारात्मक पैर से जुड़ता है।
- रोकनेवाला का एक पैर एलईडी के नकारात्मक पैर से जुड़ जाता है, और दूसरा पैर ब्रेडबोर्ड की जमीन की रेल से जुड़ जाता है।
- पिन 16 (GPIO 23) बटन के एक तरफ संलग्न होता है, दूसरा पक्ष ब्रेडबोर्ड की ग्राउंड रेल से जुड़ता है।
एक बार इसकी स्थापना हो जाने के बाद, यहाँ यह देखना चाहिए:
यह सुनिश्चित करने के लिए अपने सर्किट की जाँच करें कि यह सही है, और फिर अपने रास्पबेरी पाई को शक्ति दें।
विधि 1: RPI.GPIO लाइब्रेरी
एक बार पाई बूट हो जाने के बाद, मेनू पर जाएं और प्रोग्रामिंग> थोन पायथन आईडीई चुनें । एक नया पायथन लिपि खुलेगी। यदि आप पायथन के लिए पूरी तरह से नए हैं, तो यह शुरुआती लोगों के लिए एक बढ़िया भाषा है और इस ट्यूटोरियल के साथ किए जाने के बाद अजगर के बारे में अधिक जानने के लिए कई बेहतरीन स्थान हैं!
RPi.GPIO लाइब्रेरी आयात करके और बोर्ड मोड सेट करके शुरू करें।
import RPi.GPIO as GPIO GPIO.setmode(GPIO.BOARD)
अब एलईडी और बटन पिन नंबर के लिए चर घोषित करें।
ledPin = 12 buttonPin = 16
ध्यान दें कि चूंकि हमारे पास बोर्ड मोड पर बोर्ड है जो हम GPIO नंबरों के बजाय पिन नंबरों का उपयोग कर रहे हैं। यदि वह आपको भ्रमित कर रहा है, तो रास्पबेरी पाई पिनआउट चार्ट इसे स्पष्ट करने में मदद कर सकता है।
बटन को सेट करना
यह GPIO पिन सेट करने का समय है। आउटपुट के लिए एलईडी पिन सेट करें, और पुल-अप रोकनेवाला के साथ इनपुट करने के लिए बटन पिन
GPIO.setup(ledPin, GPIO.OUT) GPIO.setup(buttonPin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.IN के बाद का पाठ रास्पबेरी पाई के आंतरिक पुल-अप रोकनेवाला को संदर्भित करता है। बटन से साफ पढ़ने के लिए आपको इसे सक्षम करने की आवश्यकता है। चूंकि बटन ग्राउंड पिन पर जा रहा है, हमें इनपुट पिन हाई को होल्ड करने के लिए एक पुल-अप रेसिस्टर की आवश्यकता होती है जब तक आप इसे दबाते हैं।
इससे पहले कि हम चलते हैं, चलो पुल-अप और पुल-डाउन प्रतिरोधों को देखें।
प्रवेश: ऊपर / नीचे खींचो प्रतिरोधों को खींचो
जब आप एक GPIO पिन को इनपुट में कॉन्फ़िगर करते हैं, तो यह उस पिन को पढ़ता है जिससे इसकी स्थिति निर्धारित की जा सके। इस सर्किट में, आपको यह पढ़ने की जरूरत है कि बटन दबाए जाने पर एलईडी को चालू करने के लिए पिन उच्च या कम है या नहीं। यह सरल होगा यदि वे एकमात्र राज्य थे जिनके पास पिन हो सकता है, लेकिन दुर्भाग्य से, एक तीसरा राज्य है: फ़्लोटिंग ।
फ्लोटिंग पिन में उच्च और निम्न के बीच मान होता है, जिससे इनपुट अप्रत्याशित रूप से कार्य करता है। पुल-अप / पुल-डाउन रेसिस्टर्स इसे हल करते हैं।
उपरोक्त छवि एक बटन का सरलीकृत आरेख और रास्पबेरी पाई है। GPIO पिन बटन के माध्यम से जमीन से जुड़ता है। आंतरिक पुल-अप रोकनेवाला GPIO पिन को आंतरिक Pi बिजली की आपूर्ति से जोड़ता है। यह करंट प्रवाहित होता है और पिन को हाई तक सुरक्षित रूप से खींचा जाता है।
जब आप बटन दबाते हैं, तो GPIO पिन सीधे ग्राउंड पिन से जुड़ जाता है, और बटन कम पढ़ता है।
पुल-डाउन रेसिस्टर्स तब होते हैं जब स्विच पावर पिन से जुड़ा होता है। इस बार, आंतरिक अवरोधक जमीन में GPIO पिन संलग्न करता है, जब तक आप बटन दबाते हैं, तब तक LOW में पकड़े रहते हैं।
पुल-अप और पुल-डाउन प्रतिरोधक सिद्धांत पहली नज़र में भ्रमित कर रहा है, लेकिन माइक्रोकंट्रोलर के साथ काम करने के लिए महत्वपूर्ण ज्ञान। अभी के लिए, यदि आप इसे नहीं समझते हैं, तो चिंता न करें!
चलो जारी रखें जहां हमने छोड़ा था।
कार्यक्रम लूप
अगला, प्रोग्राम लूप सेट करें:
while True: buttonState = GPIO.input(buttonPin) if buttonState == False: GPIO.output(ledPin, GPIO.HIGH) else: GPIO.output(ledPin, GPIO.LOW)
जबकि ट्रू लूप लगातार प्रोग्राम को समाप्त करने तक इसके अंदर कोड चलाता है। हर बार जब यह लूप करता है तो यह बटनपाइप से इनपुट को पढ़कर बटनस्टेट को अपडेट करता है। जबकि बटन दबाया नहीं जा रहा है, यह हाई रहता है।
बटन दबाते ही बटनस्टैट LOW हो जाता है। यह यदि कथन को ट्रिगर करता है, क्योंकि झूठी LOW के समान है, और LED चालू होता है। जब भी बटन बटन गलत न हो, तब दूसरा स्टेटमेंट एलईडी को बंद कर देता है।
अपनी स्क्रिप्ट को सहेजें और चलाएं
फ़ाइल> इस रूप में सहेजें और फ़ाइल नाम का चयन करके अपनी स्क्रिप्ट सहेजें । आप थोनी टूलबार में ग्रीन प्ले बटन पर क्लिक करके स्केच चला सकते हैं।
अब बटन दबाएं, और आपकी एलईडी को प्रकाश देना चाहिए! प्रोग्राम को रोकने के लिए किसी भी समय लाल स्टॉप बटन दबाएं
यदि आपको कठिनाइयाँ हो रही हैं, तो त्रुटियों के लिए अपने कोड और सर्किट सेटअप को अच्छी तरह से जाँच लें और पुनः प्रयास करें।
विधि 2: GPIO शून्य लाइब्रेरी
RPi.GPIO लाइब्रेरी शानदार है, लेकिन ब्लॉक पर एक नया बच्चा है। GPIO जीरो लाइब्रेरी रास्पबेरी पाई समुदाय प्रबंधक बेन न्यूटॉल द्वारा कोड सरल बनाने के इरादे से बनाया गया था, और पढ़ने और लिखने में आसान था।
नई लाइब्रेरी का परीक्षण करने के लिए एक नई Thonny फ़ाइल खोलें, और लाइब्रेरी आयात करें।
from gpiozero import LED, Button from signal import pause
आप देखेंगे कि आपने पूरे पुस्तकालय का आयात नहीं किया है। चूंकि आप केवल एक एलईडी और बटन का उपयोग कर रहे हैं, इसलिए आपको स्क्रिप्ट में केवल उन मॉड्यूल की आवश्यकता होती है। हम सिग्नल लाइब्रेरी से पॉज़ भी आयात करते हैं, जो इवेंट मैनेजमेंट के लिए पायथन लाइब्रेरी है।
GPIO शून्य के साथ पिन सेट करना बहुत आसान है:
led = LED(18) button = Button(23)
चूंकि GPIO जीरो लाइब्रेरी में एलईडी और बटन के लिए मॉड्यूल हैं, इसलिए आपको पहले की तरह इनपुट और आउटपुट सेट करने की आवश्यकता नहीं है। आप देखेंगे कि हालांकि पिन नहीं बदले हैं, यहाँ संख्याएँ ऊपर से भिन्न हैं। ऐसा इसलिए है क्योंकि GPIO जीरो केवल GPIO पिन नंबर (ब्रॉडकॉम या BCM नंबर के रूप में भी जाना जाता है) का उपयोग करता है।
बाकी स्क्रिप्ट केवल तीन लाइनें हैं:
button.when_pressed = led.on button.when_released = led.off pause()
यहां ठहराव () कॉल बस स्क्रिप्ट को बाहर निकलने से रोकता है जब यह नीचे तक पहुंचता है। जब भी बटन दबाया और जारी किया जाता है, तो दो-बटन ईवेंट ट्रिगर हो जाते हैं। अपनी स्क्रिप्ट को सहेजें और चलाएं और आप पहले जैसा ही परिणाम देखेंगे!
रास्पबेरी पाई के लिए एक बटन जोड़ने के दो तरीके
बटन को सेट करने के दो तरीकों में से, GPIO शून्य विधि सबसे आसान लगती है। यह अभी भी RPi.GPIO लाइब्रेरी के बारे में सीखने लायक है क्योंकि अधिकांश शुरुआती रास्पबेरी पाई प्रोजेक्ट इसका उपयोग करते हैं। यह प्रोजेक्ट जितना सरल है, ज्ञान का उपयोग कई चीजों के लिए किया जा सकता है।
GPIO पिन का उपयोग करना अपने स्वयं के उपकरणों को सीखने और आविष्कार करने का एक शानदार तरीका है, लेकिन इसका सब कुछ आप पाई के साथ कर सकते हैं। रास्पबेरी पाई रास्पबेरी पाई के लिए हमारा अनौपचारिक गाइड: अनधिकृत ट्यूटोरियल रास्पबेरी पाई: अनधिकृत ट्यूटोरियल चाहे आप एक मौजूदा पीए मालिक हों जो इस क्रेडिट कार्ड आकार डिवाइस के अधिक या संभावित मालिक सीखना चाहते हैं, यह एक गाइड नहीं है आप मिस करना चाहते हैं। और पढ़ें रचनात्मक विचारों और ट्यूटोरियल के साथ आप अपने आप को आज़मा सकते हैं! इस तरह के एक अन्य ट्यूटोरियल के लिए, ईएसपी 8266 के साथ वाई-फाई कनेक्टेड बटन बनाने के तरीके की जांच करें कि ईएसपी 8266 के साथ अपना खुद का वाई-फाई कनेक्टेड बटन कैसे बनाएं, ईएसपी 8266 के साथ अपना खुद का वाई-फाई कनेक्टेड बटन कैसे बनाएं, इस ट्यूटोरियल में आप सीखेंगे कि कैसे NodeMCU और IFTTT का उपयोग करके वाई-फाई-सक्षम बटन बनाने के लिए। अधिक पढ़ें ।
इसके बारे में अधिक जानें: DIY प्रोजेक्ट ट्यूटोरियल, GPIO, पायथन, रास्पबेरी पाई।