ARDUINO-lgoo

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

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

Úvod

Ak ste zanieteným výrobcom alebo nadšencom robotiky, stretli ste sa s týmto malým, no výkonným modulom Ak ste zanieteným výrobcom alebo nadšencom robotiky, stretli ste sa s týmto malým, ale výkonným modulom barometra BMP085. Modul GY-87 IMU je skvelý spôsob, ako pridať snímanie pohybu do vašich projektov, ako je napríklad samovyvažovací robot alebo kvadrokoptéra.
Ale skôr, ako začnete experimentovať s modulom GY-87 IMU, musíte vedieť, ako ho prepojiť s doskou Arduino. Tu prichádza tento blog! V nasledujúcich odsekoch sa budeme zaoberať základmi modulu GY-87 IMU, ako ho nastaviť a ako zapísať kód Arduino na čítanie údajov snímača. Poskytneme tiež niekoľko tipov a zdrojov na riešenie bežných problémov.
Takže, ak ste pripravení začať, poďme sa ponoriť a dozvedieť sa o prepojení modulu GY-87 IMU s Arduinom!

Čo je GY-87 IMU MPU6050

Moduly inerciálnej meracej jednotky (IMU), ako je GY-87, kombinujú mnoho senzorov do jedného balíka, ako napríklad akcelerometer/gyroskop MPU6050, magnetometer HMC5883L a senzor barometrického tlaku BMP085. GY-87 IMU MPU6050 je teda all-in-one 9-osový modul sledovania pohybu, ktorý kombinuje 3-osový gyroskop, 3-osový akcelerometer, 3-osový magnetometer a digitálny pohybový procesor. Veľa sa používa v robotických projektoch, ako sú kvadrokoptéry a iné bezpilotné vzdušné prostriedky (UAV), pretože dokáže presne merať a sledovať orientáciu a pohyb. Používa sa aj v iných aplikáciách, ako je navigácia, hranie hier a virtuálna realita.

Hardvérové ​​komponenty

Na prepojenie modulu GY-87 IMU MPU6050 HMC5883L BMP085 s Arduino budete potrebovať nasledujúci hardvér.

Komponenty Hodnota Množ
Arduino UNO 1
MPU 6050 XNUMX Modul snímača GY-87 1
Breadboard 1
Štartovacie drôty 1

GY-87 s Arduinom 

Teraz, keď ste pochopili GY-87, je čas na prepojenie s Arduinom. Ak to chcete urobiť, postupujte podľa Teraz, keď ste pochopili GY-87, je čas na prepojenie s Arduinom. Ak to chcete urobiť, nasledujte

Schematický

Vykonajte pripojenia podľa schémy zapojenia uvedenej nižšie

GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoARDUINO-GY87-Combined-Sensor-Test-Sketch-obr 1Zapojenie / Pripojenia

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

Inštalácia Arduino IDE 

Najprv musíte nainštalovať Arduino IDE Software z jeho oficiálneho webstránka Arduino. Tu je jednoduchý návod krok za krokom „Ako nainštalovať Arduino IDE“.

Inštalácia knižníc 

Predtým, ako začnete nahrávať kód, stiahnite a rozbaľte nasledujúce knižnice na /Program Files (x86)/Arduino/Libraries (predvolené), aby ste mohli použiť senzor s doskou Arduino. Tu je jednoduchý návod krok za krokom „Ako pridať knižnice do Arduino IDE“.

  • MPU 6050 XNUMX
  • Adafruit_BMP085
  • HMC5883L_Simple

kód 

Teraz skopírujte nasledujúci kód a nahrajte ho do softvéru Arduino IDE.

