DIY ఆర్డునో మరియు బ్లూటూత్ కంట్రోల్డ్ రోబోటిక్ ఆర్మ్ ఎలా తయారు చేయాలి?

ఇటీవలి శతాబ్దంలో, రోబోటిక్స్ పరిశోధన యొక్క అత్యంత అభివృద్ధి చెందుతున్న రంగం. రోబోట్లు మానవులు చేసే దాదాపు ప్రతిదానిని నియంత్రించాయి. మన సమాజంలో స్వయంప్రతిపత్త రోబోలు వివిధ పనులు చేయడం మనం చూడవచ్చు. వివిధ కార్యకలాపాలను నిర్వహించడానికి మాకు సహాయపడే కొన్ని రిమోట్ కంట్రోల్డ్ రోబోట్లు కూడా ఉన్నాయి. ఇంజనీరింగ్ రంగంలో నానో సర్క్యూట్లను తయారు చేయడం నుండి వైద్య రంగంలో సంక్లిష్ట శస్త్రచికిత్సలు చేయడం వరకు రోబోలు మానవులకన్నా నమ్మదగినవి.



రోబోటిక్ ఆర్మ్

ఈ ప్రాజెక్ట్‌లో, మేము ఆర్డునో మైక్రోకంట్రోలర్ చేత నియంత్రించబడే రోబోటిక్ ఆర్మ్‌ను తయారు చేయబోతున్నాము. ఇది ఆండ్రాయిడ్ రిమోట్ కంట్రోల్ అనువర్తనం సహాయంతో బ్లూటూత్ ద్వారా నియంత్రించబడుతుంది.



Arduino ఉపయోగించి రోబోటిక్ చేయిని ఎలా నియంత్రించాలి?

ఇప్పుడు మన ప్రాజెక్ట్ యొక్క వియుక్త తెలుసు. సర్క్యూట్ గురించి మరికొన్ని సమాచారాన్ని సేకరించి బ్లూటూత్ నియంత్రిత రోబోటిక్ చేయిని నిర్మించి బ్లూటూత్ ద్వారా నియంత్రించండి.



దశ 1: భాగాలు సేకరించడం

ఏదైనా ప్రాజెక్ట్ను ప్రారంభించడానికి ఉత్తమమైన విధానం ఏమిటంటే, భాగాల పూర్తి జాబితాను రూపొందించడం. ఇది ఒక ప్రాజెక్ట్ను ప్రారంభించడానికి ఒక తెలివైన మార్గం మాత్రమే కాదు, ఇది ప్రాజెక్ట్ మధ్యలో ఉన్న అనేక అసౌకర్యాల నుండి కూడా మనలను కాపాడుతుంది. ఈ ప్రాజెక్ట్ యొక్క భాగాల జాబితా క్రింద ఇవ్వబడింది:



  • HC-05 వైర్‌లెస్ బ్లూటూత్ సీరియల్ ట్రాన్స్‌సీవర్
  • 6 వి అడాప్టర్
  • జంపర్ వైర్లు
  • బ్రెడ్‌బోర్డ్

దశ 2: భాగాలు అధ్యయనం

మేము ఉపయోగించబోయే అన్ని భాగాల పూర్తి జాబితా ఉన్నందున, ఒక అడుగు ముందుకు వేసి, అన్ని భాగాల గురించి క్లుప్త అధ్యయనం చేద్దాం.

ఆర్డునో నానో మైక్రోకంట్రోలర్ బోర్డు, ఇది వివిధ సర్క్యూట్లలో వివిధ కార్యకలాపాలను నిర్వహిస్తుంది. దీనికి ఒక అవసరం సి కోడ్ ఇది ఏ పనులు చేయాలో మరియు ఎలా చేయాలో బోర్డుకి చెబుతుంది. ఇది 13 డిజిటల్ I / O పిన్‌లను కలిగి ఉంది, అంటే మనం 13 వేర్వేరు పరికరాలను ఆపరేట్ చేయగలము. ఆర్డునో నానోకు ఆర్డునో యునో వలె అదే కార్యాచరణ ఉంది, కానీ చాలా తక్కువ పరిమాణంలో ఉంది. ఆర్డునో నానో బోర్డులోని మైక్రోకంట్రోలర్ ATmega328p. మీరు 13 కంటే ఎక్కువ పరికరాలను నియంత్రించాలనుకుంటే, ఆర్డునో మెగాను ఉపయోగించండి.

