ARDUINO-lgoo

Kombinovaný testovací náčrt snímače ARDUINO GY87

ARDUINO-GY87-Combined-Sensor-Test-Sketch-product

Zavedení

Pokud jste nadšeným výrobcem nebo nadšencem do robotiky, narazili jste na tento malý, ale výkonný modul Pokud jste zapálený výrobce nebo nadšenec do robotiky, narazili jste na tento malý, ale výkonný modul barometr BMP085. Modul GY-87 IMU je skvělý způsob, jak přidat snímání pohybu do vašich projektů, jako je samovyvažovací robot nebo kvadrokoptéra.
Než však začnete experimentovat s modulem GY-87 IMU, musíte vědět, jak jej propojit s vaší deskou Arduino. To je místo, kde tento blog přichází! V následujících odstavcích probereme základy modulu GY-87 IMU, jak jej nastavit a jak zapsat kód Arduino pro čtení dat senzoru. Poskytneme také několik tipů a zdrojů pro řešení běžných problémů.
Takže, pokud jste připraveni začít, pojďme se ponořit a dozvědět se o propojení modulu GY-87 IMU s Arduinem!

Co je GY-87 IMU MPU6050

Moduly inerciální měřicí jednotky (IMU), jako je GY-87, kombinují mnoho senzorů do jednoho balíčku, jako je akcelerometr/gyroskop MPU6050, magnetometr HMC5883L a senzor barometrického tlaku BMP085. GY-87 IMU MPU6050 je tedy all-in-one 9osý modul pro sledování pohybu, který kombinuje 3osý gyroskop, 3osý akcelerometr, 3osý magnetometr a digitální pohybový procesor. Hodně se používá v robotických projektech, jako jsou kvadrokoptéry a další bezpilotní vzdušná vozidla (UAV), protože dokáže přesně měřit a sledovat orientaci a pohyb. Používá se také v jiných aplikacích, jako je navigace, hraní her a virtuální realita.

Hardwarové komponenty

Pro propojení modulu GY-87 IMU MPU6050 HMC5883L BMP085 s Arduinem budete potřebovat následující hardware.

Komponenty Hodnota množství
Arduino UNO 1
MPU 6050 Modul senzoru GY-87 1
Breadboard 1
Propojovací dráty 1

GY-87 s Arduinem 

Nyní, když jste pochopili GY-87, je čas na propojení s Arduinem. Chcete-li to provést, postupujte podle Nyní, když jste pochopili GY-87, je čas na propojení s Arduinem. Chcete-li to provést, následujte

Schématický

Proveďte zapojení podle níže uvedeného schématu zapojení

GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoARDUINO-GY87-Combined-Sensor-Test-Sketch-obr 1Elektroinstalace / Připojení

Arduino Senzor MPU6050
5V VCC
GND GND
A4 SDA
A5 SCA

Instalace Arduino IDE 

Nejprve musíte nainstalovat Arduino IDE Software z jeho oficiálního webu webweb Arduino. Zde je jednoduchý průvodce krok za krokem „Jak nainstalovat Arduino IDE“.

Instalace knihoven 

Než začnete nahrávat kód, stáhněte si a rozbalte následující knihovny na /Program Files (x86)/Arduino/Libraries (výchozí), aby bylo možné použít senzor s deskou Arduino. Zde je jednoduchý návod krok za krokem „Jak přidat knihovny do Arduino IDE“.

  • MPU 6050
  • Adafruit_BMP085
  • HMC5883L_Simple

Kód 

Nyní zkopírujte následující kód a nahrajte jej do softwaru Arduino IDE.

