- अरुडिनो नैनो 33 बीएलई सेंस
- Arduino नैनो 33 BLE Sense हार्डवेयर ओवरव्यू
- Arduino नैनो 33 BLE सेंस के साथ सॉफ्टवेयर सुधार
- Arduino नैनो 33 BLE समझदारी के लिए अपनी Arduino IDE तैयार करना
- सेंसर डेटा पढ़ने और सीरियल मॉनिटर पर प्रदर्शित करने का कार्यक्रम
- Arduino नैनो 33 BLE- कोड अपलोड करना
Arduino तेजी से प्रोटोटाइप और विचार सत्यापन के लिए विकास मंच पर गया है । हम में से कई लोगों ने Arduino UNO डेवलपमेंट बोर्ड के साथ शुरुआत की होगी, लेकिन आज जैसे-जैसे हम इंटरनेट की चीजों, कंप्यूटर विज़न, आर्टिफिशियल इंटेलिजेंस, मशीन लर्निंग, और अन्य फ्यूचरिस्टिक टेक्नोलॉजी की ओर आगे बढ़ रहे हैं, विनम्र Arduino UNO अपने 8 के साथ सामना नहीं कर सका। -बिट माइक्रोकंट्रोलर। इसने अधिक शक्तिशाली प्रोसेसर वाले नए बोर्डों को लॉन्च करने का आह्वान किया, जिनमें लोकप्रिय MKR1000 या MKR GSM 1400 जैसे अंतर्निहित वाई-फाई, ब्लूटूथ, जीएसएम और अन्य वायरलेस क्षमताएं हैं । इस संदर्भ में, Arduino ने हाल ही में अपने नैनो का एक नया संस्करण लॉन्च किया है जिसे Arduino Nano 33 कहा जाता है ।
Arduino Nano 33 बोर्ड, Arduino Nano 33 IoT और Arduino Nano 33 BLE के अर्थ में पूरी तरह से दो प्रकार के होते हैं। दोनों मॉड्यूल के बीच मुख्य अंतर यह है कि Arduino नैनो 33 BLE सेंस मॉड्यूल में कुछ बिल्ट-इन सेंसर हैं (बाद में विवरण में मिलेंगे) जबकि Arduino नैनो 33 IoT उनके पास नहीं है। इस लेख में हम Arduino नैनो 33 BLE सेंस बोर्ड की समीक्षा करेंगे, आपको इसकी विशेषताओं और कार्यात्मकताओं से परिचित कराएंगे और अंत में सेंसर मान पढ़ने और सीरियल मॉनिटर पर प्रदर्शित करने के लिए एक नमूना कोड लिखेंगे। तो चलिए सीखते हैं…!
अरुडिनो नैनो 33 बीएलई सेंस
"Arduino Nano 33 BLE Sense" नाम मुखर है, लेकिन यह नाम ही कुछ महत्वपूर्ण जानकारी देता है। इसे "नैनो" कहा जाता है क्योंकि आयाम, पिनआउट और फॉर्म फैक्टर क्लासिक Arduino Nano के समान है, यह वास्तव में आपकी मौजूदा परियोजनाओं में Arduino नैनो के प्रतिस्थापन के रूप में उपयोग किए जाने की योजना है, लेकिन पकड़ यह है कि यह नया मॉड्यूल संचालित होता है 3.3V जबकि क्लासिक नैनो 5V पर काम करता है। इसलिए मुझे लगता है कि यह वह जगह है जहां "33" नाम आता है, यह इंगित करने के लिए कि बोर्ड 3.3 वी पर काम करता है। तब नाम "BLE" इंगित करता है कि मॉड्यूल ब्लूटूथ कम ऊर्जा (BLE5 5.0) का समर्थन करता हैऔर "अर्थ" नाम दर्शाता है कि इसमें ऑन-बोर्ड सेंसर जैसे एक्सेलेरोमीटर, जायरोस्कोप, मैग्नेटोमीटर, तापमान और नमी सेंसर, प्रेशर सेंसर, प्रॉक्सिमिटी सेंसर, कलर सेंसर, जेस्चर सेंसर और एक बिल्ट-इन माइक्रोफोन भी है। हम बाद में BLE और अन्य सेंसरों के विवरण में मिल जाएंगे, लेकिन अब इस तरह से एक Arduino नैनो 33 BLE सेंस बोर्ड सीधे संयुक्त राष्ट्र के मुक्केबाजी में दिखता है।
Arduino नैनो 33 BLE Sense हार्डवेयर ओवरव्यू
बोर्ड के पहले नज़र में आप शीर्ष पर भीड़ वाले बहुत सारे घटक पा सकते हैं, जिनमें से अधिकांश सेंसर हैं जो मैंने पहले बताया था। लेकिन मुख्य मस्तिष्क दाईं ओर धातु आवरण के पीछे छिपा हुआ है। यह आवरण नॉर्डिक nRF52840 प्रोसेसर रखता है जिसमें एक शक्तिशाली कोर्टेक्स M4F और BLE और ब्लूटूथ 5 संचार के लिए NINA B306 मॉड्यूल शामिल हैं। यह बोर्ड को बहुत कम बिजली पर काम करने की अनुमति देता है और होम ऑटोमेशन और अन्य कनेक्टेड प्रोजेक्ट्स में कम पावर मेष नेटवर्क अनुप्रयोगों के लिए आदर्श 5 ब्लूटूथ का उपयोग करके संवाद करने की अनुमति देता है । साथ ही चूंकि nRF प्रोसेसर ARM Mbed OS को सपोर्ट करता हैयह कुछ सॉफ्टवेयर सुधार भी प्रदान करता है जिन पर हम बाद में चर्चा करेंगे। सेंसर, एलईडी, पुशबटन और अन्य महत्वपूर्ण चीजें जो आपको अपने बोर्ड पर पता होनी चाहिए, नीचे की छवि में चिह्नित हैं।
जैसा कि आप ऊपर की छवि से देख सकते हैं, बोर्ड सेंसर के साथ पावर-पैक है जो बोर्ड को किसी बाहरी सेंसर से कनेक्ट किए बिना भी बॉक्स के दाईं ओर बनाने में आपकी मदद कर सकता है। बोर्ड का उपयोग पहनने योग्य उपकरणों और अन्य स्मार्ट पोर्टेबल उपकरणों जैसे कि फिटनेस बैंड, ग्लूकोज मॉनिटरिंग, पेडोमीटर, स्मार्टवॉच, वेदर स्टेशन, होम सिक्योरिटी आदि में किया जाता है, जहाँ आप इनमें से अधिकांश सेंसर का उपयोग करेंगे। और हमेशा की तरह इन सभी सेंसरों में अरुडिनो के लिए पूर्व-निर्मित पुस्तकालय हैं जिन्हें आप आसानी से उपयोग कर सकते हैं। इस लेख के अंत में हम इन सभी सेंसर से मूल्यों को पढ़ेंगे और इसे सीरियल मॉनिटर पर प्रदर्शित करेंगे। Arduino Nano 33 BLE सेंस बोर्ड पर सेंसर विवरण के साथ इसकी आवश्यक लाइब्रेरी नीचे दी गई है
सेंसर का नाम |
मापदंडों |
लिंक |
एलएसएम 9 डीएसआई - एसटी माइक्रोइलेक्ट्रॉनिक |
एक्सेलेरोमीटर, जाइरोस्कोप, मैग्नेटोमीटर |
एलएसएमडीएसआई डेटशीट Arduino_LSM9DS1 लाइब्रेरी |
LPS22HB - ST माइक्रोइलेक्ट्रॉनिक |
दबाव |
LPS22HB डेटशीट Arduino_LPS22HB लाइब्रेरी |
HTS221 - एसटी माइक्रोइलेक्ट्रॉनिक |
तापमान और आर्द्रता |
LPS22HB डेटशीट Arduino_HTS221 लाइब्रेरी |
APDS9960 - एवागो टेक। |
निकटता, प्रकाश, रंग, इशारे |
LPS22HB डेटशीट Arduino_APDS9960 लाइब्रेरी |
MP34DT05 - ST माइक्रोइलेक्ट्रॉनिक |
माइक्रोफ़ोन |
MP34DT05 डेटशीट इनबिल्ट-पीडीएम लाइब्रेरी |
इनमें से अधिकांश सेंसर एसटी माइक्रोइलेक्ट्रॉनिक के हैं और वे कम बिजली के संचालन का समर्थन करते हैं जो इसे बैटरी संचालित डिजाइनों के लिए आदर्श बनाते हैं। कुछ लोग पहले से ही APDS9960 सेंसर से परिचित हो सकते हैं क्योंकि यह पहले से ही एक स्पुत मॉड्यूल के रूप में उपलब्ध है और हमने पहले भी Arduino के साथ APDS9960 सेंसर का उपयोग किया है। इन सेंसरों के बारे में अधिक जानकारी के लिए, आप संबंधित डेटाशीट पर जा सकते हैं और यह भी सुनिश्चित कर सकते हैं कि आपने अपने Arduino Nano 33 BLE सेंस बोर्ड के साथ उनका उपयोग शुरू करने के लिए अपने Arduino IDE में संपूर्ण प्रदान की गई लाइब्रेरी जोड़ी है। एक लाइब्रेरी जोड़ने के लिए आप संबंधित GitHub पेज पर जाने के लिए दिए गए लिंक का उपयोग कर सकते हैं और ज़िप फ़ाइल डाउनलोड कर सकते हैं, फिर स्केच का उपयोग कर सकते हैं -> लाइब्रेरी शामिल करें -> Add.ZIP लाइब्रेरी या आप Arduino IDE पर लाइब्रेरी मैनेजर का उपयोग कर सकते हैं और इन्हें जोड़ सकते हैं पुस्तकालय।
Arduino नैनो 33 BLE sense बोर्ड तकनीकी विनिर्देश:
नॉर्डिक nRF52840 प्रोसेसर द्वारा संचालित Arduino नैनो 44 BLE बोर्ड में निम्नलिखित तकनीकी विनिर्देश हैं
- ऑपरेटिंग वोल्टेज: 3.3V
- यूएसबी-इनपुट वोल्टेज: 5 वी
- इनपुट-पिन वोल्टेज: 4.5 वी से 21 वी
- चिप: NINA-B3 - RF52840
- घड़ी: 64MHz
- फ्लैश: 1 एमबी
- SRAM: 256 KB
- वायरलेस कनेक्टिविटी: ब्लूटूथ 5.0 / BLE
- इंटरफेस: USB, I2C, SPI, I2S, UART
- डिजिटल I / O पिंस: 14
- PWM पिन: 6 (8-बिट रिज़ॉल्यूशन)
- एनालॉग पिंस: 8 (10-बिट या 12-बिट कॉन्फ़िगर करने योग्य)
Arduino नैनो 33 BLE सेंस के साथ सॉफ्टवेयर सुधार
सभी Arduino बोर्डों की तरह, वहाँ Arduino नैनो 33 BLE भावना को Arduino IDE के साथ प्रोग्राम किया जा सकता है। लेकिन, आपको बोर्ड मैनेजर का उपयोग करना होगा और शुरू करने से पहले अपनी आईडीई में बोर्ड विवरण जोड़ना होगा। जैसा कि हम जानते हैं कि nRF 52840 को ARM Mbed OS का उपयोग करके प्रोग्राम किया जा सकता है, इसका मतलब है कि हमारा Arduino नैनो 33 बोर्ड रियल-टाइम ऑपरेटिंग सिस्टम (RTOS) को सपोर्ट करता है। Mbed OS प्रोग्रामिंग के साथ हम मल्टी-टास्किंग करने के लिए प्रोग्राम में एक ही समय में कई थ्रेड्स चला सकते हैं। इसके अलावा, बोर्ड की बिजली की खपत बहुत कम हो जाएगी, हर बार जब हम देरी फ़ंक्शन को कॉल करते हैं तो बोर्ड बिजली बचाने के लिए देरी के समय में गुदगुदी मोड में प्रवेश करेगा और देरी होने पर वापस ऑपरेशन में कूद जाएगा। यह बताया गया है कि यह ऑपरेशन सामान्य Arduino देरी ऑपरेशन की तुलना में 4.5uA कम खपत करेगा।
कहा जा रहा है कि, Arduino IDE के साथ Mbed OS का एकीकरण अपेक्षाकृत नया है और हमें Arduino IDE के साथ Mbed OS की पूरी शक्ति का उपयोग करने में कुछ समय लगने वाला है। इसलिए एक त्वरित स्टार्ट-अप के लिए, हम सभी सेंसर के मूल्यों को पढ़ने और इसे सीरियल मॉनिटर पर प्रदर्शित करने के लिए एक कार्यक्रम लिखेंगे।
Arduino नैनो 33 BLE समझदारी के लिए अपनी Arduino IDE तैयार करना
अपना Arduino IDE लॉन्च करें और अपने Arduino Board प्रबंधक को लॉन्च करने के लिए Tools -> Boards -> Board Manger पर जाएं। अब “Mbed OS” की खोज करें और पैकेज स्थापित करें। इंस्टॉलेशन पूरा होने में कुछ समय लगना चाहिए।
एक बार इंस्टॉलेशन हो जाने के बाद, संवाद बॉक्स को बंद करें और अपने लैपटॉप के साथ एक माइक्रो यूएसबी केबल का उपयोग करके अपने Arduino 33 बोर्ड को कनेक्ट करें। जैसे ही आप बोर्ड कनेक्ट करते हैं विंडोज़ स्वचालित रूप से बोर्ड के लिए आवश्यक ड्राइवरों को स्थापित करना शुरू कर देगी। फिर अपना Arduino IDE खोलें और Tools -> Board -> Arduino Nano 33 का चयन करें। फिर टूल का उपयोग करके सही COM पोर्ट का भी चयन करें -> पोर्ट, मेरा पोर्ट COM3 से जुड़ा है, लेकिन आपका भिन्न हो सकता है। पोर्ट चयनित होने के बाद आपका IDE निचला दायां कोना इस तरह दिखना चाहिए
अब जल्दी से जांच करने के लिए कि क्या सब कुछ काम कर रहा है हम एक उदाहरण कार्यक्रम का उपयोग कर सकते हैं, चलो फ़ाइल -> उदाहरण -> PDM -> PDMSerialPlotter पर दिए गए प्रयास करें। यह कार्यक्रम ऑन-बोर्ड माइक्रोफोन का उपयोग ऑडियो सुनने और इसे धारावाहिक कथानक पर प्रस्तुत करने के लिए करेगा। आप कार्यक्रम को अपलोड कर सकते हैं और जांच सकते हैं कि बोर्ड और आईडीई काम कर रहे हैं या नहीं।
अब यदि आप हास्यास्पद रूप से धीमे संकलन का अनुभव करते हैं तो आप अकेले नहीं हैं, मेरे सहित कई लोग इस मुद्दे का सामना करते हैं और इस लेख को लिखने के समय, कोई समाधान नहीं लगता है। सरल कार्यक्रमों को संकलित करने और अपलोड करने के लिए मुझे लगभग 2-3 मिनट लगते हैं और जब मैंने कुछ BLE कार्यक्रमों की कोशिश की या Mbed OS के साथ काम करने की कोशिश की तो संकलन समय बढ़कर 10 मिनट से अधिक हो गया जिसने मुझे आगे कुछ भी प्रयास करने के लिए प्रोत्साहित नहीं किया। यह Arduino IDE के साथ Mbed OS एकीकरण के कारण है, आइए उम्मीद करते हैं कि अद्भुत Arduino समुदाय का कोई व्यक्ति इसके समाधान के साथ आएगा।
सेंसर डेटा पढ़ने और सीरियल मॉनिटर पर प्रदर्शित करने का कार्यक्रम
अगर हम बोर्ड के BLE या कोर Mbed OS फंक्शंस का उपयोग नहीं करते हैं, तो संकलन का समय उचित था। इसलिए मैंने सभी सेंसर मूल्यों को पढ़ने और इसे नीचे दिखाने जैसे सीरियल मॉनिटर पर प्रदर्शित करने के लिए एक साधारण स्केच लिखा
ऐसा करने का पूरा कोड इस पृष्ठ के नीचे दिया गया है, लेकिन सुनिश्चित करें कि आपने ऊपर उल्लिखित सभी पुस्तकालयों को स्थापित कर दिया है। कोड की व्याख्या इस प्रकार है।
सभी आवश्यक हेडर फ़ाइलों को शामिल करके कार्यक्रम शुरू करें। यहां हम माइक्रोफ़ोन को छोड़कर सभी चार सेंसर का उपयोग करेंगे
#include // 9-अक्ष IMU के लिए पुस्तकालय शामिल करें #include // दबाव को पढ़ने के लिए पुस्तकालय शामिल करें
सेटअप फ़ंक्शन के अंदर हम सभी सेंसर मूल्यों को प्रदर्शित करने के लिए 9600 बॉड दर पर सीरियल मॉनिटर को इनिशियलाइज़ करते हैं और सभी आवश्यक लाइब्रेरीज़ को भी इनिशियलाइज़ करते हैं। सेटअप के अंदर कोड नीचे दिखाया गया है
शून्य सेटअप () {Serial.begin (9600); // सीरियल मॉनिटर सभी सेंसर मूल्यों को प्रदर्शित करने के लिए अगर (! IMU.begin ()) // आरंभिक IMU सेंसर {Serial.println ("IMU को प्रारंभ करने में विफल!"); जबकि (1);} अगर (?! BARO.begin ()) // इनिशियलाइज़ प्रेशर सेंसर {Serial.println ("प्रेशर सेंसर इनिशियलाइज़ करने में असफल रहा!"); जबकि (1);} अगर (?! HTS.begin ()) // प्रारंभिक तापमान और आर्द्रता सेंसर {Serial.println ("तापमान और आर्द्रता सेंसर को प्रारंभ करने में विफल!"); जबकि (1);} अगर ((! APDS.begin ()) // इनिशियलाइज़ कलर, प्रॉक्सिमिटी एंड जेस्चर सेंसर {Serial.println ("कलर, प्रॉक्सिमिटी और जेस्चर सेंसर को शुरू करने में विफल!"); जबकि (1);}}
लूप फ़ंक्शन के अंदर, हम लाइब्रेरी से आवश्यक सेंसर मान पढ़ते हैं और फिर उन्हें सीरियल मॉनिटर पर प्रिंट करते हैं। वाक्यविन्यास को प्रत्येक पुस्तकालय के उदाहरण कार्यक्रम से संदर्भित किया जा सकता है, हमने एक्सेलेरोमीटर, जाइरोस्कोप, मैग्नेटोमीटर, दबाव, तापमान, आर्द्रता और निकटता सेंसर मूल्यों को पढ़ा है और उन्हें सीरियल मॉनीटर पर प्रदर्शित किया है। एक्सेलेरोमीटर मान को मापने के लिए कोड नीचे दिखाया गया है, इसी तरह, हम सभी सेंसर के लिए माप सकते हैं।
// एक्सेलेरोमीटर मान यदि (IMU.accelerationAvailable ()) {IMU.readAcceleration (acceler_x, acceler_y, acceler_z); Serial.print ("एक्सेलेरोमीटर ="); Serial.print (acceler_x); Serial.print (","); Serial.print (acceler_y); Serial.print (","); Serial.println (acceler_z); } देरी (200);
Arduino नैनो 33 BLE- कोड अपलोड करना
कोड 33 को नैनो पर अपलोड करना किसी भी अन्य बोर्ड के समान है, लेकिन ध्यान दें कि बोर्ड में दो COM पोर्ट हैं। जब आप अपलोड बटन पर क्लिक करते हैं तो Arduino IDE कोड को संकलित करता है और फिर सॉफ्टवेयर कमांड के माध्यम से स्वचालित रूप से बोर्ड को रीसेट करता है, यह बोर्ड को बूट लोडर मोड में डाल देगा और आपका कोड अपलोड कर देगा। इस वजह से, एक बार अपलोड हो जाने के बाद, आप देख सकते हैं कि Arduino IDE ने अपने COM पोर्ट को स्वचालित रूप से एक भिन्न संख्या में बदल दिया है और आप अपने सीरियल मॉनिटर को खोलने से पहले इसे वापस बदलना चाह सकते हैं।
इसलिए यह Arduino Nano 33 बोर्ड के साथ अब तक का मेरा अनुभव बहुत अच्छा है, मैं कुछ समय बाद इसके सेंसर और BLE फीचर्स के साथ कुछ बनाने की कोशिश करूंगा। बोर्ड के साथ आपका अनुभव कैसा रहा? आप मुझे इसके साथ क्या बनाना चाहेंगे? टिप्पणी अनुभाग में उत्तर छोड़ दें और हम अधिक चर्चा करेंगे।