ARDUINO GY87 Gekombineerde Sensor Toets Skets
Inleiding
As jy 'n ywerige vervaardiger of 'n robotika-entoesias is, het jy hierdie piepklein dog kragtige module teëgekom As jy 'n ywerige vervaardiger of 'n robotika-entoesias is, het jy hierdie piepklein dog kragtige module BMP085-barometer teëgekom. Die GY-87 IMU-module is 'n goeie manier om bewegingswaarneming by jou projekte te voeg, soos 'n selfbalanserende robot of 'n quadcopter.
Maar voordat jy met die GY-87 IMU-module kan begin eksperimenteer, moet jy weet hoe om dit met jou Arduino-bord te koppel. Dis waar hierdie blog inkom! In die volgende paragrawe sal ons die basiese beginsels van die GY-87 IMU-module dek, hoe om dit op te stel en hoe om die Arduino-kode te skryf om die sensordata te lees. Ons sal ook 'n paar wenke en hulpbronne verskaf om algemene probleme op te los.
Dus, as jy gereed is om te begin, kom ons duik in en leer oor hoe om die GY-87 IMU-module met Arduino te koppel!
Wat is GY-87 IMU MPU6050
Traagheidsmetingseenheid (IMU) modules soos die GY-87 kombineer baie sensors in 'n enkele pakket, soos die MPU6050 versnellingsmeter/gyroskoop, die HMC5883L magnetometer en die BMP085 barometriese druksensor. Die GY-87 IMU MPU6050 is dus 'n alles-in-een 9-as bewegingsopsporingsmodule wat 'n 3-as gyroskoop, 3-as versnellingsmeter, 3-as magnetometer en 'n digitale bewegingsverwerker kombineer. Dit word baie gebruik in robotprojekte, soos quadcopters en ander onbemande lugvoertuie (UAV's), omdat dit oriëntasie en beweging akkuraat kan meet en dophou. Dit word ook in ander toepassings gebruik, soos navigasie, speletjies en virtuele realiteit.
Hardeware komponente
Jy sal die volgende hardeware benodig om GY-87 IMU MPU6050 HMC5883L BMP085-module met Arduino te koppel.
Komponente | Waarde | Aantal |
Arduino VN | – | 1 |
MPU6050 Sensor module | GY-87 | 1 |
Broodbord | – | 1 |
Jumper drade | – | 1 |
GY-87 met Arduino
Noudat jy die GY-87 verstaan het, is dit tyd om met die Arduino te koppel. Om dit te doen, volg Noudat jy die GY-87 verstaan het, is dit tyd om met die Arduino te koppel. Om dit te doen, volg
Skematiese
Maak verbindings volgens die stroombaandiagram hieronder
GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoBedrading / verbindings
Arduino | MPU6050 sensor |
5V | VCC |
GND | GND |
A4 | SDA |
A5 | SCA |
Installeer Arduino IDE
Eerstens moet u Arduino IDE-sagteware vanaf sy amptelike installeer webwebwerf Arduino. Hier is 'n eenvoudige stap-vir-stap gids oor "Hoe om Arduino IDE te installeer."
Installeer biblioteke
Voordat jy kode begin oplaai, laai die volgende biblioteke af en pak dit uit by /Program Files (x86)/Arduino/Libraries (verstek) om die sensor met die Arduino-bord te gebruik. Hier is 'n eenvoudige stap-vir-stap gids oor "Hoe om biblioteke in Arduino IDE by te voeg."
- MPU6050
- Adafruit_BMP085
- HMC5883L_Eenvoudig
Kode
Kopieer nou die volgende kode en laai dit op na Arduino IDE sagteware.
#sluit “I2Cdev.h” in #sluit “MPU6050.h” in #sluit in #insluit MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_Eenvoudige kompas; int085_t byl, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = vals; void setup() { Serial.begin(16); Wire.begin(); // inisialiseer toestelle Serial.println(“Inisialiseer I13C-toestelle...”); // initialiseer bmp9600 if (!bmp.begin()) { Serial.println(“Kon nie 'n geldige BMP2-sensor vind nie, kyk (!bmp.begin()) { Serial.println(“Kon nie 'n geldige BMP085-sensor vind nie, kontroleer Serial.println(accelgyro.testConnection() ? “MPU085-verbinding suksesvol” : “MPU085-verbinding het misluk”); accelgyro.setI6050CBypassEnabled(true); // stel omleidingsmodus vir poort na hmc6050L // initialiseer hmc2l, Declination.(S5883l, Declination. 5883, 'E'); Compass.SetSamplingMode(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // stel Arduino LED op om aktiwiteit pinMode (LED_PIN, UITSET) na te gaan; } void lus() {
Serial.print(“Temperature = “); Serial.print(bmp.readTemperature());
Serial.println(” *C”); Serial.print(“Druk = “);
Serial.print(bmp.readPressure()); Serial.println(" Pa"); // Bereken hoogte met die aanname van 'standaard' barometriese // druk van 1013.25 millibar = 101325 Pascal Serial.print(“Altitude = “); Serial.print(bmp.readAltitude()); Serial.println(“meters”); Serial.print(“Druk op seevlak (bereken) = “);
Serial.print(bmp.readSealevelPressure()); Serial.println(" Pa");
Serial.print(“Reële hoogte = “); Serial.print(bmp.readAltitude(101500));
Serial.println("meters"); // lees rou accel/gyro-metings vanaf toestel accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // vertoon tab-geskeide accel/gyro x/y/z waardes Serial.print(“a/g:\t”); Serial.print(byl);
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); drywende opskrif =
Compass.GetHeadingDegrees(); Serial.print(“Opskrif: \t”); Serial.println( heading); // flikker LED om aktiwiteit aan te dui blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState); vertraging(500); }
Kom ons Toets Dit
Sodra jy die kode opgelaai het, is dit tyd om die stroombaan te toets! Die kode in die Arduino-program koppel met die sensors deur hul biblioteke te gebruik, wat dit toelaat om sensordata te lees en verskeie konfigurasies van die sensors in te stel. Dan druk dit die sensordata oor die seriële poort uit. Die LED word gebruik om te wys dat die stroombaan iets doen. Dit beteken die LED flikker elke keer as die lusfunksie uitgevoer word, wat aandui dat die kode aktief sensorwaardes lees.
Werksverklaring
Die kode is die belangrikste ding waarop die stroombaan se werking gebaseer is. So, laat ons die kode verstaan:.
- Eerstens bevat dit verskeie biblioteke om met die sensors te koppel:
- "I2Cdev.h" en "MPU6050.h" is biblioteke vir die MPU6050 6-as versnellingsmeter/gyroskoopsensor
- "Adafruit_BMP085.h" is 'n biblioteek vir die BMP085 barometriese druksensor.
- "HMC5883L_Simple.h" is 'n biblioteek vir die HMC5883L magnetometersensor.
- Dan skep dit globale voorwerpe vir die drie sensors: MPU6050 accelgyro, Adafruit_BMP085 bmp, en HMC5883L_Simple Compass.
- Vervolgens definieer dit 'n paar veranderlikes om sensorwaardes te stoor, soos ax, ay en az vir die versnellingsmeter van MPU6050 en om na die magnetometer van HMC5883L te gaan. En dit definieer 'n LED_PIN konstante en 'n blinkState veranderlike.
- Die setup() funksie begin 'n seriële kommunikasie en begin I2C kommunikasie. Dan inisialiseer dit die drie sensors:
- Die BMP085-sensor word geïnisialiseer deur die begin()-metode te roep. As dit vals terugkeer, wat aandui dat die sensor nie gevind kon word nie, gaan die program 'n oneindige lus in en druk 'n foutboodskap oor die seriële poort.
- Die MPU6050-sensor word geïnisialiseer deur die initialize()-metode te roep en te kyk of dit reg werk. En dit het die I2C-omleiding vir MPU6050 geaktiveer.
- Die HMC5883L-sensor word geïnisialiseer deur sommige funksies te roep, soos SetDeclination, SetSamplingMode, SetScale en SetOrientation, om verskillende konfigurasies vir die sensor in te stel.
- In die lus()-funksie lees die kode data van die drie sensors en druk dit uit oor die seriële poort:
- Dit lees temperatuur, druk, hoogte bo seevlak en druk op seevlak vanaf die sensor.
- Dit lees rou versnelling en giroskoopmetings vanaf die MPU6050-sensor.
- Dit lees die opskrif van die HMC5883L-sensor, wat die hoek is tussen die rigting waarin die sensor wys en die rigting waarin magnetiese noord lê.
- Uiteindelik flikker dit die LED om aktiwiteit aan te dui en wag 'n oomblik voordat die sensors herlees word.
Dokumente / Hulpbronne
![]() |
ARDUINO GY87 Gekombineerde Sensor Toets Skets [pdfGebruikershandleiding GY87 Gekombineerde Sensor Toets Skets, GY87, Gekombineerde Sensor Toets Skets, Sensor Toets Skets, Toets Skets |