ARDUINO-lgoo

Testna skica kombiniranega senzorja ARDUINO GY87

ARDUINO-GY87-Skica-izdelka za testiranje kombiniranega senzorja

Uvod

Če ste navdušen izdelovalec ali navdušenec nad robotiko, ste naleteli na ta majhen, a zmogljiv modul. Če ste navdušen izdelovalec ali navdušenec nad robotiko, ste naleteli na ta majhen, a zmogljiv modul barometra BMP085. Modul GY-87 IMU je odličen način za dodajanje zaznavanja gibanja vašim projektom, kot je samouravnotežujoči robot ali kvadrokopter.
Toda preden lahko začnete eksperimentirati z modulom GY-87 IMU, morate vedeti, kako ga povezati s svojo ploščo Arduino. Tu nastopi ta blog! V naslednjih odstavkih bomo obravnavali osnove modula GY-87 IMU, kako ga nastaviti in kako napisati kodo Arduino za branje podatkov senzorja. Zagotovili bomo tudi nekaj nasvetov in virov za odpravljanje pogostih težav.
Torej, če ste pripravljeni začeti, se poglobimo in se poučimo o povezovanju modula GY-87 IMU z Arduinom!

Kaj je GY-87 IMU MPU6050

Moduli inercialne merilne enote (IMU), kot je GY-87, združujejo številne senzorje v enem paketu, kot so merilnik pospeška/žiroskop MPU6050, magnetometer HMC5883L in senzor barometričnega tlaka BMP085. Zato je GY-87 IMU MPU6050 vse-v-enem 9-osni modul za sledenje gibanju, ki združuje 3-osni žiroskop, 3-osni merilnik pospeška, 3-osni magnetometer in digitalni procesor gibanja. Veliko se uporablja v robotskih projektih, kot so kvadrokopterji in druga brezpilotna zračna vozila (UAV), saj lahko natančno meri in sledi orientaciji in gibanju. Uporablja se tudi v drugih aplikacijah, kot so navigacija, igre in virtualna resničnost.

Komponente strojne opreme

Potrebovali boste naslednjo strojno opremo za povezovanje modula GY-87 IMU MPU6050 HMC5883L BMP085 z Arduinom.

Komponente Vrednost Količina
Arduino UNO 1
MPU6050 Modul senzorja GY-87 1
Breadboard 1
Premostitvene žice 1

GY-87 z Arduinom 

Zdaj, ko ste razumeli GY-87, je čas za vmesnik z Arduinom. Če želite to narediti, sledite. Zdaj, ko razumete GY-87, je čas za vmesnik z Arduinom. Če želite to narediti, sledite

shematski

Izvedite povezave v skladu s spodnjim diagramom vezja

GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoARDUINO-GY87-Combined-Sensor-Test-Sketch-fig 1Ožičenje / povezave

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

Namestitev Arduino IDE 

Najprej morate namestiti programsko opremo Arduino IDE iz njenega uradnika webmesto Arduino. Tukaj je preprost vodnik po korakih za "Kako namestiti Arduino IDE."

Namestitev knjižnic 

Preden začnete nalagati kodo, prenesite in razpakirajte naslednje knjižnice na /Program Files (x86)/Arduino/Libraries (privzeto), da lahko uporabite senzor s ploščo Arduino. Tukaj je preprost vodnik po korakih o »Kako dodati knjižnice v Arduino IDE«.

  • MPU6050
  • Adafruit_BMP085
  • HMC5883L_Enostavno

Koda 

Zdaj kopirajte naslednjo kodo in jo naložite v programsko opremo Arduino IDE.

#include “I2Cdev.h” #include “MPU6050.h” #include #vključi MPU085 pospeševalnik; Adafruit_BMP5883 bmp; HMC6050L_Preprost kompas; int085_t sekira, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = false; void setup() { Serial.begin(16); Wire.begin(); // inicializacija naprav Serial.println(“Inicializacija naprav I13C…”); // inicializiraj bmp9600 if (!bmp.begin()) { Serial.println("Ni bilo mogoče najti veljavnega senzorja BMP2, preverite (!bmp.begin()) { Serial.println("Ni bilo mogoče najti veljavnega senzorja BMP085, preverite Serial.println(accelgyro.testConnection() ? “Povezava MPU085 uspešna” : “Povezava MPU085 ni uspela”); 6050, 'E'); Compass.SetSamplingMode(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // konfiguriraj Arduino LED za preverjanje aktivnosti pinMode(LED_PIN, OUTPUT); } void loop() {
Serial.print(“Temperatura = “); Serial.print(bmp.readTemperature());
Serial.println(” *C”); Serial.print(“Tlak = “);
Serial.print(bmp.readPressure()); Serial.println(”Pa”); // Izračunajte nadmorsko višino ob predpostavki 'standardnega' barometričnega // tlaka 1013.25 milibara = 101325 Pascal Serial.print(“Višina = “); Serial.print(bmp.readAltitude()); Serial.println("metri"); Serial.print(“Tlak na morski gladini (izračunan) = “);
Serial.print(bmp.readSealevelPressure()); Serial.println(”Pa”);
Serial.print(“Realna nadmorska višina = “); Serial.print(bmp.readAltitude(101500));
Serial.println(”metri”); // branje neobdelanih meritev pospeška/žiroskopa iz naprave accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // prikaz vrednosti pospeška/žiroskopa x/y/z, ločenih s tabulatorji 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); plavajoči naslov =
Compass.GetHeadingDegrees(); Serial.print(“Naslov: \t”); Serial.println(naslov); // utripajoča LED za prikaz dejavnosti blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState); zamuda (500); }

Preizkusimo ga 

Ko naložite kodo, je čas, da preizkusite vezje! Koda v programu Arduino se povezuje s senzorji s pomočjo njihovih knjižnic, kar omogoča branje podatkov senzorjev in nastavitev različnih konfiguracij senzorjev. Nato natisne podatke senzorja prek serijskih vrat. LED se uporablja za prikaz, da vezje nekaj počne. To pomeni, da lučka LED utripa vsakič, ko se zažene funkcija zanke, kar pomeni, da koda aktivno bere vrednosti senzorja.

Delovna razlaga 

Koda je glavna stvar, na kateri temelji delovanje vezja. Torej, razumejmo kodo:.

  • Prvič, vključuje več knjižnic za vmesnik s senzorji:
  • »I2Cdev.h« in »MPU6050.h« sta knjižnici za 6050-osni senzor pospeška/žiroskopa MPU6
  • “Adafruit_BMP085.h” je knjižnica za senzor barometričnega tlaka BMP085.
  • “HMC5883L_Simple.h” je knjižnica za senzor magnetometra HMC5883L.
  • Nato ustvari globalne objekte za tri senzorje: MPU6050 accelgyro, Adafruit_BMP085 bmp in HMC5883L_Simple Compass.
  • Nato definira nekaj spremenljivk za shranjevanje vrednosti senzorjev, kot so ax, ay in az za merilnik pospeška MPU6050 in za usmeritev k magnetometru HMC5883L. In definira konstanto LED_PIN in spremenljivko blinkState.
  • Funkcija setup() začne serijsko komunikacijo in začne komunikacijo I2C. Nato inicializira tri senzorje:
  • Senzor BMP085 se inicializira s klicem metode begin(). Če to vrne false, kar pomeni, da senzorja ni bilo mogoče najti, program vstopi v neskončno zanko in natisne sporočilo o napaki prek serijskih vrat.
  • Senzor MPU6050 se inicializira s klicem metode initialize() in preverjanjem, ali deluje pravilno. In nastavil je omogočen obvod I2C za MPU6050.
  • Senzor HMC5883L se inicializira s klicem nekaterih funkcij, kot sta SetDeclination, SetSamplingMode, SetScale in SetOrientation za nastavitev različnih konfiguracij za senzor.
  • V funkciji loop() koda bere podatke iz treh senzorjev in jih natisne prek serijskih vrat:
  • S senzorja bere temperaturo, tlak, nadmorsko višino in tlak na morski gladini.
  • Iz senzorja MPU6050 bere neobdelane meritve pospeška in žiroskopa.
  • S senzorja HMC5883L bere smer, ki je kot med smerjo, v katero je senzor usmerjen, in smerjo, v kateri leži magnetni sever.
  • Nazadnje utripa lučka LED, ki označuje aktivnost, in počaka trenutek, preden ponovno odčita senzorje.

Dokumenti / Viri

Testna skica kombiniranega senzorja ARDUINO GY87 [pdfUporabniški priročnik
GY87 Kombinirana preskusna skica senzorja, GY87, Kombinirana preskusna skica senzorja, Testna skica senzorja, Testna skica

Reference

Pustite komentar

Vaš elektronski naslov ne bo objavljen. Obvezna polja so označena *