ARDUINO-lgoo

ARDUINO GY87 Համակցված սենսորների փորձարկման ուրվագիծ

ARDUINO-GY87-Combined-Sensor-Test-Sketch-product

Ներածություն

Եթե ​​դուք մոլի արտադրող կամ ռոբոտաշինության սիրահար եք, ապա հանդիպել եք այս փոքրիկ, բայց հզոր մոդուլին. Եթե դուք մոլի արտադրող եք կամ ռոբոտաշինության սիրահար, ապա դուք հանդիպել եք այս փոքրիկ, բայց հզոր մոդուլի BMP085 բարոմետրին: GY-87 IMU մոդուլը հիանալի միջոց է ձեր նախագծերին շարժման սենսոր ավելացնելու համար, ինչպես ինքնահավասարակշռվող ռոբոտը կամ կվադոկոպտերը:
Բայց մինչ դուք կարող եք սկսել փորձարկել GY-87 IMU մոդուլը, դուք պետք է իմանաք, թե ինչպես այն ինտերֆեյս անել ձեր Arduino տախտակի հետ: Ահա թե որտեղ է այս բլոգը գալիս: Հետևյալ պարբերություններում մենք կանդրադառնանք GY-87 IMU մոդուլի հիմունքներին, ինչպես կարգավորել այն և ինչպես գրել Arduino կոդը՝ սենսորային տվյալները կարդալու համար: Մենք նաև որոշ խորհուրդներ և ռեսուրսներ կտրամադրենք ընդհանուր խնդիրների լուծման համար:
Այսպիսով, եթե պատրաստ եք սկսել, եկեք սուզվենք և սովորենք GY-87 IMU մոդուլը Arduino-ի հետ ինտերֆեյս ստեղծելու մասին:

Ինչ է GY-87 IMU MPU6050-ը

Իներցիոն չափման միավորի (IMU) մոդուլները, ինչպիսիք են GY-87-ը, միավորում են բազմաթիվ սենսորներ մեկ փաթեթի մեջ, ինչպիսիք են MPU6050 արագացուցիչ/գիրոսկոպը, HMC5883L մագնիսաչափը և BMP085 բարոմետրիկ ճնշման սենսորը: Այսպիսով, GY-87 IMU MPU6050-ը բոլորը մեկում 9 առանցքանի շարժումների հետևման մոդուլ է, որը համատեղում է 3 առանցք գիրոսկոպ, 3 առանցք արագացուցիչ, 3 առանցք մագնիսաչափ և թվային շարժման պրոցեսոր: Այն շատ է օգտագործվում ռոբոտային նախագծերում, ինչպիսիք են կվադոկոպտերները և այլ անօդաչու թռչող սարքերը (ԱԹՍ), քանի որ այն կարող է ճշգրիտ չափել և հետևել կողմնորոշմանը և շարժմանը: Այն նաև օգտագործվում է այլ ծրագրերում, ինչպիսիք են նավիգացիոն, խաղերը և վիրտուալ իրականությունը:

Սարքավորման բաղադրիչներ

Arduino-ի հետ GY-87 IMU MPU6050 HMC5883L BMP085 մոդուլը փոխկապակցելու համար ձեզ կպահանջվի հետևյալ սարքաշարը:

Բաղադրիչներ Արժեք Քանակ
Arduino UNO 1
MPU6050 Սենսորային մոդուլ ԳՅ-87 1
Breadboard 1
Jumper մետաղալարեր 1

GY-87 Arduino-ով 

Այժմ, երբ հասկացաք GY-87-ը, ժամանակն է ինտերֆեյս Arduino-ի հետ: Դա անելու համար հետևեք Հիմա, երբ հասկացաք GY-87-ը, ժամանակն է ինտերֆեյս Arduino-ի հետ: Դա անելու համար հետևեք

Սխեմատիկ

Միացումներ կատարեք ստորև տրված սխեմայի համաձայն

GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoARDUINO-GY87-Combined-Sensor-Test-Sketch-fig 1Հաղորդալարեր / Միացումներ

