अर्डिनो वॉचडॉग: हे कसे कार्य करते

वॉचडॉग Arduino

या नवीन लेखात आपण पाहणार आहोत की काय अ वॉचडॉग, ते कशासाठी वापरले जाऊ शकते आणि ते तुमच्या प्रकल्पांमध्ये कसे वापरावे Arduino. या मनोरंजक परंतु अज्ञात कार्याबद्दल आपल्याला माहित असणे आवश्यक असलेली प्रत्येक गोष्ट. आणि हो, त्याच्या नावाप्रमाणे (वॉचडॉग) हे काही समस्यांचा मागोवा घेण्यासाठी वापरले जाऊ शकते.

येथे आपण पाहू आपल्याला फक्त माहित असणे आवश्यक आहे संबंधित…

वॉचडॉग म्हणजे काय?

संगणकीय मध्ये, ए पहारेकरी सिस्टम किंवा प्रोग्रामच्या ऑपरेशनवर लक्ष ठेवण्यासाठी वापरली जाणारी एक पर्यवेक्षी यंत्रणा आहे. त्याचे मुख्य कार्य म्हणजे क्रॅश किंवा फ्रीझ सारख्या असामान्य परिस्थिती किंवा सिस्टम अपयश शोधणे आणि त्यांना प्रतिसाद देणे आणि सतत ऑपरेशन किंवा सिस्टम पुनर्प्राप्ती सुनिश्चित करण्यासाठी सुधारात्मक उपाय करणे.

पहारेकरी टायमरवर चालते जे एका विशिष्ट वेळेच्या अंतरासाठी कॉन्फिगर केले आहे. जर सिस्टम किंवा प्रोग्राम विशिष्ट कृती करत नसेल किंवा वॉचडॉगला शक्ती देत ​​नसेल (म्हणजे, रीस्टार्ट करा), तर वॉचडॉग असे गृहीत धरतो की सिस्टम अवांछित स्थितीत आहे किंवा योग्यरित्या प्रतिसाद देणे थांबवले आहे आणि पूर्वनिर्धारित कारवाई करतो. ही क्रिया अंमलबजावणीनुसार बदलू शकते आणि त्यात सिस्टम रीबूट करणे, त्रुटी नोंदी निर्माण करणे, अलार्म ट्रिगर करणे किंवा समस्या सुधारण्यासाठी विशिष्ट पावले उचलणे समाविष्ट असू शकते.

वॉचडॉगचा वापर विविध संगणक प्रणाली आणि उपकरणांवर केला जातो, ऑपरेटिंग सिस्टम आणि सर्व्हरपासून ते उपकरणांपर्यंत एम्बेडेड आणि क्रिटिकल रिअल-टाइम सिस्टम, ज्यामध्ये Arduino समाविष्ट आहे. समस्या आपोआप शोधून आणि प्रतिसाद देऊन प्रणालीची विश्वासार्हता आणि उपलब्धता सुधारणे हे त्याचे प्राथमिक उद्दिष्ट आहे, ज्यामुळे अपयशाच्या परिस्थितीत मॅन्युअल हस्तक्षेपाची आवश्यकता कमी होते.

अर्डिनो वॉचडॉग म्हणजे काय?

arduino बद्दल पुस्तके

Arduino चा वॉचडॉग टाइमर अनुप्रयोगाच्या गरजेनुसार समायोजित करणे आवश्यक आहे. तो वॉचडॉग टाइमर अंतर्गत 128 kHz घड्याळ स्रोत वापरते (वापरलेल्या बोर्ड आणि MCU वर अवलंबून बदलू शकतात). सक्रिय केल्यावर, ते शून्य ते वापरकर्त्याच्या पूर्वनिर्धारित मूल्यापर्यंत मोजणे सुरू होते. जर वॉचडॉग टाइमर या मूल्यापर्यंत पोहोचल्यावर तो रीसेट होत नसेल, तर तो मायक्रोकंट्रोलर रीसेट करतो.

मायक्रोकंट्रोलर, किंवा MCU, हे एक लहान इलेक्ट्रॉनिक उपकरण आहे जे सेंट्रल प्रोसेसिंग युनिट (CPU), मेमरी, इनपुट/आउटपुट पेरिफेरल्स आणि कधीकधी कम्युनिकेशन इंटरफेस एकाच चिपवर एकत्रित करते. हे विशिष्ट कार्ये नियंत्रित आणि अंमलात आणण्यासाठी डिझाइन केलेले आहे.

