एक बैटरी संचालित डेटा संग्रह परियोजना के लिए एक माइक्रोकंट्रोलर का चयन करना


18

मैं एक कुएं में पानी के स्तर को मापने की योजना बना रहा हूं, जो अधिकतम 5 मीटर तक अधिकतम जल स्तर के साथ 10 मीटर गहरा है। मेरी योजना गहराई को मापने के लिए अल्ट्रासोनिक सेंसर एचसी एसआर 04 का उपयोग करना है, इसे ज़िगबी के माध्यम से मेरे घर के अंदर एक रास्पबेरी पाई में प्रसारित करना है।

जैसा कि मेरे पिछले प्रश्न में चर्चा की गई है, मुझे अल्ट्रासाउंड सेंसर और ZigBee मॉड्यूल को एक साथ जोड़ने के लिए एक माइक्रो नियंत्रक का चयन करने की आवश्यकता है।

चयन के लिए पैरामीटर है:

  1. कम बिजली: मैं इसे बैटरी पर चलाने की योजना बना रहा हूं, इसलिए कम बिजली का उपयोग प्राथमिकता है। अब तक मेरे पास बैटरी परिवर्तन या यहां तक ​​कि बैटरी का उपयोग करने के बीच बिजली उपयोग या दिनों के लिए कोई लक्ष्य नहीं है। चूंकि यह एक सीखने की परियोजना के अधिक है और यह मेरे घर में है, इसलिए मैं लचीला हूं, लेकिन कम बिजली का उपयोग बेहतर है।

  2. कम लागत: यह मेरे लिए एक सीखने की परियोजना है, और मैं इस पर अपमानजनक राशि खर्च नहीं करना चाहता, इसलिए कम लागत बेहतर है।

  3. कुएं के अंदर काम करना: पूरी परियोजना एक कुएं के अंदर से काम कर रही होगी और कठोर धूप और बारिश के संपर्क में आएगी। मैं हालांकि एक अच्छा मामला और सुरक्षा प्रदान करूंगा।

  4. कार्यक्रम के लिए आसान है।

मैंने ज़िगबी को चुना क्योंकि यह सरल है, मेरे उपयोग के मामले और कम शक्ति से मिलता है। लेकिन मेरी आवश्यकता सेंसर डेटा को ट्रांसपोर्ट करने की है और मैं अन्य ट्रांसपोर्ट के लिए खुला हूं। मेरे कुएं से रास्पबेरी पाई की दूरी बीच में एक दीवार के साथ लगभग 6 मीटर है। मैं हर 10 मिनट में पानी की गहराई को मापने की योजना बना रहा हूं और एक मिनट में दो बार जब पानी पंप चल रहा है (लगभग 20 मिनट दैनिक)।


2
यह व्यापक, या शायद ऑफ-टॉपिक लगता है। एक बोर्ड पर कोई भी छोटा MCU सूट करेगा। अगर आपने जिगबी पर फैसला नहीं किया है, तो मैं सुझाव दूंगा कि आप बीबीसी माइक्रो को देखें: बिट, जिसमें BLE ऑनबोर्ड और एक बैटरी कनेक्टर है।
सीन होलीहेन

2
यदि आप एक zigbee रेडियो चाहते हैं, तो आपको कम से कम उन हिस्सों का मूल्यांकन करना चाहिए जो एक MCU (आमतौर पर ARM Cortex-M) CPU के साथ संयोजन करते हैं। इसका मतलब यह नहीं है कि आपको उस मार्ग पर जाना होगा, लेकिन अगर आप यह नहीं तय करते हैं कि यह एक अच्छे कारण के लिए होना चाहिए।
क्रिस स्ट्रैटन

2
"एक कुएं के अंदर" से आपका क्या मतलब है? क्या मामला पानी के अंदर होगा? पानी के नीचे एक्सबी मॉड्यूल से किसी भी ट्रांसमिशन या रिसेप्शन की उम्मीद न करें। कई 2.4 गीगाहर्ट्ज बैंड पर काम करते हैं, जो पानी से अच्छी तरह से अवशोषित होता है; अन्य 900 मेगाहर्ट्ज के आसपास काम करते हैं, जो शायद पानी को बहुत अच्छी तरह से प्रवेश नहीं कर सकते हैं। यदि मामला पानी के नीचे नहीं है, तो 6 मीटर + दीवार ज़ेब्स के साथ ठीक होनी चाहिए।
जोनास श्फर

"एक कुएं के अंदर" का अर्थ है कि उपकरण कुएं के अंदर रखा जाएगा, लेकिन पानी के ऊपर।
राज

जवाबों:


20