Արդուինո MPU6050 սենսոր
5V VCC
GND GND
A4 SDA
A5 SCA

Arduino IDE-ի տեղադրում 

Նախ, դուք պետք է տեղադրեք Arduino IDE Software-ը իր պաշտոնականից webկայք Arduino. Ահա «Ինչպես տեղադրել Arduino IDE»-ի պարզ քայլ առ քայլ ուղեցույց:

Գրադարանների տեղադրում 

Նախքան կոդերի վերբեռնումը սկսելը, ներբեռնեք և բացեք հետևյալ գրադարանները /Program-ում Files (x86)/Arduino/Libraries (կանխադրված)՝ սենսորը Arduino տախտակի հետ օգտագործելու համար: Ահա մի պարզ քայլ առ քայլ ուղեցույց «Ինչպես ավելացնել գրադարաններ Arduino IDE-ում»:

  • MPU6050
  • Adafruit_BMP085
  • HMC5883L_Պարզ

Կոդ 

Այժմ պատճենեք հետևյալ կոդը և վերբեռնեք այն Arduino IDE Software-ում:

#include «I2Cdev.h» #include «MPU6050.h» #include #ներառում MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_Պարզ կողմնացույց; int085_t ax, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = false; void setup() {Serial.begin(16); Wire.begin(); // սկզբնավորել սարքերը Serial.println («I13C սարքերի սկզբնավորում…»); // սկզբնավորել bmp9600 if (!bmp.begin()) { Serial.println(«Չհաջողվեց գտնել վավեր BMP2 սենսոր, ստուգեք (!bmp.begin()) { Serial.println(«Չհաջողվեց գտնել վավեր BMP085 սենսոր, ստուգեք Serial.println(accelgyro.testConnection() «MPU085 կապը հաջողվեց»: «MPU085 կապը ձախողվեց»); 6050, «E»);amplingMode (COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // կարգավորել Arduino LED-ը՝ գործունեության pinMode-ը ստուգելու համար (LED_PIN, OUTPUT); } void loop() {
Serial.print («Ջերմաստիճան = «); Serial.print(bmp.readTemperature());
Serial.println (" *C"); Serial.print («Ճնշում = «);
Serial.print(bmp.readPressure()); Serial.println ("Pa"); // Հաշվարկել բարձրությունը՝ ենթադրելով «ստանդարտ» բարոմետրիկ // ճնշում 1013.25 միլիբար = 101325 Pascal Serial.print(“Altitude = “); Serial.print(bmp.readAltitude()); Serial.println («մետրեր»); Serial.print («Ճնշում կնիքի մակարդակում (հաշվարկված) = «);
Serial.print(bmp.readSealevelPressure()); Serial.println ("Pa");
Serial.print («Իրական բարձրություն = «); Serial.print (bmp.readAltitude (101500));
Serial.println ("մետր"); // կարդալ հում accel/gyro չափումները սարքից accelgyro.getMotion6 (&ax, &ay, &az, &gx, &gy, &gz); // ցուցադրել ներդիրներով առանձնացված accel/gyro x/y/z արժեքները 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); float վերնագիր =
Compass.GetHeadingDegrees(); Serial.print (“Heading: \t”); Serial.println(heading); // թարթել լուսադիոդը` ցույց տալու գործողությունը blinkState = !blinkState;
digitalWrite (LED_PIN, blinkState); ուշացում (500); }

Եկեք փորձարկենք այն 

Կոդը վերբեռնելուց հետո ժամանակն է ստուգելու միացումը: Arduino ծրագրի կոդը ինտերֆեյս է անում սենսորների հետ՝ օգտագործելով իրենց գրադարանները, ինչը թույլ է տալիս կարդալ սենսորների տվյալները և սահմանել սենսորների տարբեր կոնֆիգուրացիաներ: Այնուհետև այն տպում է սենսորային տվյալները սերիական միացքի վրա: LED-ն օգտագործվում է ցույց տալու համար, որ միացումն ինչ-որ բան է անում: Սա նշանակում է, որ LED-ը թարթում է ամեն անգամ, երբ գործարկվում է հանգույց ֆունկցիան, ինչը ցույց է տալիս, որ կոդը ակտիվորեն կարդում է սենսորային արժեքները:

Աշխատանքային բացատրություն 

Կոդը հիմնական բանն է, որի վրա հիմնված է սխեմայի աշխատանքը: Այսպիսով, եկեք հասկանանք կոդը.

  • Նախ, այն ներառում է մի քանի գրադարաններ՝ սենսորների հետ ինտերֆեյսի համար.
  • «I2Cdev.h»-ը և «MPU6050.h»-ը գրադարաններ են MPU6050 6 առանցք արագացուցիչի/գիրոսկոպի սենսորի համար:
  • «Adafruit_BMP085.h»-ը BMP085 բարոմետրիկ ճնշման ցուցիչի գրադարան է:
  • «HMC5883L_Simple.h»-ը գրադարան է HMC5883L մագնիսաչափի սենսորի համար:
  • Այնուհետև այն ստեղծում է գլոբալ օբյեկտներ երեք սենսորների համար՝ MPU6050 accelgyro, Adafruit_BMP085 bmp և HMC5883L_Simple Compass:
  • Այնուհետև այն սահմանում է որոշ փոփոխականներ՝ սենսորային արժեքները պահելու համար, ինչպիսիք են՝ ax, ay և az՝ MPU6050 արագաչափի համար և ուղղորդելու համար HMC5883L մագնիսաչափը: Եվ այն սահմանում է LED_PIN հաստատուն և blinkState փոփոխական:
  • Setup() ֆունկցիան սկսում է սերիական հաղորդակցություն և սկսում I2C հաղորդակցությունը: Այնուհետև այն սկզբնավորում է երեք սենսորները.
  • BMP085 սենսորը սկզբնավորվում է՝ կանչելով start() մեթոդը: Եթե ​​սա վերադարձնում է false, ցույց տալով, որ սենսորը չի գտնվել, ծրագիրը մտնում է անսահման հանգույց և սերիական պորտի վրա տպում է սխալի հաղորդագրություն:
  • MPU6050 սենսորը սկզբնավորվում է՝ կանչելով startize() մեթոդը և ստուգելով, թե արդյոք այն ճիշտ է աշխատում: Եվ այն սահմանեց I2C շրջանցումը միացված MPU6050-ի համար:
  • HMC5883L սենսորը սկզբնավորվում է՝ կանչելով որոշ գործառույթներ, ինչպիսիք են SetDeclination, SetSamplingMode, SetScale և SetOrientation՝ սենսորի տարբեր կոնֆիգուրացիաներ սահմանելու համար:
  • Loop() ֆունկցիայի մեջ կոդը կարդում է տվյալները երեք սենսորներից և տպում դրանք սերիական պորտի վրա.
  • Այն սենսորից կարդում է ջերմաստիճանը, ճնշումը, բարձրությունը և ճնշումը ծովի մակարդակում:
  • Այն կարդում է չմշակված արագացման և գիրոսկոպի չափումները MPU6050 սենսորից:
  • Այն կարդում է վերնագիրը HMC5883L սենսորից, որը անկյունն է այն ուղղության միջև, որով ցույց է տալիս սենսորը և այն ուղղության, որով գտնվում է մագնիսական հյուսիսը:
  • Ի վերջո, այն թարթում է լուսադիոդը` ցույց տալու համար ակտիվությունը և մի պահ սպասում սենսորները վերընթերցելուց առաջ:

Փաստաթղթեր / ռեսուրսներ

ARDUINO GY87 Համակցված սենսորների փորձարկման ուրվագիծ [pdf] Օգտագործողի ձեռնարկ
GY87 համակցված սենսորների փորձարկման ուրվագիծ, GY87, համակցված սենսորների փորձարկման ուրվագիծ, սենսորների փորձարկման ուրվագիծ, փորձարկման ուրվագիծ

Հղումներ

Թողնել մեկնաբանություն

Ձեր էլփոստի հասցեն չի հրապարակվի: Պարտադիր դաշտերը նշված են *