ARDUINO-lgoo

Braslun Prawf Synhwyrydd Cyfun ARDUINO GY87

ARDUINO-GY87-Cyfun-Synhwyrydd-Prawf-Braslun-cynnyrch

Rhagymadrodd

Os ydych chi'n wneuthurwr brwd neu'n frwd dros roboteg, rydych chi wedi dod ar draws y modiwl bach ond pwerus hwn Os ydych chi'n wneuthurwr brwd neu'n frwd dros roboteg, rydych chi wedi dod ar draws y modiwl bach ond pwerus hwn baromedr BMP085. Mae modiwl GY-87 IMU yn ffordd wych o ychwanegu synhwyro symudiad at eich prosiectau, fel robot hunan-gydbwyso neu quadcopter.
Ond cyn y gallwch chi ddechrau arbrofi gyda'r modiwl GY-87 IMU, mae angen i chi wybod sut i'w ryngwynebu â'ch bwrdd Arduino. Dyna lle mae'r blog hwn yn dod i mewn! Yn y paragraffau canlynol, byddwn yn ymdrin â hanfodion modiwl GY-87 IMU, sut i'w sefydlu, a sut i ysgrifennu'r cod Arduino i ddarllen data'r synhwyrydd. Byddwn hefyd yn darparu rhai awgrymiadau ac adnoddau ar gyfer datrys problemau cyffredin.
Felly, os ydych chi'n barod i ddechrau, gadewch i ni blymio i mewn a dysgu am ryngwynebu modiwl GY-87 IMU ag Arduino!

Beth yw GY-87 IMU MPU6050

Mae modiwlau uned mesur anadweithiol (IMU) fel y GY-87 yn cyfuno llawer o synwyryddion yn un pecyn, megis y cyflymromedr / gyrosgop MPU6050, magnetomedr HMC5883L, a synhwyrydd pwysau barometrig BMP085. Felly, mae'r GY-87 IMU MPU6050 yn fodiwl olrhain mudiant 9-echel popeth-mewn-un sy'n cyfuno gyrosgop 3-echel, cyflymromedr 3-echel, magnetomedr 3-echel, a phrosesydd cynnig digidol. Fe'i defnyddir yn aml mewn prosiectau robotig, fel quadcopters a cherbydau awyr di-griw eraill (UAVs), oherwydd gall fesur ac olrhain cyfeiriadedd a mudiant yn gywir. Fe'i defnyddir hefyd mewn cymwysiadau eraill, megis llywio, hapchwarae, a rhith-realiti.

Cydrannau Caledwedd

Bydd angen y caledwedd canlynol arnoch ar gyfer Modiwl Rhyngwyneb GY-87 IMU MPU6050 HMC5883L BMP085 gydag Arduino.

Cydrannau Gwerth Qty
Arduino UNO 1
MPU6050 Modiwl Synhwyrydd GY-87 1
Bwrdd bara 1
Gwifrau Siwmper 1

GY-87 ag Arduino 

Nawr eich bod wedi deall y GY-87, mae'n bryd rhyngwynebu â'r Arduino. I wneud hynny, dilynwch Nawr eich bod wedi deall y GY-87, mae'n bryd rhyngwynebu â'r Arduino. I wneud hynny, dilynwch

Sgematig

Gwnewch gysylltiadau yn ôl y diagram cylched a roddir isod

GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoARDUINO-GY87-Cyfun-Synhwyrydd-Prawf-Braslun-ffig 1Gwifrau / Cysylltiadau

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

Gosod Arduino IDE 

Yn gyntaf, mae angen i chi osod Meddalwedd IDE Arduino o'i swyddog websafle Arduino. Dyma ganllaw cam wrth gam syml ar “Sut i osod Arduino IDE.”

Gosod Llyfrgelloedd 

Cyn i chi ddechrau uwchlwytho cod, lawrlwythwch a dadsipiwch y llyfrgelloedd canlynol yn /Program Files (x86)/Arduino/Llyfrgelloedd (diofyn) er mwyn defnyddio'r synhwyrydd gyda'r bwrdd Arduino. Dyma ganllaw cam wrth gam syml ar “Sut i Ychwanegu Llyfrgelloedd yn Arduino IDE.”

  • MPU6050
  • Adafruit_BMP085
  • HMC5883L_Syml

Cod 

Nawr copïwch y cod canlynol a'i uwchlwytho i Arduino IDE Software.

#cynnwys “I2Cdev.h” #cynnwys “MPU6050.h” #cynnwys #cynnwys MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_Cwmpawd Syml; int085_t bwyell, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = ffug; gosodiad gwagle() { Serial.begin(16); Wire.begin(); // cychwyn dyfeisiau Serial.println(“Cychwyn dyfeisiau I13C…”); // cychwyn bmp9600 os (!bmp.begin()) { Serial.println("Methu dod o hyd i synhwyrydd BMP2 dilys, gwiriwch (!bmp.begin()) { Serial.println("Methu dod o hyd i synhwyrydd BMP085 dilys, gwirio Serial.println(accelgyro.testConnection() ? “Cysylltiad MPU085 yn llwyddiannus” : “Cysylltiad MPU085 wedi methu”); accelgyro.setI6050CBypassEnabled(gwir); // gosod modd osgoi ar gyfer porth i hmc6050L // ymgychwyn hmc2l Compass,Declination(S5883). 5883, 'E');Compass.SetSamplingMode(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // ffurfweddu Arduino LED ar gyfer gwirio gweithgaredd pinMode(LED_PIN, OUTPUT); } dolen wag() {
Serial.print(“Tymheredd = “); Serial.print(bmp.readTemperature());
Serial.println(” *C”); Serial.print(“Pwysau = “);
Serial.print(bmp.readPress()); Serial.println("Pa"); // Cyfrifwch uchder gan dybio pwysau barometrig 'safonol' // o 1013.25 milibar = 101325 Pascal Serial.print("Altitude = "); Serial.print(bmp.readAltitude()); Serial.println(“mesuryddion”); Serial.print(“Pwysau ar lefel y môr (cyfrifwyd) = “);
Serial.print(bmp.readSealevelPressure()); Serial.println("Pa");
Serial.print(“Uchder go iawn = “); Serial.print(bmp.readAltitude(101500));
Serial.println ("mesuryddion"); // darllen mesuriadau accel/gyro amrwd o'r ddyfais accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // display tab-separated accel/gyro x/y/z values ​​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"); cyfres.print(gy);
Serial.print("\t"); Serial.println(gz); pennawd arnofio =
Compass.GetHeadingDegrees(); Serial.print("Pennawd: \t"); Serial.println( pennawd ); // blink LED i ddynodi gweithgaredd blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState); oedi(500); }

