रास्पबेरी पाई एक एआरएम आर्किटेक्चर प्रोसेसर आधारित बोर्ड है जो इलेक्ट्रॉनिक इंजीनियरों और शौकियों के लिए बनाया गया है। PI अब वहां से सबसे भरोसेमंद परियोजना विकास प्लेटफार्मों में से एक है। उच्च प्रोसेसर गति और 1 जीबी रैम के साथ, पीआई का उपयोग इमेज प्रोसेसिंग और IoT जैसी कई उच्च प्रोफ़ाइल परियोजनाओं के लिए किया जा सकता है।
किसी भी उच्च प्रोफ़ाइल परियोजना को करने के लिए, पीआई के बुनियादी कार्यों को समझने की आवश्यकता है। हम इन ट्यूटोरियल में रास्पबेरी पाई की सभी बुनियादी कार्यात्मकताओं को शामिल करेंगे । प्रत्येक ट्यूटोरियल में हम पीआई के कार्यों में से एक पर चर्चा करेंगे। इस रास्पबेरी पाई ट्यूटोरियल श्रृंखला के अंत तक, आप अपने आप से उच्च प्रोफ़ाइल परियोजनाएं करने में सक्षम होंगे। नीचे ट्यूटोरियल के माध्यम से जाओ:
- रास्पबेरी पाई के साथ शुरुआत करना
- रास्पबेरी पाई विन्यास
- एलईडी ब्लिंक
- बटन इंटरफेसिंग
- PWM पीढ़ी
- डीसी मोटर को नियंत्रित करना
- स्टेपर मोटर नियंत्रण
- शिफ्ट रजिस्टर में बाधा डालना
- रास्पबेरी पाई एडीसी ट्यूटोरियल
- सर्वो मोटर नियंत्रण
- कैपेसिटिव टच पैड
इस ट्यूटोरियल में, हम रास्पबेरी पाई का उपयोग करके एक 16x2 एलसीडी डिस्प्ले को नियंत्रित करेंगे । हम एलसीडी को GPIO (सामान्य प्रयोजन इनपुट आउटपुट) पीआई के पिन से कनेक्ट करेंगे ताकि उस पर वर्ण प्रदर्शित किए जा सकें। हम GPIO के माध्यम से एलसीडी को उचित आदेश भेजने और इसकी स्क्रीन पर आवश्यक पात्रों को प्रदर्शित करने के लिए PYTHON में एक कार्यक्रम लिखेंगे। यह स्क्रीन सेंसर वैल्यू, इंटरप्ट स्टेटस और समय प्रदर्शित करने के लिए काम में आएगी।
बाजार में विभिन्न प्रकार के एलसीडी हैं। ग्राफिक एलसीडी 16x2 एलसीडी से अधिक जटिल है। तो यहां हम 16x2 एलसीडी डिस्प्ले के लिए जा रहे हैं, आप चाहें तो 16x1 एलसीडी का भी उपयोग कर सकते हैं। 16x2 एलसीडी में कुल 32 अक्षर हैं, 16 में 1 सेंट लाइन और दूसरी 16 में 2 एन डी लाइन। JHD162 16x2 एलसीडी मॉड्यूल वर्ण एलसीडी है। हमने पहले से ही 80x , AVR, Arduino आदि के साथ 16x2 LCD को इंटरफेर किया है । आप इस लिंक का अनुसरण करके हमारे सभी 16x2 LCD संबंधित प्रोजेक्ट को पा सकते हैं।
हम आगे जाने से पहले PI GPIO के बारे में थोड़ी चर्चा करेंगे।
रहे हैं रास्पबेरी Pi 2 में 40 GPIO उत्पादन पिंस । लेकिन 40 में से केवल 26 GPIO पिन (GPIO2 से GPIO27) को प्रोग्राम किया जा सकता है। इनमें से कुछ पिन कुछ विशेष कार्य करते हैं। विशेष GPIO को अलग रखने के साथ, हमारे पास 17 GPIO शेष हैं।
बोर्ड पर + 5 वी (पिन 2 या 4) और + 3.3 वी (पिन 1 या 17) पावर आउटपुट पिन हैं, ये अन्य मॉड्यूल और सेंसर कनेक्ट करने के लिए हैं। हम + 5V रेल के माध्यम से 16 * 2 एलसीडी बिजली देने जा रहे हैं । हम एलसीडी को + 3.3v का नियंत्रण संकेत भेज सकते हैं लेकिन एलसीडी के काम करने के लिए हमें इसे + 5 वी द्वारा बिजली देने की आवश्यकता है। एलसीडी + 3.3V के साथ काम नहीं करेगा।
GPIO पिन और उनके वर्तमान आउटपुट के बारे में अधिक जानने के लिए, रास्पबेरी पाई के साथ एलईडी ब्लिंकिंग करें
आवश्यक घटक:
यहां हम रास्पबेरी जेसी ओएस के साथ रास्पबेरी पाई 2 मॉडल बी का उपयोग कर रहे हैं । सभी मूल हार्डवेयर और सॉफ़्टवेयर आवश्यकताओं पर पहले से चर्चा की जाती है, आप इसे रास्पबेरी पाई परिचय में देख सकते हैं, इसके अलावा, हमें इसकी आवश्यकता है:
- कनेक्टिंग पिन
- 16 * 2 एलसीडी मॉड्यूल
- 1 वर्ग मीटर (2 टुकड़े)
- 10K पॉट
- 1000F संधारित्र
- ब्रेड बोर्ड
सर्किट और कार्य विवरण:
जैसा कि सर्किट आरेख में दिखाया गया है, हमने पीआई के 10 जीपीआईओ पिन को 16 * 2 एलसीडी के नियंत्रण और डेटा ट्रांसफर पिंस से जोड़कर एलसीडी डिस्प्ले के साथ इंटरसेप्टेड रास्पबेरी पाई है । हमने GPIO पिन 21, 20, 16, 12, 25, 24, 23 और 18 को BYTE के रूप में उपयोग किया है और एलसीडी में डेटा भेजने के लिए 'पोर्ट' फ़ंक्शन बनाया है। यहाँ GPIO 21 LSB (Least Significant Bit) और GPIO18 MSB (सबसे महत्वपूर्ण बिट) है।
16x2 एलसीडी मॉड्यूल में 16 पिन हैं, जिन्हें पांच श्रेणियों, पावर पिंस, कंट्रास्ट पिन, कंट्रोल पिंस, डेटा पिन और बैकलाइट पिन में विभाजित किया जा सकता है। उनके बारे में संक्षिप्त विवरण इस प्रकार है:
वर्ग |
पिन नं। |
पिन नाम |
समारोह |
पावर पिंस |
1 |
वीएसएस |
ग्राउंड पिन, ग्राउंड से जुड़ा |
२ |
VDD या Vcc |
वोल्टेज पिन + 5 वी |
|
कंट्रास्ट पिन |
३ |
V0 या VEE |
कंट्रास्ट सेटिंग, Vcc से जुड़ा हुआ एक वैरिएबल रेसिस्टर है। |
पिंस पर नियंत्रण रखें |
४ |
रुपये |
रजिस्टर का चयन करें पिन, RS = 0 कमांड मोड, RS = 1 डेटा मोड |
५ |
आरडब्ल्यू |
पढ़ें / पिन लिखें, RW = 0 लिखें मोड, आरडब्ल्यू = 1 पढ़ें मोड |
|
६ |
इ |
सक्षम करें, एलसीडी को सक्षम करने के लिए एक उच्च से निम्न पल्स की आवश्यकता होती है |
|
डेटा पिन |
7-14 |
D0-D7 |
डेटा पिन, स्टोर डेटा को एलसीडी या कमांड निर्देशों पर प्रदर्शित किया जाएगा |
बैकलाइट पिंस |
१५ |
एलईडी + या ए |
बैकलाइट + 5 वी को पावर करने के लिए |
१६ |
एलईडी- या के |
बैकलाइट ग्राउंड |
हम अपने पिंस और हेक्स कमांड के साथ काम करने वाले एलसीडी को समझने के लिए बस इस लेख के माध्यम से जाने की दृढ़ता से सलाह देते हैं।
हम एलसीडी पर डेटा भेजने की प्रक्रिया के बारे में संक्षेप में चर्चा करेंगे:
1. ई उच्च सेट (मॉड्यूल को सक्षम करने वाला) और आरएस कम सेट है (एलसीडी हम कमांड दे रहे हैं)
2. स्क्रीन को साफ करने के लिए कमांड के रूप में डेटा पोर्ट के लिए 0x01 का मान देना।
3. ई उच्च सेट (मॉड्यूल को सक्षम करने वाला) और आरएस उच्च सेट है (एलसीडी हम डेटा दे रहे हैं)
4. पात्रों के लिए ASCII कोड को प्रदर्शित करने की आवश्यकता है।
5. ई सेट कम है (एलसीडी को बता रहा है कि हम डेटा भेज रहे हैं)
6. एक बार जब यह ई पिन कम हो जाता है, तो एलसीडी प्राप्त डेटा को संसाधित करता है और संबंधित परिणाम दिखाता है। इसलिए यह पिन डेटा भेजने से पहले उच्च पर सेट किया जाता है और डेटा भेजने के बाद जमीन पर खींच लिया जाता है।
जैसा कि हमने कहा कि हम पात्रों को एक के बाद एक भेजने जा रहे हैं। वर्ण ASCII कोड द्वारा एलसीडी को दिया जाता है (सूचना आदान लिए अमेरिकन स्टैंडर्ड कोड)। ASCII कोड की तालिका नीचे दिखाई गई है। उदाहरण के लिए, "@" वर्ण दिखाने के लिए, हमें हेक्साडेसिमल कोड "40" भेजने की आवश्यकता है। यदि हम एलसीडी को 0x73 मान देते हैं तो यह "s" प्रदर्शित करेगा। इस तरह हम स्ट्रिंग को " CIRCUITDIGEST " प्रदर्शित करने के लिए एलसीडी को उचित कोड भेजने जा रहे हैं ।
प्रोग्रामिंग स्पष्टीकरण:
एक बार जब सब कुछ सर्किट आरेख के अनुसार जुड़ा हुआ है, तो हम 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)
हम एलसीडी के डेटा और कंट्रोल पिन के लिए 10 जीपीओ पिन को आउटपुट पिन के रूप में सेट कर रहे हैं।
IO.setup (6, IO.OUT) IO.setup (22, IO.OUT) IO.setup (21, IO.OUT) IO.setup (20, IO.OUT) IO.setup (16, IO.OUT) IO.setup (12, IO.OUT) IO.setup (25, IO.OUT) IO.setup (24, IO.OUT) IO.setup (23, IO.OUT) IO.setup (18, IO.OUT)
जबकि 1: कमांड का उपयोग हमेशा के लिए लूप के रूप में किया जाता है, इस कमांड के साथ इस लूप के अंदर स्टेटमेंट्स को लगातार निष्पादित किया जाएगा।
अन्य सभी कार्यों और आदेशों को 'टिप्पणी' की मदद से 'कोड' अनुभाग के नीचे समझाया गया है।
प्रोग्राम लिखने और उसे निष्पादित करने के बाद, रास्पबेरी पाई एक-एक करके एलसीडी पर पात्रों को भेजती है और एलसीडी स्क्रीन पर पात्रों को प्रदर्शित करता है।