#include “I2Cdev.h” #include “MPU6050.h” #include #include MPU085 akcelerátor; 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(); // inicializácia zariadení Serial.println(“Inicializácia I13C zariadení…”); // inicializujte bmp9600 if (!bmp.begin()) { Serial.println(“Nepodarilo sa nájsť platný snímač BMP2, skontrolujte (!bmp.begin()) { Serial.println(“Nepodarilo sa nájsť platný snímač BMP085, check Serial.println(accelgyro.testConnection() ? “Pripojenie MPU085 úspešné” : “Pripojenie MPU085 zlyhalo”); accelgyro.setI6050CBypassEnabled(true); // nastavenie režimu premostenia brány na hmc6050L // inicializácia hmc2l, Compass.S 5883, 'E'); Compass.SetSamplingMode(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // nakonfigurujte Arduino LED na 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 nadmorskej výšky za predpokladu 'štandardného' barometrického // tlaku 1013.25 milibar = 101325 Pascal Serial.print(“Altitude = “); Serial.print(bmp.readAltitude()); Serial.println(“metre”); Serial.print(“Tlak na hladine mora (vypočítaný) = “);
Serial.print(bmp.readSealevelPressure()); Serial.println(”Pa”);
Serial.print(“Skutočná nadmorská výška = “); Serial.print(bmp.readAltitude(101500));
Serial.println(”metre”); // načítanie nespracovaných meraní accel/gyroskopu zo zariadenia accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // zobrazenie hodnôt zrýchlenia/gyroskopu x/y/z oddelených tabuľkami 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); plávajúci nadpis =
Compass.GetHeadingDegrees(); Serial.print(“Nadpis: \t”); Serial.println( nadpis ); // blikaním LED indikuje aktivitu blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState); oneskorenie(500); }

Poďme to otestovať 

Po nahraní kódu je čas otestovať obvod! Kód v programe Arduino je prepojený so senzormi pomocou ich knižníc, čo mu umožňuje čítať dáta senzorov a nastavovať rôzne konfigurácie senzorov. Potom vytlačí dáta snímača cez sériový port. LED sa používa na zobrazenie toho, že obvod niečo robí. To znamená, že LED dióda bliká pri každom spustení funkcie slučky, čo znamená, že kód aktívne číta hodnoty snímača.

Pracovné vysvetlenie 

Kód je hlavná vec, na ktorej je založená práca obvodu. Poďme teda pochopiť kód:.

  • Po prvé, obsahuje niekoľko knižníc na prepojenie so senzormi:
  • „I2Cdev.h“ a „MPU6050.h“ sú knižnice pre 6050-osový akcelerometer/gyroskopický senzor MPU6
  • „Adafruit_BMP085.h“ je knižnica pre snímač barometrického tlaku BMP085.
  • „HMC5883L_Simple.h“ je knižnica pre snímač magnetometra HMC5883L.
  • Potom vytvorí globálne objekty pre tri senzory: MPU6050 accelgyro, Adafruit_BMP085 bmp a HMC5883L_Simple Compass.
  • Ďalej definuje niektoré premenné na ukladanie hodnôt snímača, ako napríklad ax, ay a az pre akcelerometer MPU6050 a smerovanie pre magnetometer HMC5883L. A definuje konštantu LED_PIN a premennú blinkState.
  • Funkcia setup() spustí sériovú komunikáciu a začne komunikáciu I2C. Potom inicializuje tri senzory:
  • Senzor BMP085 sa inicializuje volaním metódy begin(). Ak to vráti hodnotu false, čo znamená, že snímač sa nepodarilo nájsť, program vstúpi do nekonečnej slučky a vypíše chybové hlásenie cez sériový port.
  • Senzor MPU6050 sa inicializuje zavolaním metódy initialize() a skontrolovaním, či funguje správne. A nastavilo bypass I2C povolený pre MPU6050.
  • Senzor HMC5883L sa inicializuje volaním niektorých funkcií, ako napríklad SetDeclination, SetSamplingMode, SetScale a SetOrientation na nastavenie rôznych konfigurácií pre senzor.
  • Vo funkcii loop() kód načíta dáta z troch senzorov a vytlačí ich cez sériový port:
  • Zo snímača sníma teplotu, tlak, nadmorskú výšku a tlak na hladine mora.
  • Číta surové zrýchlenie a merania gyroskopu zo snímača MPU6050.
  • Načítava smer zo snímača HMC5883L, čo je uhol medzi smerom, ktorým snímač smeruje, a smerom, v ktorom leží magnetický sever.
  • Nakoniec zabliká LED, čím indikuje aktivitu, a chvíľu počká, kým znovu načíta senzory.

Dokumenty / zdroje

Kombinovaný testovací náčrt snímača ARDUINO GY87 [pdfPoužívateľská príručka
Kombinovaný testovací náčrt GY87, GY87, kombinovaný testovací náčrt senzora, testovací náčrt senzora, testovací náčrt

Referencie

Zanechajte komentár

Vaša emailová adresa nebude zverejnená. Povinné polia sú označené *