विषयसूची:

UCL एंबेडेड - B0B द लाइनफॉलोअर: 9 चरण
UCL एंबेडेड - B0B द लाइनफॉलोअर: 9 चरण

वीडियो: UCL एंबेडेड - B0B द लाइनफॉलोअर: 9 चरण

वीडियो: UCL एंबेडेड - B0B द लाइनफॉलोअर: 9 चरण
वीडियो: 50 महत्वपूर्ण प्रश्न || DEC 2021 JAN 2022 || CCC Important Questions || GyanXp 2024, जुलाई
Anonim
UCL एंबेडेड - B0B द लाइनफॉलोअर
UCL एंबेडेड - B0B द लाइनफॉलोअर

यह बी0बी है।*

B0B एक सामान्य रेडियो नियंत्रित कार है, जो अस्थायी रूप से एक पंक्ति-निम्नलिखित रोबोट के आधार पर सेवा प्रदान करती है।

उससे पहले कई लाइन-फॉलोइंग रोबोटों की तरह, वह हमारे मामले में डक्ट टेप में, फर्श और एक विपरीत सामग्री के बीच संक्रमण के कारण एक लाइन पर बने रहने की पूरी कोशिश करेगा।

कई अन्य लाइन-फॉलोइंग रोबोटों के विपरीत, B0B भी डेटा एकत्र करता है और इसे वाईफाई के माध्यम से भेजता है।

एक शौक परियोजना के लिए पूरी तरह से ओवरकिल, इसमें ऐसे कई विषय शामिल हैं जो आपको दिलचस्प लग सकते हैं। यह मार्गदर्शिका उनके जन्म, उनके कार्यों और आप उनके जैसा कैसे बना सकते हैं, इसका वर्णन करती है।

इसमें विभिन्न इलेक्ट्रॉनिक्स पर गुस्सा होना भी शामिल है क्योंकि हम उन्हें चाहते थे, और उन कठिनाइयों को दूर करने के लिए हमने जो कदम उठाए, (मैं आपको ईएसपी 8266-01 देख रहा हूं)।

प्रोजेक्ट को काम करने के लिए 2 कोड हैं। पहला कोड ESP8266 मॉड्यूल के लिए है जिसे हम एक प्रोग्रामर के रूप में Arduino का उपयोग करते हैं, और दूसरा कोड Arduino पर चलने वाला है।

चरण 1: अवयव

इस परियोजना के लिए आपको आवश्यकता होगी:

हार्डवेयर:

• 1x रेडियो कंट्रोलर कार, (ईएससी और स्टीयरिंग सर्वो होनी चाहिए)।

हम ज्यादातर स्टॉक Traxxas 1/16 E-Revo VXL का उपयोग कर रहे थे, ज्यादातर इसलिए कि हमारे पास यही था, और हमें पूरा विश्वास था कि हम इसे Arduino के साथ नियंत्रित करने में सक्षम होंगे। इसके अलावा, क्योंकि यह अतिरिक्त हार्डवेयर की एक महत्वहीन राशि नहीं ले जाएगा, हमें विश्वास था कि यह 1/16 ई-रेवो के लिए कोई समस्या नहीं होगी।

हालाँकि, अधिकांश रेडियो नियंत्रित कारों (जिन्हें आसानी से अलग किया जा सकता है) का उपयोग संभवतः इसके बजाय किया जा सकता है, और प्रक्रिया बहुत समान होगी।

• एक टन डक्ट टेप।

रंग जितना संभव हो फर्श के विपरीत होना चाहिए। हमारे परीक्षण के माहौल में हमने एक अंधेरी मंजिल पर सफेद टेप का इस्तेमाल किया।

• 1x Arduino मेगा 2560।

छोटे Arduino शायद भी ठीक हैं, लेकिन आपको पिन के लिए दबाया जाएगा।

• 1x बड़ा ब्रेड बोर्ड।

एक पर्याप्त है, लेकिन उपयोगकर्ता त्रुटि के जोखिम को कम करने के लिए अन्य वोल्टेज बिजली लाइनों को अलग करने के लिए हमारे पास एक छोटा भी था।

• 1x TCRT5000 IR एनालॉग सेंसर (टकराव से बचने के लिए प्रयुक्त)।

सटीक ब्रांड/मॉडल कोई फर्क नहीं पड़ता अगर यह Arduino संगत है और दूरी को मापता है। "दूरी", "बाधा" सेंसर जैसे कीवर्ड खोजें। तकनीकी रूप से एक डिजिटल सेंसर मामूली कोड परिवर्तनों के साथ भी काम करेगा, लेकिन हम एक एनालॉग का उपयोग कर रहे हैं।

