MPU6050 సెన్సార్ సింగిల్ చిప్ కంటే చాలా విధులు కలిగి ఉంది. ఇది MEMS యాక్సిలెరోమీటర్, MEMS గైరో మరియు ఉష్ణోగ్రత సెన్సార్ను కలిగి ఉంటుంది. అనలాగ్ విలువలను డిజిటల్గా మార్చేటప్పుడు ఈ మాడ్యూల్ చాలా ఖచ్చితమైనది ఎందుకంటే ప్రతి ఛానెల్కు డిజిటల్ కన్వర్టర్ హార్డ్వేర్కు 16 బిట్ అనలాగ్ ఉంది. ఈ మాడ్యూల్ ఒకే సమయంలో x, y మరియు z ఛానెల్ను సంగ్రహించగలదు. హోస్ట్ కంట్రోలర్తో కమ్యూనికేట్ చేయడానికి దీనికి I2C ఇంటర్ఫేస్ ఉంది. ఈ MPU6050 మాడ్యూల్ యాక్సిలెరోమీటర్ మరియు గైరో రెండింటినీ కలిగి ఉన్న కాంపాక్ట్ చిప్. డ్రోన్లు, రోబోట్లు, మోషన్ సెన్సార్లు వంటి అనేక అనువర్తనాలకు ఇది చాలా ఉపయోగకరమైన పరికరం. దీనిని గైరోస్కోప్ లేదా ట్రిపుల్ యాక్సిస్ యాక్సిలెరోమీటర్ అని కూడా అంటారు.
ఈ రోజు ఈ వ్యాసంలో మేము ఈ MPU6050 గైరోస్కోప్ను Arduino తో ఇంటర్ఫేస్ చేయబోతున్నాము మరియు 16x2 LCD కన్నా ఎక్కువ విలువలను చూపుతున్నాము.
అవసరమైన భాగాలు:
- ఆర్డునో యునో
- MPU-6050
- 10 కె పాట్
- జంపర్ వైర్
- బ్రెడ్బోర్డ్
- USB కేబుల్
- విద్యుత్ పంపిణి
MPU6050 గైరో సెన్సార్:
MPU-6050 అనేది ఒకే చిప్లో 8 పిన్ 6 యాక్సిస్ గైరో మరియు యాక్సిలెరోమీటర్. ఈ మాడ్యూల్ అప్రమేయంగా I2C సీరియల్ కమ్యూనికేషన్లో పనిచేస్తుంది, అయితే ఇది రిజిస్టర్ను కాన్ఫిగర్ చేయడం ద్వారా SPI ఇంటర్ఫేస్ కోసం కాన్ఫిగర్ చేయవచ్చు. I2C కొరకు దీనికి SDA మరియు SCL లైన్లు ఉన్నాయి. దాదాపు అన్ని పిన్లు మల్టీఫంక్షన్గా ఉన్నాయి, అయితే ఇక్కడ మనం I2C మోడ్ పిన్లతో మాత్రమే ముందుకు వెళ్తున్నాము.
పిన్ కాన్ఫిగరేషన్:
Vcc: - ఈ పిన్ భూమికి సంబంధించి MPU6050 మాడ్యూల్ను శక్తివంతం చేయడానికి ఉపయోగించబడుతుంది
GND: - ఇది గ్రౌండ్ పిన్
SDA: - నియంత్రిక మరియు mpu6050 మాడ్యూల్ మధ్య డేటా కోసం SDA పిన్ ఉపయోగించబడుతుంది
SCL: - గడియారం ఇన్పుట్ కోసం SCL పిన్ ఉపయోగించబడుతుంది
XDA: - ఇది బాహ్య సెన్సార్ల నుండి కాన్ఫిగర్ చేయడానికి మరియు చదవడానికి సెన్సార్ I2C SDA డేటా లైన్ ((ఐచ్ఛికం) మా విషయంలో ఉపయోగించబడదు)
XCL: - ఇది బాహ్య సెన్సార్ల నుండి కాన్ఫిగర్ చేయడానికి మరియు చదవడానికి సెన్సార్ I2C SCL క్లాక్ లైన్ ((ఐచ్ఛికం) మా విషయంలో ఉపయోగించబడదు)
ADO: - I2C స్లేవ్ చిరునామా LSB (మా విషయంలో వర్తించదు)
INT: - డేటా సిద్ధంగా ఉందని సూచించడానికి అంతరాయ పిన్.
వివరణ:
ఈ వ్యాసంలో, ఆర్డునోతో MPU6050 ఉపయోగించి LCD పై ఉష్ణోగ్రత, గైరో మరియు యాక్సిలెరోమీటర్ రీడింగులను చూపిస్తున్నాము. ఈ మాడ్యూల్ మాకు వరుస విలువలు మరియు అవుట్పుట్లో సాధారణీకరించిన విలువలను ఇస్తుంది కాని వరుస విలువలు స్థిరంగా లేవు కాబట్టి ఇక్కడ మేము LCD కన్నా సాధారణ విలువలను చూపుతున్నాము. మీకు యాక్సిలెరోమీటర్ విలువ కావాలంటే, మీరు ఆర్డునోతో యాక్సిలెరోమీటర్ ADXL335 ను కూడా ఉపయోగించవచ్చు.
ఈ ప్రాజెక్ట్లో, మేము మొదట ఎల్సిడి కంటే ఉష్ణోగ్రత విలువను చూపించాము మరియు 10 సెకన్ల తర్వాత మేము గైరో విలువలను చూపిస్తాము మరియు 10 సెకన్ల తరువాత ఈ క్రింది చిత్రాలలో చూపిన విధంగా యాక్సిలెరోమీటర్ రీడింగులను కలిగి ఉన్నాము:
సర్క్యూట్ రేఖాచిత్రం మరియు వివరణ:
MPU6050 ను Arduino తో ఇంటర్ఫేసింగ్ కోసం సర్క్యూట్ రేఖాచిత్రం, ఇక్కడ మేము చాలా సులభం LCD మరియు MPU6050. మరియు ఇక్కడ మేము ల్యాప్టాప్ యుఎస్బి విద్యుత్ సరఫరాను ఉపయోగించాము. LCD యొక్క ప్రకాశాన్ని నియంత్రించడానికి 10k కుండ ఉపయోగించబడుతుంది. MPU6050 కి సంబంధించి, మేము 5 కనెక్షన్లు చేసాము, దీనిలో మేము 3.3v విద్యుత్ సరఫరా మరియు MPU6050 యొక్క భూమిని 3.3v మరియు Arduino యొక్క మైదానానికి అనుసంధానించాము. MPU6050 యొక్క SCL మరియు SDA పిన్స్ Arduino యొక్క A4 మరియు A5 పిన్తో అనుసంధానించబడి ఉన్నాయి. మరియు MPU6050 యొక్క INT పిన్ Arduino (D2) యొక్క 0 అంతరాయానికి అనుసంధానించబడి ఉంది. LCD యొక్క RS, RW మరియు EN నేరుగా ఆర్డునో యొక్క 8, gnd మరియు 9 కి అనుసంధానించబడి ఉన్నాయి. డేటా పిన్ నేరుగా డిజిటల్ పిన్ నంబర్ 10, 11, 12 మరియు 13 కి అనుసంధానించబడి ఉంది.
ప్రోగ్రామింగ్ వివరణ
ఈ ప్రాజెక్ట్ కోసం ప్రోగ్రామింగ్ భాగం కూడా సులభం. ఇక్కడ మేము ఈ MPU6050 లైబ్రరీని Arduino తో ఇంటర్ఫేస్ చేయడానికి ఉపయోగించాము. కాబట్టి మొదట, మేము GitHub నుండి MPU6050 లైబ్రరీని డౌన్లోడ్ చేసుకొని దానిని Arduino IDE లో ఇన్స్టాల్ చేయాలి.
దాని తరువాత, ఉదాహరణలో ఉదాహరణ కోడ్లను కనుగొనవచ్చు. ఆ కోడ్ను నేరుగా ఆర్డునోకు అప్లోడ్ చేయడం ద్వారా వినియోగదారు వాటిని పరీక్షించవచ్చు మరియు సీరియల్ మానిటర్ ద్వారా విలువలను చూడవచ్చు. లేదా వినియోగదారుడు ఎల్సిడి మరియు సీరియల్ మానిటర్పై విలువలను చూపించడానికి వ్యాసం చివర ఇచ్చిన మా కోడ్ను ఉపయోగించవచ్చు.
కోడింగ్లో, MPU6050 మరియు LCD వంటి అవసరమైన కొన్ని లైబ్రరీలను చేర్చాము.
# చేర్చండి
లో సెటప్ ఫంక్షన్, మేము రెండు పరికరాల ప్రారంభించడం LCD పైగా వ్రాయండి స్వాగత సందేశం
శూన్య సెటప్ () {lcd.begin (16,2); lcd.createChar (0, డిగ్రీ); సీరియల్.బెగిన్ (9600); Serial.println ("MPU6050 ను ప్రారంభించండి"); అయితే (! mpu.begin (MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G)) {lcd.clear (); lcd.print ("పరికరం కనుగొనబడలేదు"); Serial.println ("చెల్లుబాటు అయ్యే MPU6050 సెన్సార్ను కనుగొనలేకపోయాము, వైరింగ్ను తనిఖీ చేయండి!"); ఆలస్యం (500); } కౌంట్ = 0; mpu.calibrateGyro (); mpu.setThreshold (3); లో లూప్ ఫంక్షన్, మేము ప్రతి 10seconds మూడు విధులు పిలుపునిచ్చారు ఉష్ణోగ్రత, గైరో ప్రదర్శిస్తూ మరియు పఠనం యాక్సిలెరోమీటర్ LCD లో. ఈ మూడు విధులు టెంప్షో, గైరోషో మరియు అక్సెల్షో , మీరు ఈ ఫంక్షన్లను ఈ ఆర్టికల్ చివరిలో ఇచ్చిన పూర్తి ఆర్డునో కోడ్లో తనిఖీ చేయవచ్చు:
void loop () {lcd.clear (); lcd.print ("ఉష్ణోగ్రత"); పొడవైన st = మిల్లీస్ (); సీరియల్.ప్రింట్ల్న్ ("ఉష్ణోగ్రత"); అయితే (మిల్లీస్ ()
MPU6050 గైరో మరియు యాక్సిలెరోమీటర్ రెండూ ఏదైనా పరికరం యొక్క స్థానం మరియు ధోరణిని గుర్తించడానికి ఉపయోగిస్తారు. X, y మరియు z- అక్షం స్థానాలను నిర్ణయించడానికి గైరో భూమి గురుత్వాకర్షణను ఉపయోగిస్తుంది మరియు కదలిక యొక్క మార్పు రేటు ఆధారంగా యాక్సిలెరోమీటర్ కనుగొంటుంది. మేము ఇప్పటికే మా అనేక ప్రాజెక్టులలో ఆర్డునోతో యాక్సిలెరోమీటర్ను ఉపయోగించాము:
- యాక్సిలెరోమీటర్ బేస్డ్ హ్యాండ్ సంజ్ఞ నియంత్రిత రోబోట్
- ఆర్డునో బేస్డ్ వెహికల్ యాక్సిడెంట్ అలర్ట్ సిస్టమ్
- ఆర్డునో ఉపయోగించి భూకంప డిటెక్టర్ అలారం