माइक्रोकंट्रोलर चयन की एक सामान्य प्रक्रिया।

  1. माइक्रोकंट्रोलर की ओर अपनी आवश्यकताओं को बढ़ाएं। इस मामले में उदाहरण के लिए:

    • 1 हार्डवेयर टाइमर , ट्रिगर और इको दालों के बीच के समय को मापने के लिए।
    • 2 GPIO पिन सेंसर इको और ट्रिगर पिन इंटरफेस करने के लिए।
    • आरएफ संचार मॉड्यूल इंटरफ़ेस करने के लिए संभवतः UART
    • 1 एडीसी इनपुट बैटरी वोल्टेज की निगरानी करने के लिए।


    आप इसके लिए एक 8 पिन नियंत्रक के साथ मिल सकते हैं, जिसे सामान्य प्रयोजनों के लिए प्रोग्रामर पिन के उपयोग की भी आवश्यकता हो सकती है।

  2. आवश्यक सीपीयू प्रदर्शन और मेमोरी आवश्यकताओं को तय करें । क्या 8-बिट MCU का उपयोग करना पर्याप्त है या आपको इसके बजाय 32-बिट की आवश्यकता है? CPU घड़ी की गति स्वीकार्य दसियों मेगाहर्ट्ज या 1 मेगाहर्ट्ज पर्याप्त है? कितने प्रोग्राम मेमोरी, रैम और रोम की आवश्यकता है?

    वर्णित एप्लिकेशन को देखते हुए, आपको उच्च कंप्यूटिंग प्रदर्शन की आवश्यकता नहीं है। संभवतः एक 8-बिट नियंत्रक पर्याप्त होगा (हालांकि 32-बिट एक की तुलना में बहुत सस्ता नहीं होगा ताकि आप यहां कीमत के आधार पर तय कर सकें)।

  3. कम शक्ति । जब यह महत्वपूर्ण नहीं है, तो आप संभवतः कम आपूर्ति मोड के साथ सबसे कम आपूर्ति वोल्टेज और सिस्टम घड़ी आवृत्ति के साथ लगभग किसी भी प्रकार के नियंत्रक के साथ मिल सकते हैं। यदि यह अधिक महत्वपूर्ण है तो आप अपनी खोज सूची को कम शक्ति वाले MCU कोर जैसे (ARM® Cortex®-M0 या M0 + CPU कोर) के साथ शुरू कर सकते हैं। आमतौर पर डेटाशीट में कम पावर मोड / VCC / SysClk फ़्रीक्वेंसी के अधिकांश टेबल होते हैं , बेहतर यह है कि प्रत्येक बाह्य उपकरणों की खपत को भी सूचीबद्ध करेगा।

  4. डेवलपर उपकरण । मैं इसे बहुत महत्वपूर्ण पहलू मानता हूं। समर्पित हार्डवेयर प्रोग्रामर टूल किस्मत को खर्च कर सकते हैं इसलिए आमतौर पर मैं MCUs से चिपकता हूं, जिनके लिए पहले से ही प्रोग्रामर हैं। जब आप किसी अन्य परिवार या ब्रांड पर स्विच करते हैं, तो एक विकास बोर्ड में निवेश करना अच्छा होता है जिसमें एक ऑन-बोर्ड प्रोग्रामर होता है जिसे बाद में आपके कस्टम बोर्डों को प्रोग्राम करने के लिए इस्तेमाल किया जा सकता है। सामान्य तौर पर हमेशा पहले यह देखें कि किसी माइक्रोकंट्रोलर को प्रोग्राम डाउनलोड करने में सक्षम होने में कितना खर्च आएगा।

जैसा कि @ सीन ने टिप्पणियों में बताया है, एक संभव और लागत प्रभावी समाधान ऐसे आरएफ मॉड्यूल की खोज करना होगा जो एक एकीकृत, प्रोग्रामेबल एप्लिकेशन एमसीयू के साथ आता है, जो आरएफ संचार भाग को संभालने के साथ-साथ आपके फर्मवेयर को भी चला सकता है। इस तरह के मॉड्यूल BLE, WiFi और ZigBee और संभवतः कई अन्य तकनीकों के लिए मौजूद हैं।

इसके अलावा कुएं में कोई भी MCU कैसे बचेगा। यह सभी उस संलग्नक पर नीचे आएगा जो आप उपकरण के लिए प्रदान करेंगे। उदाहरण के लिए यह ज्यादा मायने नहीं रखेगा कि कौन सा MCU आप चुनें अगर बाड़े में 100% पानी प्रतिरोधी न हो।