ఆర్డునో నానో



HC-05 వైర్‌లెస్ బ్లూటూత్ సీరియల్ ట్రాన్స్‌సీవర్ : ఈ ప్రాజెక్ట్‌లో మాకు వైర్‌లెస్ కమ్యూనికేషన్ అవసరం, కాబట్టి మేము బ్లూటూత్ టెక్నాలజీని ఉపయోగిస్తాము మరియు ఆ మాడ్యూల్ కోసం HC-05 ఉపయోగించబడుతుంది. ఈ మాడ్యూల్ అనేక ప్రోగ్రామబుల్ బాడ్ రేట్లను కలిగి ఉంది కాని డిఫాల్ట్ బాడ్ రేటు 9600 బిపిఎస్. దీనిని మాస్టర్ లేదా బానిసగా కాన్ఫిగర్ చేయవచ్చు, అయితే మరొక మాడ్యూల్ HC-06 స్లేవ్ మోడ్‌లో మాత్రమే పనిచేయగలదు. ఈ మాడ్యూల్ నాలుగు పిన్స్ కలిగి ఉంది. ఒకటి VCC (5V) మరియు మిగిలిన మూడు GND, TX మరియు RX లకు. ఈ మాడ్యూల్ యొక్క డిఫాల్ట్ పాస్వర్డ్ 1234 లేదా 0000 . మేము రెండు మైక్రోకంట్రోలర్‌ల మధ్య కమ్యూనికేట్ చేయాలనుకుంటే లేదా ఫోన్ లేదా ల్యాప్‌టాప్ హెచ్‌సి -05 వంటి బ్లూటూత్ కార్యాచరణతో ఏదైనా పరికరంతో కమ్యూనికేట్ చేయాలనుకుంటే అది చేయడానికి మాకు సహాయపడుతుంది. అనేక Android అనువర్తనాలు ఇప్పటికే అందుబాటులో ఉన్నాయి, ఇది ఈ ప్రక్రియను చాలా సులభం చేస్తుంది.

HC-05 బ్లూటూత్ మాడ్యూల్

ఒక విలక్షణమైనది రోబోటిక్ ఆర్మ్ అనేక విభాగాలతో రూపొందించబడింది మరియు సాధారణంగా దీనిలో 6 కీళ్ళు ఉంటాయి. ఇది కంప్యూటర్ ద్వారా నియంత్రించబడే కనీసం 4 స్టెప్పర్ మోటార్లు కలిగి ఉంటుంది. స్టెప్పర్ మోటార్లు ఇతర DC మోటారుల నుండి భిన్నంగా ఉంటాయి. వారు ఖచ్చితమైన ఇంక్రిమెంట్లలో ఖచ్చితంగా కదులుతారు. ఈ రోబోటిక్ చేతులు వివిధ ఆపరేషన్లు చేయడానికి ఉపయోగిస్తారు. రిమోట్ కంట్రోల్ ద్వారా మేము వాటిని మాన్యువల్‌గా ఆపరేట్ చేయవచ్చు లేదా స్వయంప్రతిపత్తితో పనిచేయడానికి వాటిని ప్రోగ్రామ్ చేయవచ్చు.

రోబోటిక్ ఆర్మ్.

దశ 3: భాగాలను సమీకరించడం

