ARDUINO GY87 కంబైన్డ్ సెన్సార్ టెస్ట్ స్కెచ్
పరిచయం
మీరు ఆసక్తిగల తయారీదారు లేదా రోబోటిక్స్ ఔత్సాహికులైతే, మీరు ఈ చిన్నదైన ఇంకా శక్తివంతమైన మాడ్యూల్ని చూసారు, మీరు ఆసక్తిగల తయారీదారు లేదా రోబోటిక్స్ ఔత్సాహికులు అయితే, మీరు ఈ చిన్న ఇంకా శక్తివంతమైన మాడ్యూల్ BMP085 బేరోమీటర్ను చూసారు. సెల్ఫ్ బ్యాలెన్సింగ్ రోబోట్ లేదా క్వాడ్కాప్టర్ వంటి మీ ప్రాజెక్ట్లకు మోషన్ సెన్సింగ్ను జోడించడానికి GY-87 IMU మాడ్యూల్ గొప్ప మార్గం.
కానీ మీరు GY-87 IMU మాడ్యూల్తో ప్రయోగాలు చేయడం ప్రారంభించే ముందు, మీ Arduino బోర్డ్తో దీన్ని ఎలా ఇంటర్ఫేస్ చేయాలో మీరు తెలుసుకోవాలి. ఇక్కడే ఈ బ్లాగ్ వచ్చింది! కింది పేరాల్లో, మేము GY-87 IMU మాడ్యూల్ యొక్క ప్రాథమికాలను కవర్ చేస్తాము, దానిని ఎలా సెటప్ చేయాలి మరియు సెన్సార్ డేటాను చదవడానికి Arduino కోడ్ను ఎలా వ్రాయాలి. మేము సాధారణ సమస్యలను పరిష్కరించడం కోసం కొన్ని చిట్కాలు మరియు వనరులను కూడా అందిస్తాము.
కాబట్టి, మీరు ప్రారంభించడానికి సిద్ధంగా ఉన్నట్లయితే, GY-87 IMU మాడ్యూల్ను Arduinoతో ఇంటర్ఫేస్ చేయడం గురించి తెలుసుకుందాం!
GY-87 IMU MPU6050 అంటే ఏమిటి
GY-87 వంటి జడత్వ కొలత యూనిట్ (IMU) మాడ్యూల్స్ MPU6050 యాక్సిలరోమీటర్/గైరోస్కోప్, HMC5883L మాగ్నెటోమీటర్ మరియు BMP085 బారోమెట్రిక్ ప్రెజర్ సెన్సార్ వంటి అనేక సెన్సార్లను ఒకే ప్యాకేజీగా మిళితం చేస్తాయి. అందువల్ల, GY-87 IMU MPU6050 అనేది 9-యాక్సిస్ గైరోస్కోప్, 3-యాక్సిస్ యాక్సిలెరోమీటర్, 3-యాక్సిస్ మాగ్నెటోమీటర్ మరియు డిజిటల్ మోషన్ ప్రాసెసర్ను మిళితం చేసే ఆల్-ఇన్-వన్ 3-యాక్సిస్ మోషన్ ట్రాకింగ్ మాడ్యూల్. ఇది క్వాడ్కాప్టర్లు మరియు ఇతర మానవరహిత వైమానిక వాహనాలు (UAVలు) వంటి రోబోటిక్ ప్రాజెక్ట్లలో చాలా ఎక్కువగా ఉపయోగించబడుతుంది, ఎందుకంటే ఇది ఓరియంటేషన్ మరియు మోషన్ను ఖచ్చితంగా కొలవగలదు మరియు ట్రాక్ చేయగలదు. ఇది నావిగేషన్, గేమింగ్ మరియు వర్చువల్ రియాలిటీ వంటి ఇతర అప్లికేషన్లలో కూడా ఉపయోగించబడుతుంది.
హార్డ్వేర్ భాగాలు
Arduinoతో GY-87 IMU MPU6050 HMC5883L BMP085 మాడ్యూల్ను ఇంటర్ఫేసింగ్ చేయడానికి మీకు క్రింది హార్డ్వేర్ అవసరం.
భాగాలు | విలువ | క్యూటీ |
Arduino UNO | – | 1 |
MPU6050 సెన్సార్ మాడ్యూల్ | GY-87 | 1 |
బ్రెడ్బోర్డ్ | – | 1 |
జంపర్ వైర్లు | – | 1 |
ఆర్డునోతో GY-87
ఇప్పుడు మీరు GY-87ని అర్థం చేసుకున్నారు, Arduinoతో ఇంటర్ఫేస్ చేయడానికి ఇది సమయం. అలా చేయడానికి, ఇప్పుడు అనుసరించండి మీరు GY-87ని అర్థం చేసుకున్నారు, ఇది Arduinoతో ఇంటర్ఫేస్ చేయడానికి సమయం. అలా చేయడానికి, అనుసరించండి
స్కీమాటిక్
క్రింద ఇవ్వబడిన సర్క్యూట్ రేఖాచిత్రం ప్రకారం కనెక్షన్లను చేయండి
GY-87 IMU MPU6050 HMC5883L BMP085 Arduinoవైరింగ్ / కనెక్షన్లు
ఆర్డునో | MPU6050 సెన్సార్ |
5V | VCC |
GND | GND |
A4 | SDA |
A5 | SCA |
Arduino IDEని ఇన్స్టాల్ చేస్తోంది
మొదట, మీరు దాని అధికారిక నుండి Arduino IDE సాఫ్ట్వేర్ను ఇన్స్టాల్ చేయాలి webసైట్ Arduino. "Arduino IDEని ఎలా ఇన్స్టాల్ చేయాలి" అనే అంశంపై ఇక్కడ ఒక సాధారణ దశల వారీ గైడ్ ఉంది.
లైబ్రరీలను ఇన్స్టాల్ చేస్తోంది
మీరు కోడ్ని అప్లోడ్ చేయడం ప్రారంభించే ముందు, క్రింది లైబ్రరీలను /ప్రోగ్రామ్లో డౌన్లోడ్ చేసి అన్జిప్ చేయండి FileArduino బోర్డ్తో సెన్సార్ని ఉపయోగించడానికి s (x86)/Arduino/Libraries (డిఫాల్ట్). "Arduino IDEలో లైబ్రరీలను ఎలా జోడించాలి" అనే అంశంపై ఇక్కడ ఒక సాధారణ దశల వారీ గైడ్ ఉంది.
- MPU6050
- అడాఫ్రూట్_BMP085
- HMC5883L_సింపుల్
కోడ్
ఇప్పుడు కింది కోడ్ను కాపీ చేసి, దానిని Arduino IDE సాఫ్ట్వేర్కు అప్లోడ్ చేయండి.
#"I2Cdev.h"ని చేర్చండి #"MPU6050.h"ని చేర్చండి #చేర్చండి #చేర్చండి MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_సింపుల్ కంపాస్; int085_t గొడ్డలి, ay, az; int5883_t gx, gy, gz; # LED_PIN 16 bool blinkState = తప్పుని నిర్వచించండి; శూన్యమైన సెటప్() {Serial.begin(16); Wire.begin(); // పరికరాలను ప్రారంభించండి Serial.println (“I13C పరికరాలను ప్రారంభించడం…”); // ఉంటే bmp9600ని ప్రారంభించండి (!bmp.begin()) {Serial.println(“చెల్లుబాటు అయ్యే BMP2 సెన్సార్ను కనుగొనలేకపోయింది, తనిఖీ చేయండి (!bmp.begin()) { Serial.println(“చెల్లుబాటు అయ్యే BMP085 సెన్సార్ని కనుగొనలేకపోయాము, Serial.println(accelgyro.testConnection() ? “MPU085 కనెక్షన్ విజయవంతమైంది” : “MPU085 కనెక్షన్ విఫలమైంది”); accelgyro.setI6050CBypassEnabled(true); // hmc6050Lకి గేట్వే కోసం బైపాస్ మోడ్ని సెట్ చేయండి // .2 hmcpassation 5883ని ప్రారంభించండి 5883, 'E'); Compass.SetSamplingMode(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // యాక్టివిటీ పిన్మోడ్ (LED_PIN, OUTPUT)ని తనిఖీ చేయడం కోసం Arduino LEDని కాన్ఫిగర్ చేయండి; } శూన్య లూప్() {
Serial.print("ఉష్ణోగ్రత = "); Serial.print(bmp.readTemperature());
Serial.println(" *C"); Serial.print("ఒత్తిడి = ");
Serial.print(bmp.readPressure()); Serial.println("పా"); // 'ప్రామాణిక' బారోమెట్రిక్ ఊహిస్తూ ఎత్తును లెక్కించండి // 1013.25 మిల్లీబార్ ఒత్తిడి = 101325 Pascal Serial.print(“Altitude = “); Serial.print(bmp.readAltitude()); Serial.println("మీటర్లు"); Serial.print("సీలెవెల్ వద్ద ఒత్తిడి (లెక్కించబడింది) = ");
Serial.print(bmp.readSealevelPressure()); Serial.println("పా");
Serial.print(“నిజమైన ఎత్తు = “); Serial.print(bmp.readAltitude(101500));
Serial.println("మీటర్లు"); // పరికరం accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz) నుండి ముడి accel/gyro కొలతలను చదవండి; // డిస్ప్లే ట్యాబ్-వేరు చేయబడిన accel/gyro x/y/z విలువలు Serial.print(“a/g:\t”); సీరియల్.ప్రింట్(గొడ్డలి);
Serial.print(“\t”); సీరియల్.ప్రింట్(ay); Serial.print(“\t”); Serial.print(az);
Serial.print(“\t”); సీరియల్.ప్రింట్(జిఎక్స్); Serial.print(“\t”); సీరియల్.ప్రింట్(జీ);
Serial.print(“\t”); Serial.println(gz); ఫ్లోట్ హెడ్డింగ్ =
Compass.GetHeadingDegrees(); Serial.print(“హెడింగ్: \t”); Serial.println(శీర్షిక ); // కార్యకలాపాలను సూచించడానికి బ్లింక్ LED = !blinkState;
డిజిటల్ రైట్ (LED_PIN, బ్లింక్స్టేట్); ఆలస్యం (500); }
దీనిని టెస్ట్ చేద్దాం
మీరు కోడ్ను అప్లోడ్ చేసిన తర్వాత, సర్క్యూట్ను పరీక్షించే సమయం వచ్చింది! Arduino ప్రోగ్రామ్లోని కోడ్ సెన్సార్లను వాటి లైబ్రరీలను ఉపయోగించి ఇంటర్ఫేస్ చేస్తుంది, ఇది సెన్సార్ డేటాను చదవడానికి మరియు సెన్సార్ల యొక్క వివిధ కాన్ఫిగరేషన్లను సెట్ చేయడానికి అనుమతిస్తుంది. అప్పుడు అది సీరియల్ పోర్ట్లో సెన్సార్ డేటాను ప్రింట్ చేస్తుంది. సర్క్యూట్ ఏదో చేస్తుందని చూపించడానికి LED ఉపయోగించబడుతుంది. లూప్ ఫంక్షన్ అమలు చేయబడిన ప్రతిసారీ LED బ్లింక్ అవుతుందని దీని అర్థం, కోడ్ సెన్సార్ విలువలను చురుకుగా చదువుతుందని సూచిస్తుంది.
పని వివరణ
సర్క్యూట్ పని చేసే ప్రధాన అంశం కోడ్. కాబట్టి, కోడ్ని అర్థం చేసుకుందాం :.
- ముందుగా, ఇది సెన్సార్లతో ఇంటర్ఫేస్ చేయడానికి అనేక లైబ్రరీలను కలిగి ఉంటుంది:
- "I2Cdev.h" మరియు "MPU6050.h" MPU6050 6-యాక్సిస్ యాక్సిలెరోమీటర్/గైరోస్కోప్ సెన్సార్ కోసం లైబ్రరీలు
- “Adafruit_BMP085.h” అనేది BMP085 బారోమెట్రిక్ ప్రెజర్ సెన్సార్ కోసం ఒక లైబ్రరీ.
- “HMC5883L_Simple.h” అనేది HMC5883L మాగ్నెటోమీటర్ సెన్సార్ కోసం ఒక లైబ్రరీ.
- తర్వాత అది మూడు సెన్సార్ల కోసం గ్లోబల్ ఆబ్జెక్ట్లను సృష్టిస్తుంది: MPU6050 accelgyro, Adafruit_BMP085 bmp, మరియు HMC5883L_Simple Compass.
- తర్వాత, ఇది MPU6050 యొక్క యాక్సిలరోమీటర్ కోసం మరియు HMC5883L యొక్క మాగ్నెటోమీటర్కు వెళ్లడానికి యాక్సె, ay మరియు az వంటి సెన్సార్ విలువలను నిల్వ చేయడానికి కొన్ని వేరియబుల్లను నిర్వచిస్తుంది. మరియు ఇది LED_PIN స్థిరాంకం మరియు బ్లింక్స్టేట్ వేరియబుల్ను నిర్వచిస్తుంది.
- సెటప్() ఫంక్షన్ సీరియల్ కమ్యూనికేషన్ను ప్రారంభిస్తుంది మరియు I2C కమ్యూనికేషన్ను ప్రారంభిస్తుంది. అప్పుడు అది మూడు సెన్సార్లను ప్రారంభిస్తుంది:
- ప్రారంభం() పద్ధతిని పిలవడం ద్వారా BMP085 సెన్సార్ ప్రారంభించబడుతుంది. సెన్సార్ కనుగొనబడలేదని సూచిస్తూ ఇది తప్పుగా తిరిగి వచ్చినట్లయితే, ప్రోగ్రామ్ అనంతమైన లూప్లోకి ప్రవేశించి, సీరియల్ పోర్ట్లో దోష సందేశాన్ని ముద్రిస్తుంది.
- MPU6050 సెన్సార్ ఇనిషియలైజ్() పద్ధతికి కాల్ చేసి, సరిగ్గా పని చేస్తుందో లేదో తనిఖీ చేయడం ద్వారా ప్రారంభించబడుతుంది. మరియు ఇది MPU2 కోసం ప్రారంభించబడిన I6050C బైపాస్ను సెట్ చేసింది.
- HMC5883L సెన్సార్ SetDeclination, SetS వంటి కొన్ని ఫంక్షన్లకు కాల్ చేయడం ద్వారా ప్రారంభించబడుతుంది.ampసెన్సార్ కోసం వివిధ కాన్ఫిగరేషన్లను సెట్ చేయడానికి lingMode, SetScale మరియు SetOrientation.
- లూప్() ఫంక్షన్లో, కోడ్ మూడు సెన్సార్ల నుండి డేటాను చదువుతుంది మరియు సీరియల్ పోర్ట్పై ముద్రిస్తుంది:
- ఇది సెన్సార్ నుండి సముద్ర మట్టంలో ఉష్ణోగ్రత, పీడనం, ఎత్తు మరియు పీడనాన్ని చదువుతుంది.
- ఇది MPU6050 సెన్సార్ నుండి ముడి త్వరణం మరియు గైరోస్కోప్ కొలతలను చదువుతుంది.
- ఇది HMC5883L సెన్సార్ నుండి హెడ్డింగ్ను రీడ్ చేస్తుంది, ఇది సెన్సార్ సూచించే దిశ మరియు అయస్కాంత ఉత్తరం ఉన్న దిశ మధ్య కోణం.
- చివరగా, ఇది కార్యాచరణను సూచించడానికి LEDని బ్లింక్ చేస్తుంది మరియు సెన్సార్లను మళ్లీ చదవడానికి ముందు ఒక క్షణం వేచి ఉంటుంది.
పత్రాలు / వనరులు
![]() |
ARDUINO GY87 కంబైన్డ్ సెన్సార్ టెస్ట్ స్కెచ్ [pdf] యూజర్ మాన్యువల్ GY87 కంబైన్డ్ సెన్సార్ టెస్ట్ స్కెచ్, GY87, కంబైన్డ్ సెన్సార్ టెస్ట్ స్కెచ్, సెన్సార్ టెస్ట్ స్కెచ్, టెస్ట్ స్కెచ్ |