హలో
ఈ వ్యాసంలో నేను Arduino ఉపయోగించి నా మొదటి రోబోట్ను అసెంబ్లింగ్ చేసే విధానాన్ని వివరించాలనుకుంటున్నాను. ఒక రకమైన "స్వయంగా నడిచే బండి"ని తయారు చేయాలనుకునే నాలాంటి ఇతర ప్రారంభకులకు మెటీరియల్ ఉపయోగకరంగా ఉంటుంది. వ్యాసం వివిధ సూక్ష్మ నైపుణ్యాలపై నా జోడింపులతో పని చేసే దశల వివరణ. చివరి కోడ్కి లింక్ (అత్యంత ఆదర్శమైనది కాదు) వ్యాసం చివరిలో ఇవ్వబడింది.
వీలైనప్పుడల్లా, నేను పాల్గొనడంలో నా కొడుకు (8 సంవత్సరాలు) పాల్గొన్నాను. దానితో సరిగ్గా ఏమి పని చేసింది మరియు ఏమి చేయలేదు - నేను వ్యాసంలో కొంత భాగాన్ని దీనికి అంకితం చేసాను, బహుశా ఇది ఎవరికైనా ఉపయోగకరంగా ఉంటుంది.
రోబోట్ యొక్క సాధారణ వివరణ
మొదట, రోబోట్ గురించి కొన్ని మాటలు (ఆలోచన) నేను నిజంగా ప్రారంభంలో ఏదైనా ప్రమాణాన్ని సమీకరించాలని అనుకోలేదు. అదే సమయంలో, భాగాల సెట్ చాలా ప్రామాణికమైనది - చట్రం, ఇంజిన్లు, అల్ట్రాసోనిక్ సెన్సార్, లైన్ సెన్సార్, LED లు, ట్వీటర్. ప్రారంభంలో, దాని భూభాగాన్ని కాపాడే ఈ "సూప్ సెట్" నుండి రోబోట్ కనుగొనబడింది. అతను సర్కిల్ లైన్ దాటిన అపరాధి వైపు డ్రైవ్ చేస్తాడు, ఆపై మధ్యలోకి తిరిగి వస్తాడు. అయితే, ఈ సంస్కరణకు అన్ని సమయాల్లో సర్కిల్లో ఉండడానికి గీసిన గీతతో పాటు అదనపు గణితం అవసరం.
అందువల్ల, కొంత ఆలోచన తర్వాత, నేను ఆలోచనను కొంతవరకు మార్చుకున్నాను మరియు "హంటర్" రోబోట్ను తయారు చేయాలని నిర్ణయించుకున్నాను. ప్రారంభంలో, ఇది దాని అక్షం చుట్టూ తిరుగుతుంది, సమీపంలోని లక్ష్యాన్ని (వ్యక్తిని) ఎంచుకుంటుంది. "ఎర" గుర్తించబడితే, "వేటగాడు" ఫ్లాషింగ్ లైట్లు మరియు సైరన్ను ఆన్ చేసి దాని వైపు నడపడం ప్రారంభిస్తాడు. వ్యక్తి దూరంగా / పారిపోయినప్పుడు, రోబోట్ కొత్త లక్ష్యాన్ని ఎంచుకుంటుంది మరియు దానిని అనుసరిస్తుంది మరియు మొదలైనవి. అటువంటి రోబోట్కు పరిమిత సర్కిల్ అవసరం లేదు మరియు ఇది బహిరంగ ప్రదేశాలలో పని చేస్తుంది.
మీరు గమనిస్తే, ఇది క్యాచ్-అప్ గేమ్ లాంటిది. చివరికి రోబోట్ తగినంత వేగంగా పని చేయనప్పటికీ, అది తన చుట్టూ ఉన్న వ్యక్తులతో నిజాయితీగా సంభాషిస్తుంది. పిల్లలు దీన్ని ప్రత్యేకంగా ఇష్టపడతారు (కొన్నిసార్లు, అయితే, వారు దానిని తొక్కబోతున్నట్లు అనిపిస్తుంది, వారి గుండె కొట్టుకుంటుంది ...). సాంకేతిక రూపకల్పనను ప్రాచుర్యంలోకి తీసుకురావడానికి ఇది మంచి పరిష్కారం అని నేను భావిస్తున్నాను.
రోబోట్ నిర్మాణం
కాబట్టి, మేము ఆలోచనను నిర్ణయించుకున్నాము, ముందుకు వెళ్దాం లేఅవుట్. రోబోట్ ఏమి చేయగలదో దాని నుండి మూలకాల జాబితా రూపొందించబడింది. ఇక్కడ ప్రతిదీ చాలా స్పష్టంగా ఉంది, కాబట్టి వెంటనే సంఖ్యను చూద్దాం:
రోబోట్ యొక్క "మెదడులు" ఒక ఆర్డునో యునో బోర్డు (1); చైనా నుండి ఆర్డర్ చేసిన సెట్లో ఉంది. మా ప్రయోజనాల కోసం, ఇది చాలా సరిపోతుంది (మేము ఉపయోగించిన పిన్ల సంఖ్యపై దృష్టి పెడతాము). అదే కిట్ నుండి మేము రెడీమేడ్ చట్రం (2) తీసుకున్నాము, దానిపై రెండు డ్రైవ్ వీల్స్ (3) మరియు ఒక వెనుక (స్వేచ్ఛగా తిరిగే) (4) జోడించబడ్డాయి. కిట్లో రెడీమేడ్ బ్యాటరీ కంపార్ట్మెంట్ కూడా ఉంది (5). రోబోట్ ముందు అల్ట్రాసోనిక్ సెన్సార్ (HC-SR04) (6), వెనుక మోటారు డ్రైవర్ (L298N) (7), మధ్యలో LED ఫ్లాషర్ (8) ఉంది మరియు కొద్దిగా వైపు ఒక ట్వీటర్ ఉంది (9).
లేఅవుట్ దశలో మనం చూస్తాము:
- తద్వారా ప్రతిదీ సరిపోతుంది
- సమతుల్యంగా ఉండాలి
- హేతుబద్ధంగా ఉంచాలి
మా చైనీస్ సహోద్యోగులు ఇప్పటికే మా కోసం దీన్ని పాక్షికంగా చేసారు. కాబట్టి, భారీ బ్యాటరీ కంపార్ట్మెంట్ మధ్యలో ఉంచబడుతుంది మరియు డ్రైవ్ చక్రాలు దాని క్రింద ఉన్నాయి. అన్ని ఇతర బోర్డులు తేలికైనవి మరియు అంచున ఉంచవచ్చు.
సూక్ష్మ నైపుణ్యాలు:
- కిట్ నుండి చట్రం చాలా ఫ్యాక్టరీ రంధ్రాలను కలిగి ఉంది, కానీ వాటిలో లాజిక్ ఏమిటో నేను ఇప్పటికీ గుర్తించలేదు. ఇంజిన్లు మరియు బ్యాటరీ ప్యాక్ సమస్యలు లేకుండా భద్రపరచబడ్డాయి, అప్పుడు "సర్దుబాటు" ఈ లేదా ఆ బోర్డుని భద్రపరచడానికి కొత్త రంధ్రాలను డ్రిల్లింగ్ చేయడంతో ప్రారంభమైంది.
- నిల్వ ప్రాంతాల నుండి ఇత్తడి రాక్లు మరియు ఇతర ఫాస్టెనర్లు పెద్ద సహాయంగా ఉన్నాయి (కొన్నిసార్లు మేము వాటిని బయటకు తీయవలసి ఉంటుంది).
- నేను ప్రతి బోర్డు నుండి బస్బార్లను బిగింపుల ద్వారా దాటాను (మళ్ళీ, నేను వాటిని నిల్వలో కనుగొన్నాను). చాలా సౌకర్యవంతంగా, అన్ని వైర్లు చక్కగా ఉంటాయి మరియు డాంగిల్ చేయవద్దు.
వ్యక్తిగత బ్లాక్స్
ఇప్పుడు నేను వెళతాను బ్లాక్స్ మరియు నేను ఒక్కొక్కరి గురించి వ్యక్తిగతంగా మీకు చెప్తాను.
బ్యాటరీ కంపార్ట్మెంట్
రోబోట్కు మంచి శక్తి వనరులు ఉండాలి అని స్పష్టమైంది. ఎంపికలు మారవచ్చు, నేను 4 AA బ్యాటరీలతో ఎంపికను ఎంచుకున్నాను. మొత్తంగా వారు సుమారుగా 5 V ఇస్తారు, మరియు ఈ వోల్టేజ్ నేరుగా arduino బోర్డు యొక్క 5V పిన్కు వర్తించబడుతుంది (స్టెబిలైజర్ను దాటవేయడం).
వాస్తవానికి, నేను కొంత జాగ్రత్త వహించాను, కానీ ఈ పరిష్కారం చాలా పని చేయగలదు.
శక్తి ప్రతిచోటా అవసరం కాబట్టి, సౌలభ్యం కోసం నేను రోబోట్ మధ్యలో రెండు కనెక్టర్లను తయారు చేసాను: ఒకటి భూమిని (కుడివైపున) "పంపిణీ చేస్తుంది" మరియు రెండవది - 5 V (ఎడమవైపు).
మోటార్లు మరియు డ్రైవర్
మొదట, ఇంజిన్లను మౌంటు చేయడం గురించి. మౌంట్ ఫ్యాక్టరీ తయారు చేయబడింది, కానీ పెద్ద టాలరెన్స్తో తయారు చేయబడింది. మరో మాటలో చెప్పాలంటే, ఇంజిన్లు ఎడమ మరియు కుడికి రెండు మిల్లీమీటర్లు కదిలించగలవు. మా పని కోసం ఇది క్లిష్టమైనది కాదు, కానీ కొన్ని ప్రదేశాలలో ఇది ప్రభావం చూపుతుంది (రోబోట్ వైపుకు వెళ్లడం ప్రారంభమవుతుంది). ఒకవేళ, నేను ఇంజిన్లను ఖచ్చితంగా సమాంతరంగా సెట్ చేసాను మరియు వాటిని జిగురుతో పరిష్కరించాను.
మోటార్లు నియంత్రించడానికి, నేను పైన వ్రాసినట్లుగా, L298N డ్రైవర్ ఉపయోగించబడుతుంది. డాక్యుమెంటేషన్ ప్రకారం, ఇది ప్రతి మోటారుకు మూడు పిన్లను కలిగి ఉంటుంది: వేగాన్ని మార్చడానికి ఒకటి మరియు భ్రమణ దిశ కోసం ఒక జత పిన్లు. ఇక్కడ ఒక ముఖ్యమైన అంశం ఉంది. సరఫరా వోల్టేజ్ 5 V అయితే, స్పీడ్ కంట్రోల్ పనిచేయదు! అంటే, అది అస్సలు తిరగదు, లేదా అది గరిష్టంగా మారుతుంది. ఇది నాకు రెండు సాయంత్రాలు "చంపడానికి" కారణమైన లక్షణం. చివరికి, నేను ఫోరమ్లలో ఎక్కడో ఒక ప్రస్తావనను కనుగొన్నాను.
సాధారణంగా చెప్పాలంటే, రోబోట్ను తిప్పేటప్పుడు నాకు తక్కువ భ్రమణ వేగం అవసరం - తద్వారా స్థలాన్ని స్కాన్ చేయడానికి సమయం ఉంది. కానీ, ఈ ఆలోచన నుండి ఏమీ రాలేదు కాబట్టి, నేను దానిని భిన్నంగా చేయాల్సి వచ్చింది: ఒక చిన్న మలుపు - స్టాప్ - టర్న్ - స్టాప్, మొదలైనవి. మళ్ళీ, అంత సొగసైనది కాదు, కానీ పని చేయదగినది.
ప్రతి ప్రయత్నం తర్వాత రోబోట్ కొత్త మలుపు (సవ్యదిశలో లేదా అపసవ్య దిశలో) కోసం యాదృచ్ఛిక దిశను ఎంచుకుంటుంది అని కూడా నేను ఇక్కడ జోడిస్తాను.
అల్ట్రాసోనిక్ సెన్సార్
మేము రాజీ పరిష్కారం కోసం వెతకాల్సిన హార్డ్వేర్ యొక్క మరొక భాగం. అల్ట్రాసోనిక్ సెన్సార్ నిజమైన అడ్డంకులకు అస్థిర సంఖ్యలను ఉత్పత్తి చేస్తుంది. వాస్తవానికి, ఇది ఊహించబడింది. ఆదర్శవంతంగా, ఇది మృదువైన, సమానంగా మరియు లంబంగా ఉన్న ఉపరితలాలు ఉన్న పోటీలలో ఎక్కడా పని చేస్తుంది, అయితే ఎవరి కాళ్ళు దాని ముందు "ఫ్లాష్" అయితే, అదనపు ప్రాసెసింగ్ పరిచయం చేయవలసి ఉంటుంది.
అటువంటి ప్రాసెసింగ్ నేను సెట్ చేసాను
అన్ని ప్రాసెసింగ్ తర్వాత, మేము సమీప వస్తువుకు దూరం పొందుతాము. ఇది నిర్దిష్ట థ్రెషోల్డ్ విలువ కంటే తక్కువగా ఉంటే, అప్పుడు మేము అలారం ఆన్ చేసి నేరుగా "చొరబాటుదారుడు" వైపు డ్రైవ్ చేస్తాము.
ఫ్లాషర్ మరియు సైరన్
పైన పేర్కొన్న అన్నింటిలో బహుశా సరళమైన అంశాలు. వాటిని పై ఛాయాచిత్రాలలో చూడవచ్చు. హార్డ్వేర్ గురించి ఇక్కడ వ్రాయడానికి ఏమీ లేదు, కాబట్టి ఇప్పుడు మనం ముందుకు వెళ్దాం కోడ్.
నియంత్రణ కార్యక్రమం
కోడ్ని వివరంగా వివరించడంలో నాకు అర్థం లేదు, ఎవరికి అది అవసరం - లింక్ వ్యాసం చివరిలో ఉంది, అక్కడ ప్రతిదీ చాలా చదవగలిగేలా ఉంది. కానీ సాధారణ నిర్మాణాన్ని వివరించడం మంచిది.
రోబోట్ అనేది నిజ-సమయ పరికరం అని మనం అర్థం చేసుకోవలసిన మొదటి విషయం. మరింత ఖచ్చితంగా, గుర్తుంచుకోవడానికి, ఎందుకంటే ముందు మరియు ఇప్పుడు నేను ఇప్పటికీ ఎలక్ట్రానిక్స్లో పని చేస్తున్నాను. కాబట్టి, మేము సవాలు గురించి వెంటనే మర్చిపోతాము ఆలస్యం (), వారు ఉదాహరణ స్కెచ్లలో ఉపయోగించడానికి ఇష్టపడతారు మరియు నిర్దిష్ట సమయం వరకు ప్రోగ్రామ్ను "స్తంభింపజేస్తుంది". బదులుగా, అనుభవజ్ఞులైన వ్యక్తులు సూచించినట్లుగా, మేము ప్రతి బ్లాక్కు టైమర్లను పరిచయం చేస్తాము. అవసరమైన విరామం గడిచిపోయింది - చర్య నిర్వహించబడింది (LED యొక్క ప్రకాశాన్ని పెంచడం, ఇంజిన్ ఆన్ చేయడం మరియు మొదలైనవి).
టైమర్లను ఇంటర్కనెక్ట్ చేయవచ్చు. ఉదాహరణకు, ట్వీటర్ ఫ్లాషర్తో సమకాలీనంగా పనిచేస్తుంది. ఇది ప్రోగ్రామ్ను కొద్దిగా సులభతరం చేస్తుంది.
సహజంగానే, మేము ప్రతిదానిని ప్రత్యేక విధులుగా విభజిస్తాము (ఫ్లాషింగ్ లైట్లు, సౌండ్, టర్నింగ్, ముందుకు వెళ్లడం మొదలైనవి). మీరు దీన్ని చేయకపోతే, ఎక్కడ మరియు ఎక్కడ నుండి ఏమి వస్తుందో మీరు గుర్తించలేరు.
బోధనా శాస్త్రం యొక్క సూక్ష్మ నైపుణ్యాలు
పైన వివరించిన ప్రతిదాన్ని నేను సాయంత్రం నా ఖాళీ సమయంలో చేసాను. తీరికగా, నేను రోబోట్లో మూడు వారాలు గడిపాను. ఇది ఇక్కడితో ముగిసి ఉండవచ్చు, కానీ పిల్లలతో కలిసి పని చేయడం గురించి కూడా మీకు చెప్తానని వాగ్దానం చేసాను. ఈ వయస్సులో ఏమి చేయవచ్చు?
సూచనల ప్రకారం పని చేయండి
మేము మొదట ప్రతి వివరాలను విడిగా తనిఖీ చేసాము - LED లు, ట్వీటర్, మోటార్లు, సెన్సార్లు మొదలైనవి. పెద్ద సంఖ్యలో రెడీమేడ్ ఉదాహరణలు ఉన్నాయి - కొన్ని సరైన అభివృద్ధి వాతావరణంలో, మరికొన్ని ఇంటర్నెట్లో కనుగొనబడతాయి. ఇది ఖచ్చితంగా నాకు సంతోషాన్నిస్తుంది. మేము కోడ్ని తీసుకుంటాము, భాగాన్ని కనెక్ట్ చేస్తాము, అది పని చేస్తుందని నిర్ధారించుకోండి, ఆపై మేము దానిని మా పనికి అనుగుణంగా మార్చడం ప్రారంభిస్తాము. పిల్లవాడు రేఖాచిత్రం ప్రకారం మరియు నా పర్యవేక్షణలో కొన్ని కనెక్షన్లను చేస్తాడు. ఇది బాగుంది. మీరు సూచనల ప్రకారం ఖచ్చితంగా పని చేయగలగాలి.
పని క్రమం ("ప్రత్యేకంగా నుండి సాధారణం వరకు")
ఇది కష్టమైన అంశం. ఒక పెద్ద ప్రాజెక్ట్ (“రోబోట్ను తయారు చేయండి”)లో చిన్న పనులు (“సెన్సార్ని కనెక్ట్ చేయండి,” “మోటార్లను కనెక్ట్ చేయండి”...) ఉంటాయని మీరు తెలుసుకోవాలి మరియు అవి కూడా చిన్న దశలను కలిగి ఉంటాయి (“ఒక కనుగొనండి ప్రోగ్రామ్,” “ఒక బోర్డ్ను కనెక్ట్ చేయండి.” ", "ఫర్మ్వేర్ను డౌన్లోడ్ చేయండి"...). దిగువ స్థాయికి ఎక్కువ లేదా తక్కువ అర్థమయ్యే పనులను చేయడం ద్వారా, మేము మధ్య స్థాయి పనులను "మూసివేస్తాము" మరియు వాటి నుండి మొత్తం ఫలితం ఏర్పడుతుంది. నేను వివరించాను, కాని గ్రహింపు త్వరలో రాదని నేను భావిస్తున్నాను. ఎక్కడో, బహుశా, కౌమారదశలో.
మౌంటు
డ్రిల్లింగ్, థ్రెడ్లు, స్క్రూలు, గింజలు, టంకం మరియు రోసిన్ వాసన - అది లేకుండా మనం ఎక్కడ ఉంటాము? పిల్లవాడు “టంకం ఇనుముతో పనిచేయడం” అనే ప్రాథమిక నైపుణ్యాన్ని పొందాడు - అతను అనేక కనెక్షన్లను టంకము చేయగలిగాడు (నేను కొంచెం సహాయం చేసాను, నేను దానిని దాచను). భద్రతా వివరణ గురించి మర్చిపోవద్దు.
కంప్యూటర్ పని
నేను రోబోట్ కోసం ప్రోగ్రామ్ వ్రాసాను, కానీ నేను ఇప్పటికీ కొన్ని అనుకూలమైన ఫలితాలను సాధించగలిగాను.
మొదటిది: ఇంగ్లీష్. వారు దీనిని పాఠశాలలో ఇప్పుడే ప్రారంభించారు, కాబట్టి మేము పిషల్కా, మిగల్కా, యార్కోస్ట్ మరియు ఇతర లిప్యంతరీకరణలు ఏమిటో గుర్తించడానికి చాలా కష్టపడుతున్నాము. కనీసం మేము దీన్ని అర్థం చేసుకున్నాము. మేము ఇంకా ఈ స్థాయికి చేరుకోలేదు కాబట్టి నేను ఉద్దేశపూర్వకంగా స్థానిక ఆంగ్ల పదాలను ఉపయోగించలేదు.
రెండవది: సమర్థవంతమైన పని. మేము హాట్కీ కాంబినేషన్లను మరియు ప్రామాణిక కార్యకలాపాలను త్వరగా ఎలా నిర్వహించాలో నేర్పించాము. క్రమానుగతంగా, మేము ప్రోగ్రామ్ వ్రాస్తున్నప్పుడు, నా కొడుకు మరియు నేను స్థలాలను మార్చుకున్నాము మరియు నేను ఏమి చేయాలో చెప్పాను (భర్తీ, శోధన మొదలైనవి). నేను పదే పదే పునరావృతం చేయాల్సి వచ్చింది: “డబుల్-క్లిక్ ఎంచుకోండి”, “Hold Shift”, “Ctrlని పట్టుకోండి” మరియు మొదలైనవి. ఇక్కడ అభ్యాస ప్రక్రియ వేగంగా లేదు, కానీ నైపుణ్యాలు క్రమంగా "సబ్కార్టెక్స్లో" జమ అవుతాయని నేను భావిస్తున్నాను.
దాచిన వచనంపైన పేర్కొన్నది దాదాపు స్పష్టంగా ఉందని మీరు చెప్పగలరు. కానీ, నిజాయితీగా, ఈ పతనం నాకు ఒక పాఠశాలలో 9 వ తరగతిలో కంప్యూటర్ సైన్స్ బోధించే అవకాశం వచ్చింది. అది భయంకరమైనది. విద్యార్థులకు Ctrl + Z, Ctrl + C మరియు Ctrl + V వంటి ప్రాథమిక విషయాలు తెలియవు, Shiftని పట్టుకుని వచనాన్ని ఎంచుకోవడం లేదా పదంపై డబుల్ క్లిక్ చేయడం మొదలైనవి. వారు కంప్యూటర్ సైన్స్ మూడో సంవత్సరం చదువుతున్నప్పటికీ... మీ స్వంత తీర్మానాన్ని గీయండి.
మూడవది: టచ్ టైపింగ్. నేను కోడ్లోని వ్యాఖ్యలను టైప్ చేయడానికి (అతను ప్రాక్టీస్ చేయనివ్వండి) చిన్నారికి అప్పగించాను. మేము వెంటనే మా చేతులను సరిగ్గా ఉంచాము, తద్వారా మా వేళ్లు క్రమంగా కీల స్థానాన్ని గుర్తుంచుకుంటాయి.
మీరు గమనిస్తే, మేము ఇంకా ప్రారంభిస్తున్నాము. మేము మా నైపుణ్యాలను మరియు జ్ఞానాన్ని మెరుగుపరచుకోవడం కొనసాగిస్తాము; అవి జీవితంలో ఉపయోగకరంగా ఉంటాయి.
మార్గం ద్వారా, భవిష్యత్తు గురించి...
మరింత అభివృద్ధి
రోబోట్ తయారు చేయబడింది, డ్రైవ్లు, బ్లింక్లు మరియు బీప్లు. ఇప్పుడు ఏంటి? మేము సాధించిన దాని నుండి ప్రేరణ పొంది, మేము దానిని మరింత మెరుగుపరచడానికి ప్లాన్ చేస్తున్నాము. రిమోట్ కంట్రోల్ తయారు చేయాలనే ఆలోచన ఉంది - చంద్ర రోవర్ లాగా. ఇది పూర్తిగా భిన్నమైన ప్రదేశంలో డ్రైవింగ్ చేసే రోబోట్ యొక్క కదలికను నియంత్రించడానికి రిమోట్ కంట్రోల్ వద్ద కూర్చొని ఆసక్తికరంగా ఉంటుంది. అయితే అది వేరే కథ అవుతుంది...
మరియు చివరికి, వాస్తవానికి, ఈ వ్యాసం యొక్క నాయకులు (క్లిక్ చేయడం ద్వారా వీడియో):
Спасибо!
→
మూలం: www.habr.com