ఇప్పుడు ఉపయోగించిన అన్ని ప్రధాన భాగాల పని గురించి మనకు తెలుసు. వాటిని సమీకరించడం ప్రారంభిద్దాం మరియు రిమోట్-కంట్రోల్డ్ రోబోటిక్ చేయిని నిర్మించడానికి సర్క్యూట్ చేద్దాం.

  1. బ్రెడ్‌బోర్డుపై ఆర్డునో నానో బోర్డును అటాచ్ చేయండి. అడాప్టర్ యొక్క పాజిటివ్ మరియు నెగటివ్ వైర్ ద్వారా ఆర్డునో శక్తితో ఉంటుంది.
  2. బ్లూటూత్ మాడ్యూల్‌ను బ్రెడ్‌బోర్డ్‌లో కూడా ఉంచండి. Arduino ద్వారా బ్లూటూత్ మాడ్యూల్‌ను శక్తివంతం చేయండి. బ్లూటూత్ మాడ్యూల్ యొక్క Tx పిన్ను Arduino నాన్ బోర్డు యొక్క Rx పిన్‌తో కనెక్ట్ చేయండి మరియు బ్లూటూత్ మాడ్యూల్ యొక్క Rx పిన్‌ను Arduino నానో బోర్డు యొక్క Tx పిన్‌తో కనెక్ట్ చేయండి.
  3. 4 స్టెప్పర్ మోటార్లు ఉన్నాయని మనకు తెలుసు. ప్రతి ఒక్కరికి సాంకేతిక పేరు ఉంటుంది. వాళ్ళు పిలువబడ్డారు మోచేయి , భుజం , బేస్, మరియు గ్రిప్పర్ . అన్ని మోటార్లు యొక్క Vcc మరియు గ్రౌండ్ సాధారణం మరియు 6V అడాప్టర్ యొక్క సానుకూల మరియు ప్రతికూలతతో అనుసంధానించబడతాయి. నాలుగు మోటారుల సిగ్నల్ పిన్ ఆర్డునో నానో యొక్క పిన్ 5, పిన్ 6, పిన్ 9 మరియు పిన్ 11 లకు అనుసంధానించబడుతుంది.
  4. మీరు చేసిన కనెక్షన్లు క్రింది సర్క్యూట్ రేఖాచిత్రం ప్రకారం ఉన్నాయని నిర్ధారించుకోండి.

    సర్క్యూట్ రేఖాచిత్రం

దశ 4: ఆర్డునోతో ప్రారంభించడం

మీకు ఇప్పటికే ఆర్డునో ఐడిఇ గురించి తెలియకపోతే, చింతించకండి ఎందుకంటే మైక్రోకంట్రోలర్ బోర్డ్‌తో ఆర్డునో ఐడిఇని సెటప్ చేయడానికి మరియు ఉపయోగించటానికి దశల వారీ విధానం క్రింద వివరించబడింది.

  1. Arduino IDE యొక్క తాజా సంస్కరణను డౌన్‌లోడ్ చేయండి ఆర్డునో.
  2. మీ ల్యాప్‌టాప్‌కు మీ ఆర్డునో నానో బోర్డ్‌ను కనెక్ట్ చేయండి మరియు నియంత్రణ ప్యానల్‌ను తెరవండి. అప్పుడు, క్లిక్ చేయండి హార్డ్వేర్ మరియు సౌండ్ . ఇప్పుడు, క్లిక్ చేయండి పరికరాలు మరియు ప్రింటర్లు. ఇక్కడ, మీ మైక్రోకంట్రోలర్ బోర్డు కనెక్ట్ చేయబడిన పోర్టును కనుగొనండి. నా విషయంలో అది COM14 కానీ ఇది వేర్వేరు కంప్యూటర్లలో భిన్నంగా ఉంటుంది.

    పోర్ట్ కనుగొనడం

  3. టూల్ మెనుపై క్లిక్ చేసి, బోర్డుని సెట్ చేయండి ఆర్డునో నానో డ్రాప్-డౌన్ మెను నుండి.

    సెట్టింగ్ బోర్డు

  4. అదే టూల్ మెనులో, పోర్టును మీరు ముందు గమనించిన పోర్ట్ నంబర్‌కు సెట్ చేయండి పరికరాలు మరియు ప్రింటర్లు .

    పోర్ట్ సెట్ చేస్తోంది

  5. అదే సాధన మెనులో, ప్రాసెసర్‌ను సెట్ చేయండి ATmega328P (పాత బూట్‌లోడర్).

    ప్రాసెసర్

  6. సర్వో మోటార్లు ఆపరేట్ చేయడానికి కోడ్ రాయడానికి, మాకు ప్రత్యేక లైబ్రరీ అవసరం, అది సర్వో మోటార్లు కోసం అనేక విధులను వ్రాయడానికి సహాయపడుతుంది. ఈ లైబ్రరీ కోడ్‌తో పాటు, క్రింది లింక్‌లో జతచేయబడింది. లైబ్రరీని చేర్చడానికి, క్లిక్ చేయండి స్కెచ్> లైబ్రరీని చేర్చండి> జిప్‌ను జోడించండి. గ్రంధాలయం.

    లైబ్రరీని చేర్చండి

  7. దిగువ జతచేయబడిన కోడ్‌ను డౌన్‌లోడ్ చేసి, మీ Arduino IDE లో అతికించండి. పై క్లిక్ చేయండి అప్‌లోడ్ చేయండి మీ మైక్రోకంట్రోలర్ బోర్డులో కోడ్‌ను బర్న్ చేయడానికి బటన్.

    అప్‌లోడ్ చేయండి