• 1x या 2x ग्रेविटी: एनालॉग ग्रेस्केल सेंसर v2

एक लाइन फॉलोअर के लिए जरूरी है। सटीक मॉडल कोई फर्क नहीं पड़ता, जब तक कि यह परावर्तित प्रकाश की तीव्रता को देख रहा हो और एक एनालॉग सिग्नल आउटपुट करता हो। दूसरा 'रूम' डिटेक्शन के लिए अपेक्षित रूप से काम नहीं कर रहा था और इसे छोड़ा जा सकता है, या एक विकल्प, जैसे आरजीबी रंग सेंसर पाया जा सकता है, संभवतः बेहतर प्रभाव के लिए। हमें अभी इसका परीक्षण करना है।

• 1 एक्स ईएसपी 8266-01।

ESP 8266 के बहुत सारे संस्करण उपलब्ध हैं। हमारे पास केवल 8266-01 का अनुभव है, और यह गारंटी नहीं दे सकता कि ईएसपी कोड एक अलग संस्करण के साथ काम करेगा।

• 1 x ESP8266-01 वाई-फाई शील्ड।

तकनीकी रूप से वैकल्पिक, लेकिन यदि आप इसका उपयोग नहीं करते हैं, तो वाई-फाई मॉड्यूल से जुड़ी हर चीज बहुत अधिक जटिल हो जाएगी। हालाँकि, गाइड मान लेगा कि आपके पास यह है, (यदि नहीं, तो Arduino में ESP-01 को सही ढंग से वायरिंग करने के लिए ऑनलाइन गाइड खोजें), क्योंकि यह गलत तरीके से करने से मॉड्यूल को नुकसान हो सकता है।

• वाहन के लिए बैटरी और ऐड-ऑन इलेक्ट्रॉनिक्स को पावर देने के लिए बैटरी।

हमने 2.2 AH क्षमता, 7.4V लाइपो बैटरी की एक जोड़ी का उपयोग किया जो सब कुछ शक्ति के समानांतर है। आपको अपनी पसंद के वाहन के साथ सामान्य रूप से उपयोग की जाने वाली बैटरियों का उपयोग करने में सक्षम होना चाहिए। यदि आप 5V से ऊपर हैं लेकिन 20V से नीचे हैं, तो नाममात्र वोल्टेज की तुलना में क्षमता अधिक महत्वपूर्ण है।

• बहुत सारे जम्पर केबल।

मैंने इनकी सही संख्या गिनना छोड़ दिया है। अगर आपको लगता है कि आपके पास पर्याप्त है, तो शायद आप नहीं करते हैं।

• अंत में, सब कुछ संलग्न करने के लिए, आपको अपनी पसंद के वाहन में Arduino, सेंसर, ब्रेडबोर्ड और वाई-फाई-मॉड्यूल को माउंट करना होगा। आधार के रूप में आप क्या उपयोग कर रहे हैं, और कौन सी सामग्री उपलब्ध है, इसके आधार पर आपका परिणाम अलग-अलग होगा।

हमने इस्तेमाल किया:

• ज़िप बंध।

• कुछ सुपर गोंद।

• स्क्रैप पेपर/राल ट्यूब के छोटे टुकड़े हमारे पास उपयुक्त व्यास के साथ थे।

• चित्र फ़्रेम से एक पुराना मेसोनाइट बैकप्लेट, आकार में काटा गया।

• थोड़ा और डक्ट टेप।

• आपकी पसंद की रेडियो-नियंत्रित कार पर काम करने के लिए आवश्यक कोई भी उपकरण।

हम ज्यादातर कई बिट्स के साथ एक छोटे स्क्रू ड्राइवर सेट का इस्तेमाल करते थे, लेकिन कभी-कभी कार के साथ आने वाले स्टॉक टूलसेट को बाहर निकालना पड़ता था।

सॉफ्टवेयर:

• नोड-लाल

डेटा संग्रह का एक महत्वपूर्ण हिस्सा।

• एक एमक्यूटीटी सर्वर।

हमारे वाहन और Node-red के बीच का बिचौलिया। प्रारंभ में, परीक्षण के लिए, हमने test.mosquitto.org. का उपयोग किया

बाद में हमने इस्तेमाल किया:

• CloudMQTT.com

