మరొక పనికిరాని యంత్రాన్ని ఎలా నిర్మించాలి: తయారు చేయడం సులభం మరియు ఉపయోగించడం కష్టం!: 9 దశలు (చిత్రాలతో)

মাঝে মাঝে টিà¦à¦¿ অ্যাড দেখে চরম মজা লাগে

মাঝে মাঝে টিà¦à¦¿ অ্যাড দেখে চরম মজা লাগে

విషయ సూచిక:

Anonim

చాలా పనికిరాని యంత్రాలు నిర్మించబడ్డాయి, మరొకదాన్ని ఎందుకు నిర్మించాలి? సరళంగా, ఇది నిజంగా సరదాగా ఉంటుంది :), నిర్మించడానికి సరదాగా ఉంటుంది మరియు ఆడటానికి సరదాగా ఉంటుంది.
నేను ఈ సంస్కరణకు ఒక పాత్రను ఇవ్వడానికి ప్రయత్నించాను, ఎవరో "పెట్టె లోపల ఆలోచిస్తున్నారని" నేను ఎప్పుడూ భావించాను, కాబట్టి ఇక్కడ నేను ప్రయత్నించాను, "ఆమెకు" జీవితాన్ని ఇవ్వడానికి నేను విజయవంతమయ్యానని ఆశిస్తున్నాను!
అన్ని దశలను మీతో పంచుకోవడం నాకు చాలా సంతోషంగా ఉంది, మీరు సులభంగా మీదే నిర్మించుకుంటారని మరియు చేదు లేదా మంచి పాత్రను ఇస్తారని అన్ని ఆశలతో! నా సంస్కరణ ఆర్డునోపై ఆధారపడింది, ఇది ఓవర్ కిల్ అని మీరు అనుకోవచ్చు, కాని అది నాకు ఇచ్చిన వశ్యతను చూస్తే, అది విలువైనదని నేను భావిస్తున్నాను.
అన్నింటినీ కలిపి ఉంచిన వీడియో ఇక్కడ ఉంది. తరువాత, మేము భాగాలు, దశలు, స్కీమాటిక్స్ మరియు కోడ్‌లోకి వెళ్తాము
మీ వ్యాఖ్యలు మరియు / లేదా ప్రశ్నలు ఏదైనా ఉంటే నాకు తెలియజేయండి.
మీరు ఆనందిస్తారని ఆశిస్తున్నాను!
f.

సామాగ్రి:

దశ 1: ఇది ఎలా పనిచేస్తుంది?

ప్రతిదీ ఒక ఆర్డునో బోర్డ్‌కు అనుసంధానించబడి ఉంది, స్విచ్ లాజిక్ హైగ్‌కు సెట్ అయ్యే వరకు బోర్డు వేచి ఉంటుంది, అనగా, మీరు స్విచ్‌ను ఫ్లిక్ చేసినప్పుడు, బోర్డు రెండు సర్వో మోటార్లు ఒక నిర్దిష్ట మార్గంలో (తరువాత మరింత) కదలమని సిగ్నల్ చేస్తుంది, ఆ తర్వాత , "చేతి" కి కనెక్ట్ చేయబడిన సర్వో స్విచ్‌ను తిరిగి ఆఫ్-స్థానానికి ఎగరవేసి, తిరిగి బాక్స్‌లోకి తిరిగి వస్తుంది, తరువాత "డోర్" సర్వో ఉంటుంది. అప్పుడు ప్రతిదీ పునరావృతమవుతుంది.
మీరు పై వీడియోను చూసినట్లయితే, ప్రతిసారీ స్విచ్ టోగుల్ చేయబడినప్పుడు, యంత్రం వేరే విధంగా స్పందిస్తుంది మరియు ఆర్డునో కోడ్‌లో వేర్వేరు సమయాలతో వేర్వేరు ఫంక్షన్లను వ్రాయడం ద్వారా ఇది జరుగుతుంది, (నేను వాటిని "మూవ్స్" అని పిలుస్తున్నాను). స్విచ్ టోగుల్ చేయబడిన ప్రతిసారీ, అన్నీ పూర్తయ్యే వరకు నేను కొత్త కదలికను పిలుస్తున్నాను, నేను ప్రారంభించాను. 9 వ దశలో, క్రమం యొక్క బదులుగా యాదృచ్ఛిక కదలికలను ఎంచుకునే కోడ్ యొక్క మరొక సంస్కరణను నేను అందించాను. ఆర్డునోలో మీకు తగినంత జ్ఞాపకశక్తి ఉన్నంత వరకు మీకు కావలసినన్ని కదలికలను మీరు జోడించవచ్చు.
Arduino ఎల్లప్పుడూ ఆన్‌లో ఉంటుంది, అందుకే యంత్రం ఉపయోగంలో లేనప్పుడు కొంత శక్తిని ఆదా చేయడానికి బ్యాటరీ కోసం ఒక స్విచ్‌ను జోడించాను. ప్రస్తుత సరళమైన HIGH / LOW డిటెక్షన్ బదులు, స్విచ్‌లో అంతరాయాన్ని ఉపయోగించాలని మరియు స్లీప్ మోడ్‌తో కలపాలని నేను ఇప్పటికే ప్లాన్ చేస్తున్నాను. యంత్రం ఉపయోగంలో లేనప్పుడు ఇది శక్తిని ఆదా చేస్తుంది మరియు ఇది ఎల్లప్పుడూ సిద్ధంగా ఉండటానికి అనుమతిస్తుంది (కానీ ఇది కోడ్‌ను కూడా క్లిష్టతరం చేస్తుంది) కాబట్టి, ప్రస్తుతానికి, ఇది సాధారణ ఆన్ / ఆఫ్ స్విచ్ మాత్రమే, మరియు బోర్డు ఎల్లప్పుడూ శక్తితో ఉంటుంది .

దశ 2: భాగాలు

నీకు అవసరం అవుతుంది:
తప్పనిసరి:
1. ఒక పెట్టె
2. పిడబ్ల్యుఎమ్ అవుట్‌పుట్‌లతో ఏదైనా ఆర్డునో బోర్డ్ (నేను పాతది, డైసిమిలా చుట్టూ ఉంచాను)
3. రెండు ప్రామాణిక RC సర్వో మోటార్లు (నేను ఫుటాబా - S3003 ను ఉపయోగించాను, వాటికి 3,2 Kg / cm టార్క్ ఉంది, తలుపు లేదా చేతిని తరలించడానికి సరిపోతుంది)
4. 6-12 V బ్యాటరీ (నేను నా AR డ్రోన్ బ్యాటరీని ఉపయోగించాను, ఇది 11.1 v / 1000 mA)
3. ట్రిగ్గర్ కోసం ఒక SPTT లేదా SPST స్విచ్ (ప్రాథమికంగా, మీకు సరిపోయే ఏదైనా స్విచ్!)
5. బ్యాటరీ కోసం మరొక స్విచ్
6. మీరు పై నుండి కదలికలు / కోడ్‌ను పున art ప్రారంభించాలనుకుంటే ఆర్డునోను రీసెట్ చేయడానికి ఒక పుష్ బటన్.
7. కొన్ని జంపర్ వైర్లు

