- अवयव आवश्यक
- सर्किट आरेख
- MATLAB कमांड विंडो का उपयोग कर सीरियल कम्युनिकेशन
- MATLAB GUI का उपयोग कर सीरियल कम्युनिकेशन
MATLAB बहुमुखी सॉफ्टवेयर है जिसका उपयोग विभिन्न प्रकार के अनुप्रयोगों के लिए किया जा सकता है। MATLAB के पिछले ट्यूटोरियल में, हमने डीसी मोटर, सर्वो मोटर और घरेलू उपकरणों को नियंत्रित करने के लिए MATLAB का उपयोग करने का तरीका बताया है। यहाँ इस ट्यूटोरियल में, हम सीखेंगे कि सीरियल कम्युनिकेशन के लिए MATLAB का उपयोग कैसे करें । धारावाहिक संचार के प्राप्त अंत के लिए, हम यहाँ Arduino का उपयोग कर रहे हैं।
MATLAB और Arduino के बीच धारावाहिक संचार सेटअप करने के दो तरीके हैं, एक कमांड विंडो का उपयोग कर रहा है और दूसरा MATLAB GUI का उपयोग कर रहा है। दोनों विधियों के लिए Arduino कोड समान रहेगा। यदि आप MATLAB के लिए नए हैं तो MATLAB के साथ सरल एलईडी ब्लिंक कार्यक्रम के साथ शुरुआत करने और MATLAB में उपयोग की जाने वाली बुनियादी शब्दावली सीखने की सलाह देते हैं।
अवयव आवश्यक
- MATLAB स्थापित लैपटॉप (वरीयता: R2016a या इसके बाद के संस्करण)
- Arduino UNO
- एलईडी (कोई भी रंग)
- रेसिस्टर (330 ओम)
सर्किट आरेख
MATLAB और Arduino के बीच धारावाहिक संचार स्थापित करने के दोनों तरीकों के लिए उपरोक्त सर्किट आरेख समान रहेगा।
MATLAB कमांड विंडो का उपयोग कर सीरियल कम्युनिकेशन
यह Arduino और MATLAB के बीच धारावाहिक संचार सेटअप करने की सरल विधि है। यहाँ हम केवल MATLAB से Arduino को कमांड विंडो का उपयोग करके क्रमिक रूप से डेटा भेजेंगे और फिर Arduino आने वाले सीरियल डेटा को पढ़ेंगे। फिर इस क्रमिक रूप से प्रसारित डेटा का उपयोग Arduino से जुड़ी किसी भी चीज़ को नियंत्रित करने के लिए किया जा सकता है। यहाँ हमने Arduino से एक LED कनेक्ट किया है, जिसे Arduino द्वारा क्रमबद्ध रूप से प्राप्त आंकड़ों के अनुसार चालू और बंद किया जाएगा।
सबसे पहले, दिए गए Arduino कोड को Arduino UNO में अपलोड करें और फिर MATLAB संपादक विंडो में कोडिंग शुरू करें। नई संपादक स्क्रिप्ट खोलने के लिए ' नई स्क्रिप्ट' पर क्लिक करें जैसा कि नीचे दी गई छवि में दिखाया गया है:
फिर, MATLAB और Arduino के बीच धारावाहिक संचार के लिए संपादक विंडो में नीचे पूर्ण MATLAB कोड को कॉपी और पेस्ट करें।
Arduino और MATLAB x = सीरियल ('COM18', 'BAUD', 9600) के बीच सीरियल संचार के लिए% MATLAB कोड ; fopen (x); go = true; जबकि एक = इनपुट पर जाएं ('1 को चालू करने के लिए एलईडी और 0 को बंद करने के लिए 1 दबाएं:'); fprintf (x, a); if (a == 2) go = false; अंतिम छोर
दिए गए कोड में, MATLAB में धारावाहिक संचार को परिभाषित करने के लिए कमांड का उपयोग किया जाता है। सुनिश्चित करें कि कॉम पोर्ट नंबर पोर्ट नंबर है जिस पर Arduino जुड़ा हुआ है और बॉड दर को Arduino और MATLAB दोनों कोड में समान रूप से सेट किया जाना चाहिए ।
x = धारावाहिक ('COM18', 'BAUD', 9600);
सीरियल कमांड खोलने के लिए नीचे दिए गए कमांड का उपयोग करें, fopen (x);
MATLAB से Arduino पर डेटा भेजने के लिए नीचे कमांड का उपयोग किया जाता है, जहां x धारावाहिक कॉलिंग के लिए है और उपयोगकर्ता द्वारा दर्ज किया गया मान है।
fprintf (x, a);
हम का उपयोग किया है , जबकि अनंत लूप बनाने के लिए समारोह और जब भी उपयोगकर्ता इनपुट संख्या '2' पाश टूट जाएगा।
जबकि एक = इनपुट पर जाएं ('1 को चालू करने के लिए एलईडी और 0 को बंद करने के लिए 1 दबाएं:'); fprintf (x, a); if (a == 2) go = false; अंतिम छोर
MATLAB संपादक स्क्रिप्ट कोडिंग को पूरा करने के बाद, नीचे दिए गए चित्र में दिखाए अनुसार अपना प्रोग्राम चलाने के लिए ' RUN ' पर क्लिक करें,
MATLAB को कोड को संसाधित करने और धारावाहिक संचार शुरू करने में कुछ सेकंड लगते हैं, जब तक MATLAB सॉफ़्टवेयर स्क्रीन के निचले बाएँ कोने में 'BUSY' संदेश दिखाता है, जैसा कि नीचे दी गई छवि में दिखाया गया है।
अब, आप उपयोगकर्ता इनपुट भेजने के लिए कमांड विंडो देखेंगे, हमने डिफ़ॉल्ट संदेश सेट किया है, 'बंद करने के लिए एलईडी और 0 चालू करने के लिए 1 दबाएं:'
एलईडी को चालू करने के लिए '1' भेजें, ऑपरेशन को तोड़ने के लिए '0' को बंद करें और '2' को बंद करें। आप किसी भी कार्य के लिए कोई भी संख्या निर्धारित कर सकते हैं, बस आपको अपने अनुसार Arduino कोड बदलना होगा। पूरा Arduino कोड अंत में दिया गया है।
आप कमांड विंडो का उपयोग करके MATLAB से Arduino तक सीरियल डेटा भेजने की पूरी प्रक्रिया को समझने के लिए नीचे दिए गए वीडियो की जांच कर सकते हैं ।
MATLAB GUI का उपयोग कर सीरियल कम्युनिकेशन
MATLAB GUI का उपयोग कर सीरियल कम्युनिकेशन का प्रदर्शन करने के लिए, हम Arduino से जुड़े LED को चालू और बंद करने के लिए MATLAB का उपयोग करके दो ग्राफिकल बटन बनाएंगे । इन बटन को चालू करने और एलईडी को बंद करने के लिए क्लिक करने पर MATLAB से Arduino तक डेटा क्रमिक रूप से भेजा जाएगा। Arduino में MATLAB से सीरियल डेटा प्राप्त करने और प्राप्त सीरियल डेटा के अनुसार एलईडी को नियंत्रित करने के लिए कोड होगा। Arduino कोड पिछले एक के समान रहेगा, केवल अंतर यह है कि, पहले हम MATLAB की कमांड विंडो के माध्यम से सीरियल डेटा '1' और '0' भेज रहे थे, और अब उसी डेटा को दो ग्राफिकल बटन पर क्लिंकिंग पर भेजा जाएगा।
GUI लॉन्च करने के लिए, कमांड विंडो में नीचे कमांड टाइप करें
मार्गदर्शक
एक पॉपअप विंडो खुलेगी, फिर नए रिक्त GUI का चयन करें जैसा कि नीचे चित्र में दिखाया गया है,
अब एलईडी को चालू और बंद करने के लिए दो पुशबटन चुनें, जैसा कि नीचे दिखाया गया है,
बटन के आकार को बदलने या बदलने के लिए, बस उस पर क्लिक करें और आप बटन के कोनों को खींच पाएंगे। पुशबटन पर डबल-क्लिक करके आप उस विशेष बटन के रंग, स्ट्रिंग और टैग को बदल सकते हैं। हमने नीचे दिए गए चित्र के अनुसार दो बटन को अनुकूलित किया है।
आप अपनी पसंद के अनुसार बटन को कस्टमाइज़ कर सकते हैं। अब जब आप इसे सहेजते हैं , तो MATLAB के संपादक विंडो में एक कोड उत्पन्न होगा । MATLAB GUI का उपयोग करके अपने Arduino द्वारा किए जाने वाले कार्य के अनुसार इस कोड को संपादित करें। इसलिए नीचे हमने MATLAB कोड संपादित किया है। MATLAB ट्यूटोरियल के साथ आरंभ करने में आप कमांड विंडो, एडिटर विंडो आदि के बारे में अधिक जान सकते हैं।
MATLAB और Arduino के बीच सीरियल कम्युनिकेशन स्थापित करने के लिए MATLAB कोड को पूरा करें, इस परियोजना के अंत में दिया गया है। इसके अलावा, हम GUI फ़ाइल (.fig) और कोड फ़ाइल (.m) को डाउनलोड के लिए यहां शामिल कर रहे हैं (लिंक पर राइट क्लिक करें, फिर 'इस रूप में लिंक सहेजें…' का चयन करें), जिसके उपयोग से आप अपनी आवश्यकता के अनुसार बटन को अनुकूलित कर सकते हैं। नीचे कुछ ट्वेक हैं जो हमने Arduino के साथ जुड़े एलईडी को नियंत्रित करने के लिए किया था।
लाइन कोड पर नीचे दिए गए कोड को कॉपी और पेस्ट करें। सीरियल पोर्ट और बॉड दर को सेटअप करने के लिए 74।
सभी साफ करें; वैश्विक एक्स; x = धारावाहिक ('COM18', 'BAUD', 9600); सुनिश्चित करें कि बॉड दर और COM पोर्ट Arduino IDE fopen (x) के समान है;
जहां, fopen (x) का उपयोग सीरियल कम्युनिकेशन के लिए सीरियल पोर्ट को खोलने के लिए किया जाता है।
जब आप नीचे स्क्रॉल करते हैं, तो आप देखेंगे कि GUI में दोनों बटन के लिए दो फ़ंक्शन बनाए गए हैं। अब आप जिस कार्य को क्लिक करना चाहते हैं, उसके अनुसार दोनों कार्यों में कोड लिखें।
में एलईडी-ON बटन के समारोह, कॉपी और एलईडी चालू करना नीचे दिए गए कोड पेस्ट सिर्फ समारोह के अंत से पहले। जैसा कि आप नीचे दिए गए कोड में देखते हैं, fprintf (x, 1) MATLAB से Arduino सीरियल में सीरियल डेटा भेजने के लिए उपयोग किया जाता है। यहां हम Arduino सीरियल को '1' भेज रहे हैं और यदि आप Arduino कोड की जांच करते हैं, तो आप पाएंगे कि Arduino अपने 13 वें पिन हाई को बनाते हुए LED को चमकाएगा, जब वह अपने सीरियल पोर्ट पर '1' प्राप्त करता है।
वैश्विक एक्स; fprintf (x, 1);
में एलईडी-ऑफ बटन के समारोह, कॉपी और एलईडी बंद करना नीचे दिए गए कोड पेस्ट सिर्फ समारोह के अंत से पहले। जैसा कि आप नीचे दिए गए कोड में देखते हैं, fprintf (x, 0) MATLAB से Arduino सीरियल में सीरियल डेटा भेजने के लिए उपयोग किया जाता है। इस भाग में, हम Arduino सीरियल को '0' भेज रहे हैं और यदि आप Arduino कोड की जाँच करते हैं, तो आप पाएंगे कि Arduino अपने 13 वें पिन LOW को बनाते हुए LED को बंद कर देगा, जब वह अपने सीरियल पोर्ट पर '0' प्राप्त करता है। ।
वैश्विक एक्स; fprintf (x, 0);
MATLAB GUI कोडिंग के साथ पूरा करने और सर्किट आरेख के अनुसार हार्डवेयर सेटअप करने के बाद, संपादित कोड.m फ़ाइल को चलाने के लिए रन बटन पर क्लिक करें।
MATLAB को प्रतिक्रिया देने में कुछ सेकंड लग सकते हैं, किसी भी GUI बटन पर तब तक क्लिक न करें जब तक MATLAB BUSY इंडिकेशन नहीं दिखाता है, जिसे आप स्क्रीन के बायें निचले कोने पर देख सकते हैं जैसा कि नीचे दिखाया गया है,
जब सब कुछ तैयार हो जाए, तो एलईडी को चालू और बंद करने के लिए LED-ON और LED-OFF बटन पर क्लिक करें। जब आप LED-ON बटन दबाते हैं , तो Arduino का 13 th पिन हाई हो जाता है और इस पिन से जुड़ा LED चमकने लगता है, और जब आप LED-OFF बटन दबाते हैं , तो Arduino का 13 वां पिन LOW हो जाता है, जिससे LED बंद हो जाती है।
आप MATLAB GUI का उपयोग करके MATLAB से Arduino तक सीरियल डेटा भेजने की पूरी प्रक्रिया को समझने के लिए नीचे दिए गए वीडियो की जांच कर सकते हैं ।