- परियोजना का प्रवाह:
- प्रोजेक्ट आवश्यकताएँ
- सर्किट आरेख:
- रास्पबेरी पाई ऑसिलोस्कोप के लिए निर्भरता स्थापित करें:
- रास्पबेरी पाई ऑस्किलोस्कोप के लिए पायथन कोड:
- कार्रवाई में रास्पबेरी पाई ऑसिलोस्कोप:
हाय दोस्तों, आज की पोस्ट में आपका स्वागत है। एक निर्माता होने के बारे में सबसे आकर्षक बात यह है कि कैसे अस्थायी उपकरण विकसित करना है, आप किसी भी परियोजना पर काम करना कभी नहीं अटकेंगे जब आपके पास उस तरह की बहुमुखी प्रतिभा होगी। इसलिए आज, मैं इलेक्ट्रिकल / इलेक्ट्रॉनिक्स इंजीनियरिंग में सबसे महत्वपूर्ण उपकरणों में से एक रास्पबेरी पाई आधारित मेकशिफ्ट संस्करण बनाने का तरीका साझा करूंगा; आस्टसीलस्कप ।
आस्टसीलस्कप एक इलेक्ट्रॉनिक परीक्षण उपकरण है जो अलग-अलग सिग्नल वोल्टेज के दृश्य और अवलोकन की अनुमति देता है, आमतौर पर समय के खिलाफ साजिश रची गई एक या अधिक संकेतों के साथ दो आयामी साजिश के रूप में। आज की परियोजना रास्पबेरी पाई और डिजिटल कनवर्टर मॉड्यूल के एक एनालॉग का उपयोग करके आस्टसीलस्कप की सिग्नल विज़ुअलाइज़ेशन क्षमताओं को दोहराने की कोशिश करेगी।
परियोजना का प्रवाह:
रास्पबेरी पाई का उपयोग करके आस्टसीलस्कप के सिग्नल विज़ुअलाइज़ेशन को दोहराते हुए निम्नलिखित चरणों की आवश्यकता होगी;
1. इनपुट सिग्नल के एनालॉग रूपांतरण के लिए डिजिटल प्रदर्शन करें
2. प्रतिनिधित्व के लिए परिणामी डेटा तैयार करें
3. डेटा को लाइव टाइम ग्राफ पर प्लॉट करें
इस परियोजना के लिए एक सरलीकृत ब्लॉक आरेख नीचे दिए गए आरेख की तरह दिखेगा।
प्रोजेक्ट आवश्यकताएँ
इस परियोजना की आवश्यकता को दो में वर्गीकृत किया जा सकता है:
- हार्डवेयर आवश्यकताएँ
- सॉफ़्टवेयर आवश्यकताएं
हार्डवेयर आवश्यकताएँ
इस परियोजना को बनाने के लिए, निम्नलिखित घटकों / भाग की आवश्यकता होती है;
- रास्पबेरी पाई 2 (या कोई अन्य मॉडल)
- 8 या 16 जीबी एसडी कार्ड
- LAN / ईथरनेट केबल
- बिजली की आपूर्ति या यूएसबी केबल
- ADS1115 ADC
- LDR (वैकल्पिक परीक्षण के लिए इसका मतलब है)
- 10k या 1k रोकनेवाला
- जम्पर के तार
- ब्रेड बोर्ड
- पीआई के डेस्कटॉप को देखने का कोई अन्य तरीका मॉनिटर करें (VNC समावेशी)
सॉफ़्टवेयर आवश्यकताएं
इस परियोजना के लिए सॉफ्टवेयर की आवश्यकताएं मूल रूप से अजगर मॉड्यूल ( matplotlib और drawnow ) हैं जिनका उपयोग डेटा विज़ुअलाइज़ेशन और ADS1115 ADC चिप के साथ इंटरफेस करने के लिए Adafruit मॉड्यूल के लिए किया जाएगा। जैसा कि हम आगे बढ़ते हैं, मैं दिखाऊंगा कि रास्पबेरी पाई पर इन मॉड्यूल को कैसे स्थापित किया जाए।
जबकि यह ट्यूटोरियल रास्पबेरी पाई ओएस के बावजूद काम करेगा, मैं रास्पबेरी पाई खिंचाव ओएस का उपयोग करूंगा और मैं मान लूंगा कि आप रास्पबेरी खिंचाव ओएस के साथ रास्पबेरी पाई स्थापित करने से परिचित हैं, और आप जानते हैं कि रास्पबेरी में एसएसएच कैसे करें pty जैसे टर्मिनल सॉफ्टवेयर का उपयोग करके पाई। यदि आपके पास इसमें से कोई भी समस्या है, तो इस वेबसाइट पर बहुत सारे रास्पबेरी पाई ट्यूटोरियल हैं जो मदद कर सकते हैं।
जगह में सभी हार्डवेयर घटकों के साथ, आइए योजनाएं बनाएं और घटकों को एक साथ कनेक्ट करें।
सर्किट आरेख:
एनालॉग इनपुट सिग्नल को डिजिटल सिग्नल में परिवर्तित करने के लिए जिसे रास्पबेरी पाई के साथ कल्पना की जा सकती है, हम ADS1115SC चिप का उपयोग करेंगे । यह चिप महत्वपूर्ण हो जाती है क्योंकि Arduino और अधिकांश माइक्रो-कंट्रोलर्स के विपरीत, रास्पबेरी पाई में डिजिटल कनवर्टर (ADC) का ऑन-बोर्ड एनालॉग नहीं है। जबकि हम किसी भी रास्पबेरी पाई संगत एडीसी चिप का उपयोग कर सकते थे, मैं इस चिप को इसके उच्च रिज़ॉल्यूशन (16 बिट्स) और इसकी अच्छी तरह से प्रलेखित डेटशीट के कारण पसंद करता हूं और एडैफ़र्ट द्वारा निर्देशों का उपयोग करता हूं। इसके बारे में अधिक जानने के लिए आप हमारे रास्पबेरी पाई एडीसी ट्यूटोरियल को भी देख सकते हैं।
एडीसी एक I2C आधारित डिवाइस है और इसे रास्पबेरी पाई से जोड़ा जाना चाहिए जैसा कि नीचे दिए गए योजनाबद्ध रूप में दिखाया गया है।
स्पष्टता के लिए, दो घटकों के बीच पिन कनेक्शन भी नीचे वर्णित है।
ADS1115 और रास्पबेरी पाई कनेक्शन:
वीडीडी - 3.3v
GND - GND
एसडीए - एसडीए
एससीएल - एससीएल
सभी किए गए कनेक्शन के साथ, अपने पाई को शक्ति दें और नीचे बताई गई निर्भरता को स्थापित करने के लिए आगे बढ़ें।
रास्पबेरी पाई ऑसिलोस्कोप के लिए निर्भरता स्थापित करें:
इससे पहले कि हम एडीसी से डेटा खींचने और लाइव ग्राफ पर प्लॉट करने के लिए अजगर स्क्रिप्ट लिखना शुरू करें, हमें रास्पबेरी पाई के I2C संचार इंटरफेस को सक्षम करने और सॉफ़्टवेयर आवश्यकताओं को स्थापित करने की आवश्यकता है जो पहले उल्लेख किए गए थे। यह नीचे चरणों में किया जाएगा ताकि इसका पालन करना आसान हो:
चरण 1: रास्पबेरी पाई I2C इंटरफ़ेस सक्षम करें
टर्मिनल से I2C को सक्षम करने के लिए, भागो;
सुडो रससि-विन्यास
जब कॉन्फ़िगरेशन पैनल खुले, इंटरफ़ेस विकल्प चुनें, I2C चुनें और सक्षम करें पर क्लिक करें।
चरण 2: रास्पबेरी पाई को अपडेट करें
किसी भी परियोजना को शुरू करने से पहले मैं जो पहली चीज करता हूं वह पाई को अपडेट करना है। इसके माध्यम से, मुझे यकीन है कि OS पर हर चीज़ अद्यतित है और मैं किसी भी नवीनतम सॉफ़्टवेयर के साथ संगतता समस्या का अनुभव नहीं करूँगा, जिसे मैं Pi पर स्थापित करने के लिए चुनता हूँ। ऐसा करने के लिए, नीचे दो कमांड चलाएं:
sudo apt-get update sudo apt-get उन्नयन
चरण 3: ADC के लिए Adafruit ADS1115 पुस्तकालय स्थापित करें
किए गए अद्यतन के साथ, हम अब ADS115 चिप के लिए Adafruit python मॉड्यूल से शुरू होने वाली निर्भरता को स्थापित करने के लिए तैयार हैं। सुनिश्चित करें कि आप चलकर रास्पबेरी पाई होम डायरेक्टरी में हैं;
सीडी ~
फिर रनिंग द्वारा बिल्ड-एसेंशियल इंस्टॉल करें;
sudo apt-get install बिल्ड-एसेंशियल-पायथन-देव पायथन-स्मबस गिट
अगला, चलकर लाइब्रेरी के लिए Adafruit git फ़ोल्डर को क्लोन करें;
git clone https://github.com/adafruit/Adafruit_Python_ADS1x15.git
क्लोन फ़ाइल की निर्देशिका में बदलें और सेटअप फ़ाइल को चलाएं;
cd Adafruit_Python_ADS1x1z sudo python setup.py इंस्टॉल करें
स्थापना के बाद, आपकी स्क्रीन नीचे की छवि की तरह दिखनी चाहिए।
चरण 4: पुस्तकालय और 12C संचार का परीक्षण करें।
इससे पहले कि हम बाकी प्रोजेक्ट के साथ आगे बढ़ें, लाइब्रेरी का परीक्षण करना और ADC को I2C पर रास्पबेरी पाई के साथ संवाद करना सुनिश्चित करना महत्वपूर्ण है। ऐसा करने के लिए हम एक उदाहरण स्क्रिप्ट का उपयोग करेंगे जो पुस्तकालय के साथ आती है।
हालांकि अभी भी Adafruit_Python_ADS1x15 फ़ोल्डर में, निर्देशिका निर्देशिका को रनिंग द्वारा बदल दें;
सीडी उदाहरण
इसके बाद, नमूनाटैस्टहोम उदाहरण चलाएं जो सारणी में एडीसी पर चार चैनलों के मूल्य को प्रदर्शित करता है।
उदाहरण का उपयोग करके चलाएं:
python simpletest.py
यदि I2C मॉड्यूल सक्षम और अच्छा है, तो आपको डेटा को नीचे दी गई छवि में दिखाया गया है।
यदि कोई त्रुटि होती है, तो सुनिश्चित करें कि ADC PI से अच्छी तरह से जुड़ा है और I2C संचार पाई पर सक्षम है।
चरण 5: स्थापित करें Matplotlib
डेटा की कल्पना करने के लिए हमें matplotlib मॉड्यूल को स्थापित करने की आवश्यकता है जो कि अजगर में सभी प्रकार के ग्राफ़ को प्लॉट करने के लिए उपयोग किया जाता है। इसे चलाकर किया जा सकता है;
sudo apt-get Install python-matplotlib
आपको नीचे दी गई छवि की तरह एक परिणाम देखना चाहिए।
Step6: Drawnow अजगर मॉड्यूल स्थापित करें
अंत में, हमें ड्रॉअर अजगर मॉड्यूल स्थापित करने की आवश्यकता है । यह मॉड्यूल हमें डेटा प्लॉट में लाइव अपडेट प्रदान करने में मदद करता है।
हम अजगर पैकेज इंस्टॉलर के माध्यम से ड्रॉवन स्थापित करेंगे; पाइप , इसलिए हमें यह सुनिश्चित करने की आवश्यकता है कि यह स्थापित है। इसे चलाकर किया जा सकता है;
sudo apt-get install अजगर-पाइप
फिर हम चलकर ड्रॉवेयर पैकेज को स्थापित करने के लिए पाइप का उपयोग कर सकते हैं:
sudo pip इंस्टॉल ड्रॉवन
आपको इसे चलाने के बाद नीचे दी गई छवि जैसा परिणाम मिलना चाहिए।
सभी निर्भरताएं स्थापित होने के साथ, अब हम कोड लिखने के लिए तैयार हैं।
रास्पबेरी पाई ऑस्किलोस्कोप के लिए पायथन कोड:
इस Pi Oscilloscope के लिए अजगर कोड काफी सरल है, खासकर यदि आप अजगर matplototib मॉड्यूल से परिचित हैं । हमें पूरा कोड दिखाने से पहले, मैं इसे हिस्से में तोड़ने की कोशिश करूंगा और समझाऊंगा कि कोड का प्रत्येक भाग क्या कर रहा है ताकि आपको अधिक सामान करने के लिए कोड को विस्तारित करने के लिए पर्याप्त ज्ञान हो सके।
इस स्तर पर मॉनिटर पर स्विच करना या वीएनसी दर्शक का उपयोग करना महत्वपूर्ण है, कुछ भी जिसके माध्यम से आप अपने रास्पबेरी पाई के डेस्कटॉप को देख सकते हैं, क्योंकि प्लॉट किए जा रहे ग्राफ़ टर्मिनल पर दिखाई नहीं देंगे।
मॉनिटर के साथ इंटरफ़ेस के रूप में एक नई अजगर फ़ाइल खोलें । आप इसे अपनी इच्छानुसार किसी भी नाम से पुकार सकते हैं, लेकिन मैं इसे स्कोर्पोडम कहूँगा।
sudo नैनो स्कोप
बनाई गई फ़ाइल के साथ, पहली चीज जो हम करते हैं वह है उन मॉड्यूल को आयात करना जो हम उपयोग कर रहे हैं;
आयात समय plt के रूप में आयात matplotlib.pyplot drawnow आयात * से आयात Adafruit_ADS1x15
अगला, हम ADS1x15 लाइब्रेरी का एक उदाहरण बनाते हैं जो ADS1115 ADC को निर्दिष्ट करता है
adc = Adafruit_ADS1x15.ADS1115 ()
अगला, हम एडीसी का लाभ निर्धारित करते हैं। लाभ की विभिन्न श्रेणियां हैं और आपको उस वोल्टेज के आधार पर चुना जाना चाहिए जो आप एडीसी के इनपुट पर उम्मीद कर रहे हैं। इस ट्यूटोरियल के लिए, हम 0 - 4.09v का अनुमान लगा रहे हैं, इसलिए हम 1. के लाभ का उपयोग करेंगे। लाभ की अधिक जानकारी के लिए आप ADS1015 / ADS1115 डेटशीट की जांच कर सकते हैं।
GAIN = 1
अगला, हमें सरणी चर बनाने की आवश्यकता है जो डेटा को प्लॉट किए जाने के लिए उपयोग किया जाएगा और गणना के रूप में काम करने के लिए एक और एक होगा।
वैल = cnt = 0
इसके बाद, हम प्लॉट को इंटरेक्टिव बनाने के अपने इरादे से अवगत कराते हैं ताकि हमें डेटा को लाइव करने में सक्षम बनाया जा सके ।
plt.ion ()
अगला, हम एडीसी चैनल को निर्दिष्ट करते हुए निरंतर एडीसी रूपांतरण शुरू करते हैं, इस मामले में, चैनल 0 और हम लाभ भी निर्दिष्ट करते हैं।
यह ध्यान दिया जाना चाहिए कि ADS1115 पर सभी चार एडीसी चैनल एक ही समय में पढ़े जा सकते हैं, लेकिन 1 चैनल इस प्रदर्शन के लिए पर्याप्त है।
adstst_adc (0, लाभ = GAIN)
अगला हम एक फ़ंक्शन डिफ मेकग बनाते हैं, ग्राफ की विशेषताओं को बनाने और सेट करने के लिए जो हमारे लाइव प्लॉट को पकड़ेंगे । हम सबसे पहले ylim का उपयोग करते हुए y- अक्ष की सीमा निर्धारित करते हैं, जिसके बाद हम प्लॉट का शीर्षक इनपुट करते हैं, और लेबल नाम से पहले हम उस डेटा को निर्दिष्ट करते हैं जो प्लॉट किया जाएगा और plt.plot () का उपयोग करके इसकी प्लॉट शैली और रंग । हम चैनल को भी बता सकते हैं (जैसा कि चैनल 0 कहा गया था) इसलिए हम प्रत्येक सिग्नल की पहचान कर सकते हैं जब एडीसी के चार चैनलों का उपयोग किया जा रहा है। plt.legend का उपयोग यह निर्दिष्ट करने के लिए किया जाता है कि हम उस संकेत के बारे में जानकारी चाहते हैं (जैसे चैनल 0) चित्र पर प्रदर्शित।
plt.ylim (-5000,5000) plt.title ('Osciloscope') plt.grid (ट्रू) plt.ylabel ('ADC आउटपुट') plt.plot (वैल, 'ro-', लेबल = 'लक्स') plt.legend (स्थान = 'निचला दायाँ')
अगला हम लिखने जबकि पाश जो उसके अनुसार एडीसी से लगातार पढ़ डेटा का उपयोग किया जाएगा और अद्यतन साजिश।
पहली चीज जो हम करते हैं वह एडीसी रूपांतरण मूल्य है
मान = adc.get_last_result ()
अगला हम प्लॉट किए गए डेटा की पुष्टि करने का एक और तरीका देने के लिए टर्मिनल पर मूल्य प्रिंट करते हैं। हम मुद्रण के बाद कुछ सेकंड प्रतीक्षा करते हैं फिर हम डेटा को उस चैनल के लिए डेटा संग्रहीत करने के लिए बनाई गई सूची (वैल) में जोड़ देते हैं।
प्रिंट ('चैनल 0: {0}'। प्रारूप (मान) समय। सो (0.5) val.append (int (मान))
फिर हम प्लॉट को अपडेट करने के लिए ड्रॉवेयर कहते हैं ।
ड्रावन (मेक फ़िग)
यह सुनिश्चित करने के लिए कि नवीनतम डेटा प्लॉट पर उपलब्ध है, हम हर 50 डेटा काउंट के बाद इंडेक्स 0 पर डेटा को हटाते हैं।
cnt = cnt + 1 यदि (cnt> 50): val.pop (0)
बस इतना ही!
पूरा अजगर कोड इस ट्यूटोरियल के अंत में दिया जाता है।
कार्रवाई में रास्पबेरी पाई ऑसिलोस्कोप:
पहले बनाए गए अजगर फ़ाइल में पूर्ण अजगर कोड की कॉपी करें और पेस्ट करें, याद रखें कि हमें प्लॉट देखने के लिए एक मॉनिटर की आवश्यकता होगी इसलिए यह सब VNC या किसी कनेक्टेड मॉनिटर या स्क्रीन के साथ किया जाना चाहिए।
कोड सहेजें और उपयोग करके चलाएं;
सूडो पायथन स्कोप
यदि आपने स्कोप एरोमा के अलावा किसी अन्य नाम का उपयोग किया है, तो इसे मिलान करने के लिए बदलना न भूलें।
कुछ मिनटों के बाद, आपको टर्मिनल पर एडीसी डेटा प्रिंट होते हुए देखना चाहिए। कभी-कभी आपको matplotlib (जैसा कि नीचे दी गई छवि में दिखाया गया है) से एक चेतावनी मिल सकती है, जिसे दबाया जाना चाहिए, लेकिन यह किसी भी तरह से प्रदर्शित किए जा रहे डेटा या प्लॉट को प्रभावित नहीं करता है। हालाँकि चेतावनी को दबाने के लिए, कोड की निम्नलिखित पंक्तियों को हमारे कोड में आयात लाइनों के बाद जोड़ा जा सकता है।
आयात चेतावनियाँ matplotlib.cbook चेतावनियाँ आयात करें। फ़ैल्टरवर्डिंग ("अनदेखा करें", श्रेणी = matplotlib.cbook.mplDeprecation)
यह इस ट्यूटोरियल लोगों के लिए है, पूरी तरह से अपने आस्टसीलस्कप का परीक्षण करने के लिए, आप एडीसी पर एक चैनल के लिए एक पोटेंशियोमीटर की तरह एक एनालॉग डिवाइस को कनेक्ट कर सकते हैं और आपको पोटेंशियोमीटर के प्रत्येक मोड़ के साथ डेटा परिवर्तन देखना चाहिए। या आप आउटपुट का परीक्षण करने के लिए साइन वेव या स्क्वायर वेव का इनपुट कर सकते हैं।
पढ़ने के लिए धन्यवाद, अगर आपके पास कोई सवाल है या आप मुझे जोड़ना चाहेंगे, तो बस मुझे एक टिप्पणी छोड़ दें।
अगली बार, बनाते रहो!