ఐచ్ఛికము:
ఒకవేళ మీరు పెట్టెను కదిలించడం (వీడియోలో చివరి కదలిక వంటివి) కలిగి ఉన్న కదలికను రూపొందించాలనుకుంటే, మీరు పొందవచ్చు:
1. ఆర్డునో మోటార్ షీల్డ్, ఇది ఇతర ప్రాజెక్టులకు కూడా ఉపయోగపడుతుంది (లేదా మీరు మీరే హెచ్-బ్రిడ్జిని డిజైన్ చేసుకోవచ్చు, దాన్ని శోధించండి)
2. చౌకైన RC కారు కాబట్టి మీరు దాని DC మోటర్ మరియు గేర్ బాక్స్ తీసుకోవచ్చు
ఇంకా, ఇప్పటికీ "ఐచ్ఛిక" విభాగంలో, స్విచ్ ఆన్ / ఆఫ్ టోగుల్ చేయబడినప్పుడు క్లీన్ ట్రిగ్గర్ కలిగి ఉండటానికి నేను హార్డ్‌వేర్ డి-బౌన్స్ సర్క్యూట్‌ను నిర్మించాను. దీన్ని దాటవేయవచ్చు మరియు ఆలస్యం లేదా టైమర్‌లను ఉపయోగించి ఆర్డునో సాఫ్ట్‌వేర్‌లో సులభంగా అమలు చేయవచ్చు. నేను హార్డ్‌వేర్ డీబౌన్స్ చేసాను, ఎందుకంటే నేను త్వరలోనే అంతరాయాలను ఉపయోగించటానికి కోడ్‌ను మారుస్తాను, మరియు తరువాతి దినచర్యలో ఆలస్యం / టైమర్ ఫంక్షన్ల యొక్క నమ్మకమైన వాడకాన్ని అనుమతించనందున, భవిష్యత్ ఉపయోగం కోసం నేను సరళమైన డి-బౌన్స్ సర్క్యూట్‌ను నిర్మించాల్సి వచ్చింది . మీరు ఈ భాగాన్ని దాటవేయాలనుకుంటే, ఆర్డునో యొక్క పిన్ 2 కు సాధారణ స్విచ్ / రెసిస్టర్‌ను కనెక్ట్ చేసి, సాఫ్ట్‌వేర్ డీబౌన్స్ దినచర్యను అమలు చేయండి.
హార్డ్వేర్ డీబౌన్స్ కోసం:
1. 10 ఎంఎఫ్ ఎలక్ట్రోలైటిక్ కెపాసిటర్
2. 10 కె రెసిస్టర్
3. ఒక లాజిక్ NOT గేట్ అనగా ఇన్వర్టర్ (చిప్ 74HC04) దీనికి ఆరు ఇన్వర్టర్లు ఉన్నాయి, కానీ మీకు ఒకటి మాత్రమే అవసరం.
దీనిని నిర్మిద్దాం …

దశ 3: పెట్టెను నిర్మించడం

మీకు అనువైన ఏదైనా పెట్టెను ఉపయోగించవచ్చు. నేను గనిని నిర్మించాను, బహుశా పరిపూర్ణంగా ఉండకపోవచ్చు, కానీ ఇంకా చాలా వ్యక్తిగత :)
1. నేను 5 మి.మీ బాల్సా కలప యొక్క 2 షీట్లను ఉపయోగించాను, కట్టర్‌ను ఉపయోగించడం చాలా సులభం, మరియు దాని నమ్మశక్యం కాని తక్కువ బరువును బట్టి చాలా బలంగా ఉంది.
2. సైనోయాక్రిలాట్ జిగురు యొక్క 5 గొట్టాలు (బలమైన ఫాస్ట్-యాక్టింగ్ సంసంజనాలు)
ఇదిగో:
ఒక 22 x 14 x 14 సెం.మీ. బాక్స్

దశ 4: స్కీమాటిక్

పైన ఉన్నది స్కీమాటిక్ (ఫ్రిట్జింగ్ ఉపయోగించి గీసినది), చూపిస్తుంది:
ఎగువ భాగం: ఆర్డునో మెయిన్ బోర్డ్, 2 సర్వోస్ మరియు స్విచ్ కనెక్టివిటీ. ఇంతకు ముందు చెప్పినట్లుగా మీరు మొత్తం డీబౌన్స్ (ఎగువ-కుడి) సర్క్యూట్‌ను సాధారణ రెసిస్టర్ / స్విచ్‌తో భర్తీ చేయవచ్చని గమనించండి.
"డోర్" మరియు "హ్యాండ్" సర్వోలు రెండూ ఆర్డునోలోని 5 వి పిన్ నుండి నేరుగా శక్తిని పొందుతాయి. సిగ్నల్ వైర్లు వరుసగా పిన్ 9 మరియు 10 కి అనుసంధానించబడి ఉన్నాయి. ఈ పిన్స్ PWM కి మద్దతు ఇస్తాయి, అందువల్ల నేను సర్వో యొక్క కోణం / స్థానాన్ని నియంత్రించడానికి వాటిని ఉపయోగిస్తున్నాను (గరిష్టంగా 0 నుండి 180 డిగ్రీల వరకు).
గమనిక: ఎరుపు పుష్ బటన్ కేవలం రీసెట్ (ఆర్డునో బోర్డు ముఖంలో కనిపించే మాదిరిగానే). పెట్టెను తెరవకుండా ఎప్పుడైనా బోర్డు / సాఫ్ట్‌వేర్‌ను రీసెట్ చేయడానికి శీఘ్ర ప్రాప్యతను కలిగి ఉండటానికి నేను దీన్ని జోడించాను. రీసెట్ చేయడానికి రీసెట్ పిన్‌ను గ్రౌండ్‌కు కలుపుతుంది.
దిగువ భాగం: మీరు DC మోటారును ఉపయోగించాలనుకుంటే మరియు యంత్రాన్ని చుట్టూ తరలించాలనుకుంటే అవసరం. ఇది ఆర్డునో మోటారు షీల్డ్, ఇది ఆర్డునో పైన అమర్చబడి ఉంటుంది, కాబట్టి రెండు బోర్డుల పిన్స్ అన్నీ ఒకదానితో ఒకటి అనుసంధానించబడి ఉంటాయి. నేను వాటిని స్పష్టత కోసం వేరు చేసినట్లు క్రింద చూపిస్తున్నాను, ఆశాజనక! ఈ కవచం 2 DC మోటారు (2 ఛానెల్స్ A / B) వరకు నమ్మశక్యం కాని సులభంగా నియంత్రించగలదు. నేను ఇప్పుడు ఒక్కదాన్ని మాత్రమే ఉపయోగిస్తున్నాను. ఇది అందుబాటులో ఉన్న 2 ఛానెల్స్ / మోటార్లు యొక్క కోడ్, దిశ, వేగం మరియు విరామాలను సెట్ చేయడానికి అనుమతిస్తుంది. నేను చూపించిన విధంగా ఛానెల్ B ని ఉపయోగిస్తున్నాను. పిన్ ఎక్కడ
దిశకు 13, వేగం కోసం పిన్ 11 మరియు బ్రేక్‌ల నియంత్రణకు పిన్ 8.
బ్యాటరీ 11.1 / 1000 mA, షీల్డ్‌తో అనుసంధానించబడి, DC మోటారు, ప్రధాన ఆర్డునో బోర్డు మరియు సర్వోస్‌లకు ఆహారం ఇస్తుంది. మీరు కవచాన్ని ఉపయోగించకపోతే, మీరు నేరుగా బ్యాటరీని ప్రధాన ఆర్డునో బోర్డులోని పవర్ బారెల్‌కు కనెక్ట్ చేయవచ్చు.

దశ 5: సర్వోస్‌ను పరిష్కరించడం

ఇక్కడ చేతి మరియు తలుపు సర్వోలు వ్యవస్థాపించబడ్డాయి:
సర్వోస్‌ను వాటి సరైన ప్రదేశాల్లో ఇన్‌స్టాల్ చేయడానికి మీకు మొదట అవసరం, మీకు అవసరమైన కదలిక వచ్చేవరకు దీనికి కొంచెం ట్రయల్ మరియు లోపం అవసరం. సర్వోలు మరియు ప్రతిదానికి అవసరమైన విక్షేపం మొత్తాన్ని పరీక్షించడానికి మీరు ఆర్డునో IDE లో అందించిన సర్వో ఉదాహరణను ఉపయోగించవచ్చు, తద్వారా తలుపు మరియు చేతి సర్వోస్ కోసం తుది స్థానాలు మరియు ఆయుధాల పొడవును నిర్ణయించండి.
చేతులు కేవలం బాల్సా కలపతో తయారవుతాయి, కొంత చిరిగిపోవడాన్ని తట్టుకునేలా నేను వాటిని మందంగా చేసాను.
నేను ఎలా చేశానో క్రింద ఉంది. హ్యాండ్ సర్వో గురించి ఒక గమనిక. కవర్ యొక్క అంచు క్రింద (క్రింద చూపిన విధంగా) మీకు సర్వో షాఫ్ట్ అవసరం, ఇది స్విచ్‌ను విజయవంతంగా కొట్టగలిగే చేతిని తయారు చేయడంలో కష్టపడకుండా ఉండటానికి మరియు తిరిగి పెట్టెలోకి వెళ్ళగలిగేలా చేస్తుంది.


