ARDUINO GY87 kombinált érzékelő teszt vázlat
Bevezetés
Ha lelkes gyártó vagy robotika rajongó, akkor találkozott ezzel az apró, de nagy teljesítményű modullal. Ha lelkes gyártó vagy robotika rajongó, akkor találkozott ezzel az apró, de nagy teljesítményű BMP085 barométerrel. A GY-87 IMU modul nagyszerű módja annak, hogy mozgásérzékeléssel egészítse ki projektjeit, például önkiegyensúlyozó robotot vagy quadcoptert.
Mielőtt azonban elkezdhetné kísérletezni a GY-87 IMU modullal, tudnia kell, hogyan illesztheti azt az Arduino kártyához. Itt jön be ez a blog! A következő bekezdésekben bemutatjuk a GY-87 IMU modul alapjait, a beállítását és az Arduino kód megírását az érzékelő adatok olvasásához. Néhány tippet és forrást is biztosítunk a gyakori problémák megoldásához.
Tehát, ha készen áll a kezdésre, merüljön el, és tanulja meg a GY-87 IMU modul és az Arduino összekapcsolását!
Mi az a GY-87 IMU MPU6050
Az inerciális mérőegység (IMU) modulok, mint például a GY-87, számos érzékelőt egyesítenek egyetlen csomagban, mint például az MPU6050 gyorsulásmérő/giroszkóp, a HMC5883L magnetométer és a BMP085 légnyomásérzékelő. Ezért a GY-87 IMU MPU6050 egy minden az egyben 9 tengelyes mozgáskövető modul, amely 3 tengelyes giroszkópot, 3 tengelyes gyorsulásmérőt, 3 tengelyes magnetométert és digitális mozgásprocesszort egyesít. Sokszor használják robotprojektekben, például quadcopterekben és más pilóta nélküli légi járművekben (UAV), mivel pontosan méri és követi a tájolást és a mozgást. Más alkalmazásokban is használják, például navigációban, játékokban és virtuális valóságban.
Hardver komponensek
A következő hardverre lesz szüksége a GY-87 IMU MPU6050 HMC5883L BMP085 modul Arduino-val való interfészéhez.
Alkatrészek | Érték | Menny |
Arduino UNO | – | 1 |
MPU6050 Érzékelő modul | GY-87 | 1 |
Kenyértábla | – | 1 |
Jumper vezetékek | – | 1 |
GY-87 Arduino-val
Most, hogy megértette a GY-87-et, ideje csatlakozni az Arduino-hoz. Ehhez kövesse az alábbi lépéseket. Most, hogy megértette a GY-87-et, ideje csatlakozni az Arduino-hoz. Ehhez kövesse
Vázlatos
Végezze el a csatlakozásokat az alábbi kapcsolási rajz szerint
GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoVezetékek / Csatlakozások
Arduino | MPU6050 érzékelő |
5V | VCC |
GND | GND |
A4 | SDA |
A5 | SCA |
Arduino IDE telepítése
Először is telepítenie kell az Arduino IDE szoftvert a hivatalostól webArduino webhely. Íme egy egyszerű lépésről lépésre útmutató az Arduino IDE telepítéséhez.
Könyvtárak telepítése
Mielőtt elkezdené a kód feltöltését, töltse le és csomagolja ki a következő könyvtárakat a /Program webhelyről Files (x86)/Arduino/Libraries (alapértelmezett), hogy az érzékelőt az Arduino kártyával együtt használhassa. Íme egy egyszerű, lépésről lépésre szóló útmutató a „Könyvtárak hozzáadása az Arduino IDE-hez” témakörben.
- MPU6050
- Adafruit_BMP085
- HMC5883L_Egyszerű
Kód
Most másolja ki a következő kódot, és töltse fel az Arduino IDE szoftverbe.
#include „I2Cdev.h” #include „MPU6050.h” #include #beleértve MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_Simple Compass; int085_t ax, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = false; void setup() { Serial.begin(16); Wire.begin(); // eszközök inicializálása Serial.println(“I13C eszközök inicializálása…”); // inicializálja a bmp9600-öt if (!bmp.begin()) { Serial.println("Nem található érvényes BMP2 érzékelő, ellenőrizze (!bmp.begin())) { Serial.println("Nem található érvényes BMP085 érzékelő, ellenőrizze Serial.println(accelgyro.testConnection() ? "MPU085 csatlakozás sikeres" : "MPU085 csatlakozás sikertelen"); accelgyro.setI6050CBypassEnabled(true); // bypass mód beállítása a hmc6050L átjáróhoz // inicializálja a hmc2L, CompasslinationS5883lDec 5883, "E"); Compass.SetSamplingMode(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // konfigurálja az Arduino LED-et a tevékenység ellenőrzéséhez pinMode(LED_PIN, OUTPUT); } void loop() {
Serial.print("Hőmérséklet = "); Serial.print(bmp.readTemperature());
Serial.println(” *C”); Serial.print("Nyomás = ");
Serial.print(bmp.readPressure()); Serial.println("Pa"); // A magasság kiszámítása 'standard' barometrikus // 1013.25 millibar nyomás = 101325 Pascal Serial.print("Magasság = "); Serial.print(bmp.readAltitude()); Serial.println(“méter”); Serial.print("Nyomás tengerszinten (számított) = ");
Serial.print(bmp.readSealevelPressure()); Serial.println("Pa");
Serial.print("Valós magasság = "); Serial.print(bmp.readAltitude(101500));
Serial.println(”meter”); // nyers accel/gyro mérések olvasása az eszközről accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // tabulátorral elválasztott accel/gyro x/y/z értékek megjelenítése 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); float heading =
Iránytű.GetHeadingDegrees(); Serial.print("Cím: \t"); Serial.println( címsor ); // LED villogása a tevékenység jelzésére blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState); késleltetés(500); }
Teszteljük
Miután feltöltötte a kódot, ideje tesztelni az áramkört! Az Arduino program kódja az érzékelőkkel interfészeket használ a könyvtáraik segítségével, ami lehetővé teszi az érzékelő adatok olvasását és az érzékelők különféle konfigurációinak beállítását. Ezután kiírja az érzékelő adatait a soros porton keresztül. A LED azt jelzi, hogy az áramkör csinál valamit. Ez azt jelenti, hogy a LED minden alkalommal villog, amikor a hurok funkció fut, jelezve, hogy a kód aktívan olvassa az érzékelő értékeket.
Működési magyarázat
A kód a legfontosabb dolog, amelyen az áramkör működése alapul. Tehát értsük meg a kódot:.
- Először is több könyvtárat tartalmaz az érzékelőkkel való interfészhez:
- Az „I2Cdev.h” és az „MPU6050.h” az MPU6050 6 tengelyes gyorsulásmérő/giroszkóp érzékelő könyvtárai
- Az „Adafruit_BMP085.h” a BMP085 légköri nyomásérzékelő könyvtára.
- A „HMC5883L_Simple.h” a HMC5883L magnetométer érzékelő könyvtára.
- Ezután globális objektumokat hoz létre a három érzékelőhöz: MPU6050 accelgyro, Adafruit_BMP085 bmp és HMC5883L_Simple Compass.
- Ezután meghatároz néhány változót az érzékelő értékek tárolására, például az ax, ay és az az MPU6050 gyorsulásmérőjéhez, valamint a HMC5883L magnetométeréhez. És meghatároz egy LED_PIN állandót és egy blinkState változót.
- A setup() függvény soros kommunikációt és I2C kommunikációt indít. Ezután inicializálja a három érzékelőt:
- A BMP085 érzékelő inicializálása a begin() metódus meghívásával történik. Ha ez false értéket ad vissza, jelezve, hogy az érzékelő nem található, a program egy végtelen hurokba lép, és hibaüzenetet nyomtat a soros porton keresztül.
- Az MPU6050 érzékelő inicializálása az inicialize() metódus meghívásával és annak ellenőrzésével történik, hogy megfelelően működik-e. És engedélyezte az I2C bypass-t az MPU6050 számára.
- A HMC5883L érzékelő inicializálása bizonyos funkciók, például SetDeclination, SetS meghívásával történikamplingMode, SetScale és SetOrientation, az érzékelő különböző konfigurációinak beállításához.
- A loop() függvényben a kód beolvassa a három érzékelő adatait, és kiírja a soros porton keresztül:
- Hőmérsékletet, nyomást, magasságot és tengerszinti nyomást olvas le az érzékelőről.
- A nyers gyorsulást és giroszkóp méréseket olvassa le az MPU6050 érzékelőről.
- Kiolvassa a HMC5883L érzékelő irányát, amely az érzékelő iránya és a mágneses északi irány közötti szög.
- Végül villog a LED, jelezve az aktivitást, és vár egy pillanatot, mielőtt újraolvassa az érzékelőket.
Dokumentumok / Források
![]() |
ARDUINO GY87 kombinált érzékelő teszt vázlat [pdf] Felhasználói kézikönyv GY87 kombinált érzékelő teszt vázlat, GY87, kombinált érzékelő teszt vázlat, érzékelő teszt vázlat, teszt vázlat |