रास्पबेरी पाई एक एआरएम आर्किटेक्चर प्रोसेसर आधारित बोर्ड है जो इलेक्ट्रॉनिक इंजीनियरों और शौकियों के लिए बनाया गया है। PI अब वहां से सबसे भरोसेमंद परियोजना विकास प्लेटफार्मों में से एक है। उच्च प्रोसेसर गति और 1 जीबी रैम के साथ, पीआई का उपयोग इमेज प्रोसेसिंग और इंटरनेट ऑफ थिंग्स जैसी कई उच्च प्रोफ़ाइल परियोजनाओं के लिए किया जा सकता है।
किसी भी उच्च प्रोफ़ाइल परियोजना को करने के लिए, पीआई के बुनियादी कार्यों को समझने की आवश्यकता है। हम इन ट्यूटोरियल में रास्पबेरी पाई की सभी बुनियादी कार्यात्मकताओं को शामिल करेंगे । प्रत्येक ट्यूटोरियल में हम पीआई के कार्यों में से एक पर चर्चा करेंगे। इस रास्पबेरी पाई ट्यूटोरियल श्रृंखला के अंत तक, आप अपने आप से उच्च प्रोफ़ाइल परियोजनाएं करने में सक्षम होंगे। नीचे ट्यूटोरियल के माध्यम से जाओ:
- रास्पबेरी पाई के साथ शुरुआत करना
- रास्पबेरी पाई विन्यास
- एलईडी ब्लिंक
- रास्पबेरी पाई बटन इंटरफेसिंग
- रास्पबेरी पाई PWM पीढ़ी
- रास्पबेरी पाई का उपयोग करके डीसी मोटर को नियंत्रित करना
- रास्पबेरी पाई के साथ स्टेपर मोटर नियंत्रण
- रास्पबेरी पाई के साथ शिफ्ट रजिस्टर में बाधा डालना
इस ट्यूटोरियल में, हम रास्पबेरी पाई के लिए एक एडीसी (एनालॉग से डिजिटल रूपांतरण) चिप इंटरफेस करेंगे । हम एनालॉग के सभी मापदंडों को जानते हैं, इसका मतलब है कि समय के साथ लगातार बदलता रहता है। कमरे के एक उदाहरण के तापमान के लिए कहें, कमरे का तापमान लगातार समय के साथ बदलता रहता है। यह तापमान दशमलव संख्या के साथ प्रदान किया जाता है। लेकिन डिजिटल दुनिया में, कोई दशमलव संख्या नहीं हैं, इसलिए हमें एनालॉग मूल्य को डिजिटल मूल्य में बदलने की आवश्यकता है । यह रूपांतरण प्रक्रिया एडीसी तकनीक द्वारा की जाती है । ADC के बारे में अधिक जानें यहां: ADC0804 का परिचय
ADC0804 और रास्पबेरी पाई:
सामान्य नियंत्रकों में एडीसी चैनल हैं, लेकिन पीआई के लिए आंतरिक रूप से प्रदान किए गए कोई एडीसी चैनल नहीं हैं। इसलिए यदि हम किसी एनालॉग सेंसर को इंटरफ़ेस करना चाहते हैं तो हमें ADC रूपांतरण इकाई की आवश्यकता है। तो उस प्रयोजन के लिए हम रास्पबेरी पाई के साथ ADC0804 इंटरफ़ेस करने जा रहे हैं ।
ADC0804 एक चिप है जिसे एनालॉग सिग्नल को 8 बिट डिजिटल डेटा में बदलने के लिए डिज़ाइन किया गया है। यह चिप एडीसी की लोकप्रिय श्रृंखला में से एक है। यह एक 8bit रूपांतरण इकाई है, इसलिए हमारे पास मान या 0 से 255 मान हैं। अधिकतम 5V के मापने वाले वोल्टेज के साथ, हमारे पास प्रत्येक 19.5mV के लिए एक बदलाव होगा। नीचे ADC0804 का पिनआउट दिया गया है:
अब यहाँ एक और महत्वपूर्ण बात है, ADC0804 5V पर काम करता है और इसलिए यह 5V लॉजिक सिग्नल में आउटपुट प्रदान करता है। 8 पिन आउटपुट (8 बिट्स का प्रतिनिधित्व) में, हर पिन तर्क '1' का प्रतिनिधित्व करने के लिए + 5V आउटपुट प्रदान करता है। तो समस्या यह है कि PI लॉजिक + 3.3v का है, इसलिए आप PI के + 3.3V GPIO पिन में 5V तर्क नहीं दे सकते। यदि आप PI के किसी भी GPIO पिन को + 5V देते हैं, तो बोर्ड क्षतिग्रस्त हो जाता है।
इसलिए + 5V से लॉजिक स्तर को नीचे ले जाने के लिए, हम वोल्टेज विभक्त सर्किट का उपयोग करेंगे। हमने पहले चर्चा के लिए वोल्ट डिवाइडर सर्किट पर चर्चा की है। हम क्या करेंगे, हम 2 * 2.5V लॉजिक में + 5V तर्क को विभाजित करने के लिए दो प्रतिरोधों का उपयोग करते हैं। इसलिए विभाजन के बाद हम PI को + 2.5v तर्क देंगे। इसलिए, जब भी ADC0804 द्वारा तर्क '1' प्रस्तुत किया जाता है, हम + 5V के बजाय PI GPIO पिन पर + 2.5V देखेंगे।
रास्पबेरी पाई के GPIO पिन के बारे में अधिक जानें और हमारे पिछले ट्यूटोरियल से गुजरें।
आवश्यक घटक:
यहां हम रास्पबेरी जेसी ओएस के साथ रास्पबेरी पाई 2 मॉडल बी का उपयोग कर रहे हैं । सभी मूल हार्डवेयर और सॉफ़्टवेयर आवश्यकताओं पर पहले से चर्चा की जाती है, आप इसे रास्पबेरी पाई परिचय में देख सकते हैं, इसके अलावा, हमें इसकी आवश्यकता है:
- कनेक्टिंग पिन
- 220 या 1 वर्गमीटर (17 टुकड़े)
- 10K पॉट
- 0.1F संधारित्र (2 टुकड़े)
- ADC0804 आईसी
- ब्रेड बोर्ड
सर्किट स्पष्टीकरण:
यह + 5 वी के आपूर्ति वोल्टेज पर काम करता है और 0-5 वी रेंज में एक चर वोल्टेज रेंज को माप सकता है।
रास्पबेरी पीआई के लिए ADC0804 इंटरफ़ेस के लिए कनेक्शन, ऊपर सर्किट आरेख में दिखाए जाते हैं।
एडीसी में हमेशा बहुत शोर होता है, यह शोर प्रदर्शन को बहुत प्रभावित कर सकता है, इसलिए हम शोर निस्पंदन के लिए 0.1uF संधारित्र का उपयोग करते हैं । इसके बिना आउटपुट में बहुत उतार-चढ़ाव होंगे।
चिप RC (रेसिस्टर-कैपेसिटर) ऑसिलेटर घड़ी पर काम करती है। जैसा कि सर्किट आरेख में दिखाया गया है, C2 और R20 एक घड़ी बनाते हैं । यहां याद रखने वाली महत्वपूर्ण बात यह है कि संधारित्र C2 को एडीसी रूपांतरण की उच्च दर के लिए कम मूल्य में बदला जा सकता है। हालांकि उच्च गति के साथ सटीकता में कमी होगी। इसलिए यदि एप्लिकेशन को उच्च सटीकता की आवश्यकता होती है, तो संधारित्र को उच्च मूल्य के साथ चुनें और उच्च गति के लिए कम मान वाले संधारित्र का चयन करें।
प्रोग्रामिंग स्पष्टीकरण:
एक बार जब सब कुछ सर्किट आरेख के अनुसार जुड़ा हुआ है, तो हम 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 पिन सेट कर रहे हैं। हम इन पिनों द्वारा 8 बिट ADC डेटा का पता लगाएंगे।
IO.setup (4, IO.IN) IO.setup (17, IO.IN) IO.setup (27, IO.IN) IO.setup (22, IO.IN) IO.setup (5, IO.IN) IO.setup (6, IO.IN) IO.setup (13, IO.IN) IO.setup (19, IO.IN)
यदि ब्रेसिज़ में स्थिति सही है, तो लूप के अंदर के बयानों को एक बार निष्पादित किया जाएगा। इसलिए यदि GPIO पिन 19 उच्च जाता है, तो IF लूप के अंदर के स्टेटमेंट्स को एक बार निष्पादित किया जाएगा। यदि GPIO पिन 19 उच्च नहीं जाता है, तो IF लूप के अंदर स्टेटमेंट निष्पादित नहीं किए जाएंगे।
अगर (IO.input (19) == सच):
नीचे कमांड का उपयोग हमेशा के लिए लूप के रूप में किया जाता है, इस कमांड के साथ इस लूप के अंदर के स्टेटमेंट को लगातार निष्पादित किया जाएगा।
जबकि 1:
प्रोग्राम का आगे स्पष्टीकरण नीचे दिए गए कोड सेक्शन में दिया गया है।
काम कर रहे:
कार्यक्रम लिखने और इसे निष्पादित करने के बाद आप '0'ऑन स्क्रीन देखेंगे। '0'means 0 वोल्ट पर इनपुट।
यदि हम चिप से जुड़े 10K पॉट को समायोजित करते हैं, तो हम स्क्रीन पर मूल्यों में बदलाव देखेंगे। स्क्रीन पर मान लगातार स्क्रॉल करते रहते हैं, ये PI द्वारा पढ़े गए डिजिटल मान हैं।
मान लें कि यदि हम बर्तन को मिडपॉइंट पर ले जाते हैं, तो हमारे पास ADC0804 इनपुट पर + 2.5 वी है। तो हम स्क्रीन पर 128 देखते हैं जैसा कि नीचे दिखाया गया है।
+ 5 वी एनालॉग मूल्य के लिए, हमारे पास 255 होंगे।
इसलिए, बर्तन को अलग करके हम ADC0804 इनपुट पर 0 से + 5V तक वोल्टेज बदलते हैं। इसके साथ पीआई ने 0-255 से मान पढ़ा। मान स्क्रीन पर मुद्रित होते हैं।
इसलिए हमने ADC0804 को रास्पबेरी पाई के लिए इंटरफेज किया है ।