మీ వంటగది యొక్క మనోజ్ఞతను మరియు కార్యాచరణను నాటకీయంగా పెంచడానికి మీరు ఒక మార్గం కోసం చూస్తున్నట్లయితే, అక్కడ మానవ ప్రయత్నాన్ని తగ్గించడాన్ని పరిగణించండి. వంటగదిలో ఉండే దేశీయ రోబోను తయారు చేయడం ద్వారా మానవ ప్రయత్నాన్ని తగ్గించవచ్చు మరియు ఇది మురికి పాత్రలను సింక్ వైపు తీసుకువెళ్ళి అక్కడే ఆగిపోతుంది. వ్యక్తి రోబోట్ నుండి పాత్రలను దించుతున్నప్పుడు అది తిరిగి వచ్చి వాటిలో ఎక్కువ తీసుకువస్తుంది. కొన్నిసార్లు పెద్ద వంటశాలలలో, వాషింగ్ సింక్ క్యాబినెట్లకు దగ్గరగా ఉండదు కాబట్టి, రోబోట్ వంటలను షెల్ఫ్ యొక్క ఒక ప్రదేశం నుండి మరొక వైపుకు తీసుకువెళుతుంది. బ్లాక్ టేప్ ఉపయోగించి షెల్ఫ్లో రోబోట్ కోసం ఒక మార్గం తయారు చేయబడుతుంది. రోబోట్ మార్గాన్ని గుర్తించడానికి రెండు పరారుణ సామీప్య సెన్సార్లను ఉపయోగిస్తుంది మరియు సెన్సార్ల నుండి అందుకున్న ఇన్పుట్ ఆధారంగా, ఆర్డునో మోటారు డ్రైవర్ సహాయంతో మోటారులను తరలించమని నిర్దేశిస్తుంది.
దేశీయ రోబోట్
దేశీయ రోబోట్ తయారీలో అవసరమైన అన్ని పెరిఫెరల్స్ ను ఎలా కనెక్ట్ చేయాలి?
ఇప్పుడు, మేము అవసరమైన భాగాలను సేకరించి రోబోట్ తయారు చేయడం ప్రారంభించాలి.
దశ 1: ఉపయోగించిన భాగాలు
- అర్డునో యునో
- IR సెన్సార్ (x5)
- డిసి మోటార్స్
- కార్ వీల్ చేజెస్
- బ్లాక్ టేప్
- జంపర్ వైర్లు
- DC బ్యాటరీ
- జిగురు తుపాకీ
- స్క్రూ డ్రైవర్ సెట్
దశ 2: భాగాలు అధ్యయనం
మేము ఇప్పటికే భాగాల జాబితాను తయారు చేసినందున, ఒక అడుగు ముందుకు వేసి, ప్రతి భాగం యొక్క పని గురించి క్లుప్త అధ్యయనం చేద్దాం.
ది ఆర్డునో UNO మైక్రోకంట్రోలర్ బోర్డు, ఇది మైక్రోచిప్ ATMega 328P ని కలిగి ఉంటుంది మరియు దీనిని Arduino.cc అభివృద్ధి చేసింది. ఈ బోర్డు డిజిటల్ మరియు అనలాగ్ డేటా పిన్ల సమితిని కలిగి ఉంది, వీటిని ఇతర విస్తరణ బోర్డులు లేదా సర్క్యూట్లతో అనుసంధానించవచ్చు. ఈ బోర్డులో 14 డిజిటల్ పిన్స్, 6 అనలాగ్ పిన్స్ ఉన్నాయి మరియు టైప్ బి యుఎస్బి కేబుల్ ద్వారా ఆర్డునో ఐడిఇ (ఇంటిగ్రేటెడ్ డెవలప్మెంట్ ఎన్విరాన్మెంట్) తో ప్రోగ్రామబుల్. దీనికి శక్తికి 5 వి అవసరం పై మరియు ఒక సి కోడ్ ఆపరేట్ చేయడానికి.
ఆర్డునో UNO
డిసి మోటార్స్ ఆపరేట్ చేయడానికి ఎల్ 298 ఎన్ మోటార్ డ్రైవర్ ఉపయోగించబడుతుంది. L298N అనేది డ్యూయల్ హెచ్-బ్రిడ్జ్ మోటారు డ్రైవర్, ఇది ఒకే సమయంలో రెండు DC మోటార్లు వేగం మరియు దిశ నియంత్రణను అనుమతిస్తుంది. మాడ్యూల్ 5 మరియు 35 వి మధ్య వోల్టేజ్లను కలిగి ఉన్న డిసి మోటారులను డ్రైవ్ చేయగలదు, గరిష్ట కరెంట్ 2 ఎ వరకు ఉంటుంది. ఇది మోటార్లు VCC టెర్మినల్ వద్ద ఉపయోగించే వోల్టేజ్ మీద ఆధారపడి ఉంటుంది. మా ప్రాజెక్ట్లో, ఐసి సరిగ్గా పనిచేయడానికి 5 వి పిన్ను 5 వి విద్యుత్ సరఫరాతో కనెక్ట్ చేయాల్సిన అవసరం ఉన్నందున దాన్ని ఇన్పుట్గా ఉపయోగిస్తాము. DC మోటార్లు అనుసంధానించబడిన L298N మోటారు డ్రైవర్ యొక్క సర్క్యూట్ రేఖాచిత్రం L298N మోటారు డ్రైవర్ యొక్క యంత్రాంగాన్ని అర్థం చేసుకోవడానికి క్రింద చూపబడింది. ప్రదర్శన కోసం, ఇన్పుట్ ఇవ్వబడింది లాజిక్ స్టేట్ IR సెన్సార్లకు బదులుగా.
ప్రోటీయస్ 8 ప్రొఫెషనల్లో చేసిన సర్క్యూట్ రేఖాచిత్రం
దశ 3: బ్లాక్ రేఖాచిత్రం మరియు పని సూత్రాన్ని అర్థం చేసుకోవడం
మొదట, మేము బ్లాక్ రేఖాచిత్రం ద్వారా వెళ్తాము, పని సూత్రాన్ని అర్థం చేసుకుని, ఆపై హార్డ్వేర్ భాగాలను సమీకరించే దిశగా వెళ్తాము.
బ్లాక్ రేఖాచిత్రం
మేము ఉపయోగించే సెన్సార్లు డిజిటల్ మరియు అవి అవుట్పుట్ను 0 లేదా 1 గా ఇవ్వగలవు. మేము కొనుగోలు చేసిన ఈ సెన్సార్లు ఇస్తున్నాయి 1 తెలుపు ఉపరితలాలపై మరియు 0 నల్ల ఉపరితలాలపై. మేము కొనుగోలు చేసే సెన్సార్లు యాదృచ్ఛిక విలువలను ఇస్తాయి, కొన్నిసార్లు అవి ఇస్తాయి 0 తెలుపు ఉపరితలాలపై మరియు 1 నల్ల ఉపరితలాలపై. మేము ఈ రోబోట్లో ఐదు సెన్సార్లను ఉపయోగిస్తాము ఐదు సెన్సార్ల కొరకు కోడ్లో నాలుగు షరతులు ఉన్నాయి.
- ఫార్వర్డ్ ఆన్ ది లైన్: మిడిల్ సెన్సార్ బ్లాక్ ఉపరితలంపై ఉన్నప్పుడు మరియు మిగిలిన సెన్సార్లు తెల్లటి ఉపరితలంపై ఉన్నప్పుడు, ఫార్వర్డ్ కండిషన్ అమలు అవుతుంది మరియు రోబోట్ నేరుగా ముందుకు కదులుతుంది. మేము ప్రారంభిస్తే సెన్సార్ 1 మరియు వరకు కొనసాగండి సెన్సార్ 5, ప్రతి సెన్సార్లు వరుసగా ఇచ్చే విలువ (1 1 0 1 1) .
- పదునైన కుడి మలుపు: ఎప్పుడు అయితే సెన్సార్ 1 మరియు సెన్సార్ 2 తెలుపు ఉపరితలంపై ఉన్నాయి మరియు మిగిలిన సెన్సార్లు నల్ల ఉపరితలంపై ఉన్నాయి, పదునైన కుడి మలుపు పరిస్థితి అమలు అవుతుంది మరియు రోబోట్ పదునైన కుడివైపుకి మారుతుంది. మేము ప్రారంభిస్తే సెన్సార్ 1 మరియు వరకు కొనసాగండి సెన్సార్ 5, ప్రతి సెన్సార్లు వరుసగా ఇచ్చే విలువ (1 1 0 0 0).
- పదునైన ఎడమ మలుపు: ఎప్పుడు అయితే సెన్సార్ 4 మరియు సెన్సార్ 5 తెలుపు ఉపరితలంపై ఉన్నాయి మరియు మిగిలిన సెన్సార్లు నల్ల ఉపరితలంపై ఉన్నాయి, పదునైన ఎడమ మలుపు పరిస్థితి అమలు అవుతుంది మరియు రోబోట్ పదునైన ఎడమవైపుకి మారుతుంది. మేము ప్రారంభిస్తే సెన్సార్ 1 మరియు వరకు కొనసాగండి సెన్సార్ 5, ప్రతి సెన్సార్లు వరుసగా ఇచ్చే విలువ (0 0 0 1 1) .
- ఆపు: ఐదు సెన్సార్లన్నీ నల్ల ఉపరితలంపై ఉన్నప్పుడు రోబోట్ ఆగిపోతుంది మరియు మోటార్లు తిరుగుతాయి ఆఫ్. ఐదు నల్ల ఉపరితలాలతో ఉన్న ఈ పాయింట్ సింక్ దగ్గర ఉంటుంది, తద్వారా డిష్వాషర్ వాషింగ్ కోసం రోబోట్ నుండి ప్లేట్లను దించుతుంది.
మేము బ్లాక్ టేప్ ఉపయోగించి కిచెన్ షెల్ఫ్లో ఒక మార్గాన్ని తయారు చేస్తాము మరియు ఆ మార్గం సింక్ దగ్గర ముగుస్తుంది, కాబట్టి రోబోట్ సింక్ దగ్గర ఆగిపోతుంది మరియు డిష్వాషర్ ప్లేట్లను దించుతుంది, ఆపై రోబోట్ మార్గం వైపుకు వెళ్లి పాత్రల కోసం వెతుకుతుంది మళ్ళీ.
ట్రాక్ ఆఫ్ రోబోట్
దశ 4: ఆర్డునోతో ప్రారంభించడం
మీకు ఇంతకుముందు Arduino IDE గురించి తెలియకపోతే, చింతించకండి ఎందుకంటే క్రింద, మీరు Arduino IDE ని ఉపయోగించి మైక్రోకంట్రోలర్ బోర్డులో కోడ్ బర్నింగ్ యొక్క స్పష్టమైన దశలను చూడవచ్చు. మీరు Arduino IDE యొక్క తాజా సంస్కరణను డౌన్లోడ్ చేసుకోవచ్చు ఇక్కడ మరియు క్రింది దశలను అనుసరించండి:
- Arduino బోర్డు మీ PC కి కనెక్ట్ అయినప్పుడు, “కంట్రోల్ పానెల్” తెరిచి “హార్డ్వేర్ మరియు సౌండ్” పై క్లిక్ చేయండి. అప్పుడు “పరికరాలు మరియు ప్రింటర్లు” పై క్లిక్ చేయండి. మీ ఆర్డునో బోర్డు కనెక్ట్ చేయబడిన పోర్ట్ పేరును కనుగొనండి. నా విషయంలో ఇది “COM14” కానీ మీ PC లో ఇది భిన్నంగా ఉండవచ్చు.
పోర్ట్ కనుగొనడం
- ఇప్పుడు Arduino IDE ని తెరవండి. ఉపకరణాల నుండి, Arduino బోర్డును సెట్ చేయండి Arduino / Genuino UNO.
సెట్టింగ్ బోర్డు
- అదే సాధనం మెను నుండి, మీరు నియంత్రణ ప్యానెల్లో చూసిన పోర్ట్ సంఖ్యను సెట్ చేయండి.
పోర్ట్ సెట్ చేస్తోంది
- దిగువ జోడించిన కోడ్ను డౌన్లోడ్ చేసి, మీ IDE కి కాపీ చేయండి. కోడ్ను అప్లోడ్ చేయడానికి, అప్లోడ్ బటన్ పై క్లిక్ చేయండి.
మీరు కోడ్ను డౌన్లోడ్ చేసుకోవచ్చు ఇక్కడ
దశ 5: కోడ్ను అర్థం చేసుకోవడం
కోడ్ చాలా సులభం. ఇది క్లుప్తంగా క్రింద వివరించబడింది:
- కోడ్ ప్రారంభంలో సెన్సార్ పిన్స్ ప్రారంభించబడతాయి మరియు దానితో పాటు, మోటార్ డ్రైవర్ L298N కోసం పిన్స్ కూడా ప్రారంభించబడతాయి.
int enable1pin = 10; // మోటార్ 1 Int మోటర్ 1 పిన్ 1 = 2 కోసం అనలాగ్ ఇన్పుట్ కోసం పిడబ్ల్యుఎం పిన్ను ప్రారంభించడం; // మోటార్ 1 పాజిటివ్ పిన్ను ప్రారంభించడం 1 int motor1pin2 = 3; // మోటార్ 1 కోసం నెగటివ్ పిన్ను ప్రారంభించడం 1 int enable2pin = 11; // మోటార్ 2 కోసం మోటారు 2 పిన్ 1 = 4 కోసం అనలాగ్ ఇన్పుట్ కోసం పిడబ్ల్యుఎం పిన్ను ప్రారంభించడం; // మోటార్ 2 పాజిటివ్ పిన్ను ప్రారంభించడం 2 int motor2pin2 = 5; // మోటార్ 2 ఇంటెంట్ ఎస్ 1 = 12 కోసం నెగటివ్ పిన్ను ప్రారంభించడం; // సెన్సార్ 1 పూర్ణాంక S2 = 9 కోసం పిన్ 12 ను ప్రారంభించడం; // సెన్సార్ 2 పూర్ణాంక S3 = 8 కోసం పిన్ 9 ను ప్రారంభించడం; // సెన్సార్ 3 Int S4 = 7 కోసం పిన్ 8 ను ప్రారంభించడం; // సెన్సార్ 4 కోసం పిన్ 7 ను ప్రారంభించడం 4 int S5 = 6; // సెన్సార్ 5 కోసం పిన్ 6 ను ప్రారంభిస్తోంది
- శూన్య సెటప్ () పిన్లను INPUT లేదా OUTPUT గా సెట్ చేయడానికి ఉపయోగించే ఫంక్షన్. ఇది ఆర్డునో యొక్క బాడ్ రేటును కూడా నిర్దేశిస్తుంది. మైక్రోకంట్రోలర్ బోర్డు జతచేయబడిన ఇతర భాగాలతో కమ్యూనికేట్ చేసే వేగం బాడ్ రేటు.
{పిన్మోడ్ (ఎనేబుల్ 1 పిన్, OUTPUT); // మోటార్ 1 పిన్మోడ్ కోసం పిడబ్ల్యుఎమ్ను ప్రారంభించడం (ఎనేబుల్ 2 పిన్, అవుట్పుట్); // మోటార్ 2 పిన్మోడ్ (మోటర్ 1 పిన్ 1, అవుట్పుట్) కోసం పిడబ్ల్యుఎంను ప్రారంభించడం; // మోటారు 1 పిన్ 1 ను అవుట్పుట్ పిన్ మోడ్ (మోటర్ 1 పిన్ 2, అవుట్పుట్) గా అమర్చుట; // మోటారు 1 పిన్ 2 ను అవుట్పుట్ పిన్ మోడ్ (మోటర్ 2 పిన్ 1, అవుట్పుట్) గా అమర్చుట; // మోటారు 2 పిన్ 1 ను అవుట్పుట్ పిన్ మోడ్ (మోటర్ 2 పిన్ 2, అవుట్పుట్) గా అమర్చుట; // మోటారు 2 పిన్ 2 ను అవుట్పుట్ పిన్ మోడ్ (ఎస్ 1, ఇన్పుట్) గా అమర్చుట; // సెన్సార్ 1 ను ఇన్పుట్ పిన్మోడ్ (S2, INPUT) గా సెట్ చేయడం; // సెన్సార్ 2 ను ఇన్పుట్ పిన్మోడ్ (S3, INPUT) గా సెట్ చేయడం; // సెన్సార్ 3 ను ఇన్పుట్ పిన్మోడ్ (S4, INPUT) గా సెట్ చేయడం; // సెన్సార్ 4 ను ఇన్పుట్ పిన్మోడ్ (S5, INPUT) గా సెట్ చేయడం; // సెన్సార్ 5 ను ఇన్పుట్ సీరియల్.బిగిన్ (9600) గా అమర్చుట; // బాడ్ రేటును సెట్ చేస్తోంది}
- శూన్య లూప్ () ఒక చక్రంలో మళ్లీ మళ్లీ నడిచే ఫంక్షన్. ఈ లూప్లో, ఆర్డునో యుఎన్ఓకు ఏ కార్యకలాపాలు నిర్వహించాలో మేము సూచనలు ఇస్తాము. మోటార్లు పూర్తి వేగం 255 మరియు రెండు మోటార్లు వేర్వేరు వేగాన్ని కలిగి ఉంటాయి. కాబట్టి, మేము రోబోట్ను ముందుకు తరలించాలనుకుంటే, కుడివైపు తిరగండి మొదలైనవి మోటారుల వేగాన్ని సర్దుబాటు చేయాలి. మేము రెండు మోటారుల వేగాన్ని వేర్వేరు పరిస్థితులలో మార్చాలనుకుంటున్నందున మేము కోడ్లో అనలాగ్ పిన్లను ఉపయోగించాము. మీరు మీ మోటారుల వేగాన్ని మీ స్వంతంగా సర్దుబాటు చేయవచ్చు.
void loop () {if (! (DigitalRead (S1)) &&! (DigitalRead (S2)) && (DigitalRead (S3)) &&! (DigitalRead (S4)) &&! (DigitalRead (S5))) // ఫార్వర్డ్ ఆన్ లైన్ {అనలాగ్రైట్ (ఎనేబుల్ 1 పిన్, 61); // మోటార్ 1 స్పీడ్ అనలాగ్రైట్ (ఎనేబుల్ 2 పిన్, 63); // మోటార్ 2 స్పీడ్ డిజిటల్ రైట్ (మోటర్ 1 పిన్ 1, హై); // మోటార్ 1 పిన్ 1 హై డిజిటల్ రైట్ (మోటర్ 1 పిన్ 2, తక్కువ) కు సెట్ చేయబడింది; // మోటార్ 1 పిన్ 2 తక్కువ డిజిటల్ రైట్ (మోటర్ 2 పిన్ 1, హై) కు సెట్ చేయబడింది; // మోటార్ 2 పిన్ 1 హై డిజిటల్రైట్కు సెట్ చేయబడింది (మోటర్ 2 పిన్ 2, తక్కువ); // మోటారు 2 పిన్ 2 తక్కువ} if (! (DigitalRead (S1)) &&! (DigitalRead (S2)) && (DigitalRead (S3)) && (DigitalRead (S4)) && (DigitalRead (S5)) / / షార్ప్ రైట్ టర్న్ {అనలాగ్రైట్ (ఎనేబుల్ 1 పిన్, 60); // మోటార్ 1 స్పీడ్ అనలాగ్రైట్ (ఎనేబుల్ 2 పిన్, 80); // మోటార్ 2 స్పీడ్ డిజిటల్ రైట్ (మోటర్ 1 పిన్ 1, హై); // మోటార్ 1 పిన్ 1 హై డిజిటల్ రైట్ (మోటర్ 1 పిన్ 2, తక్కువ) కు సెట్ చేయబడింది; // మోటార్ 1 పిన్ 2 తక్కువ డిజిటల్రైట్కు సెట్ చేయబడింది (మోటర్ 2 పిన్ 1, తక్కువ); // మోటార్ 2 పిన్ 1 తక్కువ డిజిటల్రైట్కు సెట్ చేయబడింది (మోటర్ 2 పిన్ 2, తక్కువ); // మోటార్ 2 పిన్ 2 తక్కువ} if ((డిజిటల్ రీడ్ (ఎస్ 1)) && (డిజిటల్ రీడ్ (ఎస్ 2)) && (డిజిటల్ రీడ్ (ఎస్ 3)) &&! (డిజిటల్ రీడ్ (ఎస్ 4)) &&! (డిజిటల్ రీడ్ (ఎస్ 5)) / / షార్ప్ లెఫ్ట్ టర్న్ {అనలాగ్రైట్ (ఎనేబుల్ 1 పిన్, 80); // మోటార్ 1 స్పీడ్ అనలాగ్రైట్ (ఎనేబుల్ 2 పిన్, 65); // మోటార్ 2 స్పీడ్ డిజిటల్ రైట్ (మోటర్ 1 పిన్ 1, తక్కువ); // మోటార్ 1 పిన్ 1 తక్కువ డిజిటల్రైట్కు సెట్ చేయబడింది (మోటర్ 1 పిన్ 2, తక్కువ); // మోటార్ 1 పిన్ 2 తక్కువ డిజిటల్ రైట్ (మోటర్ 2 పిన్ 1, హై) కు సెట్ చేయబడింది; // మోటార్ 2 పిన్ 1 హై డిజిటల్రైట్కు సెట్ చేయబడింది (మోటర్ 2 పిన్ 2, తక్కువ); // మోటార్ 2 పిన్ 2 తక్కువ} if ((డిజిటల్ రీడ్ (ఎస్ 1)) && (డిజిటల్ రీడ్ (ఎస్ 2)) && (డిజిటల్ రీడ్ (ఎస్ 3)) && (డిజిటల్ రీడ్ (ఎస్ 4)) && (డిజిటల్ రీడ్ (ఎస్ 5)) // సెట్ {అనలాగ్రైట్ (ఎనేబుల్ 1 పిన్, 0); // మోటార్ 1 స్పీడ్ అనలాగ్రైట్ (ఎనేబుల్ 2 పిన్, 0); // మోటార్ 2 స్పీడ్ డిజిటల్ రైట్ (మోటర్ 1 పిన్ 1, తక్కువ); // మోటార్ 1 పిన్ 1 తక్కువ డిజిటల్రైట్కు సెట్ చేయబడింది (మోటర్ 1 పిన్ 2, తక్కువ); // మోటార్ 1 పిన్ 2 తక్కువ డిజిటల్రైట్కు సెట్ చేయబడింది (మోటర్ 2 పిన్ 1, తక్కువ); // మోటార్ 2 పిన్ 1 తక్కువ డిజిటల్రైట్కు సెట్ చేయబడింది (మోటర్ 2 పిన్ 2, తక్కువ); // మోటార్ 2 పిన్ 2 తక్కువకు సెట్ చేయబడింది}}
అప్లికేషన్స్
- పారిశ్రామిక అనువర్తనాలు : సాంప్రదాయ కన్వేయర్ బెల్ట్లను భర్తీ చేసే పరిశ్రమలలో ఈ రోబోట్లను ఆటోమేటెడ్ ఎక్విప్మెంట్ క్యారియర్లుగా ఉపయోగించవచ్చు.
- దేశీయ అనువర్తనాలు : ఫ్లోర్ క్లీనింగ్, కిచెన్ వర్క్ వంటి గృహ అవసరాల కోసం ఇళ్లలో కూడా వీటిని ఉపయోగించవచ్చు.
- మార్గదర్శక అనువర్తనాలు : ఈ రోబోలను షాపింగ్ మాల్స్, ఫుడ్ కోర్టులు, మ్యూజియంలు వంటి బహిరంగ ప్రదేశాల్లో మార్గ మార్గదర్శకత్వం అందించడానికి ఉపయోగించవచ్చు