ARDUINO GY87 yhdistetyn anturin testipiirros
Johdanto
Jos olet innokas valmistaja tai robotiikan harrastaja, olet törmännyt tähän pieneen mutta tehokkaaseen moduuliin. Jos olet innokas valmistaja tai robotiikan harrastaja, olet törmännyt tähän pieneen mutta tehokkaaseen moduuliin BMP085-barometriin. GY-87 IMU -moduuli on loistava tapa lisätä liiketunnistinta projekteihisi, kuten itsetasapainottavaan robottiin tai nelikopteriin.
Mutta ennen kuin voit alkaa kokeilla GY-87 IMU -moduulia, sinun on tiedettävä kuinka liittää se Arduino-korttiisi. Tästä tämä blogi tulee! Seuraavissa kappaleissa käsitellään GY-87 IMU -moduulin perusteita, sen määrittämistä ja Arduino-koodin kirjoittamista anturitietojen lukemista varten. Tarjoamme myös vinkkejä ja resursseja yleisten ongelmien vianetsintään.
Joten jos olet valmis aloittamaan, sukeltakaamme sisään ja opimme yhdistämään GY-87 IMU -moduuli Arduinoon!
Mikä on GY-87 IMU MPU6050
Inertiamittausyksikkö (IMU) -moduulit, kuten GY-87, yhdistävät useita antureita yhdeksi paketiksi, kuten MPU6050-kiihtyvyysanturi/gyroskooppi, HMC5883L-magnetometri ja BMP085-barometrinen paineanturi. Tästä syystä GY-87 IMU MPU6050 on all-in-one 9-akselinen liikkeenseurantamoduuli, joka yhdistää 3-akselisen gyroskoopin, 3-akselisen kiihtyvyysmittarin, 3-akselisen magnetometrin ja digitaalisen liikeprosessorin. Sitä käytetään paljon robottiprojekteissa, kuten nelikoptereissa ja muissa miehittämättömissä ilma-aluksissa (UAV), koska se pystyy mittaamaan ja seuraamaan suuntaa ja liikettä tarkasti. Sitä käytetään myös muissa sovelluksissa, kuten navigoinnissa, pelaamisessa ja virtuaalitodellisuudessa.
Laitteiston komponentit
Tarvitset seuraavan laitteiston GY-87 IMU MPU6050 HMC5883L BMP085 -moduulin liittämiseen Arduinon kanssa.
Komponentit | Arvo | Määrä |
Arduino UNO | – | 1 |
MPU6050 Anturimoduuli | GY-87 | 1 |
Leipälauta | – | 1 |
Jumper johdot | – | 1 |
GY-87 Arduinon kanssa
Nyt kun olet ymmärtänyt GY-87:n, on aika yhdistää Arduinoon. Voit tehdä sen seuraavasti. Nyt kun olet ymmärtänyt GY-87:n, on aika liittyä Arduinoon. Voit tehdä sen seuraamalla
Kaavamainen
Tee liitännät alla olevan kytkentäkaavion mukaisesti
GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoJohdot / liitännät
Arduino | MPU6050 anturi |
5V | VCC |
GND | GND |
A4 | SDA |
A5 | SCA |
Arduino IDE:n asennus
Ensin sinun on asennettava Arduino IDE -ohjelmisto sen viralliselta websivusto Arduino. Tässä on yksinkertainen vaiheittainen opas "Kuinka asentaa Arduino IDE".
Kirjastojen asentaminen
Ennen kuin aloitat koodin lataamisen, lataa ja pura seuraavat kirjastot osoitteesta /Program Files (x86)/Arduino/Libraries (oletus), jotta anturia voidaan käyttää Arduino-levyn kanssa. Tässä on yksinkertainen vaiheittainen opas "Kuinka lisätä kirjastoja Arduino IDE:ssä".
- MPU6050
- Adafruit_BMP085
- HMC5883L_Yksinkertainen
Koodi
Kopioi nyt seuraava koodi ja lataa se Arduino IDE -ohjelmistoon.
#sisällytä "I2Cdev.h" #sisällytä "MPU6050.h" #sisällytä #sisältää MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_Simple Compass; int085_t ax, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = false; void setup() { Serial.begin(16); Wire.begin(); // alustetaan laitteita Serial.println("I13C-laitteita alustetaan…"); // alusta bmp9600 if (!bmp.begin()) { Serial.println("Ei löytynyt kelvollista BMP2-anturia, tarkista (!bmp.begin()) { Serial.println("Ei löytynyt kelvollista BMP085-anturia, tarkista Serial.println(accelgyro.testConnection() ? "MPU085-yhteys onnistui" : "MPU085-yhteys epäonnistui"); accelgyro.setI6050CBypassEnabled(true); // aseta ohitustila yhdyskäytävälle hmc6050L // alusta hmc2L,Comp. 5883, 'E'); Compass.SetSamplingMode(KOMPASSI_YKSI);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // määritä Arduino-LED toiminnan tarkistamiseen pinMode(LED_PIN, OUTPUT); } void loop() {
Serial.print("Lämpötila = "); Serial.print(bmp.readTemperature());
Serial.println(" *C"); Serial.print("Paine = ");
Serial.print(bmp.readPressure()); Serial.println("Pa"); // Laske korkeus olettamalla "standardi" barometrinen // paine 1013.25 millibar = 101325 Pascal Serial.print("Altitude = "); Serial.print(bmp.readAltitude()); Serial.println("meters"); Serial.print("Paine merenpinnalla (laskettu) = ");
Serial.print(bmp.readSealevelPressure()); Serial.println("Pa");
Serial.print("Todellinen korkeus = "); Serial.print(bmp.readAltitude(101500));
Serial.println("meters"); // lue raaka-accel/gyro-mittaukset laitteesta accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // näyttää sarkaimilla erotetut accel/gyro x/y/z -arvot 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); kelluva otsikko =
Compass.GetHeadingDegrees(); Serial.print("Otsikko: \t"); Serial.println( otsikko ); // vilkku LED-valo ilmaisemaan toimintaa blinkState = !blinkState;
digitalWrite(LED_PIN, vilkkutila); viive (500); }
Testataan se
Kun olet ladannut koodin, on aika testata piiri! Arduino-ohjelman koodi on rajapinta anturien kanssa niiden kirjastojen avulla, mikä mahdollistaa sen, että se voi lukea anturitietoja ja asettaa erilaisia anturien konfiguraatioita. Sitten se tulostaa anturin tiedot sarjaportin kautta. LEDiä käytetään osoittamaan, että piiri tekee jotain. Tämä tarkoittaa, että LED vilkkuu joka kerta, kun silmukkatoiminto suoritetaan, mikä osoittaa, että koodi lukee aktiivisesti anturin arvoja.
Toimiva selitys
Koodi on tärkein asia, johon piirin toiminta perustuu. Joten, ymmärretään koodi:.
- Ensinnäkin se sisältää useita kirjastoja liittääkseen anturit:
- "I2Cdev.h" ja "MPU6050.h" ovat kirjastoja MPU6050 6-akseliselle kiihtyvyysanturille/gyroskooppitunnistimelle
- "Adafruit_BMP085.h" on BMP085-barometrisen paineanturin kirjasto.
- "HMC5883L_Simple.h" on kirjasto HMC5883L-magnetometrianturia varten.
- Sitten se luo globaaleja objekteja kolmelle anturille: MPU6050 accelgyro, Adafruit_BMP085 bmp ja HMC5883L_Simple Compass.
- Seuraavaksi se määrittelee joitain muuttujia anturiarvojen tallentamiseksi, kuten ax, ay ja az MPU6050:n kiihtyvyysmittarille ja suunnaksi HMC5883L:n magnetometrille. Ja se määrittää LED_PIN-vakion ja blinkState-muuttujan.
- Setup()-funktio käynnistää sarjaliikenteen ja aloittaa I2C-viestinnän. Sitten se alustaa kolme anturia:
- BMP085-anturi alustetaan kutsumalla begin()-menetelmää. Jos tämä palauttaa epätosi, mikä tarkoittaa, että anturia ei löydy, ohjelma siirtyy äärettömään silmukkaan ja tulostaa virheilmoituksen sarjaportin kautta.
- MPU6050-anturi alustetaan kutsumalla inicializaatio()-menetelmää ja tarkistamalla, toimiiko se oikein. Ja se otti I2C-ohituksen käyttöön MPU6050:lle.
- HMC5883L-anturi alustetaan kutsumalla joitain toimintoja, kuten SetDeclination, SetSamplingMode, SetScale ja SetOrientation anturien eri konfiguraatioiden asettamiseen.
- Loop()-funktiossa koodi lukee tiedot kolmelta anturilta ja tulostaa sen sarjaportin kautta:
- Se lukee anturista lämpötilan, paineen, korkeuden ja paineen merenpinnan tasolla.
- Se lukee raakakiihtyvyyden ja gyroskoopin mittaukset MPU6050-anturista.
- Se lukee HMC5883L-anturin suunnan, joka on kulma anturin osoittavan suunnan ja magneettisen pohjoisen suunnan välillä.
- Lopuksi se vilkkuu LED-valoa osoittaakseen toiminnan ja odottaa hetken ennen kuin lukee anturit uudelleen.
Asiakirjat / Resurssit
![]() |
ARDUINO GY87 yhdistetyn anturin testipiirros [pdfKäyttöopas GY87 yhdistetyn anturitestin luonnos, GY87, yhdistetyn anturitestin luonnos, anturitestin luonnos, testikaavio |