यह बहुत अधिक विश्वसनीय था जिसे स्थापित करने के लिए थोड़ा अधिक जटिल होने के लिए बनाया गया था।

• वैंपसर्वर।

डेटा संग्रह का अंतिम भाग। विशेष रूप से, हम अपने एकत्रित डेटा को संग्रहीत करने के लिए इसके SQL डेटाबेस का उपयोग करेंगे।

चरण 2: विद्युत आरेख

विद्युत नक़्शा
विद्युत नक़्शा

चरण 3: भौतिक निर्माण

भौतिक निर्माण
भौतिक निर्माण
भौतिक निर्माण
भौतिक निर्माण
भौतिक निर्माण
भौतिक निर्माण

हमारे समाधान में भौतिक असेंबली के लिए एक सीधा आगे का दृष्टिकोण है।

मूल रिसीवर और उसके जलरोधक बाड़े को आरसी कार से हटा दिया गया था, क्योंकि इसकी आवश्यकता नहीं है।

हमने पाया कि हमारे लाइन फॉलो सेंसर के लिए सामने के पहियों के बीच एक उपयुक्त स्थान था, इसलिए हमने इसे सामने की स्किड प्लेट के ऊपर एक ज़िप्टी को लूप करके रखा।

टक्कर रोधी के लिए हम जिस सेंसर का उपयोग करते हैं, वह सामने वाले बम्पर के पीछे की तरह होता है। इसे अभी भी प्रभावों से बचाया जा रहा है, और इसका घर्षण फिट बैठता है। यह कभी-कभी थोड़े से ऊपर की ओर देखते हुए समाप्त होता है। यह पूर्ण है।

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

वाईफाई-मॉड्यूल को सुरक्षित करने के लिए कोई विशेष उपाय नहीं किए गए हैं। यह हमारा नहीं है, इसलिए इसे चिपकाना, या इसे नीचे टेप करना अनावश्यक समझा गया क्योंकि यह इतना हल्का है कि यह ज्यादा नहीं घूमेगा, और तार इसे जगह में रखने के लिए पर्याप्त हैं।

अंत में, हमारे पास 'कमरे' का पता लगाने के लिए एक सेंसर है जिसे पिछले पहियों में से एक द्वारा निलंबन घटकों के लिए ज़िपित किया गया था। ऑपरेशन के दौरान, इसे वाहन द्वारा नेविगेट करने के लिए उपयोग की जाने वाली रेखा से दूर होना चाहिए।

चरण 4: ESP8266 मॉड्यूल

ESP8266 मॉड्यूल
ESP8266 मॉड्यूल
ESP8266 मॉड्यूल
ESP8266 मॉड्यूल

वाईफाई मॉड्यूल, ESP8266, को दो अलग-अलग पिन सेटअप की आवश्यकता होती है। एक नए प्रोग्राम के साथ मॉड्यूल को फ्लैश करते समय और प्रोग्रामर के रूप में Arduino Mega 2560 का उपयोग करते समय एक सेटअप का उपयोग किया जाना है। अन्य सेटअप मॉड्यूल के लिए है जब यह उपयोग में है और एमक्यूटीटी ब्रोकर को जानकारी भेज रहा है।

ESP8266 मॉड्यूल में कोड अपलोड करने के लिए Arduino IDE का उपयोग करके आपको एक बोर्ड प्रबंधक और एक अतिरिक्त बोर्ड प्रबंधक स्थापित करने की आवश्यकता होगी

बोर्ड मैनेजर के तहत esp8266 बोर्ड मैनेजर स्थापित करें। यह "esp" सर्च करने पर आसानी से मिल जाएगा। यह महत्वपूर्ण है कि आप संस्करण 2.5.0 स्थापित करें, पुराना नहीं, नया नहीं।

अतिरिक्त बोर्ड प्रबंधक URL में सेटिंग के अंतर्गत, इस पंक्ति में कॉपी करें:

arduino.esp8266.com/stable/package_esp8266c…

ESP8266 मॉड्यूल में कुछ भी अपलोड करने में सक्षम होने के लिए आपको एक विशिष्ट पिन सेटअप का उपयोग करने की आवश्यकता होगी ताकि आप मॉड्यूल को फ्लैश कर सकें। हर बार जब आप मॉड्यूल पर चल रहे वर्तमान कोड में बदलाव करना चाहते हैं तो इसे करने की आवश्यकता होती है। मॉड्यूल को चमकाने से पहले बोर्ड प्रबंधक से सही ESP8266 मॉड्यूल का चयन करना न भूलें। इस परियोजना में हमने सामान्य ESP8266 बोर्ड को चुना। मॉड्यूल को चमकाने के लिए पिन सेटअप इस खंड में पहली तस्वीर पर पाया जाता है।

