- భాగాలు అవసరం
- సర్క్యూట్ రేఖాచిత్రం
- మాట్లాబ్ కమాండ్ విండో ఉపయోగించి సీరియల్ కమ్యూనికేషన్
- MATLAB GUI ని ఉపయోగించి సీరియల్ కమ్యూనికేషన్
మాట్లాబ్ అనేది బహుముఖ సాఫ్ట్వేర్, ఇది అనేక రకాల అనువర్తనాల కోసం ఉపయోగించబడుతుంది. మాట్లాబ్ యొక్క మునుపటి ట్యుటోరియల్లో, DC మోటారు, సర్వో మోటారు మరియు గృహోపకరణాలను నియంత్రించడానికి MATLAB ను ఎలా ఉపయోగించాలో వివరించాము. ఇక్కడ ఈ ట్యుటోరియల్లో, సీరియల్ కమ్యూనికేషన్ కోసం మాట్లాబ్ ఎలా ఉపయోగించాలో నేర్చుకుంటాము. సీరియల్ కమ్యూనికేషన్ స్వీకరించే ముగింపు కోసం, మేము ఇక్కడ ఆర్డునోను ఉపయోగిస్తున్నాము.
MATLAB మరియు Arduino ల మధ్య సీరియల్ కమ్యూనికేషన్ను సెటప్ చేయడానికి రెండు మార్గాలు ఉన్నాయి, ఒకటి కమాండ్ విండోను ఉపయోగిస్తుంది మరియు మరొకటి MATLAB GUI ని ఉపయోగిస్తోంది. రెండు పద్ధతుల యొక్క ఆర్డునో కోడ్ ఒకే విధంగా ఉంటుంది. మీరు మాట్లాబ్కు కొత్తగా ఉంటే, మాట్లాబ్తో సరళమైన ఎల్ఇడి బ్లింక్ ప్రోగ్రామ్తో ప్రారంభించి, మ్యాట్లాబ్లో ఉపయోగించే ప్రాథమిక పరిభాషను నేర్చుకోవాలని సిఫార్సు చేయబడింది.
భాగాలు అవసరం
- మాట్లాబ్ ఇన్స్టాల్ చేసిన ల్యాప్టాప్ (ప్రాధాన్యత: R2016a లేదా అంతకంటే ఎక్కువ వెర్షన్లు)
- ఆర్డునో UNO
- LED (ఏదైనా రంగు)
- రెసిస్టర్ (330 ఓం)
సర్క్యూట్ రేఖాచిత్రం
మాట్లాబ్ మరియు ఆర్డునో మధ్య సీరియల్ కమ్యూనికేషన్ను స్థాపించడానికి రెండు మార్గాలకు పై సర్క్యూట్ రేఖాచిత్రం ఒకే విధంగా ఉంటుంది.
మాట్లాబ్ కమాండ్ విండో ఉపయోగించి సీరియల్ కమ్యూనికేషన్
Arduino మరియు MATLAB మధ్య సీరియల్ కమ్యూనికేషన్ను సెటప్ చేయడానికి ఇది సరళమైన పద్ధతి. ఇక్కడ మనం కమాండ్ విండోను ఉపయోగించి MATLAB నుండి Arduino సీరియల్కు డేటాను పంపుతాము, ఆపై Arduino ఇన్కమింగ్ సీరియల్ డేటాను చదువుతాము. ఆర్డ్యునోకు అనుసంధానించబడిన దేనినైనా నియంత్రించడానికి ఈ సీరియల్గా ప్రసారం చేయబడిన డేటాను ఉపయోగించవచ్చు. ఇక్కడ మేము ఒక ఎల్ఈడీని ఆర్డునోకు కనెక్ట్ చేసాము, ఇది ఆర్డునో సీరియల్గా అందుకున్న డేటా ప్రకారం ఆన్ మరియు ఆఫ్ చేయబడుతుంది.
మొదట, Arduino UNO లో ఇచ్చిన Arduino కోడ్ను అప్లోడ్ చేసి, ఆపై MATLAB ఎడిటర్ విండోలో కోడింగ్ ప్రారంభించండి. క్రొత్త ఎడిటర్ స్క్రిప్ట్ తెరవడానికి క్రింది చిత్రంలో చూపిన విధంగా ' న్యూ స్క్రిప్ట్' పై క్లిక్ చేయండి:
అప్పుడు, MATLAB మరియు Arduino మధ్య సీరియల్ కమ్యూనికేషన్ కోసం ఎడిటర్ విండోలో దిగువ పూర్తి MATLAB కోడ్ను కాపీ చేసి పేస్ట్ చేయండి.
Arduino మరియు MATLAB x = సీరియల్ ('COM18', 'BAUD', 9600) మధ్య సీరియల్ కమ్యూనికేషన్ కోసం% MATLAB కోడ్ ; fopen (x); go = true; ఒక = ఇన్పుట్కి వెళ్ళేటప్పుడు ('LED ని ఆన్ చేయడానికి 1 నొక్కండి & ఆఫ్ చేయడానికి 0:'); fprintf (x, a); if (a == 2) వెళ్ళు = తప్పుడు; ముగింపు ముగింపు
ఇచ్చిన కోడ్లో, MATLAB లోని సీరియల్ కమ్యూనికేషన్ను నిర్వచించడానికి దిగువ ఆదేశం ఉపయోగించబడుతుంది. కామ్ పోర్ట్ నంబర్ అర్డునో కనెక్ట్ చేయబడిన పోర్ట్ నంబర్ అని నిర్ధారించుకోండి మరియు బాడ్ రేట్ ఆర్డునో మరియు మాట్లాబ్ రెండింటి సంకేతాలలో ఒకే విధంగా అమర్చాలి.
x = సీరియల్ ('COM18', 'BAUD', 9600);
సీరియల్ పోర్ట్ తెరవడానికి క్రింది ఆదేశాన్ని ఉపయోగించండి, fopen (x);
MATLAB నుండి Arduino సీరియల్కు డేటాను పంపడానికి క్రింద కమాండ్ ఉపయోగించబడుతుంది, ఇక్కడ x అనేది సీరియల్ను కాల్ చేయడానికి మరియు వినియోగదారు ఎంటర్ చేసిన విలువ.
fprintf (x, a);
అనంతమైన లూప్ను సృష్టించడానికి ఫంక్షన్ చేస్తున్నప్పుడు మాకు ఉపయోగం ఉంది మరియు వినియోగదారు ఇన్పుట్ చేసినప్పుడు '2' సంఖ్య లూప్ విచ్ఛిన్నమవుతుంది.
ఒక = ఇన్పుట్కి వెళ్ళేటప్పుడు ('LED ని ఆన్ చేయడానికి 1 నొక్కండి & ఆఫ్ చేయడానికి 0:'); fprintf (x, a); if (a == 2) వెళ్ళు = తప్పుడు; ముగింపు ముగింపు
మాట్లాబ్ ఎడిటర్ స్క్రిప్ట్ కోడింగ్ పూర్తి చేసిన తరువాత, క్రింద ఉన్న చిత్రంలో చూపిన విధంగా మీ ప్రోగ్రామ్ను అమలు చేయడానికి ' RUN ' పై క్లిక్ చేయండి,
MATLAB కోడ్ను ప్రాసెస్ చేయడానికి కొన్ని సెకన్ల సమయం పడుతుంది మరియు సీరియల్ కమ్యూనికేషన్ను ప్రారంభించండి, సాఫ్ట్వేర్ స్క్రీన్ దిగువ ఎడమ మూలలో MATLAB 'BUSY' సందేశాన్ని చూపించే వరకు వేచి ఉండండి.
ఇప్పుడు, యూజర్ ఇన్పుట్ పంపడానికి మీరు కమాండ్ విండోను చూస్తారు, మేము డిఫాల్ట్ సందేశాన్ని సెట్ చేసాము, 'ఆఫ్ చేయడానికి LED & 0 ని ఆన్ చేయడానికి 1 నొక్కండి:'
LED ని ఆన్ చేయడానికి '1', LED ని ఆఫ్ చేయడానికి '0' మరియు ఆపరేషన్ విచ్ఛిన్నం చేయడానికి '2' పంపండి. మీరు ఏ పనికైనా ఏ సంఖ్యనైనా సెట్ చేయవచ్చు, మీరు చేయాల్సిందల్లా అర్దునో కోడ్ను తదనుగుణంగా మార్చడం. పూర్తి ఆర్డునో కోడ్ చివరిలో ఇవ్వబడుతుంది.
కమాండ్ విండోను ఉపయోగించి MATLAB నుండి Arduino కు సీరియల్ డేటాను పంపే పూర్తి ప్రక్రియను అర్థం చేసుకోవడానికి మీరు ఈ క్రింది వీడియోను చూడవచ్చు.
MATLAB GUI ని ఉపయోగించి సీరియల్ కమ్యూనికేషన్
MATLAB GUI ని ఉపయోగించి సీరియల్ కమ్యూనికేషన్ను ప్రదర్శించడానికి, Arduino కి కనెక్ట్ చేయబడిన LED ని ఆన్ మరియు ఆఫ్ చేయడానికి MATLAB ని ఉపయోగించి రెండు గ్రాఫికల్ బటన్లను సృష్టిస్తాము. LED ని ఆన్ మరియు ఆఫ్ చేయడానికి ఈ బటన్లపై క్లిక్ చేయడం ద్వారా డేటా MATLAB నుండి Arduino కి సీరియల్గా పంపబడుతుంది. MATLAB నుండి సీరియల్ డేటాను స్వీకరించడానికి మరియు అందుకున్న సీరియల్ డేటా ప్రకారం LED ని నియంత్రించడానికి Arduino కోడ్ను కలిగి ఉంటుంది. Arduino కోడ్ మునుపటి మాదిరిగానే ఉంటుంది, తేడా ఏమిటంటే, ఇంతకుముందు మేము MATLAB యొక్క కమాండ్ విండో ద్వారా సీరియల్ డేటా '1' మరియు '0' ను పంపుతున్నాము మరియు ఇప్పుడు అదే డేటా రెండు గ్రాఫికల్ బటన్లపై క్లింక్ చేయడంలో పంపబడుతుంది.
GUI ని ప్రారంభించడానికి, కమాండ్ విండోలో క్రింది ఆదేశాన్ని టైప్ చేయండి
గైడ్
పాపప్ విండో తెరుచుకుంటుంది, ఆపై క్రింద ఉన్న చిత్రంలో చూపిన విధంగా కొత్త ఖాళీ GUI ని ఎంచుకోండి,
ఇప్పుడు , ON మార్చివేసిన మరియు LED ఆఫ్ రెండు మీటలతో ఎంచుకోండి క్రింద చూపిన విధంగా,
పరిమాణాన్ని మార్చడానికి లేదా బటన్ల ఆకారాన్ని మార్చడానికి, దానిపై క్లిక్ చేయండి మరియు మీరు బటన్ మూలలను లాగగలుగుతారు. పుష్బటన్పై డబుల్ క్లిక్ చేయడం ద్వారా మీరు నిర్దిష్ట బటన్ యొక్క రంగు, స్ట్రింగ్ మరియు ట్యాగ్ను మార్చవచ్చు. దిగువ చిత్రంలో చూపిన విధంగా మేము రెండు బటన్లను అనుకూలీకరించాము.
మీకు నచ్చిన విధంగా బటన్లను అనుకూలీకరించవచ్చు. ఇప్పుడు మీరు దీన్ని సేవ్ చేసినప్పుడు, MATLAB యొక్క ఎడిటర్ విండోలో ఒక కోడ్ ఉత్పత్తి అవుతుంది. MATLAB GUI ని ఉపయోగించి మీ Arduino చేత మీరు చేయాలనుకుంటున్న పని ప్రకారం ఈ కోడ్ను సవరించండి. కాబట్టి క్రింద మేము MATLAB కోడ్ను సవరించాము. MATLAB ట్యుటోరియల్తో ప్రారంభించడంలో మీరు కమాండ్ విండో, ఎడిటర్ విండో మొదలైన వాటి గురించి మరింత తెలుసుకోవచ్చు.
MATLAB మరియు Arduino మధ్య సీరియల్ కమ్యూనికేషన్ను స్థాపించడానికి పూర్తి MATLAB కోడ్ ఈ ప్రాజెక్ట్ చివరిలో ఇవ్వబడింది. డౌన్లోడ్ కోసం మేము ఇక్కడ GUI ఫైల్ (.fig) మరియు కోడ్ ఫైల్ (.m) తో సహా ఉన్నాము (లింక్పై కుడి క్లిక్ చేసి, 'లింక్ను ఇలా సేవ్ చేయి…' ఎంచుకోండి), వీటిని ఉపయోగించి మీ అవసరానికి అనుగుణంగా మీరు బటన్లను అనుకూలీకరించవచ్చు. Arduino తో కనెక్ట్ చేయబడిన LED ని నియంత్రించడానికి మేము చేసిన కొన్ని ట్వీక్స్ క్రింద ఉన్నాయి.
పంక్తి నంబర్లో ఈ క్రింది కోడ్ను కాపీ చేసి పేస్ట్ చేయండి. సీరియల్ పోర్ట్ మరియు బాడ్ రేట్ను సెటప్ చేయడానికి 74.
అన్నీ క్లియర్ చేయండి; గ్లోబల్ x; x = సీరియల్ ('COM18', 'BAUD', 9600); బాడ్ రేట్ మరియు COM పోర్ట్ Arduino IDE fopen (x) లో ఉన్నట్లు % నిర్ధారించుకోండి ;
ఇక్కడ, సీరియల్ కమ్యూనికేషన్ కోసం సీరియల్ పోర్టును తెరవడానికి ఫోపెన్ (x) ఉపయోగించబడుతుంది.
మీరు క్రిందికి స్క్రోల్ చేసినప్పుడు, GUI లోని రెండు బటన్ల కోసం రెండు ఫంక్షన్లు సృష్టించబడినట్లు మీరు చూస్తారు. ఇప్పుడు మీరు క్లిక్పై చేయాలనుకుంటున్న పని ప్రకారం రెండు ఫంక్షన్లలోనూ కోడ్ రాయండి.
లో LED-ON బటన్ యొక్క ఫంక్షన్, కాపీ మరియు LED ఆన్ కేవలం ఫంక్షన్ ముగింపు ముందు కోడ్ క్రింద అతికించండి. దిగువ కోడ్లో మీరు చూసినట్లుగా, మ్యాట్లాబ్ నుండి ఆర్డునో సీరియల్కు సీరియల్ డేటాను పంపడానికి fprintf (x, 1) ఉపయోగించబడుతుంది. ఇక్కడ మేము ఆర్డునో సీరియల్కు '1' పంపుతున్నాము మరియు మీరు ఆర్డునో కోడ్ను తనిఖీ చేస్తే, ఆర్డునో దాని సీరియల్ పోర్టులో '1' అందుకున్నప్పుడు, దాని 13 వ పిన్ హైగా చేయడం ద్వారా ఎల్ఈడీని మెరుస్తుందని మీరు కనుగొంటారు.
గ్లోబల్ x; fprintf (x, 1);
లో LED ఆఫ్ బటన్ యొక్క ఫంక్షన్, కాపీ మరియు LED ఆఫ్ చెయ్యడానికి కేవలం ఫంక్షన్ ముగింపు ముందు కోడ్ క్రింద అతికించండి. దిగువ కోడ్లో మీరు చూసినట్లుగా, MATLAB నుండి Arduino సీరియల్కు సీరియల్ డేటాను పంపడానికి fprintf (x, 0) ఉపయోగించబడుతుంది. ఈ భాగంలో, మేము '0' ను ఆర్డునో సీరియల్కు పంపుతున్నాము మరియు మీరు ఆర్డునో కోడ్ను తనిఖీ చేస్తే, ఆర్డునో దాని సీరియల్ పోర్టులో '0' అందుకున్నప్పుడు, దాని 13 వ పిన్ను తక్కువ చేయడం ద్వారా LED ని ఆపివేస్తుందని మీరు కనుగొంటారు..
గ్లోబల్ x; fprintf (x, 0);
MATLAB GUI కోడింగ్తో పూర్తి చేసి, సర్క్యూట్ రేఖాచిత్రం ప్రకారం హార్డ్వేర్ను సెటప్ చేసిన తర్వాత,.m ఫైల్లో సవరించిన కోడ్ను అమలు చేయడానికి రన్ బటన్ పై క్లిక్ చేయండి.
MATLAB ప్రతిస్పందించడానికి కొన్ని సెకన్ల సమయం పట్టవచ్చు, MATLAB BUSY సూచనను చూపించే వరకు ఏ GUI బటన్పై క్లిక్ చేయవద్దు, ఇది క్రింద చూపిన విధంగా మీరు స్క్రీన్ యొక్క ఎడమ దిగువ మూలలో చూడవచ్చు,
ప్రతిదీ సిద్ధంగా ఉన్నప్పుడు, LED ని ఆన్ మరియు ఆఫ్ చేయడానికి LED-ON మరియు LED-OFF బటన్ పై క్లిక్ చేయండి. మీరు LED-ON బటన్ను నొక్కినప్పుడు , 13 వ పిన్ Arduino అధికంగా వెళుతుంది మరియు ఈ PIN కి కనెక్ట్ చేయబడిన LED మెరుస్తూ ఉంటుంది, మరియు మీరు LED-OFF బటన్ను నొక్కినప్పుడు , 13 వ పిన్ Arduino తక్కువకు వెళుతుంది, దీని వలన LED ఆపివేయబడుతుంది.
MATLAB GUI ని ఉపయోగించి MATLAB నుండి Arduino కు సీరియల్ డేటాను పంపే పూర్తి ప్రక్రియను అర్థం చేసుకోవడానికి మీరు ఈ క్రింది వీడియోను చూడవచ్చు.