How to Build an Arduino Library in hindi

क्या आप कभी भी एक Arduino का उपयोग करके किसी कार्य को सरल या स्वचालित करना चाहते हैं? हाँ? ठीक है, क्या आपने कभी उस कार्य के लिए आवश्यक कोड को सरल-से-उपयोग के कार्यों के एक बड़े संग्रह में सरल बनाना चाहा है? इसके अलावा हाँ? फिर यह ट्यूटोरियल आपके लिए है! इस ट्यूटोरियल में, हम एक छोटे से Arduino- संचालित सर्किट को इनिशियलाइज़ और कंट्रोल करने के लिए एक लाइब्रेरी बनाएंगे; लेकिन पहले, what is a library..??


WHAT IS A LIBRARY AND HOW DO THEY WORK?


एक पुस्तकालय एक प्रक्रिया या कार्य को आसान बनाने के लिए डिज़ाइन किए गए संसाधनों का एक संग्रह है। ये संसाधन शामिल हो सकते हैं (लेकिन सीमित नहीं हैं): सबरूटीन्स, फ़ंक्शंस, क्लासेस, वैल्यूज़ या टाइप स्पेसिफिकेशन्स। एक पुस्तकालय में आमतौर पर शामिल होते हैं:

  • A Header File (.h)     -  इसमें लाइब्रेरी की परिभाषाएँ शामिल हैं
  • Source Code (.cpp)  -  इसमें लाइब्रेरी का कोड होता है
  • A Keyword file (.txt)  - इसमें लाइब्रेरी में उपयोग किए गए कीवर्ड शामिल हैं
  • A Readme file (.txt)  - इसमें लाइब्रेरी (संशोधन संख्या, TODO, आदि) के बारे में अन्य जानकारी शामिल है।
  • Examples (.ino)        - ये एक उपयोगकर्ता को दिखाना है कि लाइब्रेरी को कैसे संचालित किया जाए


इन सभी फ़ाइलों को एक एकल फ़ोल्डर में रखा जाना चाहिए (जिसे आपकी लाइब्रेरी का नाम कहा जाता है) जिसे तब आपके कंप्यूटर के \ Arduino \ lbooks निर्देशिका के भीतर रखा जाना है। इसे बाद में ट्यूटोरियल में दिखाया जाएगा। यदि आप शॉर्टकट की तलाश कर रहे हैं, तो इस ट्यूटोरियल में हम जिस लाइब्रेरी का निर्माण कर रहे हैं, उसे GitHub पर पाया जा सकता है और आप Examples, Zipping के अंतिम भाग को पढ़ सकते हैं और इसमें शामिल होने का तरीका भी देख सकते हैं।



THIS LIBRARY'S PURPOSE AND DESCRIPTION 


इस लाइब्रेरी का उद्देश्य Arduino पर 3 एलईडी के 3 डिजिटल पिन से जुड़े आसानी से नियंत्रण करना है। यह करने की क्षमता होगी:


घोषणा करें कि एलईडी किस पिन से जुड़ी हैं (पिन 3,5 और 6 आवश्यक हैं)

सभी एल ई डी चालू करें

सभी एल ई डी बंद करें

सभी एलईडी 4 बार फ्लैश करें

नोट: यह केवल पुस्तकालय निर्माण का एक परिचय है; एक बार जब आप समझ जाते हैं कि सोर्स फाइल और हैडर फाइल को कैसे लिखा और संयोजित किया जाता है, तो आप विभिन्न प्रकार के इलेक्ट्रिकल कंपोनेंट का उपयोग करके बहुत सारी विभिन्न प्रक्रियाओं को करने के लिए इस कोड को संशोधित कर सकते हैं (या खुद लिख सकते हैं)!

CREATING THE HEADER FILE

हेडर फ़ाइल और स्रोत कोड बनाने के लिए, हमें किसी प्रकार के शब्द संपादक का उपयोग करना होगा। मैं Arduino सिंटैक्स को समझने की क्षमता के कारण नोटपैड ++ का उपयोग करूंगा। एक बार डाउनलोड हो जाने के बाद, एक नया दस्तावेज़ खोलें और इसे myFirstLibrary.h के रूप में सहेजें "C ++ फ़ाइल फ़ाइल" के रूप में सहेजना सुनिश्चित करें। ऐसा करने के बाद, नीचे दिए गए कोड को कॉपी करें और इसे दस्तावेज़ में पेस्ट करें। हेडर फ़ाइल कैसे काम करती है, यह समझने के लिए टिप्पणियों के माध्यम से एक नज़र डालें, स्रोत फ़ाइल की खोज के बाद यह स्पष्ट हो जाएगा।


