ARDUINO-lgoo

ARDUINO GY87 Gecombineerde sensortestschets

ARDUINO-GY87-gecombineerde-sensor-test-schets-product

Invoering

Als je een fervent maker of een robotica-liefhebber bent, ben je deze kleine maar krachtige module tegengekomen. Als je een fervent maker of een robotica-liefhebber bent, ben je deze kleine maar krachtige module BMP085-barometer tegengekomen. De GY-87 IMU-module is een geweldige manier om bewegingsdetectie aan uw projecten toe te voegen, zoals een zelfbalancerende robot of een quadcopter.
Maar voordat u kunt beginnen met experimenteren met de GY-87 IMU-module, moet u weten hoe u deze moet koppelen aan uw Arduino-bord. Dat is waar deze blog om de hoek komt kijken! In de volgende paragrafen bespreken we de basisprincipes van de GY-87 IMU-module, hoe u deze instelt en hoe u de Arduino-code schrijft om de sensorgegevens te lezen. We bieden ook enkele tips en bronnen voor het oplossen van veelvoorkomende problemen.
Dus, als je klaar bent om te beginnen, laten we er dan induiken en meer te weten komen over het koppelen van de GY-87 IMU-module met Arduino!

Wat is GY-87 IMU MPU6050

Inertiële meeteenheid (IMU) modules zoals de GY-87 combineren vele sensoren in één pakket, zoals de MPU6050 accelerometer/gyroscoop, de HMC5883L magnetometer en de BMP085 barometrische druksensor. Daarom is de GY-87 IMU MPU6050 een alles-in-één 9-assige bewegingsvolgmodule die een 3-assige gyroscoop, 3-assige accelerometer, 3-assige magnetometer en een digitale bewegingsprocessor combineert. Het wordt veel gebruikt in robotprojecten, zoals quadcopters en andere onbemande luchtvaartuigen (UAV's), omdat het de oriëntatie en beweging nauwkeurig kan meten en volgen. Het wordt ook gebruikt in andere toepassingen, zoals navigatie, gaming en virtual reality.

Hardwarecomponenten

U hebt de volgende hardware nodig voor de Interfacing GY-87 IMU MPU6050 HMC5883L BMP085-module met Arduino.

Componenten Waarde Hoeveelheid
Arduino UNO 1
MPU6050 Sensor Module GY-87 1
Broodplank 1
Jumperdraden 1

GY-87 met Arduino 

Nu je de GY-87 hebt begrepen, is het tijd om te communiceren met de Arduino. Om dat te doen, volgt u Nu u de GY-87 hebt begrepen, is het tijd om te communiceren met de Arduino. Om dat te doen, volg

Schematisch

Maak de aansluitingen volgens het onderstaande schakelschema

GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoARDUINO-GY87-gecombineerde sensortest-schets-fig 1Bedrading / aansluitingen

Arduino MPU6050-sensor
5V VCC
GND GND
A4 Zevende-dags Adventisten
A5 SCA

Arduino-IDE installeren 

Eerst moet u Arduino IDE Software installeren vanaf de officiële versie webwebsite Arduino. Hier is een eenvoudige stap-voor-stap handleiding over “Hoe Arduino IDE te installeren.”

Bibliotheken installeren 

Voordat u begint met het uploaden van code, downloadt en pakt u de volgende bibliotheken uit op /Program Files (x86)/Arduino/Libraries (standaard) om de sensor met het Arduino-bord te gebruiken. Hier is een eenvoudige stap-voor-stap handleiding over “Hoe u bibliotheken kunt toevoegen in Arduino IDE.”

  • MPU6050
  • Adafruit_BMP085
  • HMC5883L_Eenvoudig

Code 

Kopieer nu de volgende code en upload deze naar Arduino IDE Software.

#include “I2Cdev.h” #include “MPU6050.h” #include #erbij betrekken MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_Eenvoudig kompas; int085_t bijl, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = false; ongeldige setup() {Serial.begin(16); Draad.begin(); // apparaten initialiseren Serial.println(“I13C-apparaten initialiseren...”); // initialiseer bmp9600 if (!bmp.begin()) { Serial.println(“Kon geen geldige BMP2-sensor vinden, controleer (!bmp.begin()) { Serial.println(“Kon geen geldige BMP085-sensor vinden, check Serial.println(accelgyro.testConnection() ? “MPU085-verbinding succesvol”: “MPU085-verbinding mislukt”); 6050, 'E'); KompassetsamplingModus(COMPASS_SINGLE);
Kompas.SetScale(COMPASS_SCALE_130);
Kompas.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // configureer Arduino LED voor het controleren van activiteit pinMode (LED_PIN, OUTPUT); } lege lus() {
Serial.print(“Temperatuur = “); Serieel.print(bmp.readTemperature());
Serieel.println(”*C”); Serial.print(“Druk = “);
Serieel.print(bmp.readPressure()); Serieel.println(”Pa”); // Bereken de hoogte uitgaande van 'standaard' barometrische // druk van 1013.25 millibar = 101325 Pascal Serial.print(“Altitude = “); Serieel.print(bmp.readAltitude()); Serial.println(“meters”); Serial.print(“Druk op zeeniveau (berekend) = “);
Serieel.print(bmp.readSealevelPressure()); Serieel.println(”Pa”);
Serial.print(“Echte hoogte = “); Serieel.print(bmp.readAltitude(101500));
Serial.println(”meter”); // lees ruwe accel/gyro-metingen van apparaat accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // door tabs gescheiden accel/gyro x/y/z-waarden weergeven Serial.print ("a/g:\t"); Serieel.print(ax);
Serieel.print(“\t”); Serieel.print(ay); Serieel.print(“\t”); Serieel.print(az);
Serieel.print(“\t”); Serieel.print(gx); Serieel.print(“\t”); Serieel.print(gy);
Serieel.print(“\t”); Serieel.println(gz); zwevende kop =
Kompas.GetHeadingDegrees(); Serial.print(“Koop: \t”); Serial.println(kop); // knipperende LED om activiteit aan te geven blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState); vertraging(500); }

Laten we het testen 

Zodra je de code hebt geüpload, is het tijd om het circuit te testen! De code in het Arduino-programma communiceert met de sensoren met behulp van hun bibliotheken, waardoor sensorgegevens kunnen worden gelezen en verschillende configuraties van de sensoren kunnen worden ingesteld. Vervolgens worden de sensorgegevens via de seriële poort afgedrukt. De LED wordt gebruikt om aan te geven dat het circuit iets doet. Dit betekent dat de LED elke keer knippert als de lusfunctie wordt uitgevoerd, wat aangeeft dat de code actief sensorwaarden leest.

Werkende uitleg 

De code is het belangrijkste waarop de werking van het circuit is gebaseerd. Laten we dus de code begrijpen:.

  • Ten eerste bevat het verschillende bibliotheken die kunnen communiceren met de sensoren:
  • “I2Cdev.h” en “MPU6050.h” zijn bibliotheken voor de MPU6050 6-assige accelerometer/gyroscoopsensor
  • “Adafruit_BMP085.h” is een bibliotheek voor de BMP085 barometrische druksensor.
  • “HMC5883L_Simple.h” is een bibliotheek voor de HMC5883L-magnetometersensor.
  • Vervolgens worden globale objecten gemaakt voor de drie sensoren: MPU6050 accelgyro, Adafruit_BMP085 bmp en HMC5883L_Simple Compass.
  • Vervolgens definieert het enkele variabelen om sensorwaarden op te slaan, zoals ax, ay en az voor de versnellingsmeter van MPU6050 en om naar de magnetometer van HMC5883L te gaan. En het definieert een LED_PIN-constante en een blinkState-variabele.
  • De functie setup() start een seriële communicatie en begint I2C-communicatie. Vervolgens initialiseert het de drie sensoren:
  • De BMP085-sensor wordt geïnitialiseerd door de methode begin() aan te roepen. Als dit false retourneert, wat aangeeft dat de sensor niet kon worden gevonden, komt het programma in een oneindige lus terecht en drukt een foutmelding af via de seriële poort.
  • De MPU6050-sensor wordt geïnitialiseerd door de methode initialize() aan te roepen en te controleren of deze correct werkt. En het heeft de I2C-bypass ingeschakeld voor MPU6050.
  • De HMC5883L-sensor wordt geïnitialiseerd door enkele functies op te roepen, zoals SetDeclination, SetSamplingMode, SetScale en SetOrientation, voor het instellen van verschillende configuraties voor de sensor.
  • In de functie loop() leest de code gegevens van de drie sensoren en drukt deze af via de seriële poort:
  • Het leest temperatuur, druk, hoogte en druk op zeeniveau van de sensor.
  • Het leest ruwe acceleratie- en gyroscoopmetingen van de MPU6050-sensor.
  • Het leest de koers van de HMC5883L-sensor, wat de hoek is tussen de richting waarin de sensor wijst en de richting waarin het magnetische noorden ligt.
  • Ten slotte knippert de LED om activiteit aan te geven en wacht een moment voordat de sensoren opnieuw worden uitgelezen.

Documenten / Bronnen

ARDUINO GY87 Gecombineerde sensortestschets [pdf] Gebruikershandleiding
GY87 Gecombineerde sensortestschets, GY87, Gecombineerde sensortestschets, Sensortestschets, Testschets

Referenties

Laat een reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd *