ARDUINO GY87 samsettur skynjaraprófunarskissa
Inngangur
Ef þú ert ákafur framleiðandi eða áhugamaður um vélfærafræði, hefurðu rekist á þessa örsmáu en öflugu einingu. Ef þú ert ákafur framleiðandi eða áhugamaður um vélfærafræði, hefurðu rekist á þennan pínulitla en öfluga BMP085 loftvog. GY-87 IMU einingin er frábær leið til að bæta hreyfiskynjun við verkefnin þín, eins og sjálfjafnvægi vélmenni eða quadcopter.
En áður en þú getur byrjað að gera tilraunir með GY-87 IMU eininguna þarftu að vita hvernig á að tengja hana við Arduino borðið þitt. Það er þar sem þetta blogg kemur inn! Í eftirfarandi málsgreinum munum við fara yfir grunnatriði GY-87 IMU einingarinnar, hvernig á að setja hana upp og hvernig á að skrifa Arduino kóðann til að lesa skynjaragögnin. Við munum einnig veita nokkur ráð og úrræði til að leysa algeng vandamál.
Svo, ef þú ert tilbúinn til að byrja, skulum kafa inn og læra um tengingu GY-87 IMU einingarinnar við Arduino!
Hvað er GY-87 IMU MPU6050
Tregðumælingareiningar (IMU) einingar eins og GY-87 sameina marga skynjara í einn pakka, eins og MPU6050 hröðunarmælirinn/gyroscope, HMC5883L segulmælirinn og BMP085 loftþrýstingsskynjarinn. Þess vegna er GY-87 IMU MPU6050 allt-í-einn 9-ása hreyfirakningareining sem sameinar 3-ása gírsjá, 3-ása hröðunarmæli, 3-ása segulmæli og stafrænan hreyfiörgjörva. Það er mikið notað í vélfæraverkefnum, eins og quadcopters og önnur ómannað loftfarartæki (UAV), vegna þess að það getur nákvæmlega mælt og fylgst með stefnu og hreyfingu. Það er einnig notað í öðrum forritum, svo sem siglingum, leikjum og sýndarveruleika.
Vélbúnaðaríhlutir
Þú þarft eftirfarandi vélbúnað til að tengja GY-87 IMU MPU6050 HMC5883L BMP085 einingu með Arduino.
Íhlutir | Gildi | Magn |
Arduino UNO | – | 1 |
MPU6050 Skynjarareining | GY-87 | 1 |
Brauðbretti | – | 1 |
Jumper vír | – | 1 |
GY-87 með Arduino
Nú þegar þú hefur skilið GY-87 er kominn tími til að tengjast Arduino. Til að gera það, fylgdu Nú þegar þú hefur skilið GY-87, þá er kominn tími til að tengjast Arduino. Til að gera það, fylgdu
Teikning
Gerðu tengingar í samræmi við hringrásarmyndina sem gefin er hér að neðan
GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoRaflögn / Tengingar
Arduino | MPU6050 skynjari |
5V | VCC |
GND | GND |
A4 | SDA |
A5 | SCA |
Að setja upp Arduino IDE
Fyrst þarftu að setja upp Arduino IDE hugbúnað frá opinberum websíða Arduino. Hér er einföld skref-fyrir-skref leiðbeining um „Hvernig á að setja upp Arduino IDE.
Að setja upp bókasöfn
Áður en þú byrjar að hlaða upp kóða skaltu hlaða niður og pakka niður eftirfarandi söfnum á /Program Files (x86)/Arduino/Libraries (sjálfgefið) til að nota skynjarann með Arduino borðinu. Hér er einföld skref-fyrir-skref leiðbeining um „Hvernig á að bæta við bókasöfnum í Arduino IDE.
- MPU6050
- Adafruit_BMP085
- HMC5883L_Einfalt
Kóði
Afritaðu nú eftirfarandi kóða og hladdu honum upp í Arduino IDE hugbúnaðinn.
#include „I2Cdev.h“ #include „MPU6050.h“ #include #innihalda MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_Einfaldur áttaviti; int085_t öxi, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = ósatt; ógild uppsetning() { Serial.begin(16); Wire.begin(); // frumstilla tæki Serial.println(“Frumstillir I13C tæki…”); // frumstilla bmp9600 if (!bmp.begin()) { Serial.println(“Gat ekki fundið gildan BMP2 skynjara, athugaðu (!bmp.begin()) { Serial.println(“Gat ekki fundið gildan BMP085 skynjara, athugaðu Serial.println(accelgyro.testConnection() ? „MPU085 tenging tókst“: „MPU085 tenging mistókst“; 6050, 'E'); Compass.SetSamplingMode(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // stilla Arduino LED til að athuga virkni pinMode (LED_PIN, OUTPUT); } ógild lykkja() {
Serial.print(“Hitastig = “); Serial.print(bmp.readTemperature());
Serial.println(“ *C”); Serial.print(“Pressure = “);
Serial.print(bmp.readPressure()); Serial.println(“Pa”); // Reiknaðu hæð miðað við 'staðlað' loftvog // þrýstingur upp á 1013.25 millibar = 101325 Pascal Serial.print(“Hæð = “); Serial.print(bmp.readAltitude()); Serial.println(“metrar”); Serial.print(“Þrýstingur á sjávarhæð (reiknaður) = “);
Serial.print(bmp.readSealevelPressure()); Serial.println(“Pa”);
Serial.print(“Raunveruleg hæð = “); Serial.print(bmp.readAltitude(101500));
Serial.println(“ metrar“); // lestu hráar accel/gyro mælingar úr tækinu accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // sýna flipaaðskilin accel/gyro x/y/z gildi 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); fljóta fyrirsögn =
Compass.GetHeadingDegrees(); Serial.print(“Heading: \t”); Serial.println( heading); // blikka LED til að gefa til kynna virkni blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState); seinkun(500); }
Við skulum prófa það
Þegar þú hefur hlaðið upp kóðanum er kominn tími til að prófa hringrásina! Kóðinn í Arduino forritinu tengist skynjurunum með því að nota bókasöfn þeirra, sem gerir honum kleift að lesa skynjaragögn og stilla ýmsar stillingar skynjaranna. Síðan prentar það út skynjaragögnin yfir raðtengi. Ljósdíóðan er notuð til að sýna að hringrásin sé að gera eitthvað. Þetta þýðir að LED blikkar í hvert sinn sem lykkjuaðgerðin er keyrð, sem gefur til kynna að kóðinn sé virkur að lesa skynjaragildi.
Vinnuskýring
Kóðinn er aðalatriðið sem virkni hringrásarinnar byggist á. Svo, við skulum skilja kóðann:.
- Í fyrsta lagi inniheldur það nokkur bókasöfn til að tengja við skynjarana:
- „I2Cdev.h“ og „MPU6050.h“ eru söfn fyrir MPU6050 6-ása hröðunarmæli/gyroscope skynjara
- „Adafruit_BMP085.h“ er bókasafn fyrir BMP085 loftþrýstingsskynjarann.
- „HMC5883L_Simple.h“ er bókasafn fyrir HMC5883L segulmælisskynjarann.
- Síðan býr það til alþjóðlega hluti fyrir skynjarana þrjá: MPU6050 accelgyro, Adafruit_BMP085 bmp og HMC5883L_Simple Compass.
- Næst skilgreinir það nokkrar breytur til að geyma skynjaragildi, svo sem ax, ay og az fyrir hröðunarmæli MPU6050 og til að stefna að segulmæli HMC5883L. Og það skilgreinir LED_PIN fasta og blinkState breytu.
- Setup() aðgerðin byrjar raðsamskipti og byrjar I2C samskipti. Síðan frumstillir það skynjarana þrjá:
- BMP085 skynjarinn er frumstilltur með því að kalla á begin() aðferðina. Ef þetta skilar ósatt, sem gefur til kynna að skynjarinn hafi ekki fundist, fer forritið inn í óendanlega lykkju og prentar villuboð yfir raðtengi.
- MPU6050 skynjarinn er frumstilltur með því að kalla á initialize() aðferðina og athuga hvort hún virki rétt. Og það stillti I2C framhjáhlaupið virkt fyrir MPU6050.
- HMC5883L skynjarinn er frumstilltur með því að kalla á sumar aðgerðir, svo sem SetDeclination, SetSamplingMode, SetScale og SetOrientation, til að stilla mismunandi stillingar fyrir skynjarann.
- Í lykkju() aðgerðinni les kóðinn gögn frá skynjunum þremur og prentar þau út yfir raðtengi:
- Það les hitastig, þrýsting, hæð og þrýsting við sjávarmál frá skynjaranum.
- Það les hráa hröðun og mælingar frá MPU6050 skynjaranum.
- Það les fyrirsögnina frá HMC5883L skynjaranum, sem er hornið á milli stefnunnar sem skynjarinn vísar í og stefnunnar sem segulmagnað norður liggur í.
- Að lokum blikkar ljósdíóðan til að gefa til kynna virkni og bíður augnablik áður en skynjararnir eru lesnir aftur.
Skjöl / auðlindir
![]() |
ARDUINO GY87 samsettur skynjaraprófunarskissa [pdfNotendahandbók GY87 sameinuð skynjaraprófunarskissa, GY87, sameinuð skynjaraprófunarskissa, skynjaraprófunarskissa, prófunarskissa |