टी एल; डॉ; यहां उत्पाद विशिष्ट भाग आता है।

  1. आप ATtiny25 को चुन सकते हैं जिसकी लागत Farnell पर 0.87 $ / 1 है । 8-बिट, 8-पिन तो ज्यादा जगह नहीं लेगा। पावर-डाउन मोड में यह 0.2 μA को अक्षम वॉचडॉग के साथ, 3 V पर 2-4 μA की खपत करता है अगर वॉचडॉग सक्षम है। यह Arduino संगत है, इसलिए प्रोग्रामिंग में यह आपको ज्यादा खर्च नहीं होगा (USBasp या AVRdude प्रोग्रामर की लागत eBay पर लगभग $ 2 है)। ( ध्यान दें : आपको आरएफ संचार मॉड्यूल को इंटरफ़ेस करने के लिए Arduino सॉफ़्टवेयर सीरियल लाइब्रेरी का उपयोग करना चाहिए, क्योंकि यह MCU केवल हार्डवेयर द्वाराII है।) सभी में यह अपेक्षाकृत कम बिजली की खपत के साथ छोटा, सस्ता है, लेकिन बिट-बैंग UART हो सकता है। हालांकि यह जटिल है । इसमें 2 kB प्रोग्राम मेमोरी है जो आपके लिए पर्याप्त होनी चाहिए।

  2. या ARM Cortex M0 के साथ जाएं, जो स्टैंडबाई मोड में 2 μA और स्टॉप मोड में 5 μA खपत करता है। ऐसा MCU उदाहरण के लिए STM32F030F4 है जिसकी लागत 1.09 $ / 1 है । यह अधिक शक्तिशाली 32-बिट नियंत्रक है जिसमें अधिकतम 48 मेगाहर्ट्ज सिस्टम क्लॉक आवृत्ति है, लेकिन जैसा कि आप केवल + 0.2 $ के लिए देख सकते हैं। यह 16 केबी प्रोग्राम मेमोरी के साथ आता है, जो इस सरल कार्य के लिए पर्याप्त है। इसमें SPI, UART, I2C और काफी अन्य परिधीय हैं। प्रोग्रामिंग में यह अधिक खर्च होगा, समर्पित प्रोग्रामर की लागत Farnell पर $ 20 है। मेरी राय में, इसके लायक नहीं है। इसके बजाय आप F0 परिवार के लिए एक विकास बोर्ड में निवेश कर सकते हैं जिसमें एक ऑन-बोर्ड प्रोग्रामर (ST-LINK) हैSTM32F0Discovery बोर्ड की लागत ~ 10 $ है। आप इस बोर्ड के साथ प्रोटोटाइप शुरू कर सकते हैं और इसे बाद में प्रोग्रामर के रूप में उपयोग कर सकते हैं।


3
ध्यान दें कि डिस्कवरी और न्यूक्लियो बोर्ड के एसटी-लिंक का इस्तेमाल अक्सर बोर्ड पर मौजूद अन्य एमसीयू की तुलना में किया जा सकता है। उस विशिष्ट बोर्ड के बारे में निश्चित नहीं है, लेकिन इसके लुक से, यह SWD का उपयोग करता है और सही पर कूदने वालों का उपयोग करके डिस्कनेक्ट किया जा सकता है। इसके बारे में अच्छी बात यह है कि ST-LINK न केवल प्रोग्रामर हैं, बल्कि इन-सर्किट डिबगर भी हैं , जिससे विकास में बहुत आसानी होती है
जोनास श्फर

3
इसके अलावा, यदि आप XBEE के उत्तरों की परवाह नहीं करते हैं, तो आप UART पाने के लिए ATtiny के यूनिवर्सल सीरियल इंटरफ़ेस का उपयोग कर सकते हैं जो बिट-बैंग सॉफ़्टवेयर कार्यान्वयन से तेज़ है।
जोनास श्फर

3
वर्थ नोटिंग कि रेडियो मॉड्यूल अक्सर अन-डेडिकेटेड MCU रिसोर्स के साथ आते हैं (और मॉडल्स टाइप सिम्प्लेक्स को सरल बनाने के लिए मौजूद होते हैं)। सीपीयू को आमतौर पर आरएफ स्टैक के साथ साझा किया जाता है, इसलिए आपको समय-समय पर इंटरप्ट आदि को स्वीकार करने की आवश्यकता होती है
सीन होउलहेन

3
ULPBENCH एक अच्छा संसाधन है जब कम बिजली संचालन (बैटरी) महत्वपूर्ण है।
नियॉनजॉन

5

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

मुझे पता है कि कुछ लोगों को Arduino पर इस्तेमाल की जाने वाली C / C ++ आधारित भाषा के साथ समस्या है, लेकिन इस मामले में आप बड़े पैमाने पर पहले से मौजूद स्क्रिप्ट्स को अन्य उपयोगकर्ताओं से मिला रहे होंगे।

यदि आप "Arduino स्लीप मोड" के लिए Google के आसपास हैं, तो आपको उदाहरण मिलेंगे कि आप Arduino को कम पॉवर मोड में कैसे रख सकते हैं, और पढ़ने के लिए छिटपुट रूप से जाग सकते हैं, इसे संवाद कर सकते हैं, फिर स्लीप मोड में प्रवेश कर सकते हैं।


1
जबकि ATmega चिप के साथ अच्छा बिजली प्रबंधन संभव है, एक सामान्य Arduino बोर्ड में परजीवी शक्ति वाले नाले हैं जो बैटरी जीवन को तेज करेंगे।
क्रिस स्ट्रैटन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.