/*
* myFirstLibrary.h - An introduction to library setup
* Created by Christian @ Core Electronics on 1/06/18
* Revision #5 - See readMe
*/

// The #ifndef statement checks to see if the myFirstLibrary.h
// file isn't already defined. This is to stop double declarations
// of any identifiers within the library. It is paired with a
// #endif at the bottom of the header and this setup is known as
// an 'Include Guard'.
#ifndef myFirstLibrary_h

// The #define statement defines this file as the myFirstLibrary
// Header File so that it can be included within the source file.
#define myFirstLibrary_h

// The #include of Arduino.h gives this library access to the standard
// Arduino types and constants (HIGH, digitalWrite, etc.). It's
// unneccesary for sketches but required for libraries as they're not
// .ino (Arduino) files.
#include "Arduino.h"

// The class is where all the functions for the library are stored,
// along with all the variables required to make it operate
class myFirstLibrary{

// 'public:' and 'private:' refer to the security of the functions
// and variables listed in that set. Contents that are public can be
// accessed from a sketch for use, however private contents can only be
// accessed from within the class itself.
public:

// The first item in the class is known as the constructor. It shares the
// same name as the class and is used to create an instance of the class.
// It has no return type and is only used once per instance.
myFirstLibrary(int pinOne, int pinTwo, int pinThree);

// Below are the functions of the class. They are the functions available
// in the library for a user to call.
void on();
void off();
void flash(int delayTime);

private:

// When dealing with private variables, it is common convention to place
// an underscore before the variable name to let a user know the variable
// is private.
int _pinOne, _pinTwo, _pinThree;
};

// The end wrapping of the #ifndef Include Guard
#endif

CREATING THE SOURCE FILE

इस पुस्तकालय के लिए स्रोत कोड बनाना उपरोक्त अनुभाग के समान तरीके से किया जाएगा। हम नोटपैड ++ में एक नया दस्तावेज़ खोलेंगे और इसे myFirstLibrary.cpp के रूप में एक बार फिर से सहेजेंगे, यह सुनिश्चित करते हुए कि टाइप चयन के रूप में सेव "C ++ स्रोत फ़ाइल" है। एक बार फिर, नीचे दिए गए कोड के माध्यम से पढ़ें, जिस तरह से टिप्पणियों के साथ। इसे दस्तावेज़ में कॉपी करें और इसे myFirstLibrary.h फ़ाइल के समान फ़ोल्डर में सहेजें। फ़ोल्डर को MyFirstLibrary कहा जाना चाहिए, जिसमें हेडर और सोर्स फाइल दोनों शामिल हैं।



/*
 * myFirstLibrary.cpp - An introduction to library setup
 * Created by Christian @ Core Electronics on 1/06/18
 * Revision #5 - See readMe
 */

//	The #include of Arduino.h gives this library access to the standard
//	Arduino types and constants (HIGH, digitalWrite, etc.). It's 
//	unneccesary for sketches but required for libraries as they're not
//	.ino (Arduino) files. 
#include "Arduino.h"

//	This will include the Header File so that the Source File has access
//	to the function definitions in the myFirstLibrary library.
#include "myFirstLibrary.h" 

//	This is where the constructor Source Code appears. The '::' indicates that
//	it is part of the myFirstLibrary class and should be used for all constructors
//	and functions that are part of a class.
myFirstLibrary::myFirstLibrary(int pinOne, int pinTwo, int pinThree){

	//	This is where the pinModes are defined for circuit operation.
	pinMode(pinOne, OUTPUT);
	pinMode(pinTwo, OUTPUT);
	pinMode(pinThree, OUTPUT);

	//	The arguments of the constructor are then saved into the private variables.
	_pinOne = pinOne;
	_pinTwo = pinTwo;
	_pinThree = pinThree;
}

