ARDUINO GY87 संयुक्त सेन्सर परीक्षण स्केच
परिचय
यदि तपाईं एक उत्साही निर्माता वा रोबोटिक्स उत्साही हुनुहुन्छ भने, तपाईंले यो सानो तर शक्तिशाली मोड्युल भेट्टाउनुभएको छ यदि तपाईं एक उत्साही निर्माता वा रोबोटिक्स उत्साही हुनुहुन्छ भने, तपाईंले यो सानो तर शक्तिशाली मोड्युल BMP085 ब्यारोमिटर भेट्नुभएको छ। GY-87 IMU मोड्युल तपाईंको परियोजनाहरूमा गति सेन्सिङ थप्ने उत्कृष्ट तरिका हो, जस्तै आत्म-संतुलन रोबोट वा क्वाडकोप्टर।
तर तपाईंले GY-87 IMU मोड्युलको साथ प्रयोग सुरु गर्नु अघि, तपाईंले यसलाई आफ्नो Arduino बोर्डसँग कसरी इन्टरफेस गर्ने भनेर जान्न आवश्यक छ। यो ब्लग कहाँ आउँछ! निम्न अनुच्छेदहरूमा, हामी GY-87 IMU मोड्युलको आधारभूत कुराहरू, यसलाई कसरी सेट अप गर्ने, र सेन्सर डेटा पढ्न Arduino कोड कसरी लेख्ने भन्ने कुराहरू समावेश गर्नेछौं। हामी सामान्य समस्याहरूको समस्या निवारणका लागि केही सुझाव र स्रोतहरू पनि प्रदान गर्नेछौं।
त्यसोभए, यदि तपाईं सुरु गर्न तयार हुनुहुन्छ भने, भित्र जाऔं र Arduino सँग GY-87 IMU मोड्युल इन्टरफेस गर्ने बारे जानौं!
GY-87 IMU MPU6050 के हो
GY-87 जस्ता Inertial मापन एकाइ (IMU) मोड्युलहरूले धेरै सेन्सरहरूलाई एउटै प्याकेजमा जोड्छन्, जस्तै MPU6050 एक्सेलेरोमिटर/जाइरोस्कोप, HMC5883L म्याग्नेटोमिटर, र BMP085 ब्यारोमेट्रिक प्रेसर सेन्सर। तसर्थ, GY-87 IMU MPU6050 एक सबै-इन-वन 9-अक्ष गति ट्र्याकिङ मोड्युल हो जसले 3-अक्ष जाइरोस्कोप, 3-अक्ष एक्सेलेरोमिटर, 3-अक्ष म्याग्नेटोमिटर, र डिजिटल गति प्रोसेसरलाई संयोजन गर्दछ। यो क्वाडकोप्टर र अन्य मानवरहित हवाई सवारी (UAVs) जस्ता रोबोटिक परियोजनाहरूमा धेरै प्रयोग गरिन्छ, किनभने यसले सही रूपमा अभिमुखीकरण र गति मापन र ट्र्याक गर्न सक्छ। यो अन्य अनुप्रयोगहरूमा पनि प्रयोग गरिन्छ, जस्तै नेभिगेसन, गेमिङ, र भर्चुअल वास्तविकता।
हार्डवेयर अवयवहरू
तपाईंलाई Arduino सँग GY-87 IMU MPU6050 HMC5883L BMP085 मोड्युल इन्टरफेस गर्नको लागि निम्न हार्डवेयर चाहिन्छ।
अवयवहरू | मूल्य | मात्रा |
Arduino UNO | – | 1 |
MPU6050 सेन्सर मोड्युल | GY-87 | 1 |
ब्रेडबोर्ड | – | 1 |
जम्पर तारहरू | – | 1 |
GY-87 Arduino सँग
अब तपाईंले GY-87 बुझ्नुभएको छ, यो Arduino सँग इन्टरफेस गर्ने समय हो। त्यसो गर्नको लागि, पछ्याउनुहोस् अब तपाईंले GY-87 बुझ्नुभएको छ, यो Arduino सँग इन्टरफेस गर्ने समय हो। त्यसो गर्न, पालना गर्नुहोस्
योजनाबद्ध
तल दिइएको सर्किट रेखाचित्र अनुसार जडानहरू बनाउनुहोस्
GY-87 IMU MPU6050 HMC5883L BMP085 Arduinoतार / जडानहरू
Arduino | MPU6050 सेन्सर |
5V | VCC |
GND | GND |
A4 | SDA |
A5 | SCA |
Arduino IDE स्थापना गर्दै
पहिले, तपाईंले यसको आधिकारिकबाट Arduino IDE सफ्टवेयर स्थापना गर्न आवश्यक छ webसाइट Arduino। यहाँ "कसरी Arduino IDE स्थापना गर्ने" मा एक सरल चरण-दर-चरण गाइड छ।
पुस्तकालयहरू स्थापना गर्दै
तपाईंले कोड अपलोड गर्न सुरु गर्नु अघि, /प्रोग्राममा निम्न पुस्तकालयहरू डाउनलोड र अनजिप गर्नुहोस् Files (x86)/Arduino/Libraries (पूर्वनिर्धारित) Arduino बोर्ड संग सेन्सर प्रयोग गर्न को लागी। यहाँ "कसरी Arduino IDE मा पुस्तकालयहरू थप्ने" मा एक सरल चरण-दर-चरण गाइड छ।
- MPU6050
- Adafruit_BMP085
- HMC5883L_Simple
कोड
अब निम्न कोड प्रतिलिपि गर्नुहोस् र Arduino IDE सफ्टवेयरमा अपलोड गर्नुहोस्।
#include “I2Cdev.h” #include “MPU6050.h” #include #समावेश गर्नुहोस् MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_Simple कम्पास; int085_t ax, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = false; शून्य सेटअप() { 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(सत्य); // hmc6050L को गेटवेको लागि बाइपास मोड सेट गर्नुहोस् // hmc2L (compc5883l) प्रारम्भिक गर्नुहोस्। 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("उचाई = "); 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(ax);
Serial.print("\t"); Serial.print(ay); Serial.print("\t"); Serial.print(az);
Serial.print("\t"); Serial.print(gx); Serial.print("\t"); Serial.print(gy);
Serial.print("\t"); Serial.println(gz); फ्लोट शीर्षक =
Compass.GetHeadingDegrees(); Serial.print ("शीर्षक: \ t"); Serial.println (शीर्षक); // ब्लिंक एलईडी गतिविधि संकेत गर्न को लागी blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState); ढिलाइ (500); }
यसलाई परीक्षण गरौं
एकचोटि तपाईंले कोड अपलोड गरेपछि, यो सर्किट परीक्षण गर्ने समय हो! Arduino प्रोग्रामको कोडले सेन्सरहरूसँग तिनीहरूको पुस्तकालयहरू प्रयोग गरेर इन्टरफेस गर्दछ, जसले यसलाई सेन्सर डेटा पढ्न र सेन्सरहरूको विभिन्न कन्फिगरेसनहरू सेट गर्न अनुमति दिन्छ। त्यसपछि यसले सिरियल पोर्टमा सेन्सर डाटा प्रिन्ट गर्छ। सर्किटले केहि गरिरहेको छ भनेर देखाउन LED प्रयोग गरिन्छ। यसको मतलब प्रत्येक पटक लुप प्रकार्य चलाउँदा LED झिम्काउँछ, कोड सक्रिय रूपमा सेन्सर मानहरू पढिरहेको संकेत गर्दछ।
कार्य व्याख्या
कोड मुख्य कुरा हो जसमा सर्किटको काम आधारित छ। त्यसोभए, कोड बुझौं:।
- पहिले, यसले सेन्सरहरूसँग इन्टरफेस गर्न धेरै पुस्तकालयहरू समावेश गर्दछ:
- “I2Cdev.h” र “MPU6050.h” MPU6050 6-axis accelerometer/gyroscope सेन्सरका लागि पुस्तकालयहरू हुन्।
- "Adafruit_BMP085.h" BMP085 ब्यारोमेट्रिक प्रेसर सेन्सरको लागि पुस्तकालय हो।
- "HMC5883L_Simple.h" HMC5883L म्याग्नेटोमिटर सेन्सरको लागि पुस्तकालय हो।
- त्यसपछि यसले तीनवटा सेन्सरहरूको लागि विश्वव्यापी वस्तुहरू सिर्जना गर्दछ: MPU6050 accelgyro, Adafruit_BMP085 bmp, र HMC5883L_Simple कम्पास।
- अर्को, यसले MPU6050 को एक्सेलेरोमिटरको लागि ax, ay, र az जस्ता सेन्सर मानहरू भण्डारण गर्न र HMC5883L को म्याग्नेटोमिटरको लागि हेड गर्न केही चरहरू परिभाषित गर्दछ। र यसले LED_PIN स्थिर र ब्लिंकस्टेट चर परिभाषित गर्दछ।
- सेटअप() प्रकार्यले क्रमिक संचार सुरु गर्छ र I2C संचार सुरु गर्छ। त्यसपछि यसले तीन सेन्सरहरू प्रारम्भ गर्दछ:
- BMP085 सेन्सर begin() विधि कल गरेर प्रारम्भ गरिएको छ। यदि यो गलत फर्काउँछ भने, सेन्सर फेला पार्न सकिएन भनेर संकेत गर्दै, कार्यक्रमले अनन्त लुपमा प्रवेश गर्छ र सिरियल पोर्टमा त्रुटि सन्देश छाप्छ।
- MPU6050 सेन्सर इनिशियलाइज() विधिलाई कल गरेर र यो सही तरिकाले काम गरिरहेको छ कि छैन भनेर जाँच गरेर प्रारम्भ गरिएको छ। र यसले MPU2 को लागि सक्षम I6050C बाइपास सेट गर्यो।
- HMC5883L सेन्सरलाई SetDeclination, SetS जस्ता केही प्रकार्यहरू कल गरेर प्रारम्भ गरिएको छ।amplingMode, SetScale, र SetOrientation, सेन्सरका लागि विभिन्न कन्फिगरेसनहरू सेट गर्नका लागि।
- लुप() प्रकार्यमा, कोडले तीनवटा सेन्सरहरूबाट डाटा पढ्छ र यसलाई सिरियल पोर्टमा छाप्छ:
- यसले सेन्सरबाट समुद्री सतहमा तापक्रम, दबाब, उचाइ र दबाब पढ्छ।
- यसले MPU6050 सेन्सरबाट कच्चा प्रवेग र जाइरोस्कोप मापन पढ्छ।
- यसले HMC5883L सेन्सरबाट हेडिङ पढ्छ, जुन सेन्सरले देखाएको दिशा र चुम्बकीय उत्तर दिशाको बीचको कोण हो।
- अन्तमा, यसले गतिविधि संकेत गर्न LED लाई झिम्काउँछ र सेन्सरहरू पुन: पढ्नु अघि एक क्षण पर्खन्छ।
कागजातहरू / स्रोतहरू
![]() |
ARDUINO GY87 संयुक्त सेन्सर परीक्षण स्केच [pdf] प्रयोगकर्ता पुस्तिका GY87 संयुक्त सेन्सर परीक्षण स्केच, GY87, संयुक्त सेन्सर परीक्षण स्केच, सेन्सर परीक्षण स्केच, परीक्षण स्केच |