ARDUINO-lgoo

ARDUINO GY87 Kombinearre Sensor Test Sketch

ARDUINO-GY87-Kombinearre-Sensor-Test-Sketch-produkt

Ynlieding

As jo ​​​​in entûsjast makker binne as in robotika-entûsjast, binne jo dizze lytse, mar krêftige module tsjinkaam. De GY-085 IMU-module is in geweldige manier om bewegingssensing ta te foegjen oan jo projekten, lykas in selsbalansearjende robot as in quadcopter.
Mar foardat jo kinne begjinne te eksperimintearjen mei de GY-87 IMU-module, moatte jo witte hoe't jo it kinne ynterface meitsje mei jo Arduino-boerd. Dêr komt dit blog yn! Yn 'e folgjende paragrafen sille wy de basis fan' e GY-87 IMU-module dekke, hoe't jo it ynstelle, en hoe't jo de Arduino-koade skriuwe om de sensorgegevens te lêzen. Wy sille ek wat tips en boarnen leverje foar it oplossen fan mienskiplike problemen.
Dus, as jo ree binne om te begjinnen, lit ús dûke yn en learje oer ynterfacing fan 'e GY-87 IMU-module mei Arduino!

Wat is GY-87 IMU MPU6050

Inertial measurement unit (IMU) modules lykas de GY-87 kombinearje in protte sensoren yn ien pakket, lykas de MPU6050 accelerometer / gyroscope, de HMC5883L magnetometer, en de BMP085 barometryske druksensor. Hjirtroch is de GY-87 IMU MPU6050 in alles-yn-ien 9-assige bewegingsfolchmodule dy't in 3-assige gyroscoop, 3-assige accelerometer, 3-assige magnetometer, en in digitale bewegingsprosessor kombineart. It wurdt in protte brûkt yn robotyske projekten, lykas quadcopters en oare ûnbemanne loftauto's (UAV's), om't it oriïntaasje en beweging sekuer mjitten en folgje kin. It wurdt ek brûkt yn oare applikaasjes, lykas navigaasje, gaming en firtuele realiteit.

Hardware komponinten

Jo sille easkje de folgjende hardware foar Interfacing GY-87 IMU MPU6050 HMC5883L BMP085 Module mei Arduino.

Components Wearde Oantal
Arduino UNO 1
MPU6050 Sensor Module GY-87 1
Breadboard 1
Jumper Wires 1

GY-87 mei Arduino 

No't jo de GY-87 hawwe begrepen, is it tiid om te ynterface mei de Arduino. Om dat te dwaan, folgje No't jo de GY-87 hawwe begrepen, is it tiid om te ynterface mei de Arduino. Om dat te dwaan, folgje

Skematysk

Meitsje ferbinings neffens it circuit diagram jûn hjirûnder

GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoARDUINO-GY87-Combined-Sensor-Test-Sketch-fig 1Wiring / Ferbinings

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

Arduino IDE ynstallearje 

Earst moatte jo Arduino IDE Software ynstallearje fan har offisjele website Arduino. Hjir is in ienfâldige stap-foar-stap hantlieding oer "Hoe kinne jo Arduino IDE ynstallearje."

Ynstallaasje fan biblioteken 

Foardat jo begjinne mei it opladen fan koade, download en unzip de folgjende biblioteken by /Program Files (x86) / Arduino / Biblioteken (standert) om de sensor te brûken mei it Arduino-boerd. Hjir is in ienfâldige stap-foar-stap hantlieding oer "Hoe kinne jo biblioteken tafoegje yn Arduino IDE."

  • MPU6050
  • Adafruit_BMP085
  • HMC5883L_Simple

Koade 

Kopiearje no de folgjende koade en upload it nei Arduino IDE Software.

#include "I2Cdev.h" #include "MPU6050.h" #include #ynklusyf MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_Simple Compass; int085_t ax, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = falsk; void opset () { Serial.begin (16); Wire.begin(); // apparaten initialisearje Serial.println ("Inisjalisearjen fan I13C-apparaten ..."); // initialize bmp9600 if (!bmp.begin()) { Serial.println(“Koe gjin jildige BMP2-sensor fine, kontrolearje (!bmp.begin()) { Serial.println(“Koe gjin jildige BMP085-sensor fine, check Serial.println(accelgyro.testConnection()? "MPU085-ferbining slagge": "MPU085-ferbining mislearre"); accelgyro.setI6050CBypassEnabled (wier); // set bypass-modus foar poarte nei hmc6050L // initialize hmc2l, Declination.(S 5883, 'E'); Compass.SetSamplingMode(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // Arduino LED konfigurearje foar it kontrolearjen fan aktiviteit pinMode (LED_PIN, OUTPUT); } void loop() {
Serial.print(“Temperatuer = “); Serial.print(bmp.readTemperature());
Serial.println(" *C"); Serial.print(“Pressure = “);
Serial.print(bmp.readPressure()); Serial.println("Pa"); // Berekkenje hichte útgeande fan 'standert' barometryske // druk fan 1013.25 millibar = 101325 Pascal Serial.print(“Altitude = “); Serial.print(bmp.readAltitude()); Serial.println(“meters”); Serial.print(“Druk op seenivo (berekkene) = “);
Serial.print(bmp.readSealevelPressure()); Serial.println("Pa");
Serial.print(“Real altitude = “); Serial.print(bmp.readAltitude(101500));
Serial.println("meters"); // lêzen rau accel / gyro mjittingen út apparaat accelgyro.getMotion6 (& ax, & ay, & az, & gx, & gy, & gz); // werjaan ljepper-skieden accel / gyro x / y / z wearden 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 =
Compass.GetHeadingDegrees(); Serial.print(“Heading: \t”); Serial.println( heading ); // blink LED om aktiviteit oan te jaan blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState); fertraging (500); }

Litte wy it testen 

As jo ​​ienris de koade uploade, is it tiid om it circuit te testen! De koade yn it Arduino-programma ynterfaces mei de sensoren mei har biblioteken, wêrtroch it sensorgegevens kin lêze en ferskate konfiguraasjes fan 'e sensoren ynstelle. Dan printet it de sensorgegevens oer de seriële poarte. De LED wurdt brûkt om oan te jaan dat it circuit wat docht. Dit betsjut dat de LED blinkt elke kear as de loopfunksje wurdt útfierd, wat oanjout dat de koade aktyf sensorwearden lêze.

Working Taljochting 

De koade is it wichtichste ding wêrop it wurk fan it circuit is basearre. Dat, lit ús de koade begripe:.

  • Earst omfettet it ferskate bibleteken om te ynterface mei de sensoren:
  • "I2Cdev.h" en "MPU6050.h" binne bibleteken foar de MPU6050 6-assige accelerometer/gyroscoopsensor
  • "Adafruit_BMP085.h" is in bibleteek foar de BMP085 barometryske druk sensor.
  • "HMC5883L_Simple.h" is in bibleteek foar de HMC5883L magnetometer sensor.
  • Dan makket it globale objekten foar de trije sensoren: MPU6050 accelgyro, Adafruit_BMP085 bmp, en HMC5883L_Simple Compass.
  • Dêrnei definieart it guon fariabelen om sensorwearden op te slaan, lykas ax, ay, en az foar de accelerometer fan MPU6050 en om nei de magnetometer fan HMC5883L te gean. En it definiearret in LED_PIN konstante en in blinkState fariabele.
  • De opset () -funksje begjint in seriële kommunikaasje en begjint I2C kommunikaasje. Dan initialisearret it de trije sensoren:
  • De BMP085-sensor wurdt inisjalisearre troch de start() metoade te roppen. As dit falsk weromkomt, wat oanjout dat de sensor net fûn wurde koe, komt it programma in ûneinige lus yn en drukt in flaterberjocht oer de seriële poarte.
  • De MPU6050-sensor wurdt inisjalisearre troch de metoade initialize () te roppen en te kontrolearjen oft it goed wurket. En it stelde de I2C bypass ynskeakele foar MPU6050.
  • De HMC5883L-sensor wurdt inisjalisearre troch guon funksjes op te roppen, lykas SetDeclination, SetSamplingMode, SetScale en SetOrientation, foar it ynstellen fan ferskate konfiguraasjes foar de sensor.
  • Yn de loop () funksje lêst de koade gegevens fan 'e trije sensoren en printet it út oer de seriële poarte:
  • It lêst temperatuer, druk, hichte en druk op seenivo fan 'e sensor.
  • It lêst rau fersnelling en gyroscoopmjittingen fan 'e MPU6050-sensor.
  • It lêst de kop fan 'e HMC5883L-sensor, dat is de hoeke tusken de rjochting wêryn't de sensor wiist en de rjochting wêryn magnetysk noarden leit.
  • Uteinlik knippert it de LED om aktiviteit oan te jaan en wachtet in momint foardat de sensoren opnij lêze.

Dokuminten / Resources

ARDUINO GY87 Kombinearre Sensor Test Sketch [pdf] Brûkershânlieding
GY87 Combined Sensor Test Sketch, GY87, Combined Sensor Test Sketch, Sensor Test Sketch, Test Sketch

Referinsjes

Lit in reaksje efter

Jo e-mailadres sil net publisearre wurde. Ferplichte fjilden binne markearre *