#include „I2Cdev.h“ #include „MPU6050.h“ #include #zahrnout MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_Jednoduchý kompas; int085_t ax, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = false; void setup() { Serial.begin(16); Wire.begin(); // inicializace zařízení Serial.println(“Inicializace I13C zařízení…”); // inicializujte bmp9600 if (!bmp.begin()) { Serial.println(“Nelze najít platný senzor BMP2, zkontrolujte (!bmp.begin()) { Serial.println(“Nelze najít platný senzor BMP085, check Serial.println(accelgyro.testConnection() ? “MPU085 připojení úspěšné” : “MPU085 připojení selhalo”); accelgyro.setI6050CBypassEnabled(true); // nastavení režimu bypassu pro bránu na hmc6050L // inicializovat hmc2l, Compass.S 5883, 'E'); Compass.SetSamplingMode(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // konfigurace Arduino LED pro kontrolu aktivity pinMode(LED_PIN, OUTPUT); } void loop() {
Serial.print(“Teplota = “); Serial.print(bmp.readTemperature());
Serial.println(” *C”); Serial.print(“Tlak = “);
Serial.print(bmp.readPressure()); Serial.println(”Pa”); // Výpočet nadmořské výšky za předpokladu 'standardního' barometrického // tlaku 1013.25 milibar = 101325 Pascal Serial.print(“Altitude = “); Serial.print(bmp.readAltitude()); Serial.println(“metry”); Serial.print(“Tlak na hladině moře (vypočteno) = “);
Serial.print(bmp.readSealevelPressure()); Serial.println(”Pa”);
Serial.print(“Skutečná výška = “); Serial.print(bmp.readAltitude(101500));
Serial.println(”metry”); // načtení nezpracovaných měření accel/gyroskopu ze zařízení accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // zobrazení hodnot accel/gyroskopu x/y/z oddělených tabulátory 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); plovoucí nadpis =
Compass.GetHeadingDegrees(); Serial.print(“Nadpis: \t”); Serial.println( nadpis ); // blikání LED indikuje aktivitu blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState); zpoždění(500); }

Pojďme to otestovat 

Jakmile nahrajete kód, je čas otestovat obvod! Kód v programu Arduino se propojuje se senzory pomocí jejich knihoven, což mu umožňuje číst data senzorů a nastavovat různé konfigurace senzorů. Poté vytiskne data senzoru přes sériový port. LED dioda se používá k zobrazení toho, že obvod něco dělá. To znamená, že LED dioda bliká při každém spuštění funkce smyčky, což znamená, že kód aktivně čte hodnoty senzoru.

Pracovní vysvětlení 

Kód je hlavní věcí, na které je založeno fungování obvodu. Pojďme tedy pochopit kód:.

  • Za prvé, obsahuje několik knihoven pro propojení se senzory:
  • „I2Cdev.h“ a „MPU6050.h“ jsou knihovny pro 6050osý akcelerometr/gyroskopický senzor MPU6
  • „Adafruit_BMP085.h“ je knihovna pro snímač barometrického tlaku BMP085.
  • „HMC5883L_Simple.h“ je knihovna pro snímač magnetometru HMC5883L.
  • Poté vytvoří globální objekty pro tři senzory: MPU6050 accelgyro, Adafruit_BMP085 bmp a HMC5883L_Simple Compass.
  • Dále definuje některé proměnné pro uložení hodnot senzoru, jako je ax, ay a az pro akcelerometr MPU6050 a pro magnetometr HMC5883L. A definuje konstantu LED_PIN a proměnnou blinkState.
  • Funkce setup() spustí sériovou komunikaci a zahájí komunikaci I2C. Poté inicializuje tři senzory:
  • Senzor BMP085 se inicializuje voláním metody begin(). Pokud to vrátí hodnotu false, což znamená, že senzor nebyl nalezen, program vstoupí do nekonečné smyčky a vypíše chybovou zprávu přes sériový port.
  • Senzor MPU6050 se inicializuje voláním metody initialize() a kontrolou, zda funguje správně. A nastavilo bypass I2C povolený pro MPU6050.
  • Snímač HMC5883L se inicializuje voláním některých funkcí, jako je SetDeclination, SetSamplingMode, SetScale a SetOrientation pro nastavení různých konfigurací pro senzor.
  • Ve funkci loop() kód čte data ze tří senzorů a vytiskne je přes sériový port:
  • Ze senzoru čte teplotu, tlak, nadmořskou výšku a tlak na hladině moře.
  • Čte hrubá měření zrychlení a gyroskopu ze senzoru MPU6050.
  • Čte kurz ze senzoru HMC5883L, což je úhel mezi směrem, kterým senzor míří, a směrem, ve kterém leží magnetický sever.
  • Nakonec zabliká LED, aby signalizovala aktivitu, a chvíli počká, než znovu načte senzory.

Dokumenty / zdroje

Kombinovaný testovací náčrt snímače ARDUINO GY87 [pdfUživatelská příručka
GY87 Kombinovaný testovací náčrt senzoru, GY87, Kombinovaný testovací náčrt senzoru, Testovací náčrt senzoru, Testovací náčrt

Reference

Zanechte komentář

Vaše emailová adresa nebude zveřejněna. Povinná pole jsou označena *