//	For the 'on', 'off' and 'flash' functions, their function return type (void) is
//	specified before the class-function link. They also use the private variables
//	saved in the constructor code.

void myFirstLibrary::on(){
  digitalWrite(_pinOne, HIGH);
  digitalWrite(_pinTwo, HIGH);
  digitalWrite(_pinThree, HIGH);
}

void myFirstLibrary::off(){
  digitalWrite(_pinOne, LOW);
  digitalWrite(_pinTwo, LOW);
  digitalWrite(_pinThree, LOW);
}

void myFirstLibrary::flash(int delayTime){
  for(int i = 0; i < 4; i++){
  digitalWrite(_pinOne, HIGH);
  digitalWrite(_pinTwo, HIGH);
  digitalWrite(_pinThree, HIGH);
  delay(delayTime);
  digitalWrite(_pinOne, LOW);
  digitalWrite(_pinTwo, LOW);
  digitalWrite(_pinThree, LOW);
  delay(delayTime);
  }
}




CREATING THE KEYWORDS AND README FILES

MyFirstLibrary फोल्डर के अंदर, दो खाली टेक्स्ट डॉक्यूमेंट, कीवर्ड और रीडमी सेव करें। यह इन दो फ़ाइलों के भीतर है जो आप करेंगे:


Arduino IDE को बताएं कि कौन से शब्द 'महत्वपूर्ण' हैं ताकि यह उन्हें उजागर कर सके जब उन्हें एक कार्यक्रम में बुलाया जाए (आवश्यक नहीं, बस अच्छा अभ्यास हो और डीबग करना आसान हो)

पुस्तकालय की संशोधन संख्या और यह क्या करता है की पहचान करें

पुस्तकालय के कार्यों को सूचीबद्ध करें

कीवर्ड फ़ाइल वह फाइल है जो आईडीई को बताती है कि कौन से शब्द महत्वपूर्ण हैं और उन्हें हाइलाइट किया जाना चाहिए। दो अलग-अलग प्रकार के कीवर्ड मौजूद हैं (KEYWORD1 -> कक्षाएं, KEYWORD2 -> फ़ंक्शंस) और उनके बीच एक स्थान होना चाहिए। इस लाइब्रेरी की कीवर्ड फ़ाइल नीचे दिखाई गई है। रीडमी फ़ाइल को यह स्पष्ट करना चाहिए कि पुस्तकालय क्या करता है, यह संशोधन संख्या है और अंतिम बार इसे संशोधित किया गया था ताकि पुस्तकालय का कोई भी उपयोगकर्ता नहीं जानता था कि यह किसके लिए उपयोग किया गया था और यह अंतिम बार कब संपादित किया गया था।

myFirstLibrary	KEYWORD1
on KEYWORD2
off KEYWORD2
flash KEYWORD2

EXAMPLES, ZIPPING AND INCLUDING

अब जब उपरोक्त सभी पूर्ण हो गए हैं, तो आखिरी बात यह है कि कुछ उदाहरणों का निर्माण करना है ताकि उपयोगकर्ताओं के पास एक कार्यशील कार्यक्रम हो जो यह बताए कि पुस्तकालय की क्षमताओं का उपयोग कैसे किया जाए। एक बार जब आपके पास कुछ उदाहरण स्केच बन जाते हैं, तो myFirstLibrary फ़ोल्डर में उदाहरण नामक एक फ़ोल्डर बनाएं और उन्हें अंदर रखें। अगला, myFirstLibrary फ़ोल्डर में वापस जाएं, इसे राइट-क्लिक करें और इसे .zip फ़ाइल में संपीड़ित करें। अंत में, Arduino IDE खोलें और स्केच> लाइब्रेरी शामिल करें> .ZIP लाइब्रेरी पर जाएँ। अपने निर्देशिका के माध्यम से अपने ज़िपित फ़ोल्डर का पता लगाएं और आप कर रहे हैं! नोट: फ़ाइल> उदाहरण> myFirstLibrary (आपको नीचे स्क्रॉल करने की आवश्यकता हो सकती है) आपको myFirstLibrary फ़ोल्डर में पाए गए उदाहरणों पर ले जाएगा।




कोई टिप्पणी नहीं:

एक टिप्पणी भेजें