ARDUINO-lgoo

Skicë e testimit të sensorit të kombinuar ARDUINO GY87

ARDUINO-GY87-Sensor-Test-Sketch-kombinuar-Produkt

Hyrje

Nëse jeni një prodhues i zjarrtë ose një entuziast i robotikës, keni hasur në këtë modul të vogël por të fuqishëm. Moduli GY-085 IMU është një mënyrë e shkëlqyeshme për të shtuar ndjeshmërinë e lëvizjes në projektet tuaja, si një robot vetëbalancues ose një katërkopter.
Por, përpara se të filloni të eksperimentoni me modulin GY-87 IMU, duhet të dini se si ta ndërlidhni atë me bordin tuaj Arduino. Këtu hyn ky blog! Në paragrafët e mëposhtëm, ne do të mbulojmë bazat e modulit GY-87 IMU, si ta konfiguroni atë dhe si të shkruani kodin Arduino për të lexuar të dhënat e sensorit. Ne do të ofrojmë gjithashtu disa këshilla dhe burime për zgjidhjen e problemeve të zakonshme.
Pra, nëse jeni gati për të filluar, le të zhytemi dhe të mësojmë rreth ndërlidhjes së modulit GY-87 IMU me Arduino!

Çfarë është GY-87 IMU MPU6050

Modulet e njësisë së matjes inerciale (IMU) si GY-87 kombinojnë shumë sensorë në një paketë të vetme, të tilla si përshpejtuesi/xhiroskopi MPU6050, magnetometri HMC5883L dhe sensori i presionit barometrik BMP085. Prandaj, GY-87 IMU MPU6050 është një modul gjithëpërfshirës për gjurmimin e lëvizjes me 9 boshte, i cili kombinon një xhiroskop me 3 boshte, përshpejtues me 3 boshte, magnetometër me 3 boshte dhe një procesor dixhital të lëvizjes. Përdoret shumë në projekte robotike, si kuadkopterë dhe mjete të tjera ajrore pa pilot (UAV), sepse mund të matë dhe gjurmojë me saktësi orientimin dhe lëvizjen. Përdoret gjithashtu në aplikacione të tjera, të tilla si navigimi, lojërat dhe realiteti virtual.

Komponentët e harduerit

Do t'ju duhet hardueri i mëposhtëm për ndërthurjen e modulit GY-87 IMU MPU6050 HMC5883L BMP085 me Arduino.

Komponentët Vlera Sasia
Arduino UNO 1
MPU6050 Moduli i sensorit GY-87 1
Breadboard 1
Telat kërcyes 1

GY-87 me Arduino 

Tani që e keni kuptuar GY-87, është koha për të ndërlidhur me Arduino. Për ta bërë këtë, ndiqni Tani që e keni kuptuar GY-87, është koha për të ndërlidhur me Arduino. Për ta bërë këtë, ndiqni

Skematik

Kryeni lidhjet sipas skemës së qarkut të dhënë më poshtë

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

Arduino Sensori MPU6050
5V KQV
GND GND
A4 SDA
A5 SCA

Instalimi i Arduino IDE 

Së pari, duhet të instaloni Arduino IDE Software nga zyrtari i tij webfaqe Arduino. Këtu është një udhëzues i thjeshtë hap pas hapi mbi "Si të instaloni Arduino IDE".

Instalimi i bibliotekave 

Përpara se të filloni të ngarkoni kodin, shkarkoni dhe çzipni bibliotekat e mëposhtme në /Program Files (x86)/Arduino/Libraries (e parazgjedhur) për të përdorur sensorin me tabelën Arduino. Këtu është një udhëzues i thjeshtë hap pas hapi mbi "Si të shtoni biblioteka në Arduino IDE".

  • MPU6050
  • Adafruit_BMP085
  • HMC5883L_E thjeshtë

Kodi 

Tani kopjoni kodin e mëposhtëm dhe ngarkoni atë në Arduino IDE Software.

#include "I2Cdev.h" #include "MPU6050.h" #include #përfshi MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_Busull i thjeshtë; int085_t sëpatë, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = false; void setup() { Serial.begin(16); Wire.begin(); // inicializoj pajisjet Serial.println(“Initializimi i pajisjeve I13C…”); // inicializoni bmp9600 if (!bmp.begin()) { Serial.println("Nuk mund të gjeja një sensor të vlefshëm BMP2, kontrolloni (!bmp.begin()) { Serial.println("Nuk mund të gjeja një sensor të vlefshëm BMP085, kontrolloni Serial.println(accelgyro.testConnection() ? “MPU085 lidhja e suksesshme” : “Lidhja MPU085 dështoi”); 6050, 'E');amplingMode (COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // konfiguroni Arduino LED për kontrollimin e modalitetit të pinit të aktivitetit (LED_PIN, OUTPUT); } void loop() {
Serial.print(“Temperatura = “); Serial.print(bmp.readTemperature());
Serial.println(” *C”); Serial.print(“Presioni = “);
Serial.print(bmp.readPressure()); Serial.println(“Pa”); // Llogaritni lartësinë duke supozuar barometrike 'standarde' // presion prej 1013.25 milibar = 101325 Pascal Serial.print(“Lartësia = “); Serial.print(bmp.readAltitude()); Serial.println(“metra”); Serial.print(“Presioni në nivelin e vulës (llogaritur) = “);
Serial.print(bmp.readSealevelPressure()); Serial.println(“Pa”);
Serial.print(“Lartësia reale = “); Serial.print(bmp.readAltitude(101500));
Serial.println(” metra”); // lexo matjet e papërpunuara accel/gyro nga pajisja accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // shfaq vlerat accel/gyro x/y/z të ndara me skeda Serial.print(“a/g:\t”); Seriali.print(sëpatë);
Serial.print(“\t”); Seriali.print(ay); Serial.print(“\t”); Seriali.print(az);
Serial.print(“\t”); Serial.print(gx); Serial.print(“\t”); Serial.print(gy);
Serial.print(“\t”); Seriali.println(gz); float heading =
Compass.GetHeadingDegrees(); Serial.print(“Titulli: \t”); Serial.println( heading ); // pulsoj LED për të treguar aktivitetin blinkState = !blinkState;
digitalWrite (LED_PIN, blinkState); vonesë (500); }

Le ta testojmë 

Pasi të ngarkoni kodin, është koha për të testuar qarkun! Kodi në programin Arduino ndërlidhet me sensorët duke përdorur bibliotekat e tyre, gjë që e lejon atë të lexojë të dhënat e sensorit dhe të vendosë konfigurime të ndryshme të sensorëve. Pastaj printon të dhënat e sensorit mbi portën serike. LED përdoret për të treguar se qarku po bën diçka. Kjo do të thotë që LED pulson çdo herë që funksioni i ciklit ekzekutohet, duke treguar që kodi po lexon në mënyrë aktive vlerat e sensorit.

Shpjegimi i punës 

Kodi është gjëja kryesore në të cilën bazohet puna e qarkut. Pra, le të kuptojmë kodin:.

  • Së pari, ai përfshin disa biblioteka për t'u ndërlidhur me sensorët:
  • "I2Cdev.h" dhe "MPU6050.h" janë biblioteka për sensorin e përshpejtuesit/xhiroskopit me 6050 boshte MPU6
  • "Adafruit_BMP085.h" është një bibliotekë për sensorin e presionit barometrik BMP085.
  • "HMC5883L_Simple.h" është një bibliotekë për sensorin e magnetometrit HMC5883L.
  • Më pas krijon objekte globale për tre sensorët: MPU6050 accelgyro, Adafruit_BMP085 bmp dhe HMC5883L_Simple Compass.
  • Më pas, ai përcakton disa variabla për të ruajtur vlerat e sensorit, të tilla si ax, ay dhe az për përshpejtuesin e MPU6050 dhe për të drejtuar magnetometrin e HMC5883L. Dhe përcakton një konstante LED_PIN dhe një ndryshore blinkState.
  • Funksioni setup() fillon një komunikim serial dhe fillon komunikimin I2C. Pastaj inicializon tre sensorët:
  • Sensori BMP085 inicializohet duke thirrur metodën start(). Nëse kjo kthehet false, duke treguar se sensori nuk mund të gjendet, programi hyn në një lak të pafund dhe printon një mesazh gabimi mbi portën serike.
  • Sensori MPU6050 inicializohet duke thirrur metodën inicialize() dhe duke kontrolluar nëse po funksionon siç duhet. Dhe vendosi anashkalimin I2C të aktivizuar për MPU6050.
  • Sensori HMC5883L inicializohet duke thirrur disa funksione, të tilla si SetDeclination, SetSamplingMode, SetScale dhe SetOrientation, për vendosjen e konfigurimeve të ndryshme për sensorin.
  • Në funksionin loop(), kodi lexon të dhënat nga tre sensorët dhe i printon ato mbi portën serike:
  • Ai lexon temperaturën, presionin, lartësinë dhe presionin në nivelin e detit nga sensori.
  • Ai lexon matjet e përshpejtimit dhe xhiroskopit të papërpunuar nga sensori MPU6050.
  • Ai lexon titullin nga sensori HMC5883L, i cili është këndi midis drejtimit në të cilin është drejtuar sensori dhe drejtimit në të cilin shtrihet veriu magnetik.
  • Më në fund, pulson LED për të treguar aktivitetin dhe pret një moment përpara se të rilexojë sensorët.

Dokumentet / Burimet

Skicë e testimit të sensorit të kombinuar ARDUINO GY87 [pdf] Manuali i Përdoruesit
Skica e testit të sensorit të kombinuar GY87, GY87, Skica e testit të sensorit të kombinuar, Skica e testit të sensorit, skica e provës

Referencat

Lini një koment

Adresa juaj e emailit nuk do të publikohet. Fushat e kërkuara janë shënuar *