वॉचडॉग टाइमर एटीमेगा 328 पी, ज्याची अंमलबजावणी केली जाते Arduino UNO, 10 भिन्न वेळ सेटिंग्ज ऑफर करते, प्रत्येक टाइमर कधी ओव्हरफ्लो होईल आणि त्यामुळे रीसेट होईल हे निर्धारित करते. भिन्न वेळ मध्यांतरे खालीलप्रमाणे आहेत: 16 ms, 32 ms, 64 ms, 0.125 सेकंद, 0.25 सेकंद, 0.5 सेकंद, 1 सेकंद, 2 सेकंद, 4 सेकंद आणि 8 सेकंद, जसे की मी समाविष्ट केलेल्या टेबलमध्ये आपण नंतर पाहू.

वॉचडॉग टाइमरसह तुम्ही काय करू शकता हे अद्याप तुमच्यासाठी स्पष्ट नसल्यास Arduino UNO, आपण बघू एक उदाहरण जेणेकरून तुम्ही ते ग्राफिक पद्धतीने समजू शकता. या उदाहरणात, आम्ही एक साधे एलईडी फ्लॅशिंग (ब्लिंक) वापरू. while() लूपमध्ये प्रवेश करण्यापूर्वी सेट कालावधीसाठी LEDs फ्लॅश होतात. हे while() लूप ब्लॉकिंग सिस्टमला पर्याय म्हणून वापरले जाते. while() लूपमध्ये असताना वॉचडॉग टायमर रीसेट केला जात नसल्यामुळे, यामुळे सिस्टम रीबूट होईल आणि सिस्टम क्रॅश होण्यापूर्वी आणि रीबूट होण्यापूर्वी LEDs पुन्हा फ्लॅशिंग सुरू होतील. हे चक्र असेच चालू राहील...

विचार आणि वैशिष्ट्ये

वॉचडॉग टाइमर कोडच्या सुरुवातीला ते अक्षम केले आहे. वॉचडॉग सक्षम करण्यापूर्वी x सेकंदांचा विलंब समाविष्ट केला जातो. हा विलंब Arduino बूटलोडरला नवीन कोड लोड होत आहे की नाही हे तपासण्यासाठी आणि कोड फ्लॅश मेमरीमध्ये बर्न करण्यासाठी पुरेसा वेळ देण्यासाठी महत्त्वपूर्ण आहे. खबरदारी म्हणून हा पैलू संबंधित आहे. अशी परिस्थिती उद्भवू शकते जिथे, सदोष कोडींग किंवा अयोग्य विचारांमुळे, लिखित कोड मायक्रोकंट्रोलरला अगदी कमी अंतराने अमर्यादपणे रीसेट करतो. हे Arduino बोर्डचे नुकसान करू शकते आणि कोड त्यावर योग्यरित्या अपलोड होण्यापासून प्रतिबंधित करू शकते. असे झाल्यास, तुम्हाला लॉक केलेल्या Arduino वर ISP म्हणून दुसरा Arduino वापरून बूटलोडर बर्न करणे आवश्यक आहे...

जेव्हा आपण Arduino watchdog वापरतो तेव्हा ते वापरणे आवश्यक असते बिट रजिस्टर्स चिपचे वर्तन परिभाषित करण्यासाठी. Arduino बोर्डवर उपस्थित असलेल्या मायक्रोकंट्रोलर डेटाशीटमध्ये संबंधित रजिस्टर आणि त्यांचा अर्थ तपशीलवार आहे. तथापि, Arduino इंटिग्रेटेड डेव्हलपमेंट एन्व्हायर्नमेंट (IDE) ही प्रक्रिया सुलभ करण्यासाठी डिझाइन केलेली काही फंक्शन्स आणि मॅक्रोसह येते, जी लायब्ररी समाविष्ट करून आयात केली जाऊ शकते. #समाविष्ट करा AVR चिप वॉचडॉग वापरण्यासाठी.

