ARDUINO GY87 ඒකාබද්ධ සංවේදක පරීක්ෂණ කටු සටහන
හැඳින්වීම
ඔබ උද්යෝගිමත් නිෂ්පාදකයෙකු හෝ රොබෝ තාක්ෂණයට ලැදි අයෙක් නම්, ඔබට මෙම කුඩා නමුත් බලගතු මොඩියුලය හමු වී ඇත, ඔබ උද්යෝගිමත් නිෂ්පාදකයෙකු හෝ රොබෝ තාක්ෂණයට ලැදි අයෙක් නම්, ඔබට මෙම කුඩා නමුත් බලවත් මොඩියුලය BMP085 බැරෝමීටරය හමු වී ඇත. GY-87 IMU මොඩියුලය ස්වයං-සමතුලිත රොබෝ හෝ quadcopter වැනි ඔබේ ව්යාපෘතිවලට චලන සංවේදනය එක් කිරීමට හොඳ ක්රමයකි.
නමුත් ඔබ 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-අක්ෂ චලන ලුහුබැඳීමේ මොඩියුලයකි. එය quadcopters සහ අනෙකුත් මිනිසුන් රහිත ගුවන් වාහන (UAVs) වැනි රොබෝ ව්යාපෘතිවල බහුලව භාවිතා වේ, මන්ද එයට දිශානතිය සහ චලනය නිවැරදිව මැනීමට සහ නිරීක්ෂණය කළ හැකි බැවිනි. එය සංචලනය, ක්රීඩා සහ අතථ්ය යථාර්ථය වැනි වෙනත් යෙදුම්වල ද භාවිතා වේ.
දෘඪාංග සංරචක
ඔබට Arduino සමඟ GY-87 IMU MPU6050 HMC5883L BMP085 මොඩියුලය අතුරු මුහුණත් කිරීම සඳහා පහත දෘඪාංග අවශ්ය වේ.
සංරචක | වටිනාකම | Qty |
Arduino UNO | – | 1 |
MPU6050 සංවේදක මොඩියුලය | GY-87 | 1 |
පාන් පුවරුව | – | 1 |
ජම්පර් වයර් | – | 1 |
Arduino සමඟ GY-87
දැන් ඔබ 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 ස්ථාපනය කරන්නේ කෙසේද" පිළිබඳ සරල පියවරෙන් පියවර මාර්ගෝපදේශයකි.
පුස්තකාල ස්ථාපනය කිරීම
ඔබ කේතය උඩුගත කිරීම ආරම්භ කිරීමට පෙර, /වැඩසටහන් හි පහත පුස්තකාල බාගත කර ඉවත් කරන්න FileArduino පුවරුව සමඟ සංවේදකය භාවිතා කිරීම සඳහා s (x86)/Arduino/Libraries (පෙරනිමි). මෙන්න "Arduino IDE හි පුස්තකාල එකතු කරන්නේ කෙසේද" පිළිබඳ සරල පියවරෙන් පියවර මාර්ගෝපදේශයකි.
- MPU6050
- Adafruit_BMP085
- HMC5883L_Simple
කේතය
දැන් පහත කේතය පිටපත් කර එය Arduino IDE මෘදුකාංගයට උඩුගත කරන්න.
#ඇතුළත් "I2Cdev.h" #ඇතුළත් "MPU6050.h" #ඇතුළත් #ඇතුළත් MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_Simple Compass; int085_t ax, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = බොරු; void setup() {Serial.begin(16); Wire.begin(); // උපාංග Serial.println ("I13C උපාංග ආරම්භ කිරීම..."); // ආරම්භ කරන්න bmp9600 if (!bmp.begin()) { Serial.println(“වලංගු BMP2 සංවේදකයක් සොයා ගැනීමට නොහැකි විය, පරීක්ෂා කරන්න (!bmp.begin()) { Serial.println(“වලංගු BMP085 සංවේදකයක් සොයා ගැනීමට නොහැකි විය, Serial.println(accelgyro.testConnection() ? “MPU085 සම්බන්ධතාව සාර්ථකයි” : “MPU085 සම්බන්ධතාවය අසාර්ථකයි”); accelgyro.setI6050CBypassEnabled(සත්ය); // hmc6050L වෙත පිවිසුම් මාර්ගය සඳහා බයිපාස් මාදිලිය සකසන්න. 2 . 5883, 'ඊ'); Compass.SetSamplingMode(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // ක්රියාකාරකම් pinMode පරීක්ෂා කිරීම සඳහා Arduino LED වින්යාස කරන්න (LED_PIN, OUTPUT); } void loop() {
Serial.print ("උෂ්ණත්වය = "); Serial.print(bmp.readTemperature());
Serial.println(" *C"); Serial.print ("පීඩනය = ");
Serial.print(bmp.readPressure()); Serial.println(" Pa"); // 'සම්මත' බැරෝමිතික උපකල්පනය කරමින් උන්නතාංශය ගණනය කරන්න // පීඩනය 1013.25 millibar = 101325 Pascal Serial.print(“උන්නතාංශය = “); Serial.print(bmp.readAltitude()); Serial.println("මීටර්"); Serial.print ("මුද්රා මට්ටමේ පීඩනය (ගණනය කරන ලද) = ");
Serial.print(bmp.readSealevelPressure()); Serial.println(" Pa");
Serial.print ("සැබෑ උන්නතාංශය = "); Serial.print(bmp.readAltitude(101500));
Serial.println("මීටර්"); // accelgyro.getMotion6 (&ax, &ay, &az, &gx, &gy, &gz) උපාංගයෙන් raw 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( ශීර්ෂය ); // ක්රියාකාරකම් දැක්වීමට LED blink blinkState = !blinkState;
ඩිජිටල් රයිට් (LED_PIN, blinkState); ප්රමාදය (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 හි චුම්බකමානය සඳහා වන ax, ay, සහ az වැනි සංවේදක අගයන් ගබඩා කිරීමට සමහර විචල්යයන් නිර්වචනය කරයි. තවද එය LED_PIN නියතයක් සහ blinkState විචල්යයක් නිර්වචනය කරයි.
- Setup() ශ්රිතය අනුක්රමික සන්නිවේදනයක් ආරම්භ කර I2C සන්නිවේදනය ආරම්භ කරයි. ඉන්පසු එය සංවේදක තුන ආරම්භ කරයි:
- BMP085 සංවේදකය ආරම්භය () ක්රමය ඇමතීමෙන් ආරම්භ වේ. සංවේදකය සොයාගත නොහැකි බව අඟවමින් මෙය අසත්ය නම්, වැඩසටහන අසීමිත ලූපයකට ඇතුළු වී අනුක්රමික වරාය හරහා දෝෂ පණිවිඩයක් මුද්රණය කරයි.
- MPU6050 සංවේදකය ආරම්භක() ක්රමය ඇමතීමෙන් සහ එය නිවැරදිව ක්රියා කරන්නේ දැයි පරීක්ෂා කිරීමෙන් ආරම්භ වේ. එය MPU2 සඳහා I6050C බයිපාස් සක්රීය කර ඇත.
- HMC5883L සංවේදකය SetDeclination, SetS වැනි සමහර කාර්යයන් ඇමතීමෙන් ආරම්භ වේ.ampසංවේදකය සඳහා විවිධ වින්යාසයන් සැකසීම සඳහා lingMode, SetScale, සහ SetOrientation.
- ලූප්() ශ්රිතයේ, කේතය සංවේදක තුනෙන් දත්ත කියවා අනුක්රමික වරාය හරහා එය මුද්රණය කරයි:
- එය සංවේදකයෙන් මුහුදු මට්ටමේ උෂ්ණත්වය, පීඩනය, උන්නතාංශය සහ පීඩනය කියවයි.
- එය MPU6050 සංවේදකයෙන් අමු ත්වරණය සහ ගයිරොස්කෝප් මිනුම් කියවයි.
- එය HMC5883L සංවේදකයෙන් ශීර්ෂය කියවයි, එය සංවේදකය යොමු කරන දිශාව සහ චුම්බක උතුර පිහිටා ඇති දිශාව අතර කෝණය වේ.
- අවසාන වශයෙන්, එය ක්රියාකාරකම් දැක්වීමට LED එක දැල්වෙන අතර සංවේදක නැවත කියවීමට පෙර මොහොතක් රැඳී සිටියි.
ලේඛන / සම්පත්
![]() |
ARDUINO GY87 ඒකාබද්ධ සංවේදක පරීක්ෂණ කටු සටහන [pdf] පරිශීලක අත්පොත GY87 Combined Sensor Test Sketch, GY87, Combined Sensor Test Sketch, Sensor Test Sketch, Test Sketch |