ARDUINO-lgoo

ARDUINO GY87 kombineret sensor testskitse

ARDUINO-GY87-Kombineret-Sensor-Test-Sketch-produkt

Indledning

Hvis du er en ivrig maker eller en robotik-entusiast, er du stødt på dette lille, men kraftfulde modul. Hvis du er en ivrig maker eller en robot-entusiast, er du stødt på dette lille, men kraftfulde modul BMP085-barometer. GY-87 IMU-modulet er en fantastisk måde at tilføje bevægelsesregistrering til dine projekter, som en selvbalancerende robot eller en quadcopter.
Men før du kan begynde at eksperimentere med GY-87 IMU-modulet, skal du vide, hvordan du forbinder det med dit Arduino-kort. Det er her denne blog kommer ind! I de følgende afsnit dækker vi det grundlæggende i GY-87 IMU-modulet, hvordan man sætter det op, og hvordan man skriver Arduino-koden for at læse sensordataene. Vi giver også nogle tips og ressourcer til fejlfinding af almindelige problemer.
Så hvis du er klar til at starte, så lad os dykke ned og lære om at forbinde GY-87 IMU-modulet med Arduino!

Hvad er GY-87 IMU MPU6050

Inertial measurement unit (IMU) moduler som GY-87 kombinerer mange sensorer i en enkelt pakke, såsom MPU6050 accelerometer/gyroskop, HMC5883L magnetometer og BMP085 barometrisk tryksensor. Derfor er GY-87 IMU MPU6050 et alt-i-et 9-akset bevægelsessporingsmodul, der kombinerer et 3-akset gyroskop, 3-akset accelerometer, 3-akset magnetometer og en digital bevægelsesprocessor. Det bruges meget i robotprojekter, som quadcoptere og andre ubemandede luftfartøjer (UAV'er), fordi det nøjagtigt kan måle og spore orientering og bevægelse. Det bruges også i andre applikationer, såsom navigation, spil og virtual reality.

Hardwarekomponenter

Du skal bruge følgende hardware til at forbinde GY-87 IMU MPU6050 HMC5883L BMP085-modul med Arduino.

Komponenter Værdi Antal
Arduino UNO 1
MPU6050 Sensormodul GY-87 1
Brødbræt 1
Jumper ledninger 1

GY-87 med Arduino 

Nu hvor du har forstået GY-87, er det tid til at interface med Arduino. For at gøre det, følg Nu hvor du har forstået GY-87, er det tid til at interface med Arduino. For at gøre det, følg

skematisk

Foretag tilslutninger i henhold til kredsløbsdiagrammet nedenfor

GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoARDUINO-GY87-Kombineret-Sensor-Test-Sketch-fig 1Ledninger / forbindelser

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

Installation af Arduino IDE 

Først skal du installere Arduino IDE Software fra dens officielle webwebsted Arduino. Her er en simpel trin-for-trin guide til "Sådan installeres Arduino IDE."

Installation af biblioteker 

Inden du begynder at uploade kode, skal du downloade og udpakke følgende biblioteker på /Program Files (x86)/Arduino/Libraries (standard) for at bruge sensoren med Arduino-kortet. Her er en enkel trin-for-trin guide til "Sådan tilføjer du biblioteker i Arduino IDE."

  • MPU6050
  • Adafruit_BMP085
  • HMC5883L_Simpel

Kode 

Kopier nu følgende kode og upload den til Arduino IDE Software.

#include "I2Cdev.h" #include "MPU6050.h" #include #omfatte MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_Simpelt kompas; int085_t ax, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = falsk; void setup() { Serial.begin(16); Wire.begin(); // initialize devices Serial.println(“Initialiserer I13C-enheder...”); // initialiser bmp9600 if (!bmp.begin()) { Serial.println(“Kunne ikke finde en gyldig BMP2-sensor, tjek (!bmp.begin()) { Serial.println(“Kunne ikke finde en gyldig BMP085-sensor, check Serial.println(accelgyro.testConnection() ? "MPU085-forbindelse lykkedes" : "MPU085-forbindelse mislykkedes" 6050, 'E'); Compass.SetSamplingMode(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // konfigurer Arduino LED til kontrol af aktivitet pinMode(LED_PIN, OUTPUT); } void loop() {
Serial.print(“Temperatur = “); Serial.print(bmp.readTemperature());
Serial.println(" *C"); Serial.print(“Pressure = “);
Serial.print(bmp.readPressure()); Serial.println("Pa"); // Beregn højde under antagelse af 'standard' barometrisk // tryk på 1013.25 millibar = 101325 Pascal Serial.print(“Altitude = “); Serial.print(bmp.readAltitude()); Serial.println(“meters”); Serial.print(“Tryk ved tætningsniveau (beregnet) = “);
Serial.print(bmp.readSealevelPressure()); Serial.println("Pa");
Serial.print(“Reel højde = “); Serial.print(bmp.readAltitude(101500));
Serial.println("meter"); // læs rå accel/gyro-målinger fra enheden accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // vis tabulator-separerede accel/gyro x/y/z værdier 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); flydende overskrift =
Compass.GetHeadingDegrees(); Serial.print(“Overskrift: \t”); Serial.println( overskrift ); // blink LED for at indikere aktivitet blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState); forsinkelse(500); }

Lad os teste det 

Når du har uploadet koden, er det tid til at teste kredsløbet! Koden i Arduino-programmet har grænseflader med sensorerne ved hjælp af deres biblioteker, hvilket gør det muligt at læse sensordata og indstille forskellige konfigurationer af sensorerne. Derefter udskriver den sensordataene over den serielle port. LED'en bruges til at vise, at kredsløbet gør noget. Dette betyder, at LED'en blinker, hver gang sløjfefunktionen køres, hvilket indikerer, at koden aktivt læser sensorværdier.

Arbejdsforklaring 

Koden er den vigtigste ting, som kredsløbets arbejde er baseret på. Så lad os forstå koden:.

  • For det første inkluderer det adskillige biblioteker til grænseflader med sensorerne:
  • "I2Cdev.h" og "MPU6050.h" er biblioteker for MPU6050 6-akset accelerometer/gyroskopsensor
  • "Adafruit_BMP085.h" er et bibliotek for BMP085 barometrisk tryksensor.
  • "HMC5883L_Simple.h" er et bibliotek for HMC5883L magnetometersensoren.
  • Derefter skaber den globale objekter til de tre sensorer: MPU6050 accelgyro, Adafruit_BMP085 bmp og HMC5883L_Simple Compass.
  • Dernæst definerer den nogle variabler til at gemme sensorværdier, såsom axe, ay og az for accelerometeret på MPU6050 og til at lede mod magnetometeret på HMC5883L. Og den definerer en LED_PIN konstant og en blinkState variabel.
  • Setup()-funktionen starter en seriel kommunikation og begynder I2C-kommunikation. Derefter initialiserer den de tre sensorer:
  • BMP085-sensoren initialiseres ved at kalde start()-metoden. Hvis dette returnerer falsk, hvilket indikerer, at sensoren ikke kunne findes, går programmet ind i en uendelig løkke og udskriver en fejlmeddelelse over den serielle port.
  • MPU6050-sensoren initialiseres ved at kalde initialize()-metoden og kontrollere, om den fungerer korrekt. Og det satte I2C bypass aktiveret for MPU6050.
  • HMC5883L-sensoren initialiseres ved at kalde nogle funktioner, såsom SetDeclination, SetSamplingMode, SetScale og SetOrientation, til indstilling af forskellige konfigurationer for sensoren.
  • I loop()-funktionen læser koden data fra de tre sensorer og udskriver dem over den serielle port:
  • Den aflæser temperatur, tryk, højde og tryk ved havoverfladen fra sensoren.
  • Den læser rå acceleration og gyroskopmålinger fra MPU6050-sensoren.
  • Den aflæser overskriften fra HMC5883L-sensoren, som er vinklen mellem den retning, som sensoren peger i, og den retning, som magnetisk nord ligger.
  • Til sidst blinker LED'en for at indikere aktivitet og venter et øjeblik, før den genlæser sensorerne.

Dokumenter/ressourcer

ARDUINO GY87 kombineret sensor testskitse [pdfBrugermanual
GY87 Kombineret Sensor Test Skitse, GY87, Kombineret Sensor Test Skitse, Sensor Test Skitse, Test Skitse

Referencer

Efterlad en kommentar

Din e-mailadresse vil ikke blive offentliggjort. Påkrævede felter er markeret *