దశ 6: స్విచ్, సర్వోస్ మరియు ఆర్డునోలను కనెక్ట్ చేస్తోంది

స్కీమాటిక్ దశలో కనిపించే అన్ని కనెక్షన్‌లను చేయండి మరియు పైన చూపిన వాటికి సమానమైన పెట్టె లోపల ఉంచడానికి ప్రయత్నించండి:

దశ 7: ఐచ్ఛికం: DC మోటార్ మరియు బ్యాటరీ

పైన నేను DC మోటారు గేర్ బాక్స్‌ను (చౌకైన RC కారు నుండి తీసినది) ఎలా ఉంచాను, పిండి మరియు స్విచ్ ప్లేస్‌మెంట్‌ను కూడా చూపిస్తుంది.
బాక్స్‌ను సమతుల్యం చేయడానికి గేర్‌ను సాధ్యమైనంత కేంద్రీకృతమై ఉంచాలని నిర్ధారించుకోండి, తుది అసెంబ్లీ తర్వాత దాన్ని మరింత సమతుల్యం చేయడానికి మీరు బాక్స్ లోపల కొంత బరువును ఉంచాల్సి ఉంటుంది, ఎందుకంటే నేను ఉపయోగించిన బ్యాటరీ కొంచెం భారీగా ఉంటుంది (100 gr) మరియు కొంత విగ్లింగ్‌కు కారణమైంది పెట్టెను మార్చినప్పుడు లేదా కదిలేటప్పుడు.
డిసి మోటర్ గమనించండి వేగం పిన్ ద్వారా నియంత్రించబడుతుంది 11, దర్శకత్వం పిన్ ద్వారా 13, మరియు బ్రేక్లు పిన్లో 8, వీటిని ఆర్డునో మోటార్ షీల్డ్‌లో ఛానల్ బిగా పరిగణిస్తారు.
అసెంబ్లీ ద్వారా నేను సాధారణ ప్రామాణికమైన పెట్టెను కలిగి ఉండటానికి అన్ని వైర్లు స్విచ్‌లు మరియు ఇతర భాగాలను దాచడానికి ప్రయత్నించాను. ఇది చక్రాలకు వర్తిస్తుంది, కాబట్టి నేను వాటి చుట్టూ చక్రాలు మరియు బ్యాటరీ రెండింటినీ హోస్ట్ చేసే అంచుని తయారు చేసాను మరియు ఎరుపు రీసెట్ బటన్‌కు కూడా ప్రాప్యతను అందిస్తుంది.

దశ 8: కోడ్

Arduino కోసం కోడ్ రాయడానికి, మీకు arduino IDE అవసరం (దీన్ని ఇక్కడ డౌన్‌లోడ్ చేయండి)
నేను సంస్కరణ 1.0.5 ను ఉపయోగిస్తున్నాను, IDE లోపల నుండి సరైన COM పోర్ట్ (విండోస్) మరియు బోర్డు రకాన్ని ఎంచుకున్నారని నిర్ధారించుకోండి, ఆపై క్రింది కోడ్‌ను ఉపయోగించండి మరియు అప్‌లోడ్ నొక్కండి.
గమనిక: సర్వోస్ యొక్క గరిష్ట విక్షేపం సెట్ చేయడానికి నేను కోడ్‌లో ఉపయోగించిన విలువలు ఈ పెట్టె కోసం సర్వోస్ పొజిషనింగ్, యాక్సిస్ మరియు కోణాలను పరిగణనలోకి తీసుకుంటాయి. నేను దీనిని ట్రయల్ ద్వారా పొందాను. కాబట్టి మీరు మీ పెట్టె ప్రకారం మీ స్వంత విలువలను రూపొందించాలి మరియు సర్వో ప్లేస్‌మెంట్.
సూచన కోసం, ప్రతి సర్వో కోసం నేను ఉపయోగించిన కనిష్ట / గరిష్ట విలువలు క్రింద ఉన్నాయి, ఎందుకంటే అవి కోడ్‌లో సంభవిస్తాయని మీరు చూస్తారు:
ఆ తలుపు:
80 దాచడం, 155 పూర్తిగా తెరిచి ఉంది
చెయ్యి:
0 దాచడం, 129 స్విచ్ మీద నెట్టడం

ఇక్కడ కోడ్ ఉంది (దిగువ నుండి కాపీ / పేస్ట్ చేయడానికి బదులుగా ఈ దశకు జోడించిన ఫైల్‌ను డౌన్‌లోడ్ చేయడం మంచిది):
# ఉన్నాయి
సర్వో డోర్సర్వో;
సర్వో హ్యాండ్‌సర్వో;
int స్విచ్_పిన్ = 2; పిన్ 2 పై // సెట్ స్విచ్
// మోటార్ వేరియబుల్స్
int motorThrottle = 11;
పూర్ణాంక మోటారు దిశ = 13;
int మోటర్‌బ్రేక్ = 8;
int pos = 0;
int selectMove = 0; // మూవ్ సెలెక్టర్
int టెస్ట్మోవ్ = 0; // పరీక్ష మోడ్: ఎంచుకున్న ఒక కదలికను మాత్రమే పరీక్షించడానికి సంఖ్యను తరలించడానికి సెట్ చేయండి
// (సాధారణంగా అమలు చేయడానికి జీరోకు సెట్ చేయబడింది అనగా: amm కదలికలపై రౌండ్‌రోబిన్)
శూన్య సెటప్ ()
{
Serial.begin (9600);
పిన్‌మోడ్ (స్విచ్_పిన్, INPUT);
doorServo.attach (9); పిన్ 9 pwm లో // సెట్ డోర్ సర్వో
handServo.attach (10); // పిన్ 10 pwm లో హ్యాండ్ సర్వో సెట్ చేయండి
doorServo.write (80); // దాచడానికి స్థానం సెట్
handServo.write (0); // దాచడానికి స్థానం చేయి

// ఛానల్ B ను సెటప్ చేయండి, (ఛానల్ A తలుపు మరియు చేతి సేవలు ద్వారా రిజర్వు చేయబడినందున మరియు అదే సమయంలో ఉపయోగించబడదు)
పిన్ మోడ్ (మోటారు దిశ, U ట్పుట్); // మోటార్ ఛానల్ బి పిన్ను ప్రారంభిస్తుంది
పిన్‌మోడ్ (మోటర్‌బ్రేక్, అవుట్‌పుట్); // బ్రేక్ ఛానల్ బి పిన్‌ను ప్రారంభిస్తుంది

}

శూన్య లూప్ ()
{
if (Testmove! = 0) {
selectMove = Testmove;
}

// స్విచ్ ఆన్‌లో ఉంటే, దాన్ని స్విచ్ ఆఫ్ చేయడానికి తలుపు మరియు చేయిని తరలించండి …
if (DigitalRead (switch_pin) == HIGH)
{

if (selectMove> 10) {selectMove = 0; } // అన్ని కదలికలు ఆడినప్పుడు, కదలికలను మొదటి నుండి పునరావృతం చేయండి
// క్రింద నేను ఇప్పటివరకు రూపొందించిన అన్ని "కదలికలు", ప్రతి ఒక్కటి కోడ్‌లో క్రింద వ్రాయబడిన ఫంక్షన్, పేర్లను అమలు చేయడం, వింతగా ఉందా? అవును కొన్ని అరబిక్‌లో వ్రాయబడ్డాయి
if (selectMove == 0) {స్విచ్చాఫ్ (); }
else if (selectMove == 1) {స్విచ్చాఫ్ (); }
else if (selectMove == 2) {switchoffbitaraddod (); }
else if (selectMove == 3) {క్రేజీడోర్ (); }
else if (selectMove == 4) {crazyslow (); }
else if (selectMove == 5) {m7anika7anika (); }
else if (selectMove == 6) {m3alla2 (); }
else if (selectMove == 7) {స్విచ్చాఫ్ (); }
else if (selectMove == 8) {matrix (); }
else if (selectMove == 9) {స్నీక్ (); }
else if (selectMove == 10) {zee7 (); }

if (Testmove == 0) {
selectedMove ++; టెస్ట్ మోడ్‌లో లేకపోతే తదుపరి కదలికకు వెళ్లండి
}
}
}