ESP8266 मॉड्यूल को फ्लैश करने के बाद आपको पिन सेटअप को स्विच करना होगा। आप अपने लिए सेटअप को आसान बनाने के लिए एडॉप्टर का उपयोग करना भी चुन सकते हैं। जब भी हमारे पास मॉड्यूल चल रहा था, इस परियोजना में हमने एक एडेप्टर का चयन किया। एडेप्टर के साथ पिन सेटअप इस सेगमेंट में दूसरी तस्वीर पर मिलता है।

ESP8266 मॉड्यूल पर फ्लैश किया जाने वाला कोड इस मामले में एक उपयोगकर्ता नाम और पासवर्ड के साथ एक वाईफाई और एक MQTT ब्रोकर के कनेक्शन को सेटअप करता है, लेकिन यदि आप कोड की टिप्पणियों में वर्णित आवश्यक परिवर्तन करते हैं, तो इसे बिना किया जा सकता है। इस परियोजना के लिए हमारे ब्रोकर को काम करने के लिए एक उपयोगकर्ता नाम और पासवर्ड की आवश्यकता है। मॉड्यूल सीरियल पोर्ट से आने वाले संदेशों को पढ़ता है जिससे यह जुड़ा हुआ है। यह Arduino कोड द्वारा बनाई गई हर नई लाइन को पढ़ेगा, संदेश को समझेगा और संदेश को फिर से बनाएगा। इसके बाद यह एमक्यूटीटी ब्रोकर को संदेश भेजता है जिसे कोड में निर्दिष्ट किया गया है। ESP8266 मॉड्यूल के लिए कोड:

चरण 5: अरुडिनो

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

कार्यक्रम में दो बटन हैं जो आरसी कार के लिए स्टार्ट और स्टॉप बटन के रूप में कार्य करते हैं। तकनीकी रूप से "स्टॉप" बटन एक "आर्मिंग" बटन है जो कि मोटर को भेजे गए PWM मान के बराबर होता है जिससे RC कार रुक जाती है। स्टार्ट बटन एक पीडब्लूएम मान भेजता है जो आरसी कार के मुश्किल से आगे बढ़ने के बराबर होता है क्योंकि अगर यह बहुत अधिक गति प्राप्त करता है तो यह बहुत तेज ड्राइव करेगा।

आरसी कार के सामने के छोर में एक टक्कर से बचाव डिटेक्टर जोड़ा जाता है ताकि यह पता लगाया जा सके कि आगे का रास्ता साफ है या अवरुद्ध है। यदि इसे अवरुद्ध कर दिया जाता है तो आरसी कार तब तक रुकेगी जब तक कि बाधा दूर नहीं हो जाती। डिटेक्टर से एनालॉग सिग्नल का उपयोग यह निर्धारित करने के लिए किया जाता है कि कुछ रास्ता रोक रहा है या नहीं और इसे आगे बढ़ने के साथ-साथ रुकने में सक्षम होने के लिए एक मानदंड बनाया गया है।

एक सेकेंडरी ग्रे स्केल सेंसर, "रूम डिटेक्टर" का उपयोग यह पता लगाने के लिए किया जाता है कि RC कार किस कमरे में दाखिल हुई है। यह लाइन डिटेक्टर के समान सिद्धांत पर काम करता है, लेकिन यह प्रकाश और अंधेरे के बीच परिवर्तन की तलाश नहीं करता है, बल्कि एक विशिष्ट सीमा के भीतर मूल्यों के लिए देखता है जो रूम डिटेक्टर से देखे गए मूल्य के आधार पर अलग-अलग कमरों से मेल खाता है।

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

Arduino मेगा 2560 के लिए कोड:

चरण 6: MySQL डेटाबेस

WampServer विंडोज के लिए एक वेब विकास वातावरण है जो हमें PHP और एक MySQL डेटाबेस के साथ एप्लिकेशन बनाने की अनुमति देता है। PhpMyAdmin हमें अपने डेटाबेस को आसान तरीके से प्रबंधित करने की अनुमति देता है।

आरंभ करने के लिए यहां जाएं:

इस प्रोजेक्ट में हम विंडोज़ के लिए संस्करण 3.17 x64 बिट्स का उपयोग करते हैं। स्थापना के बाद सुनिश्चित करें कि सभी सेवाएं चल रही हैं, जिसका अर्थ है कि छोटा आइकन लाल या नारंगी के बजाय हरा हो जाता है। यदि आइकन हरा है, तो आप अपने MySQL डेटाबेस को प्रबंधित करने के लिए PhpMyAdmin तक पहुंच सकते हैं।

PhpMyAdmin का उपयोग करके MySQL तक पहुँचें और एक नया डेटाबेस बनाएँ। इसे कुछ उपयुक्त नाम दें जिसे आप याद रख सकें, इस परियोजना में इसे "line_follow_log" कहा गया था। डेटाबेस बनाने के बाद, आपको डेटाबेस में एक टेबल बनानी चाहिए। सुनिश्चित करें कि कॉलम की संख्या फिट बैठती है। प्रोजेक्ट में हम 4 कॉलम का उपयोग करते हैं। एक कॉलम टाइमस्टैम्प के लिए है और अंतिम तीन का उपयोग वाहन से डेटा स्टोर करने के लिए किया जाता है। प्रत्येक कॉलम के लिए उचित डेटाटाइप का प्रयोग करें। हमने टाइमस्टैम्प कॉलम के लिए "लॉन्गटेक्स्ट" और बाकी के लिए "मीडियमटेक्स्ट" का इस्तेमाल किया।

PhpMyAdmin और MySQL में आपको बस इतना ही करना चाहिए। नोड-रेड के बारे में अनुभाग के लिए अपना डेटाबेस और तालिका याद रखें।

चरण 7: नोड-लाल

डेटा संग्रह को संभालने के लिए, हम नोड-रेड में काफी सरल प्रवाह का उपयोग करेंगे। यह हमारे MQTT सर्वर से जुड़ता है, और हमारे MYSQL डेटाबेस को लिखता है।

ऐसा करने के लिए, हमें विभिन्न कार्यों के काम करने के लिए कुछ पैलेट की आवश्यकता होती है, और इसे चलाने के लिए हमें कुछ वास्तविक कोड की आवश्यकता होती है।

पहली चीजें पहले। हमें निम्नलिखित पैलेट की आवश्यकता होगी।

Node-red-contrib-mqtt-broker: यह हमारे MQTT ब्रोकर से जुड़ा है।

नोड-रेड-डैशबोर्ड: हमारा डैशबोर्ड, एकत्र किए गए डेटा को नेत्रहीन रूप से दर्शाने के लिए आवश्यक है।

नोड-रेड-नोड-mysql: SQL डेटाबेस से हमारा कनेक्शन।

यह नोड-रेड के लिए पूरी तरह से विकसित गाइड होने के लिए नहीं है, लेकिन मैं समझाऊंगा कि नोड-रेड फ्लो क्या करता है।

प्रारंभ में, हमारे पास हमारे पसंद के मरने/डिस्कनेक्शन के एमक्यूटीटी सर्वर के साथ समस्याएं थीं, प्रतीत होता है कि यादृच्छिक रूप से, जिसने किसी भी बदलाव को निराशाजनक प्रयास किया क्योंकि यह स्पष्ट नहीं था कि परिवर्तन फायदेमंद थे या नहीं, जब हम परिणाम नहीं देख पाए। तो बटन 'क्या सर्वर मर गया?' 'नहीं' इंजेक्ट करता है, निम्नलिखित ब्लॉक इसे हमारे MQTT सर्वर में इंजेक्ट करता है। यदि यह मृत नहीं है, तो डीबग विंडो में 'नहीं' दिखाई देगा। यह न केवल परीक्षण करने के लिए किया जाता है, बल्कि नोड-रेड को एमक्यूटीटी सर्वर से फिर से कनेक्ट करने का प्रयास करने के लिए मजबूर करने के लिए किया जाता है।

'टेस्ट स्ट्रिंग' MQTT ब्रोकर को एक कॉस्ट्यूम स्ट्रिंग भेजती है। हमने इस स्ट्रिंग को अरुडिनो से प्राप्त होने के समान स्वरूपित किया है। यह नेटवर्क को कॉन्फ़िगर करने में आसान समय था जो संदेशों को डिकोड करता है, बिना प्रोजेक्ट को चलाने, डेटा एकत्र करने की आवश्यकता के बिना।

कार्यक्षेत्र में अंतिम प्रवाह को दो खंडों में विभाजित किया जा सकता है। निचली शाखा केवल आने वाले संदेशों को पढ़ती है, उन्हें डीबग विंडो में पोस्ट करती है और उन्हें SQL सर्वर पर सहेजती है।