కోడ్‌ను డౌన్‌లోడ్ చేయడానికి, ఇక్కడ నొక్కండి.

దశ 5: అనువర్తనాన్ని డౌన్‌లోడ్ చేస్తోంది

మేము ఇప్పుడు మొత్తం సర్క్యూట్రీని సమీకరించి, మైక్రోకంట్రోలర్ బోర్డులో కోడ్‌ను అప్‌లోడ్ చేసాము. రోబోటిక్ చేయికి రిమోట్ కంట్రోల్‌గా పనిచేసే మొబైల్ అనువర్తనాన్ని డౌన్‌లోడ్ చేయడానికి అనుమతిస్తుంది. గూగుల్ ప్లే స్టోర్‌లో ఉచిత అనువర్తనం అందుబాటులో ఉంది. అనువర్తనం పేరు లిటిల్ ఆర్మ్ రోబోట్ కంట్రోల్ . బ్లూటూత్ కనెక్షన్ చేయడానికి, మీ మొబైల్‌లో బ్లూటూత్‌ను ఆన్ చేయండి. సెట్టింగులకు వెళ్లి, మీ మొబైల్‌ను HC-05 మాడ్యూల్‌తో జత చేయండి. ఇలా చేసిన తర్వాత, అనువర్తనంలోని బ్లూటూత్ బటన్‌ను నొక్కండి. ఇది ఆకుపచ్చగా మారితే, అనువర్తనం ఇప్పుడు కనెక్ట్ అయి రోబోటిక్ చేయిని ఆపరేట్ చేయడానికి సిద్ధంగా ఉందని అర్థం. రోబోటిక్ చేయిని కావలసిన విధంగా ఆపరేట్ చేయడానికి స్లైడర్లు ఉన్నాయి.

అనువర్తనం

దశ 6: కోడ్‌ను అర్థం చేసుకోవడం

కోడ్ బాగా వ్యాఖ్యానించబడింది మరియు అర్థం చేసుకోవడం సులభం. ఇంకా, ఇది క్లుప్తంగా క్రింద వివరించబడింది.

1. ప్రారంభంలో, సర్వో మోటార్లు ఆపరేట్ చేయడానికి కోడ్ రాయడానికి లైబ్రరీ చేర్చబడుతుంది. మరొక లైబ్రరీ math.h కోడ్‌లో విభిన్న గణిత కార్యకలాపాలను నిర్వహించడానికి చేర్చబడింది. నాలుగు సర్వో మోటారుల కోసం నాలుగు వస్తువులు కూడా ప్రారంభించబడతాయి.

# చేర్చండి // ఆర్డునో లైబ్రరీ # చేర్చండి // ప్రామాణిక సి లైబ్రరీ # పిఐని నిర్వచించండి 3.141 సర్వో బేస్సర్వో; సర్వో భుజంసర్వో; సర్వో మోచేయి సర్వో; సర్వో గ్రిప్పర్సర్వో; int ఆదేశం;

2. అప్పుడు బేస్, భుజం మరియు మోచేయి సర్వో మోటార్లు విలువలను తీసుకునేలా ఒక నిర్మాణం ప్రకటించబడింది.

struct JointAngle {// ఒక నిర్మాణ పూర్ణాంకాన్ని ప్రకటించడం; పూర్ణాంక భుజం; పూర్ణాంక మోచేయి; };

3. దీని తరువాత, సర్వో మోటారు యొక్క కావలసిన పట్టు, ఆలస్యం మరియు స్థానాన్ని నిల్వ చేయడానికి కొన్ని వేరియబుల్స్ ప్రారంభించబడతాయి. వేగం 15 గా సెట్ చేయబడింది మరియు నిర్మాణంలో కోణం యొక్క విలువను తీసుకోవడానికి ఒక వస్తువు తయారు చేయబడుతుంది.

int కావలసిన గ్రిప్; పూర్ణాంక గ్రిప్పర్‌పోస్; పూర్ణాంకానికి కావలసినది; int servoSpeed ​​= 15; పూర్ణాంకం = 0; struct ఉమ్మడిఅంగిల్ కావలసినఅంగిల్; // సర్వోస్ యొక్క కావలసిన కోణాలు

నాలుగు. శూన్య సెటప్ () Arduino యొక్క పిన్‌లను INPUT లేదా OUTPUT గా సెట్ చేయడానికి ఉపయోగించే ఒక ఫంక్షన్. ఇక్కడ ఈ ఫంక్షన్‌లో, మోటారుల పిన్ ఆర్డునో యొక్క ఏ పిన్‌లతో అనుసంధానించబడుతుందని మేము ప్రకటించాము. ఆర్డునో సీరియల్ ఇన్‌పుట్‌ను ఎక్కువసేపు చదవదని కూడా ఇది నిర్ధారిస్తుంది. ఈ ఫంక్షన్‌లో ప్రారంభ స్థానం మరియు బౌడ్ రేట్ కూడా సెట్ చేయబడింది. బౌడ్ రేట్ అంటే మైక్రోకంట్రోలర్ బోర్డు జతచేయబడిన సర్వోస్ మరియు బ్లూటూత్ మాడ్యూల్‌తో కమ్యూనికేట్ చేస్తుంది.

శూన్య సెటప్ () {Serial.begin (9600); baseServo.attach (9); // పిన్ 9 పై బేస్ సర్వోను సర్వో ఆబ్జెక్ట్ భుజానికి జతచేస్తుంది సర్వో.టాచ్ (10); // పిన్ 9 పై భుజం సర్వోను సర్వో ఆబ్జెక్ట్ ఎల్బోసర్వో.టాచ్ (11) కు జతచేస్తుంది; // పిన్ 9 పై మోచేయి సర్వోను సర్వో ఆబ్జెక్ట్ గ్రిప్పర్‌సర్వో.టాచ్ (6) కు జతచేస్తుంది; // పిన్ 9 పై గ్రిప్పర్ సర్వోను సర్వో ఆబ్జెక్ట్ సీరియల్.సెట్ టైమౌట్ (50) కు జతచేస్తుంది; // arduino చాలా కాలం పాటు సీరియల్ చదవలేదని నిర్ధారిస్తుంది Serial.println ('ప్రారంభమైంది'); baseServo.write (90); // సర్వోస్ భుజంసర్వో.రైట్ (150) యొక్క ప్రారంభ స్థానాలు; elbowServo.write (110); సిద్ధంగా = 0; }

5. servoParallelControl () రోబోటిక్ ఆర్మ్ యొక్క ప్రస్తుత స్థానాన్ని గుర్తించడానికి మరియు మొబైల్ అనువర్తనం ద్వారా ఇచ్చిన ఆదేశం ప్రకారం దానిని తరలించడానికి ఉపయోగించే ఒక ఫంక్షన్. ప్రస్తుత స్థానం అసలు కంటే తక్కువగా ఉంటే, చేయి పైకి కదులుతుంది మరియు దీనికి విరుద్ధంగా ఉంటుంది. ఈ ఫంక్షన్ ప్రస్తుత స్థానం యొక్క విలువను మరియు సర్వో యొక్క వేగాన్ని అందిస్తుంది.

int servoParallelControl (int thePos, Servo theServo, int theSpeed) {int startPos = theServo.read (); // ప్రస్తుత pos int newPos = startPos చదవండి; // int theSpeed ​​= వేగం; // ఆదేశానికి సంబంధించి పోస్ ఎక్కడ ఉందో నిర్వచించండి // ప్రస్తుత స్థానం తక్కువగా ఉంటే అసలు కదలిక ఉంటే (స్టార్ట్‌పోస్ (ది పోస్ + 5)) {newPos = newPos - 1; theServo.write (newPos); ఆలస్యం (స్పీడ్); తిరిగి 0; } else {తిరిగి 1; }}

6. శూన్య లూప్ () ఒక లూప్‌లో పదేపదే నడుస్తున్న ఫంక్షన్. ఈ ఫంక్షన్ సీరియల్‌గా వస్తున్న డేటాను చదువుతుంది మరియు నిర్మాణంలో ప్రతి సర్వో యొక్క కోణాన్ని నిల్వ చేస్తుంది. ప్రారంభంలో, అన్ని సర్వోల స్థితి సున్నాకి సెట్ చేయబడింది. ఇక్కడ ఒక ఫంక్షన్ servoParallelControl () అంటారు మరియు పారామితులు అందులో పాస్ చేయబడతాయి. ఈ ఫంక్షన్ విలువను తిరిగి ఇస్తుంది మరియు ఇది స్థితి యొక్క వేరియబుల్‌లో నిల్వ చేయబడుతుంది.

void loop () {if (Serial.available ()) {ready = 1; wantAngle.base = Serial.parseInt (); wantAngle.shoulder = సీరియల్.పార్స్ఇంట్ (); wantAngle.elbow = Serial.parseInt (); కావలసిన గ్రిప్ = సీరియల్.పార్స్ఇంట్ (); wantDelay = Serial.parseInt (); if (Serial.read () == ' n') {// చివరి బైట్ 'd' అయితే, చదవడం మానేసి, 'd' ఆదేశాన్ని అమలు చేయండి అంటే 'పూర్తయింది' Serial.flush (); // బఫర్‌లో పోగు చేసిన అన్ని ఇతర ఆదేశాలను క్లియర్ చేయండి // సీరియల్.ప్రింట్ ('d') కమాండ్ పూర్తి చేసి పంపండి; status} int status1 = 0; పూర్ణాంక స్థితి 2 = 0; పూర్ణాంక స్థితి 3 = 0; పూర్ణాంక స్థితి 4 = 0; పూర్ణాంకం = 0; అయితే (పూర్తయింది == 0 && సిద్ధంగా == 1) {// సర్వోను కావలసిన స్థానానికి తరలించండి status1 = servoParallelControl (కావలసినఅంగిల్.బేస్, బేస్సర్వో, కావలసిన డెలే); status2 = servoParallelControl (కావలసినఅంగిల్.షౌల్డర్, భుజంసర్వో, కావలసిన డెలే); status3 = servoParallelControl (కావలసినఅంగిల్.ఎల్బో, మోచేయి సర్వో, కావలసిన డెలే); status4 = servoParallelControl (కావలసిన గ్రిప్, గ్రిప్పర్‌సర్వో, కావలసిన డెలే); if (status1 == 1 & status2 == 1 & status3 == 1 & status4 == 1) {పూర్తయింది = 1} while // అయితే ముగింపు}

ఇప్పుడు, ఇది రోబోటిక్ చేయి తయారుచేసే మొత్తం విధానం. కోడ్‌ను బర్న్ చేసి, అనువర్తనాన్ని డౌన్‌లోడ్ చేసిన తర్వాత, అనువర్తనంలోని స్లైడర్‌లను తరలించినప్పుడు రోబోట్ చక్కగా పని చేస్తుంది. కావలసిన పనిని నిర్వహించడానికి మీరు స్వయంప్రతిపత్తితో పనిచేయడానికి చేతిని ప్రోగ్రామ్ చేయవచ్చు.