// కదలికల లైబ్రరీ
// ప్రాథమిక కదలిక
శూన్య స్విచ్ఆఫ్ ()
{
// కదిలే తలుపు
(pos = 80; pos <155; pos = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}

// చేయి కదిలే
(pos = 0; pos <129; pos = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}

// చేతిని దాచడం
for (pos = 129; pos> = 0; pos- = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}

// దాచడం తలుపు
for (pos = 155; pos> = 80; pos- = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}
}

// తరలించు 3: తెరిచి వేచి ఉండండి, ఆపై చేయి కదిలి వేచి ఉండండి, ఆపై మారండి మరియు దాచండి
void switchoffbitaraddod ()
{
// కదిలే తలుపు
(pos = 80; pos <155; pos = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}
ఆలస్యం (800);
// చేయి కదిలే
(pos = 0; pos <100; pos = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}
ఆలస్యం (1000);
(pos = 100; pos <129; pos = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}

// చేతిని దాచడం
for (pos = 129; pos> = 0; pos- = 5)
{
handServo.write (POS);
ఆలస్యం (15);
}

// దాచడం తలుపు
for (pos = 155; pos> = 80; pos- = 3)
{
doorServo.write (POS);
ఆలస్యం (15);


}

}

// కదలిక 4: తలుపు తెరిచి, దాన్ని చాలాసార్లు మూసివేయండి, వేచి ఉండండి, ఆపై త్వరగా ఒక ఎన్డి స్విచ్ ఆఫ్ చేసి దాచండి.

వెర్రి డోర్ ()
{

// కదిలే తలుపు
(pos = 80; pos <125; pos = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}

// దాచడం తలుపు
for (pos = 125; pos> = 80; pos- = 5)
{
doorServo.write (POS);
ఆలస్యం (15);
}
// కదిలే తలుపు
(pos = 80; pos <110; pos = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}

// దాచడం తలుపు
for (pos = 110; pos> = 80; pos- = 15)
{
doorServo.write (POS);
ఆలస్యం (15);
}
ఆలస్యం (700);
// కదిలే తలుపు
(pos = 80; pos <125; pos = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}
ఆలస్యం (700);
// దాచడం తలుపు
for (pos = 125; pos> = 80; pos- = 5)
{
doorServo.write (POS);
ఆలస్యం (15);
}

// ---- యొక్క స్విచ్ ---- //
// కదిలే తలుపు
(pos = 80; pos <155; pos = 8)
{
doorServo.write (POS);
ఆలస్యం (15);
}

// చేయి కదిలే
(pos = 0; pos <129; pos = 3)
{
handServo.write (POS);
ఆలస్యం (15);
}

// చేతిని దాచడం
for (pos = 129; pos> = 0; pos- = 3)
{
handServo.write (POS);
ఆలస్యం (15);
}

// దాచడం తలుపు
for (pos = 155; pos> = 80; pos- = 15)
{
doorServo.write (POS);
ఆలస్యం (15);
}

}

// కదలిక 5: తలుపు తెరిచి, ఆపై చేతిని చాలా నెమ్మదిగా ముందుకు మరియు వెనుకకు చాలా నెమ్మదిగా దాచడానికి, ఆపై త్వరగా తలుపు మూసివేయండి
శూన్యమైన క్రేజీస్లో ()
{
// కదిలే తలుపు
(pos = 80; pos <155; pos = 1)
{
doorServo.write (POS);
ఆలస్యం (30);
}

// చేయి కదిలే
(pos = 0; pos <129; pos = 1)
{
handServo.write (POS);
ఆలస్యం (30);
}

// చేతిని దాచడం
for (pos = 129; pos> = 0; pos- = 1)
{
handServo.write (POS);
ఆలస్యం (30);
}

// దాచడం తలుపు
for (pos = 155; pos> = 125; pos- = 1)
{
doorServo.write (POS);
ఆలస్యం (30);
}
ఆలస్యం (100);
for (pos = 125; pos> = 80; pos- = 4)
{
doorServo.write (POS);
ఆలస్యం (15);
}

}
// తరలింపు 6:
void m7anika7anika () {
// కదిలే తలుపు
(pos = 80; pos <155; pos = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}

// చేయి కదిలే
(pos = 0; pos <70; pos = 1)
{
handServo.write (POS);
ఆలస్యం (15);
}
ఆలస్యం (800);


// దాచడం తలుపు
for (pos = 155; pos> = 130; pos- = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}

// దాచడం తలుపు
(pos = 130; pos <155; pos = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}
// దాచడం తలుపు
for (pos = 155; pos> = 130; pos- = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}
// దాచడం తలుపు
(pos = 130; pos <155; pos = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}

handServo.write (40);
ఆలస్యం (1000);

// చేయి కదిలే
(pos = 40; pos <129; pos = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}

// చేతిని దాచడం
for (pos = 129; pos> = 0; pos- = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}


for (pos = 120; pos> = 80; pos - = 1)
{
doorServo.write (POS);
ఆలస్యం (15);
}



}
శూన్యమైన m3alla2 () {
// కదిలే తలుపు
(pos = 80; pos <155; pos = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}

// చేయి కదిలే
(pos = 0; pos <127; pos = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}
// దాచడం తలుపు
for (pos = 155; pos> = 130; pos- = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}
ఆలస్యం (2000);

(pos = 130; pos <155; pos = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}

for (pos = 155; pos> = 140; pos- = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}
(pos = 140; pos <155; pos = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}
ఆలస్యం (500);
// చేతిని దాచడం
for (pos = 127; pos> = 0; pos- = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}

// దాచడం తలుపు
for (pos = 155; pos> = 80; pos- = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}
}

శూన్య మాతృక ()
{
// కదిలే తలుపు
(pos = 80; pos <155; pos = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}

// చేయి కదిలే
(pos = 0; pos <80; pos = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}

(pos = 80; pos <129; pos = 1)
{
handServo.write (POS);
ఆలస్యం (30);
}
ఆలస్యం (300);

for (pos = 129; pos> = 0; pos- = 4)
{
handServo.write (POS);
ఆలస్యం (10);
}

// దాచడం తలుపు
for (pos = 155; pos> = 80; pos- = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}

}
శూన్య స్నీక్ ()
{
// కదిలే తలుపు
(pos = 80; pos <130; pos = 1)
{
doorServo.write (POS);
ఆలస్యం (30);
}
ఆలస్యం (2000);

// చేయి కదిలే
(pos = 0; pos <40; pos = 1)
{
handServo.write (POS);
ఆలస్యం (30);
}

ఆలస్యం (500);

(pos = 130; pos <155; pos = 4)
{
doorServo.write (POS);
ఆలస్యం (15);
}
ఆలస్యం (100);

(pos = 40; pos <90; pos = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}
ఆలస్యం (500);
// చేతిని దాచడం
for (pos = 90; pos> = 70; pos- = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}
ఆలస్యం (100);
(pos = 70; pos <90; pos = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}
ఆలస్యం (100);
for (pos = 90; pos> = 70; pos- = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}
ఆలస్యం (100);

(pos = 70; pos <129; pos = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}

for (pos = 129; pos> = 0; pos- = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}
// దాచడం తలుపు
for (pos = 155; pos> = 80; pos- = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}
}