अशा प्रकारे, आम्ही वॉचडॉग कॉन्फिगर करू शकतो wdt_enable() फंक्शन वापरून ते सक्रिय करणे. जर टाइमर रीसेट केला नसेल तर या फंक्शनचा युक्तिवाद बोर्ड रीसेट होण्यापूर्वीची वेळ निर्धारित करतो. तुम्ही कोडमध्ये कॉन्फिगर करू शकता अशा मूल्यांसाठी, मी ते येथे समाविष्ट करतो:

वॉचडॉग ट्रिगर होण्यापूर्वीची वेळ wtd_enable() वितर्क
15 मिसे WDTO_15MS
30 मिसे WDTO_30MS
60 मिसे WDTO_60MS
120 मिसे WDTO_120MS
250 मिसे WDTO_250MS
500 मिसे WDTO_500MS
1 से WDTO_1S
2 से WDTO_2S
4 से WDTO_4S
8 से WDTO_8S
अधिक माहितीसाठी, तुम्ही Arduino डेटाशीटचा सल्ला घेऊ शकता, जिथे तुम्हाला एकात्मिक मायक्रोकंट्रोलरबद्दल अधिक तपशील मिळू शकतात, वॉचडॉग, पिनआउट, पेरिफेरल्स, तांत्रिक वैशिष्ट्ये, व्होल्टेज, वीज वापर इ.

Arduino वर वॉचडॉग वापरण्याचे उदाहरण

Arduino IDE, डेटा प्रकार, प्रोग्रामिंग

शेवटी, Arduino IDE मधील उदाहरणासह वॉचडॉगचा प्रत्यक्ष वापर कसा केला जातो ते पाहू. जसे आपण पाहतो, हे अगदी सोपे आहे, आपण इंटरनेटवर यासारखे विविध स्त्रोत कोड शोधू शकता, आपल्या प्रकल्पांमध्ये वॉचडॉग वापरण्यासाठी सराव, सुधारित आणि आपले स्वतःचे कोड तयार करण्यास सक्षम होण्यासाठी. बघूया आमचे उदाहरण:

#include <avr/wdt.h> // Incluir la biblioteca watchdog (wdt.h)
 
void setup()
{
  wdt_disable(); // Desactivar el watchdog mientras se configura, para que no se resetee
  wdt_enable(WDTO_2S); // Configurar watchdog a dos segundos
}
 
void loop()
{
  wdt_reset(); // Actualizar el watchdog para que no produzca un reinicio
  //Aquí iría el código de tu programa...
}

Arduino साठी स्केचच्या या उदाहरणात पाहिले जाऊ शकते, तेथे आहेत तीन कार्ये वॉचडॉग व्यवस्थापित करण्यासाठी उल्लेखनीय प्रोग्रामिंग भाषांपैकी, आणि या आहेत:

  • wdt_disable() Arduino कॉन्फिगर करताना टाइमर अक्षम करण्यासाठी.
  • wdt_enable(वेळ) टाइमरला मध्यांतर नियुक्त करणे आणि ते सुरू करणे, मी मागील सारणीमध्ये दर्शविल्याप्रमाणे संबंधित वेळ निर्दिष्ट करणे.
  • wdt_reset() नियुक्त केलेल्या मध्यांतराचे नूतनीकरण करण्यासाठी आणि जेणेकरून प्रोग्राम रीस्टार्ट होणार नाही.

टिप्पणी करणारे सर्वप्रथम व्हा

आपली टिप्पणी द्या

आपला ई-मेल पत्ता प्रकाशित केला जाणार नाही. आवश्यक फील्ड चिन्हांकित केले आहेत *

*

*

  1. डेटा जबाबदार: मिगुएल Áन्गल गॅटन
  2. डेटाचा उद्देशः नियंत्रण स्पॅम, टिप्पणी व्यवस्थापन.
  3. कायदे: आपली संमती
  4. डेटा संप्रेषण: कायदेशीर बंधन वगळता डेटा तृतीय पक्षास कळविला जाणार नाही.
  5. डेटा संग्रहण: ओकेन्टस नेटवर्क (EU) द्वारा होस्ट केलेला डेटाबेस
  6. अधिकारः कोणत्याही वेळी आपण आपली माहिती मर्यादित, पुनर्प्राप्त आणि हटवू शकता.