- అవసరమైన పదార్థాలు:
- సర్క్యూట్ రేఖాచిత్రం:
- మీ సెటప్ను శక్తివంతం చేస్తుంది:
- మీ ఆర్డునోను ప్రోగ్రామింగ్:
- ప్రాసెసింగ్ ఉపయోగించి Android అనువర్తనాన్ని సిద్ధం చేస్తోంది:
- ఆర్డునో ఇంక్లినోమీటర్ యొక్క పని:
MPU6050 ఒక IC ఉంది 3-అక్షాల యాక్సిలెరోమీటర్ మరియు కలిపి ఒక 3-అక్షం గైరోస్కోప్ ఒక యూనిట్ లోకి. ఇది సంక్లిష్ట పనిని చేయడానికి ఉష్ణోగ్రత సెన్సార్ మరియు DCM ను కలిగి ఉంది. MPU6050 సాధారణంగా డ్రోన్ మరియు ఇతర రిమోట్ రోబోట్లను స్వీయ-బ్యాలెన్సింగ్ రోబోట్ వంటి నిర్మాణంలో ఉపయోగిస్తారు. ఈ ప్రాజెక్ట్లో MPU6050 ను ఎలా ఉపయోగించాలో నేర్చుకుంటాము ఇంక్లినోమీటర్ లేదా స్పిరిట్ లెవెలర్. ఒక ఉపరితలం సంపూర్ణంగా సమం చేయబడిందో లేదో తనిఖీ చేయడానికి ఇంక్లినోమీటర్ ఉపయోగించబడుతుందని మనకు తెలుసు, అవి స్ప్రిట్ బబుల్ గా లేదా డిజిటల్ మీటర్లుగా లభిస్తాయి. ఈ ప్రాజెక్ట్లో, మేము ఆండ్రాయిడ్ అప్లికేషన్ను ఉపయోగించి పర్యవేక్షించగల డిజిటల్ ఇంక్లినోమీటర్ను నిర్మించబోతున్నాం. మొబైల్ ఫోన్ వంటి రిమోట్ డిస్ప్లేను ఉపయోగించటానికి కారణం, మనం హార్డ్వేర్ను చూడకుండా MPU6050 నుండి విలువలను పర్యవేక్షించగలము, MPU6050 ను డ్రోన్ లేదా ఇతర ప్రాప్యత చేయలేని ప్రదేశాలలో ఉంచినప్పుడు ఇది చాలా ఉపయోగకరంగా ఉంటుంది.
అవసరమైన పదార్థాలు:
- ఆర్డునో ప్రో-మినీ (5 వి)
- MPU6050 గైరో సెన్సార్
- HC-05 లేదా HC-06 బ్లూటూత్ మాడ్యూల్
- FTDI బోర్డు
- బ్రెడ్బోర్డ్
- వైర్లను కనెక్ట్ చేస్తోంది
- స్మార్ట్ ఫోన్
సర్క్యూట్ రేఖాచిత్రం:
ఈ ఆర్డునో టిల్ట్ సెన్సార్ ప్రాజెక్ట్ కోసం పూర్తి సర్క్యూట్ రేఖాచిత్రం క్రింద చూపబడింది. ఇది కేవలం మూడు భాగాలను మాత్రమే కలిగి ఉంది మరియు బ్రెడ్బోర్డుపై సులభంగా నిర్మించవచ్చు.
I2C సహాయంతో MPU6050 కమ్యూనికేట్ మరియు అందుకే SDA పిన్ ఇది SDA పిన్ మరియు SCL పిన్ Arduino యొక్క A5 పిన్ అనుసంధానించబడిన Arduino యొక్క A4 పిన్ అనుసంధానించబడిన. HC-06 Bluetooth మాడ్యూల్ సీరియల్ కమ్యూనికేషన్ అందుకే Bluetooth యొక్క Rx పిన్ పిన్ D11 మరియు Bluetooth యొక్క Tx పిన్ Arduino పిన్ D10 అనుసంధానించబడిన అనుసంధానించబడిన సహాయంతో పనిచేస్తుంది. ఈ పిన్ D10 మరియు D11 Arduino ను ప్రోగ్రామింగ్ చేయడం ద్వారా సీరియల్ పిన్గా కాన్ఫిగర్ చేయబడతాయి. HC-05 మాడ్యూల్ మరియు MSP6050 మాడ్యూల్ + 5V పై పనిచేస్తాయి మరియు అందువల్ల అవి పైన చూపిన విధంగా Arduino యొక్క Vcc పిన్ ద్వారా శక్తిని పొందుతాయి.
నేను వైర్లను కనెక్ట్ చేసే కొన్ని బ్రెడ్బోర్డులను ఉపయోగించాను మరియు చిన్న బ్రెడ్బోర్డుపై సెటప్ను నిర్మించాను. కనెక్షన్లు పూర్తయిన తర్వాత నా బోర్డు క్రింద కనిపిస్తుంది.
మీ సెటప్ను శక్తివంతం చేస్తుంది:
నేను చేసినట్లు మీరు మీ సర్క్యూట్ను ఎఫ్టిడిఐ ప్రోగ్రామింగ్ బోర్డ్ ద్వారా శక్తివంతం చేయవచ్చు లేదా 9 వి బ్యాటరీ లేదా 12 వి అడాప్టర్ను ఉపయోగించుకోవచ్చు మరియు దానిని ఆర్డునో ప్రో మినీ యొక్క రా పిన్తో కనెక్ట్ చేయవచ్చు. Arduino Pro-mini లో అంతర్నిర్మిత వోల్టేజ్ రెగ్యులేటర్ ఉంది, ఇది ఈ బాహ్య వోల్టేజ్ నియంత్రిత + 5V ని మారుస్తుంది.
మీ ఆర్డునోను ప్రోగ్రామింగ్:
హార్డ్వేర్ సిద్ధమైన తర్వాత, మన ఆర్డునో ప్రోగ్రామింగ్ ప్రారంభించవచ్చు. ఎప్పటిలాగే ఈ ప్రాజెక్ట్ కోసం పూర్తి కోడ్ ఈ పేజీ దిగువన చూడవచ్చు. కానీ ప్రాజెక్ట్ను బాగా అర్థం చేసుకోవడానికి నేను కోడ్ను చిన్న చింక్లకు విచ్ఛిన్నం చేశాను మరియు వాటిని క్రింది దశలుగా వివరించాను.
మొదటి దశ MPU6050 ను Arduino తో ఇంటర్ఫేస్ చేస్తుంది. ఈ ప్రాజెక్ట్ కోసం మేము కార్నెలియస్ అభివృద్ధి చేసిన లైబ్రరీని ఉపయోగించబోతున్నాము, వీటిని క్రింది లింక్ నుండి డౌన్లోడ్ చేసుకోవచ్చు
MPU6050 లిబర్టీ - కార్నెలియస్జ్ జార్జెబ్స్కి
జిప్ ఫైల్ను డౌన్లోడ్ చేసి, మీ ఆర్డునో ఐడిఇకి జోడించండి. అప్పుడు ఫైల్-> ఉదాహరణలు-> Arduino_MPU6050_ మాస్టర్ -> MPU6050_gyro_pitch_roll_yaw కు వెళ్ళండి . ఇది మేము ఇప్పుడే డౌన్లోడ్ చేసిన లైబ్రరీని ఉపయోగించే ఉదాహరణ ప్రోగ్రామ్ను తెరుస్తుంది. కాబట్టి అప్లోడ్ పై క్లిక్ చేసి, ప్రోగ్రామ్ మీ ఆర్డునో ప్రో మినీకి అప్లోడ్ అయ్యే వరకు వేచి ఉండండి. అది పూర్తయిన తర్వాత మీ సీరియల్ మానిటర్ను తెరిచి, మీ బాడ్ రేట్ను 115200 కు సెట్ చేయండి మరియు మీరు ఈ క్రింది వాటిని పొందుతున్నారో లేదో తనిఖీ చేయండి.
ప్రారంభంలో, మూడు విలువలు సున్నాగా ఉంటాయి, కానీ మీరు మీ బ్రెడ్బోర్డ్ను తరలించేటప్పుడు ఈ విలువలు మారడాన్ని మీరు గమనించవచ్చు. వారు మారితే మీ కనెక్షన్ సరైనదని అర్థం, లేకపోతే మీ కనెక్షన్లను తనిఖీ చేయండి. పిచ్ రోల్ మరియు యా అనే మూడు విలువలు మీ సెన్సార్ను వంచే విధానానికి అనుగుణంగా ఎలా మారుతాయో ఇక్కడ కొంత సమయం కేటాయించండి. మీరు గందరగోళానికి గురైనట్లయితే, ఆర్డునోలోని రీసెట్ బటన్ను నొక్కండి మరియు విలువలు మళ్లీ సున్నాకి ప్రారంభించబడతాయి, ఆపై సెన్సార్ను ఒక దిశలో వంచి, ఏ విలువలు మారుతున్నాయో తనిఖీ చేయండి. దిగువ చిత్రం బాగా అర్థం చేసుకోవడానికి మీకు సహాయం చేస్తుంది.
ఈ మూడు పారామితులలో రోల్ మరియు పిచ్ లపై మాత్రమే మాకు ఆసక్తి ఉంది. రోల్ విలువ X- అక్షంలో వంపు గురించి తెలియజేస్తుంది మరియు పిచ్ విలువ Y- యాక్సిస్లోని వంపు గురించి తెలియజేస్తుంది. ఇప్పుడు మేము అర్థం చేసుకున్నాము, ఈ విలువలను చదవడానికి ఆర్డునోను ప్రోగ్రామింగ్ ప్రారంభించడానికి బ్లూటూత్ ద్వారా ఆర్డునోకు పంపండి. ఎప్పటిలాగే ఈ ప్రాజెక్ట్ కోసం అవసరమైన అన్ని లైబ్రరీలను చేర్చడం ద్వారా ప్రారంభిద్దాం
# చేర్చండి
అప్పుడు మేము బ్లూటూత్ మాడ్యూల్ కోసం సాఫ్ట్వేర్ సీరియల్ను ప్రారంభిస్తాము. ఆర్డునోలోని సాఫ్ట్వేర్ సీరియల్ లైబ్రరీ కారణంగా ఇది సాధ్యమవుతుంది, IO పిన్లను సీరియల్ పిన్లుగా పని చేయడానికి ప్రోగ్రామ్ చేయవచ్చు. ఇక్కడ మేము డిజిటల్ పిన్స్ D10 మరియు D11 ను ఉపయోగిస్తున్నాము, ఇక్కడ D10 id Rx మరియు D11 Tx.
సాఫ్ట్వేర్ సీరియల్ బిటి (10, 11); // RX, TX
ఆ తరువాత మేము ప్రోగ్రామ్కు అవసరమైన వేరియబుల్స్ మరియు ఆబ్జెక్ట్లను ప్రారంభిస్తాము మరియు సెటప్ () ఫంక్షన్కు వెళ్తాము, అక్కడ మేము సీరియల్ మానిటర్ మరియు బ్లూటూత్ కోసం బాడ్ రేట్ను పేర్కొంటాము. HC-05 మరియు HC-06 కొరకు బాడ్ రేటు 9600 కాబట్టి అదే వాడటం తప్పనిసరి. ఆర్డునో యొక్క IIC బస్సు MPU6050 కి కనెక్ట్ చేయబడిందా అని మేము తనిఖీ చేస్తాము, కాకపోతే మేము ఒక హెచ్చరిక సందేశాన్ని ముద్రించి, పరికరం కనెక్ట్ అయినంత కాలం అక్కడే ఉంటాము. ఆ తరువాత, మేము గైరోను క్రమాంకనం చేస్తాము మరియు క్రింద చూపిన విధంగా దాని ఫంక్షన్లను ఉపయోగించి దాని ప్రవేశ విలువలను సెట్ చేస్తాము.
void setup () {Serial.begin (115200); బిటి.బెగిన్ (9600); // బ్లూటూత్ కమ్యూనికేషన్ను 9600 బాడ్రేట్ వద్ద ప్రారంభించండి // అయితే MPU6050 ను ప్రారంభించండి (! ఆలస్యం (500); } mpu.calibrateGyro (); // ప్రారంభంలో గైరోస్కోప్ను క్రమాంకనం చేయండి mpu.setThreshold (3); // సున్నితత్వాన్ని నియంత్రిస్తుంది}
“ Mpu.calibrateGyro ();” MPU6050 ప్రస్తుతం ఉంచిన స్థానం కోసం క్రమాంకనం చేయండి. MPU6050 క్రమాంకనం చేయాల్సిన అవసరం వచ్చినప్పుడు మరియు అన్ని విలువలు సున్నాకి సెట్ చేయబడినప్పుడు ఈ పంక్తిని ప్రోగ్రామ్ లోపల అనేకసార్లు పిలుస్తారు. “Mpu.setThreshold (3);” ఈ ఫంక్షన్ సెన్సార్లోని కదలికకు విలువ ఎంత మారుతుందో నియంత్రిస్తుంది చాలా తక్కువ విలువ శబ్దాన్ని పెంచుతుంది కాబట్టి దీనితో జాగ్రత్తగా వ్యవహరించేటప్పుడు జాగ్రత్తగా ఉండండి.
శూన్య లూప్ () లోపల , మేము గైరోస్కోప్ మరియు ఉష్ణోగ్రత సెన్సార్ యొక్క విలువలను పదేపదే చదువుతాము పిచ్, రోల్ మరియు యా యొక్క విలువను లెక్కించి, బ్లూటూత్ మాడ్యూల్కు పంపుతాము. క్రింది రెండు పంక్తులు ముడి గైరో విలువలు మరియు ఉష్ణోగ్రత విలువను చదువుతాయి
వెక్టర్ కట్టుబాటు = mpu.readNormalizeGyro (); temp = mpu.readTemperature ();
తరువాత, మేము పిచ్, రోల్ మరియు యాలను సమయ దశతో గుణించి, మునుపటి విలువలకు జోడించడం ద్వారా లెక్కిస్తాము. ఒక timeStep ఏమీ కానీ వరుస రీడింగులను మధ్య అంతరం.
పిచ్ = పిచ్ + కట్టుబాటు. వై యాక్సిస్ * టైమ్స్టెప్; roll = roll + norm.XAxis * timeStep; yaw = yaw + norm.ZAxis * timeStep;
సమయ దశను బాగా అర్థం చేసుకోవడానికి ఈ క్రింది పంక్తిని పరిశీలిద్దాం. MPU6050 నుండి విలువలను 10mS లేదా 0.01 సెకన్ల వ్యవధిలో చదవడానికి ఈ లైన్ ఉంచబడింది. కాబట్టి మేము టైమ్స్టెప్ విలువను 0.01 గా ప్రకటిస్తాము. ఇంకా ఎక్కువ సమయం మిగిలి ఉంటే ప్రోగ్రామ్ను పట్టుకోవడానికి ఈ క్రింది పంక్తిని ఉపయోగించండి. (మిల్లిస్ () - టైమర్ ()) ప్రోగ్రామ్ ఇప్పటివరకు అమలు చేయడానికి తీసుకున్న సమయాన్ని ఇస్తుంది. మేము దానిని 0.01 సెకన్లతో తీసివేస్తాము మరియు మిగిలిన సమయం కోసం ఆలస్యం ఫంక్షన్ను ఉపయోగించి మా ప్రోగ్రామ్ను అక్కడే ఉంచుతాము.
ఆలస్యం ((టైమ్స్టెప్ * 1000) - (మిల్లిస్ () - టైమర్));
మేము విలువలను చదవడం మరియు లెక్కించడం పూర్తయిన తర్వాత, మేము వాటిని బ్లూటూత్ ద్వారా మా ఫోన్కు పంపవచ్చు. కానీ ఇక్కడ క్యాచ్ ఉంది. మేము ఉపయోగిస్తున్న బ్లూటూత్ మాడ్యూల్ 1 బైట్ (8 బిట్స్) మాత్రమే పంపగలదు, ఇది 0 నుండి 255 వరకు మాత్రమే సంఖ్యలను పంపడానికి అనుమతిస్తుంది. కాబట్టి మన విలువలను విభజించి ఈ పరిధిలో మ్యాప్ చేయాలి. ఇది క్రింది పంక్తుల ద్వారా జరుగుతుంది
if (రోల్> -100 && రోల్ <100) x = మ్యాప్ (రోల్, -100, 100, 0, 100); if (పిచ్> -100 && పిచ్ <100) y = మ్యాప్ (పిచ్, -100, 100, 100, 200); if (temp> 0 && temp <50) t = 200 + int (temp);
మీరు గుర్తించగలిగినట్లుగా, రోల్ యొక్క విలువ 0 నుండి 100 వరకు వేరియబుల్ x లోకి మ్యాప్ చేయబడుతుంది మరియు పిచ్ 100 నుండి 200 వరకు వేరియబుల్ y లోకి మ్యాప్ చేయబడుతుంది మరియు టెంప్ 200 మరియు అంతకంటే ఎక్కువ వేరియబుల్ t లోకి మ్యాప్ చేయబడుతుంది. మేము పంపిన దాని నుండి డేటాను తిరిగి పొందడానికి మేము అదే సమాచారాన్ని ఉపయోగించవచ్చు. చివరగా మేము ఈ విలువలను బ్లూటూత్ ద్వారా క్రింది పంక్తులను ఉపయోగించి వ్రాస్తాము.
BT.write (x); BT.write (y); బిటి.రైట్ (టి);
మీరు పూర్తి ప్రోగ్రామ్ను అర్థం చేసుకుంటే, ప్రోగ్రామ్ను చూడటానికి క్రిందికి స్క్రోల్ చేయండి మరియు దానిని ఆర్డునో బోర్డుకు అప్లోడ్ చేయండి.
ప్రాసెసింగ్ ఉపయోగించి Android అనువర్తనాన్ని సిద్ధం చేస్తోంది:
ఈ Arduino Inclinometer కోసం Android అనువర్తనం ప్రాసెసింగ్ IDE ని ఉపయోగించి అభివృద్ధి చేయబడింది. ఇది ఆర్డునోతో చాలా పోలి ఉంటుంది మరియు సిస్టమ్ అప్లికేషన్, ఆండ్రాయిడ్ అప్లికేషన్, వెబ్ డిజైన్స్ మరియు మరెన్నో సృష్టించడానికి ఉపయోగించవచ్చు. దిగువ జాబితా చేయబడిన మా ఇతర చల్లని ప్రాజెక్టులను అభివృద్ధి చేయడానికి మేము ఇప్పటికే ప్రాసెసింగ్ను ఉపయోగించాము
- ఆర్డునో ఉపయోగించి పింగ్ పాంగ్ గేమ్
- ప్రాసెసింగ్ ఉపయోగించి స్మార్ట్ ఫోన్ కంట్రోల్డ్ ఎఫ్ఎమ్ రేడియో.
- ప్రాసెసింగ్ మరియు అల్ట్రాసోనిక్ సెన్సార్ ఉపయోగించి ఆర్డునో రాడార్ సిస్టమ్
అయితే, ఈ అనువర్తనాన్ని ఎలా సృష్టించాలో పూర్తి కోడ్ను వివరించడం సాధ్యం కాదు. కాబట్టి దీనిపైకి వెళ్ళడానికి మీకు రెండు మార్గాలు ఉన్నాయి. గాని మీరు ఈ క్రింది లింక్ నుండి APK ఫైల్ను డౌన్లోడ్ చేసుకోవచ్చు మరియు మీ ఫోన్లో నేరుగా Android అప్లికేషన్ను ఇన్స్టాల్ చేయవచ్చు. లేదా పూర్తి ప్రాసెసింగ్ కోడ్ను కనుగొనడానికి క్రింద స్క్రోల్ చేయండి మరియు ఇది ఎలా పనిచేస్తుందో మీరే తెలుసుకోండి
జిప్ ఫైల్ లోపల, మీరు ఆండ్రాయిడ్ అప్లికేషన్లోకి లోడ్ చేయాల్సిన అన్ని చిత్రాలు మరియు ఇతర వనరులను కలిగి ఉన్న డేటా అనే ఫోల్డర్ను కనుగొనవచ్చు. దిగువ పంక్తి బ్లూటూత్ స్వయంచాలకంగా ఏ పేరుకు కనెక్ట్ కావాలో నిర్ణయిస్తుంది
bt.connectToDeviceByName ("HC-06");
డ్రా () ఫంక్షన్ లోపల, విషయాలు పదేపదే అమలు చేయబడతాయి ఇక్కడ మేము చిత్రాలను గీస్తాము, వచనాన్ని ప్రదర్శిస్తాము మరియు విలువల ఆధారంగా బార్లను యానిమేట్ చేస్తాము బ్లూటూత్ మాడ్యూల్. ప్రోగ్రామ్ ద్వారా చదవడం ద్వారా ప్రతి ఫంక్షన్ లోపల ఏమి జరుగుతుందో మీరు తనిఖీ చేయవచ్చు.
void draw () // అనంతమైన లూప్ {background (0); ఇమేజ్ మోడ్ (సెంటర్); చిత్రం (లోగో, వెడల్పు / 2, ఎత్తు / 1.04, వెడల్పు, ఎత్తు / 12); లోడ్_ఇమేజెస్ (); టెక్స్ట్ఫన్ (); getval (); }
చివరగా, వివరించడానికి ఇంకొక ముఖ్యమైన విషయం ఉంది, పిచ్, రోల్ మరియు టెంప్ యొక్క విలువను 0 నుండి 255 కు విభజించామని గుర్తుంచుకోండి. కాబట్టి ఇక్కడ మనం దానిని సాధారణ విలువలకు రివర్స్ మ్యాపింగ్ చేయడం ద్వారా సాధారణ విలువలకు తిరిగి తీసుకువస్తాము.
if (సమాచారం <100 && సమాచారం> 0) x = మ్యాప్ (సమాచారం, 0, 100, - (వెడల్పు / 1.5) / 3, + (వెడల్పు / 1.5) / 3); // x = సమాచారం; else if (సమాచారం <200 && సమాచారం> 100) y = పటం (సమాచారం, 100, 200, - (వెడల్పు / 4.5) /0.8, + (వెడల్పు / 4.5) /0.8); // y = సమాచారం; else if (సమాచారం> 200) టెంప్ = సమాచారం -200; println (టెంప్, x, y);
బ్లూటూత్ మాడ్యూల్ నుండి ఫోన్కు డేటాను పొందడానికి చాలా మంచి మార్గాలు ఉన్నాయి, కానీ ఇది మేము వాటిని విస్మరించిన అభిరుచి గల ప్రాజెక్ట్ కాబట్టి, ఆసక్తి ఉంటే మీరు లోతుగా తీయవచ్చు.
ఆర్డునో ఇంక్లినోమీటర్ యొక్క పని:
మీరు హార్డ్వేర్ మరియు అనువర్తనంతో సిద్ధమైన తర్వాత, మేము నిర్మించిన వాటితో ఆనందించడానికి సమయం ఆసన్నమైంది. Arduino కోడ్ను బోర్డుకి అప్లోడ్ చేయండి, మీరు Serial.println పంక్తులపై ఉన్న వ్యాఖ్యలను కూడా తీసివేయవచ్చు మరియు సీరియల్ మానిటర్ ఉపయోగించి హార్డ్వేర్ expected హించిన విధంగా పనిచేస్తుందో లేదో తనిఖీ చేయవచ్చు. ఏమైనా, అది పూర్తిగా ఐచ్ఛికం.
కోడ్ అప్లోడ్ అయిన తర్వాత, మీ మొబైల్ ఫోన్లో Android అనువర్తనాన్ని ప్రారంభించండి. అప్లికేషన్ స్వయంచాలకంగా మీ HC-06 మాడ్యూల్కు కనెక్ట్ అవ్వాలి మరియు ఇది క్రింద చూపిన విధంగా అప్లికేషన్ పైభాగంలో “కనెక్ట్: HC-06” ని ప్రదర్శిస్తుంది.
ప్రారంభంలో, ఉష్ణోగ్రత విలువ మినహా అన్ని విలువలు సున్నాగా ఉంటాయి. ఆర్డ్యునో ఈ స్థానం కోసం MPU-6050 ను రిఫరెన్స్గా క్రమాంకనం చేసినందున, ఇప్పుడు మీరు హార్డ్వేర్ను టిల్ట్ చేయవచ్చు మరియు యానిమేషన్తో పాటు మొబైల్ అప్లికేషన్లోని విలువలు కూడా మారుతున్నాయని తనిఖీ చేయవచ్చు. అప్లికేషన్ యొక్క పూర్తి పనిని క్రింద ఇచ్చిన వీడియోలో చూడవచ్చు. కాబట్టి ఇప్పుడు మీరు బ్రెడ్బోర్డ్ను ఎక్కడైనా ఉంచవచ్చు మరియు ఉపరితలం ఖచ్చితంగా సమం చేయబడిందో లేదో తనిఖీ చేయవచ్చు.
మీరు ప్రాజెక్ట్ను అర్థం చేసుకున్నారని మరియు దాని నుండి ఉపయోగకరమైనదాన్ని నేర్చుకున్నారని ఆశిస్తున్నాము. మీకు ఏమైనా సందేహం ఉంటే, దాన్ని పరిష్కరించడానికి దిగువ వ్యాఖ్య విభాగాన్ని లేదా ఫోరమ్లను ఉపయోగించండి.