శూన్యమైన జీ 7 ()
{
// కదిలే తలుపు
(pos = 80; pos <155; pos = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}
ఆలస్యం (2000);
// ముందుకు @ ఎడమ వైపు సగం వేగం
డిజిటల్ రైట్ (మోటారు దిశ, తక్కువ); // ఛానల్ B యొక్క సరైన దిశను ఏర్పాటు చేస్తుంది
డిజిటల్ రైట్ (మోటర్‌బ్రేక్, తక్కువ); // ఛానల్ B కోసం బ్రేక్‌ను విడదీయండి
అనలాగ్‌రైట్ (మోటారుథ్రాటిల్, 100); // ఛానెల్ B లో మోటారును పూర్తి వేగంతో తిరుగుతుంది
ఆలస్యం (300);
డిజిటల్ రైట్ (మోటర్‌బ్రేక్, హై); // ఛానల్ B కోసం బ్రేక్‌ను పెంచండి
ఆలస్యం (2000);

// వెనుకబడిన @ కుడి వేగం సగం వేగం
డిజిటల్ రైట్ (మోటారు దిశ, అధిక); // ఛానల్ B యొక్క ఎడమ దిశను ఏర్పాటు చేస్తుంది
డిజిటల్ రైట్ (మోటర్‌బ్రేక్, తక్కువ); // ఛానల్ B కోసం బ్రేక్‌ను విడదీయండి
అనలాగ్‌రైట్ (మోటారుథ్రాటిల్, 100); // ఛానల్ B లో మోటారును సగం వేగంతో తిరుగుతుంది
ఆలస్యం (300);
డిజిటల్ రైట్ (మోటర్‌బ్రేక్, హై); // ఛానల్ B కోసం బ్రేక్‌ను పెంచండి
ఆలస్యం (1000);

// చేయి కదిలే
(pos = 0; pos <129; pos = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}

// చేతిని దాచడం
for (pos = 129; pos> = 0; pos- = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}

// దాచడం తలుపు
for (pos = 155; pos> = 80; pos- = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}
}


దశ 9: ఐచ్ఛిక నవీకరణ: కదలిక గుర్తింపు

నేను ఈ రోజు (GP2Y0A21) సామీప్య సెన్సార్‌ను పొందాను, కాబట్టి ఇప్పుడు వినియోగదారు టోగుల్ స్విచ్‌ను సమీపిస్తే యంత్రాన్ని తరలించడానికి నేను దీన్ని ఉపయోగించగలను :)
ఈ అదనపు దశ కోసం, కదలికను అనుమతించడానికి మీరు ఇప్పటికే చక్రాలను నిర్మించారని నేను అనుకుంటున్నాను (ఐచ్ఛిక దశ 8 చూడండి). కదలికల గుర్తింపు కోసం సెన్సార్‌ను జోడించి, కోడ్‌లో కొన్ని మార్పులు చేయడమే ఇప్పుడు మిగిలి ఉంది.
సెన్సార్‌లో 3 వైర్లు, పసుపు సిగ్నల్ వైర్ కనెక్ట్ చేయబడింది పిన్ 3 ఆర్డునోలో, అయితే ఎరుపు మరియు బ్లాక్ కనెక్ట్ చేయబడ్డాయి v5 మరియు గ్రౌండ్ బోర్డులో వరుసగా.
చిత్రంలో చూపిన విధంగా నేను తలుపు కింద దాచిన సెన్సార్‌ను ఉంచాను, తద్వారా ఇది తలుపు తెరిచినప్పుడు మాత్రమే వినియోగదారు కదలికను 'చూడగలదు'. నాకు అవసరమైనది ఖచ్చితంగా!
కదలికను గుర్తించే దినచర్యను అమలు చేయడానికి నేను కోడ్‌ను కొంచెం (ఇక్కడ) మార్చాల్సి వచ్చింది (ఫంక్షన్‌లో కోడ్ చూడండి Zee7 () ), కదలికను గుర్తించినప్పుడు, పెట్టె మొదట కుడి వైపుకు, తరువాత ఎడమ వైపుకు కదులుతుంది, తరువాత చేతి స్విచ్‌ను ఎగరవేసి దాచండి. కోడ్ భారీగా వ్యాఖ్యానించబడింది, నేను దానిని అతిగా చేయలేదని ఆశిస్తున్నాను!
మీరు దిగువ నవీకరించబడిన కోడ్‌ను కనుగొనవచ్చు, యంత్రాన్ని యాదృచ్ఛికంగా ఎంచుకునేలా చేశానని కూడా గమనించండి, దీన్ని సెట్ చేయడం ద్వారా సీక్వెన్షియల్‌కు తిరిగి మార్చవచ్చు boolean randomize = తప్పుడు;
మీ గొప్ప సూచనలకు ధన్యవాదాలు!
కోడ్ (దిగువ నుండి కాపీ / పేస్ట్ చేయడానికి బదులుగా ఈ దశకు జోడించిన ఫైల్‌ను డౌన్‌లోడ్ చేయడం మంచిది):
# ఉన్నాయి
సర్వో డోర్సర్వో;
సర్వో హ్యాండ్‌సర్వో;
సంతకం చేయని పొడవైన టైమర్ఏ, టైమర్బి; కదలికను గుర్తించే దినచర్య కోసం // టైమర్
int స్విచ్_పిన్ = 2; పిన్ 2 పై // సెట్ స్విచ్
// మోటార్ వేరియబుల్స్
int motorThrottle = 11;
పూర్ణాంక మోటారు దిశ = 13;
int మోటర్‌బ్రేక్ = 8;
// దూర వేరియబుల్స్
int మోషన్ పిన్ = 3; అనలాగ్ 0 పై // మోషన్ సెన్సార్ పిన్
int lastDist = 0; // చివరి దూరాన్ని గుర్తుంచుకోవడానికి
int currentDist = 0;
int త్రెష్ = 200; // ఉద్యమం కోసం పరిమితి (మీరు మోషన్ డిటెక్షన్ యొక్క కావలసిన సున్నితత్వాన్ని పొందే విధంగా సెట్ చేయండి)

int pos = 0;
int selectMove = 0; // మూవ్ సెలెక్టర్
int టెస్ట్మోవ్ = 0; // పరీక్ష మోడ్: ఎంచుకున్న ఒక కదలికను మాత్రమే పరీక్షించడానికి సంఖ్యను తరలించడానికి సెట్ చేయండి
// (సాధారణంగా అమలు చేయడానికి జీరోకు సెట్ చేయండి అనగా: అన్ని కదలికలపై రౌండ్‌రోబిన్)
boolean randomize = నిజం; // నిజమైతే, పెట్టె యాదృచ్చికంగా మూవర్స్ చేస్తుంది, తప్పుడుగా సెట్ చేయబడితే 1 నుండి 10 వరకు కదలికలు వరుసగా జరుగుతాయి

శూన్య సెటప్ ()
{
Serial.begin (9600);
పిన్‌మోడ్ (స్విచ్_పిన్, INPUT);
doorServo.attach (9); పిన్ 9 pwm లో // సెట్ డోర్ సర్వో
handServo.attach (10); // పిన్ 10 pwm లో హ్యాండ్ సర్వో సెట్ చేయండి
doorServo.write (80); // దాచడానికి స్థానం సెట్
handServo.write (0); // దాచడానికి స్థానం చేయి
// ఛానెల్ B ను సెటప్ చేయండి, ఎందుకంటే ఛానల్ A తలుపు మరియు చేతి సర్వోస్ ద్వారా రిజర్వు చేయబడింది మరియు అదే సమయంలో ఉపయోగించబడదు
పిన్ మోడ్ (మోటారు దిశ, U ట్పుట్); // మోటార్ ఛానల్ బి పిన్ను ప్రారంభిస్తుంది
పిన్‌మోడ్ (మోటర్‌బ్రేక్, అవుట్‌పుట్); // బ్రేక్ ఛానల్ బి పిన్‌ను ప్రారంభిస్తుంది

}

శూన్య లూప్ ()
{
// స్విచ్ ఆన్‌లో ఉంటే, దాన్ని స్విచ్ ఆఫ్ చేయడానికి తలుపు మరియు చేయిని తరలించండి …
if (DigitalRead (switch_pin) == HIGH)
{

if (Testmove == 0)
{

if (రాండమైజ్ == తప్పుడు)
{
if (ఎంచుకోండి తరలించు> 10)
{
selectMove = 0; // అన్ని కదలికలు ఆడినప్పుడు, కదలికలను మొదటి నుండి పునరావృతం చేయండి
}
}
వేరే
{
selectMove = యాదృచ్ఛిక (11);
}
}
వేరే
{
selectMove = Testmove;
}
Serial.println (selectedMove);
if (selectMove == 0) {స్విచ్చాఫ్ (); }
else if (selectMove == 1) {స్విచ్చాఫ్ (); }
else if (selectMove == 2) {switchoffbitaraddod (); }
else if (selectMove == 3) {క్రేజీడోర్ (); }
else if (selectMove == 4) {crazyslow (); }
else if (selectMove == 5) {m7anika7anika (); }
else if (selectMove == 6) {m3alla2 (); }
else if (selectMove == 7) {స్విచ్చాఫ్ (); }
else if (selectMove == 8) {matrix (); }
else if (selectMove == 9) {స్నీక్ (); }
else if (selectMove == 10) {zee7 (); }

if (Testmove == 0 && randomize == false) {
selectedMove ++; // పరీక్ష మోడ్‌లో లేకపోతే తదుపరి కదలికకు మారండి
}
}
}
// కదలికల లైబ్రరీ
// ప్రాథమిక కదలిక
శూన్య స్విచ్ఆఫ్ ()
{
// కదిలే తలుపు
(pos = 80; pos <155; pos = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}

// చేయి కదిలే
(pos = 0; pos <129; pos = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}

// చేతిని దాచడం
for (pos = 129; pos> = 0; pos- = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}

// దాచడం తలుపు
for (pos = 155; pos> = 80; pos- = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}
}

