रास्पबेरी पाई एक एआरएम आर्किटेक्चर प्रोसेसर आधारित बोर्ड है जो इलेक्ट्रॉनिक इंजीनियरों और शौकियों के लिए बनाया गया है। PI अब वहां से सबसे भरोसेमंद परियोजना विकास प्लेटफार्मों में से एक है। उच्च प्रोसेसर गति और 1 जीबी रैम के साथ, पीआई का उपयोग इमेज प्रोसेसिंग और IoT जैसी कई उच्च प्रोफ़ाइल परियोजनाओं के लिए किया जा सकता है।
किसी भी उच्च प्रोफ़ाइल परियोजना को करने के लिए, पीआई के बुनियादी कार्यों को समझने की आवश्यकता है। हम इन ट्यूटोरियल में रास्पबेरी पाई की सभी बुनियादी कार्यात्मकताओं को शामिल करेंगे । प्रत्येक ट्यूटोरियल में हम पीआई के कार्यों में से एक पर चर्चा करेंगे। इस रास्पबेरी पाई ट्यूटोरियल श्रृंखला के अंत तक, आप रास्पबेरी पाई सीख सकते हैं और अपने आप से अच्छी परियोजनाएं बना पाएंगे । नीचे ट्यूटोरियल के माध्यम से जाओ:
- रास्पबेरी पाई के साथ शुरुआत करना
- रास्पबेरी पाई विन्यास
- एलईडी ब्लिंक
- बटन इंटरफेसिंग
- रास्पबेरी पाई PWM पीढ़ी
- रास्पबेरी पाई के साथ एलसीडी इंटरफैसिंग
- डीसी मोटर को नियंत्रित करना
- स्टेपर मोटर नियंत्रण
- शिफ्ट रजिस्टर में बाधा डालना
- रास्पबेरी पाई एडीसी ट्यूटोरियल
- सर्वो मोटर नियंत्रण
- कैपेसिटिव टच पैड
इस ट्यूटोरियल में, हम रास्पबेरी पाई 7 सेगमेंट डिस्प्ले इंटरफेसिंग करने जा रहे हैं । सात सेगमेंट डिस्प्ले एक डिस्प्ले यूनिट के लिए सबसे सस्ते हैं। एक साथ ढेर किए गए इन खंडों के एक जोड़े का उपयोग तापमान, काउंटर मूल्य आदि को प्रदर्शित करने के लिए किया जा सकता है। हम 7 खंड प्रदर्शन इकाई को पीआई के GPIO से कनेक्ट करेंगे और उन्हें तदनुसार अंक प्रदर्शित करने के लिए नियंत्रित करेंगे। उसके बाद हम PYTHON में सात सेगमेंट डिस्प्ले के लिए 0-9 तक की गणना के लिए एक प्रोग्राम लिखेंगे और खुद को शून्य पर रीसेट करेंगे।
सात खंड प्रदर्शन:
7 सेगमेंट डिस्प्ले के विभिन्न प्रकार और आकार हैं। हमने यहां विस्तार से काम करने वाले सेवन सेगमेंट को कवर किया है। मूल रूप से 7 सेगमेंट के दो प्रकार होते हैं, कॉमन एनोड टाइप (कॉमन पॉजिटिव या कॉमन वीसीसी) और कॉमन कैथोड टाइप (कॉमन नेगेटिव या कॉमन ग्राउंड)।
सामान्य एनोड (CA): इसमें सभी 8 एल ई डी के सभी नेगेटिव टर्मिनल (कैथोड) एक साथ जुड़े हुए हैं (नीचे चित्र देखें), जिसका नाम COM है। और सभी सकारात्मक टर्मिनलों को अकेला छोड़ दिया जाता है।
सामान्य कैथोड (CC): इसमें सभी 8 एल ई डी के सभी सकारात्मक टर्मिनलों (एनोड्स) को एक साथ जोड़ा जाता है, जिसका नाम COM है। और सभी नकारात्मक थर्मल अकेले छोड़ दिए जाते हैं।
ये CC और CA सात सेगमेंट डिस्प्ले कई कोशिकाओं को एक साथ मल्टीप्लेक्स करते हुए बहुत काम आते हैं। हमारे ट्यूटोरियल में हम CC या कॉमन कैथोड सेवन सेगमेंट डिस्प्ले का उपयोग करेंगे ।
हमने पहले से ही 8051 के साथ Arduino के साथ और AVR के साथ 7 सेगमेंट को इंटरफेज किया है। हमने अपने कई प्रोजेक्ट्स में 7 सेगमेंट डिस्प्ले का भी इस्तेमाल किया है।
हम आगे जाने से पहले रास्पबेरी पाई GPIO के बारे में थोड़ी चर्चा करेंगे, रहे हैं रास्पबेरी Pi 2 में 40 GPIO उत्पादन पिंस । लेकिन 40 में से, केवल 26 GPIO पिन (GPIO2 से GPIO27) को प्रोग्राम किया जा सकता है, नीचे दिया गया आंकड़ा देखें। इनमें से कुछ पिन कुछ विशेष कार्य करते हैं। विशेष GPIO को अलग रखने के साथ, हमारे पास 17 GPIO शेष हैं।
GPIO का (पिन 1 या 17) + 3.3V सिग्नल 7 सेगमेंट डिस्प्ले को चलाने के लिए पर्याप्त है । वर्तमान सीमा प्रदान करने के लिए, हम प्रत्येक खंड के लिए 1KΩ रोकनेवाला का उपयोग करेंगे जैसा कि सर्किट आरेख में दिखाया गया है।
GPIO पिन और उनके वर्तमान आउटपुट के बारे में अधिक जानने के लिए, रास्पबेरी पाई के साथ एलईडी ब्लिंकिंग करें
आवश्यक घटक:
यहां हम रास्पबेरी जेसी ओएस के साथ रास्पबेरी पाई 2 मॉडल बी का उपयोग कर रहे हैं । सभी मूल हार्डवेयर और सॉफ़्टवेयर आवश्यकताओं पर पहले से चर्चा की जाती है, आप इसे रास्पबेरी पाई परिचय में देख सकते हैं, इसके अलावा, हमें इसकी आवश्यकता है:
- कनेक्टिंग पिन
- आम कैथोड 7 खंड प्रदर्शन (LT543)
- 1 वर्ग मीटर (8 टुकड़े)
- ब्रेड बोर्ड
सर्किट और कार्य विवरण:
कनेक्शन, जो रास्पबेरी पाई के लिए 7 खंड प्रदर्शित करने के लिए किए जाते हैं, नीचे दिए गए हैं। हमने यहां आम कैथोड 7 सेगमेंट का उपयोग किया है:
PIN1 या e ------------------ GPIO21
PIN2 या d ------------------ GPIO20
पिन 4 या c ------------------ GPIO16
PIN5 या h या DP ---------- GPIO 12 // अनिवार्य नहीं है क्योंकि हम दशमलव बिंदु का उपयोग नहीं कर रहे हैं
PIN6 या b ------------------ GPIO6
पिन 7 या a ------------------ GPIO13
PIN9 या f ------------------ GPIO19
पिन 10 या जी ---------------- GPIO26
PIN3 या PIN8 ------------- ग्राउंड से जुड़ा है
तो हम एक 8bit पोर्ट के रूप में PI के 8 GPIO पिन का उपयोग करेंगे। यहाँ GPIO13 को LSB (Least Significant Bit) और GPIO 12 को MSB (सबसे महत्वपूर्ण Bit) कहा जा रहा है।
अब, यदि हम संख्या "1" प्रदर्शित करना चाहते हैं, तो हमें B और C को सेगमेंट करने की आवश्यकता है । सेगमेंट B और C को पावर करने के लिए, हमें GPIO6 और GPIO16 को पावर करना होगा। तो 'पोर्ट' फ़ंक्शन के लिए बाइट 0b00000110 होगा और 'पोर्ट' का हेक्स मूल्य 0,006 होगा। दोनों पिनों के साथ हमें डिस्प्ले पर "1" मिलता है।
हमने प्रत्येक अंकों को प्रदर्शित करने के लिए मान लिखे हैं और उन मानों को स्ट्रिंग में वर्णों के रूप में संग्रहीत किया है जिन्हें 'DISPLAY' नाम दिया गया है (नीचे दिए गए कोड अनुभाग की जाँच करें)। फिर हमने फंक्शन 'पोर्ट' का उपयोग करके डिस्प्ले पर संबंधित अंकों को दिखाने के लिए उन मानों को एक-एक करके बुलाया है।
प्रोग्रामिंग स्पष्टीकरण:
एक बार जब सब कुछ सर्किट आरेख के अनुसार जुड़ा हुआ है, तो हम PYHTON में प्रोग्राम लिखने के लिए PI को चालू कर सकते हैं ।
हम कुछ आदेशों के बारे में बात करेंगे जिनका हम PYHTON कार्यक्रम में उपयोग करने जा रहे हैं, हम लाइब्रेरी से GPIO फ़ाइल आयात करने जा रहे हैं, नीचे फ़ंक्शन हमें PI के GPIO पिन को प्रोग्राम करने में सक्षम बनाता है। हम "GPIO" का नाम भी "IO" कर रहे हैं, इसलिए जब भी हम GPIO पिन को संदर्भित करना चाहते हैं, तो हम 'IO' शब्द का उपयोग करेंगे।
IO के रूप में RPi.GPIO आयात करें
कभी-कभी, जब GPIO पिन, जिसे हम उपयोग करने की कोशिश कर रहे हैं, हो सकता है कि वह कुछ अन्य कार्य कर रहा हो। उस स्थिति में, हम कार्यक्रम को निष्पादित करते समय चेतावनी प्राप्त करेंगे। नीचे कमांड पीआई को चेतावनी को अनदेखा करने और कार्यक्रम के साथ आगे बढ़ने के लिए कहता है।
IO.setwarnings (गलत)
हम पीआई के GPIO पिन का उल्लेख कर सकते हैं, या तो बोर्ड पर पिन नंबर या उनके फ़ंक्शन नंबर के द्वारा। बोर्ड पर 'PIN 29' की तरह 'GPIO5' है। इसलिए हम यहां बताते हैं कि या तो हम यहां '29' या '5' द्वारा पिन का प्रतिनिधित्व करने जा रहे हैं।
IO.setmode (IO.BCM)
हम एलसीडी के डेटा और कंट्रोल पिन के लिए 8 जीपीओ पिन को आउटपुट पिन के रूप में सेट कर रहे हैं।
IO.setup (13, IO.OUT) IO.setup (6, IO.OUT) IO.setup (16, IO.OUT) IO.setup (20, IO.OUT) IO.setup (21, IO.OUT) IO.setup (19, IO.OUT) IO.setup (26, IO.OUT) IO.setup (12, IO.OUT)
यदि ब्रेसिज़ में स्थिति सही है, तो लूप के अंदर के बयानों को एक बार निष्पादित किया जाएगा। तो अगर 8 बिट 'पिन' का बिट 0 सही है, तो पिन 13 हाई होगा, अन्यथा पिन 13 कम होगा। बिट0 से बिट 7 के लिए हमारे पास आठ 'यदि और' स्थितियां हैं, ताकि संबंधित सेगमेंट को प्रदर्शित करने के लिए 7 सेगमेंट डिस्प्ले के अंदर उपयुक्त एलईडी को हाई या लो बनाया जा सके।
अगर (पिन & 0x01 == 0x01): IO.output (13,1) और: IO.output (13,0)
यह कमांड 10 बार लूप को निष्पादित करता है, x को 0 से 9 तक बढ़ाया जा रहा है।
एक्स के लिए रेंज में (10):
नीचे कमांड का उपयोग हमेशा के लिए लूप के रूप में किया जाता है, इस कमांड के साथ इस लूप के अंदर के स्टेटमेंट को लगातार निष्पादित किया जाएगा।
जबकि 1:
अन्य सभी कार्यों और आदेशों को 'टिप्पणी' की मदद से 'कोड' अनुभाग के नीचे समझाया गया है।
कार्यक्रम लिखने और इसे निष्पादित करने के बाद, रास्पबेरी पाई 7 सेगमेंट डिस्प्ले पर अंक दिखाने के लिए इसी GPIO को ट्रिगर करती है । कार्यक्रम को लगातार 0-9 से प्रदर्शित करने के लिए लिखा जाता है।