अगोदर निर्देश केलेल्या बाबीसंबंधी बोलताना रास्पबेरी पाई 4 बोर्डचे जीपीआयओ पिन, 3आणि त्याचे पूर्ववर्ती देखील एसबीसी बोर्डाला अर्डुइनोसारख्या क्षमतेची क्षमता प्रदान करतात कारण त्यांच्याद्वारे आपण पायथनसारख्या भिन्न भाषांमध्ये कोडद्वारे ऑपरेटिंग सिस्टमद्वारे नियंत्रित केलेले अतिशय मनोरंजक इलेक्ट्रॉनिक प्रकल्प तयार करू शकता.
हे फक्त एका स्वस्त संगणकापेक्षा बोर्ड बनवते. हे आपल्याला एका मोठ्या संख्येने कनेक्ट करण्याची परवानगी देईल इलेक्ट्रॉनिक घटक जे आपण अर्डिनो सह वापरू शकता, परंतु ते पाय पासून देखील नियंत्रित केले जाऊ शकते. या मार्गदर्शकामध्ये मी तुम्हाला या जीपीआयओ पिनंबद्दल शक्य तितकी अधिक माहिती देण्याचा प्रयत्न करेन जेणेकरुन आपण त्यांचा लाभ घेण्यास सुरूवात कराल ...
जीपीआयओ म्हणजे काय?
जीपीआयओ सामान्य हेतू इनपुट / आउटपुट चे संक्षिप्त रुप आहे, म्हणजेच सामान्य हेतू इनपुट / आउटपुट. वेगवेगळ्या इलेक्ट्रॉनिक उत्पादनांमध्ये ते असू शकतात, जसे की चिप्स स्वत: किंवा काही विशिष्ट पीसीबी बोर्ड जसे की या रास्पबेरी पाई. नावानुसार, ते पिन आहेत जे भिन्न कार्ये करण्यासाठी कॉन्फिगर केले जाऊ शकतात, म्हणूनच ते विशिष्ट उद्देशासाठी नसून सामान्य उद्देश आहेत.
हे रनटाइमच्या वेळी वापरकर्ता असू शकेल या GPIO पिन कॉन्फिगर करा जेणेकरून ते त्याला हवे तसे करतात. हे वेगवेगळ्या मार्गांनी केले जाऊ शकते, जसे की कन्सोलमधील काही कोड्स किंवा स्क्रिप्ट्स किंवा पायथन प्रोग्रामसह, आपल्यास आपल्याकडे असलेल्या पर्यायांच्या संख्येमुळे सर्वात सोपा आणि सर्वात पसंत मार्ग आहे.
अशा प्रकारे, रास्पबेरी पाईमध्ये केवळ पोर्ट्सची मालिका नसते आणि इंटरफेस एकाधिक मानक डिव्हाइस कनेक्ट करण्यासाठी, परंतु हे GPIO पिन जोडा जेणेकरून आपण स्वतः तयार केलेले इतर इलेक्ट्रॉनिक डिव्हाइस किंवा मेकर प्रकल्प जोडू शकता. आपण नियंत्रणासाठी अर्दूनो आणि त्याच्या आय / ओ पिनसह त्याच प्रकारे.
Y आरडिनो किंवा रास्पबेरी पाईसाठीच नाही, म्हणून इतर तत्सम एसबीसी बोर्ड आणि एम्बेड केलेली उत्पादने करा.
GPIO कार्ये
आणि दरम्यान तिची वैशिष्ट्ये सर्वात थकबाकी:
- ते करू शकतात कॉन्फिगर केले जा टँटो आउटपुट म्हणून इनपुट म्हणून. त्यांच्यात जसे द्वैत आहे तसे घडते Arduino.
- जीपीआयओ पिनसुद्धा सक्रिय आणि निष्क्रिय केले जाऊ शकते कोडानुसार. म्हणजेच, ते 1 (उच्च व्होल्टेज पातळी) किंवा 0 (कमी व्होल्टेज पातळी) वर सेट केले जाऊ शकतात.
- नक्कीच ते करू शकतात बायनरी डेटा वाचा, एक आणि शून्य म्हणून, म्हणजे व्होल्टेज सिग्नल किंवा त्याची अनुपस्थिती.
- ची आउटपुट मूल्ये वाचणे आणि लिहिणे.
- इनपुट मूल्ये काही बाबतीत कॉन्फिगर केली जाऊ शकतात प्रसंग जेणेकरून ते बोर्ड किंवा सिस्टीमवर काही प्रकारची कृती निर्माण करतात. काही एम्बेड केलेल्या सिस्टम त्यांचा वापर आयआरक्यू म्हणून करतात. दुसरे प्रकरण हे कॉन्फिगर केले आहे की जेव्हा काही सेन्सर्सद्वारे एक किंवा अधिक पिन सक्रिय असतात तेव्हा काही कृती करा ...
- व्होल्टेज आणि तीव्रतेबद्दल, आपल्याला बोर्डसाठी स्वीकार्य जास्तीत जास्त क्षमता माहित असणे आवश्यक आहे, या प्रकरणात रास्पबेरी पाई 4 किंवा 3. आपण नुकसान होऊ नये म्हणून आपण त्यांना पास करू नये.
तसे, जेव्हा जीपीआयओ पिनचा एक गट तयार केला जातो, तसेच रास्पबेरी पाईच्या बाबतीत, तो गट म्हणून ओळखला जातो GPIO पोर्ट.
रास्पबेरी पाईच्या जीपीआयओ पिन
नवीन रास्पबेरी पाय 4 बोर्ड आणि आवृत्ती 3 ते मोठ्या संख्येने जीपीआयओ पिनसह सुसज्ज आहेत. सर्व आवृत्त्या समान प्रमाणात ऑफर करत नाहीत, किंवा त्यांची संख्या तशाच प्रकारे केली जात नाही, म्हणून आपल्याकडे मॉडेल आणि पुनरावृत्तीनुसार आपण कनेक्शन कसे बनवावे हे जाणून घेण्यासाठी आपल्याला सावधगिरी बाळगणे आवश्यक आहे.
परंतु जेपीरिक अधिक सामान्य म्हणजे आपण रास्पबेरी पाई बोर्डच्या बंदरात शोधू शकता. आणि ही पहिली गोष्ट आहे जी मी तुम्हाला स्पष्ट करण्यास सांगू इच्छित आहे, कारण हेच तुम्हाला समजेल पिनचे प्रकार आपण आपल्या प्रकल्पांवर अवलंबून राहू शकता:
- अन्नया पिनचा वापर आपल्या इलेक्ट्रॉनिक प्रकल्पांसाठी वीज लाइन किंवा वायरिंग जोडण्यासाठी केला जातो. ते अर्डिनो बोर्डवर असलेल्या पिनसारखे असतात आणि ते 5 व्ही आणि 3 व्ही 3 (3.3 एमए भार मर्यादित 50 व्ही) चे व्होल्टेजेस प्रदान करतात. याव्यतिरिक्त, आपल्याला ग्राउंड (जीएनडी किंवा ग्राउंड) देखील सापडतील. आपण बॅटरी किंवा अॅडॉप्टर्स सारख्या बाह्य उर्जा स्त्रोतांचा वापर न केल्यास आपल्या सर्किटला उर्जा देण्यासाठी या पिनला मोठी मदत होऊ शकते.
- डीएनसी (कनेक्ट करू नका): ते पिन आहेत जे काही आवृत्त्यांमधील आहेत आणि त्यामध्ये कोणतेही कार्य नाही, परंतु नवीन बोर्डांमध्ये त्यांना आणखी एक उद्देश देण्यात आला आहे. आपल्याला केवळ पाईच्या अधिक आदिम मॉडेल्समध्ये आढळेल. नवीन 3 आणि 4 मध्ये त्यांना मागील गटात समाकलित करण्यात सक्षम असल्याने सामान्यत: जीएनडी म्हणून चिन्हांकित केले जाईल.
- कॉन्फिगर करण्यायोग्य पिन: ते सामान्य जीपीआयओ आहेत आणि ते कोडद्वारे प्रोग्राम केले जाऊ शकतात कारण आपल्याला आवश्यक ते करण्यासाठी मी नंतर स्पष्ट करीन.
- विशेष पिन: ही काही जोडणी आहेत जी यूआरएटीओ, टीएक्सडी आणि आरएक्सडी सीरियल कनेक्शन इत्यादींसारख्या विशेष कनेक्शनसाठी किंवा इंटरफेससाठी आहेत, जसे की ती अरुडिनोसह होते. आपणास एसडीए, एससीएल, एमओएसआय, एमआयएसओ, एससीएलके, सीई 0, सीई 1 इ. सारखे काही सापडतील. ते त्यांच्यामध्ये उभे राहिले:
- पीडबल्यूएम, जो मागील लेखात पाहिल्याप्रमाणे नाडी रुंदीचे नियमन करू शकते. रास्पबेरी पाई 3 आणि 4 वर ते GPIO12, GPIO13, GPIO18 आणि GPIO19 आहेत.
- एसपीआय हा एक संप्रेषण इंटरफेस आहे ज्याबद्दल मी दुसर्या लेखात चर्चा केली. नवीन 40-पिन बोर्डच्या बाबतीत, ते पिन आहेत (आपण पाहू शकता तशा भिन्न संप्रेषण चॅनेलसह):
- एसपीआय 0: मोसी (जीपीआयओ 10), एमआयएसओ (जीपीआयओ 9), एससीएलके (जीपीआयओ 11), सीई 0 (जीपीआयओ 8), सीई 1 (जीपीआयओ 7)
- एसपीआय 1: मोसी (जीपीआयओ 20); एमआयएसओ (जीपीआयओ 19); एससीएलके (जीपीआयओ 21); सीई 0 (जीपीआयओ 18); सीई 1 (जीपीआयओ 17); सीई 2 (जीपीआयओ 16)
- I2C हे आणखी एक कनेक्शन आहे जे मी या ब्लॉगमध्ये स्पष्ट केले आहे. ही बस डेटा सिग्नल (जीपीआयओ 2) आणि घड्याळाची (जीपीआयओ 3) बनलेली आहे. EEPROM डेटा व्यतिरिक्त (GPIO0) आणि EEPROM घड्याळ (GPIO1).
- सीरियल, टीएक्स (जीपीआयओ 14) आणि आरएक्स (जीपीआयओ 15) पिनसह आपण बोर्डवर शोधू शकता यासारखे आणखी एक व्यावहारिक संवाद Arduino UNO.
लक्षात ठेवा की जीपीआयओ हे रास्पबेरी पाई आणि बाह्य जगामधील इंटरफेस आहेत, परंतु त्यांच्याकडे आहे त्याच्या मर्यादाविशेषत: विद्युत बोर्ड खराब करू नये म्हणून आपण ज्या गोष्टी विचारात घेतल्या पाहिजेत ती म्हणजे जीपीआयओ पिन सहसा नसलेले असतात, म्हणजे बफरशिवाय असतात. याचा अर्थ असा की त्यांना संरक्षण नाही, म्हणून निरुपयोगी प्लेट संपू नये म्हणून आपण व्होल्टेज आणि तीव्रतेच्या परिमाणांचे परीक्षण केले पाहिजे ...
आवृत्त्यांमधील GPIO फरक
मी म्हटल्याप्रमाणे, सर्व मॉडेल समान पिन नसतातयेथे काही आकृत्या आहेत जेणेकरुन आपण मॉडेल्समधील फरक पाहू शकाल आणि अशा प्रकारे रास्पबेरी पाई 4 आणि 3 वर लक्ष केंद्रित करण्यास सक्षम व्हा, जे सर्वात नवीन आहे आणि आपल्याकडे कदाचित आपल्या ताब्यात आहे. हे भिन्न आहे (प्रत्येक गटातील सर्व समान पिन सामायिक करतात):
- रॅपबेरी पाई 1 मॉडेल बी रेव्ह 1.0, रेव 26 पेक्षा थोड्या वेगळ्या 2-पिनसह.
- रास्पबेरी पाई 1 मॉडेल ए आणि बी रेव्ह 2.0, दोन्ही मॉडेल 26-पिन आहेत.
- रॅप्सबेरी पाई मॉडेल ए +, बी +, २ बी, B बी, B बी +, झिरो आणि झिरो डब्ल्यू आणि models मॉडेल्स देखील आहेत.त्या सर्वांना 2-पिन जीपीआयओ हेडर आहे.
मी GPIO मध्ये काय प्लग इन करू?
आपण केवळ सक्षम होऊ शकत नाही इलेक्ट्रॉनिक डिव्हाइस कनेक्ट करा कसे ट्रान्झिस्टर, आर्द्रता / तापमान सेन्सर, थर्मास्टर, stepper मोटर्स, LEDs, इ. आपण रास्पबेरी पाईसाठी विशेषतः तयार केलेले घटक किंवा मॉड्यूल्स देखील जोडू शकता आणि बेसमध्ये समाविष्ट असलेल्या पलीकडे बोर्डची क्षमता वाढवते.
मी प्रसिद्धांचा उल्लेख करीत आहे हॅट्स किंवा टोपी आणि आपण बाजारात शोधू शकता अशा प्लेट्स. ड्रायव्हर्ससह मोटर्स नियंत्रित करण्यासाठी वापरले जाण्यापासून ते तयार करण्यासाठी इतरांपर्यंत बरेच प्रकार आहेत एक संगणकीय क्लस्टर, सह एलईडी पॅनेल नियंत्रणीय, जोडण्यासाठी डीव्हीबी टीव्ही क्षमता, एलसीडी स्क्रीनइ
या टोपी किंवा टोपी ते रास्पबेरी पाई बोर्डवर चढलेले आहेत, कार्य करण्यासाठी आवश्यक GPIO शी जुळत आहे. म्हणून, त्याची असेंब्ली अगदी सोपी आणि वेगवान आहे. जीपीआयओ पोर्ट आपण पाहिल्यानुसार भिन्न आहे कारण प्रत्येक टोपीशी सुसंगत प्लेट आवृत्ती निश्चितपणे निश्चित करा ...
हॅट्स असल्यापासून आपल्याकडे जुनी प्लेट असल्यास मी हे सांगत आहे केवळ नवीनतमसह सुसंगत. जसे रास्पबेरी पाई मॉडेल ए +, बी +, २,, आणि models मॉडेल्स आहेत.
रास्पबेरी पाई वर जीपीआयओ वापरण्याची ओळख
प्रारंभ करण्यासाठी, रास्पबियन वर, आपण कन्सोल उघडू आणि टाइप करू शकता आज्ञा पिनआउटआपल्याकडे जीपीआयओ पिन आपल्या बोर्डवर उपलब्ध आहेत आणि प्रत्येकजण कशासाठी आहे यासह टर्मिनलमध्ये ती आपल्यास काय परत येईल. कामाच्या क्षणी ते नेहमी उपलब्ध असण्यासारखे काहीतरी व्यावहारिक जेणेकरून आपण गोंधळात पडू नये.
पहिला प्रकल्प: GPIOs सह एक एलईडी फ्लॅशिंग
एक प्रकारचा बनविण्याचा सर्वात मूलभूत मार्ग GPIOs सह "हॅलो वर्ल्ड" रास्पबेरी पाईच्या पिनशी कनेक्ट केलेला एक साधा एलईडी वापरणे म्हणजे ते कसे कार्य करतात हे आपण पाहू शकता. या प्रकरणात, मी ते GND आणि दुसर्यास पिन करण्यासाठी कनेक्ट केले आहे, जरी आपण आणखी सामान्य पिन निवडू शकता ...
एकदा कनेक्ट झाल्यानंतर आपण हे करू शकता त्यांना रास्पबियनपासून नियंत्रित करा टर्मिनल वापरणे. लिनक्समध्ये, विशिष्ट फाईल्सचा वापर / sys / वर्ग / gpio / निर्देशिकांप्रमाणे केला जातो. उदाहरणार्थ, कार्य सुरू करण्यासाठी आवश्यक संरचनेसह एक फाईल तयार करणे:
echo 17 > /sys/class/gpio/export
मग आपण हे करू शकता इनपुट (इन) किंवा आउटपुट (आउट) म्हणून कॉन्फिगर करा ते पिन 17 आमच्या उदाहरणासाठी निवडले. आपण हे सह सहजपणे करू शकता:
echo out > /sys/class/gpio/gpio17/direction
या प्रकरणात आउटपुट म्हणून, आम्हाला चालू करण्यासाठी एलईडीला विद्युत नाडी पाठवायचा आहे, परंतु जर तो सेन्सर इ. होता तर आपण त्यात वापरू शकता. आता साठी (1) चालू करा किंवा (0) बंद करा आपण वापरू शकता एलईडी:
echo 1 > /sys/class/gpio/gpio17/value echo 0 > /sys/class/gpio/gpio17/value
आपण दुसर्या प्रकल्पात जाऊ इच्छित असल्यास आणि नोंद हटवा तयार केले, आपण हे या प्रकारे करू शकता:
echo 17 > /sys/class/gpio/unexport
तसे, आपण आपल्या प्रकल्पासाठी सर्व आवश्यक आज्ञा देखील मागितू शकता जसे की मागील सर्व त्या फाइल प्रकारात सेव्ह करा बॅश स्क्रिप्ट आणि नंतर त्या सर्वांना एकाचवेळी टाइप करण्याऐवजी एकाच वेळी सर्व बंडलमध्ये चालवा. जेव्हा आपण समान व्यायामाची अनेक वेळा पुनरावृत्ती करता तेव्हा हे सुलभ होते, जेणेकरून आपल्याला पुन्हा लिहावे लागत नाही. फक्त धावत जा आणि जा. उदाहरणार्थ:
nano led.sh
#!/bin/bash source gpio gpio mode 17 out while true; do gpio write 17 1 sleep 1.3 gpio write 17 0 sleep 1.3 done
एकदा आपण समाप्त केल्यावर आपण जतन करा आणि नंतर आपण त्यास योग्य अंमलात आणा आणि परवानग्या द्या पटकथा एलईडी चालू करण्यासाठी, 1.3 सेकंद प्रतीक्षा करा आणि लूपमध्ये असे बंद करा ...
chmod +x led.sh ./led.sh
प्रगती आगाऊ
स्पष्टपणे वरील काही घटकांसह लहान इलेक्ट्रॉनिक प्रकल्पांसाठी कार्य करते, परंतु जर आपण आदेशांऐवजी आणखी काही प्रगत तयार करू इच्छित असाल तर आपण काय वापरू शकता प्रोग्रामिंग भाषा ऑपरेशन स्वयंचलितपणे भिन्न स्क्रिप्ट किंवा स्त्रोत कोड तयार करण्यासाठी.
ते वापरले जाऊ शकतात विविध साधने अतिशय भिन्न भाषांसह प्रोग्राम करण्यासाठी. समुदायाने विकसित केलेली वाचनालये आपल्यासाठी गोष्टी अधिक सुलभ करतात, जसे की वायरिंगपी, सिस्फ, पिग्पीओ इ. पायबीथपासून रूबी, जावा, पर्ल, बीएएसआयसी आणि अगदी सी # च्या माध्यमातून अनेकांना प्राधान्य दिले जाणारे प्रोग्राम्स खूप भिन्न असू शकतात.
अधिकृतपणे, रास्पबेरी पाई आपल्याला ऑफर करते अनेक सुविधा आपल्या GPIO चे प्रोग्राम करण्यासाठी, जसे की:
- स्क्रॅच, ज्यांना प्रोग्राम कसे करावे हे माहित नसते आणि या प्रकल्पाचे कोडे ब्लॉक्स वापरू इच्छित आहेत ज्यांसह अर्दूनो देखील प्रोग्राम केला जाऊ शकतो इ. ग्राफिक ब्लॉक्ससह प्रोग्रामिंग करणे शिक्षण क्षेत्रासाठी अत्यंत अंतर्ज्ञानी आणि अत्यंत व्यावहारिक आहे.
- python ला: ही सोपी स्पष्टीकरण दिलेली प्रोग्रामिंग भाषा आपल्याला सोप्या आणि शक्तिशाली कोड तयार करण्यास अनुमती देते, आपल्या सोयीनुसार अनेक लायब्ररी आपल्या कल्पनांच्या जवळजवळ प्रत्येक गोष्ट करण्यासाठी.
- सी / सी ++ / सी #: जीपीआयओशी संवाद साधण्यासाठी बायनरी तयार करण्यासाठी त्या अधिक प्रभावी प्रोग्रामिंग भाषा आहेत. आपण लायब्ररीद्वारे मानक फॉर्म किंवा कर्नल इंटरफेसचा वापर करून हे अनेक मार्गांनी करू शकताlibgpiod, परंतु तृतीय-पक्ष लायब्ररीद्वारे देखील पिगिओ.
- प्रक्रिया 3, अर्दूनोसारखेच.
लवचिकपणे निवडा ज्याला तुम्हाला सर्वात जास्त आवडते किंवा तुम्हाला वाटते ते सोपे आहे.
Rasperry वर सुरू करण्याबद्दल खूप छान लेख
खूप खूप धन्यवाद.
तुम्ही लेखक आहात का?
हो