फ़ंक्शन नोड के बाद कनेक्टेड स्विच का बड़ा नेटवर्क यदि वास्तविक 'जादू' होता है।

कार्यवाही फ़ंक्शन आने वाली स्ट्रिंग को पढ़ता है, इसे प्रत्येक अर्ध-कोलन के साथ विभाजित करता है और प्रत्येक आउटपुट पर अनुभागों को पास करता है। निम्नलिखित स्विच दो अलग-अलग आने वाली सूचनाओं में से एक की तलाश करते हैं। जानकारी का एक विशिष्ट टुकड़ा हमेशा एक आउटपुट से पारित किया जाता है, दूसरा विकल्प दूसरे आउटपुट द्वारा छोड़ दिया जाता है। उसके बाद, स्विच ब्लॉकों का दूसरा समूह है। वे केवल एक विशिष्ट इनपुट के साथ सक्रिय होंगे, और कुछ और आउटपुट करेंगे।

एक उदाहरण, 'बाधा', अन्य सभी की तरह एक द्विआधारी विकल्प है, यह या तो ड्राइव करने के लिए स्पष्ट है, या यह नहीं है। तो इसे 0, या 1 प्राप्त होगा। A 0 को 'स्पष्ट' शाखा में भेजा जाएगा, 1 को 'अवरुद्ध' शाखा में भेजा जाएगा। 'क्लियर', 'ऑब्स्ट्रक्टेड' स्विच, यदि सक्रिय हैं, तो क्रमशः कुछ विशिष्ट, स्पष्ट, या बाधित आउटपुट देंगे। ग्रीन प्रोसीडिंग ब्लॉक डिबग विंडो में पोस्ट होंगे, ब्लू हमारे डैशबोर्ड पर लिखेगा।

'स्थिति' और 'स्थान' शाखाएँ बिल्कुल समान कार्य करती हैं।

चरण 8: एमक्यूटीटी ब्रोकर

ब्रोकर एक सर्वर होता है जो क्लाइंट के संदेशों को उपयुक्त गंतव्य क्लाइंट तक रूट करता है। एक एमक्यूटीटी ब्रोकर वह है जहां ग्राहक नेटवर्क पर ब्रोकर से जुड़ने के लिए एमक्यूटीटी लाइब्रेरी का उपयोग करते हैं।

इस परियोजना के लिए हमने "क्यूट कैट" संस्करण के लिए मुफ्त सदस्यता के साथ CloudMQTT सेवा का उपयोग करके एक MQTT ब्रोकर बनाया है। इसकी सीमा है लेकिन हम इस परियोजना में उनसे अधिक नहीं हैं। वाईफाई मॉड्यूल ब्रोकर से जुड़ सकता है और ब्रोकर फिर संदेशों को एक उपयुक्त गंतव्य क्लाइंट को रूट करता है। इस मामले में ग्राहक हमारा नोड-रेड है। CloudMQTT सेवा उनके सर्वर के लिए एक उपयोगकर्ता नाम और पासवर्ड सेट करती है, इसलिए हमें उच्च सुरक्षा की गारंटी है। मूल रूप से इसका मतलब है कि केवल उपयोगकर्ता नाम और पासवर्ड वाले ही इस विशिष्ट CloudMQTT सेवा का उपयोग कर सकते हैं। ESP8266 कोड के साथ-साथ Node-Red पर कनेक्शन स्थापित करते समय उपयोगकर्ता नाम और पासवर्ड महत्वपूर्ण है।

ब्रोकर को प्राप्त होने वाले संदेशों के लिए चल रहे आंकड़े एक सुखद विशेषता है, जिसका उपयोग यह देखने के लिए किया जा सकता है कि आपकी सदस्यता योजना कितनी अच्छी तरह से सूचनाओं को संभाल रही है।

ब्रोकर से वाईफाई मॉड्यूल में संदेश भेजने की संभावना एक अच्छी सुविधा है, लेकिन हमने इस परियोजना में उनका उपयोग नहीं किया।

चरण 9: हॉबी इलेक्ट्रॉनिक्स

शुरुआत से पहले हम एक पिछले प्रोजेक्ट से जानते थे कि स्टॉक स्टीयरिंग सर्वो को एक Arduino से PWM सिग्नल के साथ नियंत्रित किया जा सकता है, जिसमें समान वायरिंग होती है, और एक ही स्टॉक रेडियो रिसीवर पर विभिन्न चैनलों में प्लगिंग होती है, हमने इलेक्ट्रॉनिक स्पीड कंट्रोल, (ESC से) ग्रहण किया। now on), जो मोटर को नियंत्रित करता है, उसी तरह Arduino से PWM के माध्यम से नियंत्रित किया जा सकता है।

