ARDUINO GY87 Kêşeya Testa Sensorê ya Hevbeş

Pêşkêş
Ger hûn çêkerek dilpak an dilşewatekî robotîkê ne, we rastî vê modula piçûk û lê bi hêz hat. Modula GY-085 IMU rêgezek girîng e ku meriv hestiya tevgerê li projeyên xwe zêde bike, mîna robotek xwe-hevseng an quadcopter.
Lê berî ku hûn dest bi ceribandina modula GY-87 IMU bikin, hûn hewce ne ku zanibin ka meriv wê çawa bi panela xweya Arduino re têkildar bike. Li wê derê ev blog tê! Di paragrafên jêrîn de, em ê bingehên modula GY-87 IMU, ka meriv wê çawa saz bike, û meriv çawa koda Arduino binivîse da ku daneyên senzorê bixwîne. Em ê ji bo çareserkirina pirsgirêkên hevpar jî hin serişte û çavkaniyan peyda bikin.
Ji ber vê yekê, heke hûn amade ne ku dest pê bikin, werin em têkevin hundur û li ser pêwendiya modula GY-87 IMU bi Arduino re fêr bibin!
GY-87 IMU MPU6050 çi ye
Modulên yekîneya pîvana bêhêz (IMU) mîna GY-87 gelek senzoran di pakêtek yekane de berhev dikin, wek MPU6050 accelerometer/gyroscope, magnetometre HMC5883L, û senzora zexta barometrîkî BMP085. Ji ber vê yekê, GY-87 IMU MPU6050 modulek şopandina tevgerê ya 9-yek-yek-yek e ku gyroskopek 3-texn, leza 3-axek, magnetometreya 3-axek, û pêvajoyek tevgera dîjîtal tevdigere. Ew di projeyên robotîkî de, mîna quadcopter û balafirên din ên bêmirov (UAV) de pir tê bikar anîn, ji ber ku ew dikare rast û tevgerê bipîve û bişopîne. Di heman demê de ew di serîlêdanên din de, wekî navîgasyon, lîstik, û rastiya virtual de jî tê bikar anîn.
Components Hardware
Hûn ê ji bo Interfacing GY-87 IMU MPU6050 HMC5883L BMP085 Modula bi Arduino re hardware jêrîn hewce bikin.
| Components | Giranî | Qty |
| Arduino UNO | – | 1 |
| MPU6050 Modula Sensor | GY-87 | 1 |
| Breadboard | – | 1 |
| Jumper Wires | – | 1 |
GY-87 bi Arduino
Naha ku we GY-87 fêm kir, ew dem e ku hûn bi Arduino re têkilî daynin. Ji bo ku hûn wiya bikin, bişopînin Naha ku we GY-87 fêm kir, dem e ku hûn bi Arduino re têkilî daynin. Ji bo vê yekê, bişopînin
Hemematîk
Li gorî diyagrama çerxa ku li jêr tê dayîn girêdanan çêbikin
GY-87 IMU MPU6050 HMC5883L BMP085 Arduino
Têl / Têkilî
| Arduino | Sensor MPU6050 |
| 5V | VCC |
| GND | GND |
| A4 | SDA |
| A5 | SCA |
Sazkirina Arduino IDE
Pêşîn, hûn hewce ne ku Nermalava Arduino IDE ji fermî ya wê saz bikin webmalpera Arduino. Li vir rêbernameyek gav-bi-gav li ser "Çawa Arduino IDE saz dike" heye.
Sazkirina Pirtûkxaneyan
Berî ku hûn dest bi barkirina kodê bikin, pirtûkxaneyên jêrîn li / Bernameyê dakêşin û vekin Files (x86) / Arduino / Libraries (default) ji bo ku senzorê bi panela Arduino re bikar bînin. Li vir rêbernameyek gav-bi-gav a hêsan li ser "Çawa Di Arduino IDE de Pirtûkxane Zêde Dike" heye.
- MPU6050
- Adafruit_BMP085
- HMC5883L_Simple
Navê dizî
Naha koda jêrîn kopî bikin û wê li Nermalava Arduino IDE bar bikin.
#include "I2Cdev.h" #include "MPU6050.h" #include #linavxistin MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_Simple Compass; int085_t ax, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = derewîn; void setup() { Serial.begin(16); Wire.begin(); // cîhazên destpêkê Serial.println("Destpêkirina cîhazên I13C..."); // bmp9600 destpêk bike eger (!bmp.begin()) { Serial.println("Nika senzorek BMP2 ya derbasdar peyda bike, kontrol bike (!bmp.begin()) { Serial.println("Nikare senzorek BMP085 ya derbasdar bibîne, Serial.println(accelgyro.testConnection() ? "Girêdana MPU085 serketî" : "Girêdana MPU085 têk çû" accelgyro.setI6050CBypassEnabled(true // set bypass mode for gateway to hmc6050L // starting hmc. 2, 'E');amplingMode(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // Arduino LED mîheng bike ji bo kontrolkirina çalakiya pinMode(LED_PIN, OUTPUT); } void loop() {
Serial.print("Germahiya = "); Serial.print(bmp.readTemperature());
Serial.println(" *C"); Serial.print("Pressure = ");
Serial.print(bmp.readPressure()); Serial.println("Pa"); // Hesabkirina bilindiyê bi texmîna barometriya 'standard' // zexta 1013.25 millibar = 101325 Pascal Serial.print("Altitude = "); Serial.print(bmp.readAltitude()); Serial.println("metre"); Serial.print("Pressure at sealevel (hesabkirî) = ");
Serial.print(bmp.readSealevelPressure()); Serial.println("Pa");
Serial.print("Altitude rast = "); Serial.print(bmp.readAltitude(101500));
Serial.println("metre"); // ji cîhaza accelgyro.getMotion6 pîvanên raw accel/gyro bixwîne(&ax, &ay, &az, &gx, &gy, &gz); // nîşan bide tab-veqetandî accel/gyro x/y/z nirxên 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); sernavê float =
Compass.GetHeadingDegrees(); Serial.print("Heading: \t"); Serial.println(heading); // LED dibiriqe ku çalakiyê nîşan dide blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState); dereng (500); }
Werin em Wê Biceribînin
Carekê hûn kodê barkirin, wextê ceribandina çerxê ye! Koda di bernameya Arduino de bi senzoran re ku pirtûkxaneyên wan bikar tînin re têkildar e, ku dihêle ew daneyên senzorê bixwîne û mîhengên cihêreng ên sensoran saz bike. Dûv re ew daneyên senzorê li ser porta serial çap dike. LED tê bikar anîn da ku nîşan bide ku dor tiştek dike. Ev tê vê wateyê ku LED her gava ku fonksiyona lûkê tê xebitandin diçike, û destnîşan dike ku kod bi çalak nirxên sensorê dixwîne.
Ravekirina Xebatê
Kod tiştê sereke ye ku xebata çerxê li ser bingeha wê ye. Ji ber vê yekê, em kodê fêm bikin:.
- Pêşîn, ew çend pirtûkxane vedihewîne ku bi senzoran re têkilî daynin:
- "I2Cdev.h" û "MPU6050.h" pirtûkxane ji bo MPU6050 6-axis accelerometer/ sensor gyroscope
- "Adafruit_BMP085.h" pirtûkxaneyek ji bo sensora zexta barometrîkî BMP085 e.
- "HMC5883L_Simple.h" pirtûkxaneyek ji bo sensora magnetometreya HMC5883L ye.
- Dûv re ew ji bo sê senzoran tiştên gerdûnî diafirîne: MPU6050 accelgyro, Adafruit_BMP085 bmp, û HMC5883L_Simple Compass.
- Dûv re, ew hin guherbaran destnîşan dike da ku nirxên senzorê hilîne, wek ax, ay, û az ji bo leza bilez a MPU6050 û serî li magnetometreya HMC5883L. Û ew domdarek LED_PIN û guhêrbarek blinkState diyar dike.
- Fonksiyona sazkirinê () pêwendiyek serial dest pê dike û pêwendiya I2C dest pê dike. Dûv re ew sê senzoran dest pê dike:
- Sensor BMP085 bi gazîkirina rêbaza destpêkê () ve tê destpêkirin. Ger ev xelet vegere, nîşan dide ku senzor nehate dîtin, bername têkeve pêlekek bêdawî û peyamek xeletiyê li ser porta serial çap dike.
- Sensorê MPU6050 bi gazîkirina rêbaza destpêkê() ve tê destpêkirin û kontrol dike ka ew rast dixebite. Û wê ji bo MPU2 dorpêça I6050C destnîşan kir.
- Sensor HMC5883L bi bangkirina hin fonksiyonan, wek SetDeclination, SetS, dest pê dike.amplingMode, SetScale, û SetOrientation, ji bo danîna mîhengên cihêreng ên ji bo senzorê.
- Di fonksiyona loop() de, kod daneya ji sê senzoran dixwîne û li ser porta serial çap dike:
- Ew germahî, zext, bilindahî û zexta li ser asta deryayê ji sensorê dixwîne.
- Ew ji senzora MPU6050 pîvanên leza xav û gyroscope dixwîne.
- Ew sernavê ji senzora HMC5883L dixwîne, ku goşeya di navbera arasta ku senzor tê de destnîşan dike û arasteka ku bakurê magnetîkî tê de ye, dixwîne.
- Di dawiyê de, ew LED-ê dişewitîne da ku çalakiyê destnîşan bike û berî xwendina senzoran demek li bendê dimîne.
Belge / Çavkanî
![]() |
ARDUINO GY87 Kêşeya Testa Sensorê ya Hevbeş [pdf] Rêbernameya Bikarhêner Skeça Testa Sensorê ya Hevbeş GY87, GY87, Kêşeya Testa Sensorê ya Hevbeş, Skeça Testa Sensorê, Skeça Testê |