// తరలించు 3: తెరిచి వేచి ఉండండి, ఆపై చేయి కదిలి వేచి ఉండండి, ఆపై మారండి మరియు దాచండి
void switchoffbitaraddod ()
{
// కదిలే తలుపు
(pos = 80; pos <155; pos = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}
ఆలస్యం (800);
// చేయి కదిలే
(pos = 0; pos <100; pos = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}
ఆలస్యం (1000);
(pos = 100; pos <129; pos = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}

// చేతిని దాచడం
for (pos = 129; pos> = 0; pos- = 5)
{
handServo.write (POS);
ఆలస్యం (15);
}

// దాచడం తలుపు
for (pos = 155; pos> = 80; pos- = 3)
{
doorServo.write (POS);
ఆలస్యం (15);


}

}

// కదలిక 4: తలుపు తెరిచి, దాన్ని చాలాసార్లు మూసివేయండి, వేచి ఉండండి, ఆపై త్వరగా ఒక ఎన్డి స్విచ్ ఆఫ్ చేసి దాచండి.

వెర్రి డోర్ ()
{

// కదిలే తలుపు
(pos = 80; pos <125; pos = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}

// దాచడం తలుపు
for (pos = 125; pos> = 80; pos- = 5)
{
doorServo.write (POS);
ఆలస్యం (15);
}
// కదిలే తలుపు
(pos = 80; pos <110; pos = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}

// దాచడం తలుపు
for (pos = 110; pos> = 80; pos- = 15)
{
doorServo.write (POS);
ఆలస్యం (15);
}
ఆలస్యం (700);
// కదిలే తలుపు
(pos = 80; pos <125; pos = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}
ఆలస్యం (700);
// దాచడం తలుపు
for (pos = 125; pos> = 80; pos- = 5)
{
doorServo.write (POS);
ఆలస్యం (15);
}

// ---- యొక్క స్విచ్ ---- //
// కదిలే తలుపు
(pos = 80; pos <155; pos = 8)
{
doorServo.write (POS);
ఆలస్యం (15);
}

// చేయి కదిలే
(pos = 0; pos <129; pos = 3)
{
handServo.write (POS);
ఆలస్యం (15);
}

// చేతిని దాచడం
for (pos = 129; pos> = 0; pos- = 3)
{
handServo.write (POS);
ఆలస్యం (15);
}

// దాచడం తలుపు
for (pos = 155; pos> = 80; pos- = 15)
{
doorServo.write (POS);
ఆలస్యం (15);
}

}

// కదలిక 5: తలుపు తెరిచి, ఆపై చేతిని చాలా నెమ్మదిగా ముందుకు మరియు వెనుకకు చాలా నెమ్మదిగా దాచడానికి, ఆపై త్వరగా తలుపు మూసివేయండి
శూన్యమైన క్రేజీస్లో ()
{
// కదిలే తలుపు
(pos = 80; pos <155; pos = 1)
{
doorServo.write (POS);
ఆలస్యం (30);
}

// చేయి కదిలే
(pos = 0; pos <129; pos = 1)
{
handServo.write (POS);
ఆలస్యం (30);
}

// చేతిని దాచడం
for (pos = 129; pos> = 0; pos- = 1)
{
handServo.write (POS);
ఆలస్యం (30);
}

// దాచడం తలుపు
for (pos = 155; pos> = 125; pos- = 1)
{
doorServo.write (POS);
ఆలస్యం (30);
}
ఆలస్యం (100);
for (pos = 125; pos> = 80; pos- = 4)
{
doorServo.write (POS);
ఆలస్యం (15);
}

}
// తరలింపు 6:
void m7anika7anika () {
// కదిలే తలుపు
(pos = 80; pos <155; pos = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}

// చేయి కదిలే
(pos = 0; pos <70; pos = 1)
{
handServo.write (POS);
ఆలస్యం (15);
}
ఆలస్యం (800);


// దాచడం తలుపు
for (pos = 155; pos> = 130; pos- = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}

// దాచడం తలుపు
(pos = 130; pos <155; pos = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}
// దాచడం తలుపు
for (pos = 155; pos> = 130; pos- = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}
// దాచడం తలుపు
(pos = 130; pos <155; pos = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}

handServo.write (40);
ఆలస్యం (1000);

// చేయి కదిలే
(pos = 40; pos <129; pos = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}

// చేతిని దాచడం
for (pos = 129; pos> = 0; pos- = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}


for (pos = 120; pos> = 80; pos - = 1)
{
doorServo.write (POS);
ఆలస్యం (15);
}



}
శూన్యమైన m3alla2 () {
// కదిలే తలుపు
(pos = 80; pos <155; pos = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}

// చేయి కదిలే
(pos = 0; pos <127; pos = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}
// దాచడం తలుపు
for (pos = 155; pos> = 130; pos- = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}
ఆలస్యం (2000);

(pos = 130; pos <155; pos = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}

for (pos = 155; pos> = 140; pos- = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}
(pos = 140; pos <155; pos = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}
ఆలస్యం (500);
// చేతిని దాచడం
for (pos = 127; pos> = 0; pos- = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}

// దాచడం తలుపు
for (pos = 155; pos> = 80; pos- = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}
}

శూన్య మాతృక ()
{
// కదిలే తలుపు
(pos = 80; pos <155; pos = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}

// చేయి కదిలే
(pos = 0; pos <80; pos = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}

(pos = 80; pos <129; pos = 1)
{
handServo.write (POS);
ఆలస్యం (30);
}
ఆలస్యం (300);

for (pos = 129; pos> = 0; pos- = 4)
{
handServo.write (POS);
ఆలస్యం (10);
}

// దాచడం తలుపు
for (pos = 155; pos> = 80; pos- = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}

}
శూన్య స్నీక్ ()
{
// కదిలే తలుపు
(pos = 80; pos <130; pos = 1)
{
doorServo.write (POS);
ఆలస్యం (30);
}
ఆలస్యం (2000);

// చేయి కదిలే
(pos = 0; pos <40; pos = 1)
{
handServo.write (POS);
ఆలస్యం (30);
}

ఆలస్యం (500);

(pos = 130; pos <155; pos = 4)
{
doorServo.write (POS);
ఆలస్యం (15);
}
ఆలస్యం (100);

(pos = 40; pos <90; pos = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}
ఆలస్యం (500);
// చేతిని దాచడం
for (pos = 90; pos> = 70; pos- = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}
ఆలస్యం (100);
(pos = 70; pos <90; pos = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}
ఆలస్యం (100);
for (pos = 90; pos> = 70; pos- = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}
ఆలస్యం (100);

(pos = 70; pos <129; pos = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}

for (pos = 129; pos> = 0; pos- = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}
// దాచడం తలుపు
for (pos = 155; pos> = 80; pos- = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}
}