इस सिद्धांत का परीक्षण करने के लिए, हम एक छोटा Arduino स्केच बनाते हैं। स्केच एक पोटेंशियोमीटर से एक एनालॉग इनपुट पढ़ता है, मान को 0, 1024 से 0, 255 तक रीमैप करता है और परिणामी मान को PWM पिन में आउटपुट करता है, एनालॉग्राइट () का उपयोग करते हुए, जबकि एक छोटे बॉक्स पर आर / सी कार थी, और था पहियों को हटा दिया।

पॉट मीटर पर रेंज के माध्यम से स्वीप करने के बाद, ईएससी 'जागने' के लिए लग रहा था और हम इसे ऊपर और नीचे दबा सकते थे, हमारे पास Arduino सीरियल कनेक्शन के मूल्यों को प्रिंट करता था ताकि हम उनकी निगरानी कर सकें।

ईएससी को एक निश्चित सीमा से नीचे के मान पसंद नहीं थे, इस मामले में 128। इसने सिग्नल 191 को तटस्थ थ्रॉटल के रूप में देखा, और 255 अधिकतम थ्रॉटल था।

हमें वाहन की गति में बदलाव करने की आवश्यकता नहीं थी और हम इसे सबसे धीमी गति से पूरी तरह से चिपका रहे थे जिससे यह आगे बढ़ सके। 192 सबसे कम मूल्य था जो मोटर को चालू कर देगा, हालाँकि हमें अभी तक सब कुछ इकट्ठा करना है और अनिश्चित हैं कि क्या यह आउटपुट अंतिम असेंबली के बाद वाहन को स्थानांतरित करने के लिए पर्याप्त होगा, हालांकि थोड़ा बड़ा मूल्य दर्ज करना तुच्छ होना चाहिए।

हालांकि, पोटेंशियोमीटर को घेरने और कोड में निश्चित मान डालने से काम नहीं चला। स्टॉक ईएससी ने बस ब्लिंक किया और मोटर को स्पिन नहीं करेगा, मैनुअल के अनुसार 'थ्रॉटल ट्रिम समायोजित करें'।

उग्र परेशानी शूटिंग, उस पर विभिन्न मूल्यों को फेंकना, विभिन्न तारों का उपयोग करना, और यहां तक कि पीडब्लूएम आवृत्ति को बदलने के साथ प्रयोग करने से Arduino सभी का उपयोग अधिक अजीबता में हुआ।

यह एक रुक-रुक कर चलने वाला मुद्दा लगता था, कभी-कभी चलता था, कभी-कभी कुछ करने से मना कर देता था। यह बस पलक झपकाता रहा। मूल नियंत्रक और रिसीवर के साथ एक परीक्षण ने पुष्टि की कि ईएससी अभी भी ठीक उसी तरह काम कर रहा था, जिसने मुद्दों को और भी अजनबी बना दिया।उच्च मूल्यों, इसे नजरअंदाज कर दिया और पलक झपकते रहा, कम मूल्य ईएससी एक खुश हरे रंग की चमक के लिए वापस चला गया, लेकिन फिर भी नहीं मुड़ा।

पोटेंशियोमीटर, या स्टॉक ट्रांसमीटर और रिसीवर के साथ सेटअप और निश्चित मान प्रदान करने वाले संस्करण से क्या अलग था?

कभी-कभी इरादे के अनुसार काम करना और उम्मीद के मुताबिक काम करना वास्तव में वेन आरेख पर ज्यादा ओवरलैप नहीं होता है। इस मामले में, एक खिलौना होने के नाते, मॉडल के चालू होने के साथ-साथ केवल उंगलियों को उतारने या तोड़ने या पहियों या ड्राइव ट्रेन में बालों को पकड़ने का कोई मौका नहीं होना चाहिए, भले ही ट्रांसमीटर को अजीब तरह से पकड़ने जैसी किसी चीज में थ्रॉटल हो तटस्थ के अलावा कोई अन्य स्थिति।