Gadewch i ni ei Brofi 

Unwaith y byddwch chi'n uwchlwytho'r cod, mae'n bryd profi'r gylched! Mae'r cod yn rhaglen Arduino yn rhyngwynebu â'r synwyryddion gan ddefnyddio eu llyfrgelloedd, sy'n caniatáu iddo ddarllen data synhwyrydd a gosod gwahanol ffurfweddiadau o'r synwyryddion. Yna mae'n argraffu data'r synhwyrydd dros y porthladd cyfresol. Defnyddir y LED i ddangos bod y gylched yn gwneud rhywbeth. Mae hyn yn golygu bod y LED yn blinks bob tro y bydd y swyddogaeth ddolen yn cael ei rhedeg, gan nodi bod y cod wrthi'n darllen gwerthoedd synhwyrydd.

Eglurhad Gweithredol 

Y cod yw'r prif beth y mae gwaith y gylched yn seiliedig arno. Felly, gadewch i ni ddeall y cod:.

  • Yn gyntaf, mae'n cynnwys sawl llyfrgell i ryngwynebu â'r synwyryddion:
  • Mae “I2Cdev.h” ac “MPU6050.h” yn lyfrgelloedd ar gyfer y synhwyrydd cyflymromedr / gyrosgop 6050-echel MPU6
  • Mae “Adafruit_BMP085.h” yn llyfrgell ar gyfer synhwyrydd pwysau barometrig BMP085.
  • Mae “HMC5883L_Simple.h” yn llyfrgell ar gyfer synhwyrydd magnetomedr HMC5883L.
  • Yna mae'n creu gwrthrychau byd-eang ar gyfer y tri synhwyrydd: MPU6050 accelgyro, Adafruit_BMP085 bmp, a HMC5883L_Simple Compass.
  • Nesaf, mae'n diffinio rhai newidynnau i storio gwerthoedd synhwyrydd, megis bwyell, ay, ac az ar gyfer cyflymromedr MPU6050 ac i anelu am magnetomedr HMC5883L. Ac mae'n diffinio cysonyn LED_PIN a newidyn blinkState.
  • Mae'r swyddogaeth setup () yn cychwyn cyfathrebiad cyfresol ac yn dechrau cyfathrebu I2C. Yna mae'n cychwyn y tri synhwyrydd:
  • Mae'r synhwyrydd BMP085 yn cael ei gychwyn trwy alw'r dull start (). Os bydd hyn yn dychwelyd yn ffug, gan nodi na ellid dod o hyd i'r synhwyrydd, mae'r rhaglen yn mynd i mewn i ddolen ddiddiwedd ac yn argraffu neges gwall dros y porth cyfresol.
  • Mae'r synhwyrydd MPU6050 yn cael ei gychwyn trwy ffonio'r dull ymgychwyn () a gwirio a yw'n gweithio'n gywir. Ac fe osododd y ffordd osgoi I2C wedi'i alluogi ar gyfer MPU6050.
  • Mae synhwyrydd HMC5883L yn cael ei gychwyn trwy alw rhai swyddogaethau, megis SetDeclination, SetSamplingMode, SetScale, a SetOrientation, ar gyfer gosod gwahanol ffurfweddiadau ar gyfer y synhwyrydd.
  • Yn y swyddogaeth loop (), mae'r cod yn darllen data o'r tri synhwyrydd ac yn ei argraffu dros y porthladd cyfresol:
  • Mae'n darllen tymheredd, gwasgedd, uchder, a phwysau ar lefel y môr o'r synhwyrydd.
  • Mae'n darllen cyflymiad amrwd a mesuriadau gyrosgop o'r synhwyrydd MPU6050.
  • Mae'n darllen y pennawd o'r synhwyrydd HMC5883L, sef yr ongl rhwng y cyfeiriad y mae'r synhwyrydd yn pwyntio ynddo a'r cyfeiriad y mae gogledd magnetig yn gorwedd ynddo.
  • Yn olaf, mae'n blincio'r LED i nodi gweithgaredd ac yn aros eiliad cyn ailddarllen y synwyryddion.

Dogfennau / Adnoddau

Braslun Prawf Synhwyrydd Cyfun ARDUINO GY87 [pdfLlawlyfr Defnyddiwr
Braslun Prawf Synhwyrydd Cyfun GY87, GY87, Braslun Prawf Synhwyrydd Cyfun, Braslun Prawf Synhwyrydd, Braslun Prawf

Cyfeiriadau

Gadael sylw

Ni fydd eich cyfeiriad e-bost yn cael ei gyhoeddi. Mae meysydd gofynnol wedi'u marcio *