// ఈ చర్య తలుపులు తెరిచి, కదలిక కోసం వేచి ఉంటుంది, స్విచ్ దగ్గర కనుగొనబడితే,
// బాక్స్ మొదట కుడి వైపుకు, తరువాత ఎడమ వైపుకు కదులుతుంది, చివరకు చేతి కదులుతుంది మరియు స్విచ్ ఆఫ్ చేస్తుంది
శూన్యమైన జీ 7 ()
{

// ఓపెన్ డోర్
(pos = 80; pos <155; pos = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}
ఆలస్యం (1200); // తలుపు తెరిచిన తర్వాత సెన్సార్ రీడింగులను స్థిరీకరించడానికి వేచి ఉండండి

// టైమర్ సెట్ చేసి సెన్సార్ చదవండి
// పరిమితిని మించిన కదలిక కోసం వేచి ఉండండి లేదా టైమర్ గడువు ముగిస్తే (5 సెకన్లు),
lastDist = అనలాగ్ రీడ్ (మోషన్ పిన్);
టైమర్ఏ = మిల్లిస్ ();

అయితే (మిల్లీస్ () - టైమర్ఏ <= 5000)
{
currentDist = అనలాగ్ రీడ్ (మోషన్ పిన్);

// ప్రస్తుత దూరం చివరి దూరం నుండి ప్రవేశ స్థాయి కంటే ఎక్కువగా మారుతుందా?
// అవును అయితే, బాక్స్‌ను కుడి వైపుకు తరలించండి
if ((currentDist> lastDist thresh || currentDist <lastDist - thresh) || currentDist> 300)
{
// ఫార్వర్డ్ @ సగం వేగం ఎడమ వైపు (వేగం మరియు ఆలస్యాన్ని ఎంచుకోండి
//(i.e ఆలస్యం (300) మీ బాక్స్ మరియు బ్యాటరీ వోల్టేజ్ ప్రకారం కదలిక త్రో కావాల్సినది)
డిజిటల్ రైట్ (మోటారు దిశ, తక్కువ); // ఛానల్ A యొక్క సరైన దిశను ఏర్పాటు చేస్తుంది
డిజిటల్ రైట్ (మోటర్‌బ్రేక్, తక్కువ); // ఛానల్ B కోసం బ్రేక్‌ను విడదీయండి
అనలాగ్‌రైట్ (మోటారుథ్రాటిల్, 100); // ఛానెల్ B లో మోటారును పూర్తి వేగంతో తిరుగుతుంది
ఆలస్యం (300);
డిజిటల్ రైట్ (మోటర్‌బ్రేక్, హై); // ఛానల్ B కోసం బ్రేక్‌ను పెంచండి
బ్రేక్;
}
lastDist = currentDist;
}

// టైమర్ సెట్ చేసి సెన్సార్ చదవండి
// పరిమితిని మించిన కదలిక కోసం వేచి ఉండండి లేదా టైమర్ గడువు ముగిస్తే (5 సెకన్లు),
ఆలస్యం (1200); // తలుపు తెరిచిన తర్వాత సెన్సార్ రీడింగులను స్థిరీకరించడానికి వేచి ఉండండి
lastDist = అనలాగ్ రీడ్ (మోషన్ పిన్);
టైమర్ బి = మిల్లిస్ ();
అయితే (మిల్లీస్ () - టైమర్ బి <= 5000)
{
currentDist = అనలాగ్ రీడ్ (మోషన్ పిన్);
// పెట్టె ఇప్పటికే కుడి వైపుకు కదిలింది మరియు ప్రస్తుత దూరం చివరి దూరం నుండి ప్రవేశ స్థాయి కంటే ఎక్కువగా మారిందా?
// అవును అయితే, ఎడమ వైపుకు వెళ్లండి
if ((currentDist> lastDist thresh || currentDist <lastDist - thresh) || currentDist> 300)
{
// వెనుకబడిన @ కుడి వేగం సగం వేగం (వేగం మరియు ఆలస్యాన్ని ఎంచుకోండి
//(i.e ఆలస్యం (300) మీ బాక్స్ మరియు బ్యాటరీ వోల్టేజ్ ప్రకారం కదలిక త్రో కావాల్సినది)
డిజిటల్ రైట్ (మోటారు దిశ, అధిక); // ఛానల్ B యొక్క ఎడమ దిశను ఏర్పాటు చేస్తుంది
డిజిటల్ రైట్ (మోటర్‌బ్రేక్, తక్కువ); // ఛానల్ B కోసం బ్రేక్‌ను విడదీయండి
అనలాగ్‌రైట్ (మోటారుథ్రాటిల్, 100); // ఛానల్ B లో మోటారును సగం వేగంతో తిరుగుతుంది
ఆలస్యం (300);
డిజిటల్ రైట్ (మోటర్‌బ్రేక్, హై); // ఛానల్ B కోసం బ్రేక్‌ను పెంచండి
బ్రేక్;
}

lastDist = currentDist;

}
ఆలస్యం (100);
// చేయి కదిలే
(pos = 0; pos <130; pos = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}

// చేతిని దాచడం
for (pos = 130; pos> = 0; pos- = 4)
{
handServo.write (POS);
ఆలస్యం (15);
}

// దాచడం తలుపు
for (pos = 155; pos> = 80; pos- = 3)
{
doorServo.write (POS);
ఆలస్యం (15);
}
}

3 వ్యక్తులు ఈ ప్రాజెక్ట్ చేశారు!

  • AndyC159 దీన్ని చేసింది!

  • SamL84 దీన్ని చేసింది!

  • melton1313 దీన్ని చేసింది!

మీరు ఈ ప్రాజెక్ట్ చేసారా? దీన్ని మాతో పంచుకోండి!

సిఫార్సులు

  • స్క్రూ సార్టింగ్ మెషిన్

  • పిసిబి బోట్ (సింగిల్ పిసిబిలో లైన్ ఫాలోయింగ్, అడ్డంకి ఎగవేత & బ్లూటూత్ కంట్రోల్డ్ రోబోట్)

  • ఇంటర్నెట్ ఆఫ్ థింగ్స్ క్లాస్

  • రెయిన్బో పోటీ యొక్క రంగులు

  • అభిమాన పోటీ

  • పార్టీ ఛాలెంజ్

194 చర్చలు

0

areyoutrying

4 సంవత్సరాల క్రితం పరిచయంపై

దీనికి ధన్యవాదాలు! ఈ బోధన ఆధారంగా నేను నా మొదటి ఆర్డునో ప్రాజెక్ట్ చేసాను: పనికిరాని డ్రాగన్!

4 ప్రత్యుత్తరాలు 0

Ajannareyoutrying

3 సంవత్సరాల క్రితం ప్రత్యుత్తరం ఇవ్వండి

మీ డ్రాగన్ యంత్రం అద్భుతంగా ఉంది. !!! కళాత్మక

0

TJAOkevinareyoutrying

3 సంవత్సరాల క్రితం ప్రత్యుత్తరం ఇవ్వండి

బ్రహ్మాండం !!!!!

0

riachiareyoutrying

పరిచయంపై 4 సంవత్సరాల క్రితం ప్రత్యుత్తరం ఇవ్వండి

మీరు అద్భుతంగా ఉన్నారు :) !!!

డ్రాగన్ కోసం గొప్ప వ్యక్తిత్వం! డ్రాగన్ నేరుగా కెమెరాకు ఎదురుగా ఉన్నప్పుడు (టాప్-వ్యూ) మీరు వీడియోను పునరావృతం చేయగలరని నేను కోరుకుంటున్నాను, ఇది ఉల్లాసంగా ఉంటుందని నేను భావిస్తున్నాను, కాబట్టి నాలుక దొంగతనంగా చూడండి!

మీ వీడియోను భాగస్వామ్యం చేసినందుకు ధన్యవాదాలు మరియు నా సహాయం చేయగలిగినందుకు ఆనందంగా ఉంది

0

areyoutryingriachi

పరిచయంపై 4 సంవత్సరాల క్రితం ప్రత్యుత్తరం ఇవ్వండి

నేను మునుపటి దశలో అగ్ర వీక్షణను ప్రయత్నించాను కాని అది పని చేయలేదు (చాలా గజిబిజిగా కనిపించింది) కాబట్టి నేను ఈ వీడియో తీసినప్పుడు దాన్ని తీసివేసాను. మీరు సరైనవారని నేను భావిస్తున్నాను: చివరి దశలో ఇది చాలా బాగుంది! దురదృష్టవశాత్తు నేను ఇప్పటికే డ్రాగన్‌ను దూరంగా ఇచ్చాను … కాబట్టి తదుపరి ప్రాజెక్ట్‌కు!