'थ्रॉटल ट्रिम समायोजित करें', इसका ठीक यही अर्थ है। ईएससी एक तटस्थ संकेत की उम्मीद कर रहा है जब वह शक्ति प्राप्त करता है, इससे पहले कि वह कुछ भी नहीं करेगा। ईएससी चालू होने पर आम तौर पर ट्रांसमीटर हमेशा तटस्थ रहेगा और वहां से खुशी से ड्राइव करेगा। यदि ऐसा नहीं है, तो यह संभवत: कम से कम एक बार तटस्थ पर वापस आ जाता है जब तक कि मॉडल मजबूती से जमीन पर होता है और ऑपरेटर दौड़ने के लिए तैयार महसूस करता है।

पोटेंशियोमीटर का उपयोग करते समय, हम श्रेणियों के माध्यम से 'स्वीपिंग' कर रहे थे, और फिर यह काम करना शुरू कर देगा। यह केवल पोटेंशियोमीटर के रूप में सशस्त्र रूप से तटस्थ स्थिति से आगे निकल गया, और फिर इसने काम किया।

निचली श्रेणियां, हालांकि अभी भी ईएससी को नाखुश करती दिख रही थीं। यह पता चला है कि पीडब्लूएम कर्तव्य चक्रों का एक उत्पाद है।

या तो डिजाइन द्वारा या तकनीकी कारण से किया गया, स्टीयरिंग सर्वो और ईएससी दोनों 50% कर्तव्य चक्रों से नीचे के संकेतों की उपेक्षा करते हैं। यह तब हो सकता है जब रिसीवर/ट्रांसमीटर काम करना बंद कर देता है या बिजली से बाहर चला जाता है, मॉडल तटस्थ पर वापस आ जाएगा, और पूर्ण रिवर्स थ्रॉटल पर दूरी में नहीं उतरेगा। समान रूप से, सर्वो केवल 180 डिग्री घूमता है, और उसे पूरी सीमा की आवश्यकता नहीं होती है।

हाथ में इस नए ज्ञान के साथ, एक नया Arduino स्केच बनाया गया था। प्रारंभिक संस्करण सीरियल मॉनीटर में दर्ज स्ट्रिंग्स को स्वीकार करता है, इसे एक पूर्णांक में परिवर्तित करता है और इसे सर्वो लाइब्रेरी का उपयोग करके पीडब्लूएम पिन पर ले जाता है और लिखता है () *। यदि सीरियल मॉनिटर में एक नया मान दर्ज किया जाता है, तो राइट () मान अपडेट हो जाता है।

परीक्षण के दौरान, स्टॉक Traxxas ESC को Mtroniks G2 Micro से बदल दिया गया था, हालाँकि उन्हें समान काम करना चाहिए, हालाँकि सटीक मान थोड़े भिन्न हो सकते हैं।

यह पुस्तकालय ईएससी को सर्वो के रूप में मानता है, यह स्पष्ट रूप से ठीक है। Servo.h लाइब्रेरी से राइट () फ़ंक्शन 0 से 180 तक जाता है, अपेक्षित आर्मिंग सिग्नल मध्य के आसपास होने की उम्मीद है।

G2 माइक्रो आर्म्स राइट () में 90 के करीब मानों की श्रेणी में हैं, हालांकि इसे इंगित करना कठिन था क्योंकि ऐसा लगता है कि सशस्त्र होने के कारण यह 'याद' है।

Traxxas VXL-s3 के 91 के राइट () मान पर आने की उम्मीद है।

आर्मिंग सिग्नल के बाद, या तो ईएससी ने खुशी-खुशी पीडब्लूएम संकेतों को स्वीकार कर लिया, कोई फर्क नहीं पड़ता कि Arduino उन्हें उत्पन्न करने के लिए कहता है, और उसी के अनुसार मोटर को नियंत्रित करता है।

कार्यों की बात हो रही है; सर्वो.एच लाइब्रेरी से मानक एनालॉगवाइट (), साथ ही लिखें () और राइटमाइक्रोसेकंड () सभी का एक दूसरे के लिए उपयोग किया जा सकता है, बस ध्यान रखें कि क्या करता है, और अंततः कर्तव्य चक्र के अलावा कुछ भी मायने नहीं रखता है। यदि अधिक ग्रैन्युलैरिटी की आवश्यकता होती है तो WriteMicroseconds() का उपयोग किया जा सकता है, बस ध्यान रखें कि यहां रेंज 1000 से 2000 तक है, जिसमें आर्मिंग या 'न्यूट्रल' 1500 होने की उम्मीद है। मानक एनालॉगवाइट() के साथ प्रयोग करने योग्य रेंज की उम्मीद है 128 से 255 तक हो और लगभग 191 तटस्थ रहे।

सिफारिश की: