- MPU6050 గైరోస్కోపిక్ & యాక్సిలెరోమీటర్ సెన్సార్
- ఫ్లెక్స్ సెన్సార్
- 3D ప్రింటెడ్ రోబోటిక్ ARM ను సిద్ధం చేయడం:
- అవసరమైన భాగాలు:
- సర్క్యూట్ రేఖాచిత్రం:
- గ్లోవ్స్కు MPU6050 & ఫ్లెక్స్ సెన్సార్ మౌంటు
- రోబోటిక్ ఆర్మ్ కోసం ప్రోగ్రామింగ్ ఆర్డునో నానో
- ఆర్డునో ఉపయోగించి సంజ్ఞ నియంత్రిత రోబోటిక్ ఆర్మ్ యొక్క పని
రోబోటిక్ ఆర్మ్స్ మనోహరమైన ఇంజనీరింగ్ క్రియేషన్స్లో ఒకటి మరియు మానవ చేయి వలె సంక్లిష్టమైన పనులను చేయటానికి ఈ విషయాలు వంపు మరియు పాన్ చూడటం ఎల్లప్పుడూ మనోహరంగా ఉంటుంది. ఈ రోబోటిక్ ఆయుధాలను సాధారణంగా అసెంబ్లీ లైన్లోని పరిశ్రమలలో వెల్డింగ్, డ్రిల్లింగ్, పెయింటింగ్ మొదలైన తీవ్రమైన యాంత్రిక పనులను చూడవచ్చు, సంక్లిష్ట శస్త్రచికిత్స ఆపరేషన్లు చేయడానికి ఇటీవల అధిక ఖచ్చితత్వంతో అధునాతన రోబోటిక్ ఆయుధాలను కూడా అభివృద్ధి చేస్తున్నారు. ఇంతకుముందు మేము 3D రోబోటిక్ ఆర్మ్ను ముద్రించాము మరియు ARM7 మైక్రోకంట్రోలర్ను ఉపయోగించి DIY పిక్ అండ్ ప్లేస్ రోబోటిక్ చేయిని నిర్మించాము. ఆర్డునో నానో, MPU6050 గైరోస్కోప్ మరియు ఫ్లెక్స్ సెన్సార్ ఉపయోగించి హ్యాండ్ సైగ నియంత్రిత రోబోటిక్ ARM ను తయారు చేయడానికి మేము మళ్ళీ అదే 3D ప్రింటెడ్ రోబోటిక్ ఆర్మ్ను ఉపయోగిస్తాము.
ఈ 3 డి ప్రింటెడ్ రోబోటిక్ ఆర్మ్ స్థానం MPU6050 గైరోస్కోప్ మరియు ఫ్లెక్స్ సెన్సార్తో జతచేయబడిన హ్యాండ్ గ్లోవ్ ద్వారా నియంత్రించబడుతుంది. రోబోటిక్ ఆర్మ్ యొక్క గ్రిప్పర్ సర్వోను నియంత్రించడానికి ఫ్లెక్స్ సెన్సార్ ఉపయోగించబడుతుంది మరియు X మరియు Y- అక్షంలో రోబోటిక్ కదలిక కోసం MPU6050 ఉపయోగించబడుతుంది. మీకు ప్రింటర్ లేకపోతే, మా ఆర్డునో రోబోటిక్ ఆర్మ్ ప్రాజెక్ట్ కోసం మేము నిర్మించినట్లు మీరు మీ చేతిని సాధారణ కార్డ్బోర్డ్తో కూడా నిర్మించవచ్చు. ప్రేరణ కోసం, మీరు ఆర్డునోను ఉపయోగించి ఇంతకుముందు నిర్మించిన రికార్డ్ మరియు ప్లే రోబోటిక్ ఆర్మ్ను కూడా చూడవచ్చు.
వివరాల్లోకి వెళ్ళే ముందు, మొదట, MPU6050 సెన్సార్ మరియు ఫ్లెక్స్ సెన్సార్ గురించి తెలుసుకుందాం.
MPU6050 గైరోస్కోపిక్ & యాక్సిలెరోమీటర్ సెన్సార్
MPU6050 మైక్రో-మెకానికల్ సిస్టమ్స్ (MEMS) టెక్నాలజీపై ఆధారపడి ఉంటుంది. ఈ సెన్సార్లో 3-యాక్సిస్ యాక్సిలెరోమీటర్, 3-యాక్సిస్ గైరోస్కోప్ మరియు అంతర్నిర్మిత ఉష్ణోగ్రత సెన్సార్ ఉన్నాయి. యాక్సిలరేషన్, వెలాసిటీ, ఓరియంటేషన్, డిస్ప్లేస్మెంట్ వంటి పారామితులను కొలవడానికి దీనిని ఉపయోగించవచ్చు. మేము ఇంతకుముందు MPU6050 ను ఆర్డునో మరియు రాస్ప్బెర్రీ పైతో ఇంటర్ఫేస్ చేసాము మరియు సెల్ఫ్ బ్యాలెన్సింగ్ రోబోట్, ఆర్డునో డిజిటల్ ప్రొట్రాక్టర్ మరియు ఆర్డునో ఇంక్లినోమీటర్ వంటి కొన్ని ప్రాజెక్టులను కూడా నిర్మించాము.
MPU6050 సెన్సార్లో లక్షణాలు:
- కమ్యూనికేషన్: కాన్ఫిగర్ చేయదగిన I2C చిరునామాతో I2C ప్రోటోకాల్
- ఇన్పుట్ విద్యుత్ సరఫరా: 3-5 వి
- అంతర్నిర్మిత 16-బిట్ ADC అధిక ఖచ్చితత్వాన్ని అందిస్తుంది
- అంతర్నిర్మిత DMP అధిక గణన శక్తిని అందిస్తుంది
- మాగ్నెటోమీటర్ వంటి ఇతర I2C పరికరాలతో ఇంటర్ఫేస్ చేయడానికి ఉపయోగించవచ్చు
- అంతర్నిర్మిత ఉష్ణోగ్రత సెన్సార్
MPU6050 యొక్క పిన్-అవుట్ వివరాలు:
పిన్ చేయండి | వాడుక |
విసిసి | మాడ్యూల్ కోసం శక్తిని అందిస్తుంది, + 3V నుండి + 5V వరకు ఉంటుంది. సాధారణంగా + 5 వి ఉపయోగించబడుతుంది |
గ్రౌండ్ | గ్రౌండ్ ఆఫ్ సిస్టమ్కు కనెక్ట్ చేయబడింది |
సీరియల్ క్లాక్ (SCL) | I2C కమ్యూనికేషన్ కోసం క్లాక్ పల్స్ అందించడానికి ఉపయోగిస్తారు |
సీరియల్ డేటా (SDA) | I2C కమ్యూనికేషన్ ద్వారా డేటాను బదిలీ చేయడానికి ఉపయోగిస్తారు |
సహాయక సీరియల్ డేటా (XDA) | MPU6050 తో ఇతర I2C మాడ్యూళ్ళను ఇంటర్ఫేస్ చేయడానికి ఉపయోగించవచ్చు |
సహాయక సీరియల్ క్లాక్ (XCL) | MPU6050 తో ఇతర I2C మాడ్యూళ్ళను ఇంటర్ఫేస్ చేయడానికి ఉపయోగించవచ్చు |
AD0 | ఒకటి కంటే ఎక్కువ MPU6050 ను ఒకే MCU ఉపయోగిస్తే, అప్పుడు ఈ పిన్ను చిరునామాను మార్చడానికి ఉపయోగించవచ్చు |
అంతరాయం (INT) | MCU చదవడానికి డేటా అందుబాటులో ఉందని సూచించడానికి అంతరాయ పిన్ |
ఫ్లెక్స్ సెన్సార్
ఫ్లెక్స్ సెన్సార్లు వేరియబుల్ రెసిస్టర్ తప్ప మరొకటి కాదు. సెన్సార్ బెంట్ అయినప్పుడు ఫ్లెక్స్ సెన్సార్ నిరోధకత మారుతుంది. ఇవి సాధారణంగా రెండు పరిమాణాలలో 2.2 అంగుళాలు మరియు 4.5 అంగుళాలు లభిస్తాయి .
మేము మా ప్రాజెక్ట్లో ఫ్లెక్స్ సెన్సార్లను ఎందుకు ఉపయోగిస్తాము?
ఈ సంజ్ఞ నియంత్రిత రోబోటిక్ ఆర్మ్లో, రోబోటిక్ చేయి యొక్క గ్రిప్పర్ను నియంత్రించడానికి ఫ్లెక్స్ సెన్సార్ ఉపయోగించబడుతుంది. చేతి తొడుగుపై ఉన్న ఫ్లెక్స్ సెన్సార్ వంగి ఉన్నప్పుడు, గ్రిప్పర్తో జతచేయబడిన సర్వో మోటారు తిరుగుతుంది మరియు గ్రిప్పర్ తెరుచుకుంటుంది.
ఫ్లెక్స్ సెన్సార్లు చాలా అనువర్తనాల్లో ఉపయోగపడతాయి మరియు గేమ్ కంట్రోలర్, టోన్ జెనరేటర్ మొదలైన ఫ్లెక్స్ సెన్సార్ ఉపయోగించి మేము కొన్ని ప్రాజెక్టులను నిర్మించాము.
3D ప్రింటెడ్ రోబోటిక్ ARM ను సిద్ధం చేయడం:
ఈ ట్యుటోరియల్లో ఉపయోగించిన 3 డి ప్రింటెడ్ రోబోటిక్ ఆర్మ్ థింగివర్స్లో లభించే EEZYbotARM ఇచ్చిన డిజైన్ను అనుసరించి తయారు చేయబడింది. 3 డి ప్రింటెడ్ రోబోటిక్ ఆర్మ్ మరియు వీడియోతో సమీకరించే వివరాలను తయారుచేసే పూర్తి విధానం థింగివర్స్ లింక్లో ఉంది, ఇది పైన భాగస్వామ్యం చేయబడింది.
4 సర్వో మోటార్స్తో సమావేశమైన తర్వాత నా 3 డి ప్రింటెడ్ రోబోటిక్ ఆర్మ్ యొక్క చిత్రం పైన ఉంది.
అవసరమైన భాగాలు:
- ఆర్డునో నానో
- ఫ్లెక్స్ సెన్సార్
- 10 కె రెసిస్టర్
- MPU6050
- చేతి తొడుగులు
- వైర్లను కనెక్ట్ చేస్తోంది
- బ్రెడ్బోర్డ్
సర్క్యూట్ రేఖాచిత్రం:
కింది చిత్రం ఆర్డునో ఆధారిత సంజ్ఞ నియంత్రిత రోబోటిక్ ఆర్మ్ కోసం సర్క్యూట్ కనెక్షన్లను చూపుతుంది .
MPU6050 & Arduino నానో మధ్య సర్క్యూట్ కనెక్షన్:
MPU6050 |
ఆర్డునో నానో |
వీసీసీ |
+ 5 వి |
GND |
GND |
SDA |
ఎ 4 |
ఎస్సీఎల్ |
A5 |
సర్వో మోటార్స్ & ఆర్డునో నానో మధ్య సర్క్యూట్ కనెక్షన్:
ఆర్డునో నానో |
సెర్వో మోటర్ |
పవర్ అడాప్టర్ |
డి 2 |
సర్వో 1 ఆరెంజ్ (పిడబ్ల్యుఎం పిన్) |
- |
డి 3 |
సర్వో 2 ఆరెంజ్ (పిడబ్ల్యుఎం పిన్) |
- |
డి 4 |
సర్వో 3 ఆరెంజ్ (పిడబ్ల్యుఎం పిన్) |
- |
డి 5 |
సర్వో 4 ఆరెంజ్ (పిడబ్ల్యుఎం పిన్) |
- |
GND |
సర్వో 1,2,3,4 బ్రౌన్ (జిఎన్డి పిన్) |
GND |
- |
సర్వో 1,2,3,4 రెడ్ (+ 5 వి పిన్) |
+ 5 వి |
ఒక ఫ్లెక్స్ సెన్సార్ రెండు సూదులు కలిగి. ఇది ధ్రువణ టెర్మినల్స్ కలిగి లేదు. కాబట్టి పిన్ వన్ పి 1 ఆర్డునో నానో యొక్క అనలాగ్ పిన్ ఎ 0 కి 10 కె పుల్-అప్ రెసిస్టర్తో అనుసంధానించబడి ఉంది మరియు పిన్ రెండు పి 2 ఆర్డునోకు గ్రౌండ్ చేయబడింది.
గ్లోవ్స్కు MPU6050 & ఫ్లెక్స్ సెన్సార్ మౌంటు
మేము MPU6050 మరియు ఫ్లెక్స్ సెన్సార్ను చేతి తొడుగుపై అమర్చాము. గ్లోవ్ మరియు రోబోటిక్ చేయిని కనెక్ట్ చేయడానికి ఇక్కడ వైర్డు కనెక్షన్ ఉపయోగించబడుతుంది, అయితే దీనిని RF కనెక్షన్ లేదా బ్లూటూత్ కనెక్షన్ ఉపయోగించి వైర్లెస్గా తయారు చేయవచ్చు.
ప్రతి కనెక్షన్ తరువాత, సంజ్ఞ-నియంత్రిత రోబోటిక్ ఆర్మ్ కోసం తుది సెటప్ క్రింది చిత్రంగా కనిపిస్తుంది:
రోబోటిక్ ఆర్మ్ కోసం ప్రోగ్రామింగ్ ఆర్డునో నానో
ఎప్పటిలాగే, ఈ ట్యుటోరియల్ చివరిలో వర్కింగ్ వీడియోతో పాటు పూర్తి కోడ్ ఇవ్వబడుతుంది. ఇక్కడ కోడ్ యొక్క కొన్ని ముఖ్యమైన పంక్తులు వివరించబడ్డాయి.
1. మొదట, అవసరమైన లైబ్రరీ ఫైళ్ళను చేర్చండి. Wire.h లైబ్రరీ Arduino నానో & MPU6050 మరియు మధ్య I2C కమ్యూనికేషన్ కోసం ఉపయోగించబడుతుంది servo.h సర్వో మోటార్ నియంత్రించాలంటే.
# చేర్చండి
2. తరువాత, క్లాస్ సర్వో కోసం వస్తువులు ప్రకటించబడతాయి. మేము నాలుగు సర్వో మోటార్లు ఉపయోగిస్తున్నప్పుడు, సర్వో_1, సర్వో_2, సర్వో_3, సర్వో_4 వంటి నాలుగు వస్తువులు సృష్టించబడతాయి.
సర్వో సర్వో_1; సర్వో సర్వో_2; సర్వో సర్వో_3; సర్వో సర్వో_4;
3. తరువాత, MPU6050 యొక్క I2C చిరునామా & ఉపయోగించాల్సిన వేరియబుల్స్ ప్రకటించబడతాయి.
const int MPU_addr = 0x68; // MPU6050 I2C చిరునామా int16_t అక్షం_ఎక్స్, అక్షం_వై, అక్షం_జెడ్; int minVal = 265; int maxVal = 402; డబుల్ x; డబుల్ వై; డబుల్ z;
4. శూన్య సెటప్లో తరువాత , సీరియల్ కమ్యూనికేషన్ కోసం 9600 బాడ్ రేట్ సెట్ చేయబడింది.
సీరియల్.బెగిన్ (9600);
మరియు ఆర్డునో నానో & MPU6050 మధ్య I2C కమ్యూనికేషన్ స్థాపించబడింది:
వైర్.బెగిన్ (); // I2C కమ్యూనికేషన్ వైర్ను ప్రారంభించండి. BeginTransmission (MPU_addr); // MPU6050 Wire.write (0x6B) తో కమ్యూనికేషన్ ప్రారంభించండి ; // 6B వైర్.రైట్ (0) నమోదు చేయడానికి వ్రాస్తుంది; // వైర్ను రీసెట్ చేయడానికి 6 బి రిజిస్టర్లో 0 లోకి వ్రాస్తుంది . // I2C ట్రాన్స్మిషన్ ముగుస్తుంది
అలాగే, సర్వో మోటార్ కనెక్షన్ల కోసం నాలుగు పిడబ్ల్యుఎం పిన్స్ నిర్వచించబడ్డాయి.
servo_1.attach (2); // ఫార్వర్డ్ / రివర్స్_మోటర్ సర్వో_2.టాచ్ (3); // అప్ / డౌన్_మోటర్ సర్వో_3.టాచ్ (4); // గ్రిప్పర్_మోటర్ సర్వో_4.అటాచ్ (5); // ఎడమ / కుడి_మోటర్
5. శూన్య లూప్ ఫంక్షన్లో, మళ్ళీ MPU6050 మరియు Arduino నానోల మధ్య I2C కనెక్షన్ను ఏర్పాటు చేసి, ఆపై MPU6050 యొక్క రిజిస్టర్ నుండి X, Y, Z-Axis డేటాను చదవడం ప్రారంభించండి మరియు వాటిని సంబంధిత వేరియబుల్స్లో నిల్వ చేయండి.
వైర్.బెగిన్ ట్రాన్స్మిషన్ (MPU_addr); వైర్.రైట్ (0x3B); // రెజిటర్ 0x3B వైర్తో ప్రారంభించండి.ఎండ్ట్రాన్స్మిషన్ (తప్పుడు); Wire.requestFrom (MPU_addr, 14, true); // చదవండి 14 రిజిస్టర్లు ax_X = Wire.read () << 8- వైర్.రెడ్ (); అక్షం_వై = వైర్.రెడ్ () << 8- వైర్.రెడ్ (); అక్షం_జెడ్ = వైర్.రెడ్ () << 8- వైర్.రెడ్ ();
ఆ తరువాత, MPU6050 సెన్సార్ నుండి -90 నుండి 90 పరిధిలో అక్షం డేటా యొక్క నిమిషం మరియు గరిష్ట విలువను మ్యాప్ చేయండి.
int xAng = పటం (అక్షం_ఎక్స్, మిన్వాల్, మాక్స్వాల్, -90,90); int yAng = పటం (అక్షం_వై, మిన్వాల్, మాక్స్వాల్, -90,90); int zAng = పటం (అక్షం_జెడ్, మిన్వాల్, మాక్స్వాల్, -90,90);
X, y, z విలువలను 0 నుండి 360 పరంగా లెక్కించడానికి క్రింది సూత్రాన్ని ఉపయోగించండి.
x = RAD_TO_DEG * (atan2 (-yAng, -zAng) + PI); y = RAD_TO_DEG * (atan2 (-xAng, -zAng) + PI); z = RAD_TO_DEG * (atan2 (-yAng, -xAng) + PI);
అప్పుడు ఆర్డునో నానో యొక్క A0 పిన్ వద్ద ఫ్లెక్స్ సెన్సార్ అనలాగ్ అవుట్పుట్ డేటాను చదవండి మరియు ఫ్లెక్స్ సెన్సార్ యొక్క డిజిటల్ విలువ ప్రకారం గ్రిప్పర్ యొక్క సర్వో కోణాన్ని సెట్ చేయండి. కాబట్టి ఫ్లెక్స్ సెన్సార్ డేటా 750 కన్నా ఎక్కువ ఉంటే గ్రిప్పర్ యొక్క సర్వో మోటార్ కోణం 0 డిగ్రీ మరియు 750 కన్నా తక్కువ ఉంటే అది 180 డిగ్రీలు.
పూర్ణాంకానికి గ్రిప్పర్; int flex_sensorip = అనలాగ్ రీడ్ (A0); if (flex_sensorip> 750) { గ్రిప్పర్ = 0; } else { గ్రిప్పర్ = 180; } servo_3.write (గ్రిప్పర్);
అప్పుడు X- అక్షం మీద 0 నుండి 60 వరకు MPU6050 యొక్క కదలిక సర్వో మోటార్ యొక్క ఫార్వర్డ్ / రివర్స్ మోషన్ రోబోటిక్ ఆర్మ్ కోసం 0 నుండి 90 డిగ్రీల పరంగా మ్యాప్ చేయబడుతుంది.
if (x> = 0 && x <= 60) { int mov1 = map (x, 0,60,0,90); సీరియల్.ప్రింట్ ("F / R = లో కదలిక"); సీరియల్.ప్రింట్ (mov1); సీరియల్.ప్రింట్ల్న్ ((చార్) 176); servo_1.write (mov1); }
250 నుండి 360 వరకు X- అక్షంపై MPU6050 యొక్క కదలిక సర్వో మోటార్ యొక్క UP / DOWN మోషన్ రోబోటిక్ ఆర్మ్ కోసం 0 నుండి 90 డిగ్రీల పరంగా మ్యాప్ చేయబడుతుంది.
లేకపోతే (x> = 300 && x <= 360) { int mov2 = map (x, 360,250,0,90); సీరియల్.ప్రింట్ ("పైకి / క్రిందికి కదలిక ="); సీరియల్.ప్రింట్ (mov2); సీరియల్.ప్రింట్ల్న్ ((చార్) 176); servo_2.write (mov2); }
Y- అక్షంపై MPU6050 యొక్క కదలికను 0 నుండి 60 వరకు సర్వో మోటారు యొక్క రోబోటిక్ చేయి యొక్క ఎడమ కదలిక కోసం 90 నుండి 180 డిగ్రీల పరంగా మ్యాప్ చేస్తారు.
if (y> = 0 && y <= 60) { int mov3 = map (y, 0,60,90,180); సీరియల్.ప్రింట్ ("ఎడమవైపు కదలిక ="); సీరియల్.ప్రింట్ (mov3); సీరియల్.ప్రింట్ల్న్ ((చార్) 176); servo_4.write (mov3); }
300 నుండి 360 వరకు Y- అక్షంలో MPU6050 యొక్క కదలిక 0 నుండి 90 డిగ్రీల పరంగా సర్వో మోటారు యొక్క కుడి కదలిక రోబోటిక్ చేయికి మ్యాప్ చేయబడుతుంది.
else if (y> = 300 && y <= 360) { int mov3 = map (y, 360,300,90,0); సీరియల్.ప్రింట్ ("కుడివైపు కదలిక ="); సీరియల్.ప్రింట్ (mov3); సీరియల్.ప్రింట్ల్న్ ((చార్) 176); servo_4.write (mov3); }
ఆర్డునో ఉపయోగించి సంజ్ఞ నియంత్రిత రోబోటిక్ ఆర్మ్ యొక్క పని
చివరగా, ఆర్డునో నానోకు కోడ్ను అప్లోడ్ చేయండి మరియు MPU6050 & ఫ్లెక్స్ సెన్సార్తో అమర్చిన హ్యాండ్ గ్లోవ్ ధరించండి.
1. ఇప్పుడు రోబోటిక్ చేయిని ముందుకు తరలించడానికి చేతిని క్రిందికి కదిలించండి మరియు రోబోటిక్ చేయి పైకి కదలడానికి పైకి కదలండి.
2. అప్పుడు రోబోటిక్ చేయి ఎడమ లేదా కుడి వైపు తిరగడానికి చేతిని ఎడమ లేదా కుడి వైపుకు తిప్పండి.
3. గ్రిప్పర్ను తెరవడానికి హ్యాండ్ గ్లోవ్ వేలితో జతచేయబడిన ఫ్లెక్స్ కేబుల్ను వంచి, దాన్ని మూసివేయడానికి విడుదల చేయండి.
పూర్తి పని క్రింద ఇచ్చిన వీడియోలో ప్రదర్శించబడుతుంది.