0

br1pro

4 సంవత్సరాల క్రితం

చాల ఆనందం! హార్డ్ ఉద్యోగం సర్వోస్ ఫిక్సింగ్ మరియు చేతి రూపకల్పన. ఈ బోధనకు ధన్యవాదాలు!

1 ప్రత్యుత్తరం 0

riachibr1pro

పరిచయంపై 4 సంవత్సరాల క్రితం ప్రత్యుత్తరం ఇవ్వండి

గొప్ప పని మనిషి! నిజంగా బాగుంది :) ఏదైనా వీడియో?

0

clincoln

5 సంవత్సరల క్రితం

మొదట దానిపై వీడియో చూడండి, ఆపై మీరు నవ్వుతారు

1 ప్రత్యుత్తరం 0

TobiasVclincoln

పరిచయంపై 4 సంవత్సరాల క్రితం ప్రత్యుత్తరం ఇవ్వండి

నేను చేశానని నాకు తెలుసు! : D

0

rileyw

5 సంవత్సరల క్రితం

సూపర్ కూల్ వీడియో దాని స్వంత మనస్సు కలిగి ఉన్నట్లు అనిపించింది

0

Elitekilla117

5 సంవత్సరాల క్రితం పరిచయంపై

Arduino మరియు riachis కోడ్‌తో నా పనికిరాని యంత్రం! Dr.who నుండి టార్డిస్‌లో తయారు చేయబడింది. :)
http://www.youtube.com/watch?v=aDs0T52o6-M

2 ప్రత్యుత్తరాలు 0

riachiElitekilla117

పరిచయంపై 5 సంవత్సరాల క్రితం ప్రత్యుత్తరం ఇవ్వండి

దీన్ని ప్రేమించండి !!!! :)) నిజంగా బాగా చేసిన మనిషి, మీ బాంబు పెట్టె సజీవంగా ఉన్నందుకు చాలా సంతోషంగా ఉంది! నేను కూడా నాటకీకరణ మరియు సంగీతం: p నేను చేయగలిగితే 3 చిన్న మార్పులను సూచించటానికి నన్ను ఆపలేను :)?
- యంత్రాన్ని నిలబడి ఉంచడం చాలా బాగుంటుంది, ఇది తలుపును మూసివేయడానికి గురుత్వాకర్షణ సహాయాన్ని కోల్పోతుందని నాకు తెలుసు, కాని ఒక సాధారణ పరిష్కారం తలుపు లోపలికి జతచేయబడిన 2 రబ్బరు బ్యాండ్లను ఒక వైపు ఉంచడం మరియు మరొక చివర పెట్టె లోపలి వైపు, ఇది తలుపు సర్వో మూసివేస్తున్నప్పుడు తలుపును మూసివేస్తుంది … నా నిర్మాణ దశలను తనిఖీ చేయండి, మీరు దశ 6 లో రబ్బరు బ్యాండ్‌ను చూస్తారు …
- చేతులను నలుపు రంగులో చిత్రించడం గురించి, ఇది మరింత తప్పుడు మరియు మృదువుగా ఉంటుంది
! అలాగే చేతి చిట్కాను నెత్తుటి ఎరుపు రంగులో పెయింట్ చేయవచ్చు లేదా వెర్రి ముఖంతో అలంకరించవచ్చు లేదా అలాంటిదే ..
- చివరి కదలికను దానిలో ఏమీ జరగనందున తీసివేయండి (పెట్టెను కదిలించేదిగా భావించాలి) మరియు మీ స్వంత కదలికను రాయండి …
అయినప్పటికీ, సూచనలను మరచిపోండి, నేను మీ మెషీనీని ఇష్టపడ్డాను! మరియు చాలా ధన్యవాదాలు మనిషికి ధన్యవాదాలు, దయచేసి మీరు వాటిని తగ్గించి, వీడియోను మెషీన్‌పై కేంద్రీకరించవచ్చు :)
మీ gf దీన్ని ఇష్టపడిందని ఆశిస్తున్నాము!

0

Elitekilla117riachi

పరిచయంపై 5 సంవత్సరాల క్రితం ప్రత్యుత్తరం ఇవ్వండి

హహ్హ్ పొగడ్తలకు ధన్యవాదాలు :) నేను నిజంగా దీనికి చాలా ఎక్కువ చేయాలనుకున్నాను, కానీ సమయం క్రంచ్ కారణంగా నేను కోరుకున్న చాలా వివరాలతో నేను సరిపోలేదు. నేను చేతులకు కొంత రంగును జోడించాలనుకుంటున్నాను, కాని వాటికి సమయం లేదు. మరియు నేను ఒక షార్పీతో చేయిపై ఒక ముఖాన్ని గీయాలని అనుకున్నాను, కానీ అది ఇప్పటికే చుట్టి మరియు క్రిస్మస్ కోసం ఆమెకు ఇవ్వడానికి సిద్ధంగా ఉంది. మాటరాలేదు. ఆమె దానిని ప్రేమిస్తుందని నేను అనుకుంటున్నాను. నేను కూడా నిలబడాలని అనుకున్నాను కాని రబ్బరు బ్యాండ్లు సర్వోస్‌పై ఎక్కువ బరువు పెడతాయని భయపడ్డాను. తలుపు ఇప్పటికే చాలా బరువైనది. నేను ఉంచిన చివరి కదలిక అది పాపౌట్ అయ్యే వరకు మిమ్మల్ని సస్పెన్స్‌లో ఉంచుతుంది. హహాహా కానీ నా స్నేహితుడి అన్ని సహాయాన్ని నేను అభినందిస్తున్నాను! ఖచ్చితంగా విలువైనది!

0

chuckletushy

5 సంవత్సరల క్రితం

ఇది నేను చేయవలసి ఉంది … ఇది అద్భుతం

0

wrs715

5 సంవత్సరాల క్రితం పరిచయంపై

"అవును, అది విలువైనది, ఇప్పుడు నేను ఒకదాన్ని పొందాలి" అని నేను అనుకున్న ఆర్డునోను ఉపయోగించడం నేను చూసిన మొదటి ప్రాజెక్ట్ ఇది. అద్భుతమైన ఉద్యోగం!

0

siliconghost

5 సంవత్సరాల క్రితం పరిచయంపై

వావ్, ఒక సాధారణ ప్రాజెక్ట్ను అద్భుతంగా తీసుకోండి! మీ స్పిన్‌ను మరింత ఆసక్తికరంగా మార్చడంలో ఇష్టపడండి!

0

bob3030

5 సంవత్సరల క్రితం

ఒక మనిషి యొక్క పనికిరాని పరికరం మరొకటి పూర్తిగా అద్భుతంగా ఉంది, ఈ ప్రపంచం నుండి, మనం ఆలోచిస్తాము, ఆనందించండి, చాలా మంది ఇష్టపడతారు, పనికిరాని పరికరం. ప్రాజెక్ట్కు మీ నవీకరణలకు ధన్యవాదాలు. పోస్ట్ చేసినందుకు ధన్యవాదాలు.

0

Wobbler

5 సంవత్సరాల క్రితం పరిచయంపై

ఆలోచన 1: దీని కోసం ఆర్డునోను ఉపయోగించడం హాస్యాస్పదమైన ఓవర్ కిల్
ఆలోచన 2: వీడియో చూసిన తరువాత ఆర్డునోను ఉపయోగించడం కేవలం స్వచ్ఛమైన మేధావి!
నేను మీ సృజనాత్మకతకు నమస్కరిస్తున్నాను!

0

stumitch

5 సంవత్సరాల క్రితం పరిచయంపై

తీవ్రంగా గొప్పది! ఒక రకమైన వాల్-ఇ వ్యక్తిత్వాన్ని నాకు గుర్తు చేస్తుంది. ఇంత గొప్ప ప్రాజెక్టుకు ధన్యవాదాలు!

0

gazillabytes

5 సంవత్సరాల క్రితం పరిచయంపై

నిజంగా పనికిరానిది! బాగుంది. నేను ప్రేరణ పొందాను మరియు నా డెస్క్ కోసం ఒకదాన్ని నిర్మించాల్సిన అవసరం ఉంది. ధన్యవాదాలు.